@smile-digital-health/crl 1.2.1 → 4.47.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 +1 -1
- package/README.md +46 -6
- package/dist/ast/builder.d.ts +37 -17
- package/dist/ast/builder.js +355 -141
- package/dist/ast/builder.js.map +1 -1
- package/dist/ast/decisionArms.d.ts +5 -0
- package/dist/ast/decisionArms.js +91 -0
- package/dist/ast/decisionArms.js.map +1 -0
- package/dist/ast/decisionResolver.d.ts +12 -0
- package/dist/ast/decisionResolver.js +33 -0
- package/dist/ast/decisionResolver.js.map +1 -0
- package/dist/ast/decisionSpine.d.ts +18 -0
- package/dist/ast/decisionSpine.js +57 -0
- package/dist/ast/decisionSpine.js.map +1 -0
- package/dist/ast/types.d.ts +143 -34
- package/dist/ast/types.js +16 -0
- package/dist/ast/types.js.map +1 -1
- package/dist/authoring-kit/index.d.ts +11 -0
- package/dist/authoring-kit/index.js +695 -0
- package/dist/authoring-kit/index.js.map +1 -0
- package/dist/authoring-kit/reference.d.ts +11 -0
- package/dist/authoring-kit/reference.js +563 -0
- package/dist/authoring-kit/reference.js.map +1 -0
- package/dist/authoring-kit/types.d.ts +130 -0
- package/dist/{parser/tests/index.test.js → authoring-kit/types.js} +1 -2
- package/dist/authoring-kit/types.js.map +1 -0
- package/dist/cel/ast/builder.d.ts +77 -0
- package/dist/cel/ast/builder.js +340 -0
- package/dist/cel/ast/builder.js.map +1 -0
- package/dist/cel/ast/caseId.d.ts +5 -0
- package/dist/cel/ast/caseId.js +14 -0
- package/dist/cel/ast/caseId.js.map +1 -0
- package/dist/cel/ast/types.d.ts +174 -0
- package/dist/cel/ast/types.js +3 -0
- package/dist/cel/ast/types.js.map +1 -0
- package/dist/cel/definedByResolve.d.ts +9 -0
- package/dist/cel/definedByResolve.js +32 -0
- package/dist/cel/definedByResolve.js.map +1 -0
- package/dist/cel/emitter/emitFhir.d.ts +3 -0
- package/dist/cel/emitter/emitFhir.js +546 -0
- package/dist/cel/emitter/emitFhir.js.map +1 -0
- package/dist/cel/emitter/index.d.ts +3 -0
- package/dist/cel/emitter/index.js +8 -0
- package/dist/cel/emitter/index.js.map +1 -0
- package/dist/cel/emitter/types.d.ts +30 -0
- package/dist/cel/emitter/types.js +3 -0
- package/dist/cel/emitter/types.js.map +1 -0
- package/dist/cel/emitter/writer.d.ts +2 -0
- package/dist/cel/emitter/writer.js +52 -0
- package/dist/cel/emitter/writer.js.map +1 -0
- package/dist/cel/imports/index.d.ts +3 -0
- package/dist/cel/imports/index.js +6 -0
- package/dist/cel/imports/index.js.map +1 -0
- package/dist/cel/imports/resolver.d.ts +5 -0
- package/dist/cel/imports/resolver.js +63 -0
- package/dist/cel/imports/resolver.js.map +1 -0
- package/dist/cel/imports/types.d.ts +34 -0
- package/dist/cel/imports/types.js +3 -0
- package/dist/cel/imports/types.js.map +1 -0
- package/dist/cel/index.d.ts +19 -0
- package/dist/cel/index.js +120 -0
- package/dist/cel/index.js.map +1 -0
- package/dist/cel/lexer/CELLexerErrorListener.d.ts +8 -0
- package/dist/cel/lexer/CELLexerErrorListener.js +35 -0
- package/dist/cel/lexer/CELLexerErrorListener.js.map +1 -0
- package/dist/cel/lexer/createLexer.d.ts +6 -0
- package/dist/cel/lexer/createLexer.js +14 -0
- package/dist/cel/lexer/createLexer.js.map +1 -0
- package/dist/cel/parser/CELParserErrorListener.d.ts +8 -0
- package/dist/cel/parser/CELParserErrorListener.js +33 -0
- package/dist/cel/parser/CELParserErrorListener.js.map +1 -0
- package/dist/cel/parser/createParser.d.ts +7 -0
- package/dist/cel/parser/createParser.js +17 -0
- package/dist/cel/parser/createParser.js.map +1 -0
- package/dist/cel/validator/index.d.ts +2 -0
- package/dist/cel/validator/index.js +7 -0
- package/dist/cel/validator/index.js.map +1 -0
- package/dist/cel/validator/types.d.ts +16 -0
- package/dist/cel/validator/types.js +3 -0
- package/dist/cel/validator/types.js.map +1 -0
- package/dist/cel/validator/validator.d.ts +8 -0
- package/dist/cel/validator/validator.js +306 -0
- package/dist/cel/validator/validator.js.map +1 -0
- package/dist/cli/run-ast.d.ts +1 -0
- package/dist/cli/run-ast.js +2 -1
- package/dist/cli/run-ast.js.map +1 -1
- package/dist/cli/run-canonicalize-source.d.ts +2 -0
- package/dist/cli/run-canonicalize-source.js +60 -0
- package/dist/cli/run-canonicalize-source.js.map +1 -0
- package/dist/cli/run-emitter.d.ts +2 -0
- package/dist/cli/run-emitter.js +325 -0
- package/dist/cli/run-emitter.js.map +1 -0
- package/dist/cli/run-generate-provenance.d.ts +2 -0
- package/dist/cli/run-generate-provenance.js +113 -0
- package/dist/cli/run-generate-provenance.js.map +1 -0
- package/dist/cli/run-lexer.d.ts +1 -0
- package/dist/cli/run-lexer.js +2 -1
- package/dist/cli/run-lexer.js.map +1 -1
- package/dist/cli/run-mcp-server.d.ts +2 -0
- package/dist/cli/run-mcp-server.js +15 -0
- package/dist/cli/run-mcp-server.js.map +1 -0
- package/dist/cli/run-parser.d.ts +1 -0
- package/dist/cli/run-parser.js +2 -1
- package/dist/cli/run-parser.js.map +1 -1
- package/dist/cli/run-template-match.d.ts +2 -0
- package/dist/cli/run-template-match.js +59 -0
- package/dist/cli/run-template-match.js.map +1 -0
- package/dist/cli/run-transformer-fsh-to-crl.js +1 -1
- package/dist/cli/run-transformer-fsh-to-crl.js.map +1 -1
- package/dist/cli/run-validate-provenance.d.ts +2 -0
- package/dist/cli/run-validate-provenance.js +78 -0
- package/dist/cli/run-validate-provenance.js.map +1 -0
- package/dist/cli/run-validator.d.ts +1 -0
- package/dist/cli/run-validator.js +111 -28
- package/dist/cli/run-validator.js.map +1 -1
- package/dist/cql-emitter/catalog/CRLCommon.cql +597 -0
- package/dist/cql-emitter/catalog/CaseFeatureCommon.cql +112 -0
- package/dist/cql-emitter/catalog/FHIRHelpers.cql +520 -0
- package/dist/cql-emitter/catalog/loadCatalog.d.ts +11 -0
- package/dist/cql-emitter/catalog/loadCatalog.js +59 -0
- package/dist/cql-emitter/catalog/loadCatalog.js.map +1 -0
- package/dist/cql-emitter/cqlStrings.d.ts +2 -0
- package/dist/cql-emitter/cqlStrings.js +17 -0
- package/dist/cql-emitter/cqlStrings.js.map +1 -0
- package/dist/cql-emitter/emitCQL.d.ts +46 -0
- package/dist/cql-emitter/emitCQL.js +805 -0
- package/dist/cql-emitter/emitCQL.js.map +1 -0
- package/dist/cql-emitter/index.d.ts +2 -0
- package/dist/cql-emitter/index.js +7 -0
- package/dist/cql-emitter/index.js.map +1 -0
- package/dist/cql-emitter/layeredEmit.d.ts +35 -0
- package/dist/cql-emitter/layeredEmit.js +528 -0
- package/dist/cql-emitter/layeredEmit.js.map +1 -0
- package/dist/cql-emitter/lowerLocalCodes.d.ts +18 -0
- package/dist/cql-emitter/lowerLocalCodes.js +268 -0
- package/dist/cql-emitter/lowerLocalCodes.js.map +1 -0
- package/dist/cre/decisionResolver.d.ts +1 -0
- package/dist/cre/decisionResolver.js +7 -0
- package/dist/cre/decisionResolver.js.map +1 -0
- package/dist/cre/index.d.ts +4 -0
- package/dist/cre/index.js +9 -0
- package/dist/cre/index.js.map +1 -0
- package/dist/cre/run.d.ts +56 -0
- package/dist/cre/run.js +411 -0
- package/dist/cre/run.js.map +1 -0
- package/dist/cre/viewModel.d.ts +108 -0
- package/dist/cre/viewModel.js +332 -0
- package/dist/cre/viewModel.js.map +1 -0
- package/dist/dispositions/categories.d.ts +9 -0
- package/dist/dispositions/categories.js +38 -0
- package/dist/dispositions/categories.js.map +1 -0
- package/dist/dispositions/config.d.ts +5 -0
- package/dist/dispositions/config.js +212 -0
- package/dist/dispositions/config.js.map +1 -0
- package/dist/dispositions/displayName.d.ts +1 -0
- package/dist/dispositions/displayName.js +10 -0
- package/dist/dispositions/displayName.js.map +1 -0
- package/dist/dispositions/index.d.ts +4 -0
- package/dist/dispositions/index.js +34 -0
- package/dist/dispositions/index.js.map +1 -0
- package/dist/dispositions/types.d.ts +48 -0
- package/dist/dispositions/types.js +3 -0
- package/dist/dispositions/types.js.map +1 -0
- package/dist/emit-two-lane.d.ts +20 -0
- package/dist/emit-two-lane.js +42 -0
- package/dist/emit-two-lane.js.map +1 -0
- package/dist/fhir-emitter/activity.d.ts +16 -0
- package/dist/fhir-emitter/activity.js +283 -0
- package/dist/fhir-emitter/activity.js.map +1 -0
- package/dist/fhir-emitter/caseFeatureCollection.d.ts +6 -0
- package/dist/fhir-emitter/caseFeatureCollection.js +68 -0
- package/dist/fhir-emitter/caseFeatureCollection.js.map +1 -0
- package/dist/fhir-emitter/closureOrchestrator.d.ts +35 -0
- package/dist/fhir-emitter/closureOrchestrator.js +975 -0
- package/dist/fhir-emitter/closureOrchestrator.js.map +1 -0
- package/dist/fhir-emitter/codeSystem.d.ts +11 -0
- package/dist/fhir-emitter/codeSystem.js +89 -0
- package/dist/fhir-emitter/codeSystem.js.map +1 -0
- package/dist/fhir-emitter/cpgActivityProfiles.d.ts +13 -0
- package/dist/fhir-emitter/cpgActivityProfiles.js +113 -0
- package/dist/fhir-emitter/cpgActivityProfiles.js.map +1 -0
- package/dist/fhir-emitter/decision.d.ts +22 -0
- package/dist/fhir-emitter/decision.js +471 -0
- package/dist/fhir-emitter/decision.js.map +1 -0
- package/dist/fhir-emitter/index.d.ts +13 -0
- package/dist/fhir-emitter/index.js +43 -0
- package/dist/fhir-emitter/index.js.map +1 -0
- package/dist/fhir-emitter/library.d.ts +20 -0
- package/dist/fhir-emitter/library.js +183 -0
- package/dist/fhir-emitter/library.js.map +1 -0
- package/dist/fhir-emitter/metadata.d.ts +13 -0
- package/dist/fhir-emitter/metadata.js +379 -0
- package/dist/fhir-emitter/metadata.js.map +1 -0
- package/dist/fhir-emitter/recommendation.d.ts +14 -0
- package/dist/fhir-emitter/recommendation.js +147 -0
- package/dist/fhir-emitter/recommendation.js.map +1 -0
- package/dist/fhir-emitter/reproDate.d.ts +6 -0
- package/dist/fhir-emitter/reproDate.js +58 -0
- package/dist/fhir-emitter/reproDate.js.map +1 -0
- package/dist/fhir-emitter/slug.d.ts +12 -0
- package/dist/fhir-emitter/slug.js +74 -0
- package/dist/fhir-emitter/slug.js.map +1 -0
- package/dist/fhir-emitter/structureDefinition.d.ts +8 -0
- package/dist/fhir-emitter/structureDefinition.js +153 -0
- package/dist/fhir-emitter/structureDefinition.js.map +1 -0
- package/dist/fhir-emitter/tarjan.d.ts +1 -0
- package/dist/fhir-emitter/tarjan.js +43 -0
- package/dist/fhir-emitter/tarjan.js.map +1 -0
- package/dist/fhir-emitter/types.d.ts +86 -0
- package/dist/fhir-emitter/types.js +83 -0
- package/dist/fhir-emitter/types.js.map +1 -0
- package/dist/fhir-emitter/valueSet.d.ts +13 -0
- package/dist/fhir-emitter/valueSet.js +155 -0
- package/dist/fhir-emitter/valueSet.js.map +1 -0
- package/dist/fhir-emitter/writer.d.ts +2 -0
- package/dist/fhir-emitter/writer.js +21 -0
- package/dist/fhir-emitter/writer.js.map +1 -0
- package/dist/grammar/generated/antlr/CELLexer.d.ts +79 -0
- package/dist/grammar/generated/antlr/CELLexer.js +463 -0
- package/dist/grammar/generated/antlr/CELLexer.js.map +1 -0
- package/dist/grammar/generated/antlr/CELParser.d.ts +566 -0
- package/dist/grammar/generated/antlr/CELParser.js +2971 -0
- package/dist/grammar/generated/antlr/CELParser.js.map +1 -0
- package/dist/grammar/generated/antlr/CELParserListener.d.ts +138 -0
- package/dist/grammar/generated/antlr/CELParserListener.js +3 -0
- package/dist/grammar/generated/antlr/CELParserListener.js.map +1 -0
- package/dist/grammar/generated/antlr/CELParserVisitor.d.ts +93 -0
- package/dist/grammar/generated/antlr/CELParserVisitor.js +3 -0
- package/dist/grammar/generated/antlr/CELParserVisitor.js.map +1 -0
- package/dist/grammar/generated/antlr/CRLLexer.d.ts +74 -49
- package/dist/grammar/generated/antlr/CRLLexer.js +582 -324
- package/dist/grammar/generated/antlr/CRLLexer.js.map +1 -1
- package/dist/grammar/generated/antlr/CRLParser.d.ts +504 -212
- package/dist/grammar/generated/antlr/CRLParser.js +3009 -1364
- package/dist/grammar/generated/antlr/CRLParser.js.map +1 -1
- package/dist/grammar/generated/antlr/CRLParserListener.d.ts +129 -57
- package/dist/grammar/generated/antlr/CRLParserVisitor.d.ts +86 -38
- package/dist/grammar/generated/types/activityTypes.json +3 -3
- package/dist/grammar/generated/types/conceptTypes.json +7 -1
- package/dist/grammar/generated/types/parameterTypes.json +46 -0
- package/dist/grammar/parameterTypes.d.ts +2 -0
- package/dist/grammar/parameterTypes.js +9 -0
- package/dist/grammar/parameterTypes.js.map +1 -0
- package/dist/imports/computeEmitClosure.d.ts +14 -0
- package/dist/imports/computeEmitClosure.js +281 -0
- package/dist/imports/computeEmitClosure.js.map +1 -0
- package/dist/imports/emit.d.ts +37 -0
- package/dist/imports/emit.js +427 -0
- package/dist/imports/emit.js.map +1 -0
- package/dist/imports/index.d.ts +11 -0
- package/dist/imports/index.js +132 -0
- package/dist/imports/index.js.map +1 -0
- package/dist/imports/namespace.d.ts +5 -0
- package/dist/imports/namespace.js +42 -0
- package/dist/imports/namespace.js.map +1 -0
- package/dist/imports/paths.d.ts +1 -0
- package/dist/imports/paths.js +45 -0
- package/dist/imports/paths.js.map +1 -0
- package/dist/imports/registry.d.ts +20 -0
- package/dist/imports/registry.js +355 -0
- package/dist/imports/registry.js.map +1 -0
- package/dist/imports/resolver.d.ts +5 -0
- package/dist/imports/resolver.js +88 -0
- package/dist/imports/resolver.js.map +1 -0
- package/dist/imports/safeOutputFilename.d.ts +1 -0
- package/dist/imports/safeOutputFilename.js +11 -0
- package/dist/imports/safeOutputFilename.js.map +1 -0
- package/dist/imports/scopes.d.ts +30 -0
- package/dist/imports/scopes.js +113 -0
- package/dist/imports/scopes.js.map +1 -0
- package/dist/imports/types.d.ts +104 -0
- package/dist/imports/types.js +13 -0
- package/dist/imports/types.js.map +1 -0
- package/dist/imports/validate.d.ts +14 -0
- package/dist/imports/validate.js +76 -0
- package/dist/imports/validate.js.map +1 -0
- package/dist/index.d.ts +36 -1
- package/dist/index.js +129 -5
- package/dist/index.js.map +1 -1
- package/dist/language-services/catalog.d.ts +16 -0
- package/dist/language-services/catalog.js +181 -0
- package/dist/language-services/catalog.js.map +1 -0
- package/dist/language-services/celCompletion.d.ts +11 -0
- package/dist/language-services/celCompletion.js +74 -0
- package/dist/language-services/celCompletion.js.map +1 -0
- package/dist/language-services/celContextDetect.d.ts +18 -0
- package/dist/language-services/celContextDetect.js +28 -0
- package/dist/language-services/celContextDetect.js.map +1 -0
- package/dist/language-services/celDiagnostics.d.ts +10 -0
- package/dist/language-services/celDiagnostics.js +23 -0
- package/dist/language-services/celDiagnostics.js.map +1 -0
- package/dist/language-services/celHover.d.ts +12 -0
- package/dist/language-services/celHover.js +73 -0
- package/dist/language-services/celHover.js.map +1 -0
- package/dist/language-services/celNavigation.d.ts +13 -0
- package/dist/language-services/celNavigation.js +92 -0
- package/dist/language-services/celNavigation.js.map +1 -0
- package/dist/language-services/celSymbols.d.ts +4 -0
- package/dist/language-services/celSymbols.js +82 -0
- package/dist/language-services/celSymbols.js.map +1 -0
- package/dist/language-services/completion.d.ts +9 -0
- package/dist/language-services/completion.js +178 -0
- package/dist/language-services/completion.js.map +1 -0
- package/dist/language-services/completionHelpers.d.ts +15 -0
- package/dist/language-services/completionHelpers.js +59 -0
- package/dist/language-services/completionHelpers.js.map +1 -0
- package/dist/language-services/concepts.d.ts +12 -0
- package/dist/language-services/concepts.js +64 -0
- package/dist/language-services/concepts.js.map +1 -0
- package/dist/language-services/contextDetect.d.ts +4 -0
- package/dist/language-services/contextDetect.js +55 -0
- package/dist/language-services/contextDetect.js.map +1 -0
- package/dist/language-services/contracts.d.ts +78 -0
- package/dist/language-services/contracts.js +13 -0
- package/dist/language-services/contracts.js.map +1 -0
- package/dist/language-services/diagnostics.d.ts +41 -0
- package/dist/language-services/diagnostics.js +213 -0
- package/dist/language-services/diagnostics.js.map +1 -0
- package/dist/language-services/findDeclaration.d.ts +18 -0
- package/dist/language-services/findDeclaration.js +42 -0
- package/dist/language-services/findDeclaration.js.map +1 -0
- package/dist/language-services/highlight.d.ts +27 -0
- package/dist/language-services/highlight.js +84 -0
- package/dist/language-services/highlight.js.map +1 -0
- package/dist/language-services/host.d.ts +22 -0
- package/dist/language-services/host.js +61 -0
- package/dist/language-services/host.js.map +1 -0
- package/dist/language-services/hover.d.ts +24 -0
- package/dist/language-services/hover.js +174 -0
- package/dist/language-services/hover.js.map +1 -0
- package/dist/language-services/index.d.ts +20 -0
- package/dist/language-services/index.js +37 -0
- package/dist/language-services/index.js.map +1 -0
- package/dist/language-services/navigation.d.ts +9 -0
- package/dist/language-services/navigation.js +227 -0
- package/dist/language-services/navigation.js.map +1 -0
- package/dist/language-services/paths.d.ts +1 -0
- package/dist/language-services/paths.js +45 -0
- package/dist/language-services/paths.js.map +1 -0
- package/dist/language-services/projectIndex.d.ts +67 -0
- package/dist/language-services/projectIndex.js +749 -0
- package/dist/language-services/projectIndex.js.map +1 -0
- package/dist/lexer/CRLLexerErrorListener.d.ts +1 -0
- package/dist/lexer/CRLLexerErrorListener.js +20 -0
- package/dist/lexer/CRLLexerErrorListener.js.map +1 -1
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.js +18 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +4 -0
- package/dist/mcp/server.js +970 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/provenance/artifact.d.ts +111 -0
- package/dist/provenance/artifact.js +5 -0
- package/dist/provenance/artifact.js.map +1 -0
- package/dist/provenance/canonicalize.d.ts +63 -0
- package/dist/provenance/canonicalize.js +545 -0
- package/dist/provenance/canonicalize.js.map +1 -0
- package/dist/provenance/caseIdJoin.d.ts +7 -0
- package/dist/provenance/caseIdJoin.js +33 -0
- package/dist/provenance/caseIdJoin.js.map +1 -0
- package/dist/provenance/cockpitModel.d.ts +20 -0
- package/dist/provenance/cockpitModel.js +28 -0
- package/dist/provenance/cockpitModel.js.map +1 -0
- package/dist/provenance/conceptContainment.d.ts +6 -0
- package/dist/provenance/conceptContainment.js +43 -0
- package/dist/provenance/conceptContainment.js.map +1 -0
- package/dist/provenance/correspondence.d.ts +120 -0
- package/dist/provenance/correspondence.js +314 -0
- package/dist/provenance/correspondence.js.map +1 -0
- package/dist/provenance/correspondenceCheck.d.ts +19 -0
- package/dist/provenance/correspondenceCheck.js +126 -0
- package/dist/provenance/correspondenceCheck.js.map +1 -0
- package/dist/provenance/coverage.d.ts +23 -0
- package/dist/provenance/coverage.js +156 -0
- package/dist/provenance/coverage.js.map +1 -0
- package/dist/provenance/crlConceptLayer.d.ts +29 -0
- package/dist/provenance/crlConceptLayer.js +68 -0
- package/dist/provenance/crlConceptLayer.js.map +1 -0
- package/dist/provenance/crlStructure.d.ts +27 -0
- package/dist/provenance/crlStructure.js +92 -0
- package/dist/provenance/crlStructure.js.map +1 -0
- package/dist/provenance/failedCriteria.d.ts +68 -0
- package/dist/provenance/failedCriteria.js +135 -0
- package/dist/provenance/failedCriteria.js.map +1 -0
- package/dist/provenance/generate.d.ts +40 -0
- package/dist/provenance/generate.js +926 -0
- package/dist/provenance/generate.js.map +1 -0
- package/dist/provenance/generateFiles.d.ts +15 -0
- package/dist/provenance/generateFiles.js +66 -0
- package/dist/provenance/generateFiles.js.map +1 -0
- package/dist/provenance/index.d.ts +36 -0
- package/dist/provenance/index.js +77 -0
- package/dist/provenance/index.js.map +1 -0
- package/dist/provenance/indexer.d.ts +77 -0
- package/dist/provenance/indexer.js +387 -0
- package/dist/provenance/indexer.js.map +1 -0
- package/dist/provenance/revealMaps.d.ts +44 -0
- package/dist/provenance/revealMaps.js +303 -0
- package/dist/provenance/revealMaps.js.map +1 -0
- package/dist/provenance/runPath.d.ts +33 -0
- package/dist/provenance/runPath.js +76 -0
- package/dist/provenance/runPath.js.map +1 -0
- package/dist/provenance/validateFiles.d.ts +41 -0
- package/dist/provenance/validateFiles.js +117 -0
- package/dist/provenance/validateFiles.js.map +1 -0
- package/dist/provenance/validators.d.ts +28 -0
- package/dist/provenance/validators.js +525 -0
- package/dist/provenance/validators.js.map +1 -0
- package/dist/template-match/canonicalTypes.d.ts +41 -0
- package/dist/template-match/canonicalTypes.js +3 -0
- package/dist/template-match/canonicalTypes.js.map +1 -0
- package/dist/template-match/index.d.ts +2 -0
- package/dist/template-match/index.js +6 -0
- package/dist/template-match/index.js.map +1 -0
- package/dist/template-match/matcher.d.ts +3 -0
- package/dist/template-match/matcher.js +854 -0
- package/dist/template-match/matcher.js.map +1 -0
- package/dist/types/errors.d.ts +2 -1
- package/dist/validator/cycleDetector.d.ts +20 -10
- package/dist/validator/cycleDetector.js +276 -51
- package/dist/validator/cycleDetector.js.map +1 -1
- package/dist/validator/decisionShapeValidator.d.ts +9 -0
- package/dist/validator/decisionShapeValidator.js +95 -0
- package/dist/validator/decisionShapeValidator.js.map +1 -0
- package/dist/validator/dispositionValidator.d.ts +13 -0
- package/dist/validator/dispositionValidator.js +135 -0
- package/dist/validator/dispositionValidator.js.map +1 -0
- package/dist/validator/nameUniquenessValidator.d.ts +5 -1
- package/dist/validator/nameUniquenessValidator.js +82 -74
- package/dist/validator/nameUniquenessValidator.js.map +1 -1
- package/dist/validator/referenceResolver.d.ts +22 -0
- package/dist/validator/referenceResolver.js +367 -0
- package/dist/validator/referenceResolver.js.map +1 -0
- package/dist/validator/validator.d.ts +65 -4
- package/dist/validator/validator.js +0 -0
- package/dist/validator/validator.js.map +1 -1
- package/package.json +127 -88
- package/dist/ast/tests/activity-structure.test.d.ts +0 -1
- package/dist/ast/tests/activity-structure.test.js +0 -63
- package/dist/ast/tests/activity-structure.test.js.map +0 -1
- package/dist/ast/tests/builder.test.d.ts +0 -1
- package/dist/ast/tests/builder.test.js +0 -588
- package/dist/ast/tests/builder.test.js.map +0 -1
- package/dist/ast/tests/concept-structure.test.d.ts +0 -1
- package/dist/ast/tests/concept-structure.test.js +0 -127
- package/dist/ast/tests/concept-structure.test.js.map +0 -1
- package/dist/ast/tests/decision-structure.test.d.ts +0 -1
- package/dist/ast/tests/decision-structure.test.js +0 -267
- package/dist/ast/tests/decision-structure.test.js.map +0 -1
- package/dist/ast/tests/index.test.d.ts +0 -5
- package/dist/ast/tests/index.test.js +0 -8
- package/dist/ast/tests/index.test.js.map +0 -1
- package/dist/ast/tests/parseInput.d.ts +0 -2
- package/dist/ast/tests/parseInput.js +0 -16
- package/dist/ast/tests/parseInput.js.map +0 -1
- package/dist/ast/tests/terminology-structure.test.d.ts +0 -1
- package/dist/ast/tests/terminology-structure.test.js +0 -36
- package/dist/ast/tests/terminology-structure.test.js.map +0 -1
- package/dist/lexer/tests/basic-tokens.test.d.ts +0 -1
- package/dist/lexer/tests/basic-tokens.test.js +0 -483
- package/dist/lexer/tests/basic-tokens.test.js.map +0 -1
- package/dist/lexer/tests/comments.test.d.ts +0 -1
- package/dist/lexer/tests/comments.test.js +0 -166
- package/dist/lexer/tests/comments.test.js.map +0 -1
- package/dist/lexer/tests/error-handling.test.d.ts +0 -1
- package/dist/lexer/tests/error-handling.test.js +0 -218
- package/dist/lexer/tests/error-handling.test.js.map +0 -1
- package/dist/lexer/tests/error-listener.test.d.ts +0 -1
- package/dist/lexer/tests/error-listener.test.js +0 -147
- package/dist/lexer/tests/error-listener.test.js.map +0 -1
- package/dist/lexer/tests/fhir-types.helpers.d.ts +0 -3
- package/dist/lexer/tests/fhir-types.helpers.js +0 -16
- package/dist/lexer/tests/fhir-types.helpers.js.map +0 -1
- package/dist/lexer/tests/fhir-types.test.d.ts +0 -1
- package/dist/lexer/tests/fhir-types.test.js +0 -112
- package/dist/lexer/tests/fhir-types.test.js.map +0 -1
- package/dist/lexer/tests/helpers.d.ts +0 -12
- package/dist/lexer/tests/helpers.js +0 -41
- package/dist/lexer/tests/helpers.js.map +0 -1
- package/dist/lexer/tests/index.test.d.ts +0 -13
- package/dist/lexer/tests/index.test.js +0 -35
- package/dist/lexer/tests/index.test.js.map +0 -1
- package/dist/lexer/tests/integration.test.d.ts +0 -1
- package/dist/lexer/tests/integration.test.js +0 -470
- package/dist/lexer/tests/integration.test.js.map +0 -1
- package/dist/lexer/tests/lexer-test-utils.d.ts +0 -3
- package/dist/lexer/tests/lexer-test-utils.js +0 -19
- package/dist/lexer/tests/lexer-test-utils.js.map +0 -1
- package/dist/lexer/tests/structures.test.d.ts +0 -1
- package/dist/lexer/tests/structures.test.js +0 -251
- package/dist/lexer/tests/structures.test.js.map +0 -1
- package/dist/lexer/tests/whitespace.test.d.ts +0 -1
- package/dist/lexer/tests/whitespace.test.js +0 -203
- package/dist/lexer/tests/whitespace.test.js.map +0 -1
- package/dist/parser/tests/createParser.test.d.ts +0 -1
- package/dist/parser/tests/createParser.test.js +0 -30
- package/dist/parser/tests/createParser.test.js.map +0 -1
- package/dist/parser/tests/index.test.d.ts +0 -1
- package/dist/parser/tests/index.test.js.map +0 -1
- package/dist/validator/actionUniquenessValidator.d.ts +0 -2
- package/dist/validator/actionUniquenessValidator.js +0 -7
- package/dist/validator/actionUniquenessValidator.js.map +0 -1
- package/dist/validator/unusedDeclarationsValidator.d.ts +0 -2
- package/dist/validator/unusedDeclarationsValidator.js +0 -7
- package/dist/validator/unusedDeclarationsValidator.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -198,4 +198,4 @@ Apache License
|
|
|
198
198
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
199
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
200
|
See the License for the specific language governing permissions and
|
|
201
|
-
limitations under the License.
|
|
201
|
+
limitations under the License.
|
package/README.md
CHANGED
|
@@ -6,10 +6,14 @@ Clinical Reasoning Language (CRL) provides a structured way to model clinical de
|
|
|
6
6
|
|
|
7
7
|
## Overview
|
|
8
8
|
|
|
9
|
-
See the [User Guide](./USER_GUIDE.md) for a comprehensive introduction to the CRL language, syntax, and authoring best practices.
|
|
9
|
+
See the [User Guide](./USER_GUIDE.md) for a comprehensive introduction to the CRL language, syntax, and authoring best practices. For the **CLI and MCP tool reference** (emit, validate, the 7 MCP tools — for both CRL and CEL), see [TOOLING.md](./TOOLING.md).
|
|
10
10
|
|
|
11
11
|
CRL is a domain-specific language designed for expressing clinical practice guidelines in a structured and machine-readable format. The language is implemented in TypeScript and provides a comprehensive set of tools for processing CRL documents.
|
|
12
12
|
|
|
13
|
+
## Metadata annotations
|
|
14
|
+
|
|
15
|
+
CRL concepts can carry typed metadata via an `@tag` convention on `meta` lines (e.g. `@description`, `@ke-feedback`, `@kg-concept`) — for descriptions, knowledge-engineer feedback, plain-language logic, external-store hints, and extraction provenance. See the [metadata model](./spec/metadata-model.md) and the canonical [tag registry](./spec/metadata-registry.json). *(Draft: the convention parses today; Validator enforcement is forthcoming.)*
|
|
16
|
+
|
|
13
17
|
## Installation
|
|
14
18
|
|
|
15
19
|
This is a private package. To install it, you need:
|
|
@@ -66,12 +70,31 @@ npm pack
|
|
|
66
70
|
tar -ztvf <package-name>.tgz
|
|
67
71
|
```
|
|
68
72
|
|
|
73
|
+
#### Cutting a release (build both artifacts + upload to GitHub)
|
|
74
|
+
|
|
75
|
+
Releases ship two artifacts side-by-side: the npm tarball (`smile-digital-health-crl-<version>.tgz`) and the VS Code extension VSIX (`crl-language-support-<version>.vsix`).
|
|
76
|
+
|
|
77
|
+
**Heads-up (Windows):** if you have VS Code open with the CRL extension active, its bundled MCP server keeps `dist/` files open and both `npm pack` and `npm run package` will fail with `EPERM` on `dist/`. Close VS Code (or just disable the CRL extension) before running the build commands below.
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# 1. Close VS Code (or disable the CRL extension) so the MCP server releases any lock on dist/.
|
|
81
|
+
# 2. From the repo root, build the npm tarball for the core package:
|
|
82
|
+
npm pack -w @smile-digital-health/crl
|
|
83
|
+
|
|
84
|
+
# 3. Build the extension VSIX (also from the repo root):
|
|
85
|
+
npm run package -w crl-language-support
|
|
86
|
+
|
|
87
|
+
# 4. Upload the resulting .tgz and .vsix to the corresponding GitHub release.
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Both artifacts are produced at the version declared in their respective `package.json` files. Bump those (and tag the commit `v<version>`) before running the steps above so the produced filenames match the release tag.
|
|
91
|
+
|
|
69
92
|
## Features
|
|
70
93
|
|
|
71
94
|
### Language Features
|
|
72
95
|
|
|
73
96
|
* Decision blocks with nested conditions
|
|
74
|
-
* Concept definitions with type and
|
|
97
|
+
* Concept definitions with type and value specifications
|
|
75
98
|
* Activity statements with perform types
|
|
76
99
|
* Terminology statements with valueset, system/code, and unknown definitions
|
|
77
100
|
* FHIR resource type support
|
|
@@ -176,6 +199,18 @@ npm run cli:lexer
|
|
|
176
199
|
|
|
177
200
|
Replace `<module>` with the desired CLI module name (e.g., `lexer`, `parser`, etc.).
|
|
178
201
|
|
|
202
|
+
## FHIR Definition Emit (v2.4.0)
|
|
203
|
+
|
|
204
|
+
CRL emits CPG-IG-conformant FHIR Definition resources (ValueSet, Library, ActivityDefinition, PlanDefinition) alongside the existing CQL emit.
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
crl-emit --path <root.crl> --out-dir <project-root> --target fhir-def
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Output lands at `<project-root>/fhir/<ResourceType>/<id>.json`. CQL emit (the existing `--target cql` / default behavior) lands at `<project-root>/cql/<library-name>.cql`. Library content references the CQL file via the relative path `../../cql/<library-name>.cql`.
|
|
211
|
+
|
|
212
|
+
For semantic rules, layout details, deliberate spec deviations, and the MCP `emit_crl_fhir` tool, see [`USER_GUIDE.md` §"Emitting FHIR Definition resources"](USER_GUIDE.md#emitting-fhir-definition-resources).
|
|
213
|
+
|
|
179
214
|
## API Usage & Reference
|
|
180
215
|
|
|
181
216
|
**All API functions return a `ParseResult` object. If there are any lexical or syntax errors, these are collected and returned in the `errors` array (not just printed to the console). You should always check `result.success` and handle errors accordingly.**
|
|
@@ -304,7 +339,7 @@ The comparison includes:
|
|
|
304
339
|
|
|
305
340
|
### FSH-to-CRL Example Data
|
|
306
341
|
|
|
307
|
-
The example FSH files and CRL outputs in `examples/fsh/who/smart-example-immz/` and `examples/crl/who/smart-example-immz/` are derived from the [WHO SMART Guidelines - Example IG for Measles Immunization](https://github.com/WorldHealthOrganization/smart-example-immz).
|
|
342
|
+
The example FSH files and CRL outputs in `src/examples/fsh/who/smart-example-immz/` and `src/examples/crl/who/smart-example-immz/` are derived from the [WHO SMART Guidelines - Example IG for Measles Immunization](https://github.com/WorldHealthOrganization/smart-example-immz).
|
|
308
343
|
|
|
309
344
|
- **Source repository:** [WorldHealthOrganization/smart-example-immz](https://github.com/WorldHealthOrganization/smart-example-immz)
|
|
310
345
|
- **License:** [CC BY-IGO 3.0](https://github.com/WorldHealthOrganization/smart-example-immz/blob/main/LICENSE.md)
|
|
@@ -476,7 +511,7 @@ Note: This project uses a custom AST implementation that uses ANTLR's visitor pa
|
|
|
476
511
|
>
|
|
477
512
|
> The authoritative release checklist and instructions are maintained in a single location:
|
|
478
513
|
>
|
|
479
|
-
> **[.github/PULL_REQUEST_TEMPLATE/release.md](
|
|
514
|
+
> **[.github/PULL_REQUEST_TEMPLATE/release.md](../../.github/PULL_REQUEST_TEMPLATE/release.md)**
|
|
480
515
|
>
|
|
481
516
|
> Always follow the steps in this file when preparing a new release. This ensures consistency and reduces maintenance overhead. If you need to update the release process, update the PR template only.
|
|
482
517
|
|
|
@@ -490,7 +525,7 @@ Note: This project uses a custom AST implementation that uses ANTLR's visitor pa
|
|
|
490
525
|
- **Generated Files:** Auto-generated files (e.g., ANTLR outputs, grammar-driven types) are ignored by git and should never be edited manually. Always use the provided scripts to regenerate them.
|
|
491
526
|
- **Documentation:** Keep all documentation referencing the release checklist up-to-date by linking to the PR template.
|
|
492
527
|
|
|
493
|
-
For more details, see the [release PR template](
|
|
528
|
+
For more details, see the [release PR template](../../.github/PULL_REQUEST_TEMPLATE/release.md) and the automation scripts in `.github/scripts/`.
|
|
494
529
|
|
|
495
530
|
### Error Handling Strategy
|
|
496
531
|
|
|
@@ -547,4 +582,9 @@ We provide a Visual Studio Code extension for CRL files:
|
|
|
547
582
|
- Comment support
|
|
548
583
|
- Language basics for a better editing experience
|
|
549
584
|
|
|
550
|
-
For installation instructions and full details, see [
|
|
585
|
+
For installation instructions and full details, see [crl-vscode/README.md](../crl-vscode/README.md)
|
|
586
|
+
|
|
587
|
+
## License
|
|
588
|
+
|
|
589
|
+
This project is licensed under the Apache License 2.0.
|
|
590
|
+
See the LICENSE file for details.
|
package/dist/ast/builder.d.ts
CHANGED
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { ParserRuleContext } from "antlr4ts/ParserRuleContext";
|
|
2
2
|
import { AbstractParseTreeVisitor } from "antlr4ts/tree/AbstractParseTreeVisitor";
|
|
3
|
-
import { CrlContext, DecisionStatementContext, DecisionBodyContext,
|
|
3
|
+
import { CrlContext, DecisionStatementContext, DecisionBodyContext, BranchItemContext, BlockBodyContext, ActionItemContext, ActionStatementContext, RecommendStatementContext, UseStatementContext, TerminologyStatementContext, TerminologyValuesetContext, ActivityStatementContext, ConceptStatementContext, ParameterStatementContext, LibraryStatementContext, IncludeStatementContext, DefinitionIsBodyContext, DefinedAsBodyContext, DefinedAsBareRefContext, DefinedAsCompositionContext, CompositionExpressionContext, SemOrContext, SemAndContext, SemNotContext, CompositionRefContext, CompositionGroupContext, NarrativeContext, NConceptRefContext, NQuantityContext, NWordContext, NArgGroupElementContext, QuantityContext, ArgGroupContext, ArgDisjunctionContext, ArgConjunctionContext, ArgSingletonContext, AVConceptRefContext, AVQuantityContext, AVNestedGroupContext, WhenWithBodyContext, WhenSingleActionContext, OtherwiseWithBodyContext, OtherwiseSingleActionContext } from "../grammar/generated/antlr/CRLParser";
|
|
4
4
|
import { CRLParserVisitor } from "../grammar/generated/antlr/CRLParserVisitor";
|
|
5
5
|
import type { CRLError } from "../types/errors";
|
|
6
|
-
import { ASTNode, Decision, DecisionBody, WhenBlock, BlockBody, ActionStatement, RecommendActivity, UseDecision, Terminology, TerminologyValueset, TerminologySystem, TerminologyCode, Activity, ActivityBody, ActivityRequest, ActivityWith, ActivityBecause, Concept,
|
|
7
|
-
import type { CRL } from "./types";
|
|
8
|
-
type InformalNode = GroupExpression | ConceptReference | InformalAnd | NotExpression | InformalOr;
|
|
6
|
+
import { ASTNode, Decision, DecisionBody, WhenBlock, OtherwiseBlock, BranchBlock, BlockBody, ActionStatement, RecommendActivity, UseDecision, Terminology, TerminologyValueset, TerminologySystem, TerminologyCode, Activity, ActivityBody, ActivityRequest, ActivityWith, ActivityBecause, Concept, Parameter, DefinedAsDefinition, DefinedAsBareRef, DefinedAsComposition, CompositionExpression, CompositionRef, CompositionGroup, DefinitionIsDefinition, NarrativeClause, NConceptRef, NWord, NDisjunction, NConjunction, Quantity } from "./types";
|
|
7
|
+
import type { CRL, LibraryDeclaration, Include } from "./types";
|
|
9
8
|
export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> implements CRLParserVisitor<ASTNode> {
|
|
10
9
|
private readonly errors;
|
|
11
10
|
protected defaultResult(): ASTNode;
|
|
12
11
|
getErrors(): CRLError[];
|
|
13
12
|
protected reportError(message: string, ctx: ParserRuleContext, details?: Record<string, unknown>): void;
|
|
14
13
|
visitCrl(ctx: CrlContext): CRL;
|
|
14
|
+
visitLibraryStatement(ctx: LibraryStatementContext): LibraryDeclaration;
|
|
15
|
+
visitIncludeStatement(ctx: IncludeStatementContext): Include;
|
|
15
16
|
visitDecisionStatement(ctx: DecisionStatementContext): Decision;
|
|
16
17
|
visitDecisionBody(ctx: DecisionBodyContext): DecisionBody;
|
|
17
|
-
|
|
18
|
+
visitBranchItem(ctx: BranchItemContext): BranchBlock;
|
|
18
19
|
visitWhenWithBody(ctx: WhenWithBodyContext): WhenBlock;
|
|
19
20
|
visitWhenSingleAction(ctx: WhenSingleActionContext): WhenBlock;
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
visitOtherwiseWithBody(ctx: OtherwiseWithBodyContext): OtherwiseBlock;
|
|
22
|
+
visitOtherwiseSingleAction(ctx: OtherwiseSingleActionContext): OtherwiseBlock;
|
|
22
23
|
visitBlockBody(ctx: BlockBodyContext): BlockBody;
|
|
23
|
-
|
|
24
|
+
visitActionItem(ctx: ActionItemContext): ActionStatement;
|
|
25
|
+
private buildActionGuard;
|
|
24
26
|
visitActionStatement(ctx: ActionStatementContext): ActionStatement;
|
|
25
27
|
visitRecommendStatement(ctx: RecommendStatementContext): RecommendActivity;
|
|
26
28
|
visitUseStatement(ctx: UseStatementContext): UseDecision;
|
|
@@ -37,14 +39,32 @@ export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> imp
|
|
|
37
39
|
private parseMeta;
|
|
38
40
|
private parseEvidence;
|
|
39
41
|
private parseConceptDefinition;
|
|
42
|
+
private buildCodedFrom;
|
|
43
|
+
private parseCode;
|
|
44
|
+
private parseRepresentations;
|
|
45
|
+
visitParameterStatement(ctx: ParameterStatementContext): Parameter;
|
|
40
46
|
visitConceptStatement(ctx: ConceptStatementContext): Concept;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
visitDefinedAsBareRef(ctx: DefinedAsBareRefContext): DefinedAsBareRef;
|
|
48
|
+
visitDefinedAsComposition(ctx: DefinedAsCompositionContext): DefinedAsComposition;
|
|
49
|
+
visitCompositionExpression(ctx: CompositionExpressionContext): CompositionExpression;
|
|
50
|
+
visitSemOr(ctx: SemOrContext): CompositionExpression;
|
|
51
|
+
visitSemAnd(ctx: SemAndContext): CompositionExpression;
|
|
52
|
+
visitSemNot(ctx: SemNotContext): CompositionExpression;
|
|
53
|
+
visitCompositionRef(ctx: CompositionRefContext): CompositionRef;
|
|
54
|
+
visitCompositionGroup(ctx: CompositionGroupContext): CompositionGroup;
|
|
55
|
+
visitDefinedAsBody(ctx: DefinedAsBodyContext): DefinedAsDefinition;
|
|
56
|
+
visitDefinitionIsBody(ctx: DefinitionIsBodyContext): DefinitionIsDefinition;
|
|
57
|
+
visitNarrative(ctx: NarrativeContext): NarrativeClause;
|
|
58
|
+
visitNConceptRef(ctx: NConceptRefContext): NConceptRef;
|
|
59
|
+
visitNQuantity(ctx: NQuantityContext): Quantity;
|
|
60
|
+
visitNWord(ctx: NWordContext): NWord;
|
|
61
|
+
visitNArgGroupElement(ctx: NArgGroupElementContext): NDisjunction | NConjunction | NConceptRef | Quantity;
|
|
62
|
+
visitQuantity(ctx: QuantityContext): Quantity;
|
|
63
|
+
visitArgGroup(ctx: ArgGroupContext): NDisjunction | NConjunction | NConceptRef | Quantity;
|
|
64
|
+
visitArgDisjunction(ctx: ArgDisjunctionContext): NDisjunction;
|
|
65
|
+
visitArgConjunction(ctx: ArgConjunctionContext): NConjunction;
|
|
66
|
+
visitArgSingleton(ctx: ArgSingletonContext): NConceptRef | Quantity | NDisjunction | NConjunction;
|
|
67
|
+
visitAVConceptRef(ctx: AVConceptRefContext): NConceptRef;
|
|
68
|
+
visitAVQuantity(ctx: AVQuantityContext): Quantity;
|
|
69
|
+
visitAVNestedGroup(ctx: AVNestedGroupContext): NDisjunction | NConjunction | NConceptRef | Quantity;
|
|
49
70
|
}
|
|
50
|
-
export {};
|