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
package/dist/api/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/api/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/api/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/api/project.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { R4TypeOf } from '../r4/generated/type-maps.ts';
|
|
2
|
-
import type {
|
|
2
|
+
import type { EmptyFhirpathTypeContext, FhirpathResultForContext } from '../typed/infer.ts';
|
|
3
3
|
import { type Compiler, type EvaluateOptions } from './compile.ts';
|
|
4
4
|
/**
|
|
5
5
|
* One `project()` column. A string or `{ path }` returns one optional value.
|
|
@@ -46,7 +46,7 @@ type ColumnPath<Column> = Column extends string ? Column : Column extends {
|
|
|
46
46
|
path: infer Path extends string;
|
|
47
47
|
} ? Path : never;
|
|
48
48
|
/** Infers the values after the selected conversion, or from the path when no conversion is set. */
|
|
49
|
-
type ColumnValues<Column, Root extends string> = Column extends {
|
|
49
|
+
type ColumnValues<Column, Root extends string, Context extends object> = Column extends {
|
|
50
50
|
as: (value: never) => infer R;
|
|
51
51
|
} ? R[] : Column extends {
|
|
52
52
|
as: 'Date';
|
|
@@ -62,22 +62,22 @@ type ColumnValues<Column, Root extends string> = Column extends {
|
|
|
62
62
|
enum: readonly (infer V extends string)[];
|
|
63
63
|
} ? V[] : Column extends {
|
|
64
64
|
type: infer T extends keyof R4TypeOf;
|
|
65
|
-
} ? R4TypeOf[T][] :
|
|
65
|
+
} ? R4TypeOf[T][] : FhirpathResultForContext<ColumnPath<Column>, Root, Context>;
|
|
66
66
|
/** A column's output type. A default replaces `undefined`; a collection returns every value. */
|
|
67
67
|
export type ColumnResult<Column extends string | {
|
|
68
68
|
path: string;
|
|
69
69
|
} | {
|
|
70
70
|
test: string;
|
|
71
|
-
}, Root extends string = 'opaque'> = Column extends {
|
|
71
|
+
}, Root extends string = 'opaque', Context extends object = EmptyFhirpathTypeContext> = Column extends {
|
|
72
72
|
test: string;
|
|
73
73
|
} ? boolean : Column extends {
|
|
74
74
|
collection: true;
|
|
75
|
-
} ? ColumnValues<Column, Root> : Column extends {
|
|
75
|
+
} ? ColumnValues<Column, Root, Context> : Column extends {
|
|
76
76
|
default: infer D;
|
|
77
|
-
} ? ColumnValues<Column, Root>[number] | D : ColumnValues<Column, Root>[number] | undefined;
|
|
77
|
+
} ? ColumnValues<Column, Root, Context>[number] | D : ColumnValues<Column, Root, Context>[number] | undefined;
|
|
78
78
|
/** The row shape `project()` produces: each column's type inferred from its expression. */
|
|
79
|
-
export type Projection<Columns extends ProjectionColumns, Root extends string = 'opaque'> = {
|
|
80
|
-
-readonly [K in keyof Columns]: ColumnResult<Columns[K], Root>;
|
|
79
|
+
export type Projection<Columns extends ProjectionColumns, Root extends string = 'opaque', Context extends object = EmptyFhirpathTypeContext> = {
|
|
80
|
+
-readonly [K in keyof Columns]: ColumnResult<Columns[K], Root, Context>;
|
|
81
81
|
};
|
|
82
82
|
/**
|
|
83
83
|
* Projects one row per input subject. Each row gets one shared context, so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/api/project.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/api/project.ts"],"names":[],"mappings":"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"}
|
package/dist/api/project.js
CHANGED
|
@@ -5,6 +5,7 @@ import { criteriaBoolean } from "../values/collection.js";
|
|
|
5
5
|
import { toCollection, unwrap } from "../values/typed-value.js";
|
|
6
6
|
import { toSubjects } from "./bundle.js";
|
|
7
7
|
import { contextFactory } from "./compile.js";
|
|
8
|
+
import { assertStrictExpression } from "./strict.js";
|
|
8
9
|
/** The `as: 'Date'` coercion; a value that is not a parseable date string becomes empty. */
|
|
9
10
|
function toJsDates(values) {
|
|
10
11
|
return values.flatMap(value => {
|
|
@@ -104,27 +105,33 @@ function inRow({ index, total }) {
|
|
|
104
105
|
function planColumn(name, column, compile) {
|
|
105
106
|
if (typeof column !== 'string' && 'test' in column) {
|
|
106
107
|
const criteria = compile(column.test);
|
|
107
|
-
return
|
|
108
|
+
return {
|
|
109
|
+
ast: criteria.ast,
|
|
110
|
+
read: (root, context) => criteriaBoolean(evaluateNode(criteria.ast, forkVariables(context), root)),
|
|
111
|
+
};
|
|
108
112
|
}
|
|
109
113
|
const spec = typeof column === 'string' ? { path: column } : column;
|
|
110
114
|
assertShaperOptions(name, spec);
|
|
111
115
|
const expression = compile(spec.path);
|
|
112
116
|
const applyAs = coercion(spec);
|
|
113
117
|
const empty = 'default' in spec ? spec.default : undefined;
|
|
114
|
-
return
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
118
|
+
return {
|
|
119
|
+
ast: expression.ast,
|
|
120
|
+
read: (root, context, at) => {
|
|
121
|
+
const values = evaluateNode(expression.ast, forkVariables(context), root).map(unwrap);
|
|
122
|
+
if (spec.collection === true) {
|
|
123
|
+
return applyAs(values);
|
|
124
|
+
}
|
|
125
|
+
// The scalar-column rule counts the expression's values, before any `as`
|
|
126
|
+
// coercion or `choices` miss drops them. One row of a batch can be the only
|
|
127
|
+
// one that breaks it, so the message says which — `%rowIndex` numbering,
|
|
128
|
+
// the same the columns see.
|
|
129
|
+
if (values.length > 1) {
|
|
130
|
+
throw new FhirPathRuntimeError(`project(): column '${name}' yielded ${values.length} values${inRow(at)}; append first() or set collection: true`);
|
|
131
|
+
}
|
|
132
|
+
const coerced = applyAs(values);
|
|
133
|
+
return coerced.length > 0 ? coerced[0] : empty;
|
|
134
|
+
},
|
|
128
135
|
};
|
|
129
136
|
}
|
|
130
137
|
/**
|
|
@@ -133,16 +140,21 @@ function planColumn(name, column, compile) {
|
|
|
133
140
|
* `%rowIndex` and `%rowTotal` replace matching environment entries.
|
|
134
141
|
*/
|
|
135
142
|
export function projectRows(input, columns, options, compile) {
|
|
136
|
-
const
|
|
143
|
+
const planned = Object.entries(columns).map(([name, column]) => [name, planColumn(name, column, compile)]);
|
|
137
144
|
const makeContext = contextFactory(options);
|
|
138
145
|
const subjects = toSubjects(input);
|
|
139
146
|
return subjects.map((subject, index) => {
|
|
140
147
|
const root = toCollection(subject.value);
|
|
141
148
|
const at = { index, total: subjects.length };
|
|
142
|
-
const
|
|
149
|
+
const rowEnv = { rowIndex: index, rowTotal: subjects.length };
|
|
150
|
+
const strictOptions = options.strict === true ? { ...options, env: { ...options.env, ...rowEnv } } : options;
|
|
151
|
+
for (const [, column] of planned) {
|
|
152
|
+
assertStrictExpression(column.ast, root, strictOptions);
|
|
153
|
+
}
|
|
154
|
+
const context = makeContext(root, rowEnv);
|
|
143
155
|
const row = {};
|
|
144
|
-
for (const [name,
|
|
145
|
-
row[name] = read(root, context, at);
|
|
156
|
+
for (const [name, column] of planned) {
|
|
157
|
+
row[name] = column.read(root, context, at);
|
|
146
158
|
}
|
|
147
159
|
return row;
|
|
148
160
|
});
|
package/dist/api/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/api/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAmB,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAiB,cAAc,EAAwB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/api/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AstNode } from '../parser/ast.ts';
|
|
2
|
+
import type { TypedValue } from '../values/typed-value.ts';
|
|
3
|
+
import type { EvaluateOptions } from './compile.ts';
|
|
4
|
+
/** Reject every error-severity analyzer finding before strict evaluation begins. */
|
|
5
|
+
export declare function assertStrictExpression(ast: AstNode, root: TypedValue[], options: EvaluateOptions | undefined): void;
|
|
6
|
+
//# sourceMappingURL=strict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strict.d.ts","sourceRoot":"","sources":["../../src/api/strict.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAiB,eAAe,EAAE,MAAM,cAAc,CAAA;AAOlE,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAiDnH"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { analyzeRuntimeAstDetailed, } from "../analyzer/analyze.js";
|
|
2
|
+
import { analyzerVariable, runtimeAnalyzerEnvironmentVariables, runtimeAnalyzerVariable, } from "../analyzer/declarations.js";
|
|
3
|
+
import { normalizeEnvKeys } from "../engine/context.js";
|
|
4
|
+
import { FhirPathTypeError } from "../errors.js";
|
|
5
|
+
import { parse } from "../parser/parser.js";
|
|
6
|
+
/** Reject every error-severity analyzer finding before strict evaluation begins. */
|
|
7
|
+
export function assertStrictExpression(ast, root, options) {
|
|
8
|
+
if (options?.strict !== true) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const model = options.model;
|
|
12
|
+
const analyzerRoot = runtimeRoot(root, model);
|
|
13
|
+
const variables = runtimeAnalyzerEnvironmentVariables(options.env, options.envTypes, model);
|
|
14
|
+
const declarations = normalizeEnvKeys(options.varTypes);
|
|
15
|
+
const findings = [];
|
|
16
|
+
for (const [name, value] of Object.entries(normalizeEnvKeys(options.vars))) {
|
|
17
|
+
const declaration = declarations[name];
|
|
18
|
+
if (isResolvedCollection(value)) {
|
|
19
|
+
variables[name] = runtimeAnalyzerVariable(value, model, declaration);
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const details = analyzeRuntimeAstDetailed(astOf(value), analyzerOptions(options, variables), analyzerRoot);
|
|
23
|
+
findings.push(...details.diagnostics
|
|
24
|
+
.filter(diagnostic => diagnostic.severity === 'error')
|
|
25
|
+
.map(diagnostic => ({ diagnostic, subject: `vars.${name}` })));
|
|
26
|
+
variables[name] =
|
|
27
|
+
declaration === undefined
|
|
28
|
+
? {
|
|
29
|
+
...(details.result.types !== undefined && { types: details.result.types }),
|
|
30
|
+
...(details.result.single !== undefined && { single: details.result.single }),
|
|
31
|
+
}
|
|
32
|
+
: analyzerVariable(declaration);
|
|
33
|
+
}
|
|
34
|
+
for (const [name, declaration] of Object.entries(declarations)) {
|
|
35
|
+
variables[name] ??= analyzerVariable(declaration);
|
|
36
|
+
}
|
|
37
|
+
const details = analyzeRuntimeAstDetailed(ast, analyzerOptions(options, variables), analyzerRoot);
|
|
38
|
+
findings.push(...details.diagnostics.filter(diagnostic => diagnostic.severity === 'error').map(diagnostic => ({ diagnostic })));
|
|
39
|
+
if (findings.length > 0) {
|
|
40
|
+
throw new FhirPathTypeError(formatFindings(findings));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function analyzerOptions(options, variables) {
|
|
44
|
+
return {
|
|
45
|
+
...(options.model !== undefined && { model: options.model }),
|
|
46
|
+
...(options.functions !== undefined && { functions: options.functions }),
|
|
47
|
+
variables,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function runtimeRoot(root, model) {
|
|
51
|
+
const variable = runtimeAnalyzerVariable(root, model);
|
|
52
|
+
return {
|
|
53
|
+
types: variable.types,
|
|
54
|
+
single: variable.single,
|
|
55
|
+
exactTypes: variable.exactTypes,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function isResolvedCollection(value) {
|
|
59
|
+
return Array.isArray(value);
|
|
60
|
+
}
|
|
61
|
+
function astOf(expression) {
|
|
62
|
+
return typeof expression === 'string' ? parse(expression) : expression.ast;
|
|
63
|
+
}
|
|
64
|
+
function formatFindings(findings) {
|
|
65
|
+
const lines = findings.map(({ diagnostic, subject }) => {
|
|
66
|
+
const prefix = subject === undefined ? '' : `${subject}: `;
|
|
67
|
+
return `- [${diagnostic.code}] ${prefix}${diagnostic.message} (line ${diagnostic.span.line}, column ${diagnostic.span.column})`;
|
|
68
|
+
});
|
|
69
|
+
return `Strict evaluation failed:\n${lines.join('\n')}`;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=strict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strict.js","sourceRoot":"","sources":["../../src/api/strict.ts"],"names":[],"mappings":"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"}
|
package/dist/api/tagged.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { R4TypeOf } from '../r4/generated/type-maps.ts';
|
|
2
|
-
import type { FhirpathInput,
|
|
3
|
-
import { CompiledExpression } from './compile.ts';
|
|
2
|
+
import type { FhirpathInput, FhirTypeName } from '../typed/infer.ts';
|
|
3
|
+
import { CompiledExpression, type InferredExpressionResult } from './compile.ts';
|
|
4
4
|
/**
|
|
5
5
|
* Compiles a FHIRPath expression. The call form infers supported literal
|
|
6
6
|
* expressions. Its optional input type gives relative paths a type context for
|
|
@@ -8,7 +8,7 @@ import { CompiledExpression } from './compile.ts';
|
|
|
8
8
|
* TypeScript does not preserve the literal type. Tags reject interpolation; use
|
|
9
9
|
* environment variables for data.
|
|
10
10
|
*/
|
|
11
|
-
export declare function fhirpath<const Expr extends string, const Root extends FhirTypeName, TResult extends unknown[] =
|
|
12
|
-
export declare function fhirpath<const Expr extends string, TInput = FhirpathInput<Expr>, TResult extends unknown[] =
|
|
11
|
+
export declare function fhirpath<const Expr extends string, const Root extends FhirTypeName, TResult extends unknown[] | InferredExpressionResult = InferredExpressionResult>(expression: Expr, inputType: Root): CompiledExpression<Expr, R4TypeOf[Root], TResult, Root>;
|
|
12
|
+
export declare function fhirpath<const Expr extends string, TInput = FhirpathInput<Expr>, TResult extends unknown[] | InferredExpressionResult = InferredExpressionResult>(expression: Expr): CompiledExpression<Expr, TInput, TResult>;
|
|
13
13
|
export declare function fhirpath(strings: TemplateStringsArray, ...substitutions: never[]): CompiledExpression;
|
|
14
14
|
//# sourceMappingURL=tagged.d.ts.map
|
package/dist/api/tagged.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tagged.d.ts","sourceRoot":"","sources":["../../src/api/tagged.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"tagged.d.ts","sourceRoot":"","sources":["../../src/api/tagged.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAEhF;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,IAAI,SAAS,YAAY,EAC/B,OAAO,SAAS,OAAO,EAAE,GAAG,wBAAwB,GAAG,wBAAwB,EAC/E,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;AAC7F,wBAAgB,QAAQ,CACtB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,EAC5B,OAAO,SAAS,OAAO,EAAE,GAAG,wBAAwB,GAAG,wBAAwB,EAC/E,UAAU,EAAE,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AAC9D,wBAAgB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAA"}
|
package/dist/api/tagged.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tagged.js","sourceRoot":"","sources":["../../src/api/tagged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"tagged.js","sourceRoot":"","sources":["../../src/api/tagged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,OAAO,EAAE,kBAAkB,EAAiC,MAAM,cAAc,CAAA;AAoBhF,MAAM,UAAU,QAAQ,CAAC,KAAoC,EAAE,GAAG,IAAe;IAC/E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,wEAAwE;QACxE,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CACrB,4FAA4F,CAC7F,CAAA;IACH,CAAC;IACD,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAA;AACnD,CAAC"}
|
package/dist/cli/dto-check.js
CHANGED
|
@@ -61,9 +61,10 @@ function analyzeFor(dto, engines) {
|
|
|
61
61
|
return analyzeDto(dto, { engine: merged(engines) });
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
|
-
* Every engine's context as one: the union of their registered functions
|
|
65
|
-
*
|
|
66
|
-
* FHIR version, and an unregistered DTO names
|
|
64
|
+
* Every engine's context as one: the union of their registered functions,
|
|
65
|
+
* environment declarations, and vars. The first engine's `model` stands for
|
|
66
|
+
* all of them — a project binds one FHIR version, and an unregistered DTO names
|
|
67
|
+
* no engine that could pick another.
|
|
67
68
|
*/
|
|
68
69
|
function merged(engines) {
|
|
69
70
|
return {
|
|
@@ -71,6 +72,9 @@ function merged(engines) {
|
|
|
71
72
|
...engines[0]?.defaults,
|
|
72
73
|
functions: Object.assign({}, ...engines.map(engine => engine.defaults.functions)),
|
|
73
74
|
env: Object.assign({}, ...engines.map(engine => engine.defaults.env)),
|
|
75
|
+
envTypes: Object.assign({}, ...engines.map(engine => engine.defaults.envTypes)),
|
|
76
|
+
vars: Object.assign({}, ...engines.map(engine => engine.defaults.vars)),
|
|
77
|
+
varTypes: Object.assign({}, ...engines.map(engine => engine.defaults.varTypes)),
|
|
74
78
|
},
|
|
75
79
|
};
|
|
76
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dto-check.js","sourceRoot":"","sources":["../../src/cli/dto-check.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dto-check.js","sourceRoot":"","sources":["../../src/cli/dto-check.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/context.d.ts
CHANGED
|
@@ -131,13 +131,15 @@ export interface EvaluationContext {
|
|
|
131
131
|
* seeds them (createContext) — a builtin added here is known there for free.
|
|
132
132
|
*/
|
|
133
133
|
export declare const BUILTIN_ENV_VARIABLE_NAMES: ReadonlySet<string>;
|
|
134
|
+
/** The canonical key used for environment and variable maps. */
|
|
135
|
+
export declare function bareEnvironmentName(name: string): string;
|
|
134
136
|
/**
|
|
135
137
|
* Env records accept variable names with or without the leading `%`
|
|
136
138
|
* (`{ '%loinc': … }` or `{ loinc: … }`). Normalize to bare names — the form the
|
|
137
139
|
* context binds — so code that merges or overrides env records treats both
|
|
138
140
|
* spellings as one namespace. Later entries win on the same bare name.
|
|
139
141
|
*/
|
|
140
|
-
export declare function normalizeEnvKeys<T>(env: Record<string, T
|
|
142
|
+
export declare function normalizeEnvKeys<T>(env: Readonly<Record<string, T>> | undefined): Record<string, T>;
|
|
141
143
|
/**
|
|
142
144
|
* An env record as the collections a context binds: names normalized, values
|
|
143
145
|
* wrapped. The one conversion from the host's env shape into the engine's, used
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/context.js
CHANGED
|
@@ -17,6 +17,10 @@ export const BUILTIN_ENV_VARIABLE_NAMES = new Set([
|
|
|
17
17
|
'resource',
|
|
18
18
|
'rootResource',
|
|
19
19
|
]);
|
|
20
|
+
/** The canonical key used for environment and variable maps. */
|
|
21
|
+
export function bareEnvironmentName(name) {
|
|
22
|
+
return name.startsWith('%') ? name.slice(1) : name;
|
|
23
|
+
}
|
|
20
24
|
/**
|
|
21
25
|
* Env records accept variable names with or without the leading `%`
|
|
22
26
|
* (`{ '%loinc': … }` or `{ loinc: … }`). Normalize to bare names — the form the
|
|
@@ -26,7 +30,7 @@ export const BUILTIN_ENV_VARIABLE_NAMES = new Set([
|
|
|
26
30
|
export function normalizeEnvKeys(env) {
|
|
27
31
|
const normalized = {};
|
|
28
32
|
for (const [name, value] of Object.entries(env ?? {})) {
|
|
29
|
-
normalized[
|
|
33
|
+
normalized[bareEnvironmentName(name)] = value;
|
|
30
34
|
}
|
|
31
35
|
return normalized;
|
|
32
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGxE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAmB,MAAM,0BAA0B,CAAA;AAyIvF,MAAM,iBAAiB,GAAgC,IAAI,GAAG,CAAC;IAC7D,CAAC,MAAM,EAAE,2BAA2B,CAAC;IACrC,CAAC,KAAK,EAAE,wBAAwB,CAAC;IACjC,CAAC,OAAO,EAAE,kBAAkB,CAAC;CAC9B,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IACrE,GAAG,iBAAiB,CAAC,IAAI,EAAE;IAC3B,SAAS;IACT,UAAU;IACV,cAAc;CACf,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAI,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/engine/navigation.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/engine/navigation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAErD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CA6B9G;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAkBxE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FhirPathTypeError } from "../errors.js";
|
|
2
1
|
import { readModelProperty } from "../fhir/model-navigation.js";
|
|
3
|
-
import {
|
|
2
|
+
import { rootTypeMatches } from "../values/type-compat.js";
|
|
3
|
+
import { toTypedValue } from "../values/typed-value.js";
|
|
4
4
|
/**
|
|
5
5
|
* Evaluate a bare identifier against the input. The spec's root rule (§10.1) applies
|
|
6
6
|
* first: an identifier naming the item's own type yields the item itself, which is
|
|
@@ -9,21 +9,16 @@ import { OBJECT_TYPE, toTypedValue } from "../values/typed-value.js";
|
|
|
9
9
|
export function navigateIdentifier(context, name, input) {
|
|
10
10
|
const results = [];
|
|
11
11
|
for (const item of input) {
|
|
12
|
-
if (
|
|
12
|
+
if (rootTypeMatches(context.model, item.type, name)) {
|
|
13
13
|
results.push(item);
|
|
14
14
|
}
|
|
15
15
|
else if (context.model && item.type.startsWith(`${context.model.namespace}.`)) {
|
|
16
16
|
const modelRead = readModelProperty(context.model, item, name);
|
|
17
17
|
if (modelRead === undefined) {
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
// (custom resourceTypes) read like raw JSON.
|
|
23
|
-
// See: https://hl7.org/fhirpath/en/index.html#type-safety-and-strict-evaluation
|
|
24
|
-
if (isChoiceKeyMisuse(context, item.type, name)) {
|
|
25
|
-
throw new FhirPathTypeError(`Element '${name}' is not defined on ${item.type}; choice elements use their stem name`);
|
|
26
|
-
}
|
|
18
|
+
// Unknown model elements navigate to empty. Strict evaluation runs the
|
|
19
|
+
// analyzer before reaching this point, including for choice-key misuse.
|
|
20
|
+
// Types the model has never heard of (custom resourceTypes) still read
|
|
21
|
+
// like raw JSON.
|
|
27
22
|
if (name === 'resourceType' ||
|
|
28
23
|
(context.model.listElements !== undefined && context.model.listElements(item.type) === undefined)) {
|
|
29
24
|
results.push(...getProperty(item, name));
|
|
@@ -43,42 +38,6 @@ export function navigateIdentifier(context, name, input) {
|
|
|
43
38
|
}
|
|
44
39
|
return results;
|
|
45
40
|
}
|
|
46
|
-
/** True for `valueQuantity`-style keys whose stem is a choice element of the type. */
|
|
47
|
-
function isChoiceKeyMisuse(context, type, name) {
|
|
48
|
-
const model = context.model;
|
|
49
|
-
for (let position = 1; position < name.length; position++) {
|
|
50
|
-
if (!/[A-Z]/.test(name[position])) {
|
|
51
|
-
continue;
|
|
52
|
-
}
|
|
53
|
-
const stem = name.slice(0, position);
|
|
54
|
-
if (model.getElement(type, stem)?.isChoice === true) {
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
function matchesTypeName(context, item, name) {
|
|
61
|
-
// Only the namespace strips off: the backbone type FHIR.ValueSet.expansion.contains
|
|
62
|
-
// must not answer to the element name 'contains'. Lowercase primitive type names
|
|
63
|
-
// (FHIR.code) never self-match either — `children().code` means the element.
|
|
64
|
-
if (!/^[A-Z]/.test(name)) {
|
|
65
|
-
// Lowercase names are always elements: `children().code` never filters by the
|
|
66
|
-
// primitive type FHIR.code.
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
const separator = item.type.indexOf('.');
|
|
70
|
-
const local = separator === -1 ? item.type : item.type.slice(separator + 1);
|
|
71
|
-
if (local === name && item.type !== OBJECT_TYPE) {
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
if (context.model) {
|
|
75
|
-
const canonical = context.model.resolveType(name);
|
|
76
|
-
if (canonical !== undefined) {
|
|
77
|
-
return context.model.isSubtypeOf(item.type, canonical);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
41
|
/** Read one child element from a complex value, flattening arrays. Missing → empty. */
|
|
83
42
|
export function getProperty(item, name) {
|
|
84
43
|
const value = item.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/engine/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/engine/navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-matching.d.ts","sourceRoot":"","sources":["../../src/engine/type-matching.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"type-matching.d.ts","sourceRoot":"","sources":["../../src/engine/type-matching.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,KAAK,UAAU,EAAiB,MAAM,0BAA0B,CAAA;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AASvF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,OAAO,CAsCT;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,UAAU,EAAE,GAClB,kBAAkB,CAwBpB;AAeD,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAWpF"}
|