fhirpath-ts 0.0.0-bootstrap.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/LICENSE +201 -0
- package/README.md +391 -0
- package/THIRD-PARTY-NOTICES.md +296 -0
- package/dist/analyzer/analyze-dto.d.ts +45 -0
- package/dist/analyzer/analyze-dto.d.ts.map +1 -0
- package/dist/analyzer/analyze-dto.js +147 -0
- package/dist/analyzer/analyze-dto.js.map +1 -0
- package/dist/analyzer/analyze.d.ts +98 -0
- package/dist/analyzer/analyze.d.ts.map +1 -0
- package/dist/analyzer/analyze.js +925 -0
- package/dist/analyzer/analyze.js.map +1 -0
- package/dist/analyzer/expression-policy.d.ts +210 -0
- package/dist/analyzer/expression-policy.d.ts.map +1 -0
- package/dist/analyzer/expression-policy.js +254 -0
- package/dist/analyzer/expression-policy.js.map +1 -0
- package/dist/analyzer/index.d.ts +3 -0
- package/dist/analyzer/index.d.ts.map +1 -0
- package/dist/analyzer/index.js +6 -0
- package/dist/analyzer/index.js.map +1 -0
- package/dist/analyzer/regex-safety.d.ts +10 -0
- package/dist/analyzer/regex-safety.d.ts.map +1 -0
- package/dist/analyzer/regex-safety.js +84 -0
- package/dist/analyzer/regex-safety.js.map +1 -0
- package/dist/analyzer/signatures.d.ts +72 -0
- package/dist/analyzer/signatures.d.ts.map +1 -0
- package/dist/analyzer/signatures.js +195 -0
- package/dist/analyzer/signatures.js.map +1 -0
- package/dist/api/bundle.d.ts +29 -0
- package/dist/api/bundle.d.ts.map +1 -0
- package/dist/api/bundle.js +108 -0
- package/dist/api/bundle.js.map +1 -0
- package/dist/api/cache.d.ts +10 -0
- package/dist/api/cache.d.ts.map +1 -0
- package/dist/api/cache.js +38 -0
- package/dist/api/cache.js.map +1 -0
- package/dist/api/column-signature.d.ts +53 -0
- package/dist/api/column-signature.d.ts.map +1 -0
- package/dist/api/column-signature.js +43 -0
- package/dist/api/column-signature.js.map +1 -0
- package/dist/api/compile.d.ts +120 -0
- package/dist/api/compile.d.ts.map +1 -0
- package/dist/api/compile.js +167 -0
- package/dist/api/compile.js.map +1 -0
- package/dist/api/constraints.d.ts +48 -0
- package/dist/api/constraints.d.ts.map +1 -0
- package/dist/api/constraints.js +52 -0
- package/dist/api/constraints.js.map +1 -0
- package/dist/api/dto.d.ts +134 -0
- package/dist/api/dto.d.ts.map +1 -0
- package/dist/api/dto.js +295 -0
- package/dist/api/dto.js.map +1 -0
- package/dist/api/engine.d.ts +136 -0
- package/dist/api/engine.d.ts.map +1 -0
- package/dist/api/engine.js +183 -0
- package/dist/api/engine.js.map +1 -0
- package/dist/api/evaluate.d.ts +7 -0
- package/dist/api/evaluate.d.ts.map +1 -0
- package/dist/api/evaluate.js +10 -0
- package/dist/api/evaluate.js.map +1 -0
- package/dist/api/project.d.ts +89 -0
- package/dist/api/project.d.ts.map +1 -0
- package/dist/api/project.js +150 -0
- package/dist/api/project.js.map +1 -0
- package/dist/api/tagged.d.ts +14 -0
- package/dist/api/tagged.d.ts.map +1 -0
- package/dist/api/tagged.js +13 -0
- package/dist/api/tagged.js.map +1 -0
- package/dist/cli/dto-check.d.ts +25 -0
- package/dist/cli/dto-check.d.ts.map +1 -0
- package/dist/cli/dto-check.js +77 -0
- package/dist/cli/dto-check.js.map +1 -0
- package/dist/cli/fhirpath-check.d.ts +3 -0
- package/dist/cli/fhirpath-check.d.ts.map +1 -0
- package/dist/cli/fhirpath-check.js +149 -0
- package/dist/cli/fhirpath-check.js.map +1 -0
- package/dist/cli/ts-loader.d.mts +3 -0
- package/dist/cli/ts-loader.d.mts.map +1 -0
- package/dist/cli/ts-loader.mjs +48 -0
- package/dist/cli/ts-loader.mjs.map +1 -0
- package/dist/engine/context.d.ts +173 -0
- package/dist/engine/context.d.ts.map +1 -0
- package/dist/engine/context.js +118 -0
- package/dist/engine/context.js.map +1 -0
- package/dist/engine/evaluator.d.ts +7 -0
- package/dist/engine/evaluator.d.ts.map +1 -0
- package/dist/engine/evaluator.js +196 -0
- package/dist/engine/evaluator.js.map +1 -0
- package/dist/engine/navigation.d.ts +11 -0
- package/dist/engine/navigation.d.ts.map +1 -0
- package/dist/engine/navigation.js +102 -0
- package/dist/engine/navigation.js.map +1 -0
- package/dist/engine/operators/collections.d.ts +12 -0
- package/dist/engine/operators/collections.d.ts.map +1 -0
- package/dist/engine/operators/collections.js +31 -0
- package/dist/engine/operators/collections.js.map +1 -0
- package/dist/engine/operators/comparison.d.ts +13 -0
- package/dist/engine/operators/comparison.d.ts.map +1 -0
- package/dist/engine/operators/comparison.js +77 -0
- package/dist/engine/operators/comparison.js.map +1 -0
- package/dist/engine/operators/equality.d.ts +19 -0
- package/dist/engine/operators/equality.d.ts.map +1 -0
- package/dist/engine/operators/equality.js +203 -0
- package/dist/engine/operators/equality.js.map +1 -0
- package/dist/engine/operators/index.d.ts +18 -0
- package/dist/engine/operators/index.d.ts.map +1 -0
- package/dist/engine/operators/index.js +30 -0
- package/dist/engine/operators/index.js.map +1 -0
- package/dist/engine/operators/logic.d.ts +8 -0
- package/dist/engine/operators/logic.d.ts.map +1 -0
- package/dist/engine/operators/logic.js +38 -0
- package/dist/engine/operators/logic.js.map +1 -0
- package/dist/engine/operators/math.d.ts +13 -0
- package/dist/engine/operators/math.d.ts.map +1 -0
- package/dist/engine/operators/math.js +198 -0
- package/dist/engine/operators/math.js.map +1 -0
- package/dist/engine/operators/strings.d.ts +8 -0
- package/dist/engine/operators/strings.d.ts.map +1 -0
- package/dist/engine/operators/strings.js +22 -0
- package/dist/engine/operators/strings.js.map +1 -0
- package/dist/engine/operators/types.d.ts +3 -0
- package/dist/engine/operators/types.d.ts.map +1 -0
- package/dist/engine/operators/types.js +15 -0
- package/dist/engine/operators/types.js.map +1 -0
- package/dist/engine/type-matching.d.ts +20 -0
- package/dist/engine/type-matching.d.ts.map +1 -0
- package/dist/engine/type-matching.js +122 -0
- package/dist/engine/type-matching.js.map +1 -0
- package/dist/errors.d.ts +25 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +21 -0
- package/dist/errors.js.map +1 -0
- package/dist/eslint/index.d.ts +12 -0
- package/dist/eslint/index.d.ts.map +1 -0
- package/dist/eslint/index.js +316 -0
- package/dist/eslint/index.js.map +1 -0
- package/dist/fhir/html-checks.d.ts +7 -0
- package/dist/fhir/html-checks.d.ts.map +1 -0
- package/dist/fhir/html-checks.js +256 -0
- package/dist/fhir/html-checks.js.map +1 -0
- package/dist/fhir/model-navigation.d.ts +11 -0
- package/dist/fhir/model-navigation.d.ts.map +1 -0
- package/dist/fhir/model-navigation.js +142 -0
- package/dist/fhir/model-navigation.js.map +1 -0
- package/dist/functions/aggregate.d.ts +2 -0
- package/dist/functions/aggregate.d.ts.map +1 -0
- package/dist/functions/aggregate.js +127 -0
- package/dist/functions/aggregate.js.map +1 -0
- package/dist/functions/boundary.d.ts +2 -0
- package/dist/functions/boundary.d.ts.map +1 -0
- package/dist/functions/boundary.js +189 -0
- package/dist/functions/boundary.js.map +1 -0
- package/dist/functions/combining.d.ts +2 -0
- package/dist/functions/combining.d.ts.map +1 -0
- package/dist/functions/combining.js +13 -0
- package/dist/functions/combining.js.map +1 -0
- package/dist/functions/control.d.ts +2 -0
- package/dist/functions/control.d.ts.map +1 -0
- package/dist/functions/control.js +25 -0
- package/dist/functions/control.js.map +1 -0
- package/dist/functions/conversion.d.ts +3 -0
- package/dist/functions/conversion.d.ts.map +1 -0
- package/dist/functions/conversion.js +316 -0
- package/dist/functions/conversion.js.map +1 -0
- package/dist/functions/date-components.d.ts +2 -0
- package/dist/functions/date-components.d.ts.map +1 -0
- package/dist/functions/date-components.js +81 -0
- package/dist/functions/date-components.js.map +1 -0
- package/dist/functions/existence.d.ts +4 -0
- package/dist/functions/existence.d.ts.map +1 -0
- package/dist/functions/existence.js +97 -0
- package/dist/functions/existence.js.map +1 -0
- package/dist/functions/fhir.d.ts +2 -0
- package/dist/functions/fhir.d.ts.map +1 -0
- package/dist/functions/fhir.js +222 -0
- package/dist/functions/fhir.js.map +1 -0
- package/dist/functions/filtering.d.ts +2 -0
- package/dist/functions/filtering.d.ts.map +1 -0
- package/dist/functions/filtering.js +112 -0
- package/dist/functions/filtering.js.map +1 -0
- package/dist/functions/install.d.ts +18 -0
- package/dist/functions/install.d.ts.map +1 -0
- package/dist/functions/install.js +20 -0
- package/dist/functions/install.js.map +1 -0
- package/dist/functions/iteration.d.ts +7 -0
- package/dist/functions/iteration.d.ts.map +1 -0
- package/dist/functions/iteration.js +9 -0
- package/dist/functions/iteration.js.map +1 -0
- package/dist/functions/math.d.ts +2 -0
- package/dist/functions/math.d.ts.map +1 -0
- package/dist/functions/math.js +152 -0
- package/dist/functions/math.js.map +1 -0
- package/dist/functions/reflection.d.ts +2 -0
- package/dist/functions/reflection.d.ts.map +1 -0
- package/dist/functions/reflection.js +23 -0
- package/dist/functions/reflection.js.map +1 -0
- package/dist/functions/registry.d.ts +28 -0
- package/dist/functions/registry.d.ts.map +1 -0
- package/dist/functions/registry.js +46 -0
- package/dist/functions/registry.js.map +1 -0
- package/dist/functions/sort.d.ts +2 -0
- package/dist/functions/sort.d.ts.map +1 -0
- package/dist/functions/sort.js +48 -0
- package/dist/functions/sort.js.map +1 -0
- package/dist/functions/string.d.ts +2 -0
- package/dist/functions/string.d.ts.map +1 -0
- package/dist/functions/string.js +353 -0
- package/dist/functions/string.js.map +1 -0
- package/dist/functions/subsetting.d.ts +2 -0
- package/dist/functions/subsetting.d.ts.map +1 -0
- package/dist/functions/subsetting.js +72 -0
- package/dist/functions/subsetting.js.map +1 -0
- package/dist/functions/tree.d.ts +8 -0
- package/dist/functions/tree.d.ts.map +1 -0
- package/dist/functions/tree.js +109 -0
- package/dist/functions/tree.js.map +1 -0
- package/dist/functions/type-specifier.d.ts +8 -0
- package/dist/functions/type-specifier.d.ts.map +1 -0
- package/dist/functions/type-specifier.js +27 -0
- package/dist/functions/type-specifier.js.map +1 -0
- package/dist/functions/utility.d.ts +2 -0
- package/dist/functions/utility.d.ts.map +1 -0
- package/dist/functions/utility.js +76 -0
- package/dist/functions/utility.js.map +1 -0
- package/dist/functions/variables.d.ts +2 -0
- package/dist/functions/variables.d.ts.map +1 -0
- package/dist/functions/variables.js +35 -0
- package/dist/functions/variables.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/lexer/lexer.d.ts +4 -0
- package/dist/lexer/lexer.d.ts.map +1 -0
- package/dist/lexer/lexer.js +318 -0
- package/dist/lexer/lexer.js.map +1 -0
- package/dist/lexer/tokens.d.ts +23 -0
- package/dist/lexer/tokens.d.ts.map +1 -0
- package/dist/lexer/tokens.js +40 -0
- package/dist/lexer/tokens.js.map +1 -0
- package/dist/model/provider.d.ts +36 -0
- package/dist/model/provider.d.ts.map +1 -0
- package/dist/model/provider.js +2 -0
- package/dist/model/provider.js.map +1 -0
- package/dist/parser/ast.d.ts +104 -0
- package/dist/parser/ast.d.ts.map +1 -0
- package/dist/parser/ast.js +2 -0
- package/dist/parser/ast.js.map +1 -0
- package/dist/parser/parser.d.ts +4 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +299 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/parser/precedence.d.ts +24 -0
- package/dist/parser/precedence.d.ts.map +1 -0
- package/dist/parser/precedence.js +52 -0
- package/dist/parser/precedence.js.map +1 -0
- package/dist/parser/printer.d.ts +4 -0
- package/dist/parser/printer.d.ts.map +1 -0
- package/dist/parser/printer.js +112 -0
- package/dist/parser/printer.js.map +1 -0
- package/dist/r4/generated/resources-data.d.ts +3 -0
- package/dist/r4/generated/resources-data.d.ts.map +1 -0
- package/dist/r4/generated/resources-data.js +28628 -0
- package/dist/r4/generated/resources-data.js.map +1 -0
- package/dist/r4/generated/type-maps.d.ts +43153 -0
- package/dist/r4/generated/type-maps.d.ts.map +1 -0
- package/dist/r4/generated/type-maps.js +4 -0
- package/dist/r4/generated/type-maps.js.map +1 -0
- package/dist/r4/generated/types-data.d.ts +3 -0
- package/dist/r4/generated/types-data.d.ts.map +1 -0
- package/dist/r4/generated/types-data.js +2205 -0
- package/dist/r4/generated/types-data.js.map +1 -0
- package/dist/r4/index.d.ts +9 -0
- package/dist/r4/index.d.ts.map +1 -0
- package/dist/r4/index.js +94 -0
- package/dist/r4/index.js.map +1 -0
- package/dist/r4/model-data.d.ts +17 -0
- package/dist/r4/model-data.d.ts.map +1 -0
- package/dist/r4/model-data.js +2 -0
- package/dist/r4/model-data.js.map +1 -0
- package/dist/sites/index.d.ts +31 -0
- package/dist/sites/index.d.ts.map +1 -0
- package/dist/sites/index.js +205 -0
- package/dist/sites/index.js.map +1 -0
- package/dist/typed/infer.d.ts +234 -0
- package/dist/typed/infer.d.ts.map +1 -0
- package/dist/typed/infer.js +85 -0
- package/dist/typed/infer.js.map +1 -0
- package/dist/typed/perf-fixture.types.d.ts +136 -0
- package/dist/typed/perf-fixture.types.d.ts.map +1 -0
- package/dist/typed/perf-fixture.types.js +2 -0
- package/dist/typed/perf-fixture.types.js.map +1 -0
- package/dist/values/collection.d.ts +24 -0
- package/dist/values/collection.d.ts.map +1 -0
- package/dist/values/collection.js +51 -0
- package/dist/values/collection.js.map +1 -0
- package/dist/values/datetime.d.ts +54 -0
- package/dist/values/datetime.d.ts.map +1 -0
- package/dist/values/datetime.js +226 -0
- package/dist/values/datetime.js.map +1 -0
- package/dist/values/decimal.d.ts +48 -0
- package/dist/values/decimal.d.ts.map +1 -0
- package/dist/values/decimal.js +188 -0
- package/dist/values/decimal.js.map +1 -0
- package/dist/values/numeric.d.ts +24 -0
- package/dist/values/numeric.d.ts.map +1 -0
- package/dist/values/numeric.js +53 -0
- package/dist/values/numeric.js.map +1 -0
- package/dist/values/quantity.d.ts +49 -0
- package/dist/values/quantity.d.ts.map +1 -0
- package/dist/values/quantity.js +297 -0
- package/dist/values/quantity.js.map +1 -0
- package/dist/values/temporal-arithmetic.d.ts +17 -0
- package/dist/values/temporal-arithmetic.d.ts.map +1 -0
- package/dist/values/temporal-arithmetic.js +183 -0
- package/dist/values/temporal-arithmetic.js.map +1 -0
- package/dist/values/temporal-compare.d.ts +9 -0
- package/dist/values/temporal-compare.d.ts.map +1 -0
- package/dist/values/temporal-compare.js +59 -0
- package/dist/values/temporal-compare.js.map +1 -0
- package/dist/values/type-compat.d.ts +47 -0
- package/dist/values/type-compat.d.ts.map +1 -0
- package/dist/values/type-compat.js +100 -0
- package/dist/values/type-compat.js.map +1 -0
- package/dist/values/typed-value.d.ts +48 -0
- package/dist/values/typed-value.d.ts.map +1 -0
- package/dist/values/typed-value.js +117 -0
- package/dist/values/typed-value.js.map +1 -0
- package/dist/values/ucum.d.ts +14 -0
- package/dist/values/ucum.d.ts.map +1 -0
- package/dist/values/ucum.js +146 -0
- package/dist/values/ucum.js.map +1 -0
- package/package.json +137 -0
- package/src/analyzer/analyze-dto.ts +195 -0
- package/src/analyzer/analyze.ts +1181 -0
- package/src/analyzer/expression-policy.ts +434 -0
- package/src/analyzer/index.ts +23 -0
- package/src/analyzer/regex-safety.ts +85 -0
- package/src/analyzer/signatures.ts +260 -0
- package/src/api/bundle.ts +132 -0
- package/src/api/cache.ts +40 -0
- package/src/api/column-signature.ts +71 -0
- package/src/api/compile.ts +308 -0
- package/src/api/constraints.ts +104 -0
- package/src/api/dto.ts +445 -0
- package/src/api/engine.ts +328 -0
- package/src/api/evaluate.ts +11 -0
- package/src/api/project.ts +255 -0
- package/src/api/tagged.ts +35 -0
- package/src/cli/dto-check.ts +94 -0
- package/src/cli/fhirpath-check.ts +168 -0
- package/src/cli/ts-loader.mjs +49 -0
- package/src/engine/context.ts +282 -0
- package/src/engine/evaluator.ts +246 -0
- package/src/engine/navigation.ts +106 -0
- package/src/engine/operators/collections.ts +34 -0
- package/src/engine/operators/comparison.ts +82 -0
- package/src/engine/operators/equality.ts +232 -0
- package/src/engine/operators/index.ts +65 -0
- package/src/engine/operators/logic.ts +53 -0
- package/src/engine/operators/math.ts +225 -0
- package/src/engine/operators/strings.ts +25 -0
- package/src/engine/operators/types.ts +16 -0
- package/src/engine/type-matching.ts +148 -0
- package/src/errors.ts +33 -0
- package/src/eslint/index.ts +388 -0
- package/src/fhir/html-checks.ts +266 -0
- package/src/fhir/model-navigation.ts +148 -0
- package/src/functions/aggregate.ts +136 -0
- package/src/functions/boundary.ts +209 -0
- package/src/functions/combining.ts +15 -0
- package/src/functions/control.ts +25 -0
- package/src/functions/conversion.ts +349 -0
- package/src/functions/date-components.ts +88 -0
- package/src/functions/existence.ts +107 -0
- package/src/functions/fhir.ts +247 -0
- package/src/functions/filtering.ts +120 -0
- package/src/functions/install.ts +19 -0
- package/src/functions/iteration.ts +21 -0
- package/src/functions/math.ts +167 -0
- package/src/functions/reflection.ts +24 -0
- package/src/functions/registry.ts +72 -0
- package/src/functions/sort.ts +68 -0
- package/src/functions/string.ts +413 -0
- package/src/functions/subsetting.ts +89 -0
- package/src/functions/tree.ts +112 -0
- package/src/functions/type-specifier.ts +29 -0
- package/src/functions/utility.ts +82 -0
- package/src/functions/variables.ts +36 -0
- package/src/index.ts +30 -0
- package/src/lexer/lexer.ts +341 -0
- package/src/lexer/tokens.ts +69 -0
- package/src/model/provider.ts +36 -0
- package/src/parser/ast.ts +164 -0
- package/src/parser/parser.ts +321 -0
- package/src/parser/precedence.ts +52 -0
- package/src/parser/printer.ts +114 -0
- package/src/r4/generated/resources-data.ts +28631 -0
- package/src/r4/generated/type-maps.ts +22145 -0
- package/src/r4/generated/types-data.ts +2208 -0
- package/src/r4/index.ts +107 -0
- package/src/r4/model-data.ts +17 -0
- package/src/sites/index.ts +285 -0
- package/src/typed/infer.ts +433 -0
- package/src/typed/perf-fixture.types.ts +143 -0
- package/src/values/collection.ts +57 -0
- package/src/values/datetime.ts +285 -0
- package/src/values/decimal.ts +213 -0
- package/src/values/numeric.ts +63 -0
- package/src/values/quantity.ts +358 -0
- package/src/values/temporal-arithmetic.ts +231 -0
- package/src/values/temporal-compare.ts +65 -0
- package/src/values/type-compat.ts +133 -0
- package/src/values/typed-value.ts +151 -0
- package/src/values/ucum.ts +181 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-data.js","sourceRoot":"","sources":["../../../src/r4/generated/types-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FhirPathEngine } from '../api/engine.ts';
|
|
2
|
+
import type { ModelProvider } from '../model/provider.ts';
|
|
3
|
+
export { FHIR_PRIMITIVE_TO_SYSTEM as PRIMITIVE_TO_SYSTEM } from '../values/typed-value.ts';
|
|
4
|
+
export type { GeneratedElement, GeneratedType } from './model-data.ts';
|
|
5
|
+
/** The generated R4 model: type resolution, element lookup, and the type hierarchy. */
|
|
6
|
+
export declare const r4Model: ModelProvider;
|
|
7
|
+
/** A ready-made engine with the R4 model bound: `r4.evaluate('Patient.name.given', patient)`. */
|
|
8
|
+
export declare const r4: FhirPathEngine;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/r4/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAOtE,OAAO,EAAE,wBAAwB,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC1F,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAmCtE,uFAAuF;AACvF,eAAO,MAAM,OAAO,EAAE,aA0DrB,CAAA;AAED,iGAAiG;AACjG,eAAO,MAAM,EAAE,gBAAyC,CAAA"}
|
package/dist/r4/index.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { FhirPathEngine } from "../api/engine.js";
|
|
2
|
+
import { R4_RESOURCES } from "./generated/resources-data.js";
|
|
3
|
+
import { R4_DATA_TYPES } from "./generated/types-data.js";
|
|
4
|
+
// One canonical FHIR-primitive → System map lives in values/typed-value.ts;
|
|
5
|
+
// re-exported here because the model subpath is where consumers look for it.
|
|
6
|
+
export { FHIR_PRIMITIVE_TO_SYSTEM as PRIMITIVE_TO_SYSTEM } from "../values/typed-value.js";
|
|
7
|
+
const NAMESPACE = 'FHIR';
|
|
8
|
+
const PREFIX = `${NAMESPACE}.`;
|
|
9
|
+
function lookupType(name) {
|
|
10
|
+
return R4_RESOURCES[name] ?? R4_DATA_TYPES[name];
|
|
11
|
+
}
|
|
12
|
+
function localName(canonical) {
|
|
13
|
+
return canonical.startsWith(PREFIX) ? canonical.slice(PREFIX.length) : canonical;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Walk a type and its ancestors for an element. Backbone elements are typed by
|
|
17
|
+
* their path (`Patient.contact`), which is itself a key in the generated tables.
|
|
18
|
+
*/
|
|
19
|
+
function findElement(typeName, element) {
|
|
20
|
+
let current = typeName;
|
|
21
|
+
const visited = new Set();
|
|
22
|
+
while (current !== undefined && !visited.has(current)) {
|
|
23
|
+
visited.add(current);
|
|
24
|
+
const definition = lookupType(current);
|
|
25
|
+
if (!definition) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
const found = definition.e[element];
|
|
29
|
+
if (found) {
|
|
30
|
+
return found;
|
|
31
|
+
}
|
|
32
|
+
current = definition.b;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
/** The generated R4 model: type resolution, element lookup, and the type hierarchy. */
|
|
37
|
+
export const r4Model = {
|
|
38
|
+
namespace: NAMESPACE,
|
|
39
|
+
resolveType(name) {
|
|
40
|
+
return lookupType(name) ? `${PREFIX}${name}` : undefined;
|
|
41
|
+
},
|
|
42
|
+
getElement(type, element) {
|
|
43
|
+
const found = findElement(localName(type), element);
|
|
44
|
+
if (!found) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
types: found.t,
|
|
49
|
+
isCollection: found.a === 1,
|
|
50
|
+
isChoice: found.c === 1,
|
|
51
|
+
...(found.r !== undefined && { referenceTargets: found.r }),
|
|
52
|
+
};
|
|
53
|
+
},
|
|
54
|
+
listElements(type) {
|
|
55
|
+
let current = localName(type);
|
|
56
|
+
if (!lookupType(current)) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
const names = [];
|
|
60
|
+
const seen = new Set();
|
|
61
|
+
const visited = new Set();
|
|
62
|
+
while (current !== undefined && !visited.has(current)) {
|
|
63
|
+
visited.add(current);
|
|
64
|
+
const definition = lookupType(current);
|
|
65
|
+
if (!definition) {
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
for (const name of Object.keys(definition.e)) {
|
|
69
|
+
if (!seen.has(name)) {
|
|
70
|
+
seen.add(name);
|
|
71
|
+
names.push(name);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
current = definition.b;
|
|
75
|
+
}
|
|
76
|
+
return names;
|
|
77
|
+
},
|
|
78
|
+
isSubtypeOf(type, base) {
|
|
79
|
+
const target = localName(base);
|
|
80
|
+
let current = localName(type);
|
|
81
|
+
const visited = new Set();
|
|
82
|
+
while (current !== undefined && !visited.has(current)) {
|
|
83
|
+
if (current === target) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
visited.add(current);
|
|
87
|
+
current = lookupType(current)?.b;
|
|
88
|
+
}
|
|
89
|
+
return false;
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
/** A ready-made engine with the R4 model bound: `r4.evaluate('Patient.name.given', patient)`. */
|
|
93
|
+
export const r4 = new FhirPathEngine({ model: r4Model });
|
|
94
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/r4/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Shapes of the generated R4 model data (see scripts/generate-r4-model.ts). */
|
|
2
|
+
export interface GeneratedElement {
|
|
3
|
+
/** Element types; several entries for choice elements (`value[x]`). */
|
|
4
|
+
t: string[];
|
|
5
|
+
/** Present (1) when max cardinality is above 1. */
|
|
6
|
+
a?: 1;
|
|
7
|
+
/** Present (1) for choice elements: JSON keys carry a type suffix (valueQuantity). */
|
|
8
|
+
c?: 1;
|
|
9
|
+
/** Resource names a Reference element may point to (targetProfile); absent when unconstrained. */
|
|
10
|
+
r?: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface GeneratedType {
|
|
13
|
+
/** Base type local name, absent for the roots (Base, Element). */
|
|
14
|
+
b?: string;
|
|
15
|
+
e: Record<string, GeneratedElement>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=model-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-data.d.ts","sourceRoot":"","sources":["../../src/r4/model-data.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,CAAC,EAAE,MAAM,EAAE,CAAA;IACX,mDAAmD;IACnD,CAAC,CAAC,EAAE,CAAC,CAAA;IACL,sFAAsF;IACtF,CAAC,CAAC,EAAE,CAAC,CAAA;IACL,kGAAkG;IAClG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-data.js","sourceRoot":"","sources":["../../src/r4/model-data.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finds FHIRPath expressions in a TypeScript AST. The caller supplies TypeScript,
|
|
3
|
+
* which keeps this entry point free of runtime dependencies. The ESLint rule has
|
|
4
|
+
* a separate ESTree walker that uses the same expression policy.
|
|
5
|
+
*/
|
|
6
|
+
import type TS from 'typescript';
|
|
7
|
+
import { type FileColumnFunction, type LocalModuleOptions } from '../analyzer/expression-policy.ts';
|
|
8
|
+
/** The TypeScript namespace accepted by `createSiteFinder`. */
|
|
9
|
+
export type TypeScriptApi = typeof TS;
|
|
10
|
+
export interface ExpressionSite {
|
|
11
|
+
expression: string;
|
|
12
|
+
/** 0-based offset of the expression text inside the file. */
|
|
13
|
+
start: number;
|
|
14
|
+
line: number;
|
|
15
|
+
column: number;
|
|
16
|
+
/** The DTO fhirType the expression is analyzed against, when the site fixes one. */
|
|
17
|
+
inputType?: string;
|
|
18
|
+
/** A DTO member site, which `analyzeSite` checks with source-only limits. */
|
|
19
|
+
dto?: true;
|
|
20
|
+
/** Callable DTO columns declared in the same file. */
|
|
21
|
+
functions?: Readonly<Record<string, FileColumnFunction>>;
|
|
22
|
+
}
|
|
23
|
+
/** Finds every static FHIRPath expression in one source file. */
|
|
24
|
+
export type SiteFinder = (sourceText: string, fileName: string, options?: LocalModuleOptions) => ExpressionSite[];
|
|
25
|
+
/**
|
|
26
|
+
* Creates a finder for the calls and tags in `CALL_SITES`. DTO fields include a
|
|
27
|
+
* root type when the class declares one, and each column is exposed as a local
|
|
28
|
+
* function declaration. Dynamic expressions are skipped.
|
|
29
|
+
*/
|
|
30
|
+
export declare function createSiteFinder(ts: TypeScriptApi): SiteFinder;
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sites/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAEhC,OAAO,EAUL,KAAK,kBAAkB,EAIvB,KAAK,kBAAkB,EAMxB,MAAM,kCAAkC,CAAA;AAEzC,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG,OAAO,EAAE,CAAA;AAErC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,sDAAsD;IACtD,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAA;CACzD;AAED,iEAAiE;AACjE,MAAM,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,cAAc,EAAE,CAAA;AAEjH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,UAAU,CAiO9D"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { CALL_SITES, columnFunctionDeclaration, constructsEngine, declaredColumnOverloads, DTO_BASE_NAME, dtoRootsOf, expressionEntries, isCheckedCall, isCheckedTag, isForeignModule, rootOf, siteContext, TAG_NAME, } from "../analyzer/expression-policy.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a finder for the calls and tags in `CALL_SITES`. DTO fields include a
|
|
4
|
+
* root type when the class declares one, and each column is exposed as a local
|
|
5
|
+
* function declaration. Dynamic expressions are skipped.
|
|
6
|
+
*/
|
|
7
|
+
export function createSiteFinder(ts) {
|
|
8
|
+
/** How the shared shape extractor reads TypeScript AST nodes. */
|
|
9
|
+
const tsAst = {
|
|
10
|
+
string: node => (ts.isStringLiteralLike(node) ? { node, expression: node.text } : undefined),
|
|
11
|
+
boolean: node => node.kind === ts.SyntaxKind.TrueKeyword ? true : node.kind === ts.SyntaxKind.FalseKeyword ? false : undefined,
|
|
12
|
+
properties: node => ts.isObjectLiteralExpression(node)
|
|
13
|
+
? node.properties
|
|
14
|
+
.filter(ts.isPropertyAssignment)
|
|
15
|
+
.map(property => ({ name: propertyKeyName(property.name), value: property.initializer }))
|
|
16
|
+
: undefined,
|
|
17
|
+
elements: node => (ts.isArrayLiteralExpression(node) ? [...node.elements] : undefined),
|
|
18
|
+
};
|
|
19
|
+
/** Statically-known property key (`path` in `{ path: ... }` or `{ 'path': ... }`), undefined when computed. */
|
|
20
|
+
function propertyKeyName(name) {
|
|
21
|
+
return ts.isIdentifier(name) || ts.isStringLiteral(name) ? name.text : undefined;
|
|
22
|
+
}
|
|
23
|
+
/** The name of the field a `@column(...)` decorator belongs to. */
|
|
24
|
+
function decoratedFieldName(call) {
|
|
25
|
+
const decorator = call.parent;
|
|
26
|
+
const member = decorator?.parent;
|
|
27
|
+
if (decorator === undefined ||
|
|
28
|
+
!ts.isDecorator(decorator) ||
|
|
29
|
+
member === undefined ||
|
|
30
|
+
!ts.isPropertyDeclaration(member) ||
|
|
31
|
+
!(ts.isIdentifier(member.name) || ts.isStringLiteral(member.name))) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return member.name.text;
|
|
35
|
+
}
|
|
36
|
+
/** A class's heritage, as `dtoRootsOf` reads it: its own DTO root, or the name of the class it extends. */
|
|
37
|
+
function heritageOf(node) {
|
|
38
|
+
const heritage = { name: node.name?.text, ownRoot: undefined, baseName: undefined };
|
|
39
|
+
for (const clause of node.heritageClauses ?? []) {
|
|
40
|
+
if (clause.token !== ts.SyntaxKind.ExtendsKeyword) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
for (const type of clause.types) {
|
|
44
|
+
const base = type.expression;
|
|
45
|
+
if (ts.isCallExpression(base)) {
|
|
46
|
+
if (nameOf(base.expression) === DTO_BASE_NAME) {
|
|
47
|
+
const root = base.arguments[0];
|
|
48
|
+
heritage.ownRoot = root === undefined ? undefined : tsAst.string(root)?.expression;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else if (ts.isIdentifier(base)) {
|
|
52
|
+
heritage.baseName = base.text;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return heritage;
|
|
57
|
+
}
|
|
58
|
+
/** Collects imports, engine locals, rebound names, and DTO class roots before extracting sites. */
|
|
59
|
+
function collectFile(source, options) {
|
|
60
|
+
const foreign = new Set();
|
|
61
|
+
const trusted = new Set();
|
|
62
|
+
const rebound = new Set();
|
|
63
|
+
for (const statement of source.statements) {
|
|
64
|
+
if (!(ts.isImportDeclaration(statement) && ts.isStringLiteral(statement.moduleSpecifier))) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
const names = isForeignModule(statement.moduleSpecifier.text, options) ? foreign : trusted;
|
|
68
|
+
const clause = statement.importClause;
|
|
69
|
+
if (!clause) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (clause.name) {
|
|
73
|
+
names.add(clause.name.text);
|
|
74
|
+
}
|
|
75
|
+
if (clause.namedBindings) {
|
|
76
|
+
if (ts.isNamedImports(clause.namedBindings)) {
|
|
77
|
+
for (const element of clause.namedBindings.elements) {
|
|
78
|
+
names.add(element.name.text);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
names.add(clause.namedBindings.name.text);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const bindings = { foreign, trusted, rebound };
|
|
87
|
+
const heritage = new Map();
|
|
88
|
+
const collectLocals = (node) => {
|
|
89
|
+
if (ts.isClassLike(node)) {
|
|
90
|
+
heritage.set(node, heritageOf(node));
|
|
91
|
+
}
|
|
92
|
+
if (ts.isVariableDeclaration(node)) {
|
|
93
|
+
if (ts.isIdentifier(node.name) &&
|
|
94
|
+
node.initializer !== undefined &&
|
|
95
|
+
ts.isNewExpression(node.initializer) &&
|
|
96
|
+
ts.isIdentifier(node.initializer.expression)) {
|
|
97
|
+
const set = constructsEngine(node.initializer.expression.text, bindings) ? trusted : rebound;
|
|
98
|
+
set.add(node.name.text);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// Catch clauses reach here too: `catch (r4)` is a VariableDeclaration.
|
|
102
|
+
addBindingNames(node.name, rebound);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else if (ts.isParameter(node)) {
|
|
106
|
+
addBindingNames(node.name, rebound);
|
|
107
|
+
}
|
|
108
|
+
else if ((ts.isFunctionDeclaration(node) ||
|
|
109
|
+
ts.isFunctionExpression(node) ||
|
|
110
|
+
ts.isClassDeclaration(node) ||
|
|
111
|
+
ts.isClassExpression(node)) &&
|
|
112
|
+
node.name !== undefined) {
|
|
113
|
+
rebound.add(node.name.text);
|
|
114
|
+
}
|
|
115
|
+
ts.forEachChild(node, collectLocals);
|
|
116
|
+
};
|
|
117
|
+
collectLocals(source);
|
|
118
|
+
return { bindings, dtoRoots: dtoRootsOf([...heritage.values()]), heritage };
|
|
119
|
+
}
|
|
120
|
+
/** Add every identifier a binding name declares (`x`, `{ r4 }`, `[a, ...rest]`). */
|
|
121
|
+
function addBindingNames(name, into) {
|
|
122
|
+
if (ts.isIdentifier(name)) {
|
|
123
|
+
into.add(name.text);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
for (const element of name.elements) {
|
|
127
|
+
if (ts.isBindingElement(element)) {
|
|
128
|
+
addBindingNames(element.name, into);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function nameOf(node) {
|
|
133
|
+
if (ts.isIdentifier(node)) {
|
|
134
|
+
return node.text;
|
|
135
|
+
}
|
|
136
|
+
if (ts.isPropertyAccessExpression(node)) {
|
|
137
|
+
return node.name.text;
|
|
138
|
+
}
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
/** Leftmost identifier of a member-access callee (`Handlebars` in `Handlebars.compile`). */
|
|
142
|
+
function receiverRoot(callee) {
|
|
143
|
+
if (!ts.isPropertyAccessExpression(callee)) {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
let current = callee.expression;
|
|
147
|
+
while (ts.isPropertyAccessExpression(current) || ts.isElementAccessExpression(current)) {
|
|
148
|
+
current = current.expression;
|
|
149
|
+
}
|
|
150
|
+
return ts.isIdentifier(current) ? current.text : undefined;
|
|
151
|
+
}
|
|
152
|
+
return function findExpressionSites(sourceText, fileName, options = {}) {
|
|
153
|
+
const source = ts.createSourceFile(fileName, sourceText, ts.ScriptTarget.Latest, true);
|
|
154
|
+
const { bindings, dtoRoots, heritage } = collectFile(source, options);
|
|
155
|
+
const sites = [];
|
|
156
|
+
const functions = {};
|
|
157
|
+
// A site points at the first character inside the quote/backtick (node start
|
|
158
|
+
// + 1), so fhirpath-check can add a diagnostic's span offsets directly. The
|
|
159
|
+
// ESLint rule reports on the literal node itself, one column earlier.
|
|
160
|
+
const record = (text, literalNode, context = {}) => {
|
|
161
|
+
const literalStart = literalNode.getStart(source) + 1;
|
|
162
|
+
const { line, character } = source.getLineAndCharacterOfPosition(literalStart);
|
|
163
|
+
sites.push({
|
|
164
|
+
expression: text,
|
|
165
|
+
start: literalStart,
|
|
166
|
+
line: line + 1,
|
|
167
|
+
column: character + 1,
|
|
168
|
+
...context,
|
|
169
|
+
});
|
|
170
|
+
};
|
|
171
|
+
const visit = (node, classRoot) => {
|
|
172
|
+
if (ts.isTaggedTemplateExpression(node) &&
|
|
173
|
+
nameOf(node.tag) === TAG_NAME &&
|
|
174
|
+
isCheckedTag(receiverRoot(node.tag), bindings)) {
|
|
175
|
+
if (ts.isNoSubstitutionTemplateLiteral(node.template)) {
|
|
176
|
+
record(node.template.text, node.template);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else if (ts.isCallExpression(node)) {
|
|
180
|
+
const callee = nameOf(node.expression);
|
|
181
|
+
const policy = callee === undefined ? undefined : CALL_SITES.get(callee);
|
|
182
|
+
const argument = policy && node.arguments[policy.argIndex];
|
|
183
|
+
if (callee !== undefined &&
|
|
184
|
+
policy !== undefined &&
|
|
185
|
+
argument !== undefined &&
|
|
186
|
+
isCheckedCall(policy, callee, receiverRoot(node.expression), bindings)) {
|
|
187
|
+
const declares = policy.declaresField;
|
|
188
|
+
const field = declares === undefined ? undefined : decoratedFieldName(node);
|
|
189
|
+
if (declares !== undefined && field !== undefined) {
|
|
190
|
+
functions[field] = declaredColumnOverloads(functions[field], columnFunctionDeclaration(declares, node.arguments[1], tsAst, classRoot));
|
|
191
|
+
}
|
|
192
|
+
const context = siteContext(policy, index => node.arguments[index], classRoot, tsAst);
|
|
193
|
+
for (const entry of expressionEntries(argument, policy.shape, tsAst)) {
|
|
194
|
+
record(entry.expression, entry.node, context);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
const nested = ts.isClassLike(node) ? rootOf(heritage.get(node), dtoRoots) : classRoot;
|
|
199
|
+
ts.forEachChild(node, child => visit(child, nested));
|
|
200
|
+
};
|
|
201
|
+
visit(source, undefined);
|
|
202
|
+
return Object.keys(functions).length === 0 ? sites : sites.map(site => ({ ...site, functions }));
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sites/index.ts"],"names":[],"mappings":"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"}
|