@medplum/core 0.2.1 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (660) hide show
  1. package/README.md +32 -26
  2. package/dist/cjs/index.js +1818 -0
  3. package/dist/cjs/index.js.map +1 -0
  4. package/dist/cjs/index.min.js +16 -0
  5. package/dist/cjs/index.min.js.map +1 -0
  6. package/dist/esm/index.js +1769 -0
  7. package/dist/esm/index.js.map +1 -0
  8. package/dist/esm/index.min.js +16 -0
  9. package/dist/esm/index.min.js.map +1 -0
  10. package/dist/{cache.d.ts → types/cache.d.ts} +2 -3
  11. package/dist/types/client.d.ts +230 -0
  12. package/dist/{crypto.d.ts → types/crypto.d.ts} +0 -0
  13. package/dist/{eventtarget.d.ts → types/eventtarget.d.ts} +3 -3
  14. package/dist/{format.d.ts → types/format.d.ts} +1 -1
  15. package/dist/{index.d.ts → types/index.d.ts} +0 -2
  16. package/dist/types/jwt.d.ts +5 -0
  17. package/dist/{outcomes.d.ts → types/outcomes.d.ts} +7 -2
  18. package/dist/{search.d.ts → types/search.d.ts} +4 -0
  19. package/dist/{searchparams.d.ts → types/searchparams.d.ts} +1 -1
  20. package/dist/{storage.d.ts → types/storage.d.ts} +2 -2
  21. package/dist/{types.d.ts → types/types.d.ts} +18 -4
  22. package/dist/{utils.d.ts → types/utils.d.ts} +7 -1
  23. package/package.json +14 -9
  24. package/dist/cache.js +0 -36
  25. package/dist/cache.js.map +0 -1
  26. package/dist/client.d.ts +0 -233
  27. package/dist/client.js +0 -541
  28. package/dist/client.js.map +0 -1
  29. package/dist/crypto.js +0 -33
  30. package/dist/crypto.js.map +0 -1
  31. package/dist/eventtarget.js +0 -38
  32. package/dist/eventtarget.js.map +0 -1
  33. package/dist/fhir/AccessPolicy.d.ts +0 -75
  34. package/dist/fhir/AccessPolicy.js +0 -7
  35. package/dist/fhir/AccessPolicy.js.map +0 -1
  36. package/dist/fhir/Account.d.ts +0 -247
  37. package/dist/fhir/Account.js +0 -7
  38. package/dist/fhir/Account.js.map +0 -1
  39. package/dist/fhir/ActivityDefinition.d.ts +0 -500
  40. package/dist/fhir/ActivityDefinition.js +0 -7
  41. package/dist/fhir/ActivityDefinition.js.map +0 -1
  42. package/dist/fhir/Address.d.ts +0 -75
  43. package/dist/fhir/Address.js +0 -7
  44. package/dist/fhir/Address.js.map +0 -1
  45. package/dist/fhir/AdverseEvent.d.ts +0 -303
  46. package/dist/fhir/AdverseEvent.js +0 -7
  47. package/dist/fhir/AdverseEvent.js.map +0 -1
  48. package/dist/fhir/Age.d.ts +0 -47
  49. package/dist/fhir/Age.js +0 -7
  50. package/dist/fhir/Age.js.map +0 -1
  51. package/dist/fhir/AllergyIntolerance.d.ts +0 -283
  52. package/dist/fhir/AllergyIntolerance.js +0 -7
  53. package/dist/fhir/AllergyIntolerance.js.map +0 -1
  54. package/dist/fhir/Annotation.d.ts +0 -42
  55. package/dist/fhir/Annotation.js +0 -7
  56. package/dist/fhir/Annotation.js.map +0 -1
  57. package/dist/fhir/Appointment.d.ts +0 -284
  58. package/dist/fhir/Appointment.js +0 -7
  59. package/dist/fhir/Appointment.js.map +0 -1
  60. package/dist/fhir/AppointmentResponse.d.ts +0 -131
  61. package/dist/fhir/AppointmentResponse.js +0 -7
  62. package/dist/fhir/AppointmentResponse.js.map +0 -1
  63. package/dist/fhir/Attachment.d.ts +0 -58
  64. package/dist/fhir/Attachment.js +0 -7
  65. package/dist/fhir/Attachment.js.map +0 -1
  66. package/dist/fhir/AuditEvent.d.ts +0 -458
  67. package/dist/fhir/AuditEvent.js +0 -7
  68. package/dist/fhir/AuditEvent.js.map +0 -1
  69. package/dist/fhir/Basic.d.ts +0 -110
  70. package/dist/fhir/Basic.js +0 -7
  71. package/dist/fhir/Basic.js.map +0 -1
  72. package/dist/fhir/Binary.d.ts +0 -59
  73. package/dist/fhir/Binary.js +0 -7
  74. package/dist/fhir/Binary.js.map +0 -1
  75. package/dist/fhir/BiologicallyDerivedProduct.d.ts +0 -358
  76. package/dist/fhir/BiologicallyDerivedProduct.js +0 -7
  77. package/dist/fhir/BiologicallyDerivedProduct.js.map +0 -1
  78. package/dist/fhir/BodyStructure.d.ts +0 -119
  79. package/dist/fhir/BodyStructure.js +0 -7
  80. package/dist/fhir/BodyStructure.js.map +0 -1
  81. package/dist/fhir/Bot.d.ts +0 -49
  82. package/dist/fhir/Bot.js +0 -7
  83. package/dist/fhir/Bot.js.map +0 -1
  84. package/dist/fhir/Bundle.d.ts +0 -379
  85. package/dist/fhir/Bundle.js +0 -7
  86. package/dist/fhir/Bundle.js.map +0 -1
  87. package/dist/fhir/CapabilityStatement.d.ts +0 -1044
  88. package/dist/fhir/CapabilityStatement.js +0 -7
  89. package/dist/fhir/CapabilityStatement.js.map +0 -1
  90. package/dist/fhir/CarePlan.d.ts +0 -446
  91. package/dist/fhir/CarePlan.js +0 -7
  92. package/dist/fhir/CarePlan.js.map +0 -1
  93. package/dist/fhir/CareTeam.d.ts +0 -211
  94. package/dist/fhir/CareTeam.js +0 -7
  95. package/dist/fhir/CareTeam.js.map +0 -1
  96. package/dist/fhir/CatalogEntry.d.ts +0 -195
  97. package/dist/fhir/CatalogEntry.js +0 -7
  98. package/dist/fhir/CatalogEntry.js.map +0 -1
  99. package/dist/fhir/ChargeItem.d.ts +0 -287
  100. package/dist/fhir/ChargeItem.js +0 -7
  101. package/dist/fhir/ChargeItem.js.map +0 -1
  102. package/dist/fhir/ChargeItemDefinition.d.ts +0 -401
  103. package/dist/fhir/ChargeItemDefinition.js +0 -7
  104. package/dist/fhir/ChargeItemDefinition.js.map +0 -1
  105. package/dist/fhir/Claim.d.ts +0 -1092
  106. package/dist/fhir/Claim.js +0 -7
  107. package/dist/fhir/Claim.js.map +0 -1
  108. package/dist/fhir/ClaimResponse.d.ts +0 -1040
  109. package/dist/fhir/ClaimResponse.js +0 -7
  110. package/dist/fhir/ClaimResponse.js.map +0 -1
  111. package/dist/fhir/ClientApplication.d.ts +0 -46
  112. package/dist/fhir/ClientApplication.js +0 -7
  113. package/dist/fhir/ClientApplication.js.map +0 -1
  114. package/dist/fhir/ClinicalImpression.d.ts +0 -306
  115. package/dist/fhir/ClinicalImpression.js +0 -7
  116. package/dist/fhir/ClinicalImpression.js.map +0 -1
  117. package/dist/fhir/CodeSystem.d.ts +0 -541
  118. package/dist/fhir/CodeSystem.js +0 -7
  119. package/dist/fhir/CodeSystem.js.map +0 -1
  120. package/dist/fhir/CodeableConcept.d.ts +0 -33
  121. package/dist/fhir/CodeableConcept.js +0 -7
  122. package/dist/fhir/CodeableConcept.js.map +0 -1
  123. package/dist/fhir/Coding.d.ts +0 -50
  124. package/dist/fhir/Coding.js +0 -7
  125. package/dist/fhir/Coding.js.map +0 -1
  126. package/dist/fhir/Communication.d.ts +0 -264
  127. package/dist/fhir/Communication.js +0 -7
  128. package/dist/fhir/Communication.js.map +0 -1
  129. package/dist/fhir/CommunicationRequest.d.ts +0 -261
  130. package/dist/fhir/CommunicationRequest.js +0 -7
  131. package/dist/fhir/CommunicationRequest.js.map +0 -1
  132. package/dist/fhir/CompartmentDefinition.d.ts +0 -217
  133. package/dist/fhir/CompartmentDefinition.js +0 -7
  134. package/dist/fhir/CompartmentDefinition.js.map +0 -1
  135. package/dist/fhir/Composition.d.ts +0 -429
  136. package/dist/fhir/Composition.js +0 -7
  137. package/dist/fhir/Composition.js.map +0 -1
  138. package/dist/fhir/ConceptMap.d.ts +0 -518
  139. package/dist/fhir/ConceptMap.js +0 -7
  140. package/dist/fhir/ConceptMap.js.map +0 -1
  141. package/dist/fhir/Condition.d.ts +0 -326
  142. package/dist/fhir/Condition.js +0 -7
  143. package/dist/fhir/Condition.js.map +0 -1
  144. package/dist/fhir/Consent.d.ts +0 -460
  145. package/dist/fhir/Consent.js +0 -7
  146. package/dist/fhir/Consent.js.map +0 -1
  147. package/dist/fhir/ContactDetail.d.ts +0 -31
  148. package/dist/fhir/ContactDetail.js +0 -7
  149. package/dist/fhir/ContactDetail.js.map +0 -1
  150. package/dist/fhir/ContactPoint.d.ts +0 -47
  151. package/dist/fhir/ContactPoint.js +0 -7
  152. package/dist/fhir/ContactPoint.js.map +0 -1
  153. package/dist/fhir/Contract.d.ts +0 -1452
  154. package/dist/fhir/Contract.js +0 -7
  155. package/dist/fhir/Contract.js.map +0 -1
  156. package/dist/fhir/Contributor.d.ts +0 -37
  157. package/dist/fhir/Contributor.js +0 -7
  158. package/dist/fhir/Contributor.js.map +0 -1
  159. package/dist/fhir/Count.d.ts +0 -49
  160. package/dist/fhir/Count.js +0 -7
  161. package/dist/fhir/Count.js.map +0 -1
  162. package/dist/fhir/Coverage.d.ts +0 -327
  163. package/dist/fhir/Coverage.js +0 -7
  164. package/dist/fhir/Coverage.js.map +0 -1
  165. package/dist/fhir/CoverageEligibilityRequest.d.ts +0 -404
  166. package/dist/fhir/CoverageEligibilityRequest.js +0 -7
  167. package/dist/fhir/CoverageEligibilityRequest.js.map +0 -1
  168. package/dist/fhir/CoverageEligibilityResponse.d.ts +0 -434
  169. package/dist/fhir/CoverageEligibilityResponse.js +0 -7
  170. package/dist/fhir/CoverageEligibilityResponse.js.map +0 -1
  171. package/dist/fhir/DataRequirement.d.ts +0 -239
  172. package/dist/fhir/DataRequirement.js +0 -7
  173. package/dist/fhir/DataRequirement.js.map +0 -1
  174. package/dist/fhir/DetectedIssue.d.ts +0 -252
  175. package/dist/fhir/DetectedIssue.js +0 -7
  176. package/dist/fhir/DetectedIssue.js.map +0 -1
  177. package/dist/fhir/Device.d.ts +0 -493
  178. package/dist/fhir/Device.js +0 -7
  179. package/dist/fhir/Device.js.map +0 -1
  180. package/dist/fhir/DeviceDefinition.d.ts +0 -486
  181. package/dist/fhir/DeviceDefinition.js +0 -7
  182. package/dist/fhir/DeviceDefinition.js.map +0 -1
  183. package/dist/fhir/DeviceMetric.d.ts +0 -199
  184. package/dist/fhir/DeviceMetric.js +0 -7
  185. package/dist/fhir/DeviceMetric.js.map +0 -1
  186. package/dist/fhir/DeviceRequest.d.ts +0 -296
  187. package/dist/fhir/DeviceRequest.js +0 -7
  188. package/dist/fhir/DeviceRequest.js.map +0 -1
  189. package/dist/fhir/DeviceUseStatement.d.ts +0 -168
  190. package/dist/fhir/DeviceUseStatement.js +0 -7
  191. package/dist/fhir/DeviceUseStatement.js.map +0 -1
  192. package/dist/fhir/DiagnosticReport.d.ts +0 -254
  193. package/dist/fhir/DiagnosticReport.js +0 -7
  194. package/dist/fhir/DiagnosticReport.js.map +0 -1
  195. package/dist/fhir/Distance.d.ts +0 -47
  196. package/dist/fhir/Distance.js +0 -7
  197. package/dist/fhir/Distance.js.map +0 -1
  198. package/dist/fhir/DocumentManifest.d.ts +0 -196
  199. package/dist/fhir/DocumentManifest.js +0 -7
  200. package/dist/fhir/DocumentManifest.js.map +0 -1
  201. package/dist/fhir/DocumentReference.d.ts +0 -349
  202. package/dist/fhir/DocumentReference.js +0 -7
  203. package/dist/fhir/DocumentReference.js.map +0 -1
  204. package/dist/fhir/Dosage.d.ts +0 -152
  205. package/dist/fhir/Dosage.js +0 -7
  206. package/dist/fhir/Dosage.js.map +0 -1
  207. package/dist/fhir/Duration.d.ts +0 -46
  208. package/dist/fhir/Duration.js +0 -7
  209. package/dist/fhir/Duration.js.map +0 -1
  210. package/dist/fhir/EffectEvidenceSynthesis.d.ts +0 -591
  211. package/dist/fhir/EffectEvidenceSynthesis.js +0 -7
  212. package/dist/fhir/EffectEvidenceSynthesis.js.map +0 -1
  213. package/dist/fhir/Element.d.ts +0 -21
  214. package/dist/fhir/Element.js +0 -7
  215. package/dist/fhir/Element.js.map +0 -1
  216. package/dist/fhir/ElementDefinition.d.ts +0 -2701
  217. package/dist/fhir/ElementDefinition.js +0 -7
  218. package/dist/fhir/ElementDefinition.js.map +0 -1
  219. package/dist/fhir/Encounter.d.ts +0 -558
  220. package/dist/fhir/Encounter.js +0 -7
  221. package/dist/fhir/Encounter.js.map +0 -1
  222. package/dist/fhir/Endpoint.d.ts +0 -140
  223. package/dist/fhir/Endpoint.js +0 -7
  224. package/dist/fhir/Endpoint.js.map +0 -1
  225. package/dist/fhir/EnrollmentRequest.d.ts +0 -113
  226. package/dist/fhir/EnrollmentRequest.js +0 -7
  227. package/dist/fhir/EnrollmentRequest.js.map +0 -1
  228. package/dist/fhir/EnrollmentResponse.d.ts +0 -117
  229. package/dist/fhir/EnrollmentResponse.js +0 -7
  230. package/dist/fhir/EnrollmentResponse.js.map +0 -1
  231. package/dist/fhir/EpisodeOfCare.d.ts +0 -246
  232. package/dist/fhir/EpisodeOfCare.js +0 -7
  233. package/dist/fhir/EpisodeOfCare.js.map +0 -1
  234. package/dist/fhir/EventDefinition.d.ts +0 -253
  235. package/dist/fhir/EventDefinition.js +0 -7
  236. package/dist/fhir/EventDefinition.js.map +0 -1
  237. package/dist/fhir/Evidence.d.ts +0 -252
  238. package/dist/fhir/Evidence.js +0 -7
  239. package/dist/fhir/Evidence.js.map +0 -1
  240. package/dist/fhir/EvidenceVariable.d.ts +0 -370
  241. package/dist/fhir/EvidenceVariable.js +0 -7
  242. package/dist/fhir/EvidenceVariable.js.map +0 -1
  243. package/dist/fhir/ExampleScenario.d.ts +0 -628
  244. package/dist/fhir/ExampleScenario.js +0 -7
  245. package/dist/fhir/ExampleScenario.js.map +0 -1
  246. package/dist/fhir/ExplanationOfBenefit.d.ts +0 -1841
  247. package/dist/fhir/ExplanationOfBenefit.js +0 -7
  248. package/dist/fhir/ExplanationOfBenefit.js.map +0 -1
  249. package/dist/fhir/Expression.d.ts +0 -45
  250. package/dist/fhir/Expression.js +0 -7
  251. package/dist/fhir/Expression.js.map +0 -1
  252. package/dist/fhir/Extension.d.ts +0 -306
  253. package/dist/fhir/Extension.js +0 -7
  254. package/dist/fhir/Extension.js.map +0 -1
  255. package/dist/fhir/FamilyMemberHistory.d.ts +0 -306
  256. package/dist/fhir/FamilyMemberHistory.js +0 -7
  257. package/dist/fhir/FamilyMemberHistory.js.map +0 -1
  258. package/dist/fhir/Flag.d.ts +0 -132
  259. package/dist/fhir/Flag.js +0 -7
  260. package/dist/fhir/Flag.js.map +0 -1
  261. package/dist/fhir/Goal.d.ts +0 -299
  262. package/dist/fhir/Goal.js +0 -7
  263. package/dist/fhir/Goal.js.map +0 -1
  264. package/dist/fhir/GraphDefinition.d.ts +0 -350
  265. package/dist/fhir/GraphDefinition.js +0 -7
  266. package/dist/fhir/GraphDefinition.js.map +0 -1
  267. package/dist/fhir/Group.d.ts +0 -271
  268. package/dist/fhir/Group.js +0 -7
  269. package/dist/fhir/Group.js.map +0 -1
  270. package/dist/fhir/GuidanceResponse.d.ts +0 -196
  271. package/dist/fhir/GuidanceResponse.js +0 -7
  272. package/dist/fhir/GuidanceResponse.js.map +0 -1
  273. package/dist/fhir/HealthcareService.d.ts +0 -356
  274. package/dist/fhir/HealthcareService.js +0 -7
  275. package/dist/fhir/HealthcareService.js.map +0 -1
  276. package/dist/fhir/HumanName.d.ts +0 -58
  277. package/dist/fhir/HumanName.js +0 -7
  278. package/dist/fhir/HumanName.js.map +0 -1
  279. package/dist/fhir/Identifier.d.ts +0 -53
  280. package/dist/fhir/Identifier.js +0 -7
  281. package/dist/fhir/Identifier.js.map +0 -1
  282. package/dist/fhir/ImagingStudy.d.ts +0 -407
  283. package/dist/fhir/ImagingStudy.js +0 -7
  284. package/dist/fhir/ImagingStudy.js.map +0 -1
  285. package/dist/fhir/Immunization.d.ts +0 -444
  286. package/dist/fhir/Immunization.js +0 -7
  287. package/dist/fhir/Immunization.js.map +0 -1
  288. package/dist/fhir/ImmunizationEvaluation.d.ts +0 -149
  289. package/dist/fhir/ImmunizationEvaluation.js +0 -7
  290. package/dist/fhir/ImmunizationEvaluation.js.map +0 -1
  291. package/dist/fhir/ImmunizationRecommendation.d.ts +0 -254
  292. package/dist/fhir/ImmunizationRecommendation.js +0 -7
  293. package/dist/fhir/ImmunizationRecommendation.js.map +0 -1
  294. package/dist/fhir/ImplementationGuide.d.ts +0 -824
  295. package/dist/fhir/ImplementationGuide.js +0 -7
  296. package/dist/fhir/ImplementationGuide.js.map +0 -1
  297. package/dist/fhir/InsurancePlan.d.ts +0 -624
  298. package/dist/fhir/InsurancePlan.js +0 -7
  299. package/dist/fhir/InsurancePlan.js.map +0 -1
  300. package/dist/fhir/Invoice.d.ts +0 -346
  301. package/dist/fhir/Invoice.js +0 -7
  302. package/dist/fhir/Invoice.js.map +0 -1
  303. package/dist/fhir/JsonWebKey.d.ts +0 -99
  304. package/dist/fhir/JsonWebKey.js +0 -7
  305. package/dist/fhir/JsonWebKey.js.map +0 -1
  306. package/dist/fhir/Library.d.ts +0 -277
  307. package/dist/fhir/Library.js +0 -7
  308. package/dist/fhir/Library.js.map +0 -1
  309. package/dist/fhir/Linkage.d.ts +0 -146
  310. package/dist/fhir/Linkage.js +0 -7
  311. package/dist/fhir/Linkage.js.map +0 -1
  312. package/dist/fhir/List.d.ts +0 -200
  313. package/dist/fhir/List.js +0 -7
  314. package/dist/fhir/List.js.map +0 -1
  315. package/dist/fhir/Location.d.ts +0 -277
  316. package/dist/fhir/Location.js +0 -7
  317. package/dist/fhir/Location.js.map +0 -1
  318. package/dist/fhir/Login.d.ts +0 -119
  319. package/dist/fhir/Login.js +0 -7
  320. package/dist/fhir/Login.js.map +0 -1
  321. package/dist/fhir/MarketingStatus.d.ts +0 -82
  322. package/dist/fhir/MarketingStatus.js +0 -7
  323. package/dist/fhir/MarketingStatus.js.map +0 -1
  324. package/dist/fhir/Measure.d.ts +0 -620
  325. package/dist/fhir/Measure.js +0 -7
  326. package/dist/fhir/Measure.js.map +0 -1
  327. package/dist/fhir/MeasureReport.d.ts +0 -463
  328. package/dist/fhir/MeasureReport.js +0 -7
  329. package/dist/fhir/MeasureReport.js.map +0 -1
  330. package/dist/fhir/Media.d.ts +0 -205
  331. package/dist/fhir/Media.js +0 -7
  332. package/dist/fhir/Media.js.map +0 -1
  333. package/dist/fhir/Medication.d.ts +0 -230
  334. package/dist/fhir/Medication.js +0 -7
  335. package/dist/fhir/Medication.js.map +0 -1
  336. package/dist/fhir/MedicationAdministration.d.ts +0 -352
  337. package/dist/fhir/MedicationAdministration.js +0 -7
  338. package/dist/fhir/MedicationAdministration.js.map +0 -1
  339. package/dist/fhir/MedicationDispense.d.ts +0 -343
  340. package/dist/fhir/MedicationDispense.js +0 -7
  341. package/dist/fhir/MedicationDispense.js.map +0 -1
  342. package/dist/fhir/MedicationKnowledge.d.ts +0 -992
  343. package/dist/fhir/MedicationKnowledge.js +0 -7
  344. package/dist/fhir/MedicationKnowledge.js.map +0 -1
  345. package/dist/fhir/MedicationRequest.d.ts +0 -481
  346. package/dist/fhir/MedicationRequest.js +0 -7
  347. package/dist/fhir/MedicationRequest.js.map +0 -1
  348. package/dist/fhir/MedicationStatement.d.ts +0 -228
  349. package/dist/fhir/MedicationStatement.js +0 -7
  350. package/dist/fhir/MedicationStatement.js.map +0 -1
  351. package/dist/fhir/MedicinalProduct.d.ts +0 -453
  352. package/dist/fhir/MedicinalProduct.js +0 -7
  353. package/dist/fhir/MedicinalProduct.js.map +0 -1
  354. package/dist/fhir/MedicinalProductAuthorization.d.ts +0 -271
  355. package/dist/fhir/MedicinalProductAuthorization.js +0 -7
  356. package/dist/fhir/MedicinalProductAuthorization.js.map +0 -1
  357. package/dist/fhir/MedicinalProductContraindication.d.ts +0 -170
  358. package/dist/fhir/MedicinalProductContraindication.js +0 -7
  359. package/dist/fhir/MedicinalProductContraindication.js.map +0 -1
  360. package/dist/fhir/MedicinalProductIndication.d.ts +0 -179
  361. package/dist/fhir/MedicinalProductIndication.js +0 -7
  362. package/dist/fhir/MedicinalProductIndication.js.map +0 -1
  363. package/dist/fhir/MedicinalProductIngredient.d.ts +0 -336
  364. package/dist/fhir/MedicinalProductIngredient.js +0 -7
  365. package/dist/fhir/MedicinalProductIngredient.js.map +0 -1
  366. package/dist/fhir/MedicinalProductInteraction.d.ts +0 -158
  367. package/dist/fhir/MedicinalProductInteraction.js +0 -7
  368. package/dist/fhir/MedicinalProductInteraction.js.map +0 -1
  369. package/dist/fhir/MedicinalProductManufactured.d.ts +0 -113
  370. package/dist/fhir/MedicinalProductManufactured.js +0 -7
  371. package/dist/fhir/MedicinalProductManufactured.js.map +0 -1
  372. package/dist/fhir/MedicinalProductPackaged.d.ts +0 -259
  373. package/dist/fhir/MedicinalProductPackaged.js +0 -7
  374. package/dist/fhir/MedicinalProductPackaged.js.map +0 -1
  375. package/dist/fhir/MedicinalProductPharmaceutical.d.ts +0 -331
  376. package/dist/fhir/MedicinalProductPharmaceutical.js +0 -7
  377. package/dist/fhir/MedicinalProductPharmaceutical.js.map +0 -1
  378. package/dist/fhir/MedicinalProductUndesirableEffect.d.ts +0 -101
  379. package/dist/fhir/MedicinalProductUndesirableEffect.js +0 -7
  380. package/dist/fhir/MedicinalProductUndesirableEffect.js.map +0 -1
  381. package/dist/fhir/MessageDefinition.d.ts +0 -330
  382. package/dist/fhir/MessageDefinition.js +0 -7
  383. package/dist/fhir/MessageDefinition.js.map +0 -1
  384. package/dist/fhir/MessageHeader.d.ts +0 -323
  385. package/dist/fhir/MessageHeader.js +0 -7
  386. package/dist/fhir/MessageHeader.js.map +0 -1
  387. package/dist/fhir/Meta.d.ts +0 -75
  388. package/dist/fhir/Meta.js +0 -7
  389. package/dist/fhir/Meta.js.map +0 -1
  390. package/dist/fhir/MolecularSequence.d.ts +0 -760
  391. package/dist/fhir/MolecularSequence.js +0 -7
  392. package/dist/fhir/MolecularSequence.js.map +0 -1
  393. package/dist/fhir/Money.d.ts +0 -29
  394. package/dist/fhir/Money.js +0 -7
  395. package/dist/fhir/Money.js.map +0 -1
  396. package/dist/fhir/NamingSystem.d.ts +0 -218
  397. package/dist/fhir/NamingSystem.js +0 -7
  398. package/dist/fhir/NamingSystem.js.map +0 -1
  399. package/dist/fhir/Narrative.d.ts +0 -32
  400. package/dist/fhir/Narrative.js +0 -7
  401. package/dist/fhir/Narrative.js.map +0 -1
  402. package/dist/fhir/NutritionOrder.d.ts +0 -566
  403. package/dist/fhir/NutritionOrder.js +0 -7
  404. package/dist/fhir/NutritionOrder.js.map +0 -1
  405. package/dist/fhir/Observation.d.ts +0 -520
  406. package/dist/fhir/Observation.js +0 -7
  407. package/dist/fhir/Observation.js.map +0 -1
  408. package/dist/fhir/ObservationDefinition.d.ts +0 -278
  409. package/dist/fhir/ObservationDefinition.js +0 -7
  410. package/dist/fhir/ObservationDefinition.js.map +0 -1
  411. package/dist/fhir/OperationDefinition.d.ts +0 -468
  412. package/dist/fhir/OperationDefinition.js +0 -7
  413. package/dist/fhir/OperationDefinition.js.map +0 -1
  414. package/dist/fhir/OperationOutcome.d.ts +0 -160
  415. package/dist/fhir/OperationOutcome.js +0 -7
  416. package/dist/fhir/OperationOutcome.js.map +0 -1
  417. package/dist/fhir/Organization.d.ts +0 -184
  418. package/dist/fhir/Organization.js +0 -7
  419. package/dist/fhir/Organization.js.map +0 -1
  420. package/dist/fhir/OrganizationAffiliation.d.ts +0 -145
  421. package/dist/fhir/OrganizationAffiliation.js +0 -7
  422. package/dist/fhir/OrganizationAffiliation.js.map +0 -1
  423. package/dist/fhir/ParameterDefinition.d.ts +0 -57
  424. package/dist/fhir/ParameterDefinition.js +0 -7
  425. package/dist/fhir/ParameterDefinition.js.map +0 -1
  426. package/dist/fhir/Parameters.d.ts +0 -319
  427. package/dist/fhir/Parameters.js +0 -7
  428. package/dist/fhir/Parameters.js.map +0 -1
  429. package/dist/fhir/PasswordChangeRequest.d.ts +0 -51
  430. package/dist/fhir/PasswordChangeRequest.js +0 -7
  431. package/dist/fhir/PasswordChangeRequest.js.map +0 -1
  432. package/dist/fhir/Patient.d.ts +0 -342
  433. package/dist/fhir/Patient.js +0 -7
  434. package/dist/fhir/Patient.js.map +0 -1
  435. package/dist/fhir/PaymentNotice.d.ts +0 -135
  436. package/dist/fhir/PaymentNotice.js +0 -7
  437. package/dist/fhir/PaymentNotice.js.map +0 -1
  438. package/dist/fhir/PaymentReconciliation.d.ts +0 -280
  439. package/dist/fhir/PaymentReconciliation.js +0 -7
  440. package/dist/fhir/PaymentReconciliation.js.map +0 -1
  441. package/dist/fhir/Period.d.ts +0 -32
  442. package/dist/fhir/Period.js +0 -7
  443. package/dist/fhir/Period.js.map +0 -1
  444. package/dist/fhir/Person.d.ts +0 -175
  445. package/dist/fhir/Person.js +0 -7
  446. package/dist/fhir/Person.js.map +0 -1
  447. package/dist/fhir/PlanDefinition.d.ts +0 -837
  448. package/dist/fhir/PlanDefinition.js +0 -7
  449. package/dist/fhir/PlanDefinition.js.map +0 -1
  450. package/dist/fhir/Population.d.ts +0 -62
  451. package/dist/fhir/Population.js +0 -7
  452. package/dist/fhir/Population.js.map +0 -1
  453. package/dist/fhir/Practitioner.d.ts +0 -191
  454. package/dist/fhir/Practitioner.js +0 -7
  455. package/dist/fhir/Practitioner.js.map +0 -1
  456. package/dist/fhir/PractitionerRole.d.ts +0 -259
  457. package/dist/fhir/PractitionerRole.js +0 -7
  458. package/dist/fhir/PractitionerRole.js.map +0 -1
  459. package/dist/fhir/Procedure.d.ts +0 -372
  460. package/dist/fhir/Procedure.js +0 -7
  461. package/dist/fhir/Procedure.js.map +0 -1
  462. package/dist/fhir/ProdCharacteristic.d.ts +0 -112
  463. package/dist/fhir/ProdCharacteristic.js +0 -7
  464. package/dist/fhir/ProdCharacteristic.js.map +0 -1
  465. package/dist/fhir/ProductShelfLife.d.ts +0 -70
  466. package/dist/fhir/ProductShelfLife.js +0 -7
  467. package/dist/fhir/ProductShelfLife.js.map +0 -1
  468. package/dist/fhir/Project.d.ts +0 -43
  469. package/dist/fhir/Project.js +0 -7
  470. package/dist/fhir/Project.js.map +0 -1
  471. package/dist/fhir/ProjectMembership.d.ts +0 -66
  472. package/dist/fhir/ProjectMembership.js +0 -7
  473. package/dist/fhir/ProjectMembership.js.map +0 -1
  474. package/dist/fhir/Provenance.d.ts +0 -258
  475. package/dist/fhir/Provenance.js +0 -7
  476. package/dist/fhir/Provenance.js.map +0 -1
  477. package/dist/fhir/Quantity.d.ts +0 -46
  478. package/dist/fhir/Quantity.js +0 -7
  479. package/dist/fhir/Quantity.js.map +0 -1
  480. package/dist/fhir/Questionnaire.d.ts +0 -603
  481. package/dist/fhir/Questionnaire.js +0 -7
  482. package/dist/fhir/Questionnaire.js.map +0 -1
  483. package/dist/fhir/QuestionnaireResponse.d.ts +0 -313
  484. package/dist/fhir/QuestionnaireResponse.js +0 -7
  485. package/dist/fhir/QuestionnaireResponse.js.map +0 -1
  486. package/dist/fhir/Range.d.ts +0 -30
  487. package/dist/fhir/Range.js +0 -7
  488. package/dist/fhir/Range.js.map +0 -1
  489. package/dist/fhir/Ratio.d.ts +0 -30
  490. package/dist/fhir/Ratio.js +0 -7
  491. package/dist/fhir/Ratio.js.map +0 -1
  492. package/dist/fhir/Reference.d.ts +0 -67
  493. package/dist/fhir/Reference.js +0 -7
  494. package/dist/fhir/Reference.js.map +0 -1
  495. package/dist/fhir/RefreshToken.d.ts +0 -45
  496. package/dist/fhir/RefreshToken.js +0 -7
  497. package/dist/fhir/RefreshToken.js.map +0 -1
  498. package/dist/fhir/RelatedArtifact.d.ts +0 -57
  499. package/dist/fhir/RelatedArtifact.js +0 -7
  500. package/dist/fhir/RelatedArtifact.js.map +0 -1
  501. package/dist/fhir/RelatedPerson.d.ts +0 -190
  502. package/dist/fhir/RelatedPerson.js +0 -7
  503. package/dist/fhir/RelatedPerson.js.map +0 -1
  504. package/dist/fhir/RequestGroup.d.ts +0 -434
  505. package/dist/fhir/RequestGroup.js +0 -7
  506. package/dist/fhir/RequestGroup.js.map +0 -1
  507. package/dist/fhir/ResearchDefinition.d.ts +0 -291
  508. package/dist/fhir/ResearchDefinition.js +0 -7
  509. package/dist/fhir/ResearchDefinition.js.map +0 -1
  510. package/dist/fhir/ResearchElementDefinition.d.ts +0 -431
  511. package/dist/fhir/ResearchElementDefinition.js +0 -7
  512. package/dist/fhir/ResearchElementDefinition.js.map +0 -1
  513. package/dist/fhir/ResearchStudy.d.ts +0 -318
  514. package/dist/fhir/ResearchStudy.js +0 -7
  515. package/dist/fhir/ResearchStudy.js.map +0 -1
  516. package/dist/fhir/ResearchSubject.d.ts +0 -119
  517. package/dist/fhir/ResearchSubject.js +0 -7
  518. package/dist/fhir/ResearchSubject.js.map +0 -1
  519. package/dist/fhir/Resource.d.ts +0 -156
  520. package/dist/fhir/Resource.js +0 -7
  521. package/dist/fhir/Resource.js.map +0 -1
  522. package/dist/fhir/RiskAssessment.d.ts +0 -246
  523. package/dist/fhir/RiskAssessment.js +0 -7
  524. package/dist/fhir/RiskAssessment.js.map +0 -1
  525. package/dist/fhir/RiskEvidenceSynthesis.d.ts +0 -530
  526. package/dist/fhir/RiskEvidenceSynthesis.js +0 -7
  527. package/dist/fhir/RiskEvidenceSynthesis.js.map +0 -1
  528. package/dist/fhir/SampledData.d.ts +0 -62
  529. package/dist/fhir/SampledData.js +0 -7
  530. package/dist/fhir/SampledData.js.map +0 -1
  531. package/dist/fhir/Schedule.d.ts +0 -129
  532. package/dist/fhir/Schedule.js +0 -7
  533. package/dist/fhir/Schedule.js.map +0 -1
  534. package/dist/fhir/SearchParameter.d.ts +0 -277
  535. package/dist/fhir/SearchParameter.js +0 -7
  536. package/dist/fhir/SearchParameter.js.map +0 -1
  537. package/dist/fhir/ServiceRequest.d.ts +0 -309
  538. package/dist/fhir/ServiceRequest.js +0 -7
  539. package/dist/fhir/ServiceRequest.js.map +0 -1
  540. package/dist/fhir/Signature.d.ts +0 -71
  541. package/dist/fhir/Signature.js +0 -7
  542. package/dist/fhir/Signature.js.map +0 -1
  543. package/dist/fhir/Slot.d.ts +0 -134
  544. package/dist/fhir/Slot.js +0 -7
  545. package/dist/fhir/Slot.js.map +0 -1
  546. package/dist/fhir/Specimen.d.ts +0 -366
  547. package/dist/fhir/Specimen.js +0 -7
  548. package/dist/fhir/Specimen.js.map +0 -1
  549. package/dist/fhir/SpecimenDefinition.d.ts +0 -363
  550. package/dist/fhir/SpecimenDefinition.js +0 -7
  551. package/dist/fhir/SpecimenDefinition.js.map +0 -1
  552. package/dist/fhir/StructureDefinition.d.ts +0 -438
  553. package/dist/fhir/StructureDefinition.js +0 -7
  554. package/dist/fhir/StructureDefinition.js.map +0 -1
  555. package/dist/fhir/StructureMap.d.ts +0 -904
  556. package/dist/fhir/StructureMap.js +0 -7
  557. package/dist/fhir/StructureMap.js.map +0 -1
  558. package/dist/fhir/Subscription.d.ts +0 -172
  559. package/dist/fhir/Subscription.js +0 -7
  560. package/dist/fhir/Subscription.js.map +0 -1
  561. package/dist/fhir/Substance.d.ts +0 -213
  562. package/dist/fhir/Substance.js +0 -7
  563. package/dist/fhir/Substance.js.map +0 -1
  564. package/dist/fhir/SubstanceAmount.d.ts +0 -115
  565. package/dist/fhir/SubstanceAmount.js +0 -7
  566. package/dist/fhir/SubstanceAmount.js.map +0 -1
  567. package/dist/fhir/SubstanceNucleicAcid.d.ts +0 -309
  568. package/dist/fhir/SubstanceNucleicAcid.js +0 -7
  569. package/dist/fhir/SubstanceNucleicAcid.js.map +0 -1
  570. package/dist/fhir/SubstancePolymer.d.ts +0 -405
  571. package/dist/fhir/SubstancePolymer.js +0 -7
  572. package/dist/fhir/SubstancePolymer.js.map +0 -1
  573. package/dist/fhir/SubstanceProtein.d.ts +0 -218
  574. package/dist/fhir/SubstanceProtein.js +0 -7
  575. package/dist/fhir/SubstanceProtein.js.map +0 -1
  576. package/dist/fhir/SubstanceReferenceInformation.d.ts +0 -330
  577. package/dist/fhir/SubstanceReferenceInformation.js +0 -7
  578. package/dist/fhir/SubstanceReferenceInformation.js.map +0 -1
  579. package/dist/fhir/SubstanceSourceMaterial.d.ts +0 -521
  580. package/dist/fhir/SubstanceSourceMaterial.js +0 -7
  581. package/dist/fhir/SubstanceSourceMaterial.js.map +0 -1
  582. package/dist/fhir/SubstanceSpecification.d.ts +0 -827
  583. package/dist/fhir/SubstanceSpecification.js +0 -7
  584. package/dist/fhir/SubstanceSpecification.js.map +0 -1
  585. package/dist/fhir/SupplyDelivery.d.ts +0 -205
  586. package/dist/fhir/SupplyDelivery.js +0 -7
  587. package/dist/fhir/SupplyDelivery.js.map +0 -1
  588. package/dist/fhir/SupplyRequest.d.ts +0 -237
  589. package/dist/fhir/SupplyRequest.js +0 -7
  590. package/dist/fhir/SupplyRequest.js.map +0 -1
  591. package/dist/fhir/Task.d.ts +0 -807
  592. package/dist/fhir/Task.js +0 -7
  593. package/dist/fhir/Task.js.map +0 -1
  594. package/dist/fhir/TerminologyCapabilities.d.ts +0 -716
  595. package/dist/fhir/TerminologyCapabilities.js +0 -7
  596. package/dist/fhir/TerminologyCapabilities.js.map +0 -1
  597. package/dist/fhir/TestReport.d.ts +0 -549
  598. package/dist/fhir/TestReport.js +0 -7
  599. package/dist/fhir/TestReport.js.map +0 -1
  600. package/dist/fhir/TestScript.d.ts +0 -1184
  601. package/dist/fhir/TestScript.js +0 -7
  602. package/dist/fhir/TestScript.js.map +0 -1
  603. package/dist/fhir/Timing.d.ts +0 -178
  604. package/dist/fhir/Timing.js +0 -7
  605. package/dist/fhir/Timing.js.map +0 -1
  606. package/dist/fhir/TriggerDefinition.d.ts +0 -65
  607. package/dist/fhir/TriggerDefinition.js +0 -7
  608. package/dist/fhir/TriggerDefinition.js.map +0 -1
  609. package/dist/fhir/UsageContext.d.ts +0 -61
  610. package/dist/fhir/UsageContext.js +0 -7
  611. package/dist/fhir/UsageContext.js.map +0 -1
  612. package/dist/fhir/User.d.ts +0 -45
  613. package/dist/fhir/User.js +0 -7
  614. package/dist/fhir/User.js.map +0 -1
  615. package/dist/fhir/ValueSet.d.ts +0 -725
  616. package/dist/fhir/ValueSet.js +0 -7
  617. package/dist/fhir/ValueSet.js.map +0 -1
  618. package/dist/fhir/VerificationResult.d.ts +0 -340
  619. package/dist/fhir/VerificationResult.js +0 -7
  620. package/dist/fhir/VerificationResult.js.map +0 -1
  621. package/dist/fhir/VisionPrescription.d.ts +0 -264
  622. package/dist/fhir/VisionPrescription.js +0 -7
  623. package/dist/fhir/VisionPrescription.js.map +0 -1
  624. package/dist/fhir/index.d.ts +0 -196
  625. package/dist/fhir/index.js +0 -213
  626. package/dist/fhir/index.js.map +0 -1
  627. package/dist/fhirpath/functions.d.ts +0 -6
  628. package/dist/fhirpath/functions.js +0 -349
  629. package/dist/fhirpath/functions.js.map +0 -1
  630. package/dist/fhirpath/index.d.ts +0 -2
  631. package/dist/fhirpath/index.js +0 -15
  632. package/dist/fhirpath/index.js.map +0 -1
  633. package/dist/fhirpath/parse.d.ts +0 -10
  634. package/dist/fhirpath/parse.js +0 -266
  635. package/dist/fhirpath/parse.js.map +0 -1
  636. package/dist/fhirpath/tokenize.d.ts +0 -13
  637. package/dist/fhirpath/tokenize.js +0 -39
  638. package/dist/fhirpath/tokenize.js.map +0 -1
  639. package/dist/fhirpath/utils.d.ts +0 -13
  640. package/dist/fhirpath/utils.js +0 -34
  641. package/dist/fhirpath/utils.js.map +0 -1
  642. package/dist/format.js +0 -56
  643. package/dist/format.js.map +0 -1
  644. package/dist/index.js +0 -22
  645. package/dist/index.js.map +0 -1
  646. package/dist/jwt.d.ts +0 -5
  647. package/dist/jwt.js +0 -28
  648. package/dist/jwt.js.map +0 -1
  649. package/dist/outcomes.js +0 -140
  650. package/dist/outcomes.js.map +0 -1
  651. package/dist/search.js +0 -120
  652. package/dist/search.js.map +0 -1
  653. package/dist/searchparams.js +0 -129
  654. package/dist/searchparams.js.map +0 -1
  655. package/dist/storage.js +0 -90
  656. package/dist/storage.js.map +0 -1
  657. package/dist/types.js +0 -171
  658. package/dist/types.js.map +0 -1
  659. package/dist/utils.js +0 -234
  660. package/dist/utils.js.map +0 -1
@@ -1,10 +0,0 @@
1
- export interface Atom {
2
- eval(context: any): any;
3
- }
4
- export declare class FhirPathAtom implements Atom {
5
- readonly original: string;
6
- readonly child: Atom;
7
- constructor(original: string, child: Atom);
8
- eval(context: any): any[];
9
- }
10
- export declare function parseFhirPath(input: string): FhirPathAtom;
@@ -1,266 +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
- constructor() {
9
- this.prefixParselets = {};
10
- this.infixParselets = {};
11
- }
12
- registerInfix(tokenType, parselet) {
13
- this.infixParselets[tokenType] = parselet;
14
- return this;
15
- }
16
- registerPrefix(tokenType, parselet) {
17
- this.prefixParselets[tokenType] = parselet;
18
- return this;
19
- }
20
- prefix(tokenType, precedence, builder) {
21
- return this.registerPrefix(tokenType, {
22
- parse(parser, token) {
23
- const right = parser.parse(precedence);
24
- return builder(token, right);
25
- },
26
- });
27
- }
28
- infixLeft(tokenType, precedence, builder) {
29
- return this.registerInfix(tokenType, {
30
- parse(parser, left, token) {
31
- const right = parser.parse(precedence);
32
- return builder(left, token, right);
33
- },
34
- precedence
35
- });
36
- }
37
- infixRight(tokenType, precedence, builder) {
38
- return this.registerInfix(tokenType, {
39
- parse(parser, left, token) {
40
- const right = parser.parse(precedence - 1);
41
- return builder(left, token, right);
42
- },
43
- precedence
44
- });
45
- }
46
- construct(input) {
47
- return new Parser(tokenize_1.tokenizer.tokenize(input), this.prefixParselets, this.infixParselets);
48
- }
49
- }
50
- class Parser {
51
- constructor(tokens, prefixParselets, infixParselets) {
52
- this.tokens = tokens;
53
- this.prefixParselets = prefixParselets;
54
- this.infixParselets = infixParselets;
55
- }
56
- match(expected) {
57
- const token = this.look();
58
- if ((token === null || token === void 0 ? void 0 : token.id) !== expected) {
59
- return false;
60
- }
61
- this.consume();
62
- return true;
63
- }
64
- parse(precedence = 0) {
65
- const token = this.consume();
66
- const prefix = this.prefixParselets[token.id];
67
- if (!prefix) {
68
- throw Error(`Parse error at ${token.value}. No matching prefix parselet.`);
69
- }
70
- let left = prefix.parse(this, token);
71
- while (precedence < this.getPrecedence()) {
72
- const next = this.consume();
73
- const infix = this.infixParselets[next.id];
74
- left = infix.parse(this, left, next);
75
- }
76
- return left;
77
- }
78
- getPrecedence() {
79
- const nextToken = this.look();
80
- if (!nextToken) {
81
- return 0;
82
- }
83
- const parser = this.infixParselets[nextToken.id];
84
- if (parser) {
85
- return parser.precedence;
86
- }
87
- return 0;
88
- }
89
- consume() {
90
- if (!this.tokens.length) {
91
- throw Error('Cant consume any more tokens.');
92
- }
93
- return this.tokens.shift();
94
- }
95
- look() {
96
- return this.tokens.length > 0 ? this.tokens[0] : undefined;
97
- }
98
- }
99
- class FhirPathAtom {
100
- constructor(original, child) {
101
- this.original = original;
102
- this.child = child;
103
- }
104
- eval(context) {
105
- try {
106
- const result = (0, utils_1.applyMaybeArray)(context, e => this.child.eval(e));
107
- if (Array.isArray(result)) {
108
- return result.flat();
109
- }
110
- else if (result === undefined || result === null) {
111
- return [];
112
- }
113
- else {
114
- return [result];
115
- }
116
- }
117
- catch (error) {
118
- throw new Error(`FhirPathError on "${this.original}": ${error}`);
119
- }
120
- }
121
- }
122
- exports.FhirPathAtom = FhirPathAtom;
123
- class LiteralAtom {
124
- constructor(value) {
125
- this.value = value;
126
- }
127
- eval() {
128
- return this.value;
129
- }
130
- }
131
- class SymbolAtom {
132
- constructor(name) {
133
- this.name = name;
134
- }
135
- eval(context) {
136
- return (0, utils_1.applyMaybeArray)(context, e => e.resourceType === this.name ? e : e[this.name]);
137
- }
138
- }
139
- class UnaryOperatorAtom {
140
- constructor(child, impl) {
141
- this.child = child;
142
- this.impl = impl;
143
- }
144
- eval(context) {
145
- return this.impl(this.child.eval(context));
146
- }
147
- }
148
- class BinaryOperatorAtom {
149
- constructor(left, right, impl) {
150
- this.left = left;
151
- this.right = right;
152
- this.impl = impl;
153
- }
154
- eval(context) {
155
- return this.impl(this.left.eval(context), this.right.eval(context));
156
- }
157
- }
158
- class DotAtom {
159
- constructor(left, right) {
160
- this.left = left;
161
- this.right = right;
162
- }
163
- eval(context) {
164
- return this.right.eval(this.left.eval(context));
165
- }
166
- }
167
- class UnionAtom {
168
- constructor(left, right) {
169
- this.left = left;
170
- this.right = right;
171
- }
172
- eval(context) {
173
- const leftResult = this.left.eval(context);
174
- const rightResult = this.right.eval(context);
175
- if (leftResult && rightResult) {
176
- return [leftResult, rightResult].flat();
177
- }
178
- return leftResult || rightResult;
179
- }
180
- }
181
- class IsAtom {
182
- constructor(left, right) {
183
- this.left = left;
184
- this.right = right;
185
- }
186
- eval(context) {
187
- const desiredResourceType = this.right.name;
188
- return (0, utils_1.applyMaybeArray)(this.left.eval(context), e => (e === null || e === void 0 ? void 0 : e.resourceType) === desiredResourceType ? e : undefined);
189
- }
190
- }
191
- class FunctionAtom {
192
- constructor(name, args, impl) {
193
- this.name = name;
194
- this.args = args;
195
- this.impl = impl;
196
- }
197
- eval(context) {
198
- if (context === undefined) {
199
- return undefined;
200
- }
201
- const input = Array.isArray(context) ? context : [context];
202
- return this.impl(input, ...this.args);
203
- }
204
- }
205
- const PARENTHESES_PARSELET = {
206
- parse(parser) {
207
- const expr = parser.parse();
208
- if (!parser.match(')')) {
209
- throw new Error('Parse error: expected `)`');
210
- }
211
- return expr;
212
- }
213
- };
214
- const FUNCTION_CALL_PARSELET = {
215
- parse(parser, left) {
216
- if (!(left instanceof SymbolAtom)) {
217
- throw new Error('Unexpected parentheses');
218
- }
219
- if (!(left.name in functions_1.functions)) {
220
- throw new Error('Unrecognized function: ' + left.name);
221
- }
222
- const args = [];
223
- while (!parser.match(')')) {
224
- args.push(parser.parse());
225
- }
226
- return new FunctionAtom(left.name, args, functions_1.functions[left.name]);
227
- },
228
- precedence: 8 /* FunctionCall */
229
- };
230
- const parserBuilder = new ParserBuilder()
231
- .registerPrefix('StringLiteral', { parse: (_, token) => new LiteralAtom(token.value.substring(1, token.value.length - 1)) })
232
- .registerPrefix('Number', { parse: (_, token) => new LiteralAtom(parseFloat(token.value)) })
233
- .registerPrefix('Symbol', { parse: (_, token) => new SymbolAtom(token.value) })
234
- .registerPrefix('(', PARENTHESES_PARSELET)
235
- .registerInfix('(', FUNCTION_CALL_PARSELET)
236
- .prefix('-', 6 /* Negate */, (_, right) => new UnaryOperatorAtom(right, x => -x))
237
- .infixLeft('.', 7 /* Dot */, (left, _, right) => new DotAtom(left, right))
238
- .infixRight('^', 5 /* Exp */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => Math.pow(x, y)))
239
- .infixLeft('/', 4 /* MulDiv */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x / y))
240
- .infixLeft('*', 4 /* MulDiv */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x * y))
241
- .infixLeft('+', 3 /* AddSub */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x + y))
242
- .infixLeft('-', 3 /* AddSub */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x - y))
243
- .infixLeft('|', 1 /* Union */, (left, _, right) => new UnionAtom(left, right))
244
- .infixLeft('=', 2 /* Equals */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x === y))
245
- .infixLeft('Symbol', 1 /* Union */, (left, symbol, right) => {
246
- switch (symbol.value) {
247
- case 'as':
248
- return new BinaryOperatorAtom(left, right, (x) => x);
249
- case 'is':
250
- return new IsAtom(left, right);
251
- case 'and':
252
- return new BinaryOperatorAtom(left, right, (x, y) => x && y);
253
- default:
254
- throw new Error('Cannot use ' + symbol.value + ' as infix operator');
255
- }
256
- });
257
- function parseFhirPath(input) {
258
- try {
259
- return new FhirPathAtom(input, parserBuilder.construct(input).parse());
260
- }
261
- catch (error) {
262
- throw new Error(`FhirPathError on "${input}": ${error}`);
263
- }
264
- }
265
- exports.parseFhirPath = parseFhirPath;
266
- //# 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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","sourcesContent":["import { functions } from './functions';\nimport { Token, tokenizer } from './tokenize';\nimport { applyMaybeArray } from './utils';\n\nexport interface Atom {\n eval(context: any): any;\n}\n\ninterface PrefixParselet {\n parse(parser: Parser, token: Token): Atom;\n}\n\ninterface InfixParselet {\n precedence: number;\n parse(parser: Parser, left: Atom, token: Token): Atom;\n}\n\nclass ParserBuilder {\n private readonly prefixParselets: Record<string, PrefixParselet> = {};\n private readonly infixParselets: Record<string, InfixParselet> = {};\n\n public registerInfix(tokenType: string, parselet: InfixParselet): ParserBuilder {\n this.infixParselets[tokenType] = parselet;\n return this;\n }\n\n public registerPrefix(tokenType: string, parselet: PrefixParselet): ParserBuilder {\n this.prefixParselets[tokenType] = parselet;\n return this;\n }\n\n public prefix(tokenType: string, precedence: number, builder: (token: Token, right: Atom) => Atom): ParserBuilder {\n return this.registerPrefix(tokenType, {\n parse(parser, token) {\n const right = parser.parse(precedence)\n return builder(token, right)\n },\n });\n }\n\n public infixLeft(tokenType: string, precedence: number, builder: (left: Atom, token: Token, right: Atom) => Atom): ParserBuilder {\n return this.registerInfix(tokenType, {\n parse(parser, left, token) {\n const right = parser.parse(precedence)\n return builder(left, token, right)\n },\n precedence\n });\n }\n\n public infixRight(tokenType: string, precedence: number, builder: (left: Atom, token: Token, right: Atom) => Atom): ParserBuilder {\n return this.registerInfix(tokenType, {\n parse(parser, left, token) {\n const right = parser.parse(precedence - 1)\n return builder(left, token, right)\n },\n precedence\n });\n }\n\n public construct(input: string): Parser {\n return new Parser(tokenizer.tokenize(input), this.prefixParselets, this.infixParselets);\n }\n}\n\nclass Parser {\n constructor(\n private tokens: Token[],\n private prefixParselets: Record<string, PrefixParselet>,\n private infixParselets: Record<string, InfixParselet>,\n ) { }\n\n public match(expected: string): boolean {\n const token = this.look();\n if (token?.id !== expected) {\n return false;\n }\n\n this.consume();\n return true;\n }\n\n public parse(precedence = 0): Atom {\n const token = this.consume();\n const prefix = this.prefixParselets[token.id];\n if (!prefix) {\n throw Error(`Parse error at ${token.value}. No matching prefix parselet.`)\n }\n\n let left = prefix.parse(this, token);\n\n while (precedence < this.getPrecedence()) {\n const next = this.consume();\n const infix = this.infixParselets[next.id];\n left = infix.parse(this, left, next);\n }\n\n return left;\n }\n\n private getPrecedence(): number {\n const nextToken = this.look();\n if (!nextToken) {\n return 0;\n }\n const parser = this.infixParselets[nextToken.id];\n if (parser) {\n return parser.precedence;\n }\n return 0;\n }\n\n private consume(): Token {\n if (!this.tokens.length) {\n throw Error('Cant consume any more tokens.');\n }\n return this.tokens.shift() as Token;\n }\n\n private look(): Token | undefined {\n return this.tokens.length > 0 ? this.tokens[0] : undefined;\n }\n}\n\nconst enum Precedence {\n Union = 1,\n Equals = 2,\n AddSub = 3,\n MulDiv = 4,\n Exp = 5,\n Negate = 6,\n Dot = 7,\n FunctionCall = 8\n}\n\nexport class FhirPathAtom implements Atom {\n constructor(\n public readonly original: string,\n public readonly child: Atom) { }\n\n eval(context: any): any[] {\n try {\n const result = applyMaybeArray(context, e => this.child.eval(e));\n if (Array.isArray(result)) {\n return result.flat();\n } else if (result === undefined || result === null) {\n return [];\n } else {\n return [result];\n }\n } catch (error) {\n throw new Error(`FhirPathError on \"${this.original}\": ${error}`);\n }\n }\n}\n\nclass LiteralAtom implements Atom {\n constructor(public readonly value: any) { }\n eval(): any {\n return this.value;\n }\n}\n\nclass SymbolAtom implements Atom {\n constructor(public readonly name: string) { }\n eval(context: any): any {\n return applyMaybeArray(context, e => e.resourceType === this.name ? e : e[this.name]);\n }\n}\n\nclass UnaryOperatorAtom implements Atom {\n constructor(\n public readonly child: Atom,\n public readonly impl: (x: any) => any) { }\n\n eval(context: any): any {\n return this.impl(this.child.eval(context));\n }\n}\n\nclass BinaryOperatorAtom implements Atom {\n constructor(\n public readonly left: Atom,\n public readonly right: Atom,\n public readonly impl: (x: any, y: any) => any) { }\n\n eval(context: any): any {\n return this.impl(this.left.eval(context), this.right.eval(context));\n }\n}\n\nclass DotAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) { }\n eval(context: any): Atom {\n return this.right.eval(this.left.eval(context));\n }\n}\n\nclass UnionAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) { }\n eval(context: any): any {\n const leftResult = this.left.eval(context);\n const rightResult = this.right.eval(context);\n if (leftResult && rightResult) {\n return [leftResult, rightResult].flat();\n }\n return leftResult || rightResult;\n }\n}\n\nclass IsAtom implements Atom {\n constructor(\n public readonly left: Atom,\n public readonly right: Atom) { }\n\n eval(context: any): any {\n const desiredResourceType = (this.right as SymbolAtom).name;\n return applyMaybeArray(this.left.eval(context), e => e?.resourceType === desiredResourceType ? e : undefined);\n }\n}\n\nclass FunctionAtom implements Atom {\n constructor(\n public readonly name: string,\n public readonly args: Atom[],\n public readonly impl: (context: any[], ...a: Atom[]) => any[]\n ) { }\n eval(context: any): any {\n if (context === undefined) {\n return undefined;\n }\n const input = Array.isArray(context) ? context : [context];\n return this.impl(input, ...this.args);\n }\n}\n\nconst PARENTHESES_PARSELET: PrefixParselet = {\n parse(parser: Parser) {\n const expr = parser.parse();\n if (!parser.match(')')) {\n throw new Error('Parse error: expected `)`');\n }\n return expr;\n }\n};\n\nconst FUNCTION_CALL_PARSELET: InfixParselet = {\n parse(parser: Parser, left: Atom) {\n if (!(left instanceof SymbolAtom)) {\n throw new Error('Unexpected parentheses');\n }\n\n if (!(left.name in functions)) {\n throw new Error('Unrecognized function: ' + left.name);\n }\n\n const args = [];\n while (!parser.match(')')) {\n args.push(parser.parse());\n }\n\n return new FunctionAtom(left.name, args, functions[left.name]);\n },\n precedence: Precedence.FunctionCall\n};\n\nconst parserBuilder = new ParserBuilder()\n .registerPrefix('StringLiteral', { parse: (_, token) => new LiteralAtom(token.value.substring(1, token.value.length - 1)) })\n .registerPrefix('Number', { parse: (_, token) => new LiteralAtom(parseFloat(token.value)) })\n .registerPrefix('Symbol', { parse: (_, token) => new SymbolAtom(token.value) })\n .registerPrefix('(', PARENTHESES_PARSELET)\n .registerInfix('(', FUNCTION_CALL_PARSELET)\n .prefix('-', Precedence.Negate, (_, right) => new UnaryOperatorAtom(right, x => -x))\n .infixLeft('.', Precedence.Dot, (left, _, right) => new DotAtom(left, right))\n .infixRight('^', Precedence.Exp, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x ** y))\n .infixLeft('/', Precedence.MulDiv, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x / y))\n .infixLeft('*', Precedence.MulDiv, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x * y))\n .infixLeft('+', Precedence.AddSub, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x + y))\n .infixLeft('-', Precedence.AddSub, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x - y))\n .infixLeft('|', Precedence.Union, (left, _, right) => new UnionAtom(left, right))\n .infixLeft('=', Precedence.Equals, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x === y))\n .infixLeft('Symbol', Precedence.Union, (left: Atom, symbol: Token, right: Atom) => {\n switch (symbol.value) {\n case 'as':\n return new BinaryOperatorAtom(left, right, (x) => x);\n case 'is':\n return new IsAtom(left, right);\n case 'and':\n return new BinaryOperatorAtom(left, right, (x, y) => x && y);\n default:\n throw new Error('Cannot use ' + symbol.value + ' as infix operator');\n }\n });\n\nexport function parseFhirPath(input: string): FhirPathAtom {\n try {\n return new FhirPathAtom(input, parserBuilder.construct(input).parse());\n } catch (error) {\n throw new Error(`FhirPathError on \"${input}\": ${error}`);\n }\n}\n"]}
@@ -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,39 +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
- constructor() {
23
- this.matchAll = new RegExp(matchers.map(matcher => matcher.pattern.source).join('|'), 'g');
24
- }
25
- tokenize(str) {
26
- // Double-execing the RegExp is actually not that slow. Faster than my attempted alternative implementation.
27
- // https://jsperf.com/tokenization-strategies-jkearl-pratt/1
28
- const tokens = str.match(this.matchAll);
29
- if (!tokens) {
30
- throw new Error('Could not tokenize');
31
- }
32
- return tokens.map(value => {
33
- return Object.assign(Object.assign({}, matchers.find(matcher => matcher.pattern.test(value))), { value });
34
- });
35
- }
36
- }
37
- exports.Tokenizer = Tokenizer;
38
- exports.tokenizer = new Tokenizer();
39
- //# 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;IAGpB;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,uCACM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAkB,KAC1E,KAAK,IACL;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvBD,8BAuBC;AAEY,QAAA,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC","sourcesContent":["\nexport interface TokenMatcher {\n id: string;\n pattern: RegExp;\n}\n\nexport interface Token extends TokenMatcher {\n value: string\n}\n\nconst matchers: TokenMatcher[] = [\n { id: 'Comment', pattern: /\\/\\/.*$/ },\n { id: 'StringLiteral', pattern: /'[^']*'/ },\n { id: '(', pattern: /\\(/ },\n { id: ')', pattern: /\\)/ },\n { id: '*', pattern: /\\*/ },\n { id: '/', pattern: /\\// },\n { id: '+', pattern: /\\+/ },\n { id: '-', pattern: /-/ },\n { id: '^', pattern: /\\^/ },\n { id: '!', pattern: /!/ },\n { id: '.', pattern: /\\./ },\n { id: '|', pattern: /\\|/ },\n { id: '=', pattern: /=/ },\n { id: 'Number', pattern: /\\d+/ },\n { id: 'Symbol', pattern: /\\w+/ },\n];\n\nexport class Tokenizer {\n private matchAll: RegExp\n\n public constructor() {\n this.matchAll = new RegExp(matchers.map(matcher => matcher.pattern.source).join('|'), 'g');\n }\n\n public tokenize(str: string): Token[] {\n // Double-execing the RegExp is actually not that slow. Faster than my attempted alternative implementation.\n // https://jsperf.com/tokenization-strategies-jkearl-pratt/1\n\n const tokens = str.match(this.matchAll);\n if (!tokens) {\n throw new Error('Could not tokenize');\n }\n\n return tokens.map(value => {\n return {\n ...(matchers.find(matcher => matcher.pattern.test(value)) as TokenMatcher),\n value\n };\n });\n }\n}\n\nexport const tokenizer = new Tokenizer();\n"]}
@@ -1,13 +0,0 @@
1
- /**
2
- * Applies a function to single value or an array of values.
3
- * @param context The context which will be passed to the function.
4
- * @param fn The function to apply.
5
- * @returns The result of the function.
6
- */
7
- export declare function applyMaybeArray(context: any, fn: (context: any) => any): any;
8
- /**
9
- * Converts any object into a boolean.
10
- * @param obj Any value or array of values.
11
- * @returns The converted boolean value according to FHIRPath rules.
12
- */
13
- export declare function toBoolean(obj: any): boolean;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toBoolean = exports.applyMaybeArray = void 0;
4
- /**
5
- * Applies a function to single value or an array of values.
6
- * @param context The context which will be passed to the function.
7
- * @param fn The function to apply.
8
- * @returns The result of the function.
9
- */
10
- function applyMaybeArray(context, fn) {
11
- if (context === undefined) {
12
- return undefined;
13
- }
14
- if (Array.isArray(context)) {
15
- return context.map(e => fn(e)).filter(e => !!e).flat();
16
- }
17
- else {
18
- return fn(context);
19
- }
20
- }
21
- exports.applyMaybeArray = applyMaybeArray;
22
- /**
23
- * Converts any object into a boolean.
24
- * @param obj Any value or array of values.
25
- * @returns The converted boolean value according to FHIRPath rules.
26
- */
27
- function toBoolean(obj) {
28
- if (Array.isArray(obj) && obj.length === 0) {
29
- return false;
30
- }
31
- return !!obj;
32
- }
33
- exports.toBoolean = toBoolean;
34
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/fhirpath/utils.ts"],"names":[],"mappings":";;;AACA;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,OAAY,EAAE,EAAyB;IACrE,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACxD;SAAM;QACL,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;KACpB;AACH,CAAC;AATD,0CASC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,GAAQ;IAChC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1C,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,CAAC,GAAG,CAAC;AACf,CAAC;AALD,8BAKC","sourcesContent":["\n/**\n * Applies a function to single value or an array of values.\n * @param context The context which will be passed to the function.\n * @param fn The function to apply.\n * @returns The result of the function.\n */\nexport function applyMaybeArray(context: any, fn: (context: any) => any): any {\n if (context === undefined) {\n return undefined;\n }\n if (Array.isArray(context)) {\n return context.map(e => fn(e)).filter(e => !!e).flat();\n } else {\n return fn(context);\n }\n}\n\n/**\n * Converts any object into a boolean.\n * @param obj Any value or array of values.\n * @returns The converted boolean value according to FHIRPath rules.\n */\nexport function toBoolean(obj: any): boolean {\n if (Array.isArray(obj) && obj.length === 0) {\n return false;\n }\n return !!obj;\n}\n"]}
package/dist/format.js DELETED
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatFamilyName = exports.formatGivenName = exports.formatHumanName = exports.formatAddress = void 0;
4
- function formatAddress(address, options) {
5
- const builder = [];
6
- if (address.line) {
7
- builder.push(...address.line);
8
- }
9
- if (address.city) {
10
- builder.push(address.city);
11
- }
12
- if (address.state) {
13
- builder.push(address.state);
14
- }
15
- if (address.postalCode) {
16
- builder.push(address.postalCode);
17
- }
18
- if (address.use && ((options === null || options === void 0 ? void 0 : options.all) || (options === null || options === void 0 ? void 0 : options.use))) {
19
- builder.push('[' + address.use + ']');
20
- }
21
- return builder.join(', ').trim();
22
- }
23
- exports.formatAddress = formatAddress;
24
- function formatHumanName(name, options) {
25
- const builder = [];
26
- if (name.prefix && ((options === null || options === void 0 ? void 0 : options.all) || (options === null || options === void 0 ? void 0 : options.prefix))) {
27
- builder.push(...name.prefix);
28
- }
29
- if (name.given) {
30
- builder.push(...name.given);
31
- }
32
- if (name.family) {
33
- builder.push(name.family);
34
- }
35
- if (name.suffix && ((options === null || options === void 0 ? void 0 : options.all) || (options === null || options === void 0 ? void 0 : options.suffix))) {
36
- builder.push(...name.suffix);
37
- }
38
- if (name.use && ((options === null || options === void 0 ? void 0 : options.all) || (options === null || options === void 0 ? void 0 : options.use))) {
39
- builder.push('[' + name.use + ']');
40
- }
41
- return builder.join(' ').trim();
42
- }
43
- exports.formatHumanName = formatHumanName;
44
- function formatGivenName(name) {
45
- const builder = [];
46
- if (name.given) {
47
- builder.push(...name.given);
48
- }
49
- return builder.join(' ').trim();
50
- }
51
- exports.formatGivenName = formatGivenName;
52
- function formatFamilyName(name) {
53
- return name.family || '';
54
- }
55
- exports.formatFamilyName = formatFamilyName;
56
- //# sourceMappingURL=format.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":";;;AAcA,SAAgB,aAAa,CAAC,OAAgB,EAAE,OAA8B;IAC5E,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B;IAED,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC7B;IAED,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAA,CAAC,EAAE;QACjD,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;KACvC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC;AAxBD,sCAwBC;AAED,SAAgB,eAAe,CAAC,IAAe,EAAE,OAAgC;IAC/E,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,CAAC,EAAE;QACpD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;KAC9B;IAED,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;IAED,IAAI,IAAI,CAAC,MAAM,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;IAED,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,CAAC,EAAE;QACpD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;KAC9B;IAED,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAA,CAAC,EAAE;QAC9C,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;KACpC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC;AAxBD,0CAwBC;AAED,SAAgB,eAAe,CAAC,IAAe;IAC7C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC;AAND,0CAMC;AAED,SAAgB,gBAAgB,CAAC,IAAe;IAC9C,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;AAC3B,CAAC;AAFD,4CAEC","sourcesContent":["import { Address, HumanName } from './fhir';\n\nexport interface AddressFormatOptions {\n all?: boolean;\n use?: boolean;\n}\n\nexport interface HumanNameFormatOptions {\n all?: boolean;\n prefix?: boolean;\n suffix?: boolean;\n use?: boolean;\n}\n\nexport function formatAddress(address: Address, options?: AddressFormatOptions): string {\n const builder = [];\n\n if (address.line) {\n builder.push(...address.line);\n }\n\n if (address.city) {\n builder.push(address.city);\n }\n\n if (address.state) {\n builder.push(address.state);\n }\n\n if (address.postalCode) {\n builder.push(address.postalCode);\n }\n\n if (address.use && (options?.all || options?.use)) {\n builder.push('[' + address.use + ']');\n }\n\n return builder.join(', ').trim();\n}\n\nexport function formatHumanName(name: HumanName, options?: HumanNameFormatOptions): string {\n const builder = [];\n\n if (name.prefix && (options?.all || options?.prefix)) {\n builder.push(...name.prefix);\n }\n\n if (name.given) {\n builder.push(...name.given);\n }\n\n if (name.family) {\n builder.push(name.family);\n }\n\n if (name.suffix && (options?.all || options?.suffix)) {\n builder.push(...name.suffix);\n }\n\n if (name.use && (options?.all || options?.use)) {\n builder.push('[' + name.use + ']');\n }\n\n return builder.join(' ').trim();\n}\n\nexport function formatGivenName(name: HumanName): string {\n const builder: string[] = [];\n if (name.given) {\n builder.push(...name.given);\n }\n return builder.join(' ').trim();\n}\n\nexport function formatFamilyName(name: HumanName): string {\n return name.family || '';\n}\n"]}
package/dist/index.js DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./client"), exports);
14
- __exportStar(require("./fhir"), exports);
15
- __exportStar(require("./fhirpath"), exports);
16
- __exportStar(require("./format"), exports);
17
- __exportStar(require("./outcomes"), exports);
18
- __exportStar(require("./search"), exports);
19
- __exportStar(require("./searchparams"), exports);
20
- __exportStar(require("./types"), exports);
21
- __exportStar(require("./utils"), exports);
22
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB;AACvB,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AACzB,iDAA+B;AAC/B,0CAAwB;AACxB,0CAAwB","sourcesContent":["export * from './client';\nexport * from './fhir';\nexport * from './fhirpath';\nexport * from './format';\nexport * from './outcomes';\nexport * from './search';\nexport * from './searchparams';\nexport * from './types';\nexport * from './utils';\n"]}
package/dist/jwt.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Parses the JWT payload.
3
- * @param token JWT token
4
- */
5
- export declare function parseJWTPayload(token: string): any;
package/dist/jwt.js DELETED
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseJWTPayload = void 0;
4
- /**
5
- * Decodes a section of a JWT.
6
- * See: https://tools.ietf.org/html/rfc7519
7
- * @param payload
8
- */
9
- function decodePayload(payload) {
10
- const cleanedPayload = payload.replace(/-/g, '+').replace(/_/g, '/');
11
- const decodedPayload = window.atob(cleanedPayload);
12
- const uriEncodedPayload = Array.from(decodedPayload).reduce((acc, char) => {
13
- const uriEncodedChar = ('00' + char.charCodeAt(0).toString(16)).slice(-2);
14
- return `${acc}%${uriEncodedChar}`;
15
- }, '');
16
- const jsonPayload = decodeURIComponent(uriEncodedPayload);
17
- return JSON.parse(jsonPayload);
18
- }
19
- /**
20
- * Parses the JWT payload.
21
- * @param token JWT token
22
- */
23
- function parseJWTPayload(token) {
24
- const [_header, payload, _signature] = token.split('.');
25
- return decodePayload(payload);
26
- }
27
- exports.parseJWTPayload = parseJWTPayload;
28
- //# sourceMappingURL=jwt.js.map
package/dist/jwt.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../src/jwt.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAClD,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACxE,MAAM,cAAc,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACzE,OAAO,GAAG,GAAG,IAAI,cAAc,EAAE,CAAA;IACnC,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,MAAM,WAAW,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,KAAa;IAC3C,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAHD,0CAGC","sourcesContent":["/**\n * Decodes a section of a JWT.\n * See: https://tools.ietf.org/html/rfc7519\n * @param payload\n */\nfunction decodePayload(payload: string) {\n const cleanedPayload = payload.replace(/-/g, '+').replace(/_/g, '/');\n const decodedPayload = window.atob(cleanedPayload)\n const uriEncodedPayload = Array.from(decodedPayload).reduce((acc, char) => {\n const uriEncodedChar = ('00' + char.charCodeAt(0).toString(16)).slice(-2)\n return `${acc}%${uriEncodedChar}`\n }, '')\n const jsonPayload = decodeURIComponent(uriEncodedPayload);\n return JSON.parse(jsonPayload)\n}\n\n/**\n * Parses the JWT payload.\n * @param token JWT token\n */\nexport function parseJWTPayload(token: string) {\n const [_header, payload, _signature] = token.split('.');\n return decodePayload(payload);\n}\n"]}