@medplum/core 0.1.6 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -25
- package/dist/cache.d.ts +1 -0
- package/dist/cache.js +3 -2
- package/dist/cache.js.map +1 -1
- package/dist/client.d.ts +72 -54
- package/dist/client.js +267 -223
- package/dist/client.js.map +1 -1
- package/dist/crypto.js +13 -2
- package/dist/crypto.js.map +1 -1
- package/dist/eventtarget.js +1 -2
- package/dist/eventtarget.js.map +1 -1
- package/dist/format.d.ts +1 -1
- package/dist/format.js +4 -4
- package/dist/format.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/jwt.js.map +1 -1
- package/dist/outcomes.d.ts +4 -1
- package/dist/outcomes.js +71 -24
- package/dist/outcomes.js.map +1 -1
- package/dist/search.js +7 -9
- package/dist/search.js.map +1 -1
- package/dist/searchparams.d.ts +34 -0
- package/dist/searchparams.js +128 -0
- package/dist/searchparams.js.map +1 -0
- package/dist/storage.d.ts +36 -12
- package/dist/storage.js +55 -22
- package/dist/storage.js.map +1 -1
- package/dist/types.d.ts +3 -5
- package/dist/types.js +32 -18
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +14 -3
- package/dist/utils.js +57 -12
- package/dist/utils.js.map +1 -1
- package/package.json +3 -16
- package/dist/cache.test.d.ts +0 -1
- package/dist/cache.test.js +0 -29
- package/dist/cache.test.js.map +0 -1
- package/dist/client.test.d.ts +0 -1
- package/dist/client.test.js +0 -294
- package/dist/client.test.js.map +0 -1
- package/dist/eventtarget.test.d.ts +0 -1
- package/dist/eventtarget.test.js +0 -44
- package/dist/eventtarget.test.js.map +0 -1
- package/dist/fhir/Account.d.ts +0 -240
- package/dist/fhir/Account.js +0 -7
- package/dist/fhir/Account.js.map +0 -1
- package/dist/fhir/ActivityDefinition.d.ts +0 -494
- package/dist/fhir/ActivityDefinition.js +0 -7
- package/dist/fhir/ActivityDefinition.js.map +0 -1
- package/dist/fhir/Address.d.ts +0 -74
- package/dist/fhir/Address.js +0 -7
- package/dist/fhir/Address.js.map +0 -1
- package/dist/fhir/AdverseEvent.d.ts +0 -287
- package/dist/fhir/AdverseEvent.js +0 -7
- package/dist/fhir/AdverseEvent.js.map +0 -1
- package/dist/fhir/Age.d.ts +0 -47
- package/dist/fhir/Age.js +0 -7
- package/dist/fhir/Age.js.map +0 -1
- package/dist/fhir/AllergyIntolerance.d.ts +0 -278
- package/dist/fhir/AllergyIntolerance.js +0 -7
- package/dist/fhir/AllergyIntolerance.js.map +0 -1
- package/dist/fhir/Annotation.d.ts +0 -38
- package/dist/fhir/Annotation.js +0 -7
- package/dist/fhir/Annotation.js.map +0 -1
- package/dist/fhir/Appointment.d.ts +0 -273
- package/dist/fhir/Appointment.js +0 -7
- package/dist/fhir/Appointment.js.map +0 -1
- package/dist/fhir/AppointmentResponse.d.ts +0 -123
- package/dist/fhir/AppointmentResponse.js +0 -7
- package/dist/fhir/AppointmentResponse.js.map +0 -1
- package/dist/fhir/Attachment.d.ts +0 -57
- package/dist/fhir/Attachment.js +0 -7
- package/dist/fhir/Attachment.js.map +0 -1
- package/dist/fhir/AuditEvent.d.ts +0 -458
- package/dist/fhir/AuditEvent.js +0 -7
- package/dist/fhir/AuditEvent.js.map +0 -1
- package/dist/fhir/Basic.d.ts +0 -105
- package/dist/fhir/Basic.js +0 -7
- package/dist/fhir/Basic.js.map +0 -1
- package/dist/fhir/Binary.d.ts +0 -58
- package/dist/fhir/Binary.js +0 -7
- package/dist/fhir/Binary.js.map +0 -1
- package/dist/fhir/BiologicallyDerivedProduct.d.ts +0 -356
- package/dist/fhir/BiologicallyDerivedProduct.js +0 -7
- package/dist/fhir/BiologicallyDerivedProduct.js.map +0 -1
- package/dist/fhir/BodyStructure.d.ts +0 -118
- package/dist/fhir/BodyStructure.js +0 -7
- package/dist/fhir/BodyStructure.js.map +0 -1
- package/dist/fhir/Bundle.d.ts +0 -373
- package/dist/fhir/Bundle.js +0 -7
- package/dist/fhir/Bundle.js.map +0 -1
- package/dist/fhir/CapabilityStatement.d.ts +0 -1068
- package/dist/fhir/CapabilityStatement.js +0 -7
- package/dist/fhir/CapabilityStatement.js.map +0 -1
- package/dist/fhir/CarePlan.d.ts +0 -421
- package/dist/fhir/CarePlan.js +0 -7
- package/dist/fhir/CarePlan.js.map +0 -1
- package/dist/fhir/CareTeam.d.ts +0 -203
- package/dist/fhir/CareTeam.js +0 -7
- package/dist/fhir/CareTeam.js.map +0 -1
- package/dist/fhir/CatalogEntry.d.ts +0 -184
- package/dist/fhir/CatalogEntry.js +0 -7
- package/dist/fhir/CatalogEntry.js.map +0 -1
- package/dist/fhir/ChargeItem.d.ts +0 -270
- package/dist/fhir/ChargeItem.js +0 -7
- package/dist/fhir/ChargeItem.js.map +0 -1
- package/dist/fhir/ChargeItemDefinition.d.ts +0 -402
- package/dist/fhir/ChargeItemDefinition.js +0 -7
- package/dist/fhir/ChargeItemDefinition.js.map +0 -1
- package/dist/fhir/Claim.d.ts +0 -1089
- package/dist/fhir/Claim.js +0 -7
- package/dist/fhir/Claim.js.map +0 -1
- package/dist/fhir/ClaimResponse.d.ts +0 -1037
- package/dist/fhir/ClaimResponse.js +0 -7
- package/dist/fhir/ClaimResponse.js.map +0 -1
- package/dist/fhir/ClientApplication.d.ts +0 -54
- package/dist/fhir/ClientApplication.js +0 -7
- package/dist/fhir/ClientApplication.js.map +0 -1
- package/dist/fhir/ClinicalImpression.d.ts +0 -301
- package/dist/fhir/ClinicalImpression.js +0 -7
- package/dist/fhir/ClinicalImpression.js.map +0 -1
- package/dist/fhir/CodeSystem.d.ts +0 -546
- package/dist/fhir/CodeSystem.js +0 -7
- package/dist/fhir/CodeSystem.js.map +0 -1
- package/dist/fhir/CodeableConcept.d.ts +0 -32
- package/dist/fhir/CodeableConcept.js +0 -7
- package/dist/fhir/CodeableConcept.js.map +0 -1
- package/dist/fhir/Coding.d.ts +0 -49
- package/dist/fhir/Coding.js +0 -7
- package/dist/fhir/Coding.js.map +0 -1
- package/dist/fhir/Communication.d.ts +0 -251
- package/dist/fhir/Communication.js +0 -7
- package/dist/fhir/Communication.js.map +0 -1
- package/dist/fhir/CommunicationRequest.d.ts +0 -248
- package/dist/fhir/CommunicationRequest.js +0 -7
- package/dist/fhir/CommunicationRequest.js.map +0 -1
- package/dist/fhir/CompartmentDefinition.d.ts +0 -218
- package/dist/fhir/CompartmentDefinition.js +0 -7
- package/dist/fhir/CompartmentDefinition.js.map +0 -1
- package/dist/fhir/Composition.d.ts +0 -455
- package/dist/fhir/Composition.js +0 -7
- package/dist/fhir/Composition.js.map +0 -1
- package/dist/fhir/ConceptMap.d.ts +0 -523
- package/dist/fhir/ConceptMap.js +0 -7
- package/dist/fhir/ConceptMap.js.map +0 -1
- package/dist/fhir/Condition.d.ts +0 -316
- package/dist/fhir/Condition.js +0 -7
- package/dist/fhir/Condition.js.map +0 -1
- package/dist/fhir/Consent.d.ts +0 -457
- package/dist/fhir/Consent.js +0 -7
- package/dist/fhir/Consent.js.map +0 -1
- package/dist/fhir/ContactDetail.d.ts +0 -30
- package/dist/fhir/ContactDetail.js +0 -7
- package/dist/fhir/ContactDetail.js.map +0 -1
- package/dist/fhir/ContactPoint.d.ts +0 -46
- package/dist/fhir/ContactPoint.js +0 -7
- package/dist/fhir/ContactPoint.js.map +0 -1
- package/dist/fhir/Contract.d.ts +0 -1431
- package/dist/fhir/Contract.js +0 -7
- package/dist/fhir/Contract.js.map +0 -1
- package/dist/fhir/Contributor.d.ts +0 -36
- package/dist/fhir/Contributor.js +0 -7
- package/dist/fhir/Contributor.js.map +0 -1
- package/dist/fhir/Count.d.ts +0 -49
- package/dist/fhir/Count.js +0 -7
- package/dist/fhir/Count.js.map +0 -1
- package/dist/fhir/Coverage.d.ts +0 -323
- package/dist/fhir/Coverage.js +0 -7
- package/dist/fhir/Coverage.js.map +0 -1
- package/dist/fhir/CoverageEligibilityRequest.d.ts +0 -409
- package/dist/fhir/CoverageEligibilityRequest.js +0 -7
- package/dist/fhir/CoverageEligibilityRequest.js.map +0 -1
- package/dist/fhir/CoverageEligibilityResponse.d.ts +0 -430
- package/dist/fhir/CoverageEligibilityResponse.js +0 -7
- package/dist/fhir/CoverageEligibilityResponse.js.map +0 -1
- package/dist/fhir/DataRequirement.d.ts +0 -288
- package/dist/fhir/DataRequirement.js +0 -7
- package/dist/fhir/DataRequirement.js.map +0 -1
- package/dist/fhir/DetectedIssue.d.ts +0 -249
- package/dist/fhir/DetectedIssue.js +0 -7
- package/dist/fhir/DetectedIssue.js.map +0 -1
- package/dist/fhir/Device.d.ts +0 -488
- package/dist/fhir/Device.js +0 -7
- package/dist/fhir/Device.js.map +0 -1
- package/dist/fhir/DeviceDefinition.d.ts +0 -484
- package/dist/fhir/DeviceDefinition.js +0 -7
- package/dist/fhir/DeviceDefinition.js.map +0 -1
- package/dist/fhir/DeviceMetric.d.ts +0 -198
- package/dist/fhir/DeviceMetric.js +0 -7
- package/dist/fhir/DeviceMetric.js.map +0 -1
- package/dist/fhir/DeviceRequest.d.ts +0 -279
- package/dist/fhir/DeviceRequest.js +0 -7
- package/dist/fhir/DeviceRequest.js.map +0 -1
- package/dist/fhir/DeviceUseStatement.d.ts +0 -153
- package/dist/fhir/DeviceUseStatement.js +0 -7
- package/dist/fhir/DeviceUseStatement.js.map +0 -1
- package/dist/fhir/DiagnosticReport.d.ts +0 -239
- package/dist/fhir/DiagnosticReport.js +0 -7
- package/dist/fhir/DiagnosticReport.js.map +0 -1
- package/dist/fhir/Distance.d.ts +0 -46
- package/dist/fhir/Distance.js +0 -7
- package/dist/fhir/Distance.js.map +0 -1
- package/dist/fhir/DocumentManifest.d.ts +0 -190
- package/dist/fhir/DocumentManifest.js +0 -7
- package/dist/fhir/DocumentManifest.js.map +0 -1
- package/dist/fhir/DocumentReference.d.ts +0 -353
- package/dist/fhir/DocumentReference.js +0 -7
- package/dist/fhir/DocumentReference.js.map +0 -1
- package/dist/fhir/Dosage.d.ts +0 -171
- package/dist/fhir/Dosage.js +0 -7
- package/dist/fhir/Dosage.js.map +0 -1
- package/dist/fhir/Duration.d.ts +0 -46
- package/dist/fhir/Duration.js +0 -7
- package/dist/fhir/Duration.js.map +0 -1
- package/dist/fhir/EffectEvidenceSynthesis.d.ts +0 -600
- package/dist/fhir/EffectEvidenceSynthesis.js +0 -7
- package/dist/fhir/EffectEvidenceSynthesis.js.map +0 -1
- package/dist/fhir/Element.d.ts +0 -20
- package/dist/fhir/Element.js +0 -7
- package/dist/fhir/Element.js.map +0 -1
- package/dist/fhir/ElementDefinition.d.ts +0 -2828
- package/dist/fhir/ElementDefinition.js +0 -7
- package/dist/fhir/ElementDefinition.js.map +0 -1
- package/dist/fhir/Encounter.d.ts +0 -546
- package/dist/fhir/Encounter.js +0 -7
- package/dist/fhir/Encounter.js.map +0 -1
- package/dist/fhir/Endpoint.d.ts +0 -139
- package/dist/fhir/Endpoint.js +0 -7
- package/dist/fhir/Endpoint.js.map +0 -1
- package/dist/fhir/EnrollmentRequest.d.ts +0 -108
- package/dist/fhir/EnrollmentRequest.js +0 -7
- package/dist/fhir/EnrollmentRequest.js.map +0 -1
- package/dist/fhir/EnrollmentResponse.d.ts +0 -113
- package/dist/fhir/EnrollmentResponse.js +0 -7
- package/dist/fhir/EnrollmentResponse.js.map +0 -1
- package/dist/fhir/EpisodeOfCare.d.ts +0 -243
- package/dist/fhir/EpisodeOfCare.js +0 -7
- package/dist/fhir/EpisodeOfCare.js.map +0 -1
- package/dist/fhir/EventDefinition.d.ts +0 -252
- package/dist/fhir/EventDefinition.js +0 -7
- package/dist/fhir/EventDefinition.js.map +0 -1
- package/dist/fhir/Evidence.d.ts +0 -251
- package/dist/fhir/Evidence.js +0 -7
- package/dist/fhir/Evidence.js.map +0 -1
- package/dist/fhir/EvidenceVariable.d.ts +0 -369
- package/dist/fhir/EvidenceVariable.js +0 -7
- package/dist/fhir/EvidenceVariable.js.map +0 -1
- package/dist/fhir/ExampleScenario.d.ts +0 -626
- package/dist/fhir/ExampleScenario.js +0 -7
- package/dist/fhir/ExampleScenario.js.map +0 -1
- package/dist/fhir/ExplanationOfBenefit.d.ts +0 -1854
- package/dist/fhir/ExplanationOfBenefit.js +0 -7
- package/dist/fhir/ExplanationOfBenefit.js.map +0 -1
- package/dist/fhir/Expression.d.ts +0 -45
- package/dist/fhir/Expression.js +0 -7
- package/dist/fhir/Expression.js.map +0 -1
- package/dist/fhir/Extension.d.ts +0 -305
- package/dist/fhir/Extension.js +0 -7
- package/dist/fhir/Extension.js.map +0 -1
- package/dist/fhir/FamilyMemberHistory.d.ts +0 -297
- package/dist/fhir/FamilyMemberHistory.js +0 -7
- package/dist/fhir/FamilyMemberHistory.js.map +0 -1
- package/dist/fhir/Flag.d.ts +0 -121
- package/dist/fhir/Flag.js +0 -7
- package/dist/fhir/Flag.js.map +0 -1
- package/dist/fhir/Goal.d.ts +0 -290
- package/dist/fhir/Goal.js +0 -7
- package/dist/fhir/Goal.js.map +0 -1
- package/dist/fhir/GraphDefinition.d.ts +0 -359
- package/dist/fhir/GraphDefinition.js +0 -7
- package/dist/fhir/GraphDefinition.js.map +0 -1
- package/dist/fhir/Group.d.ts +0 -268
- package/dist/fhir/Group.js +0 -7
- package/dist/fhir/Group.js.map +0 -1
- package/dist/fhir/GuidanceResponse.d.ts +0 -184
- package/dist/fhir/GuidanceResponse.js +0 -7
- package/dist/fhir/GuidanceResponse.js.map +0 -1
- package/dist/fhir/HealthcareService.d.ts +0 -351
- package/dist/fhir/HealthcareService.js +0 -7
- package/dist/fhir/HealthcareService.js.map +0 -1
- package/dist/fhir/HumanName.d.ts +0 -57
- package/dist/fhir/HumanName.js +0 -7
- package/dist/fhir/HumanName.js.map +0 -1
- package/dist/fhir/Identifier.d.ts +0 -51
- package/dist/fhir/Identifier.js +0 -7
- package/dist/fhir/Identifier.js.map +0 -1
- package/dist/fhir/ImagingStudy.d.ts +0 -398
- package/dist/fhir/ImagingStudy.js +0 -7
- package/dist/fhir/ImagingStudy.js.map +0 -1
- package/dist/fhir/Immunization.d.ts +0 -440
- package/dist/fhir/Immunization.js +0 -7
- package/dist/fhir/Immunization.js.map +0 -1
- package/dist/fhir/ImmunizationEvaluation.d.ts +0 -146
- package/dist/fhir/ImmunizationEvaluation.js +0 -7
- package/dist/fhir/ImmunizationEvaluation.js.map +0 -1
- package/dist/fhir/ImmunizationRecommendation.d.ts +0 -253
- package/dist/fhir/ImmunizationRecommendation.js +0 -7
- package/dist/fhir/ImmunizationRecommendation.js.map +0 -1
- package/dist/fhir/ImplementationGuide.d.ts +0 -854
- package/dist/fhir/ImplementationGuide.js +0 -7
- package/dist/fhir/ImplementationGuide.js.map +0 -1
- package/dist/fhir/InsurancePlan.d.ts +0 -630
- package/dist/fhir/InsurancePlan.js +0 -7
- package/dist/fhir/InsurancePlan.js.map +0 -1
- package/dist/fhir/Invoice.d.ts +0 -331
- package/dist/fhir/Invoice.js +0 -7
- package/dist/fhir/Invoice.js.map +0 -1
- package/dist/fhir/JsonWebKey.d.ts +0 -99
- package/dist/fhir/JsonWebKey.js +0 -7
- package/dist/fhir/JsonWebKey.js.map +0 -1
- package/dist/fhir/Library.d.ts +0 -276
- package/dist/fhir/Library.js +0 -7
- package/dist/fhir/Library.js.map +0 -1
- package/dist/fhir/Linkage.d.ts +0 -142
- package/dist/fhir/Linkage.js +0 -7
- package/dist/fhir/Linkage.js.map +0 -1
- package/dist/fhir/List.d.ts +0 -193
- package/dist/fhir/List.js +0 -7
- package/dist/fhir/List.js.map +0 -1
- package/dist/fhir/Location.d.ts +0 -278
- package/dist/fhir/Location.js +0 -7
- package/dist/fhir/Location.js.map +0 -1
- package/dist/fhir/Login.d.ts +0 -108
- package/dist/fhir/Login.js +0 -7
- package/dist/fhir/Login.js.map +0 -1
- package/dist/fhir/MarketingStatus.d.ts +0 -82
- package/dist/fhir/MarketingStatus.js +0 -7
- package/dist/fhir/MarketingStatus.js.map +0 -1
- package/dist/fhir/Measure.d.ts +0 -613
- package/dist/fhir/Measure.js +0 -7
- package/dist/fhir/Measure.js.map +0 -1
- package/dist/fhir/MeasureReport.d.ts +0 -460
- package/dist/fhir/MeasureReport.js +0 -7
- package/dist/fhir/MeasureReport.js.map +0 -1
- package/dist/fhir/Media.d.ts +0 -191
- package/dist/fhir/Media.js +0 -7
- package/dist/fhir/Media.js.map +0 -1
- package/dist/fhir/Medication.d.ts +0 -234
- package/dist/fhir/Medication.js +0 -7
- package/dist/fhir/Medication.js.map +0 -1
- package/dist/fhir/MedicationAdministration.d.ts +0 -343
- package/dist/fhir/MedicationAdministration.js +0 -7
- package/dist/fhir/MedicationAdministration.js.map +0 -1
- package/dist/fhir/MedicationDispense.d.ts +0 -332
- package/dist/fhir/MedicationDispense.js +0 -7
- package/dist/fhir/MedicationDispense.js.map +0 -1
- package/dist/fhir/MedicationKnowledge.d.ts +0 -979
- package/dist/fhir/MedicationKnowledge.js +0 -7
- package/dist/fhir/MedicationKnowledge.js.map +0 -1
- package/dist/fhir/MedicationRequest.d.ts +0 -468
- package/dist/fhir/MedicationRequest.js +0 -7
- package/dist/fhir/MedicationRequest.js.map +0 -1
- package/dist/fhir/MedicationStatement.d.ts +0 -210
- package/dist/fhir/MedicationStatement.js +0 -7
- package/dist/fhir/MedicationStatement.js.map +0 -1
- package/dist/fhir/MedicinalProduct.d.ts +0 -449
- package/dist/fhir/MedicinalProduct.js +0 -7
- package/dist/fhir/MedicinalProduct.js.map +0 -1
- package/dist/fhir/MedicinalProductAuthorization.d.ts +0 -267
- package/dist/fhir/MedicinalProductAuthorization.js +0 -7
- package/dist/fhir/MedicinalProductAuthorization.js.map +0 -1
- package/dist/fhir/MedicinalProductContraindication.d.ts +0 -165
- package/dist/fhir/MedicinalProductContraindication.js +0 -7
- package/dist/fhir/MedicinalProductContraindication.js.map +0 -1
- package/dist/fhir/MedicinalProductIndication.d.ts +0 -173
- package/dist/fhir/MedicinalProductIndication.js +0 -7
- package/dist/fhir/MedicinalProductIndication.js.map +0 -1
- package/dist/fhir/MedicinalProductIngredient.d.ts +0 -334
- package/dist/fhir/MedicinalProductIngredient.js +0 -7
- package/dist/fhir/MedicinalProductIngredient.js.map +0 -1
- package/dist/fhir/MedicinalProductInteraction.d.ts +0 -155
- package/dist/fhir/MedicinalProductInteraction.js +0 -7
- package/dist/fhir/MedicinalProductInteraction.js.map +0 -1
- package/dist/fhir/MedicinalProductManufactured.d.ts +0 -111
- package/dist/fhir/MedicinalProductManufactured.js +0 -7
- package/dist/fhir/MedicinalProductManufactured.js.map +0 -1
- package/dist/fhir/MedicinalProductPackaged.d.ts +0 -253
- package/dist/fhir/MedicinalProductPackaged.js +0 -7
- package/dist/fhir/MedicinalProductPackaged.js.map +0 -1
- package/dist/fhir/MedicinalProductPharmaceutical.d.ts +0 -331
- package/dist/fhir/MedicinalProductPharmaceutical.js +0 -7
- package/dist/fhir/MedicinalProductPharmaceutical.js.map +0 -1
- package/dist/fhir/MedicinalProductUndesirableEffect.d.ts +0 -99
- package/dist/fhir/MedicinalProductUndesirableEffect.js +0 -7
- package/dist/fhir/MedicinalProductUndesirableEffect.js.map +0 -1
- package/dist/fhir/MessageDefinition.d.ts +0 -331
- package/dist/fhir/MessageDefinition.js +0 -7
- package/dist/fhir/MessageDefinition.js.map +0 -1
- package/dist/fhir/MessageHeader.d.ts +0 -329
- package/dist/fhir/MessageHeader.js +0 -7
- package/dist/fhir/MessageHeader.js.map +0 -1
- package/dist/fhir/Meta.d.ts +0 -68
- package/dist/fhir/Meta.js +0 -7
- package/dist/fhir/Meta.js.map +0 -1
- package/dist/fhir/MolecularSequence.d.ts +0 -746
- package/dist/fhir/MolecularSequence.js +0 -7
- package/dist/fhir/MolecularSequence.js.map +0 -1
- package/dist/fhir/Money.d.ts +0 -28
- package/dist/fhir/Money.js +0 -7
- package/dist/fhir/Money.js.map +0 -1
- package/dist/fhir/NamingSystem.d.ts +0 -219
- package/dist/fhir/NamingSystem.js +0 -7
- package/dist/fhir/NamingSystem.js.map +0 -1
- package/dist/fhir/Narrative.d.ts +0 -31
- package/dist/fhir/Narrative.js +0 -7
- package/dist/fhir/Narrative.js.map +0 -1
- package/dist/fhir/NutritionOrder.d.ts +0 -558
- package/dist/fhir/NutritionOrder.js +0 -7
- package/dist/fhir/NutritionOrder.js.map +0 -1
- package/dist/fhir/Observation.d.ts +0 -487
- package/dist/fhir/Observation.js +0 -7
- package/dist/fhir/Observation.js.map +0 -1
- package/dist/fhir/ObservationDefinition.d.ts +0 -277
- package/dist/fhir/ObservationDefinition.js +0 -7
- package/dist/fhir/ObservationDefinition.js.map +0 -1
- package/dist/fhir/OperationDefinition.d.ts +0 -468
- package/dist/fhir/OperationDefinition.js +0 -7
- package/dist/fhir/OperationDefinition.js.map +0 -1
- package/dist/fhir/OperationOutcome.d.ts +0 -168
- package/dist/fhir/OperationOutcome.js +0 -7
- package/dist/fhir/OperationOutcome.js.map +0 -1
- package/dist/fhir/Organization.d.ts +0 -187
- package/dist/fhir/Organization.js +0 -7
- package/dist/fhir/Organization.js.map +0 -1
- package/dist/fhir/OrganizationAffiliation.d.ts +0 -141
- package/dist/fhir/OrganizationAffiliation.js +0 -7
- package/dist/fhir/OrganizationAffiliation.js.map +0 -1
- package/dist/fhir/ParameterDefinition.d.ts +0 -56
- package/dist/fhir/ParameterDefinition.js +0 -7
- package/dist/fhir/ParameterDefinition.js.map +0 -1
- package/dist/fhir/Parameters.d.ts +0 -321
- package/dist/fhir/Parameters.js +0 -7
- package/dist/fhir/Parameters.js.map +0 -1
- package/dist/fhir/PasswordChangeRequest.d.ts +0 -50
- package/dist/fhir/PasswordChangeRequest.js +0 -7
- package/dist/fhir/PasswordChangeRequest.js.map +0 -1
- package/dist/fhir/Patient.d.ts +0 -339
- package/dist/fhir/Patient.js +0 -7
- package/dist/fhir/Patient.js.map +0 -1
- package/dist/fhir/PaymentNotice.d.ts +0 -131
- package/dist/fhir/PaymentNotice.js +0 -7
- package/dist/fhir/PaymentNotice.js.map +0 -1
- package/dist/fhir/PaymentReconciliation.d.ts +0 -276
- package/dist/fhir/PaymentReconciliation.js +0 -7
- package/dist/fhir/PaymentReconciliation.js.map +0 -1
- package/dist/fhir/Period.d.ts +0 -31
- package/dist/fhir/Period.js +0 -7
- package/dist/fhir/Period.js.map +0 -1
- package/dist/fhir/Person.d.ts +0 -172
- package/dist/fhir/Person.js +0 -7
- package/dist/fhir/Person.js.map +0 -1
- package/dist/fhir/PlanDefinition.d.ts +0 -855
- package/dist/fhir/PlanDefinition.js +0 -7
- package/dist/fhir/PlanDefinition.js.map +0 -1
- package/dist/fhir/Population.d.ts +0 -61
- package/dist/fhir/Population.js +0 -7
- package/dist/fhir/Population.js.map +0 -1
- package/dist/fhir/Practitioner.d.ts +0 -188
- package/dist/fhir/Practitioner.js +0 -7
- package/dist/fhir/Practitioner.js.map +0 -1
- package/dist/fhir/PractitionerRole.d.ts +0 -254
- package/dist/fhir/PractitionerRole.js +0 -7
- package/dist/fhir/PractitionerRole.js.map +0 -1
- package/dist/fhir/Procedure.d.ts +0 -355
- package/dist/fhir/Procedure.js +0 -7
- package/dist/fhir/Procedure.js.map +0 -1
- package/dist/fhir/ProdCharacteristic.d.ts +0 -112
- package/dist/fhir/ProdCharacteristic.js +0 -7
- package/dist/fhir/ProdCharacteristic.js.map +0 -1
- package/dist/fhir/ProductShelfLife.d.ts +0 -69
- package/dist/fhir/ProductShelfLife.js +0 -7
- package/dist/fhir/ProductShelfLife.js.map +0 -1
- package/dist/fhir/Project.d.ts +0 -46
- package/dist/fhir/Project.js +0 -7
- package/dist/fhir/Project.js.map +0 -1
- package/dist/fhir/ProjectMembership.d.ts +0 -54
- package/dist/fhir/ProjectMembership.js +0 -7
- package/dist/fhir/ProjectMembership.js.map +0 -1
- package/dist/fhir/Provenance.d.ts +0 -270
- package/dist/fhir/Provenance.js +0 -7
- package/dist/fhir/Provenance.js.map +0 -1
- package/dist/fhir/Quantity.d.ts +0 -49
- package/dist/fhir/Quantity.js +0 -7
- package/dist/fhir/Quantity.js.map +0 -1
- package/dist/fhir/Questionnaire.d.ts +0 -610
- package/dist/fhir/Questionnaire.js +0 -7
- package/dist/fhir/Questionnaire.js.map +0 -1
- package/dist/fhir/QuestionnaireResponse.d.ts +0 -305
- package/dist/fhir/QuestionnaireResponse.js +0 -7
- package/dist/fhir/QuestionnaireResponse.js.map +0 -1
- package/dist/fhir/Range.d.ts +0 -29
- package/dist/fhir/Range.js +0 -7
- package/dist/fhir/Range.js.map +0 -1
- package/dist/fhir/Ratio.d.ts +0 -30
- package/dist/fhir/Ratio.js +0 -7
- package/dist/fhir/Ratio.js.map +0 -1
- package/dist/fhir/Reference.d.ts +0 -66
- package/dist/fhir/Reference.js +0 -7
- package/dist/fhir/Reference.js.map +0 -1
- package/dist/fhir/RefreshToken.d.ts +0 -45
- package/dist/fhir/RefreshToken.js +0 -7
- package/dist/fhir/RefreshToken.js.map +0 -1
- package/dist/fhir/RelatedArtifact.d.ts +0 -56
- package/dist/fhir/RelatedArtifact.js +0 -7
- package/dist/fhir/RelatedArtifact.js.map +0 -1
- package/dist/fhir/RelatedPerson.d.ts +0 -190
- package/dist/fhir/RelatedPerson.js +0 -7
- package/dist/fhir/RelatedPerson.js.map +0 -1
- package/dist/fhir/RequestGroup.d.ts +0 -427
- package/dist/fhir/RequestGroup.js +0 -7
- package/dist/fhir/RequestGroup.js.map +0 -1
- package/dist/fhir/ResearchDefinition.d.ts +0 -289
- package/dist/fhir/ResearchDefinition.js +0 -7
- package/dist/fhir/ResearchDefinition.js.map +0 -1
- package/dist/fhir/ResearchElementDefinition.d.ts +0 -430
- package/dist/fhir/ResearchElementDefinition.js +0 -7
- package/dist/fhir/ResearchElementDefinition.js.map +0 -1
- package/dist/fhir/ResearchStudy.d.ts +0 -320
- package/dist/fhir/ResearchStudy.js +0 -7
- package/dist/fhir/ResearchStudy.js.map +0 -1
- package/dist/fhir/ResearchSubject.d.ts +0 -116
- package/dist/fhir/ResearchSubject.js +0 -7
- package/dist/fhir/ResearchSubject.js.map +0 -1
- package/dist/fhir/Resource.d.ts +0 -154
- package/dist/fhir/Resource.js +0 -7
- package/dist/fhir/Resource.js.map +0 -1
- package/dist/fhir/RiskAssessment.d.ts +0 -237
- package/dist/fhir/RiskAssessment.js +0 -7
- package/dist/fhir/RiskAssessment.js.map +0 -1
- package/dist/fhir/RiskEvidenceSynthesis.d.ts +0 -539
- package/dist/fhir/RiskEvidenceSynthesis.js +0 -7
- package/dist/fhir/RiskEvidenceSynthesis.js.map +0 -1
- package/dist/fhir/SampledData.d.ts +0 -61
- package/dist/fhir/SampledData.js +0 -7
- package/dist/fhir/SampledData.js.map +0 -1
- package/dist/fhir/Schedule.d.ts +0 -122
- package/dist/fhir/Schedule.js +0 -7
- package/dist/fhir/Schedule.js.map +0 -1
- package/dist/fhir/SearchParameter.d.ts +0 -278
- package/dist/fhir/SearchParameter.js +0 -7
- package/dist/fhir/SearchParameter.js.map +0 -1
- package/dist/fhir/ServiceRequest.d.ts +0 -288
- package/dist/fhir/ServiceRequest.js +0 -7
- package/dist/fhir/ServiceRequest.js.map +0 -1
- package/dist/fhir/Signature.d.ts +0 -65
- package/dist/fhir/Signature.js +0 -7
- package/dist/fhir/Signature.js.map +0 -1
- package/dist/fhir/Slot.d.ts +0 -133
- package/dist/fhir/Slot.js +0 -7
- package/dist/fhir/Slot.js.map +0 -1
- package/dist/fhir/Specimen.d.ts +0 -357
- package/dist/fhir/Specimen.js +0 -7
- package/dist/fhir/Specimen.js.map +0 -1
- package/dist/fhir/SpecimenDefinition.d.ts +0 -359
- package/dist/fhir/SpecimenDefinition.js +0 -7
- package/dist/fhir/SpecimenDefinition.js.map +0 -1
- package/dist/fhir/StructureDefinition.d.ts +0 -443
- package/dist/fhir/StructureDefinition.js +0 -7
- package/dist/fhir/StructureDefinition.js.map +0 -1
- package/dist/fhir/StructureMap.d.ts +0 -908
- package/dist/fhir/StructureMap.js +0 -7
- package/dist/fhir/StructureMap.js.map +0 -1
- package/dist/fhir/Subscription.d.ts +0 -176
- package/dist/fhir/Subscription.js +0 -7
- package/dist/fhir/Subscription.js.map +0 -1
- package/dist/fhir/Substance.d.ts +0 -212
- package/dist/fhir/Substance.js +0 -7
- package/dist/fhir/Substance.js.map +0 -1
- package/dist/fhir/SubstanceAmount.d.ts +0 -138
- package/dist/fhir/SubstanceAmount.js +0 -7
- package/dist/fhir/SubstanceAmount.js.map +0 -1
- package/dist/fhir/SubstanceNucleicAcid.d.ts +0 -316
- package/dist/fhir/SubstanceNucleicAcid.js +0 -7
- package/dist/fhir/SubstanceNucleicAcid.js.map +0 -1
- package/dist/fhir/SubstancePolymer.d.ts +0 -405
- package/dist/fhir/SubstancePolymer.js +0 -7
- package/dist/fhir/SubstancePolymer.js.map +0 -1
- package/dist/fhir/SubstanceProtein.d.ts +0 -217
- package/dist/fhir/SubstanceProtein.js +0 -7
- package/dist/fhir/SubstanceProtein.js.map +0 -1
- package/dist/fhir/SubstanceReferenceInformation.d.ts +0 -329
- package/dist/fhir/SubstanceReferenceInformation.js +0 -7
- package/dist/fhir/SubstanceReferenceInformation.js.map +0 -1
- package/dist/fhir/SubstanceSourceMaterial.d.ts +0 -594
- package/dist/fhir/SubstanceSourceMaterial.js +0 -7
- package/dist/fhir/SubstanceSourceMaterial.js.map +0 -1
- package/dist/fhir/SubstanceSpecification.d.ts +0 -826
- package/dist/fhir/SubstanceSpecification.js +0 -7
- package/dist/fhir/SubstanceSpecification.js.map +0 -1
- package/dist/fhir/SupplyDelivery.d.ts +0 -195
- package/dist/fhir/SupplyDelivery.js +0 -7
- package/dist/fhir/SupplyDelivery.js.map +0 -1
- package/dist/fhir/SupplyRequest.d.ts +0 -223
- package/dist/fhir/SupplyRequest.js +0 -7
- package/dist/fhir/SupplyRequest.js.map +0 -1
- package/dist/fhir/Task.d.ts +0 -789
- package/dist/fhir/Task.js +0 -7
- package/dist/fhir/Task.js.map +0 -1
- package/dist/fhir/TerminologyCapabilities.d.ts +0 -734
- package/dist/fhir/TerminologyCapabilities.js +0 -7
- package/dist/fhir/TerminologyCapabilities.js.map +0 -1
- package/dist/fhir/TestReport.d.ts +0 -554
- package/dist/fhir/TestReport.js +0 -7
- package/dist/fhir/TestReport.js.map +0 -1
- package/dist/fhir/TestScript.d.ts +0 -1192
- package/dist/fhir/TestScript.js +0 -7
- package/dist/fhir/TestScript.js.map +0 -1
- package/dist/fhir/Timing.d.ts +0 -201
- package/dist/fhir/Timing.js +0 -7
- package/dist/fhir/Timing.js.map +0 -1
- package/dist/fhir/TriggerDefinition.d.ts +0 -63
- package/dist/fhir/TriggerDefinition.js +0 -7
- package/dist/fhir/TriggerDefinition.js.map +0 -1
- package/dist/fhir/UsageContext.d.ts +0 -54
- package/dist/fhir/UsageContext.js +0 -7
- package/dist/fhir/UsageContext.js.map +0 -1
- package/dist/fhir/User.d.ts +0 -44
- package/dist/fhir/User.js +0 -7
- package/dist/fhir/User.js.map +0 -1
- package/dist/fhir/ValueSet.d.ts +0 -736
- package/dist/fhir/ValueSet.js +0 -7
- package/dist/fhir/ValueSet.js.map +0 -1
- package/dist/fhir/VerificationResult.d.ts +0 -340
- package/dist/fhir/VerificationResult.js +0 -7
- package/dist/fhir/VerificationResult.js.map +0 -1
- package/dist/fhir/VisionPrescription.d.ts +0 -261
- package/dist/fhir/VisionPrescription.js +0 -7
- package/dist/fhir/VisionPrescription.js.map +0 -1
- package/dist/fhir/index.d.ts +0 -194
- package/dist/fhir/index.js +0 -211
- package/dist/fhir/index.js.map +0 -1
- package/dist/fhirpath/functions.d.ts +0 -6
- package/dist/fhirpath/functions.js +0 -349
- package/dist/fhirpath/functions.js.map +0 -1
- package/dist/fhirpath/functions.test.d.ts +0 -1
- package/dist/fhirpath/functions.test.js +0 -162
- package/dist/fhirpath/functions.test.js.map +0 -1
- package/dist/fhirpath/index.d.ts +0 -2
- package/dist/fhirpath/index.js +0 -15
- package/dist/fhirpath/index.js.map +0 -1
- package/dist/fhirpath/parse.d.ts +0 -10
- package/dist/fhirpath/parse.js +0 -285
- package/dist/fhirpath/parse.js.map +0 -1
- package/dist/fhirpath/parse.test.d.ts +0 -1
- package/dist/fhirpath/parse.test.js +0 -239
- package/dist/fhirpath/parse.test.js.map +0 -1
- package/dist/fhirpath/tokenize.d.ts +0 -13
- package/dist/fhirpath/tokenize.js +0 -43
- package/dist/fhirpath/tokenize.js.map +0 -1
- package/dist/fhirpath/tokenize.test.d.ts +0 -1
- package/dist/fhirpath/tokenize.test.js +0 -69
- package/dist/fhirpath/tokenize.test.js.map +0 -1
- package/dist/fhirpath/utils.d.ts +0 -13
- package/dist/fhirpath/utils.js +0 -34
- package/dist/fhirpath/utils.js.map +0 -1
- package/dist/fhirpath/utils.test.d.ts +0 -1
- package/dist/fhirpath/utils.test.js +0 -22
- package/dist/fhirpath/utils.test.js.map +0 -1
- package/dist/format.test.d.ts +0 -1
- package/dist/format.test.js +0 -127
- package/dist/format.test.js.map +0 -1
- package/dist/index.test.d.ts +0 -1
- package/dist/index.test.js +0 -11
- package/dist/index.test.js.map +0 -1
- package/dist/outcomes.test.d.ts +0 -1
- package/dist/outcomes.test.js +0 -30
- package/dist/outcomes.test.js.map +0 -1
- package/dist/search.test.d.ts +0 -1
- package/dist/search.test.js +0 -70
- package/dist/search.test.js.map +0 -1
- package/dist/storage.test.d.ts +0 -1
- package/dist/storage.test.js +0 -19
- package/dist/storage.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/utils.test.d.ts +0 -1
- package/dist/utils.test.js +0 -90
- package/dist/utils.test.js.map +0 -1
package/dist/fhirpath/parse.js
DELETED
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseFhirPath = exports.FhirPathAtom = void 0;
|
|
4
|
-
const functions_1 = require("./functions");
|
|
5
|
-
const tokenize_1 = require("./tokenize");
|
|
6
|
-
const utils_1 = require("./utils");
|
|
7
|
-
class ParserBuilder {
|
|
8
|
-
prefixParselets = {};
|
|
9
|
-
infixParselets = {};
|
|
10
|
-
registerInfix(tokenType, parselet) {
|
|
11
|
-
this.infixParselets[tokenType] = parselet;
|
|
12
|
-
return this;
|
|
13
|
-
}
|
|
14
|
-
registerPrefix(tokenType, parselet) {
|
|
15
|
-
this.prefixParselets[tokenType] = parselet;
|
|
16
|
-
return this;
|
|
17
|
-
}
|
|
18
|
-
prefix(tokenType, precedence, builder) {
|
|
19
|
-
return this.registerPrefix(tokenType, {
|
|
20
|
-
parse(parser, token) {
|
|
21
|
-
const right = parser.parse(precedence);
|
|
22
|
-
return builder(token, right);
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
infixLeft(tokenType, precedence, builder) {
|
|
27
|
-
return this.registerInfix(tokenType, {
|
|
28
|
-
parse(parser, left, token) {
|
|
29
|
-
const right = parser.parse(precedence);
|
|
30
|
-
return builder(left, token, right);
|
|
31
|
-
},
|
|
32
|
-
precedence
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
infixRight(tokenType, precedence, builder) {
|
|
36
|
-
return this.registerInfix(tokenType, {
|
|
37
|
-
parse(parser, left, token) {
|
|
38
|
-
const right = parser.parse(precedence - 1);
|
|
39
|
-
return builder(left, token, right);
|
|
40
|
-
},
|
|
41
|
-
precedence
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
construct(input) {
|
|
45
|
-
return new Parser(tokenize_1.tokenizer.tokenize(input), this.prefixParselets, this.infixParselets);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
class Parser {
|
|
49
|
-
tokens;
|
|
50
|
-
prefixParselets;
|
|
51
|
-
infixParselets;
|
|
52
|
-
constructor(tokens, prefixParselets, infixParselets) {
|
|
53
|
-
this.tokens = tokens;
|
|
54
|
-
this.prefixParselets = prefixParselets;
|
|
55
|
-
this.infixParselets = infixParselets;
|
|
56
|
-
}
|
|
57
|
-
match(expected) {
|
|
58
|
-
const token = this.look();
|
|
59
|
-
if (token?.id !== expected) {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
this.consume();
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
parse(precedence = 0) {
|
|
66
|
-
const token = this.consume();
|
|
67
|
-
const prefix = this.prefixParselets[token.id];
|
|
68
|
-
if (!prefix) {
|
|
69
|
-
throw Error(`Parse error at ${token.value}. No matching prefix parselet.`);
|
|
70
|
-
}
|
|
71
|
-
let left = prefix.parse(this, token);
|
|
72
|
-
while (precedence < this.getPrecedence()) {
|
|
73
|
-
const next = this.consume();
|
|
74
|
-
const infix = this.infixParselets[next.id];
|
|
75
|
-
left = infix.parse(this, left, next);
|
|
76
|
-
}
|
|
77
|
-
return left;
|
|
78
|
-
}
|
|
79
|
-
getPrecedence() {
|
|
80
|
-
const nextToken = this.look();
|
|
81
|
-
if (!nextToken) {
|
|
82
|
-
return 0;
|
|
83
|
-
}
|
|
84
|
-
const parser = this.infixParselets[nextToken.id];
|
|
85
|
-
if (parser) {
|
|
86
|
-
return parser.precedence;
|
|
87
|
-
}
|
|
88
|
-
return 0;
|
|
89
|
-
}
|
|
90
|
-
consume() {
|
|
91
|
-
if (!this.tokens.length) {
|
|
92
|
-
throw Error('Cant consume any more tokens.');
|
|
93
|
-
}
|
|
94
|
-
return this.tokens.shift();
|
|
95
|
-
}
|
|
96
|
-
look() {
|
|
97
|
-
return this.tokens.length > 0 ? this.tokens[0] : undefined;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
class FhirPathAtom {
|
|
101
|
-
original;
|
|
102
|
-
child;
|
|
103
|
-
constructor(original, child) {
|
|
104
|
-
this.original = original;
|
|
105
|
-
this.child = child;
|
|
106
|
-
}
|
|
107
|
-
eval(context) {
|
|
108
|
-
try {
|
|
109
|
-
const result = (0, utils_1.applyMaybeArray)(context, e => this.child.eval(e));
|
|
110
|
-
if (Array.isArray(result)) {
|
|
111
|
-
return result.flat();
|
|
112
|
-
}
|
|
113
|
-
else if (result === undefined || result === null) {
|
|
114
|
-
return [];
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
return [result];
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
catch (error) {
|
|
121
|
-
throw new Error(`FhirPathError on "${this.original}": ${error}`);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
exports.FhirPathAtom = FhirPathAtom;
|
|
126
|
-
class LiteralAtom {
|
|
127
|
-
value;
|
|
128
|
-
constructor(value) {
|
|
129
|
-
this.value = value;
|
|
130
|
-
}
|
|
131
|
-
eval() {
|
|
132
|
-
return this.value;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
class SymbolAtom {
|
|
136
|
-
name;
|
|
137
|
-
constructor(name) {
|
|
138
|
-
this.name = name;
|
|
139
|
-
}
|
|
140
|
-
eval(context) {
|
|
141
|
-
return (0, utils_1.applyMaybeArray)(context, e => e.resourceType === this.name ? e : e[this.name]);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
class UnaryOperatorAtom {
|
|
145
|
-
child;
|
|
146
|
-
impl;
|
|
147
|
-
constructor(child, impl) {
|
|
148
|
-
this.child = child;
|
|
149
|
-
this.impl = impl;
|
|
150
|
-
}
|
|
151
|
-
eval(context) {
|
|
152
|
-
return this.impl(this.child.eval(context));
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
class BinaryOperatorAtom {
|
|
156
|
-
left;
|
|
157
|
-
right;
|
|
158
|
-
impl;
|
|
159
|
-
constructor(left, right, impl) {
|
|
160
|
-
this.left = left;
|
|
161
|
-
this.right = right;
|
|
162
|
-
this.impl = impl;
|
|
163
|
-
}
|
|
164
|
-
eval(context) {
|
|
165
|
-
return this.impl(this.left.eval(context), this.right.eval(context));
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
class DotAtom {
|
|
169
|
-
left;
|
|
170
|
-
right;
|
|
171
|
-
constructor(left, right) {
|
|
172
|
-
this.left = left;
|
|
173
|
-
this.right = right;
|
|
174
|
-
}
|
|
175
|
-
eval(context) {
|
|
176
|
-
return this.right.eval(this.left.eval(context));
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
class UnionAtom {
|
|
180
|
-
left;
|
|
181
|
-
right;
|
|
182
|
-
constructor(left, right) {
|
|
183
|
-
this.left = left;
|
|
184
|
-
this.right = right;
|
|
185
|
-
}
|
|
186
|
-
eval(context) {
|
|
187
|
-
const leftResult = this.left.eval(context);
|
|
188
|
-
const rightResult = this.right.eval(context);
|
|
189
|
-
if (leftResult && rightResult) {
|
|
190
|
-
return [leftResult, rightResult].flat();
|
|
191
|
-
}
|
|
192
|
-
return leftResult || rightResult;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
class IsAtom {
|
|
196
|
-
left;
|
|
197
|
-
right;
|
|
198
|
-
constructor(left, right) {
|
|
199
|
-
this.left = left;
|
|
200
|
-
this.right = right;
|
|
201
|
-
}
|
|
202
|
-
eval(context) {
|
|
203
|
-
const desiredResourceType = this.right.name;
|
|
204
|
-
return (0, utils_1.applyMaybeArray)(this.left.eval(context), e => e?.resourceType === desiredResourceType ? e : undefined);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
class FunctionAtom {
|
|
208
|
-
name;
|
|
209
|
-
args;
|
|
210
|
-
impl;
|
|
211
|
-
constructor(name, args, impl) {
|
|
212
|
-
this.name = name;
|
|
213
|
-
this.args = args;
|
|
214
|
-
this.impl = impl;
|
|
215
|
-
}
|
|
216
|
-
eval(context) {
|
|
217
|
-
if (context === undefined) {
|
|
218
|
-
return undefined;
|
|
219
|
-
}
|
|
220
|
-
const input = Array.isArray(context) ? context : [context];
|
|
221
|
-
return this.impl(input, ...this.args);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
const PARENTHESES_PARSELET = {
|
|
225
|
-
parse(parser) {
|
|
226
|
-
const expr = parser.parse();
|
|
227
|
-
if (!parser.match(')')) {
|
|
228
|
-
throw new Error('Parse error: expected `)`');
|
|
229
|
-
}
|
|
230
|
-
return expr;
|
|
231
|
-
}
|
|
232
|
-
};
|
|
233
|
-
const FUNCTION_CALL_PARSELET = {
|
|
234
|
-
parse(parser, left) {
|
|
235
|
-
if (!(left instanceof SymbolAtom)) {
|
|
236
|
-
throw new Error('Unexpected parentheses');
|
|
237
|
-
}
|
|
238
|
-
if (!(left.name in functions_1.functions)) {
|
|
239
|
-
throw new Error('Unrecognized function: ' + left.name);
|
|
240
|
-
}
|
|
241
|
-
const args = [];
|
|
242
|
-
while (!parser.match(')')) {
|
|
243
|
-
args.push(parser.parse());
|
|
244
|
-
}
|
|
245
|
-
return new FunctionAtom(left.name, args, functions_1.functions[left.name]);
|
|
246
|
-
},
|
|
247
|
-
precedence: 8 /* FunctionCall */
|
|
248
|
-
};
|
|
249
|
-
const parserBuilder = new ParserBuilder()
|
|
250
|
-
.registerPrefix('StringLiteral', { parse: (_, token) => new LiteralAtom(token.value.substring(1, token.value.length - 1)) })
|
|
251
|
-
.registerPrefix('Number', { parse: (_, token) => new LiteralAtom(parseFloat(token.value)) })
|
|
252
|
-
.registerPrefix('Symbol', { parse: (_, token) => new SymbolAtom(token.value) })
|
|
253
|
-
.registerPrefix('(', PARENTHESES_PARSELET)
|
|
254
|
-
.registerInfix('(', FUNCTION_CALL_PARSELET)
|
|
255
|
-
.prefix('-', 6 /* Negate */, (_, right) => new UnaryOperatorAtom(right, x => -x))
|
|
256
|
-
.infixLeft('.', 7 /* Dot */, (left, _, right) => new DotAtom(left, right))
|
|
257
|
-
.infixRight('^', 5 /* Exp */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x ** y))
|
|
258
|
-
.infixLeft('/', 4 /* MulDiv */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x / y))
|
|
259
|
-
.infixLeft('*', 4 /* MulDiv */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x * y))
|
|
260
|
-
.infixLeft('+', 3 /* AddSub */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x + y))
|
|
261
|
-
.infixLeft('-', 3 /* AddSub */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x - y))
|
|
262
|
-
.infixLeft('|', 1 /* Union */, (left, _, right) => new UnionAtom(left, right))
|
|
263
|
-
.infixLeft('=', 2 /* Equals */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x === y))
|
|
264
|
-
.infixLeft('Symbol', 1 /* Union */, (left, symbol, right) => {
|
|
265
|
-
switch (symbol.value) {
|
|
266
|
-
case 'as':
|
|
267
|
-
return new BinaryOperatorAtom(left, right, (x) => x);
|
|
268
|
-
case 'is':
|
|
269
|
-
return new IsAtom(left, right);
|
|
270
|
-
case 'and':
|
|
271
|
-
return new BinaryOperatorAtom(left, right, (x, y) => x && y);
|
|
272
|
-
default:
|
|
273
|
-
throw new Error('Cannot use ' + symbol.value + ' as infix operator');
|
|
274
|
-
}
|
|
275
|
-
});
|
|
276
|
-
function parseFhirPath(input) {
|
|
277
|
-
try {
|
|
278
|
-
return new FhirPathAtom(input, parserBuilder.construct(input).parse());
|
|
279
|
-
}
|
|
280
|
-
catch (error) {
|
|
281
|
-
throw new Error(`FhirPathError on "${input}": ${error}`);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
exports.parseFhirPath = parseFhirPath;
|
|
285
|
-
//# sourceMappingURL=parse.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/fhirpath/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const definitions_1 = require("@medplum/definitions");
|
|
4
|
-
const parse_1 = require("./parse");
|
|
5
|
-
test('Parser can build a arithmetic parser with correct order of operations', () => {
|
|
6
|
-
const result = (0, parse_1.parseFhirPath)('3 / 3 + 4 * 3 ^ 2 - 1').eval(0);
|
|
7
|
-
expect(result).toEqual([36]);
|
|
8
|
-
});
|
|
9
|
-
test('Parser can build a arithmetic parser with parentheses', () => {
|
|
10
|
-
const result = (0, parse_1.parseFhirPath)('3 / 3 + 4 * (3 ^ (2 - 1))').eval(0);
|
|
11
|
-
expect(result).toEqual([13]);
|
|
12
|
-
});
|
|
13
|
-
test('Parser can build a arithmetic parser with correct associativity', () => {
|
|
14
|
-
const result = (0, parse_1.parseFhirPath)('5 - 4 - 3 - 2 - 1 + 2 ^ 3 ^ 2').eval(0);
|
|
15
|
-
expect(result).toEqual([507]);
|
|
16
|
-
});
|
|
17
|
-
test('Parser can build an arithmetic parser with prefix operators', () => {
|
|
18
|
-
const result = (0, parse_1.parseFhirPath)('-4 + -(4 + 5 - -4)').eval(0);
|
|
19
|
-
expect(result).toEqual([-17]);
|
|
20
|
-
});
|
|
21
|
-
test('Parser throws on missing closing parentheses', () => {
|
|
22
|
-
expect(() => (0, parse_1.parseFhirPath)('(2 + 1')).toThrowError('Parse error: expected `)`');
|
|
23
|
-
});
|
|
24
|
-
test('Parser throws on unexpected symbol', () => {
|
|
25
|
-
expect(() => (0, parse_1.parseFhirPath)('*')).toThrowError('Parse error at *. No matching prefix parselet.');
|
|
26
|
-
});
|
|
27
|
-
test('Parser throws on missing tokens', () => {
|
|
28
|
-
expect(() => (0, parse_1.parseFhirPath)('1 * ')).toThrowError('Cant consume any more tokens.');
|
|
29
|
-
});
|
|
30
|
-
test('Evaluate FHIRPath Patient.name.given on empty resource', () => {
|
|
31
|
-
const result = (0, parse_1.parseFhirPath)('Patient.name.given').eval({});
|
|
32
|
-
expect(result).toEqual([]);
|
|
33
|
-
});
|
|
34
|
-
test('Evaluate FHIRPath Patient.name.given', () => {
|
|
35
|
-
const result = (0, parse_1.parseFhirPath)('Patient.name.given').eval({
|
|
36
|
-
resourceType: 'Patient',
|
|
37
|
-
name: [{
|
|
38
|
-
given: ['Alice'],
|
|
39
|
-
family: 'Smith'
|
|
40
|
-
}]
|
|
41
|
-
});
|
|
42
|
-
expect(result).toEqual(['Alice']);
|
|
43
|
-
});
|
|
44
|
-
test('Evaluate FHIRPath string concatenation', () => {
|
|
45
|
-
const result = (0, parse_1.parseFhirPath)('Patient.name.given + \' \' + Patient.name.family').eval({
|
|
46
|
-
resourceType: 'Patient',
|
|
47
|
-
name: [{
|
|
48
|
-
given: ['Alice'],
|
|
49
|
-
family: 'Smith'
|
|
50
|
-
}]
|
|
51
|
-
});
|
|
52
|
-
expect(result).toEqual(['Alice Smith']);
|
|
53
|
-
});
|
|
54
|
-
test('Evaluate FHIRPath Patient.name.given on array of resources', () => {
|
|
55
|
-
const result = (0, parse_1.parseFhirPath)('Patient.name.given').eval([{
|
|
56
|
-
resourceType: 'Patient',
|
|
57
|
-
name: [{
|
|
58
|
-
given: ['Alice'],
|
|
59
|
-
family: 'Smith'
|
|
60
|
-
}]
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
resourceType: 'Patient',
|
|
64
|
-
name: [{
|
|
65
|
-
given: ['Bob'],
|
|
66
|
-
family: 'Jones'
|
|
67
|
-
}]
|
|
68
|
-
}]);
|
|
69
|
-
expect(result).toEqual(['Alice', 'Bob']);
|
|
70
|
-
});
|
|
71
|
-
test('Evaluate FHIRPath string concatenation on array of resources', () => {
|
|
72
|
-
const result = (0, parse_1.parseFhirPath)('Patient.name.given + \' \' + Patient.name.family').eval([{
|
|
73
|
-
resourceType: 'Patient',
|
|
74
|
-
name: [{
|
|
75
|
-
given: ['Alice'],
|
|
76
|
-
family: 'Smith'
|
|
77
|
-
}]
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
resourceType: 'Patient',
|
|
81
|
-
name: [{
|
|
82
|
-
given: ['Bob'],
|
|
83
|
-
family: 'Jones'
|
|
84
|
-
}]
|
|
85
|
-
}]);
|
|
86
|
-
expect(result).toEqual(['Alice Smith', 'Bob Jones']);
|
|
87
|
-
});
|
|
88
|
-
test('Evaluate FHIRPath Patient.name.given on array of resources', () => {
|
|
89
|
-
const result = (0, parse_1.parseFhirPath)('Patient.name.given').eval([{
|
|
90
|
-
resourceType: 'Practitioner',
|
|
91
|
-
name: [{
|
|
92
|
-
given: ['Alice'],
|
|
93
|
-
family: 'Smith'
|
|
94
|
-
}]
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
resourceType: 'Patient',
|
|
98
|
-
name: [{
|
|
99
|
-
given: ['Bob'],
|
|
100
|
-
family: 'Jones'
|
|
101
|
-
}]
|
|
102
|
-
}]);
|
|
103
|
-
expect(result).toEqual(['Bob']);
|
|
104
|
-
});
|
|
105
|
-
test('Evaluate FHIRPath union', () => {
|
|
106
|
-
const result = (0, parse_1.parseFhirPath)('Practitioner.name.given | Patient.name.given').eval({
|
|
107
|
-
resourceType: 'Patient',
|
|
108
|
-
name: [{
|
|
109
|
-
given: ['Alice'],
|
|
110
|
-
family: 'Smith'
|
|
111
|
-
}]
|
|
112
|
-
});
|
|
113
|
-
expect(result).toEqual(['Alice']);
|
|
114
|
-
});
|
|
115
|
-
test('Evaluate FHIRPath union to combine results', () => {
|
|
116
|
-
const result = (0, parse_1.parseFhirPath)('Practitioner.name.given | Patient.name.given').eval([{
|
|
117
|
-
resourceType: 'Patient',
|
|
118
|
-
name: [{
|
|
119
|
-
given: ['Alice'],
|
|
120
|
-
family: 'Smith'
|
|
121
|
-
}]
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
resourceType: 'Practitioner',
|
|
125
|
-
name: [{
|
|
126
|
-
given: ['Bob'],
|
|
127
|
-
family: 'Jones'
|
|
128
|
-
}]
|
|
129
|
-
}]);
|
|
130
|
-
expect(result).toEqual(['Alice', 'Bob']);
|
|
131
|
-
});
|
|
132
|
-
test('Evaluate FHIRPath double union', () => {
|
|
133
|
-
const result = (0, parse_1.parseFhirPath)('Patient.name.given | Patient.name.given').eval([{
|
|
134
|
-
resourceType: 'Patient',
|
|
135
|
-
name: [{
|
|
136
|
-
given: ['Alice'],
|
|
137
|
-
family: 'Smith'
|
|
138
|
-
}]
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
resourceType: 'Patient',
|
|
142
|
-
name: [{
|
|
143
|
-
given: ['Bob'],
|
|
144
|
-
family: 'Jones'
|
|
145
|
-
}]
|
|
146
|
-
}]);
|
|
147
|
-
expect(result).toEqual(['Alice', 'Alice', 'Bob', 'Bob']);
|
|
148
|
-
});
|
|
149
|
-
test('Evaluate ignores non-objects', () => {
|
|
150
|
-
const result = (0, parse_1.parseFhirPath)('foo.bar').eval({
|
|
151
|
-
foo: 1
|
|
152
|
-
});
|
|
153
|
-
expect(result).toEqual([]);
|
|
154
|
-
});
|
|
155
|
-
test('Evaluate fails on function parentheses after non-symbol', () => {
|
|
156
|
-
expect(() => (0, parse_1.parseFhirPath)('1()').eval(0)).toThrowError('Unexpected parentheses');
|
|
157
|
-
});
|
|
158
|
-
test('Evaluate fails on unrecognized function', () => {
|
|
159
|
-
expect(() => (0, parse_1.parseFhirPath)('asdf()').eval(0)).toThrowError('Unrecognized function');
|
|
160
|
-
});
|
|
161
|
-
test('Evaluate FHIRPath where function', () => {
|
|
162
|
-
const result = (0, parse_1.parseFhirPath)('Patient.telecom.where(system=\'email\')').eval({
|
|
163
|
-
resourceType: 'Patient',
|
|
164
|
-
name: [{
|
|
165
|
-
given: ['Alice'],
|
|
166
|
-
family: 'Smith'
|
|
167
|
-
}],
|
|
168
|
-
telecom: [
|
|
169
|
-
{
|
|
170
|
-
system: 'a',
|
|
171
|
-
value: 'a'
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
system: 'b',
|
|
175
|
-
value: 'b'
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
system: 'email',
|
|
179
|
-
value: 'alice@example.com'
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
system: 'c',
|
|
183
|
-
value: 'c'
|
|
184
|
-
},
|
|
185
|
-
]
|
|
186
|
-
});
|
|
187
|
-
expect(result).toMatchObject([{
|
|
188
|
-
system: 'email',
|
|
189
|
-
value: 'alice@example.com'
|
|
190
|
-
}]);
|
|
191
|
-
});
|
|
192
|
-
test('Eval all SearchParameter expressions', () => {
|
|
193
|
-
const searchParams = (0, definitions_1.readJson)('fhir/r4/search-parameters.json');
|
|
194
|
-
for (const entry of searchParams.entry) {
|
|
195
|
-
const resource = entry.resource;
|
|
196
|
-
const { expression } = resource;
|
|
197
|
-
if (expression) {
|
|
198
|
-
expect(() => (0, parse_1.parseFhirPath)((expression))).not.toThrow();
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
test('Eval FHIRPath resolve function', () => {
|
|
203
|
-
const observation = {
|
|
204
|
-
resourceType: 'Observation',
|
|
205
|
-
subject: {
|
|
206
|
-
reference: 'Patient/123'
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
|
-
const result = (0, parse_1.parseFhirPath)('Observation.subject.resolve()').eval(observation);
|
|
210
|
-
expect(result).toMatchObject([{
|
|
211
|
-
resourceType: 'Patient',
|
|
212
|
-
id: '123'
|
|
213
|
-
}]);
|
|
214
|
-
});
|
|
215
|
-
test('Resolve is resourceType', () => {
|
|
216
|
-
const auditEvent = {
|
|
217
|
-
resourceType: 'AuditEvent',
|
|
218
|
-
entity: [{
|
|
219
|
-
what: {
|
|
220
|
-
reference: 'Patient/123'
|
|
221
|
-
}
|
|
222
|
-
}]
|
|
223
|
-
};
|
|
224
|
-
const result = (0, parse_1.parseFhirPath)('AuditEvent.entity.what.where(resolve() is Patient)').eval(auditEvent);
|
|
225
|
-
expect(result).toEqual([{ reference: 'Patient/123' }]);
|
|
226
|
-
});
|
|
227
|
-
test('Resolve is not resourceType', () => {
|
|
228
|
-
const auditEvent = {
|
|
229
|
-
resourceType: 'AuditEvent',
|
|
230
|
-
entity: [{
|
|
231
|
-
what: {
|
|
232
|
-
reference: 'Subscription/123'
|
|
233
|
-
}
|
|
234
|
-
}]
|
|
235
|
-
};
|
|
236
|
-
const result = (0, parse_1.parseFhirPath)('AuditEvent.entity.what.where(resolve() is Patient)').eval(auditEvent);
|
|
237
|
-
expect(result).toEqual([]);
|
|
238
|
-
});
|
|
239
|
-
//# sourceMappingURL=parse.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.test.js","sourceRoot":"","sources":["../../src/fhirpath/parse.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface TokenMatcher {
|
|
2
|
-
id: string;
|
|
3
|
-
pattern: RegExp;
|
|
4
|
-
}
|
|
5
|
-
export interface Token extends TokenMatcher {
|
|
6
|
-
value: string;
|
|
7
|
-
}
|
|
8
|
-
export declare class Tokenizer {
|
|
9
|
-
private matchAll;
|
|
10
|
-
constructor();
|
|
11
|
-
tokenize(str: string): Token[];
|
|
12
|
-
}
|
|
13
|
-
export declare const tokenizer: Tokenizer;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tokenizer = exports.Tokenizer = void 0;
|
|
4
|
-
const matchers = [
|
|
5
|
-
{ id: 'Comment', pattern: /\/\/.*$/ },
|
|
6
|
-
{ id: 'StringLiteral', pattern: /'[^']*'/ },
|
|
7
|
-
{ id: '(', pattern: /\(/ },
|
|
8
|
-
{ id: ')', pattern: /\)/ },
|
|
9
|
-
{ id: '*', pattern: /\*/ },
|
|
10
|
-
{ id: '/', pattern: /\// },
|
|
11
|
-
{ id: '+', pattern: /\+/ },
|
|
12
|
-
{ id: '-', pattern: /-/ },
|
|
13
|
-
{ id: '^', pattern: /\^/ },
|
|
14
|
-
{ id: '!', pattern: /!/ },
|
|
15
|
-
{ id: '.', pattern: /\./ },
|
|
16
|
-
{ id: '|', pattern: /\|/ },
|
|
17
|
-
{ id: '=', pattern: /=/ },
|
|
18
|
-
{ id: 'Number', pattern: /\d+/ },
|
|
19
|
-
{ id: 'Symbol', pattern: /\w+/ },
|
|
20
|
-
];
|
|
21
|
-
class Tokenizer {
|
|
22
|
-
matchAll;
|
|
23
|
-
constructor() {
|
|
24
|
-
this.matchAll = new RegExp(matchers.map(matcher => matcher.pattern.source).join('|'), 'g');
|
|
25
|
-
}
|
|
26
|
-
tokenize(str) {
|
|
27
|
-
// Double-execing the RegExp is actually not that slow. Faster than my attempted alternative implementation.
|
|
28
|
-
// https://jsperf.com/tokenization-strategies-jkearl-pratt/1
|
|
29
|
-
const tokens = str.match(this.matchAll);
|
|
30
|
-
if (!tokens) {
|
|
31
|
-
throw new Error('Could not tokenize');
|
|
32
|
-
}
|
|
33
|
-
return tokens.map(value => {
|
|
34
|
-
return {
|
|
35
|
-
...matchers.find(matcher => matcher.pattern.test(value)),
|
|
36
|
-
value
|
|
37
|
-
};
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.Tokenizer = Tokenizer;
|
|
42
|
-
exports.tokenizer = new Tokenizer();
|
|
43
|
-
//# sourceMappingURL=tokenize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../src/fhirpath/tokenize.ts"],"names":[],"mappings":";;;AAUA,MAAM,QAAQ,GAAmB;IAC/B,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;IACrC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE;IAC3C,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;IACzB,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;IACzB,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;IACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;IAChC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;CACjC,CAAC;AAEF,MAAa,SAAS;IACZ,QAAQ,CAAQ;IAExB;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7F,CAAC;IAEM,QAAQ,CAAC,GAAW;QACzB,4GAA4G;QAC5G,4DAA4D;QAE5D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO;gBACL,GAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAkB;gBAC1E,KAAK;aACN,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvBD,8BAuBC;AAEY,QAAA,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|