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":"engine.js","sourceRoot":"","sources":["../../src/api/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/api/engine.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { R4TypeOf } from '../r4/generated/type-maps.ts';
2
- import type { FhirpathResultIn } from '../typed/infer.ts';
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][] : FhirpathResultIn<ColumnPath<Column>, Root>;
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":"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"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/api/project.ts"],"names":[],"mappings":"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"}
@@ -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 (root, context) => criteriaBoolean(evaluateNode(criteria.ast, forkVariables(context), root));
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 (root, context, at) => {
115
- const values = evaluateNode(expression.ast, forkVariables(context), root).map(unwrap);
116
- if (spec.collection === true) {
117
- return applyAs(values);
118
- }
119
- // The scalar-column rule counts the expression's values, before any `as`
120
- // coercion or `choices` miss drops them. One row of a batch can be the only
121
- // one that breaks it, so the message says which `%rowIndex` numbering,
122
- // the same the columns see.
123
- if (values.length > 1) {
124
- throw new FhirPathRuntimeError(`project(): column '${name}' yielded ${values.length} values${inRow(at)}; append first() or set collection: true`);
125
- }
126
- const coerced = applyAs(values);
127
- return coerced.length > 0 ? coerced[0] : empty;
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 readers = Object.entries(columns).map(([name, column]) => [name, planColumn(name, column, compile)]);
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 context = makeContext(root, { rowIndex: index, rowTotal: subjects.length });
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, read] of readers) {
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
  });
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/api/project.ts"],"names":[],"mappings":"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"}
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;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AA0EpD,4FAA4F;AAC5F,SAAS,SAAS,CAAC,MAAiB;IAClC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,+FAA+F;AAC/F,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QACzF,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACf,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,qFAAqF;AACrF,SAAS,YAAY,CAAC,OAA0C;IAC9D,OAAO,MAAM,CAAC,EAAE,CACd,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACrB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QACzB,OAAO,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/E,CAAC,CAAC,CAAA;AACN,CAAC;AAED,iGAAiG;AACjG,SAAS,WAAW,CAAC,IAAiC,EAAE,IAAwB;IAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAA;IAClD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CACd,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACrB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QACzB,MAAM,GAAG,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,CAAA;QACd,CAAC;QACD,MAAM,KAAK,GAAI,GAA+B,CAAC,IAAI,CAAC,CAAA;QACpD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;AACN,CAAC;AAED,wEAAwE;AACxE,SAAS,UAAU,CAAC,OAA0B;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAU,OAAO,CAAC,CAAA;IACzC,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED,uGAAuG;AACvG,SAAS,OAAO,CACd,OAAwE;IAExE,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AAED,+EAA+E;AAC/E,SAAS,QAAQ,CAAC,IAAiD;IACjE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClG,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;QAClB,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAA;AACzB,CAAC;AAED,gFAAgF;AAChF,SAAS,mBAAmB,CAAC,IAAY,EAAE,IAAiD;IAC1F,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAA;IAChG,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,oBAAoB,CAC5B,sBAAsB,IAAI,8DAA8D,CACzF,CAAA;IACH,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,oBAAoB,CAC5B,sBAAsB,IAAI,uEAAuE,CAClG,CAAA;IACH,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,4EAA4E;QAC5E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAa,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,oBAAoB,CAAC,sBAAsB,IAAI,YAAY,IAAI,kCAAkC,CAAC,CAAA;QAC9G,CAAC;IACH,CAAC;AACH,CAAC;AAoBD;;;;GAIG;AACH,SAAS,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAe;IAC1C,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AAC5C,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,IAAY,EAAE,MAAwB,EAAE,OAAiB;IAC3E,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO;YACL,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;SACnG,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAgD,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IAChH,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,KAAK,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1D,OAAO;QACL,GAAG,EAAE,UAAU,CAAC,GAAG;QACnB,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;YAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrF,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;YACxB,CAAC;YACD,yEAAyE;YACzE,4EAA4E;YAC5E,yEAAyE;YACzE,4BAA4B;YAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,oBAAoB,CAC5B,sBAAsB,IAAI,aAAa,MAAM,CAAC,MAAM,UAAU,KAAK,CAAC,EAAE,CAAC,0CAA0C,CAClH,CAAA;YACH,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;YAC/B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAChD,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,OAA0B,EAC1B,OAAwB,EACxB,OAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAU,CAAC,CAAA;IACnH,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAClC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACxC,MAAM,EAAE,GAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;QACzD,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;QAC7D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;QAC5G,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACjC,sBAAsB,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzC,MAAM,GAAG,GAA4B,EAAE,CAAA;QACvC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  import type { R4TypeOf } from '../r4/generated/type-maps.ts';
2
- import type { FhirpathInput, FhirpathResult, FhirpathResultIn, FhirTypeName } from '../typed/infer.ts';
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[] = FhirpathResultIn<Expr, Root>>(expression: Expr, inputType: Root): CompiledExpression<Expr, R4TypeOf[Root], TResult>;
12
- export declare function fhirpath<const Expr extends string, TInput = FhirpathInput<Expr>, TResult extends unknown[] = FhirpathResult<Expr>>(expression: Expr): CompiledExpression<Expr, TInput, TResult>;
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
@@ -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,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,IAAI,SAAS,YAAY,EAC/B,OAAO,SAAS,OAAO,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,EACxD,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;AACvF,wBAAgB,QAAQ,CACtB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,EAC5B,OAAO,SAAS,OAAO,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,EAChD,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"}
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"}
@@ -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,EAAE,MAAM,cAAc,CAAA;AAoBjD,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"}
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"}
@@ -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 and env
65
- * names. The first engine's `model` stands for all of them — a project binds one
66
- * FHIR version, and an unregistered DTO names no engine that could pick another.
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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"}
@@ -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> | undefined): 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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"}
@@ -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[name.startsWith('%') ? name.slice(1) : name] = value;
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":"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"}
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,EAA6B,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrF,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,CAoC9G;AAwCD,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAkBxE"}
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 { OBJECT_TYPE, toTypedValue } from "../values/typed-value.js";
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 (matchesTypeName(context, item, name)) {
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
- // Choice elements go by stem name; a suffixed key like Observation.valueQuantity
19
- // is the one unknown-element shape the official suites require to error at
20
- // runtime. Everything else is the static analyzer's job (spec §11) plain
21
- // unknown elements navigate to empty, and types the model has never heard of
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":"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"}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/engine/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAmB,MAAM,0BAA0B,CAAA;AAGxE;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA0B,EAAE,IAAY,EAAE,KAAmB;IAC9F,MAAM,OAAO,GAAiB,EAAE,CAAA;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAChF,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC9D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,uEAAuE;gBACvE,wEAAwE;gBACxE,uEAAuE;gBACvE,iBAAiB;gBACjB,IACE,IAAI,KAAK,cAAc;oBACvB,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,EACjG,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC9D,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QACzD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,WAAW,CAAC,IAAgB,EAAE,IAAY;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,CAAA;IACX,CAAC;IACD,gFAAgF;IAChF,oDAAoD;IACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,KAAK,GAAI,KAAiC,CAAC,IAAI,CAAC,CAAA;IACtD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;IACjH,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"type-matching.d.ts","sourceRoot":"","sources":["../../src/engine/type-matching.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,UAAU,EAAiB,MAAM,0BAA0B,CAAA;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAsBvF;;;;;;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,CASpF"}
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"}