@medplum/core 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (702) hide show
  1. package/README.md +32 -26
  2. package/dist/cjs/index.js +1769 -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 +1721 -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} +1 -0
  11. package/dist/{client.d.ts → types/client.d.ts} +115 -61
  12. package/dist/{crypto.d.ts → types/crypto.d.ts} +0 -0
  13. package/dist/{eventtarget.d.ts → types/eventtarget.d.ts} +0 -0
  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} +3 -0
  19. package/dist/{searchparams.d.ts → types/searchparams.d.ts} +2 -1
  20. package/dist/{storage.d.ts → types/storage.d.ts} +0 -0
  21. package/dist/{types.d.ts → types/types.d.ts} +18 -4
  22. package/dist/{utils.d.ts → types/utils.d.ts} +1 -1
  23. package/package.json +14 -9
  24. package/rollup.config.js +36 -0
  25. package/dist/cache.js +0 -38
  26. package/dist/cache.js.map +0 -1
  27. package/dist/cache.test.d.ts +0 -1
  28. package/dist/cache.test.js +0 -29
  29. package/dist/cache.test.js.map +0 -1
  30. package/dist/client.js +0 -530
  31. package/dist/client.js.map +0 -1
  32. package/dist/client.test.d.ts +0 -1
  33. package/dist/client.test.js +0 -382
  34. package/dist/client.test.js.map +0 -1
  35. package/dist/crypto.js +0 -22
  36. package/dist/crypto.js.map +0 -1
  37. package/dist/eventtarget.js +0 -39
  38. package/dist/eventtarget.js.map +0 -1
  39. package/dist/eventtarget.test.d.ts +0 -1
  40. package/dist/eventtarget.test.js +0 -44
  41. package/dist/eventtarget.test.js.map +0 -1
  42. package/dist/fhir/AccessPolicy.d.ts +0 -75
  43. package/dist/fhir/AccessPolicy.js +0 -7
  44. package/dist/fhir/AccessPolicy.js.map +0 -1
  45. package/dist/fhir/Account.d.ts +0 -247
  46. package/dist/fhir/Account.js +0 -7
  47. package/dist/fhir/Account.js.map +0 -1
  48. package/dist/fhir/ActivityDefinition.d.ts +0 -500
  49. package/dist/fhir/ActivityDefinition.js +0 -7
  50. package/dist/fhir/ActivityDefinition.js.map +0 -1
  51. package/dist/fhir/Address.d.ts +0 -75
  52. package/dist/fhir/Address.js +0 -7
  53. package/dist/fhir/Address.js.map +0 -1
  54. package/dist/fhir/AdverseEvent.d.ts +0 -303
  55. package/dist/fhir/AdverseEvent.js +0 -7
  56. package/dist/fhir/AdverseEvent.js.map +0 -1
  57. package/dist/fhir/Age.d.ts +0 -47
  58. package/dist/fhir/Age.js +0 -7
  59. package/dist/fhir/Age.js.map +0 -1
  60. package/dist/fhir/AllergyIntolerance.d.ts +0 -283
  61. package/dist/fhir/AllergyIntolerance.js +0 -7
  62. package/dist/fhir/AllergyIntolerance.js.map +0 -1
  63. package/dist/fhir/Annotation.d.ts +0 -42
  64. package/dist/fhir/Annotation.js +0 -7
  65. package/dist/fhir/Annotation.js.map +0 -1
  66. package/dist/fhir/Appointment.d.ts +0 -284
  67. package/dist/fhir/Appointment.js +0 -7
  68. package/dist/fhir/Appointment.js.map +0 -1
  69. package/dist/fhir/AppointmentResponse.d.ts +0 -131
  70. package/dist/fhir/AppointmentResponse.js +0 -7
  71. package/dist/fhir/AppointmentResponse.js.map +0 -1
  72. package/dist/fhir/Attachment.d.ts +0 -58
  73. package/dist/fhir/Attachment.js +0 -7
  74. package/dist/fhir/Attachment.js.map +0 -1
  75. package/dist/fhir/AuditEvent.d.ts +0 -458
  76. package/dist/fhir/AuditEvent.js +0 -7
  77. package/dist/fhir/AuditEvent.js.map +0 -1
  78. package/dist/fhir/Basic.d.ts +0 -110
  79. package/dist/fhir/Basic.js +0 -7
  80. package/dist/fhir/Basic.js.map +0 -1
  81. package/dist/fhir/Binary.d.ts +0 -59
  82. package/dist/fhir/Binary.js +0 -7
  83. package/dist/fhir/Binary.js.map +0 -1
  84. package/dist/fhir/BiologicallyDerivedProduct.d.ts +0 -358
  85. package/dist/fhir/BiologicallyDerivedProduct.js +0 -7
  86. package/dist/fhir/BiologicallyDerivedProduct.js.map +0 -1
  87. package/dist/fhir/BodyStructure.d.ts +0 -119
  88. package/dist/fhir/BodyStructure.js +0 -7
  89. package/dist/fhir/BodyStructure.js.map +0 -1
  90. package/dist/fhir/Bot.d.ts +0 -49
  91. package/dist/fhir/Bot.js +0 -7
  92. package/dist/fhir/Bot.js.map +0 -1
  93. package/dist/fhir/Bundle.d.ts +0 -379
  94. package/dist/fhir/Bundle.js +0 -7
  95. package/dist/fhir/Bundle.js.map +0 -1
  96. package/dist/fhir/CapabilityStatement.d.ts +0 -1044
  97. package/dist/fhir/CapabilityStatement.js +0 -7
  98. package/dist/fhir/CapabilityStatement.js.map +0 -1
  99. package/dist/fhir/CarePlan.d.ts +0 -446
  100. package/dist/fhir/CarePlan.js +0 -7
  101. package/dist/fhir/CarePlan.js.map +0 -1
  102. package/dist/fhir/CareTeam.d.ts +0 -211
  103. package/dist/fhir/CareTeam.js +0 -7
  104. package/dist/fhir/CareTeam.js.map +0 -1
  105. package/dist/fhir/CatalogEntry.d.ts +0 -195
  106. package/dist/fhir/CatalogEntry.js +0 -7
  107. package/dist/fhir/CatalogEntry.js.map +0 -1
  108. package/dist/fhir/ChargeItem.d.ts +0 -287
  109. package/dist/fhir/ChargeItem.js +0 -7
  110. package/dist/fhir/ChargeItem.js.map +0 -1
  111. package/dist/fhir/ChargeItemDefinition.d.ts +0 -401
  112. package/dist/fhir/ChargeItemDefinition.js +0 -7
  113. package/dist/fhir/ChargeItemDefinition.js.map +0 -1
  114. package/dist/fhir/Claim.d.ts +0 -1092
  115. package/dist/fhir/Claim.js +0 -7
  116. package/dist/fhir/Claim.js.map +0 -1
  117. package/dist/fhir/ClaimResponse.d.ts +0 -1040
  118. package/dist/fhir/ClaimResponse.js +0 -7
  119. package/dist/fhir/ClaimResponse.js.map +0 -1
  120. package/dist/fhir/ClientApplication.d.ts +0 -46
  121. package/dist/fhir/ClientApplication.js +0 -7
  122. package/dist/fhir/ClientApplication.js.map +0 -1
  123. package/dist/fhir/ClinicalImpression.d.ts +0 -306
  124. package/dist/fhir/ClinicalImpression.js +0 -7
  125. package/dist/fhir/ClinicalImpression.js.map +0 -1
  126. package/dist/fhir/CodeSystem.d.ts +0 -541
  127. package/dist/fhir/CodeSystem.js +0 -7
  128. package/dist/fhir/CodeSystem.js.map +0 -1
  129. package/dist/fhir/CodeableConcept.d.ts +0 -33
  130. package/dist/fhir/CodeableConcept.js +0 -7
  131. package/dist/fhir/CodeableConcept.js.map +0 -1
  132. package/dist/fhir/Coding.d.ts +0 -50
  133. package/dist/fhir/Coding.js +0 -7
  134. package/dist/fhir/Coding.js.map +0 -1
  135. package/dist/fhir/Communication.d.ts +0 -264
  136. package/dist/fhir/Communication.js +0 -7
  137. package/dist/fhir/Communication.js.map +0 -1
  138. package/dist/fhir/CommunicationRequest.d.ts +0 -261
  139. package/dist/fhir/CommunicationRequest.js +0 -7
  140. package/dist/fhir/CommunicationRequest.js.map +0 -1
  141. package/dist/fhir/CompartmentDefinition.d.ts +0 -217
  142. package/dist/fhir/CompartmentDefinition.js +0 -7
  143. package/dist/fhir/CompartmentDefinition.js.map +0 -1
  144. package/dist/fhir/Composition.d.ts +0 -429
  145. package/dist/fhir/Composition.js +0 -7
  146. package/dist/fhir/Composition.js.map +0 -1
  147. package/dist/fhir/ConceptMap.d.ts +0 -518
  148. package/dist/fhir/ConceptMap.js +0 -7
  149. package/dist/fhir/ConceptMap.js.map +0 -1
  150. package/dist/fhir/Condition.d.ts +0 -326
  151. package/dist/fhir/Condition.js +0 -7
  152. package/dist/fhir/Condition.js.map +0 -1
  153. package/dist/fhir/Consent.d.ts +0 -460
  154. package/dist/fhir/Consent.js +0 -7
  155. package/dist/fhir/Consent.js.map +0 -1
  156. package/dist/fhir/ContactDetail.d.ts +0 -31
  157. package/dist/fhir/ContactDetail.js +0 -7
  158. package/dist/fhir/ContactDetail.js.map +0 -1
  159. package/dist/fhir/ContactPoint.d.ts +0 -47
  160. package/dist/fhir/ContactPoint.js +0 -7
  161. package/dist/fhir/ContactPoint.js.map +0 -1
  162. package/dist/fhir/Contract.d.ts +0 -1452
  163. package/dist/fhir/Contract.js +0 -7
  164. package/dist/fhir/Contract.js.map +0 -1
  165. package/dist/fhir/Contributor.d.ts +0 -37
  166. package/dist/fhir/Contributor.js +0 -7
  167. package/dist/fhir/Contributor.js.map +0 -1
  168. package/dist/fhir/Count.d.ts +0 -49
  169. package/dist/fhir/Count.js +0 -7
  170. package/dist/fhir/Count.js.map +0 -1
  171. package/dist/fhir/Coverage.d.ts +0 -327
  172. package/dist/fhir/Coverage.js +0 -7
  173. package/dist/fhir/Coverage.js.map +0 -1
  174. package/dist/fhir/CoverageEligibilityRequest.d.ts +0 -404
  175. package/dist/fhir/CoverageEligibilityRequest.js +0 -7
  176. package/dist/fhir/CoverageEligibilityRequest.js.map +0 -1
  177. package/dist/fhir/CoverageEligibilityResponse.d.ts +0 -434
  178. package/dist/fhir/CoverageEligibilityResponse.js +0 -7
  179. package/dist/fhir/CoverageEligibilityResponse.js.map +0 -1
  180. package/dist/fhir/DataRequirement.d.ts +0 -239
  181. package/dist/fhir/DataRequirement.js +0 -7
  182. package/dist/fhir/DataRequirement.js.map +0 -1
  183. package/dist/fhir/DetectedIssue.d.ts +0 -252
  184. package/dist/fhir/DetectedIssue.js +0 -7
  185. package/dist/fhir/DetectedIssue.js.map +0 -1
  186. package/dist/fhir/Device.d.ts +0 -493
  187. package/dist/fhir/Device.js +0 -7
  188. package/dist/fhir/Device.js.map +0 -1
  189. package/dist/fhir/DeviceDefinition.d.ts +0 -486
  190. package/dist/fhir/DeviceDefinition.js +0 -7
  191. package/dist/fhir/DeviceDefinition.js.map +0 -1
  192. package/dist/fhir/DeviceMetric.d.ts +0 -199
  193. package/dist/fhir/DeviceMetric.js +0 -7
  194. package/dist/fhir/DeviceMetric.js.map +0 -1
  195. package/dist/fhir/DeviceRequest.d.ts +0 -296
  196. package/dist/fhir/DeviceRequest.js +0 -7
  197. package/dist/fhir/DeviceRequest.js.map +0 -1
  198. package/dist/fhir/DeviceUseStatement.d.ts +0 -168
  199. package/dist/fhir/DeviceUseStatement.js +0 -7
  200. package/dist/fhir/DeviceUseStatement.js.map +0 -1
  201. package/dist/fhir/DiagnosticReport.d.ts +0 -254
  202. package/dist/fhir/DiagnosticReport.js +0 -7
  203. package/dist/fhir/DiagnosticReport.js.map +0 -1
  204. package/dist/fhir/Distance.d.ts +0 -47
  205. package/dist/fhir/Distance.js +0 -7
  206. package/dist/fhir/Distance.js.map +0 -1
  207. package/dist/fhir/DocumentManifest.d.ts +0 -196
  208. package/dist/fhir/DocumentManifest.js +0 -7
  209. package/dist/fhir/DocumentManifest.js.map +0 -1
  210. package/dist/fhir/DocumentReference.d.ts +0 -349
  211. package/dist/fhir/DocumentReference.js +0 -7
  212. package/dist/fhir/DocumentReference.js.map +0 -1
  213. package/dist/fhir/Dosage.d.ts +0 -152
  214. package/dist/fhir/Dosage.js +0 -7
  215. package/dist/fhir/Dosage.js.map +0 -1
  216. package/dist/fhir/Duration.d.ts +0 -46
  217. package/dist/fhir/Duration.js +0 -7
  218. package/dist/fhir/Duration.js.map +0 -1
  219. package/dist/fhir/EffectEvidenceSynthesis.d.ts +0 -591
  220. package/dist/fhir/EffectEvidenceSynthesis.js +0 -7
  221. package/dist/fhir/EffectEvidenceSynthesis.js.map +0 -1
  222. package/dist/fhir/Element.d.ts +0 -21
  223. package/dist/fhir/Element.js +0 -7
  224. package/dist/fhir/Element.js.map +0 -1
  225. package/dist/fhir/ElementDefinition.d.ts +0 -2701
  226. package/dist/fhir/ElementDefinition.js +0 -7
  227. package/dist/fhir/ElementDefinition.js.map +0 -1
  228. package/dist/fhir/Encounter.d.ts +0 -558
  229. package/dist/fhir/Encounter.js +0 -7
  230. package/dist/fhir/Encounter.js.map +0 -1
  231. package/dist/fhir/Endpoint.d.ts +0 -140
  232. package/dist/fhir/Endpoint.js +0 -7
  233. package/dist/fhir/Endpoint.js.map +0 -1
  234. package/dist/fhir/EnrollmentRequest.d.ts +0 -113
  235. package/dist/fhir/EnrollmentRequest.js +0 -7
  236. package/dist/fhir/EnrollmentRequest.js.map +0 -1
  237. package/dist/fhir/EnrollmentResponse.d.ts +0 -117
  238. package/dist/fhir/EnrollmentResponse.js +0 -7
  239. package/dist/fhir/EnrollmentResponse.js.map +0 -1
  240. package/dist/fhir/EpisodeOfCare.d.ts +0 -246
  241. package/dist/fhir/EpisodeOfCare.js +0 -7
  242. package/dist/fhir/EpisodeOfCare.js.map +0 -1
  243. package/dist/fhir/EventDefinition.d.ts +0 -253
  244. package/dist/fhir/EventDefinition.js +0 -7
  245. package/dist/fhir/EventDefinition.js.map +0 -1
  246. package/dist/fhir/Evidence.d.ts +0 -252
  247. package/dist/fhir/Evidence.js +0 -7
  248. package/dist/fhir/Evidence.js.map +0 -1
  249. package/dist/fhir/EvidenceVariable.d.ts +0 -370
  250. package/dist/fhir/EvidenceVariable.js +0 -7
  251. package/dist/fhir/EvidenceVariable.js.map +0 -1
  252. package/dist/fhir/ExampleScenario.d.ts +0 -628
  253. package/dist/fhir/ExampleScenario.js +0 -7
  254. package/dist/fhir/ExampleScenario.js.map +0 -1
  255. package/dist/fhir/ExplanationOfBenefit.d.ts +0 -1841
  256. package/dist/fhir/ExplanationOfBenefit.js +0 -7
  257. package/dist/fhir/ExplanationOfBenefit.js.map +0 -1
  258. package/dist/fhir/Expression.d.ts +0 -45
  259. package/dist/fhir/Expression.js +0 -7
  260. package/dist/fhir/Expression.js.map +0 -1
  261. package/dist/fhir/Extension.d.ts +0 -306
  262. package/dist/fhir/Extension.js +0 -7
  263. package/dist/fhir/Extension.js.map +0 -1
  264. package/dist/fhir/FamilyMemberHistory.d.ts +0 -306
  265. package/dist/fhir/FamilyMemberHistory.js +0 -7
  266. package/dist/fhir/FamilyMemberHistory.js.map +0 -1
  267. package/dist/fhir/Flag.d.ts +0 -132
  268. package/dist/fhir/Flag.js +0 -7
  269. package/dist/fhir/Flag.js.map +0 -1
  270. package/dist/fhir/Goal.d.ts +0 -299
  271. package/dist/fhir/Goal.js +0 -7
  272. package/dist/fhir/Goal.js.map +0 -1
  273. package/dist/fhir/GraphDefinition.d.ts +0 -350
  274. package/dist/fhir/GraphDefinition.js +0 -7
  275. package/dist/fhir/GraphDefinition.js.map +0 -1
  276. package/dist/fhir/Group.d.ts +0 -271
  277. package/dist/fhir/Group.js +0 -7
  278. package/dist/fhir/Group.js.map +0 -1
  279. package/dist/fhir/GuidanceResponse.d.ts +0 -196
  280. package/dist/fhir/GuidanceResponse.js +0 -7
  281. package/dist/fhir/GuidanceResponse.js.map +0 -1
  282. package/dist/fhir/HealthcareService.d.ts +0 -356
  283. package/dist/fhir/HealthcareService.js +0 -7
  284. package/dist/fhir/HealthcareService.js.map +0 -1
  285. package/dist/fhir/HumanName.d.ts +0 -58
  286. package/dist/fhir/HumanName.js +0 -7
  287. package/dist/fhir/HumanName.js.map +0 -1
  288. package/dist/fhir/Identifier.d.ts +0 -53
  289. package/dist/fhir/Identifier.js +0 -7
  290. package/dist/fhir/Identifier.js.map +0 -1
  291. package/dist/fhir/ImagingStudy.d.ts +0 -407
  292. package/dist/fhir/ImagingStudy.js +0 -7
  293. package/dist/fhir/ImagingStudy.js.map +0 -1
  294. package/dist/fhir/Immunization.d.ts +0 -444
  295. package/dist/fhir/Immunization.js +0 -7
  296. package/dist/fhir/Immunization.js.map +0 -1
  297. package/dist/fhir/ImmunizationEvaluation.d.ts +0 -149
  298. package/dist/fhir/ImmunizationEvaluation.js +0 -7
  299. package/dist/fhir/ImmunizationEvaluation.js.map +0 -1
  300. package/dist/fhir/ImmunizationRecommendation.d.ts +0 -254
  301. package/dist/fhir/ImmunizationRecommendation.js +0 -7
  302. package/dist/fhir/ImmunizationRecommendation.js.map +0 -1
  303. package/dist/fhir/ImplementationGuide.d.ts +0 -824
  304. package/dist/fhir/ImplementationGuide.js +0 -7
  305. package/dist/fhir/ImplementationGuide.js.map +0 -1
  306. package/dist/fhir/InsurancePlan.d.ts +0 -624
  307. package/dist/fhir/InsurancePlan.js +0 -7
  308. package/dist/fhir/InsurancePlan.js.map +0 -1
  309. package/dist/fhir/Invoice.d.ts +0 -346
  310. package/dist/fhir/Invoice.js +0 -7
  311. package/dist/fhir/Invoice.js.map +0 -1
  312. package/dist/fhir/JsonWebKey.d.ts +0 -99
  313. package/dist/fhir/JsonWebKey.js +0 -7
  314. package/dist/fhir/JsonWebKey.js.map +0 -1
  315. package/dist/fhir/Library.d.ts +0 -277
  316. package/dist/fhir/Library.js +0 -7
  317. package/dist/fhir/Library.js.map +0 -1
  318. package/dist/fhir/Linkage.d.ts +0 -146
  319. package/dist/fhir/Linkage.js +0 -7
  320. package/dist/fhir/Linkage.js.map +0 -1
  321. package/dist/fhir/List.d.ts +0 -200
  322. package/dist/fhir/List.js +0 -7
  323. package/dist/fhir/List.js.map +0 -1
  324. package/dist/fhir/Location.d.ts +0 -277
  325. package/dist/fhir/Location.js +0 -7
  326. package/dist/fhir/Location.js.map +0 -1
  327. package/dist/fhir/Login.d.ts +0 -119
  328. package/dist/fhir/Login.js +0 -7
  329. package/dist/fhir/Login.js.map +0 -1
  330. package/dist/fhir/MarketingStatus.d.ts +0 -82
  331. package/dist/fhir/MarketingStatus.js +0 -7
  332. package/dist/fhir/MarketingStatus.js.map +0 -1
  333. package/dist/fhir/Measure.d.ts +0 -620
  334. package/dist/fhir/Measure.js +0 -7
  335. package/dist/fhir/Measure.js.map +0 -1
  336. package/dist/fhir/MeasureReport.d.ts +0 -463
  337. package/dist/fhir/MeasureReport.js +0 -7
  338. package/dist/fhir/MeasureReport.js.map +0 -1
  339. package/dist/fhir/Media.d.ts +0 -205
  340. package/dist/fhir/Media.js +0 -7
  341. package/dist/fhir/Media.js.map +0 -1
  342. package/dist/fhir/Medication.d.ts +0 -230
  343. package/dist/fhir/Medication.js +0 -7
  344. package/dist/fhir/Medication.js.map +0 -1
  345. package/dist/fhir/MedicationAdministration.d.ts +0 -352
  346. package/dist/fhir/MedicationAdministration.js +0 -7
  347. package/dist/fhir/MedicationAdministration.js.map +0 -1
  348. package/dist/fhir/MedicationDispense.d.ts +0 -343
  349. package/dist/fhir/MedicationDispense.js +0 -7
  350. package/dist/fhir/MedicationDispense.js.map +0 -1
  351. package/dist/fhir/MedicationKnowledge.d.ts +0 -992
  352. package/dist/fhir/MedicationKnowledge.js +0 -7
  353. package/dist/fhir/MedicationKnowledge.js.map +0 -1
  354. package/dist/fhir/MedicationRequest.d.ts +0 -481
  355. package/dist/fhir/MedicationRequest.js +0 -7
  356. package/dist/fhir/MedicationRequest.js.map +0 -1
  357. package/dist/fhir/MedicationStatement.d.ts +0 -228
  358. package/dist/fhir/MedicationStatement.js +0 -7
  359. package/dist/fhir/MedicationStatement.js.map +0 -1
  360. package/dist/fhir/MedicinalProduct.d.ts +0 -453
  361. package/dist/fhir/MedicinalProduct.js +0 -7
  362. package/dist/fhir/MedicinalProduct.js.map +0 -1
  363. package/dist/fhir/MedicinalProductAuthorization.d.ts +0 -271
  364. package/dist/fhir/MedicinalProductAuthorization.js +0 -7
  365. package/dist/fhir/MedicinalProductAuthorization.js.map +0 -1
  366. package/dist/fhir/MedicinalProductContraindication.d.ts +0 -170
  367. package/dist/fhir/MedicinalProductContraindication.js +0 -7
  368. package/dist/fhir/MedicinalProductContraindication.js.map +0 -1
  369. package/dist/fhir/MedicinalProductIndication.d.ts +0 -179
  370. package/dist/fhir/MedicinalProductIndication.js +0 -7
  371. package/dist/fhir/MedicinalProductIndication.js.map +0 -1
  372. package/dist/fhir/MedicinalProductIngredient.d.ts +0 -336
  373. package/dist/fhir/MedicinalProductIngredient.js +0 -7
  374. package/dist/fhir/MedicinalProductIngredient.js.map +0 -1
  375. package/dist/fhir/MedicinalProductInteraction.d.ts +0 -158
  376. package/dist/fhir/MedicinalProductInteraction.js +0 -7
  377. package/dist/fhir/MedicinalProductInteraction.js.map +0 -1
  378. package/dist/fhir/MedicinalProductManufactured.d.ts +0 -113
  379. package/dist/fhir/MedicinalProductManufactured.js +0 -7
  380. package/dist/fhir/MedicinalProductManufactured.js.map +0 -1
  381. package/dist/fhir/MedicinalProductPackaged.d.ts +0 -259
  382. package/dist/fhir/MedicinalProductPackaged.js +0 -7
  383. package/dist/fhir/MedicinalProductPackaged.js.map +0 -1
  384. package/dist/fhir/MedicinalProductPharmaceutical.d.ts +0 -331
  385. package/dist/fhir/MedicinalProductPharmaceutical.js +0 -7
  386. package/dist/fhir/MedicinalProductPharmaceutical.js.map +0 -1
  387. package/dist/fhir/MedicinalProductUndesirableEffect.d.ts +0 -101
  388. package/dist/fhir/MedicinalProductUndesirableEffect.js +0 -7
  389. package/dist/fhir/MedicinalProductUndesirableEffect.js.map +0 -1
  390. package/dist/fhir/MessageDefinition.d.ts +0 -330
  391. package/dist/fhir/MessageDefinition.js +0 -7
  392. package/dist/fhir/MessageDefinition.js.map +0 -1
  393. package/dist/fhir/MessageHeader.d.ts +0 -323
  394. package/dist/fhir/MessageHeader.js +0 -7
  395. package/dist/fhir/MessageHeader.js.map +0 -1
  396. package/dist/fhir/Meta.d.ts +0 -75
  397. package/dist/fhir/Meta.js +0 -7
  398. package/dist/fhir/Meta.js.map +0 -1
  399. package/dist/fhir/MolecularSequence.d.ts +0 -760
  400. package/dist/fhir/MolecularSequence.js +0 -7
  401. package/dist/fhir/MolecularSequence.js.map +0 -1
  402. package/dist/fhir/Money.d.ts +0 -29
  403. package/dist/fhir/Money.js +0 -7
  404. package/dist/fhir/Money.js.map +0 -1
  405. package/dist/fhir/NamingSystem.d.ts +0 -218
  406. package/dist/fhir/NamingSystem.js +0 -7
  407. package/dist/fhir/NamingSystem.js.map +0 -1
  408. package/dist/fhir/Narrative.d.ts +0 -32
  409. package/dist/fhir/Narrative.js +0 -7
  410. package/dist/fhir/Narrative.js.map +0 -1
  411. package/dist/fhir/NutritionOrder.d.ts +0 -566
  412. package/dist/fhir/NutritionOrder.js +0 -7
  413. package/dist/fhir/NutritionOrder.js.map +0 -1
  414. package/dist/fhir/Observation.d.ts +0 -520
  415. package/dist/fhir/Observation.js +0 -7
  416. package/dist/fhir/Observation.js.map +0 -1
  417. package/dist/fhir/ObservationDefinition.d.ts +0 -278
  418. package/dist/fhir/ObservationDefinition.js +0 -7
  419. package/dist/fhir/ObservationDefinition.js.map +0 -1
  420. package/dist/fhir/OperationDefinition.d.ts +0 -468
  421. package/dist/fhir/OperationDefinition.js +0 -7
  422. package/dist/fhir/OperationDefinition.js.map +0 -1
  423. package/dist/fhir/OperationOutcome.d.ts +0 -160
  424. package/dist/fhir/OperationOutcome.js +0 -7
  425. package/dist/fhir/OperationOutcome.js.map +0 -1
  426. package/dist/fhir/Organization.d.ts +0 -184
  427. package/dist/fhir/Organization.js +0 -7
  428. package/dist/fhir/Organization.js.map +0 -1
  429. package/dist/fhir/OrganizationAffiliation.d.ts +0 -145
  430. package/dist/fhir/OrganizationAffiliation.js +0 -7
  431. package/dist/fhir/OrganizationAffiliation.js.map +0 -1
  432. package/dist/fhir/ParameterDefinition.d.ts +0 -57
  433. package/dist/fhir/ParameterDefinition.js +0 -7
  434. package/dist/fhir/ParameterDefinition.js.map +0 -1
  435. package/dist/fhir/Parameters.d.ts +0 -319
  436. package/dist/fhir/Parameters.js +0 -7
  437. package/dist/fhir/Parameters.js.map +0 -1
  438. package/dist/fhir/PasswordChangeRequest.d.ts +0 -51
  439. package/dist/fhir/PasswordChangeRequest.js +0 -7
  440. package/dist/fhir/PasswordChangeRequest.js.map +0 -1
  441. package/dist/fhir/Patient.d.ts +0 -342
  442. package/dist/fhir/Patient.js +0 -7
  443. package/dist/fhir/Patient.js.map +0 -1
  444. package/dist/fhir/PaymentNotice.d.ts +0 -135
  445. package/dist/fhir/PaymentNotice.js +0 -7
  446. package/dist/fhir/PaymentNotice.js.map +0 -1
  447. package/dist/fhir/PaymentReconciliation.d.ts +0 -280
  448. package/dist/fhir/PaymentReconciliation.js +0 -7
  449. package/dist/fhir/PaymentReconciliation.js.map +0 -1
  450. package/dist/fhir/Period.d.ts +0 -32
  451. package/dist/fhir/Period.js +0 -7
  452. package/dist/fhir/Period.js.map +0 -1
  453. package/dist/fhir/Person.d.ts +0 -175
  454. package/dist/fhir/Person.js +0 -7
  455. package/dist/fhir/Person.js.map +0 -1
  456. package/dist/fhir/PlanDefinition.d.ts +0 -837
  457. package/dist/fhir/PlanDefinition.js +0 -7
  458. package/dist/fhir/PlanDefinition.js.map +0 -1
  459. package/dist/fhir/Population.d.ts +0 -62
  460. package/dist/fhir/Population.js +0 -7
  461. package/dist/fhir/Population.js.map +0 -1
  462. package/dist/fhir/Practitioner.d.ts +0 -191
  463. package/dist/fhir/Practitioner.js +0 -7
  464. package/dist/fhir/Practitioner.js.map +0 -1
  465. package/dist/fhir/PractitionerRole.d.ts +0 -259
  466. package/dist/fhir/PractitionerRole.js +0 -7
  467. package/dist/fhir/PractitionerRole.js.map +0 -1
  468. package/dist/fhir/Procedure.d.ts +0 -372
  469. package/dist/fhir/Procedure.js +0 -7
  470. package/dist/fhir/Procedure.js.map +0 -1
  471. package/dist/fhir/ProdCharacteristic.d.ts +0 -112
  472. package/dist/fhir/ProdCharacteristic.js +0 -7
  473. package/dist/fhir/ProdCharacteristic.js.map +0 -1
  474. package/dist/fhir/ProductShelfLife.d.ts +0 -70
  475. package/dist/fhir/ProductShelfLife.js +0 -7
  476. package/dist/fhir/ProductShelfLife.js.map +0 -1
  477. package/dist/fhir/Project.d.ts +0 -43
  478. package/dist/fhir/Project.js +0 -7
  479. package/dist/fhir/Project.js.map +0 -1
  480. package/dist/fhir/ProjectMembership.d.ts +0 -66
  481. package/dist/fhir/ProjectMembership.js +0 -7
  482. package/dist/fhir/ProjectMembership.js.map +0 -1
  483. package/dist/fhir/Provenance.d.ts +0 -258
  484. package/dist/fhir/Provenance.js +0 -7
  485. package/dist/fhir/Provenance.js.map +0 -1
  486. package/dist/fhir/Quantity.d.ts +0 -46
  487. package/dist/fhir/Quantity.js +0 -7
  488. package/dist/fhir/Quantity.js.map +0 -1
  489. package/dist/fhir/Questionnaire.d.ts +0 -603
  490. package/dist/fhir/Questionnaire.js +0 -7
  491. package/dist/fhir/Questionnaire.js.map +0 -1
  492. package/dist/fhir/QuestionnaireResponse.d.ts +0 -313
  493. package/dist/fhir/QuestionnaireResponse.js +0 -7
  494. package/dist/fhir/QuestionnaireResponse.js.map +0 -1
  495. package/dist/fhir/Range.d.ts +0 -30
  496. package/dist/fhir/Range.js +0 -7
  497. package/dist/fhir/Range.js.map +0 -1
  498. package/dist/fhir/Ratio.d.ts +0 -30
  499. package/dist/fhir/Ratio.js +0 -7
  500. package/dist/fhir/Ratio.js.map +0 -1
  501. package/dist/fhir/Reference.d.ts +0 -67
  502. package/dist/fhir/Reference.js +0 -7
  503. package/dist/fhir/Reference.js.map +0 -1
  504. package/dist/fhir/RefreshToken.d.ts +0 -45
  505. package/dist/fhir/RefreshToken.js +0 -7
  506. package/dist/fhir/RefreshToken.js.map +0 -1
  507. package/dist/fhir/RelatedArtifact.d.ts +0 -57
  508. package/dist/fhir/RelatedArtifact.js +0 -7
  509. package/dist/fhir/RelatedArtifact.js.map +0 -1
  510. package/dist/fhir/RelatedPerson.d.ts +0 -190
  511. package/dist/fhir/RelatedPerson.js +0 -7
  512. package/dist/fhir/RelatedPerson.js.map +0 -1
  513. package/dist/fhir/RequestGroup.d.ts +0 -434
  514. package/dist/fhir/RequestGroup.js +0 -7
  515. package/dist/fhir/RequestGroup.js.map +0 -1
  516. package/dist/fhir/ResearchDefinition.d.ts +0 -291
  517. package/dist/fhir/ResearchDefinition.js +0 -7
  518. package/dist/fhir/ResearchDefinition.js.map +0 -1
  519. package/dist/fhir/ResearchElementDefinition.d.ts +0 -431
  520. package/dist/fhir/ResearchElementDefinition.js +0 -7
  521. package/dist/fhir/ResearchElementDefinition.js.map +0 -1
  522. package/dist/fhir/ResearchStudy.d.ts +0 -318
  523. package/dist/fhir/ResearchStudy.js +0 -7
  524. package/dist/fhir/ResearchStudy.js.map +0 -1
  525. package/dist/fhir/ResearchSubject.d.ts +0 -119
  526. package/dist/fhir/ResearchSubject.js +0 -7
  527. package/dist/fhir/ResearchSubject.js.map +0 -1
  528. package/dist/fhir/Resource.d.ts +0 -156
  529. package/dist/fhir/Resource.js +0 -7
  530. package/dist/fhir/Resource.js.map +0 -1
  531. package/dist/fhir/RiskAssessment.d.ts +0 -246
  532. package/dist/fhir/RiskAssessment.js +0 -7
  533. package/dist/fhir/RiskAssessment.js.map +0 -1
  534. package/dist/fhir/RiskEvidenceSynthesis.d.ts +0 -530
  535. package/dist/fhir/RiskEvidenceSynthesis.js +0 -7
  536. package/dist/fhir/RiskEvidenceSynthesis.js.map +0 -1
  537. package/dist/fhir/SampledData.d.ts +0 -62
  538. package/dist/fhir/SampledData.js +0 -7
  539. package/dist/fhir/SampledData.js.map +0 -1
  540. package/dist/fhir/Schedule.d.ts +0 -129
  541. package/dist/fhir/Schedule.js +0 -7
  542. package/dist/fhir/Schedule.js.map +0 -1
  543. package/dist/fhir/SearchParameter.d.ts +0 -277
  544. package/dist/fhir/SearchParameter.js +0 -7
  545. package/dist/fhir/SearchParameter.js.map +0 -1
  546. package/dist/fhir/ServiceRequest.d.ts +0 -309
  547. package/dist/fhir/ServiceRequest.js +0 -7
  548. package/dist/fhir/ServiceRequest.js.map +0 -1
  549. package/dist/fhir/Signature.d.ts +0 -71
  550. package/dist/fhir/Signature.js +0 -7
  551. package/dist/fhir/Signature.js.map +0 -1
  552. package/dist/fhir/Slot.d.ts +0 -134
  553. package/dist/fhir/Slot.js +0 -7
  554. package/dist/fhir/Slot.js.map +0 -1
  555. package/dist/fhir/Specimen.d.ts +0 -366
  556. package/dist/fhir/Specimen.js +0 -7
  557. package/dist/fhir/Specimen.js.map +0 -1
  558. package/dist/fhir/SpecimenDefinition.d.ts +0 -363
  559. package/dist/fhir/SpecimenDefinition.js +0 -7
  560. package/dist/fhir/SpecimenDefinition.js.map +0 -1
  561. package/dist/fhir/StructureDefinition.d.ts +0 -438
  562. package/dist/fhir/StructureDefinition.js +0 -7
  563. package/dist/fhir/StructureDefinition.js.map +0 -1
  564. package/dist/fhir/StructureMap.d.ts +0 -904
  565. package/dist/fhir/StructureMap.js +0 -7
  566. package/dist/fhir/StructureMap.js.map +0 -1
  567. package/dist/fhir/Subscription.d.ts +0 -172
  568. package/dist/fhir/Subscription.js +0 -7
  569. package/dist/fhir/Subscription.js.map +0 -1
  570. package/dist/fhir/Substance.d.ts +0 -213
  571. package/dist/fhir/Substance.js +0 -7
  572. package/dist/fhir/Substance.js.map +0 -1
  573. package/dist/fhir/SubstanceAmount.d.ts +0 -115
  574. package/dist/fhir/SubstanceAmount.js +0 -7
  575. package/dist/fhir/SubstanceAmount.js.map +0 -1
  576. package/dist/fhir/SubstanceNucleicAcid.d.ts +0 -309
  577. package/dist/fhir/SubstanceNucleicAcid.js +0 -7
  578. package/dist/fhir/SubstanceNucleicAcid.js.map +0 -1
  579. package/dist/fhir/SubstancePolymer.d.ts +0 -405
  580. package/dist/fhir/SubstancePolymer.js +0 -7
  581. package/dist/fhir/SubstancePolymer.js.map +0 -1
  582. package/dist/fhir/SubstanceProtein.d.ts +0 -218
  583. package/dist/fhir/SubstanceProtein.js +0 -7
  584. package/dist/fhir/SubstanceProtein.js.map +0 -1
  585. package/dist/fhir/SubstanceReferenceInformation.d.ts +0 -330
  586. package/dist/fhir/SubstanceReferenceInformation.js +0 -7
  587. package/dist/fhir/SubstanceReferenceInformation.js.map +0 -1
  588. package/dist/fhir/SubstanceSourceMaterial.d.ts +0 -521
  589. package/dist/fhir/SubstanceSourceMaterial.js +0 -7
  590. package/dist/fhir/SubstanceSourceMaterial.js.map +0 -1
  591. package/dist/fhir/SubstanceSpecification.d.ts +0 -827
  592. package/dist/fhir/SubstanceSpecification.js +0 -7
  593. package/dist/fhir/SubstanceSpecification.js.map +0 -1
  594. package/dist/fhir/SupplyDelivery.d.ts +0 -205
  595. package/dist/fhir/SupplyDelivery.js +0 -7
  596. package/dist/fhir/SupplyDelivery.js.map +0 -1
  597. package/dist/fhir/SupplyRequest.d.ts +0 -237
  598. package/dist/fhir/SupplyRequest.js +0 -7
  599. package/dist/fhir/SupplyRequest.js.map +0 -1
  600. package/dist/fhir/Task.d.ts +0 -807
  601. package/dist/fhir/Task.js +0 -7
  602. package/dist/fhir/Task.js.map +0 -1
  603. package/dist/fhir/TerminologyCapabilities.d.ts +0 -716
  604. package/dist/fhir/TerminologyCapabilities.js +0 -7
  605. package/dist/fhir/TerminologyCapabilities.js.map +0 -1
  606. package/dist/fhir/TestReport.d.ts +0 -549
  607. package/dist/fhir/TestReport.js +0 -7
  608. package/dist/fhir/TestReport.js.map +0 -1
  609. package/dist/fhir/TestScript.d.ts +0 -1184
  610. package/dist/fhir/TestScript.js +0 -7
  611. package/dist/fhir/TestScript.js.map +0 -1
  612. package/dist/fhir/Timing.d.ts +0 -178
  613. package/dist/fhir/Timing.js +0 -7
  614. package/dist/fhir/Timing.js.map +0 -1
  615. package/dist/fhir/TriggerDefinition.d.ts +0 -65
  616. package/dist/fhir/TriggerDefinition.js +0 -7
  617. package/dist/fhir/TriggerDefinition.js.map +0 -1
  618. package/dist/fhir/UsageContext.d.ts +0 -61
  619. package/dist/fhir/UsageContext.js +0 -7
  620. package/dist/fhir/UsageContext.js.map +0 -1
  621. package/dist/fhir/User.d.ts +0 -45
  622. package/dist/fhir/User.js +0 -7
  623. package/dist/fhir/User.js.map +0 -1
  624. package/dist/fhir/ValueSet.d.ts +0 -725
  625. package/dist/fhir/ValueSet.js +0 -7
  626. package/dist/fhir/ValueSet.js.map +0 -1
  627. package/dist/fhir/VerificationResult.d.ts +0 -340
  628. package/dist/fhir/VerificationResult.js +0 -7
  629. package/dist/fhir/VerificationResult.js.map +0 -1
  630. package/dist/fhir/VisionPrescription.d.ts +0 -264
  631. package/dist/fhir/VisionPrescription.js +0 -7
  632. package/dist/fhir/VisionPrescription.js.map +0 -1
  633. package/dist/fhir/index.d.ts +0 -196
  634. package/dist/fhir/index.js +0 -213
  635. package/dist/fhir/index.js.map +0 -1
  636. package/dist/fhirpath/functions.d.ts +0 -6
  637. package/dist/fhirpath/functions.js +0 -349
  638. package/dist/fhirpath/functions.js.map +0 -1
  639. package/dist/fhirpath/functions.test.d.ts +0 -1
  640. package/dist/fhirpath/functions.test.js +0 -162
  641. package/dist/fhirpath/functions.test.js.map +0 -1
  642. package/dist/fhirpath/index.d.ts +0 -2
  643. package/dist/fhirpath/index.js +0 -15
  644. package/dist/fhirpath/index.js.map +0 -1
  645. package/dist/fhirpath/parse.d.ts +0 -10
  646. package/dist/fhirpath/parse.js +0 -285
  647. package/dist/fhirpath/parse.js.map +0 -1
  648. package/dist/fhirpath/parse.test.d.ts +0 -1
  649. package/dist/fhirpath/parse.test.js +0 -239
  650. package/dist/fhirpath/parse.test.js.map +0 -1
  651. package/dist/fhirpath/tokenize.d.ts +0 -13
  652. package/dist/fhirpath/tokenize.js +0 -43
  653. package/dist/fhirpath/tokenize.js.map +0 -1
  654. package/dist/fhirpath/tokenize.test.d.ts +0 -1
  655. package/dist/fhirpath/tokenize.test.js +0 -69
  656. package/dist/fhirpath/tokenize.test.js.map +0 -1
  657. package/dist/fhirpath/utils.d.ts +0 -13
  658. package/dist/fhirpath/utils.js +0 -34
  659. package/dist/fhirpath/utils.js.map +0 -1
  660. package/dist/fhirpath/utils.test.d.ts +0 -1
  661. package/dist/fhirpath/utils.test.js +0 -22
  662. package/dist/fhirpath/utils.test.js.map +0 -1
  663. package/dist/format.js +0 -56
  664. package/dist/format.js.map +0 -1
  665. package/dist/format.test.d.ts +0 -1
  666. package/dist/format.test.js +0 -127
  667. package/dist/format.test.js.map +0 -1
  668. package/dist/index.js +0 -22
  669. package/dist/index.js.map +0 -1
  670. package/dist/index.test.d.ts +0 -1
  671. package/dist/index.test.js +0 -11
  672. package/dist/index.test.js.map +0 -1
  673. package/dist/jwt.d.ts +0 -5
  674. package/dist/jwt.js +0 -28
  675. package/dist/jwt.js.map +0 -1
  676. package/dist/outcomes.js +0 -140
  677. package/dist/outcomes.js.map +0 -1
  678. package/dist/outcomes.test.d.ts +0 -1
  679. package/dist/outcomes.test.js +0 -38
  680. package/dist/outcomes.test.js.map +0 -1
  681. package/dist/search.js +0 -120
  682. package/dist/search.js.map +0 -1
  683. package/dist/search.test.d.ts +0 -1
  684. package/dist/search.test.js +0 -72
  685. package/dist/search.test.js.map +0 -1
  686. package/dist/searchparams.js +0 -127
  687. package/dist/searchparams.js.map +0 -1
  688. package/dist/searchparams.test.d.ts +0 -1
  689. package/dist/searchparams.test.js +0 -129
  690. package/dist/searchparams.test.js.map +0 -1
  691. package/dist/storage.js +0 -91
  692. package/dist/storage.js.map +0 -1
  693. package/dist/storage.test.d.ts +0 -1
  694. package/dist/storage.test.js +0 -50
  695. package/dist/storage.test.js.map +0 -1
  696. package/dist/types.js +0 -169
  697. package/dist/types.js.map +0 -1
  698. package/dist/utils.js +0 -234
  699. package/dist/utils.js.map +0 -1
  700. package/dist/utils.test.d.ts +0 -1
  701. package/dist/utils.test.js +0 -148
  702. package/dist/utils.test.js.map +0 -1
@@ -1,382 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("crypto");
4
- const util_1 = require("util");
5
- const client_1 = require("./client");
6
- const utils_1 = require("./utils");
7
- const defaultOptions = {
8
- clientId: 'xyz',
9
- baseUrl: 'https://x/',
10
- fetch: mockFetch
11
- };
12
- const patientStructureDefinition = {
13
- resourceType: 'StructureDefinition',
14
- name: 'Patient',
15
- snapshot: {
16
- element: [
17
- {
18
- path: 'Patient.id',
19
- type: [{
20
- code: 'code'
21
- }]
22
- }
23
- ]
24
- }
25
- };
26
- const patientStructureDefinitionBundle = {
27
- resourceType: 'Bundle',
28
- entry: [{ resource: patientStructureDefinition }]
29
- };
30
- const patientSearchParameter = {
31
- resourceType: 'SearchParameter',
32
- id: 'Patient-name',
33
- code: 'name',
34
- name: 'name',
35
- expression: 'Patient.name'
36
- };
37
- const patientSearchParameterBundle = {
38
- resourceType: 'Bundle',
39
- entry: [{ resource: patientSearchParameter }]
40
- };
41
- let canRefresh = true;
42
- let tokenExpired = false;
43
- function mockFetch(url, options) {
44
- const { method } = options;
45
- let result;
46
- if (method === 'POST' && url.endsWith('auth/login')) {
47
- result = {
48
- profile: { resourceType: 'Practitioner', id: '123' },
49
- accessToken: '123',
50
- refreshToken: '456'
51
- };
52
- }
53
- else if (method === 'POST' && url.endsWith('auth/google')) {
54
- result = {
55
- profile: { resourceType: 'Practitioner', id: '123' },
56
- accessToken: '123',
57
- refreshToken: '456'
58
- };
59
- }
60
- else if (method === 'POST' && url.endsWith('auth/register')) {
61
- result = {
62
- profile: { resourceType: 'Practitioner', id: '123' },
63
- accessToken: '123',
64
- refreshToken: '456'
65
- };
66
- }
67
- else if (method === 'GET' && url.endsWith('Patient/123')) {
68
- result = {
69
- resourceType: 'Patient',
70
- id: '123'
71
- };
72
- }
73
- else if (method === 'POST' && url.endsWith('oauth2/token')) {
74
- if (canRefresh) {
75
- result = {
76
- access_token: 'header.' + window.btoa((0, utils_1.stringify)({ client_id: defaultOptions.clientId })) + '.signature',
77
- refresh_token: 'header.' + window.btoa((0, utils_1.stringify)({ client_id: defaultOptions.clientId })) + '.signature'
78
- };
79
- }
80
- else {
81
- result = {
82
- status: 400
83
- };
84
- }
85
- }
86
- else if (method === 'GET' && url.includes('expired')) {
87
- if (tokenExpired) {
88
- result = {
89
- status: 401
90
- };
91
- tokenExpired = false;
92
- }
93
- else {
94
- result = {
95
- ok: true
96
- };
97
- }
98
- }
99
- else if (method === 'GET' && url.includes('/fhir/R4/StructureDefinition?name:exact=Patient')) {
100
- result = patientStructureDefinitionBundle;
101
- }
102
- else if (method === 'GET' && url.includes('/fhir/R4/SearchParameter?_count=100&base=Patient')) {
103
- result = patientSearchParameterBundle;
104
- }
105
- else if (method === 'PUT' && url.endsWith('Patient/777')) {
106
- result = {
107
- status: 304 // Not modified
108
- };
109
- }
110
- else if (method === 'PUT' && url.endsWith('Patient/888')) {
111
- result = {
112
- status: 400,
113
- resourceType: 'OperationOutcome',
114
- id: 'bad-request'
115
- };
116
- }
117
- else if (method === 'GET' && url.endsWith('ValueSet/%24expand?url=system&filter=filter')) {
118
- result = {
119
- resourceType: 'ValueSet'
120
- };
121
- }
122
- const response = {
123
- request: {
124
- url,
125
- options
126
- },
127
- ...result
128
- };
129
- return Promise.resolve({
130
- ok: response.status === undefined,
131
- status: response.status,
132
- blob: () => Promise.resolve(response),
133
- json: () => Promise.resolve(response)
134
- });
135
- }
136
- describe('Client', () => {
137
- test('Constructor', () => {
138
- expect(() => new client_1.MedplumClient({
139
- clientId: '',
140
- baseUrl: 'https://example.com/',
141
- })).toThrow('Client ID cannot be empty');
142
- expect(() => new client_1.MedplumClient({
143
- clientId: 'xyz',
144
- baseUrl: 'x',
145
- })).toThrow('Base URL must start with http or https');
146
- expect(() => new client_1.MedplumClient({
147
- clientId: 'xyz',
148
- baseUrl: 'https://x',
149
- })).toThrow('Base URL must end with a trailing slash');
150
- expect(() => new client_1.MedplumClient({
151
- clientId: 'xyz',
152
- baseUrl: 'https://x/',
153
- })).toThrow();
154
- expect(() => new client_1.MedplumClient({
155
- clientId: 'xyz',
156
- baseUrl: 'https://x/',
157
- fetch: mockFetch
158
- })).not.toThrow();
159
- });
160
- test('Clear', () => {
161
- const client = new client_1.MedplumClient(defaultOptions);
162
- expect(() => client.clear()).not.toThrow();
163
- });
164
- test('SignOut', () => {
165
- const client = new client_1.MedplumClient(defaultOptions);
166
- expect(() => client.signOut()).not.toThrow();
167
- });
168
- test('SignIn', async () => {
169
- const client = new client_1.MedplumClient(defaultOptions);
170
- const result = await client.signIn('admin@medplum.com', 'admin', 'practitioner', 'openid');
171
- expect(result).not.toBeUndefined();
172
- expect(result.resourceType).toBe('Practitioner');
173
- });
174
- test('Sign in with Google', async () => {
175
- const client = new client_1.MedplumClient(defaultOptions);
176
- const result = await client.signInWithGoogle({
177
- clientId: 'google-client-id',
178
- credential: 'google-credential'
179
- });
180
- expect(result).not.toBeUndefined();
181
- expect(result.resourceType).toBe('Practitioner');
182
- });
183
- test('SignInWithRedirect', async () => {
184
- // Mock window.crypto
185
- Object.defineProperty(global.self, 'crypto', {
186
- value: {
187
- getRandomValues: (arr) => (0, crypto_1.randomBytes)(arr.length),
188
- subtle: {
189
- digest: () => 'test'
190
- }
191
- }
192
- });
193
- // Mock TextEncoder
194
- global.TextEncoder = util_1.TextEncoder;
195
- // Mock window.location.assign
196
- global.window = Object.create(window);
197
- Object.defineProperty(window, 'location', {
198
- value: {
199
- assign: jest.fn()
200
- },
201
- writable: true,
202
- });
203
- const client = new client_1.MedplumClient(defaultOptions);
204
- // First, test the initial reidrect
205
- const result1 = client.signInWithRedirect();
206
- expect(result1).toBeUndefined();
207
- // Mock response code
208
- Object.defineProperty(window, 'location', {
209
- value: {
210
- assign: jest.fn(),
211
- search: new URLSearchParams({ code: 'test-code' })
212
- },
213
- writable: true,
214
- });
215
- // Next, test processing the response code
216
- const result2 = client.signInWithRedirect();
217
- expect(result2).not.toBeUndefined();
218
- });
219
- test('SignOutWithRedirect', async () => {
220
- // Mock window.location.assign
221
- global.window = Object.create(window);
222
- Object.defineProperty(window, 'location', {
223
- value: {
224
- assign: jest.fn()
225
- },
226
- writable: true,
227
- });
228
- const client = new client_1.MedplumClient(defaultOptions);
229
- client.signOutWithRedirect();
230
- expect(window.location.assign).toBeCalled();
231
- });
232
- test('Register', async () => {
233
- const client = new client_1.MedplumClient(defaultOptions);
234
- const result = await client.register({
235
- email: `sally${(0, crypto_1.randomUUID)()}@example.com`,
236
- password: 'testtest',
237
- firstName: 'Sally',
238
- lastName: 'Foo',
239
- projectName: 'Sally World'
240
- });
241
- expect(result).not.toBeUndefined();
242
- expect(result.resourceType).toBe('Practitioner');
243
- });
244
- test('Read expired and refresh', async () => {
245
- tokenExpired = true;
246
- const client = new client_1.MedplumClient(defaultOptions);
247
- await client.signIn('admin@medplum.com', 'admin', 'practitioner', 'openid');
248
- const result = await client.get('expired');
249
- expect(result).not.toBeUndefined();
250
- });
251
- test('Read expired and refresh with unAuthenticated callback', async () => {
252
- tokenExpired = true;
253
- canRefresh = false;
254
- const onUnauthenticated = jest.fn();
255
- const client = new client_1.MedplumClient({ ...defaultOptions, onUnauthenticated });
256
- await client.signIn('admin@medplum.com', 'admin', 'practitioner', 'openid');
257
- const result = client.get('expired');
258
- await expect(result).rejects.toEqual('Failed to fetch tokens');
259
- expect(onUnauthenticated).toBeCalled();
260
- });
261
- test('Read resource', async () => {
262
- const client = new client_1.MedplumClient(defaultOptions);
263
- const result = await client.read('Patient', '123');
264
- expect(result).not.toBeUndefined();
265
- expect(result.request.url).toBe('https://x/fhir/R4/Patient/123');
266
- expect(result.resourceType).toBe('Patient');
267
- expect(result.id).toBe('123');
268
- });
269
- test('Read reference', async () => {
270
- const client = new client_1.MedplumClient(defaultOptions);
271
- const result = await client.readReference({ reference: 'Patient/123' });
272
- expect(result).not.toBeUndefined();
273
- expect(result.request.url).toBe('https://x/fhir/R4/Patient/123');
274
- expect(result.resourceType).toBe('Patient');
275
- expect(result.id).toBe('123');
276
- });
277
- test('Read empty reference', async () => {
278
- const client = new client_1.MedplumClient(defaultOptions);
279
- const result = client.readReference({});
280
- expect(result).rejects.toEqual('Missing reference');
281
- });
282
- test('Read cached resource', async () => {
283
- const client = new client_1.MedplumClient(defaultOptions);
284
- const result = await client.readCached('Patient', '123');
285
- expect(result).not.toBeUndefined();
286
- expect(result.request.url).toBe('https://x/fhir/R4/Patient/123');
287
- expect(result.resourceType).toBe('Patient');
288
- expect(result.id).toBe('123');
289
- });
290
- test('Read cached reference', async () => {
291
- const client = new client_1.MedplumClient(defaultOptions);
292
- const result = await client.readCachedReference({ reference: 'Patient/123' });
293
- expect(result).not.toBeUndefined();
294
- expect(result.request.url).toBe('https://x/fhir/R4/Patient/123');
295
- expect(result.resourceType).toBe('Patient');
296
- expect(result.id).toBe('123');
297
- });
298
- test('Read cached empty reference', async () => {
299
- const client = new client_1.MedplumClient(defaultOptions);
300
- const result = client.readCachedReference({});
301
- expect(result).rejects.toEqual('Missing reference');
302
- });
303
- test('Read history', async () => {
304
- const client = new client_1.MedplumClient(defaultOptions);
305
- const result = await client.readHistory('Patient', '123');
306
- expect(result).not.toBeUndefined();
307
- expect(result.request.url).toBe('https://x/fhir/R4/Patient/123/_history');
308
- });
309
- test('Read patient everything', async () => {
310
- const client = new client_1.MedplumClient(defaultOptions);
311
- const result = await client.readPatientEverything('123');
312
- expect(result).not.toBeUndefined();
313
- expect(result.request.url).toBe('https://x/fhir/R4/Patient/123/%24everything');
314
- });
315
- test('Create resource', async () => {
316
- const client = new client_1.MedplumClient(defaultOptions);
317
- const result = await client.create({ resourceType: 'Patient' });
318
- expect(result).not.toBeUndefined();
319
- expect(result.request.options.method).toBe('POST');
320
- expect(result.request.url).toBe('https://x/fhir/R4/Patient');
321
- });
322
- test('Update resource', async () => {
323
- const client = new client_1.MedplumClient(defaultOptions);
324
- const result = await client.update({ resourceType: 'Patient', id: '123' });
325
- expect(result).not.toBeUndefined();
326
- expect(result.request.options.method).toBe('PUT');
327
- expect(result.request.url).toBe('https://x/fhir/R4/Patient/123');
328
- });
329
- test('Not modified', async () => {
330
- const client = new client_1.MedplumClient(defaultOptions);
331
- const result = await client.update({ resourceType: 'Patient', id: '777' });
332
- expect(result).toBeUndefined();
333
- });
334
- test('Bad Request', async () => {
335
- const client = new client_1.MedplumClient(defaultOptions);
336
- const promise = client.update({ resourceType: 'Patient', id: '888' });
337
- expect(promise).rejects.toMatchObject({});
338
- });
339
- test('Read binary', async () => {
340
- const client = new client_1.MedplumClient(defaultOptions);
341
- const result = await client.readBinary('123');
342
- expect(result).not.toBeUndefined();
343
- expect(result.request.url).toBe('https://x/fhir/R4/Binary/123');
344
- });
345
- test('Create binary', async () => {
346
- const client = new client_1.MedplumClient(defaultOptions);
347
- const result = await client.createBinary('Hello world', 'text/plain');
348
- expect(result).not.toBeUndefined();
349
- expect(result.request.options.method).toBe('POST');
350
- expect(result.request.url).toBe('https://x/fhir/R4/Binary');
351
- });
352
- test('Get schema', async () => {
353
- const client = new client_1.MedplumClient(defaultOptions);
354
- const schema = await client.getTypeDefinition('Patient');
355
- expect(schema).not.toBeUndefined();
356
- expect(schema.types['Patient']).not.toBeUndefined();
357
- expect(schema.types['Patient'].searchParams).not.toBeUndefined();
358
- });
359
- test('Get cached schema', async () => {
360
- const client = new client_1.MedplumClient(defaultOptions);
361
- const schema = await client.getTypeDefinition('Patient');
362
- expect(schema).not.toBeUndefined();
363
- expect(schema.types['Patient']).not.toBeUndefined();
364
- const schema2 = await client.getTypeDefinition('Patient');
365
- expect(schema2).toEqual(schema);
366
- });
367
- test('Get schema for missing resource type', async () => {
368
- const client = new client_1.MedplumClient(defaultOptions);
369
- expect(client.getTypeDefinition('')).rejects.toMatch('Missing resourceType');
370
- });
371
- test('Get schema for bad resource type', async () => {
372
- const client = new client_1.MedplumClient(defaultOptions);
373
- expect(client.getTypeDefinition('DoesNotExist')).rejects.toMatchObject({});
374
- });
375
- test('Search ValueSet', async () => {
376
- const client = new client_1.MedplumClient(defaultOptions);
377
- const result = await client.searchValueSet('system', 'filter');
378
- expect(result).not.toBeUndefined();
379
- expect(result.resourceType).toBe('ValueSet');
380
- });
381
- });
382
- //# sourceMappingURL=client.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomBytes, randomUUID } from 'crypto';\nimport { TextEncoder } from 'util';\nimport { MedplumClient } from './client';\nimport { Bundle, SearchParameter, StructureDefinition } from './fhir';\nimport { stringify } from './utils';\n\nconst defaultOptions = {\n clientId: 'xyz',\n baseUrl: 'https://x/',\n fetch: mockFetch\n}\n\nconst patientStructureDefinition: StructureDefinition = {\n resourceType: 'StructureDefinition',\n name: 'Patient',\n snapshot: {\n element: [\n {\n path: 'Patient.id',\n type: [{\n code: 'code'\n }]\n }\n ]\n }\n};\n\nconst patientStructureDefinitionBundle: Bundle<StructureDefinition> = {\n resourceType: 'Bundle',\n entry: [{ resource: patientStructureDefinition }]\n};\n\nconst patientSearchParameter: SearchParameter = {\n resourceType: 'SearchParameter',\n id: 'Patient-name',\n code: 'name',\n name: 'name',\n expression: 'Patient.name'\n};\n\nconst patientSearchParameterBundle: Bundle<SearchParameter> = {\n resourceType: 'Bundle',\n entry: [{ resource: patientSearchParameter }]\n};\n\nlet canRefresh = true;\nlet tokenExpired = false;\n\nfunction mockFetch(url: string, options: any): Promise<any> {\n const { method } = options;\n\n let result: any;\n\n if (method === 'POST' && url.endsWith('auth/login')) {\n result = {\n profile: { resourceType: 'Practitioner', id: '123' },\n accessToken: '123',\n refreshToken: '456'\n };\n\n } else if (method === 'POST' && url.endsWith('auth/google')) {\n result = {\n profile: { resourceType: 'Practitioner', id: '123' },\n accessToken: '123',\n refreshToken: '456'\n };\n\n } else if (method === 'POST' && url.endsWith('auth/register')) {\n result = {\n profile: { resourceType: 'Practitioner', id: '123' },\n accessToken: '123',\n refreshToken: '456'\n };\n\n } else if (method === 'GET' && url.endsWith('Patient/123')) {\n result = {\n resourceType: 'Patient',\n id: '123'\n };\n\n } else if (method === 'POST' && url.endsWith('oauth2/token')) {\n if (canRefresh) {\n result = {\n access_token: 'header.' + window.btoa(stringify({ client_id: defaultOptions.clientId })) + '.signature',\n refresh_token: 'header.' + window.btoa(stringify({ client_id: defaultOptions.clientId })) + '.signature'\n };\n } else {\n result = {\n status: 400\n };\n }\n\n } else if (method === 'GET' && url.includes('expired')) {\n if (tokenExpired) {\n result = {\n status: 401\n };\n tokenExpired = false;\n } else {\n result = {\n ok: true\n };\n }\n\n } else if (method === 'GET' && url.includes('/fhir/R4/StructureDefinition?name:exact=Patient')) {\n result = patientStructureDefinitionBundle;\n\n } else if (method === 'GET' && url.includes('/fhir/R4/SearchParameter?_count=100&base=Patient')) {\n result = patientSearchParameterBundle;\n\n } else if (method === 'PUT' && url.endsWith('Patient/777')) {\n result = {\n status: 304 // Not modified\n };\n\n } else if (method === 'PUT' && url.endsWith('Patient/888')) {\n result = {\n status: 400,\n resourceType: 'OperationOutcome',\n id: 'bad-request'\n };\n\n } else if (method === 'GET' && url.endsWith('ValueSet/%24expand?url=system&filter=filter')) {\n result = {\n resourceType: 'ValueSet'\n };\n }\n\n const response: any = {\n request: {\n url,\n options\n },\n ...result\n };\n\n return Promise.resolve({\n ok: response.status === undefined,\n status: response.status,\n blob: () => Promise.resolve(response),\n json: () => Promise.resolve(response)\n });\n}\n\ndescribe('Client', () => {\n\n test('Constructor', () => {\n expect(() => new MedplumClient({\n clientId: '',\n baseUrl: 'https://example.com/',\n })).toThrow('Client ID cannot be empty');\n\n expect(() => new MedplumClient({\n clientId: 'xyz',\n baseUrl: 'x',\n })).toThrow('Base URL must start with http or https');\n\n expect(() => new MedplumClient({\n clientId: 'xyz',\n baseUrl: 'https://x',\n })).toThrow('Base URL must end with a trailing slash');\n\n expect(() => new MedplumClient({\n clientId: 'xyz',\n baseUrl: 'https://x/',\n })).toThrow();\n\n expect(() => new MedplumClient({\n clientId: 'xyz',\n baseUrl: 'https://x/',\n fetch: mockFetch\n })).not.toThrow();\n });\n\n test('Clear', () => {\n const client = new MedplumClient(defaultOptions);\n expect(() => client.clear()).not.toThrow();\n });\n\n test('SignOut', () => {\n const client = new MedplumClient(defaultOptions);\n expect(() => client.signOut()).not.toThrow();\n });\n\n test('SignIn', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.signIn('admin@medplum.com', 'admin', 'practitioner', 'openid');\n expect(result).not.toBeUndefined();\n expect(result.resourceType).toBe('Practitioner');\n });\n\n test('Sign in with Google', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.signInWithGoogle({\n clientId: 'google-client-id',\n credential: 'google-credential'\n });\n expect(result).not.toBeUndefined();\n expect(result.resourceType).toBe('Practitioner');\n });\n\n test('SignInWithRedirect', async () => {\n // Mock window.crypto\n Object.defineProperty(global.self, 'crypto', {\n value: {\n getRandomValues: (arr: Uint8Array) => randomBytes(arr.length),\n subtle: {\n digest: () => 'test'\n }\n }\n });\n\n // Mock TextEncoder\n global.TextEncoder = TextEncoder;\n\n // Mock window.location.assign\n global.window = Object.create(window);\n Object.defineProperty(window, 'location', {\n value: {\n assign: jest.fn()\n },\n writable: true,\n });\n\n const client = new MedplumClient(defaultOptions);\n\n // First, test the initial reidrect\n const result1 = client.signInWithRedirect();\n expect(result1).toBeUndefined();\n\n // Mock response code\n Object.defineProperty(window, 'location', {\n value: {\n assign: jest.fn(),\n search: new URLSearchParams({ code: 'test-code' })\n },\n writable: true,\n });\n\n // Next, test processing the response code\n const result2 = client.signInWithRedirect();\n expect(result2).not.toBeUndefined();\n });\n\n test('SignOutWithRedirect', async () => {\n // Mock window.location.assign\n global.window = Object.create(window);\n Object.defineProperty(window, 'location', {\n value: {\n assign: jest.fn()\n },\n writable: true,\n });\n\n const client = new MedplumClient(defaultOptions);\n client.signOutWithRedirect();\n expect(window.location.assign).toBeCalled();\n });\n\n test('Register', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.register({\n email: `sally${randomUUID()}@example.com`,\n password: 'testtest',\n firstName: 'Sally',\n lastName: 'Foo',\n projectName: 'Sally World'\n });\n expect(result).not.toBeUndefined();\n expect(result.resourceType).toBe('Practitioner');\n });\n\n test('Read expired and refresh', async () => {\n tokenExpired = true;\n\n const client = new MedplumClient(defaultOptions);\n await client.signIn('admin@medplum.com', 'admin', 'practitioner', 'openid');\n\n const result = await client.get('expired');\n expect(result).not.toBeUndefined();\n });\n\n test('Read expired and refresh with unAuthenticated callback', async () => {\n tokenExpired = true;\n canRefresh = false;\n\n const onUnauthenticated = jest.fn();\n const client = new MedplumClient({ ...defaultOptions, onUnauthenticated });\n await client.signIn('admin@medplum.com', 'admin', 'practitioner', 'openid');\n\n const result = client.get('expired');\n await expect(result).rejects.toEqual('Failed to fetch tokens');\n expect(onUnauthenticated).toBeCalled();\n });\n\n test('Read resource', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.read('Patient', '123');\n expect(result).not.toBeUndefined();\n expect((result as any).request.url).toBe('https://x/fhir/R4/Patient/123');\n expect(result.resourceType).toBe('Patient');\n expect(result.id).toBe('123');\n });\n\n test('Read reference', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.readReference({ reference: 'Patient/123' });\n expect(result).not.toBeUndefined();\n expect((result as any).request.url).toBe('https://x/fhir/R4/Patient/123');\n expect(result.resourceType).toBe('Patient');\n expect(result.id).toBe('123');\n });\n\n test('Read empty reference', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = client.readReference({});\n expect(result).rejects.toEqual('Missing reference');\n });\n\n test('Read cached resource', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.readCached('Patient', '123');\n expect(result).not.toBeUndefined();\n expect((result as any).request.url).toBe('https://x/fhir/R4/Patient/123');\n expect(result.resourceType).toBe('Patient');\n expect(result.id).toBe('123');\n });\n\n test('Read cached reference', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.readCachedReference({ reference: 'Patient/123' });\n expect(result).not.toBeUndefined();\n expect((result as any).request.url).toBe('https://x/fhir/R4/Patient/123');\n expect(result.resourceType).toBe('Patient');\n expect(result.id).toBe('123');\n });\n\n test('Read cached empty reference', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = client.readCachedReference({});\n expect(result).rejects.toEqual('Missing reference');\n });\n\n test('Read history', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.readHistory('Patient', '123');\n expect(result).not.toBeUndefined();\n expect((result as any).request.url).toBe('https://x/fhir/R4/Patient/123/_history');\n });\n\n test('Read patient everything', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.readPatientEverything('123');\n expect(result).not.toBeUndefined();\n expect((result as any).request.url).toBe('https://x/fhir/R4/Patient/123/%24everything');\n });\n\n test('Create resource', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.create({ resourceType: 'Patient' });\n expect(result).not.toBeUndefined();\n expect((result as any).request.options.method).toBe('POST');\n expect((result as any).request.url).toBe('https://x/fhir/R4/Patient');\n });\n\n test('Update resource', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.update({ resourceType: 'Patient', id: '123' });\n expect(result).not.toBeUndefined();\n expect((result as any).request.options.method).toBe('PUT');\n expect((result as any).request.url).toBe('https://x/fhir/R4/Patient/123');\n });\n\n test('Not modified', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.update({ resourceType: 'Patient', id: '777' });\n expect(result).toBeUndefined();\n });\n\n test('Bad Request', async () => {\n const client = new MedplumClient(defaultOptions);\n const promise = client.update({ resourceType: 'Patient', id: '888' });\n expect(promise).rejects.toMatchObject({});\n });\n\n test('Read binary', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.readBinary('123');\n expect(result).not.toBeUndefined();\n expect((result as any).request.url).toBe('https://x/fhir/R4/Binary/123');\n });\n\n test('Create binary', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.createBinary('Hello world', 'text/plain');\n expect(result).not.toBeUndefined();\n expect((result as any).request.options.method).toBe('POST');\n expect((result as any).request.url).toBe('https://x/fhir/R4/Binary');\n });\n\n test('Get schema', async () => {\n const client = new MedplumClient(defaultOptions);\n const schema = await client.getTypeDefinition('Patient');\n expect(schema).not.toBeUndefined();\n expect(schema.types['Patient']).not.toBeUndefined();\n expect(schema.types['Patient'].searchParams).not.toBeUndefined();\n });\n\n test('Get cached schema', async () => {\n const client = new MedplumClient(defaultOptions);\n const schema = await client.getTypeDefinition('Patient');\n expect(schema).not.toBeUndefined();\n expect(schema.types['Patient']).not.toBeUndefined();\n\n const schema2 = await client.getTypeDefinition('Patient');\n expect(schema2).toEqual(schema);\n });\n\n test('Get schema for missing resource type', async () => {\n const client = new MedplumClient(defaultOptions);\n expect(client.getTypeDefinition('')).rejects.toMatch('Missing resourceType');\n });\n\n test('Get schema for bad resource type', async () => {\n const client = new MedplumClient(defaultOptions);\n expect(client.getTypeDefinition('DoesNotExist')).rejects.toMatchObject({});\n });\n\n test('Search ValueSet', async () => {\n const client = new MedplumClient(defaultOptions);\n const result = await client.searchValueSet('system', 'filter');\n expect(result).not.toBeUndefined();\n expect(result.resourceType).toBe('ValueSet');\n });\n\n});\n"]}
package/dist/crypto.js DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encryptSHA256 = exports.getRandomString = void 0;
4
- const utils_1 = require("./utils");
5
- /**
6
- * Returns a cryptographically secure random string.
7
- */
8
- function getRandomString() {
9
- const randomItems = new Uint32Array(28);
10
- crypto.getRandomValues(randomItems);
11
- return (0, utils_1.arrayBufferToHex)(randomItems.buffer);
12
- }
13
- exports.getRandomString = getRandomString;
14
- /**
15
- * Encrypts a string with SHA256 encryption.
16
- * @param str
17
- */
18
- async function encryptSHA256(str) {
19
- return crypto.subtle.digest('SHA-256', new TextEncoder().encode(str));
20
- }
21
- exports.encryptSHA256 = encryptSHA256;
22
- //# sourceMappingURL=crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAE3C;;GAEG;AACH,SAAgB,eAAe;IAC7B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,IAAA,wBAAgB,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAJD,0CAIC;AAED;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAFD,sCAEC","sourcesContent":["import { arrayBufferToHex } from './utils';\n\n/**\n * Returns a cryptographically secure random string.\n */\nexport function getRandomString(): string {\n const randomItems = new Uint32Array(28);\n crypto.getRandomValues(randomItems);\n return arrayBufferToHex(randomItems.buffer);\n}\n\n/**\n * Encrypts a string with SHA256 encryption.\n * @param str\n */\nexport async function encryptSHA256(str: string): Promise<ArrayBuffer> {\n return crypto.subtle.digest('SHA-256', new TextEncoder().encode(str));\n}\n"]}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- /*
3
- * Based on: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.EventTarget = void 0;
7
- class EventTarget {
8
- listeners;
9
- constructor() {
10
- this.listeners = {};
11
- }
12
- addEventListener(type, callback) {
13
- if (!this.listeners[type]) {
14
- this.listeners[type] = [];
15
- }
16
- this.listeners[type].push(callback);
17
- }
18
- removeEventListeneer(type, callback) {
19
- const array = this.listeners[type];
20
- if (!array) {
21
- return;
22
- }
23
- for (let i = 0; i < array.length; i++) {
24
- if (array[i] === callback) {
25
- array.splice(i, 1);
26
- return;
27
- }
28
- }
29
- }
30
- dispatchEvent(event) {
31
- const array = this.listeners[event.type];
32
- if (array) {
33
- array.forEach(listener => listener.call(this, event));
34
- }
35
- return !event.defaultPrevented;
36
- }
37
- }
38
- exports.EventTarget = EventTarget;
39
- //# sourceMappingURL=eventtarget.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventtarget.js","sourceRoot":"","sources":["../src/eventtarget.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AASH,MAAa,WAAW;IACL,SAAS,CAAkC;IAE5D;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,QAAuB;QACpD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,oBAAoB,CAAC,IAAY,EAAE,QAAuB;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;SACR;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACzB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnB,OAAO;aACR;SACF;IACH,CAAC;IAED,aAAa,CAAC,KAAY;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SACvD;QACD,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACjC,CAAC;CACF;AAlCD,kCAkCC","sourcesContent":["/*\n * Based on: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n */\n\ninterface Event {\n type: string;\n defaultPrevented?: boolean;\n}\n\ntype EventListener = (e: Event) => void;\n\nexport class EventTarget {\n private readonly listeners: Record<string, EventListener[]>;\n\n constructor() {\n this.listeners = {};\n }\n\n addEventListener(type: string, callback: EventListener): void {\n if (!this.listeners[type]) {\n this.listeners[type] = [];\n }\n this.listeners[type].push(callback);\n }\n\n removeEventListeneer(type: string, callback: EventListener): void {\n const array = this.listeners[type];\n if (!array) {\n return;\n }\n for (let i = 0; i < array.length; i++) {\n if (array[i] === callback) {\n array.splice(i, 1);\n return;\n }\n }\n }\n\n dispatchEvent(event: Event): boolean {\n const array = this.listeners[event.type];\n if (array) {\n array.forEach(listener => listener.call(this, event));\n }\n return !event.defaultPrevented;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const eventtarget_1 = require("./eventtarget");
4
- describe('EventTarget', () => {
5
- test('No listeners', () => {
6
- const target = new eventtarget_1.EventTarget();
7
- expect(() => target.dispatchEvent({ type: 'test' })).not.toThrow();
8
- });
9
- test('Add event listener', () => {
10
- const myCallback = jest.fn();
11
- const target = new eventtarget_1.EventTarget();
12
- target.addEventListener('test', myCallback);
13
- target.dispatchEvent({ type: 'test' });
14
- expect(myCallback).toBeCalled();
15
- });
16
- test('Add multiple event listeners', () => {
17
- const myCallback1 = jest.fn();
18
- const myCallback2 = jest.fn();
19
- const target = new eventtarget_1.EventTarget();
20
- target.addEventListener('test', myCallback1);
21
- target.addEventListener('test', myCallback2);
22
- target.dispatchEvent({ type: 'test' });
23
- expect(myCallback1).toBeCalled();
24
- expect(myCallback2).toBeCalled();
25
- });
26
- test('Remove event listener', () => {
27
- const myCallback = jest.fn();
28
- const target = new eventtarget_1.EventTarget();
29
- target.addEventListener('test', myCallback);
30
- target.removeEventListeneer('test', myCallback);
31
- target.dispatchEvent({ type: 'test' });
32
- expect(myCallback).not.toBeCalled();
33
- });
34
- test('Remove event listener not found', () => {
35
- const myCallback = jest.fn();
36
- const target = new eventtarget_1.EventTarget();
37
- target.removeEventListeneer('test', jest.fn());
38
- target.addEventListener('test', myCallback);
39
- target.removeEventListeneer('test', jest.fn());
40
- expect(() => target.dispatchEvent({ type: 'test' })).not.toThrow();
41
- expect(myCallback).toBeCalled();
42
- });
43
- });
44
- //# sourceMappingURL=eventtarget.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventtarget.test.js","sourceRoot":"","sources":["../src/eventtarget.test.ts"],"names":[],"mappings":";;AAAA,+CAA4C;AAE5C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAE3B,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QACjC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QACjC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QACjC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5C,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QACjC,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5C,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACnE,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC","sourcesContent":["import { EventTarget } from './eventtarget';\n\ndescribe('EventTarget', () => {\n\n test('No listeners', () => {\n const target = new EventTarget();\n expect(() => target.dispatchEvent({ type: 'test' })).not.toThrow();\n });\n\n test('Add event listener', () => {\n const myCallback = jest.fn();\n const target = new EventTarget();\n target.addEventListener('test', myCallback);\n target.dispatchEvent({ type: 'test' });\n expect(myCallback).toBeCalled();\n });\n\n test('Add multiple event listeners', () => {\n const myCallback1 = jest.fn();\n const myCallback2 = jest.fn();\n const target = new EventTarget();\n target.addEventListener('test', myCallback1);\n target.addEventListener('test', myCallback2);\n target.dispatchEvent({ type: 'test' });\n expect(myCallback1).toBeCalled();\n expect(myCallback2).toBeCalled();\n });\n\n test('Remove event listener', () => {\n const myCallback = jest.fn();\n const target = new EventTarget();\n target.addEventListener('test', myCallback);\n target.removeEventListeneer('test', myCallback);\n target.dispatchEvent({ type: 'test' });\n expect(myCallback).not.toBeCalled();\n });\n\n test('Remove event listener not found', () => {\n const myCallback = jest.fn();\n const target = new EventTarget();\n target.removeEventListeneer('test', jest.fn());\n target.addEventListener('test', myCallback);\n target.removeEventListeneer('test', jest.fn());\n expect(() => target.dispatchEvent({ type: 'test' })).not.toThrow();\n expect(myCallback).toBeCalled();\n });\n\n});"]}
@@ -1,75 +0,0 @@
1
- import { Meta } from './Meta';
2
- import { Reference } from './Reference';
3
- /**
4
- * Access Policy for user or user group that defines how entities can or
5
- * cannot access resources.
6
- */
7
- export interface AccessPolicy {
8
- /**
9
- * This is a AccessPolicy resource
10
- */
11
- readonly resourceType: 'AccessPolicy';
12
- /**
13
- * The logical id of the resource, as used in the URL for the resource.
14
- * Once assigned, this value never changes.
15
- */
16
- readonly id?: string;
17
- /**
18
- * The metadata about the resource. This is content that is maintained by
19
- * the infrastructure. Changes to the content might not always be
20
- * associated with version changes to the resource.
21
- */
22
- readonly meta?: Meta;
23
- /**
24
- * A reference to a set of rules that were followed when the resource was
25
- * constructed, and which must be understood when processing the content.
26
- * Often, this is a reference to an implementation guide that defines the
27
- * special rules along with other profiles etc.
28
- */
29
- readonly implicitRules?: string;
30
- /**
31
- * The base language in which the resource is written.
32
- */
33
- readonly language?: string;
34
- /**
35
- * A name associated with the AccessPolicy.
36
- */
37
- readonly name?: string;
38
- /**
39
- * Optional compartment for newly created resources. If this field is
40
- * set, any resources created by a user with this access policy will
41
- * automatically be included in the specified compartment.
42
- */
43
- readonly compartment?: Reference;
44
- /**
45
- * Access details for a resource type.
46
- */
47
- readonly resource?: AccessPolicyResource[];
48
- }
49
- /**
50
- * Access details for a resource type.
51
- */
52
- export interface AccessPolicyResource {
53
- /**
54
- * The resource type.
55
- */
56
- readonly resourceType?: string;
57
- /**
58
- * Optional compartment restriction for the resource type.
59
- */
60
- readonly compartment?: Reference;
61
- /**
62
- * Optional flag to indicate that the resource type is read-only.
63
- */
64
- readonly readonly?: boolean;
65
- /**
66
- * Optional list of hidden fields. Hidden fields are not readable or
67
- * writeable.
68
- */
69
- readonly hiddenFields?: string[];
70
- /**
71
- * Optional list of read-only fields. Read-only fields are readable but
72
- * not writeable.
73
- */
74
- readonly readonlyFields?: string[];
75
- }