@atomic-ehr/fhirpath 0.0.1-canary.1825db0.20250725140030
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 +400 -0
- package/dist/index.d.ts +398 -0
- package/dist/index.js +8372 -0
- package/dist/index.js.map +1 -0
- package/package.json +51 -0
- package/src/analyzer/analyzer.ts +486 -0
- package/src/analyzer/model-provider.ts +244 -0
- package/src/analyzer/schemas/index.ts +2 -0
- package/src/analyzer/schemas/types.ts +40 -0
- package/src/analyzer/types.ts +142 -0
- package/src/api/builder.ts +155 -0
- package/src/api/errors.ts +134 -0
- package/src/api/expression.ts +156 -0
- package/src/api/index.ts +70 -0
- package/src/api/inspect.ts +96 -0
- package/src/api/registry.ts +128 -0
- package/src/api/types.ts +210 -0
- package/src/compiler/compiler.ts +546 -0
- package/src/compiler/index.ts +2 -0
- package/src/compiler/prototype-context-adapter.ts +99 -0
- package/src/compiler/types.ts +24 -0
- package/src/index.ts +76 -0
- package/src/interpreter/README.md +78 -0
- package/src/interpreter/interpreter.ts +463 -0
- package/src/interpreter/types.ts +108 -0
- package/src/lexer/char-tables.ts +37 -0
- package/src/lexer/errors.ts +31 -0
- package/src/lexer/index.ts +5 -0
- package/src/lexer/lexer.ts +745 -0
- package/src/lexer/token.ts +104 -0
- package/src/parser/ast.ts +123 -0
- package/src/parser/index.ts +3 -0
- package/src/parser/parser.ts +701 -0
- package/src/parser/pprint.ts +169 -0
- package/src/registry/default-analyzers.ts +257 -0
- package/src/registry/default-compilers.ts +31 -0
- package/src/registry/index.ts +94 -0
- package/src/registry/operations/arithmetic.ts +506 -0
- package/src/registry/operations/collection.ts +425 -0
- package/src/registry/operations/comparison.ts +432 -0
- package/src/registry/operations/existence.ts +703 -0
- package/src/registry/operations/filtering.ts +358 -0
- package/src/registry/operations/literals.ts +341 -0
- package/src/registry/operations/logical.ts +439 -0
- package/src/registry/operations/math.ts +128 -0
- package/src/registry/operations/membership.ts +132 -0
- package/src/registry/operations/string.ts +507 -0
- package/src/registry/operations/subsetting.ts +174 -0
- package/src/registry/operations/type-checking.ts +162 -0
- package/src/registry/operations/type-conversion.ts +404 -0
- package/src/registry/operations/type-operators.ts +308 -0
- package/src/registry/operations/utility.ts +644 -0
- package/src/registry/registry.ts +146 -0
- package/src/registry/types.ts +161 -0
- package/src/registry/utils/evaluation-helpers.ts +93 -0
- package/src/registry/utils/index.ts +3 -0
- package/src/registry/utils/type-system.ts +173 -0
- package/src/runtime/context.ts +158 -0
- package/src/runtime/debug-context.ts +135 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
declare enum TokenType {
|
|
2
|
+
LITERAL = "LITERAL",// Generic literal token for registry-based literals
|
|
3
|
+
NULL = "NULL",// {} (nullLiteral in grammar)
|
|
4
|
+
TRUE = "TRUE",// true
|
|
5
|
+
FALSE = "FALSE",// false
|
|
6
|
+
STRING = "STRING",// 'string value'
|
|
7
|
+
NUMBER = "NUMBER",// 123, 45.67, 0123 (allows leading zeros)
|
|
8
|
+
DATE = "DATE",// @2024, @2024-01, @2024-01-15
|
|
9
|
+
DATETIME = "DATETIME",// @2024-01-15T10:30:00Z
|
|
10
|
+
TIME = "TIME",// @T14:30:00
|
|
11
|
+
IDENTIFIER = "IDENTIFIER",// [A-Za-z_][A-Za-z0-9_]*
|
|
12
|
+
DELIMITED_IDENTIFIER = "DELIMITED_IDENTIFIER",// `identifier`
|
|
13
|
+
THIS = "THIS",// $this
|
|
14
|
+
INDEX = "INDEX",// $index
|
|
15
|
+
TOTAL = "TOTAL",// $total
|
|
16
|
+
ENV_VAR = "ENV_VAR",// %context, %`vs-name`
|
|
17
|
+
DOT = "DOT",// .
|
|
18
|
+
LBRACKET = "LBRACKET",// [
|
|
19
|
+
RBRACKET = "RBRACKET",// ]
|
|
20
|
+
LPAREN = "LPAREN",// (
|
|
21
|
+
RPAREN = "RPAREN",// )
|
|
22
|
+
PLUS = "PLUS",// +
|
|
23
|
+
MINUS = "MINUS",// -
|
|
24
|
+
STAR = "STAR",// *
|
|
25
|
+
SLASH = "SLASH",// /
|
|
26
|
+
DIV = "DIV",// div
|
|
27
|
+
MOD = "MOD",// mod
|
|
28
|
+
CONCAT = "CONCAT",// &
|
|
29
|
+
IS = "IS",// is
|
|
30
|
+
AS = "AS",// as
|
|
31
|
+
PIPE = "PIPE",// |
|
|
32
|
+
LT = "LT",// <
|
|
33
|
+
LTE = "LTE",// <=
|
|
34
|
+
GT = "GT",// >
|
|
35
|
+
GTE = "GTE",// >=
|
|
36
|
+
EQ = "EQ",// =
|
|
37
|
+
NEQ = "NEQ",// !=
|
|
38
|
+
EQUIV = "EQUIV",// ~
|
|
39
|
+
NEQUIV = "NEQUIV",// !~
|
|
40
|
+
IN = "IN",// in
|
|
41
|
+
CONTAINS = "CONTAINS",// contains
|
|
42
|
+
AND = "AND",// and
|
|
43
|
+
OR = "OR",// or
|
|
44
|
+
XOR = "XOR",// xor
|
|
45
|
+
IMPLIES = "IMPLIES",// implies
|
|
46
|
+
NOT = "NOT",// not
|
|
47
|
+
LBRACE = "LBRACE",// {
|
|
48
|
+
RBRACE = "RBRACE",// }
|
|
49
|
+
COMMA = "COMMA",// ,
|
|
50
|
+
EOF = "EOF",
|
|
51
|
+
UNIT = "UNIT",// year, month, 'mg', etc.
|
|
52
|
+
WS = "WS",// Whitespace
|
|
53
|
+
COMMENT = "COMMENT",// /* Multi-line comment */
|
|
54
|
+
LINE_COMMENT = "LINE_COMMENT"
|
|
55
|
+
}
|
|
56
|
+
interface Position$1 {
|
|
57
|
+
line: number;
|
|
58
|
+
column: number;
|
|
59
|
+
offset: number;
|
|
60
|
+
}
|
|
61
|
+
declare enum Channel {
|
|
62
|
+
DEFAULT = 0,
|
|
63
|
+
HIDDEN = 1
|
|
64
|
+
}
|
|
65
|
+
interface Token {
|
|
66
|
+
type: TokenType;
|
|
67
|
+
value: string;
|
|
68
|
+
position: Position$1;
|
|
69
|
+
channel?: Channel;
|
|
70
|
+
operation?: any;
|
|
71
|
+
literalValue?: any;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
interface ASTNode {
|
|
75
|
+
type: NodeType;
|
|
76
|
+
position: Position;
|
|
77
|
+
resultType?: unknown;
|
|
78
|
+
isSingleton?: boolean;
|
|
79
|
+
}
|
|
80
|
+
interface Position {
|
|
81
|
+
line: number;
|
|
82
|
+
column: number;
|
|
83
|
+
offset: number;
|
|
84
|
+
}
|
|
85
|
+
declare enum NodeType {
|
|
86
|
+
Identifier = 0,
|
|
87
|
+
TypeOrIdentifier = 1,// Uppercase identifiers that could be types (Patient, Observation)
|
|
88
|
+
Binary = 2,// All binary operators including dot
|
|
89
|
+
Unary = 3,// unary +, -, not
|
|
90
|
+
Union = 4,// | operator (special handling for multiple operands)
|
|
91
|
+
Function = 5,// Function calls
|
|
92
|
+
Literal = 6,// numbers, strings, booleans, dates, null
|
|
93
|
+
Variable = 7,// $this, $index, $total, %var
|
|
94
|
+
Collection = 8,// {} empty collection or {expr1, expr2, ...}
|
|
95
|
+
MembershipTest = 9,// 'is' operator
|
|
96
|
+
TypeCast = 10,// 'as' operator
|
|
97
|
+
TypeReference = 11,// Type name in ofType()
|
|
98
|
+
Index = 12
|
|
99
|
+
}
|
|
100
|
+
interface IdentifierNode extends ASTNode {
|
|
101
|
+
type: NodeType.Identifier;
|
|
102
|
+
name: string;
|
|
103
|
+
}
|
|
104
|
+
interface LiteralNode extends ASTNode {
|
|
105
|
+
type: NodeType.Literal;
|
|
106
|
+
value: any;
|
|
107
|
+
valueType: 'string' | 'number' | 'boolean' | 'date' | 'time' | 'datetime' | 'null';
|
|
108
|
+
raw?: string;
|
|
109
|
+
operation?: any;
|
|
110
|
+
}
|
|
111
|
+
interface BinaryNode extends ASTNode {
|
|
112
|
+
type: NodeType.Binary;
|
|
113
|
+
operator: TokenType;
|
|
114
|
+
operation?: any;
|
|
115
|
+
left: ASTNode;
|
|
116
|
+
right: ASTNode;
|
|
117
|
+
}
|
|
118
|
+
interface UnaryNode extends ASTNode {
|
|
119
|
+
type: NodeType.Unary;
|
|
120
|
+
operator: TokenType;
|
|
121
|
+
operation?: any;
|
|
122
|
+
operand: ASTNode;
|
|
123
|
+
}
|
|
124
|
+
interface FunctionNode extends ASTNode {
|
|
125
|
+
type: NodeType.Function;
|
|
126
|
+
name: ASTNode;
|
|
127
|
+
arguments: ASTNode[];
|
|
128
|
+
operation?: any;
|
|
129
|
+
}
|
|
130
|
+
interface VariableNode extends ASTNode {
|
|
131
|
+
type: NodeType.Variable;
|
|
132
|
+
name: string;
|
|
133
|
+
}
|
|
134
|
+
interface IndexNode extends ASTNode {
|
|
135
|
+
type: NodeType.Index;
|
|
136
|
+
expression: ASTNode;
|
|
137
|
+
index: ASTNode;
|
|
138
|
+
}
|
|
139
|
+
interface UnionNode extends ASTNode {
|
|
140
|
+
type: NodeType.Union;
|
|
141
|
+
operands: ASTNode[];
|
|
142
|
+
}
|
|
143
|
+
interface MembershipTestNode extends ASTNode {
|
|
144
|
+
type: NodeType.MembershipTest;
|
|
145
|
+
expression: ASTNode;
|
|
146
|
+
targetType: string;
|
|
147
|
+
}
|
|
148
|
+
interface TypeCastNode extends ASTNode {
|
|
149
|
+
type: NodeType.TypeCast;
|
|
150
|
+
expression: ASTNode;
|
|
151
|
+
targetType: string;
|
|
152
|
+
}
|
|
153
|
+
interface CollectionNode extends ASTNode {
|
|
154
|
+
type: NodeType.Collection;
|
|
155
|
+
elements: ASTNode[];
|
|
156
|
+
}
|
|
157
|
+
interface TypeReferenceNode extends ASTNode {
|
|
158
|
+
type: NodeType.TypeReference;
|
|
159
|
+
typeName: string;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Type system interfaces for FHIRPath type analysis
|
|
164
|
+
*
|
|
165
|
+
* Uses opaque type references to allow flexible implementation
|
|
166
|
+
*/
|
|
167
|
+
type TypeRef = unknown;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Unified runtime context that works with both interpreter and compiler.
|
|
171
|
+
* Uses prototype-based inheritance for efficient context copying.
|
|
172
|
+
*
|
|
173
|
+
* Variable Storage Convention:
|
|
174
|
+
* - Special variables: $this, $index, $total (prefixed with $)
|
|
175
|
+
* - Environment variables: %context, %resource, %rootResource (stored with % prefix)
|
|
176
|
+
* - User-defined variables: stored with % prefix (e.g., %x, %y)
|
|
177
|
+
*/
|
|
178
|
+
interface RuntimeContext {
|
|
179
|
+
input: any[];
|
|
180
|
+
focus: any[];
|
|
181
|
+
variables: Record<string, any>;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
interface FHIRPathExpression {
|
|
185
|
+
readonly ast: ASTNode;
|
|
186
|
+
evaluate(input?: any, context?: EvaluationContext): any[];
|
|
187
|
+
compile(options?: CompileOptions): CompiledExpression;
|
|
188
|
+
analyze(options?: AnalyzeOptions): AnalysisResult;
|
|
189
|
+
toString(): string;
|
|
190
|
+
}
|
|
191
|
+
interface CompiledExpression {
|
|
192
|
+
(input?: any, context?: EvaluationContext): any[];
|
|
193
|
+
readonly source: string;
|
|
194
|
+
}
|
|
195
|
+
interface EvaluationContext {
|
|
196
|
+
variables?: Record<string, any>;
|
|
197
|
+
environment?: Record<string, any>;
|
|
198
|
+
modelProvider?: ModelProvider;
|
|
199
|
+
customFunctions?: CustomFunctionMap;
|
|
200
|
+
}
|
|
201
|
+
type CustomFunction = (context: RuntimeContext, input: any[], ...args: any[]) => any[];
|
|
202
|
+
type CustomFunctionMap = Record<string, CustomFunction>;
|
|
203
|
+
interface ModelProvider {
|
|
204
|
+
resolveType(typeName: string): TypeRef | undefined;
|
|
205
|
+
getTypeHierarchy(typeName: string): string[];
|
|
206
|
+
getProperties(typeName: string): PropertyDefinition[];
|
|
207
|
+
getTypeName?(type: TypeRef): string;
|
|
208
|
+
}
|
|
209
|
+
interface PropertyDefinition {
|
|
210
|
+
name: string;
|
|
211
|
+
type: string;
|
|
212
|
+
isCollection: boolean;
|
|
213
|
+
isRequired: boolean;
|
|
214
|
+
}
|
|
215
|
+
interface CompileOptions {
|
|
216
|
+
optimize?: boolean;
|
|
217
|
+
sourceMap?: boolean;
|
|
218
|
+
}
|
|
219
|
+
interface AnalyzeOptions {
|
|
220
|
+
modelProvider?: ModelProvider;
|
|
221
|
+
strict?: boolean;
|
|
222
|
+
}
|
|
223
|
+
interface AnalysisResult {
|
|
224
|
+
type: TypeRef;
|
|
225
|
+
isSingleton: boolean;
|
|
226
|
+
errors: AnalysisError[];
|
|
227
|
+
warnings: AnalysisWarning[];
|
|
228
|
+
}
|
|
229
|
+
interface AnalysisError {
|
|
230
|
+
message: string;
|
|
231
|
+
location?: Location;
|
|
232
|
+
code: string;
|
|
233
|
+
}
|
|
234
|
+
interface AnalysisWarning {
|
|
235
|
+
message: string;
|
|
236
|
+
location?: Location;
|
|
237
|
+
code: string;
|
|
238
|
+
}
|
|
239
|
+
interface Location {
|
|
240
|
+
line: number;
|
|
241
|
+
column: number;
|
|
242
|
+
offset: number;
|
|
243
|
+
length: number;
|
|
244
|
+
}
|
|
245
|
+
interface RegistryAPI {
|
|
246
|
+
listFunctions(): OperationMetadata[];
|
|
247
|
+
listOperators(): OperationMetadata[];
|
|
248
|
+
listAllOperations(): OperationMetadata[];
|
|
249
|
+
hasOperation(name: string): boolean;
|
|
250
|
+
hasFunction(name: string): boolean;
|
|
251
|
+
hasOperator(symbol: string): boolean;
|
|
252
|
+
getOperationInfo(name: string): OperationInfo | undefined;
|
|
253
|
+
canRegisterFunction(name: string): boolean;
|
|
254
|
+
}
|
|
255
|
+
interface OperationMetadata {
|
|
256
|
+
name: string;
|
|
257
|
+
kind: 'function' | 'operator' | 'literal';
|
|
258
|
+
syntax: {
|
|
259
|
+
notation: string;
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
interface OperationInfo extends OperationMetadata {
|
|
263
|
+
signature: {
|
|
264
|
+
input?: {
|
|
265
|
+
types?: string[];
|
|
266
|
+
cardinality?: 'singleton' | 'collection' | 'any';
|
|
267
|
+
};
|
|
268
|
+
parameters?: Array<{
|
|
269
|
+
name: string;
|
|
270
|
+
types?: string[];
|
|
271
|
+
cardinality?: 'singleton' | 'collection' | 'any';
|
|
272
|
+
optional?: boolean;
|
|
273
|
+
}>;
|
|
274
|
+
output?: {
|
|
275
|
+
type?: string | 'dynamic';
|
|
276
|
+
cardinality?: 'singleton' | 'collection' | 'preserve-input';
|
|
277
|
+
};
|
|
278
|
+
};
|
|
279
|
+
description?: string;
|
|
280
|
+
examples?: string[];
|
|
281
|
+
}
|
|
282
|
+
interface FHIRPathBuilder {
|
|
283
|
+
withModelProvider(provider: ModelProvider): this;
|
|
284
|
+
withCustomFunction(name: string, fn: CustomFunction): this;
|
|
285
|
+
withVariable(name: string, value: any): this;
|
|
286
|
+
build(): FHIRPathAPI;
|
|
287
|
+
}
|
|
288
|
+
interface FHIRPathAPI {
|
|
289
|
+
parse(expression: string): FHIRPathExpression;
|
|
290
|
+
evaluate(expression: string | FHIRPathExpression, input?: any): any[];
|
|
291
|
+
compile(expression: string | FHIRPathExpression): CompiledExpression;
|
|
292
|
+
analyze(expression: string | FHIRPathExpression): AnalysisResult;
|
|
293
|
+
inspect(expression: string | FHIRPathExpression, input?: any, context?: EvaluationContext): InspectResult;
|
|
294
|
+
registry: RegistryAPI;
|
|
295
|
+
}
|
|
296
|
+
interface InspectResult {
|
|
297
|
+
result: any[];
|
|
298
|
+
expression: string;
|
|
299
|
+
ast: ASTNode;
|
|
300
|
+
executionTime: number;
|
|
301
|
+
traces: TraceEntry[];
|
|
302
|
+
evaluationSteps?: EvaluationStep[];
|
|
303
|
+
errors?: ErrorInfo[];
|
|
304
|
+
warnings?: WarningInfo[];
|
|
305
|
+
}
|
|
306
|
+
interface TraceEntry {
|
|
307
|
+
name: string;
|
|
308
|
+
values: any[];
|
|
309
|
+
timestamp: number;
|
|
310
|
+
location?: SourceLocation;
|
|
311
|
+
depth: number;
|
|
312
|
+
}
|
|
313
|
+
interface EvaluationStep {
|
|
314
|
+
nodeType: string;
|
|
315
|
+
expression: string;
|
|
316
|
+
input: any[];
|
|
317
|
+
output: any[];
|
|
318
|
+
variables: Record<string, any>;
|
|
319
|
+
timestamp: number;
|
|
320
|
+
duration: number;
|
|
321
|
+
}
|
|
322
|
+
interface SourceLocation {
|
|
323
|
+
line: number;
|
|
324
|
+
column: number;
|
|
325
|
+
offset: number;
|
|
326
|
+
}
|
|
327
|
+
interface ErrorInfo {
|
|
328
|
+
message: string;
|
|
329
|
+
type: string;
|
|
330
|
+
location?: SourceLocation;
|
|
331
|
+
stack?: string;
|
|
332
|
+
}
|
|
333
|
+
interface WarningInfo {
|
|
334
|
+
message: string;
|
|
335
|
+
code: string;
|
|
336
|
+
location?: SourceLocation;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
declare class PublicRegistryAPI implements RegistryAPI {
|
|
340
|
+
listFunctions(): OperationMetadata[];
|
|
341
|
+
listOperators(): OperationMetadata[];
|
|
342
|
+
listAllOperations(): OperationMetadata[];
|
|
343
|
+
hasOperation(name: string): boolean;
|
|
344
|
+
hasFunction(name: string): boolean;
|
|
345
|
+
hasOperator(symbol: string): boolean;
|
|
346
|
+
getOperationInfo(name: string): OperationInfo | undefined;
|
|
347
|
+
canRegisterFunction(name: string): boolean;
|
|
348
|
+
private toMetadata;
|
|
349
|
+
private toOperationInfo;
|
|
350
|
+
private extractTypes;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
declare function parse(expression: string): FHIRPathExpression;
|
|
354
|
+
declare function evaluate(expression: string | FHIRPathExpression, input?: any, context?: EvaluationContext): any[];
|
|
355
|
+
declare function compile(expression: string | FHIRPathExpression, options?: CompileOptions): CompiledExpression;
|
|
356
|
+
declare function analyze(expression: string | FHIRPathExpression, options?: AnalyzeOptions): AnalysisResult;
|
|
357
|
+
declare const registry: PublicRegistryAPI;
|
|
358
|
+
|
|
359
|
+
declare class FHIRPath {
|
|
360
|
+
static builder(): FHIRPathBuilder;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
declare enum ErrorCode {
|
|
364
|
+
PARSE_ERROR = "PARSE_ERROR",
|
|
365
|
+
SYNTAX_ERROR = "SYNTAX_ERROR",
|
|
366
|
+
UNEXPECTED_TOKEN = "UNEXPECTED_TOKEN",
|
|
367
|
+
UNTERMINATED_STRING = "UNTERMINATED_STRING",
|
|
368
|
+
INVALID_ESCAPE = "INVALID_ESCAPE",
|
|
369
|
+
TYPE_ERROR = "TYPE_ERROR",
|
|
370
|
+
TYPE_MISMATCH = "TYPE_MISMATCH",
|
|
371
|
+
UNKNOWN_TYPE = "UNKNOWN_TYPE",
|
|
372
|
+
CARDINALITY_ERROR = "CARDINALITY_ERROR",
|
|
373
|
+
RUNTIME_ERROR = "RUNTIME_ERROR",
|
|
374
|
+
UNDEFINED_VARIABLE = "UNDEFINED_VARIABLE",
|
|
375
|
+
UNDEFINED_FUNCTION = "UNDEFINED_FUNCTION",
|
|
376
|
+
INVALID_ARGUMENT = "INVALID_ARGUMENT",
|
|
377
|
+
DIVISION_BY_ZERO = "DIVISION_BY_ZERO",
|
|
378
|
+
ANALYSIS_ERROR = "ANALYSIS_ERROR",
|
|
379
|
+
UNREACHABLE_CODE = "UNREACHABLE_CODE",
|
|
380
|
+
AMBIGUOUS_TYPE = "AMBIGUOUS_TYPE"
|
|
381
|
+
}
|
|
382
|
+
declare class FHIRPathError extends Error {
|
|
383
|
+
code: ErrorCode;
|
|
384
|
+
location?: Location | undefined;
|
|
385
|
+
expression?: string | undefined;
|
|
386
|
+
constructor(message: string, code: ErrorCode, location?: Location | undefined, expression?: string | undefined);
|
|
387
|
+
toString(): string;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
declare const _default: {
|
|
391
|
+
parse: typeof parse;
|
|
392
|
+
evaluate: typeof evaluate;
|
|
393
|
+
compile: typeof compile;
|
|
394
|
+
analyze: typeof analyze;
|
|
395
|
+
registry: PublicRegistryAPI;
|
|
396
|
+
};
|
|
397
|
+
|
|
398
|
+
export { type ASTNode, type AnalysisError, type AnalysisResult, type AnalysisWarning, type AnalyzeOptions, type BinaryNode, type CollectionNode, type CompileOptions, type CompiledExpression, type CustomFunction, type CustomFunctionMap, ErrorCode, type EvaluationContext, FHIRPath, type FHIRPathAPI, type FHIRPathBuilder, FHIRPathError, type FHIRPathExpression, type FunctionNode, type IdentifierNode, type IndexNode, type LiteralNode, type Location, type MembershipTestNode, type ModelProvider, NodeType, type OperationInfo, type OperationMetadata, type Position, type PropertyDefinition, type RegistryAPI, type Token, TokenType, type TypeCastNode, type TypeReferenceNode, type UnaryNode, type UnionNode, type VariableNode, analyze, compile, _default as default, evaluate, parse, registry };
|