@icure/api 4.0.91 → 4.0.94

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 (398) hide show
  1. package/icc-api/api/IccAccesslogApi.js.map +1 -1
  2. package/icc-api/api/IccAgendaApi.js.map +1 -1
  3. package/icc-api/api/IccAnonymousAccessApi.js.map +1 -1
  4. package/icc-api/api/IccApplicationsettingsApi.js.map +1 -1
  5. package/icc-api/api/IccArticleApi.js.map +1 -1
  6. package/icc-api/api/IccAuthApi.js.map +1 -1
  7. package/icc-api/api/IccBeefactApi.js.map +1 -1
  8. package/icc-api/api/IccBekmehrApi.js.map +1 -1
  9. package/icc-api/api/IccBemikronoApi.js.map +1 -1
  10. package/icc-api/api/IccBeresultexportApi.js.map +1 -1
  11. package/icc-api/api/IccBeresultimportApi.js.map +1 -1
  12. package/icc-api/api/IccBesamv2Api.js.map +1 -1
  13. package/icc-api/api/IccCalendarItemApi.js.map +1 -1
  14. package/icc-api/api/IccCalendarItemTypeApi.js.map +1 -1
  15. package/icc-api/api/IccClassificationApi.js.map +1 -1
  16. package/icc-api/api/IccClassificationTemplateApi.js.map +1 -1
  17. package/icc-api/api/IccCodeApi.js.map +1 -1
  18. package/icc-api/api/IccContactApi.js.map +1 -1
  19. package/icc-api/api/IccDeviceApi.js.map +1 -1
  20. package/icc-api/api/IccDoctemplateApi.js.map +1 -1
  21. package/icc-api/api/IccDocumentApi.js.map +1 -1
  22. package/icc-api/api/IccDocumentTemplateApi.js.map +1 -1
  23. package/icc-api/api/IccEntityrefApi.js.map +1 -1
  24. package/icc-api/api/IccEntitytemplateApi.js.map +1 -1
  25. package/icc-api/api/IccFormApi.js.map +1 -1
  26. package/icc-api/api/IccFrontendmigrationApi.js.map +1 -1
  27. package/icc-api/api/IccGroupApi.js.map +1 -1
  28. package/icc-api/api/IccHcpartyApi.js.map +1 -1
  29. package/icc-api/api/IccHealthElementApi.js.map +1 -1
  30. package/icc-api/api/IccHealthcarePartyApi.js.map +1 -1
  31. package/icc-api/api/IccHelementApi.js.map +1 -1
  32. package/icc-api/api/IccIcureApi.js.map +1 -1
  33. package/icc-api/api/IccInsuranceApi.js.map +1 -1
  34. package/icc-api/api/IccInvoiceApi.js.map +1 -1
  35. package/icc-api/api/IccKeywordApi.js.map +1 -1
  36. package/icc-api/api/IccMedexApi.js.map +1 -1
  37. package/icc-api/api/IccMedicallocationApi.js.map +1 -1
  38. package/icc-api/api/IccMessageApi.js.map +1 -1
  39. package/icc-api/api/IccPatientApi.js.map +1 -1
  40. package/icc-api/api/IccPermissionApi.js.map +1 -1
  41. package/icc-api/api/IccPlaceApi.js.map +1 -1
  42. package/icc-api/api/IccPubsubApi.js.map +1 -1
  43. package/icc-api/api/IccReceiptApi.js.map +1 -1
  44. package/icc-api/api/IccReplicationApi.js.map +1 -1
  45. package/icc-api/api/IccTarificationApi.js.map +1 -1
  46. package/icc-api/api/IccTimeTableApi.js.map +1 -1
  47. package/icc-api/api/IccTmpApi.js.map +1 -1
  48. package/icc-api/api/IccUserApi.js.map +1 -1
  49. package/icc-api/api/XHR.js +1 -1
  50. package/icc-api/api/XHR.js.map +1 -1
  51. package/icc-api/iccApi.js.map +1 -1
  52. package/icc-api/index.js.map +1 -1
  53. package/icc-api/model/AbstractFilterCode.js.map +1 -1
  54. package/icc-api/model/AbstractFilterContact.js.map +1 -1
  55. package/icc-api/model/AbstractFilterDevice.js.map +1 -1
  56. package/icc-api/model/AbstractFilterHealthElement.js.map +1 -1
  57. package/icc-api/model/AbstractFilterHealthcareParty.js.map +1 -1
  58. package/icc-api/model/AbstractFilterInvoice.js.map +1 -1
  59. package/icc-api/model/AbstractFilterPatient.js.map +1 -1
  60. package/icc-api/model/AbstractFilterService.js.map +1 -1
  61. package/icc-api/model/AbstractFilterUser.js.map +1 -1
  62. package/icc-api/model/AccessLog.js.map +1 -1
  63. package/icc-api/model/Address.js.map +1 -1
  64. package/icc-api/model/AdministrationQuantity.js.map +1 -1
  65. package/icc-api/model/Agenda.js.map +1 -1
  66. package/icc-api/model/AgreementAppendix.js.map +1 -1
  67. package/icc-api/model/Amp.js.map +1 -1
  68. package/icc-api/model/AmpComponent.js.map +1 -1
  69. package/icc-api/model/Ampp.js.map +1 -1
  70. package/icc-api/model/AmppComponent.js.map +1 -1
  71. package/icc-api/model/Annotation.js.map +1 -1
  72. package/icc-api/model/ApplicationSettings.js.map +1 -1
  73. package/icc-api/model/Appointment.js.map +1 -1
  74. package/icc-api/model/AppointmentImport.js.map +1 -1
  75. package/icc-api/model/Article.js.map +1 -1
  76. package/icc-api/model/Atc.js.map +1 -1
  77. package/icc-api/model/Attachment.js.map +1 -1
  78. package/icc-api/model/Authentication.js.map +1 -1
  79. package/icc-api/model/AuthenticationResponse.js.map +1 -1
  80. package/icc-api/model/AuthenticationToken.js.map +1 -1
  81. package/icc-api/model/Basic.js.map +1 -1
  82. package/icc-api/model/Body.js.map +1 -1
  83. package/icc-api/model/Body1.js.map +1 -1
  84. package/icc-api/model/Body2.js.map +1 -1
  85. package/icc-api/model/Body3.js.map +1 -1
  86. package/icc-api/model/ByteArray.js.map +1 -1
  87. package/icc-api/model/CalendarItem.js.map +1 -1
  88. package/icc-api/model/CalendarItemTag.js.map +1 -1
  89. package/icc-api/model/CalendarItemType.js.map +1 -1
  90. package/icc-api/model/CareTeamMember.js.map +1 -1
  91. package/icc-api/model/CareTeamMembership.js.map +1 -1
  92. package/icc-api/model/CheckSMFPatientResult.js.map +1 -1
  93. package/icc-api/model/Classification.js.map +1 -1
  94. package/icc-api/model/ClassificationTemplate.js.map +1 -1
  95. package/icc-api/model/Code.js.map +1 -1
  96. package/icc-api/model/CodeStub.js.map +1 -1
  97. package/icc-api/model/CodeType.js.map +1 -1
  98. package/icc-api/model/CommentedClassification.js.map +1 -1
  99. package/icc-api/model/Commercialization.js.map +1 -1
  100. package/icc-api/model/Company.js.map +1 -1
  101. package/icc-api/model/Contact.js.map +1 -1
  102. package/icc-api/model/Content.js.map +1 -1
  103. package/icc-api/model/Copayment.js.map +1 -1
  104. package/icc-api/model/Data.js.map +1 -1
  105. package/icc-api/model/DatabaseInitialisation.js.map +1 -1
  106. package/icc-api/model/DatabaseSynchronization.js.map +1 -1
  107. package/icc-api/model/Delegation.js.map +1 -1
  108. package/icc-api/model/Device.js.map +1 -1
  109. package/icc-api/model/DeviceType.js.map +1 -1
  110. package/icc-api/model/DiaryNoteExportInfo.js.map +1 -1
  111. package/icc-api/model/Dmpp.js.map +1 -1
  112. package/icc-api/model/DocIdentifier.js.map +1 -1
  113. package/icc-api/model/Document.js.map +1 -1
  114. package/icc-api/model/DocumentGroup.js.map +1 -1
  115. package/icc-api/model/DocumentTemplate.js.map +1 -1
  116. package/icc-api/model/Duration.js.map +1 -1
  117. package/icc-api/model/EIDItem.js.map +1 -1
  118. package/icc-api/model/Editor.js.map +1 -1
  119. package/icc-api/model/EfactInvoice.js.map +1 -1
  120. package/icc-api/model/EmailOrSmsMessage.js.map +1 -1
  121. package/icc-api/model/EmailTemplate.js.map +1 -1
  122. package/icc-api/model/Employer.js.map +1 -1
  123. package/icc-api/model/EmploymentInfo.js.map +1 -1
  124. package/icc-api/model/EntityReference.js.map +1 -1
  125. package/icc-api/model/EntityTemplate.js.map +1 -1
  126. package/icc-api/model/Episode.js.map +1 -1
  127. package/icc-api/model/FilterChainCode.js.map +1 -1
  128. package/icc-api/model/FilterChainContact.js.map +1 -1
  129. package/icc-api/model/FilterChainDevice.js.map +1 -1
  130. package/icc-api/model/FilterChainHealthElement.js.map +1 -1
  131. package/icc-api/model/FilterChainHealthcareParty.js.map +1 -1
  132. package/icc-api/model/FilterChainInvoice.js.map +1 -1
  133. package/icc-api/model/FilterChainPatient.js.map +1 -1
  134. package/icc-api/model/FilterChainService.js.map +1 -1
  135. package/icc-api/model/FilterChainUser.js.map +1 -1
  136. package/icc-api/model/FinancialInstitutionInformation.js.map +1 -1
  137. package/icc-api/model/FlatRateTarification.js.map +1 -1
  138. package/icc-api/model/FlowItem.js.map +1 -1
  139. package/icc-api/model/Form.js.map +1 -1
  140. package/icc-api/model/FormColumn.js.map +1 -1
  141. package/icc-api/model/FormDataOption.js.map +1 -1
  142. package/icc-api/model/FormLayout.js.map +1 -1
  143. package/icc-api/model/FormLayoutData.js.map +1 -1
  144. package/icc-api/model/FormPlanning.js.map +1 -1
  145. package/icc-api/model/FormSection.js.map +1 -1
  146. package/icc-api/model/FormTemplate.js.map +1 -1
  147. package/icc-api/model/FormTemplateLayout.js.map +1 -1
  148. package/icc-api/model/Formula.js.map +1 -1
  149. package/icc-api/model/FrontEndMigration.js.map +1 -1
  150. package/icc-api/model/Group.js.map +1 -1
  151. package/icc-api/model/GuiCode.js.map +1 -1
  152. package/icc-api/model/GuiCodeType.js.map +1 -1
  153. package/icc-api/model/HealthElement.js.map +1 -1
  154. package/icc-api/model/HealthcareParty.js.map +1 -1
  155. package/icc-api/model/HealthcarePartyHistoryStatus.js.map +1 -1
  156. package/icc-api/model/IcureStub.js.map +1 -1
  157. package/icc-api/model/IdWithRev.js.map +1 -1
  158. package/icc-api/model/Identifier.js.map +1 -1
  159. package/icc-api/model/IdentityDocumentReader.js.map +1 -1
  160. package/icc-api/model/ImportMapping.js.map +1 -1
  161. package/icc-api/model/ImportResult.js.map +1 -1
  162. package/icc-api/model/IndexedIdentifier.js.map +1 -1
  163. package/icc-api/model/IndexingInfo.js.map +1 -1
  164. package/icc-api/model/Ingredient.js.map +1 -1
  165. package/icc-api/model/Insurability.js.map +1 -1
  166. package/icc-api/model/Insurance.js.map +1 -1
  167. package/icc-api/model/Invoice.js.map +1 -1
  168. package/icc-api/model/InvoiceItem.js.map +1 -1
  169. package/icc-api/model/InvoiceSender.js.map +1 -1
  170. package/icc-api/model/InvoicesBatch.js.map +1 -1
  171. package/icc-api/model/InvoicingCode.js.map +1 -1
  172. package/icc-api/model/Keyword.js.map +1 -1
  173. package/icc-api/model/KeywordSubword.js.map +1 -1
  174. package/icc-api/model/LabelledOccurence.js.map +1 -1
  175. package/icc-api/model/LetterValue.js.map +1 -1
  176. package/icc-api/model/ListOfIds.js.map +1 -1
  177. package/icc-api/model/ListOfProperties.js.map +1 -1
  178. package/icc-api/model/LoginCredentials.js.map +1 -1
  179. package/icc-api/model/MapOfIds.js.map +1 -1
  180. package/icc-api/model/Measure.js.map +1 -1
  181. package/icc-api/model/MedexInfo.js.map +1 -1
  182. package/icc-api/model/MedicalHouseContract.js.map +1 -1
  183. package/icc-api/model/MedicalLocation.js.map +1 -1
  184. package/icc-api/model/Medication.js.map +1 -1
  185. package/icc-api/model/MedicationSchemeExportInfo.js.map +1 -1
  186. package/icc-api/model/Medicinalproduct.js.map +1 -1
  187. package/icc-api/model/Message.js.map +1 -1
  188. package/icc-api/model/MessageReadStatus.js.map +1 -1
  189. package/icc-api/model/MessageWithBatch.js.map +1 -1
  190. package/icc-api/model/MessagesReadStatusUpdate.js.map +1 -1
  191. package/icc-api/model/MikronoAppointmentTypeRest.js.map +1 -1
  192. package/icc-api/model/MikronoCredentials.js.map +1 -1
  193. package/icc-api/model/MimeAttachment.js.map +1 -1
  194. package/icc-api/model/ModelHelper.js +1 -1
  195. package/icc-api/model/ModelHelper.js.map +1 -1
  196. package/icc-api/model/Nmp.js.map +1 -1
  197. package/icc-api/model/NoGenericPrescriptionReason.js.map +1 -1
  198. package/icc-api/model/NoSwitchReason.js.map +1 -1
  199. package/icc-api/model/NumeratorRange.js.map +1 -1
  200. package/icc-api/model/PackagingType.js.map +1 -1
  201. package/icc-api/model/PaginatedDocumentKeyIdPairObject.js.map +1 -1
  202. package/icc-api/model/PaginatedListAccessLog.js.map +1 -1
  203. package/icc-api/model/PaginatedListAmp.js.map +1 -1
  204. package/icc-api/model/PaginatedListClassification.js.map +1 -1
  205. package/icc-api/model/PaginatedListClassificationTemplate.js.map +1 -1
  206. package/icc-api/model/PaginatedListCode.js.map +1 -1
  207. package/icc-api/model/PaginatedListContact.js.map +1 -1
  208. package/icc-api/model/PaginatedListDevice.js.map +1 -1
  209. package/icc-api/model/PaginatedListDocument.js.map +1 -1
  210. package/icc-api/model/PaginatedListEntityTemplate.js.map +1 -1
  211. package/icc-api/model/PaginatedListForm.js.map +1 -1
  212. package/icc-api/model/PaginatedListHealthElement.js.map +1 -1
  213. package/icc-api/model/PaginatedListHealthcareParty.js.map +1 -1
  214. package/icc-api/model/PaginatedListInvoice.js.map +1 -1
  215. package/icc-api/model/PaginatedListMessage.js.map +1 -1
  216. package/icc-api/model/PaginatedListNmp.js.map +1 -1
  217. package/icc-api/model/PaginatedListPatient.js.map +1 -1
  218. package/icc-api/model/PaginatedListService.js.map +1 -1
  219. package/icc-api/model/PaginatedListString.js.map +1 -1
  220. package/icc-api/model/PaginatedListTarification.js.map +1 -1
  221. package/icc-api/model/PaginatedListUser.js.map +1 -1
  222. package/icc-api/model/PaginatedListVmp.js.map +1 -1
  223. package/icc-api/model/PaginatedListVmpGroup.js.map +1 -1
  224. package/icc-api/model/ParagraphAgreement.js.map +1 -1
  225. package/icc-api/model/Partnership.js.map +1 -1
  226. package/icc-api/model/Patient.js.map +1 -1
  227. package/icc-api/model/PatientByHcPartyGenderEducationProfession.js.map +1 -1
  228. package/icc-api/model/PatientHealthCareParty.js.map +1 -1
  229. package/icc-api/model/PatientRegistrationSuccess.js.map +1 -1
  230. package/icc-api/model/Payment.js.map +1 -1
  231. package/icc-api/model/Periodicity.js.map +1 -1
  232. package/icc-api/model/Permission.js.map +1 -1
  233. package/icc-api/model/PermissionCriterion.js.map +1 -1
  234. package/icc-api/model/PermissionItem.js.map +1 -1
  235. package/icc-api/model/PersonName.js.map +1 -1
  236. package/icc-api/model/PharmaceuticalForm.js.map +1 -1
  237. package/icc-api/model/PharmaceuticalFormStub.js.map +1 -1
  238. package/icc-api/model/Place.js.map +1 -1
  239. package/icc-api/model/PlanOfAction.js.map +1 -1
  240. package/icc-api/model/Predicate.js.map +1 -1
  241. package/icc-api/model/Pricing.js.map +1 -1
  242. package/icc-api/model/PropertyStub.js.map +1 -1
  243. package/icc-api/model/PropertyTypeStub.js.map +1 -1
  244. package/icc-api/model/PublicKey.js.map +1 -1
  245. package/icc-api/model/Quantity.js.map +1 -1
  246. package/icc-api/model/Receipt.js.map +1 -1
  247. package/icc-api/model/ReferralPeriod.js.map +1 -1
  248. package/icc-api/model/RegimenItem.js.map +1 -1
  249. package/icc-api/model/RegistrationInformation.js.map +1 -1
  250. package/icc-api/model/RegistrationSuccess.js.map +1 -1
  251. package/icc-api/model/Reimbursement.js.map +1 -1
  252. package/icc-api/model/ReimbursementCriterion.js.map +1 -1
  253. package/icc-api/model/Remote.js.map +1 -1
  254. package/icc-api/model/RemoteAuthentication.js.map +1 -1
  255. package/icc-api/model/Renewal.js.map +1 -1
  256. package/icc-api/model/ReplicateCommand.js.map +1 -1
  257. package/icc-api/model/Replication.js.map +1 -1
  258. package/icc-api/model/ReplicationInfo.js.map +1 -1
  259. package/icc-api/model/ReplicationStats.js.map +1 -1
  260. package/icc-api/model/ReplicatorDocument.js.map +1 -1
  261. package/icc-api/model/ReplicatorResponse.js.map +1 -1
  262. package/icc-api/model/ResultInfo.js.map +1 -1
  263. package/icc-api/model/RevisionInfo.js.map +1 -1
  264. package/icc-api/model/Right.js.map +1 -1
  265. package/icc-api/model/RouteOfAdministration.js.map +1 -1
  266. package/icc-api/model/SamText.js.map +1 -1
  267. package/icc-api/model/SamVersion.js.map +1 -1
  268. package/icc-api/model/SchoolingInfo.js.map +1 -1
  269. package/icc-api/model/Section.js.map +1 -1
  270. package/icc-api/model/Service.js.map +1 -1
  271. package/icc-api/model/ServiceLink.js.map +1 -1
  272. package/icc-api/model/SoftwareMedicalFileExport.js.map +1 -1
  273. package/icc-api/model/StandardSubstance.js.map +1 -1
  274. package/icc-api/model/StrengthRange.js.map +1 -1
  275. package/icc-api/model/StructureElement.js.map +1 -1
  276. package/icc-api/model/SubContact.js.map +1 -1
  277. package/icc-api/model/Substance.js.map +1 -1
  278. package/icc-api/model/SubstanceStub.js.map +1 -1
  279. package/icc-api/model/Substanceproduct.js.map +1 -1
  280. package/icc-api/model/Suggest.js.map +1 -1
  281. package/icc-api/model/SumehrContent.js.map +1 -1
  282. package/icc-api/model/SumehrExportInfo.js.map +1 -1
  283. package/icc-api/model/SumehrValidity.js.map +1 -1
  284. package/icc-api/model/SupplyProblem.js.map +1 -1
  285. package/icc-api/model/Suspension.js.map +1 -1
  286. package/icc-api/model/Tag.js.map +1 -1
  287. package/icc-api/model/Tarification.js.map +1 -1
  288. package/icc-api/model/Telecom.js.map +1 -1
  289. package/icc-api/model/TimeSeries.js.map +1 -1
  290. package/icc-api/model/TimeTable.js.map +1 -1
  291. package/icc-api/model/TimeTableHour.js.map +1 -1
  292. package/icc-api/model/TimeTableItem.js.map +1 -1
  293. package/icc-api/model/TypedValueObject.js.map +1 -1
  294. package/icc-api/model/Unit.js.map +1 -1
  295. package/icc-api/model/User.js.map +1 -1
  296. package/icc-api/model/UserAndHealthcareParty.js.map +1 -1
  297. package/icc-api/model/UserGroup.js.map +1 -1
  298. package/icc-api/model/Valorisation.js.map +1 -1
  299. package/icc-api/model/VirtualForm.js.map +1 -1
  300. package/icc-api/model/VirtualIngredient.js.map +1 -1
  301. package/icc-api/model/Vmp.js.map +1 -1
  302. package/icc-api/model/VmpComponent.js.map +1 -1
  303. package/icc-api/model/VmpGroup.js.map +1 -1
  304. package/icc-api/model/VmpGroupStub.js.map +1 -1
  305. package/icc-api/model/VmpStub.js.map +1 -1
  306. package/icc-api/model/Vtm.js.map +1 -1
  307. package/icc-api/model/Wada.js.map +1 -1
  308. package/icc-api/model/WebSession.js.map +1 -1
  309. package/icc-api/model/WebSessionMaxIdleTime.js.map +1 -1
  310. package/icc-api/model/WebSessionMaxIdleTimeUnits.js.map +1 -1
  311. package/icc-api/model/Weekday.js.map +1 -1
  312. package/icc-api/model/models.js.map +1 -1
  313. package/icc-x-api/crypto/AES.js.map +1 -1
  314. package/icc-x-api/crypto/RSA.js.map +1 -1
  315. package/icc-x-api/crypto/shamir.js.map +1 -1
  316. package/icc-x-api/crypto/utils.js.map +1 -1
  317. package/icc-x-api/filters/AllCodesFilter.js.map +1 -1
  318. package/icc-x-api/filters/AllDevicesFilter.js.map +1 -1
  319. package/icc-x-api/filters/AllHealthcarePartiesFilter.js.map +1 -1
  320. package/icc-x-api/filters/AllUsersFilter.js.map +1 -1
  321. package/icc-x-api/filters/CodeByIdsFilter.js.map +1 -1
  322. package/icc-x-api/filters/CodeByRegionTypeLabelLanguageFilter.js.map +1 -1
  323. package/icc-x-api/filters/ComplementFilter.js.map +1 -1
  324. package/icc-x-api/filters/ConstantFilter.js.map +1 -1
  325. package/icc-x-api/filters/ContactByHcPartyFilter.js.map +1 -1
  326. package/icc-x-api/filters/ContactByHcPartyPatientTagCodeDateFilter.js.map +1 -1
  327. package/icc-x-api/filters/ContactByHcPartyTagCodeDateFilter.js.map +1 -1
  328. package/icc-x-api/filters/ContactByServiceIdsFilter.js.map +1 -1
  329. package/icc-x-api/filters/DeviceByHcPartyFilter.js.map +1 -1
  330. package/icc-x-api/filters/DeviceByIdsFilter.js.map +1 -1
  331. package/icc-x-api/filters/HealthElementByHcPartyFilter.js.map +1 -1
  332. package/icc-x-api/filters/HealthElementByHcPartyIdentifiersFilter.js.map +1 -1
  333. package/icc-x-api/filters/HealthElementByHcPartySecretForeignKeysFilter.js.map +1 -1
  334. package/icc-x-api/filters/HealthElementByHcPartyTagCodeFilter.js.map +1 -1
  335. package/icc-x-api/filters/HealthElementByIdsFilter.js.map +1 -1
  336. package/icc-x-api/filters/HealthcarePartyByIdsFilter.js.map +1 -1
  337. package/icc-x-api/filters/IntersectionFilter.js.map +1 -1
  338. package/icc-x-api/filters/InvoiceByHcPartyCodeDateFilter.js.map +1 -1
  339. package/icc-x-api/filters/PatientByHcPartyAndActiveFilter.js.map +1 -1
  340. package/icc-x-api/filters/PatientByHcPartyAndExternalIdFilter.js.map +1 -1
  341. package/icc-x-api/filters/PatientByHcPartyAndIdentifiersFilter.js.map +1 -1
  342. package/icc-x-api/filters/PatientByHcPartyAndSsinFilter.js.map +1 -1
  343. package/icc-x-api/filters/PatientByHcPartyAndSsinsFilter.js.map +1 -1
  344. package/icc-x-api/filters/PatientByHcPartyDateOfBirthBetweenFilter.js.map +1 -1
  345. package/icc-x-api/filters/PatientByHcPartyDateOfBirthFilter.js.map +1 -1
  346. package/icc-x-api/filters/PatientByHcPartyFilter.js.map +1 -1
  347. package/icc-x-api/filters/PatientByHcPartyGenderEducationProfession.js.map +1 -1
  348. package/icc-x-api/filters/PatientByHcPartyNameContainsFuzzyFilter.js.map +1 -1
  349. package/icc-x-api/filters/PatientByHcPartyNameFilter.js.map +1 -1
  350. package/icc-x-api/filters/PatientByIdsFilter.js.map +1 -1
  351. package/icc-x-api/filters/ServiceByContactsAndSubcontactsFilter.js.map +1 -1
  352. package/icc-x-api/filters/ServiceByHcPartyFilter.js.map +1 -1
  353. package/icc-x-api/filters/ServiceByHcPartyIdentifiersFilter.js.map +1 -1
  354. package/icc-x-api/filters/ServiceByHcPartyTagCodeDateFilter.js.map +1 -1
  355. package/icc-x-api/filters/ServiceByIdsFilter.js.map +1 -1
  356. package/icc-x-api/filters/ServiceBySecretForeignKeys.js.map +1 -1
  357. package/icc-x-api/filters/UnionFilter.js.map +1 -1
  358. package/icc-x-api/filters/UserByIdsFilter.js.map +1 -1
  359. package/icc-x-api/filters/filters.js.map +1 -1
  360. package/icc-x-api/icc-accesslog-x-api.js.map +1 -1
  361. package/icc-x-api/icc-bekmehr-x-api.js.map +1 -1
  362. package/icc-x-api/icc-calendar-item-x-api.js.map +1 -1
  363. package/icc-x-api/icc-classification-x-api.js.map +1 -1
  364. package/icc-x-api/icc-code-x-api.js.map +1 -1
  365. package/icc-x-api/icc-contact-x-api.js.map +1 -1
  366. package/icc-x-api/icc-crypto-x-api.js.map +1 -1
  367. package/icc-x-api/icc-doctemplate-x-api.js.map +1 -1
  368. package/icc-x-api/icc-document-x-api.js.map +1 -1
  369. package/icc-x-api/icc-form-x-api.js.map +1 -1
  370. package/icc-x-api/icc-hcparty-x-api.js.map +1 -1
  371. package/icc-x-api/icc-helement-x-api.js.map +1 -1
  372. package/icc-x-api/icc-invoice-x-api.js.map +1 -1
  373. package/icc-x-api/icc-message-x-api.js.map +1 -1
  374. package/icc-x-api/icc-patient-x-api.js.map +1 -1
  375. package/icc-x-api/icc-receipt-x-api.js.map +1 -1
  376. package/icc-x-api/icc-time-table-x-api.js.map +1 -1
  377. package/icc-x-api/icc-user-x-api.js.map +1 -1
  378. package/icc-x-api/index.js.map +1 -1
  379. package/icc-x-api/rsrc/codelng.js.map +1 -1
  380. package/icc-x-api/rsrc/contact.i18n.js.map +1 -1
  381. package/icc-x-api/rsrc/icd10.js.map +1 -1
  382. package/icc-x-api/rsrc/icpc2.js.map +1 -1
  383. package/icc-x-api/utils/asn1-packer.js.map +1 -1
  384. package/icc-x-api/utils/asn1-parser.js.map +1 -1
  385. package/icc-x-api/utils/binary-utils.js +2 -2
  386. package/icc-x-api/utils/binary-utils.js.map +1 -1
  387. package/icc-x-api/utils/code-util.js.map +1 -1
  388. package/icc-x-api/utils/formatting-util.js.map +1 -1
  389. package/icc-x-api/utils/functional-util.js.map +1 -1
  390. package/icc-x-api/utils/hcp-util.js.map +1 -1
  391. package/icc-x-api/utils/index.js.map +1 -1
  392. package/icc-x-api/utils/insurability-util.js.map +1 -1
  393. package/icc-x-api/utils/net-utils.js.map +1 -1
  394. package/icc-x-api/utils/person-util.js.map +1 -1
  395. package/icc-x-api/utils/uuid-encoder.js.map +1 -1
  396. package/index.js.map +1 -1
  397. package/node-compat.js.map +1 -1
  398. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"icc-crypto-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-crypto-x-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icc-crypto-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-crypto-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccHcpartyApi, IccPatientApi } from '../icc-api'\nimport { AESUtils } from './crypto/AES'\nimport { RSAUtils } from './crypto/RSA'\nimport { UtilsClass } from './crypto/utils'\nimport { ShamirClass } from './crypto/shamir'\n\nimport * as _ from 'lodash'\nimport * as models from '../icc-api/model/models'\nimport { Delegation, Device, HealthcareParty, Patient, User } from '../icc-api/model/models'\nimport { b2a, b64_2uas, hex2ua, string2ua, ua2hex, ua2string, ua2utf8, utf8_2ua } from './utils/binary-utils'\nimport { IccHcpartyXApi } from './icc-hcparty-x-api'\nimport { IccDeviceApi } from '../icc-api/api/IccDeviceApi'\n\nexport class IccCryptoXApi {\n get shamir(): ShamirClass {\n return this._shamir\n }\n get utils(): UtilsClass {\n return this._utils\n }\n get RSA(): RSAUtils {\n return this._RSA\n }\n get AES(): AESUtils {\n return this._AES\n }\n hcPartyKeysCache: {\n [key: string]: { delegatorId: string; key: CryptoKey; rawKey: string }\n } = {}\n\n //[delegateId][delegatorId] = delegateEncryptedHcPartyKey\n //for each delegate, it stores the list of delegators and the corresponding delegateEncryptedHcPartyKey (shared HcPartyKey, from delegator to delegate, encrypted with the RSA key of the delegate)\n hcPartyKeysRequestsCache: {\n [delegateId: string]: Promise<{ [delegatorId: string]: string }>\n } = {}\n\n emptyHcpCache(hcpartyId: string) {\n delete this.hcPartyKeysRequestsCache[hcpartyId]\n }\n\n /**\n * Gets all delegate encrypted HcParty keys of the delegate with the given `delegateHcPartyId`, and for each key the delegator id\n * If the keys are not cached, they are retrieved from the backend.\n *\n * @param delegateHcPartyId The Health Care Party id\n * @returns \\{delegatorId: delegateEncryptedHcPartyKey\\}\n */\n private getHcPartyKeysForDelegate(\n //TODO: suggested name: getAllEncryptedHcPKeysOfDelegate\n delegateHcPartyId: string\n ): Promise<{ [delegatorId: string]: string }> {\n return (\n this.hcPartyKeysRequestsCache[delegateHcPartyId] ||\n (this.hcPartyKeysRequestsCache[delegateHcPartyId] = this.forceGetHcPartyKeysForDelegate(delegateHcPartyId))\n )\n }\n\n private forceGetHcPartyKeysForDelegate(delegateHcPartyId: string): Promise<{ [delegatorId: string]: string } | {}> {\n return Promise.all([\n this.patientBaseApi.getPatientHcPartyKeysForDelegate(delegateHcPartyId).catch(() => {}),\n this.hcpartyBaseApi.getHcPartyKeysForDelegate(delegateHcPartyId).catch(() => {}),\n ]).then(([a, b]) => Object.assign({}, a, b))\n }\n\n keychainLocalStoreIdPrefix = 'org.taktik.icure.ehealth.keychain.'\n keychainValidityDateLocalStoreIdPrefix = 'org.taktik.icure.ehealth.keychain-date.'\n hcpPreferenceKeyEhealthCert = 'eHealthCRTCrypt'\n hcpPreferenceKeyEhealthCertDate = 'eHealthCRTDate'\n\n private hcpartyBaseApi: IccHcpartyApi\n private patientBaseApi: IccPatientApi\n private deviceBaseApi: IccDeviceApi\n private crypto: Crypto\n\n private generateKeyConcurrencyMap: { [key: string]: PromiseLike<HealthcareParty | Patient> }\n\n private _AES: AESUtils\n private _RSA: RSAUtils\n private _utils: UtilsClass\n private _shamir: ShamirClass\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n hcpartyBaseApi: IccHcpartyApi, //Init with a hcparty x api for better performances\n patientBaseApi: IccPatientApi,\n deviceBaseApi: IccDeviceApi,\n crypto: Crypto = typeof window !== 'undefined' ? window.crypto : typeof self !== 'undefined' ? self.crypto : ({} as Crypto)\n ) {\n this.hcpartyBaseApi = hcpartyBaseApi\n this.patientBaseApi = patientBaseApi\n this.deviceBaseApi = deviceBaseApi\n this.crypto = crypto\n this.generateKeyConcurrencyMap = {}\n\n this._AES = new AESUtils(crypto)\n this._RSA = new RSAUtils(crypto)\n this._utils = new UtilsClass()\n this._shamir = new ShamirClass(crypto)\n }\n\n randomUuid() {\n return ((1e7).toString() + -1e3 + -4e3 + -8e3 + -1e11).replace(\n /[018]/g,\n (c) => (Number(c) ^ ((this.crypto.getRandomValues(new Uint8Array(1))! as Uint8Array)[0] & (15 >> (Number(c) / 4)))).toString(16) //Keep that inlined or you will loose the random\n )\n }\n\n sha256(data: ArrayBuffer | Uint8Array) {\n return this.crypto.subtle.digest('SHA-256', data)\n }\n\n encryptedShamirRSAKey(hcp: HealthcareParty, notaries: Array<HealthcareParty>, threshold?: number): Promise<HealthcareParty> {\n return this._RSA.loadKeyPairImported(hcp.id!).then((keyPair) =>\n this._RSA.exportKey(keyPair.privateKey, 'pkcs8').then((exportedKey) => {\n const privateKey = exportedKey as ArrayBuffer\n const nLen = notaries.length\n const shares = nLen == 1 ? [privateKey] : this._shamir.share(ua2hex(privateKey), nLen, threshold || nLen).map((share) => hex2ua(share))\n\n return _.reduce(\n notaries,\n (queue, notary, idx) => {\n return queue.then(async (hcp) => {\n const hcParty = hcp.hcPartyKeys![notary.id!] ? hcp : ((await this.generateKeyForDelegate(hcp.id!, notary.id!)) as HealthcareParty)\n\n try {\n const importedAESHcPartyKey = await this.decryptHcPartyKey(hcParty.id!, notary.id!, hcParty.hcPartyKeys![notary.id!][1], false)\n const encryptedShamirPartition = await this.AES.encrypt(importedAESHcPartyKey.key, shares[idx])\n\n hcParty.privateKeyShamirPartitions = hcParty.privateKeyShamirPartitions || {}\n hcParty.privateKeyShamirPartitions[notary.id!] = ua2hex(encryptedShamirPartition)\n } catch (e) {\n console.log('Error during encryptedShamirRSAKey', notary.id, e)\n }\n return hcParty\n })\n },\n Promise.resolve(hcp)\n )\n })\n )\n }\n\n /* Reconstructs the hcp's private key from the notaries' shamir shares and stores it in localstorage.\n The retrieval procedure of the shares is not designed or implemented yet. Therefore, it currently only\n works if the private key of the notaries are stored in local storage (e.g. notaries = [hcp parent]).\n * @param hcp : the hcp whose key we want to reconstruct\n * @param notaries : holders of the shamir shares\n **/\n async decryptedShamirRSAKey(hcp: HealthcareParty, notaries: Array<HealthcareParty>): Promise<void> {\n try {\n const nLen = notaries.length\n let decryptedPrivatedKey\n if (nLen == 1) {\n const importedAESHcPartyKey = await this.decryptHcPartyKey(hcp.id!, notaries[0].id!, hcp.hcPartyKeys![notaries[0].id!][1], false)\n const cryptedPrivatedKey = hcp.privateKeyShamirPartitions![notaries[0].id!]\n decryptedPrivatedKey = ua2hex(await this.AES.decrypt(importedAESHcPartyKey.key, hex2ua(cryptedPrivatedKey)))\n } else {\n const decryptedShares: string[] = await _.reduce(\n notaries,\n (queue, notary) => {\n return queue.then(async (shares: string[]) => {\n try {\n // TODO: now, we get the encrypted shares in db and decrypt them. This assumes that the\n // the notaries' private keys are in localstorage. We should implement a way for the notaries to\n // give hcp the decrypted shares without having to also share their private keys.\n const importedAESHcPartyKey = await this.decryptHcPartyKey(hcp.id!, notary.id!, hcp.hcPartyKeys![notary.id!][1], false)\n const encryptedShare = hcp.privateKeyShamirPartitions![notary.id!]\n const decryptedShamirPartition = ua2hex(await this.AES.decrypt(importedAESHcPartyKey.key, hex2ua(encryptedShare)))\n shares.push(decryptedShamirPartition)\n } catch (e) {\n console.log('Error during encryptedShamirRSAKey', notary.id, e)\n }\n return shares\n })\n },\n Promise.resolve([] as string[])\n )\n\n decryptedPrivatedKey = this._shamir.combine(decryptedShares)\n }\n\n const importedPrivateKey = await this.RSA.importKey('pkcs8', hex2ua(decryptedPrivatedKey), ['decrypt'])\n const importedPublicKey = await this.RSA.importKey('spki', hex2ua(hcp.publicKey!), ['encrypt'])\n\n const exportedKeyPair = await this.RSA.exportKeys({ publicKey: importedPublicKey, privateKey: importedPrivateKey }, 'jwk', 'jwk')\n this.RSA.storeKeyPair(hcp.id!, exportedKeyPair)\n } catch (e) {\n console.log('Cannot decrypt shamir RSA key')\n }\n }\n\n /**\n * Gets the decryptedHcPartyKey for the given `encryptedHcPartyKey`\n *\n * If the decrypted key exists in the cache, retrieves it from there.\n * Otherwise, decrypts it using the RSA key of the delegator or delegate (depending on the value of `encryptedForDelegator`)\n * @param delegatorId : the id of the delegator HcP\n * @param delegateHcPartyId : the id of the delegate HcP\n * @param encryptedHcPartyKey : can be delegatorEncryptedHcPartyKey or delegateEncryptedHcPartyKey (depending on the value of `encryptedForDelegator`)\n * @param encryptedForDelegator : default false - for the `encryptedHcPartyKey` RSA encrypted for delegate; true for the `encryptedHcPartyKey` RSA encrypted for delegator;\n * @returns - **delegatorId** the input param `delegatorId`\n * - **key** the decrypted `encryptedHcPartyKey`\n */\n decryptHcPartyKey(\n delegatorId: string,\n delegateHcPartyId: string,\n encryptedHcPartyKey: string,\n encryptedForDelegator = false //TODO: suggestion: break this into 2 separate methods: decryptDelegatorEncryptedHcPartyKey() and decryptDelegateEncryptedHcPartyKey()\n ): Promise<{ delegatorId: string; key: CryptoKey; rawKey: string }> {\n const cacheKey = delegatorId + '|' + delegateHcPartyId + '|' + (encryptedForDelegator ? '->' : '<-')\n const res = this.hcPartyKeysCache[cacheKey]\n const hcPartyKeyOwner = encryptedForDelegator ? delegatorId : delegateHcPartyId\n if (res) {\n return Promise.resolve(res)\n } else {\n const keyPair = this._RSA.rsaKeyPairs[hcPartyKeyOwner]\n return (\n keyPair\n ? Promise.resolve(keyPair)\n : Promise.resolve(this._RSA.loadKeyPairNotImported(hcPartyKeyOwner)).then((keyPairInJwk) =>\n this.cacheKeyPair(keyPairInJwk, hcPartyKeyOwner)\n )\n )\n .then((keyPair) => this._RSA.decrypt(keyPair.privateKey, hex2ua(encryptedHcPartyKey)))\n .catch((e) => {\n console.log(\n `Cannot decrypt RSA encrypted AES HcPartyKey from ${delegatorId} to ${delegateHcPartyId} as ${\n encryptedForDelegator ? 'delegator' : 'delegate'\n }`\n )\n throw e\n })\n .then((decryptedHcPartyKey) =>\n this._AES.importKey('raw', decryptedHcPartyKey).then((decryptedImportedHcPartyKey) => ({\n decryptedHcPartyKey,\n decryptedImportedHcPartyKey,\n }))\n )\n .then(\n ({ decryptedHcPartyKey, decryptedImportedHcPartyKey }) =>\n (this.hcPartyKeysCache[cacheKey] = {\n delegatorId: delegatorId,\n key: decryptedImportedHcPartyKey,\n rawKey: ua2hex(new Uint8Array(decryptedHcPartyKey)),\n })\n )\n }\n }\n /**\n * Cache the RSA private/public key pair for the HcP with the given id `hcPartyKeyOwner`\n */\n cacheKeyPair(keyPairInJwk: { publicKey: JsonWebKey | ArrayBuffer; privateKey: JsonWebKey | ArrayBuffer }, hcPartyKeyOwner: string) {\n if (!keyPairInJwk) {\n throw 'No RSA private key for Healthcare party(' + hcPartyKeyOwner + ').'\n }\n return this._RSA.importKeyPair('jwk', keyPairInJwk.privateKey, 'jwk', keyPairInJwk.publicKey).then((importedKeyPair) => {\n return (this._RSA.rsaKeyPairs[hcPartyKeyOwner] = importedKeyPair)\n })\n }\n\n /**\n * Gets the secret ID (SFKs) that should be used in the prescribed context (condfidential or not) from decrypted SPKs of the given `parent`, decrypted by the HcP with the given `hcpartyId` AND by its HcP parents\n * @param parent : the object of which delegations (SPKs) to decrypt\n * @param hcpartyId : the id of the delegate HcP\n * @param confidential : wether the key is going to be used for a confidential piece or data or not\n * @returns - **extractedKeys** array containing secret IDs (SFKs) from decrypted SPKs, from both given HcP and its parents ; can contain duplicates\n * - **hcpartyId** the given `hcpartyId` OR, if a parent exist, the HcP id of the top parent in the hierarchy (even if that parent has no delegations)\n */\n extractPreferredSfk(parent: models.Patient | models.Message, hcpartyId: string, confidential: boolean) {\n return this.extractSFKsHierarchyFromDelegations(parent, hcpartyId).then((secretForeignKeys) => {\n const keys = secretForeignKeys\n .filter(({ extractedKeys }) => extractedKeys.length > 0)\n .filter((x, idx) => (confidential ? x.hcpartyId === hcpartyId : idx === 0))[0]\n return (\n (keys &&\n (confidential\n ? keys.extractedKeys.find(\n (k) => !secretForeignKeys.some(({ extractedKeys, hcpartyId: parentHcpId }) => hcpartyId !== parentHcpId && extractedKeys.includes(k))\n )\n : keys.extractedKeys[0])) ||\n null\n )\n })\n }\n\n /**\n * Gets an array of decrypted HcPartyKeys, shared between the delegate with ID `delegateHcPartyId` and the delegators in `delegatorsHcPartyIdsSet`\n *\n * 1. Get the keys for the delegateHealthCareParty (cache/backend).\n * 2. For each key in the delegators, decrypt it with the delegate's private key\n * 3. Filter out undefined keys and return them\n *\n * @param delegatorsHcPartyIdsSet array of delegator HcP IDs that could have delegated something to the HcP with ID `delegateHcPartyId`\n * @param delegateHcPartyId the HcP for which the HcPs with IDs in `delegatorsHcPartyIdsSet` could have delegated something\n * @returns - **delegatorId** : the id of the delegator HcP that shares the **key** with the `delegateHcPartyId`\n * - **key** the decrypted HcPartyKey, shared between **delegatorId** and `delegateHcPartyId`\n */\n decryptAndImportAesHcPartyKeysForDelegators(\n //TODO: suggested name: getDecryptedHcPKeysSharedBetweenDelegateAndDelegators\n delegatorsHcPartyIdsSet: Array<string>,\n delegateHcPartyId: string\n ): Promise<Array<{ delegatorId: string; key: CryptoKey; rawKey: string }>> {\n return (\n this.hcPartyKeysRequestsCache[delegateHcPartyId] ||\n (this.hcPartyKeysRequestsCache[delegateHcPartyId] = this.getHcPartyKeysForDelegate(delegateHcPartyId))\n ).then((delegatorIDsWithDelegateEncryptedHcPartyKey: { [delegatorId: string]: string }) => {\n // [key: delegatorId] = delegateEncryptedHcPartyKey\n // For each delegatorId, obtain the AES key (decrypted HcParty Key) shared with the delegate, decrypted by the delegate\n return Promise.all(\n delegatorsHcPartyIdsSet.map((delegatorId: string) => {\n if (!delegatorIDsWithDelegateEncryptedHcPartyKey[delegatorId]) {\n return undefined\n }\n return this.decryptHcPartyKey(delegatorId, delegateHcPartyId, delegatorIDsWithDelegateEncryptedHcPartyKey[delegatorId]).catch(() => {\n console.log(`failed to decrypt hcPartyKey from ${delegatorId} to ${delegateHcPartyId}`)\n return undefined\n })\n })\n ).then((hcPartyKeys) => hcPartyKeys.filter(<T>(hcPartyKey: T | undefined): hcPartyKey is T => !!hcPartyKey))\n })\n }\n\n /**\n * Gets an array of decrypted HcPartyKeys from the given `delegations`, that are shared with / can be decrypted by the HcP with the given `healthcarePartyId` (or by its parents when `fallbackOnParent` is true)\n *\n * 1. Checks whether the delegations' object has a delegation for the\n * given healthCarePartyId.\n * 2. Enumerates all the delegators (delegation.owner) present in\n * the delegations.\n * 3. Decrypt's delegators' keys and returns them.\n *\n * @param healthcarePartyId : the id of the delegate HCP\n * @param delegations : generic delegations (can be SPKs, CFKs, EKs) for all delegates\n * @param fallbackOnParent default true; use parent's healthCarePartyId in case there's no delegation for the `healthcarePartyId`\n * @returns - **delegatorId** : the id of the delegator HcP that shares the **key** with the `healthcarePartyId`\n * - **key** the decrypted HcPartyKey, shared between **delegatorId** and `healthcarePartyId`\n */\n decryptAndImportAesHcPartyKeysInDelegations(\n //TODO: suggested name: getDecryptedHcPKeysOfDelegateAndParentsFromGenericDelegations\n healthcarePartyId: string,\n delegations: { [key: string]: Array<models.Delegation> },\n fallbackOnParent = true\n ): Promise<Array<{ delegatorId: string; key: CryptoKey; rawKey: string }>> {\n const delegatorIds: { [key: string]: boolean } = {}\n const delegationsArray = delegations[healthcarePartyId]\n if (delegationsArray && delegationsArray.length) {\n delegationsArray.forEach(function (delegationItem) {\n delegatorIds[delegationItem.owner!] = true //TODO: why is set to true?\n })\n } else if (fallbackOnParent) {\n return this.getDataOwner(healthcarePartyId).then(({ dataOwner: hcp }) =>\n (hcp as any).parentId ? this.decryptAndImportAesHcPartyKeysInDelegations((hcp as any).parentId, delegations) : Promise.resolve([])\n )\n }\n\n return this.decryptAndImportAesHcPartyKeysForDelegators(Object.keys(delegatorIds), healthcarePartyId)\n }\n\n /**\n * Retreive the owner HealthCareParty key and use it to encrypt\n * both the delegations (createdObject.id) and the cryptedForeignKeys\n * (parentObject.id), and returns them in an object.\n */\n initObjectDelegations(\n createdObject: any,\n parentObject: any,\n ownerId: string,\n secretForeignKeyOfParent: string | null\n ): Promise<{\n delegations: any\n cryptedForeignKeys: any\n secretForeignKeys: any[]\n secretId: string\n }> {\n this.throwDetailedExceptionForInvalidParameter('createdObject.id', createdObject.id, 'initObjectDelegations', arguments)\n\n if (parentObject) this.throwDetailedExceptionForInvalidParameter('parentObject.id', parentObject.id, 'initObjectDelegations', arguments)\n\n const secretId = this.randomUuid()\n return this.getDataOwner(ownerId)\n .then(({ dataOwner: owner }) => this.getOrCreateHcPartyKey(owner, ownerId))\n .then((encryptedHcPartyKey) => this.decryptHcPartyKey(ownerId, ownerId, encryptedHcPartyKey, true))\n .then((importedAESHcPartyKey) =>\n Promise.all([\n this._AES.encrypt(\n importedAESHcPartyKey.key,\n string2ua(createdObject.id + ':' + secretId).buffer as ArrayBuffer,\n importedAESHcPartyKey.rawKey\n ),\n parentObject\n ? this._AES.encrypt(\n importedAESHcPartyKey.key,\n string2ua(createdObject.id + ':' + parentObject.id).buffer as ArrayBuffer,\n importedAESHcPartyKey.rawKey\n )\n : Promise.resolve(null),\n ])\n )\n .then((encryptedDelegationAndSecretForeignKey) => ({\n delegations: _.fromPairs([\n [\n ownerId,\n [\n {\n owner: ownerId,\n delegatedTo: ownerId,\n key: ua2hex(encryptedDelegationAndSecretForeignKey[0]!),\n },\n ],\n ],\n ]),\n cryptedForeignKeys:\n (encryptedDelegationAndSecretForeignKey[1] &&\n _.fromPairs([\n [\n ownerId,\n [\n {\n owner: ownerId,\n delegatedTo: ownerId,\n key: ua2hex(encryptedDelegationAndSecretForeignKey[1]!),\n },\n ],\n ],\n ])) ||\n {},\n secretForeignKeys: (secretForeignKeyOfParent && [secretForeignKeyOfParent]) || [],\n secretId: secretId,\n }))\n }\n /**\n * Gets updated instances of SPKs and CKFs for the child object `modifiedObject`.\n * These updated SPKs and CKFs contain new SPKs/CFKs to provide delegation from delegator HcP with id `ownerId` to delegate HcP with id `delegateId`\n *\n * 1. if `secretIdOfModifiedObject` is not provided, the method will throw an exception; this `secretIdOfModifiedObject` is used to generate a new delegation (SPK) in step 3;\n * the `secretIdOfModifiedObject` is returned, unmodified, as `secretId`\n * 2. if the owner (delegator) did not perform a delegation to the delegate, then this HcP delegation (creation of a new HcPKey) is performed now\n * 3. creates a new delegation (Secret Primary Keys) on the `modifiedObject` encrypted with the HcPKey from owner to the delegate;\n * 4. if `parentObject` != null, creates a new CFK on the `modifiedObject` encrypted with the HcPKey from owner to the delegate;\n * 5. this new delegation (from step 3) is added to the list of existing delegations (Secret Primary Keys) on the `modifiedObject` for the delegate given by `delegateId`\n * 6. if the CFK (from step 4) can be created, this new CFK is added to the list of existing CFKs on the `modifiedObject` for the delegate given by `delegateId`\n * 7. then some duplicates delegations (SPKs) and CKFs are removed\n *\n * @param modifiedObject : the object of which SPKs and CFKs will be cloned, the clones will be modified and then used as returned values ; it's a 'child' of `parentObject`; will NOT be mutated\n * @param parentObject : will NOT be mutated\n * @param ownerId : the HcP id of the delegator\n * @param delegateId : the HcP id of the delegate\n * @param secretIdOfModifiedObject : the secret id used in the child object to generate its SPK\n * @returns - **delegations** existing delegations (SPKs) of the `modifiedObject`, appended with results from step 5\n * - **cryptedForeignKeys** existing CFKs of the `modifiedObject`, appended with results from steps 6\n * - **secretId** which is the given input parameter `secretIdOfModifiedObject`\n */\n\n extendedDelegationsAndCryptedForeignKeys(\n //TODO: suggested name: getExtendedChildObjectSPKandCFKwithDelegationFromDelegatorToDelegate\n modifiedObject: any | null,\n parentObject: any | null,\n ownerId: string,\n delegateId: string,\n secretIdOfModifiedObject: string | null\n ): Promise<{\n delegations: { [key: string]: Array<models.Delegation> }\n cryptedForeignKeys: { [key: string]: Array<models.Delegation> }\n secretId: string | null //TODO: why input parameter secretIdOfModifiedObject is returned?\n }> {\n this.throwDetailedExceptionForInvalidParameter('modifiedObject.id', modifiedObject.id, 'extendedDelegationsAndCryptedForeignKeys', arguments) //modifiedObject should never be null\n\n if (parentObject)\n this.throwDetailedExceptionForInvalidParameter('parentObject.id', parentObject.id, 'extendedDelegationsAndCryptedForeignKeys', arguments)\n\n this.throwDetailedExceptionForInvalidParameter(\n 'secretIdOfModifiedObject',\n secretIdOfModifiedObject,\n 'extendedDelegationsAndCryptedForeignKeys',\n arguments\n )\n\n return this.getDataOwner(ownerId)\n .then(({ dataOwner: owner }) => this.getOrCreateHcPartyKey(owner, ownerId))\n .then((encryptedHcPartyKey) => this.decryptHcPartyKey(ownerId, delegateId, encryptedHcPartyKey, true))\n .then((importedAESHcPartyKey) =>\n Promise.all([\n Promise.all(\n ((modifiedObject.delegations || {})[delegateId] || []).map(\n (d: Delegation) =>\n (d.key &&\n d.owner === ownerId &&\n this._AES.decrypt(importedAESHcPartyKey.key, hex2ua(d.key), importedAESHcPartyKey.rawKey).catch(() => {\n console.log(\n `Cannot decrypt delegation from ${d.owner} to ${d.delegatedTo} for object with id ${modifiedObject.id}:`,\n modifiedObject\n )\n return null\n })) ||\n Promise.resolve(null)\n ) as Array<Promise<ArrayBuffer>>\n ),\n\n Promise.all(\n ((modifiedObject.cryptedForeignKeys || {})[delegateId] || []).map(\n (d: Delegation) =>\n (d.key &&\n d.owner === ownerId &&\n this._AES.decrypt(importedAESHcPartyKey.key, hex2ua(d.key), importedAESHcPartyKey.rawKey).catch(() => {\n console.log(\n `Cannot decrypt cryptedForeignKeys from ${d.owner} to ${d.delegatedTo} for object with id ${modifiedObject.id}:`,\n modifiedObject\n )\n return null\n })) ||\n Promise.resolve(null)\n ) as Array<Promise<ArrayBuffer>>\n ),\n\n this._AES.encrypt(\n importedAESHcPartyKey.key,\n string2ua(modifiedObject.id + ':' + secretIdOfModifiedObject!).buffer as ArrayBuffer,\n importedAESHcPartyKey.rawKey\n ),\n\n parentObject\n ? this._AES.encrypt(\n importedAESHcPartyKey.key,\n string2ua(modifiedObject.id + ':' + parentObject.id).buffer as ArrayBuffer,\n importedAESHcPartyKey.rawKey\n )\n : Promise.resolve(null),\n ])\n )\n .then(([previousDecryptedDelegations, previousDecryptedCryptedForeignKeys, cryptedDelegation, cryptedForeignKey]) => {\n //try to limit the extent of the modifications to the delegations by preserving the redundant delegation already present and removing duplicates\n //For delegate delegateId, we create:\n // 1. an array of objects { d : {owner,delegatedTo,encrypted(key)}} with one object for each existing delegation and the new key concatenated\n // 2. an array of objects { k : decrypted(key)} with one object for the existing delegations and the new key concatenated\n // We merge them to get one array of objects: { d: {owner,delegatedTo,encrypted(key)}, k: decrypted(key)}\n const delegationCryptedDecrypted = _.merge(\n ((modifiedObject.delegations || {})[delegateId] || []).map((d: Delegation) => ({\n d,\n })),\n (previousDecryptedDelegations || []).map((dd) => (dd ? ua2string(dd) : null)).map((k) => ({ k }))\n )\n .filter(({ d, k }: { d: Delegation; k: string }) => !!k || d.owner !== ownerId) //Only keep the ones created by us that can still be decrypted\n .map(({ d, k }: { d: Delegation; k: string }) => ({ d, k: k || this.randomUuid() })) // Use some unique id that ensures the delegation not created by us are going to be held\n .concat([\n {\n d: {\n owner: ownerId,\n delegatedTo: delegateId,\n key: ua2hex(cryptedDelegation!),\n },\n k: modifiedObject.id + ':' + secretIdOfModifiedObject!,\n },\n ])\n\n const allDelegations = _.cloneDeep(modifiedObject.delegations)\n\n //Only keep one version of the decrypted key\n allDelegations[delegateId] = _.uniqBy(delegationCryptedDecrypted, (x: any) => x.k).map((x: any) => x.d)\n\n const cryptedForeignKeysCryptedDecrypted = _.merge(\n ((modifiedObject.cryptedForeignKeys || {})[delegateId] || []).map((d: Delegation) => ({\n d,\n })),\n (previousDecryptedCryptedForeignKeys || []).map((dd) => (dd ? ua2string(dd) : null)).map((k) => ({ k }))\n )\n .filter(({ d, k }: { d: Delegation; k: string }) => !!k || d.owner !== ownerId) //Only keep the ones created by us that can still be decrypted\n .map(({ d, k }: { d: Delegation; k: string }) => ({ d, k: k || this.randomUuid() })) // Use some unique id that ensures the delegation not created by us are going to be held\n .concat(\n cryptedForeignKey\n ? [\n {\n d: {\n owner: ownerId,\n delegatedTo: delegateId,\n key: ua2hex(cryptedForeignKey),\n },\n k: modifiedObject.id + ':' + parentObject.id!,\n },\n ]\n : []\n )\n\n const allCryptedForeignKeys = _.cloneDeep(modifiedObject.cryptedForeignKeys || {})\n if (cryptedForeignKeysCryptedDecrypted.length > 0) {\n allCryptedForeignKeys[delegateId] = _.uniqBy(cryptedForeignKeysCryptedDecrypted, (x: any) => x.k).map((x: any) => x.d)\n }\n\n return {\n delegations: allDelegations,\n cryptedForeignKeys: allCryptedForeignKeys,\n secretId: secretIdOfModifiedObject,\n }\n })\n }\n\n private getOrCreateHcPartyKey(owner: HealthcareParty | Patient, delegateId: string) {\n return !owner.hcPartyKeys![delegateId]\n ? this.generateKeyForDelegate(owner.id!, delegateId).then((owner) => owner.hcPartyKeys![delegateId][0])\n : Promise.resolve(owner.hcPartyKeys![delegateId][0])\n }\n\n /**\n * Retrieve the owners HealthCareParty key, decrypt it, and\n * use it to encrypt & initialize the \"encryptionKeys\" object\n * and return it.\n * @param createdObject\n * @param ownerId\n */\n initEncryptionKeys(\n createdObject: any,\n ownerId: string\n ): Promise<{\n encryptionKeys: any\n secretId: string\n }> {\n this.throwDetailedExceptionForInvalidParameter('createdObject.id', createdObject.id, 'initEncryptionKeys', arguments)\n\n const secretId = this.randomUuid()\n return this.getHcPartyKeysForDelegate(ownerId)\n .then((encryptedHcPartyKey) => this.decryptHcPartyKey(ownerId, ownerId, encryptedHcPartyKey[ownerId], true))\n .then((importedAESHcPartyKey) => this._AES.encrypt(importedAESHcPartyKey.key, string2ua(createdObject.id + ':' + secretId)))\n .then((encryptedEncryptionKeys) => ({\n encryptionKeys: _.fromPairs([\n [\n ownerId,\n [\n {\n owner: ownerId,\n delegatedTo: ownerId,\n key: ua2hex(encryptedEncryptionKeys),\n },\n ],\n ],\n ]),\n secretId: secretId,\n }))\n }\n\n /**\n * Gets an updated instance of the EKs of `modifiedObject`.\n * The updated EKs contain a new EK to provide delegation from delegator HcP with id `ownerId` to delegate HcP with id `delegateId`.\n * @param modifiedObject : the object of which EKs will be cloned, the clone will be used to append the new EK, and then used as return value; will NOT be mutated\n * @param ownerId : delegator HcP id\n * @param delegateId : delegate HcP id\n * @param secretEncryptionKeyOfObject : secret Id for the EK (Content Encryption Key)\n * @returns - **encryptionKeys** existing EKs of the `modifiedObject`, appended with a new EK item (owner: `ownerId`, delegatedTo: `delegateId`, encrypted key with secretId: `secretEncryptionKeyOfObject` )\n * - **secretId** which is the given input parameter `secretEncryptionKeyOfObject`\n */\n appendEncryptionKeys(\n //TODO: suggested name: getExtendedEKwithDelegationFromDelegatorToDelegate\n modifiedObject: any,\n ownerId: string,\n delegateId: string,\n secretEncryptionKeyOfObject: string\n ): Promise<{\n encryptionKeys: { [key: string]: Array<models.Delegation> }\n secretId: string | null //secretEncryptionKeyOfObject is returned to avoid the need for a new decryption when chaining calls\n }> {\n this.throwDetailedExceptionForInvalidParameter('modifiedObject.id', modifiedObject.id, 'appendEncryptionKeys', arguments) //modifiedObject should never be null\n\n this.throwDetailedExceptionForInvalidParameter('secretEncryptionKeyOfObject', secretEncryptionKeyOfObject, 'appendEncryptionKeys', arguments)\n\n return this.getDataOwner(ownerId)\n .then(({ dataOwner: owner }) => this.getOrCreateHcPartyKey(owner, ownerId))\n .then((encryptedHcPartyKey) => this.decryptHcPartyKey(ownerId, delegateId, encryptedHcPartyKey, true))\n .then((importedAESHcPartyKey) =>\n Promise.all([\n Promise.all(\n ((modifiedObject.encryptionKeys || {})[delegateId] || []).map(\n (d: Delegation) =>\n (d.key &&\n d.owner === ownerId &&\n this._AES.decrypt(importedAESHcPartyKey.key, hex2ua(d.key), importedAESHcPartyKey.rawKey).catch(() => {\n console.log(\n `Cannot decrypt encryption key from ${d.owner} to ${d.delegatedTo} for object with id ${modifiedObject.id}:`,\n modifiedObject\n )\n return null\n })) ||\n Promise.resolve(null)\n ) as Array<Promise<ArrayBuffer>>\n ),\n this._AES.encrypt(importedAESHcPartyKey.key, string2ua(modifiedObject.id + ':' + secretEncryptionKeyOfObject)),\n ])\n )\n .then(([previousDecryptedEncryptionKeys, encryptedEncryptionKey]) => {\n //try to limit the extent of the modifications to the delegations by preserving the redundant encryption keys already present and removing duplicates\n //For delegate delegateId, we create:\n // 1. an array of objects { d : {owner,delegatedTo,encrypted(key)}} with one object for the existing encryption keys and the new key concatenated\n // 2. an array of objects { k : decrypted(key)} with one object for the existing delegations and the new key concatenated\n // We merge them to get one array of objects: { d: {owner,delegatedTo,encrypted(key)}, k: decrypted(key)}\n const encryptionKeysCryptedDecrypted = _.merge(\n ((modifiedObject.encryptionKeys || {})[delegateId] || []).map((d: Delegation) => ({\n d,\n })),\n (previousDecryptedEncryptionKeys || []).map((dd) => (dd ? ua2string(dd) : null)).map((k) => ({ k }))\n )\n .filter(({ d, k }: { d: Delegation; k: string }) => !!k || d.owner !== ownerId) //Only keep the ones created by us that can still be decrypted\n .map(({ d, k }: { d: Delegation; k: string }) => ({ d, k: k || this.randomUuid() }))\n .concat([\n {\n d: {\n owner: ownerId,\n delegatedTo: delegateId,\n key: ua2hex(encryptedEncryptionKey),\n },\n k: modifiedObject.id + ':' + secretEncryptionKeyOfObject!,\n },\n ])\n\n const allEncryptionKeys = _.cloneDeep(modifiedObject.encryptionKeys)\n allEncryptionKeys[delegateId] = _.uniqBy(encryptionKeysCryptedDecrypted, (x: any) => x.k).map((x: any) => x.d)\n\n return {\n encryptionKeys: allEncryptionKeys,\n secretId: secretEncryptionKeyOfObject,\n }\n })\n }\n\n /**\n * Gets an updated `child` object that will have its SPKs, CFKs, KSs updated to include delegations from delegator HcP with id `ownerId` to delegate HcP with id `delegateId`\n * The SFKs of `child` are not updated, so this method assumes this is not the initial delegation on the `child` object\n * The method also performs some deduplication of all types of delegations.\n * @param parent : the parent object of `child`; will NOT be mutated\n * @param child : the object that will be mutated and returned\n * @param ownerId delegator HcP id\n * @param delegateId delegate HcP id\n * @param secretDelegationKey the secret Id used in the child object to generate the SPK\n * @param secretEncryptionKey the secret Id used in the child object to generate the EK (Content Encryption Key)\n * @returns - an updated `child` object that will contain updated SPKs, CFKs, EKs\n * */\n\n addDelegationsAndEncryptionKeys<\n T extends\n | models.AccessLog\n | models.Patient\n | models.Form\n | models.Contact\n | models.Invoice\n | models.Document\n | models.HealthElement\n | models.CalendarItem\n | models.Classification\n | models.Receipt\n >(\n //TODO: suggested name: updateChildGenericDelegationsFromDelegatorToDelegate\n parent: models.Patient | models.Message | null,\n child: T,\n ownerId: string,\n delegateId: string,\n secretDelegationKey: string | null,\n secretEncryptionKey: string | null\n ): Promise<T> {\n if (parent) this.throwDetailedExceptionForInvalidParameter('parent.id', parent.id, 'addDelegationsAndEncryptionKeys', arguments)\n\n this.throwDetailedExceptionForInvalidParameter('child.id', child.id, 'addDelegationsAndEncryptionKeys', arguments)\n\n return (\n secretDelegationKey\n ? this.extendedDelegationsAndCryptedForeignKeys(child, parent, ownerId, delegateId, secretDelegationKey)\n : Promise.resolve({ delegations: {}, cryptedForeignKeys: {} })\n )\n .then((extendedChildObjectSPKsAndCFKs) =>\n secretEncryptionKey\n ? this.appendEncryptionKeys(child, ownerId, delegateId, secretEncryptionKey).then(\n //TODO: extendedDelegationsAndCryptedForeignKeys and appendEncryptionKeys can be done in parallel\n (extendedChildObjectEKs) => ({\n extendedSPKsAndCFKs: extendedChildObjectSPKsAndCFKs,\n extendedEKs: extendedChildObjectEKs,\n })\n )\n : Promise.resolve({\n extendedSPKsAndCFKs: extendedChildObjectSPKsAndCFKs,\n extendedEKs: { encryptionKeys: {} },\n })\n )\n .then(({ extendedSPKsAndCFKs: extendedChildObjectSPKsAndCFKs, extendedEKs: extendedChildObjectEKs }) => {\n return _.assign(child, {\n // Conservative version ... We might want to be more aggressive with the deduplication of keys\n // For each delegate, we are going to concatenate to the src (the new delegations), the object in dest (the current delegations)\n // for which we do not find an equivalent delegation (same delegator, same delegate)\n delegations: _.assignWith(child.delegations, extendedChildObjectSPKsAndCFKs.delegations, (dest, src) =>\n (src || []).concat(\n _.filter(dest, (d: Delegation) => !src.some((s: Delegation) => s.owner === d.owner && s.delegatedTo === d.delegatedTo))\n )\n ),\n cryptedForeignKeys: _.assignWith(child.cryptedForeignKeys, extendedChildObjectSPKsAndCFKs.cryptedForeignKeys, (dest, src) =>\n (src || []).concat(\n _.filter(dest, (d: Delegation) => !src.some((s: Delegation) => s.owner === d.owner && s.delegatedTo === d.delegatedTo))\n )\n ),\n encryptionKeys: _.assignWith(child.encryptionKeys, extendedChildObjectEKs.encryptionKeys, (dest, src) =>\n (src || []).concat(\n _.filter(dest, (d: Delegation) => !src.some((s: Delegation) => s.owner === d.owner && s.delegatedTo === d.delegatedTo))\n )\n ),\n })\n })\n }\n\n /**\n * Gets the secret IDs (SFKs) inside decrypted SPKs of the given `document`, decrypted by the HcP with the given `hcpartyId` AND by its HcP parents\n * @param document : the object of which delegations (SPKs) to decrypt\n * @param hcpartyId : the id of the delegate HcP\n * @returns - **extractedKeys** array containing secret IDs (SFKs) from decrypted SPKs, from both given HcP and its parents ; can contain duplicates\n * - **hcpartyId** the given `hcpartyId` OR, if a parent exist, the HcP id of the top parent in the hierarchy (even if that parent has no delegations)\n */\n //TODO: even if there are no delegations for parent HCP (but the parent exists), the returned hcpartyId will be the one of the parent; is this ok?\n extractDelegationsSFKs(\n //TODO: suggested name: getSecretIDsSPKofHcpAndParentsFromDocument\n document:\n | models.Patient\n | models.Message\n | models.Contact\n | models.Document\n | models.Invoice\n | models.HealthElement\n | models.Receipt\n | models.Classification\n | models.CalendarItem\n | null,\n hcpartyId?: string\n ): Promise<{ extractedKeys: Array<string>; hcpartyId?: string }> {\n if (!document || !hcpartyId) {\n return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId }) //TODO: thow exception instead?\n }\n const delegationsForAllDelegates = document.delegations\n if (!delegationsForAllDelegates || !Object.keys(delegationsForAllDelegates).length) {\n console.log(`There is no delegation in document (${document.id})`)\n return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId })\n }\n return this.extractKeysFromDelegationsForHcpHierarchy(hcpartyId, document.id!, delegationsForAllDelegates)\n }\n\n /**\n * Gets the secret IDs (SFKs) inside decrypted SPKs of the given `document`, decrypted by the HcP with the given `hcpartyId` AND by its HcP parents\n * @param document : the object of which delegations (SPKs) to decrypt\n * @param hcpartyId : the id of the delegate HcP\n * @returns - **extractedKeys** array containing secret IDs (SFKs) from decrypted SPKs, from both given HcP and its parents ; can contain duplicates\n * - **hcpartyId** the given `hcpartyId` OR, if a parent exist, the HcP id of the top parent in the hierarchy (even if that parent has no delegations)\n */\n extractSFKsHierarchyFromDelegations(\n document:\n | models.Patient\n | models.Message\n | models.Contact\n | models.Document\n | models.Invoice\n | models.HealthElement\n | models.Receipt\n | models.Classification\n | models.CalendarItem\n | null,\n hcpartyId?: string\n ): Promise<Array<{ hcpartyId: string; extractedKeys: Array<string> }>> {\n if (!document || !hcpartyId) {\n return Promise.resolve([])\n }\n const delegationsForAllDelegates = document.delegations\n if (!delegationsForAllDelegates || !Object.keys(delegationsForAllDelegates).length) {\n console.log(`There is no delegation in document (${document.id})`)\n return Promise.resolve([])\n }\n return this.extractKeysHierarchyFromDelegationLikes(hcpartyId, document.id!, delegationsForAllDelegates)\n }\n\n // noinspection JSUnusedGlobalSymbols\n\n extractCryptedFKs(\n //TODO: suggested name: getSecretIDsCFKofHcpAndParentsFromDocument\n document:\n | models.Patient\n | models.Message\n | models.Contact\n | models.Document\n | models.Invoice\n | models.HealthElement\n | models.Receipt\n | models.CalendarItem\n | models.Classification\n | null,\n hcpartyId: string\n ): Promise<{ extractedKeys: Array<string>; hcpartyId: string }> {\n if (!document || !document.cryptedForeignKeys) {\n return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId })\n }\n const cfksForAllDelegates = document.cryptedForeignKeys\n if (!cfksForAllDelegates || !Object.keys(cfksForAllDelegates).length) {\n console.log(`There is no cryptedForeignKeys in document (${document.id})`)\n return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId })\n }\n return this.extractKeysFromDelegationsForHcpHierarchy(hcpartyId, document.id!, cfksForAllDelegates)\n }\n\n extractEncryptionsSKs(\n //TODO: suggested name: getSecretIDsEKofHcpAndParentsFromDocument\n document:\n | models.Patient\n | models.Message\n | models.Contact\n | models.Document\n | models.Invoice\n | models.Receipt\n | models.HealthElement\n | models.Classification,\n hcpartyId: string\n ): Promise<{ extractedKeys: Array<string>; hcpartyId: string }> {\n if (!document.encryptionKeys) {\n return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId })\n }\n const eckeysForAllDelegates = document.encryptionKeys\n if (!eckeysForAllDelegates || !Object.keys(eckeysForAllDelegates).length) {\n //console.log(`There is no encryption key in document (${document.id})`)\n return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId })\n }\n return this.extractKeysFromDelegationsForHcpHierarchy(hcpartyId, document.id!, eckeysForAllDelegates)\n }\n\n extractDelegationsSFKsAndEncryptionSKs(\n ety: models.Patient | models.Contact | models.Invoice | models.Document | models.HealthElement,\n ownerId: string\n ) {\n const delegationsSfksOwnerPromise = this.extractDelegationsSFKs(ety, ownerId).then((xks) => xks.extractedKeys) //Will climb up hierarchy\n const encryptionKeysOwnerPromise = this.extractEncryptionsSKs(ety, ownerId).then((xks) => xks.extractedKeys) //Will climb up hierarchy\n\n return Promise.all([delegationsSfksOwnerPromise, encryptionKeysOwnerPromise])\n }\n\n /**\n * Get decrypted generic secret IDs (secretIdSPKs, parentIds, secretIdEKs) from generic delegations (SPKs, CFKs, EKs)\n * 1. Get HealthCareParty from it's Id.\n * 2. Decrypt the keys of the given HCP.\n * 3. Decrypt the parent's key if it has parent.\n * 4. Return the decrypted key corresponding to the Health Care Party.\n * @param hcpartyId : the id of the delegate HcP (including its parents) for which to decrypt `extractedKeys`\n * @param objectId : the id of the object/document of which delegations to decrypt ; used just to log to console a message (Cryptographic mistake) in case the object id inside SPK, CFK, EK is different from this one\n * @param delegations : generic delegations (can be SPKs, CFKs, EKs) for all delegates from where to extract `extractedKeys`\n * @returns - **extractedKeys** array containing secret IDs from decrypted generic delegations, from both HCP with given `hcpartyId` and its parents; can contain duplicates\n * - **hcpartyId** the given `hcpartyId` OR, if a parent exist, the HCP id of the top parent in the hierarchy (even if that parent has no delegations)\n */\n //TODO: even if there are no delegations for parent HCP (but the parent exists), the returned hcpartyId will be the one of the parent\n extractKeysHierarchyFromDelegationLikes(\n //TODO suggested name: getSecretIdsOfHcpAndParentsFromGenericDelegations\n hcpartyId: string,\n objectId: string,\n delegations: { [key: string]: Array<models.Delegation> }\n ): Promise<Array<{ hcpartyId: string; extractedKeys: Array<string> }>> {\n return this.getDataOwner(hcpartyId).then(({ dataOwner: hcp }) =>\n (delegations[hcpartyId] && delegations[hcpartyId].length\n ? this.decryptAndImportAesHcPartyKeysInDelegations(hcpartyId, delegations, false).then((decryptedAndImportedAesHcPartyKeys) => {\n const collatedAesKeysFromDelegatorToHcpartyId: {\n [key: string]: { key: CryptoKey; rawKey: string }\n } = {}\n decryptedAndImportedAesHcPartyKeys.forEach((k) => (collatedAesKeysFromDelegatorToHcpartyId[k.delegatorId] = k))\n return this.decryptKeyInDelegationLikes(delegations[hcpartyId], collatedAesKeysFromDelegatorToHcpartyId, objectId!)\n })\n : Promise.resolve([])\n ).then((extractedKeys) =>\n (hcp as HealthcareParty).parentId\n ? this.extractKeysHierarchyFromDelegationLikes((hcp as HealthcareParty).parentId!, objectId, delegations).then((parentResponse) =>\n parentResponse.concat({ extractedKeys: extractedKeys, hcpartyId: hcpartyId })\n )\n : [{ extractedKeys: extractedKeys, hcpartyId: hcpartyId }]\n )\n )\n }\n\n /**\n * Get decrypted generic secret IDs (secretIdSPKs, parentIds, secretIdEKs) from generic delegations (SPKs, CFKs, EKs)\n * 1. Get HealthCareParty from it's Id.\n * 2. Decrypt the keys of the given HCP.\n * 3. Decrypt the parent's key if it has parent.\n * 4. Return the decrypted key corresponding to the Health Care Party.\n * @param hcpartyId : the id of the delegate HcP (including its parents) for which to decrypt `extractedKeys`\n * @param objectId : the id of the object/document of which delegations to decrypt ; used just to log to console a message (Cryptographic mistake) in case the object id inside SPK, CFK, EK is different from this one\n * @param delegations : generic delegations (can be SPKs, CFKs, EKs) for all delegates from where to extract `extractedKeys`\n * @returns - **extractedKeys** array containing secret IDs from decrypted generic delegations, from both HCP with given `hcpartyId` and its parents; can contain duplicates\n * - **hcpartyId** the given `hcpartyId` OR, if a parent exist, the HCP id of the top parent in the hierarchy (even if that parent has no delegations)\n */\n //TODO: even if there are no delegations for parent HCP (but the parent exists), the returned hcpartyId will be the one of the parent\n extractKeysFromDelegationsForHcpHierarchy(\n //TODO suggested name: getSecretIdsOfHcpAndParentsFromGenericDelegations\n hcpartyId: string,\n objectId: string,\n delegations: { [key: string]: Array<models.Delegation> }\n ): Promise<{ extractedKeys: Array<string>; hcpartyId: string }> {\n return this.getDataOwner(hcpartyId).then(({ dataOwner: hcp }) =>\n (delegations[hcpartyId] && delegations[hcpartyId].length\n ? this.decryptAndImportAesHcPartyKeysInDelegations(hcpartyId, delegations, false).then((decryptedAndImportedAesHcPartyKeys) => {\n const collatedAesKeysFromDelegatorToHcpartyId: {\n [key: string]: { key: CryptoKey; rawKey: string }\n } = {}\n decryptedAndImportedAesHcPartyKeys.forEach((k) => (collatedAesKeysFromDelegatorToHcpartyId[k.delegatorId] = k))\n return this.decryptKeyInDelegationLikes(delegations[hcpartyId], collatedAesKeysFromDelegatorToHcpartyId, objectId!)\n })\n : Promise.resolve([])\n ).then((extractedKeys) =>\n (hcp as HealthcareParty).parentId\n ? this.extractKeysFromDelegationsForHcpHierarchy((hcp as HealthcareParty).parentId!, objectId, delegations).then((parentResponse) =>\n _.assign(parentResponse, {\n extractedKeys: parentResponse.extractedKeys.concat(extractedKeys),\n })\n )\n : { extractedKeys: extractedKeys, hcpartyId: hcpartyId }\n )\n )\n }\n\n /**\n * Gets an array of generic secret IDs decrypted from a list of generic delegations (SPKs, CFKs, EKs) `delegationsArray`\n * If a particular generic delegation thows an exception when decrypted, the return value for it's secret ID will be 'false' and a message is logged to console\n * For each one of the delegations in the `delegationsArray`, it tries to decrypt with the decryptedHcPartyKey of the owner of that delegation;\n *\n * @param delegationsArray : generic delegations array\n * @param aesKeys : **key** HcP ids of delegators/owners in the `delegationsArray`, each with its own decryptedHcPartyKey\n * @param masterId : is the object id to which the generic delegation belongs to\n * - used only to check whether the object.id matches the one stored in the decrypted generic delegation item\n * - even if there's no match, the secret ID is kept as a valid result (and a message logged to console)\n * @returns array of generic secret IDs (secretIdSPK, parentId, secretIdEK)\n */\n decryptKeyInDelegationLikes(\n //TODO: suggested name: getSecretIdsFromGenericDelegations\n delegationsArray: Array<models.Delegation>,\n aesKeys: { [key: string]: { key: CryptoKey; rawKey: string } },\n masterId: string\n ): Promise<Array<string>> {\n const decryptPromises: Array<Promise<string | undefined>> = []\n for (let i = 0; i < (delegationsArray || []).length; i++) {\n var genericDelegationItem = delegationsArray[i]\n const aesKey = aesKeys[genericDelegationItem.owner!]\n if (aesKey) {\n decryptPromises.push(\n this._AES\n .decrypt(aesKey.key, hex2ua(genericDelegationItem.key!), aesKey.rawKey)\n .then((decryptedGenericDelegationKey: ArrayBuffer) => {\n const results = ua2string(decryptedGenericDelegationKey).split(':')\n\n const objectId = results[0] //must be the ID of the object, for checksum\n const genericSecretId = results[1]\n\n const details =\n 'object ID: ' + masterId + '; generic delegation from ' + genericDelegationItem.owner + ' to ' + genericDelegationItem.delegatedTo\n\n if (!objectId) console.warn('Object id is empty; ' + details)\n if (!genericSecretId) console.warn('Secret id is empty; ' + details)\n\n if (objectId !== masterId) {\n /*console.log(\n \"Cryptographic mistake: object ID is not equal to the expected concatenated id within decrypted generic delegation. This may happen when patients have been merged; \" +\n details\n )*/\n }\n\n return genericSecretId\n })\n .catch((err) => {\n console.log(\n `Could not decrypt generic delegation in object with ID: ${masterId} from ${genericDelegationItem.owner} to ${genericDelegationItem.delegatedTo}: ${err}`\n )\n return undefined\n })\n )\n } else {\n console.log(`Could not find aes key for object with ID: ${masterId}`)\n }\n }\n\n return Promise.all(decryptPromises).then((genericSecretId) => genericSecretId.filter((id) => !!id) as string[])\n }\n\n loadKeyPairsAsTextInBrowserLocalStorage(healthcarePartyId: string, privateKey: Uint8Array) {\n return this.getDataOwner(healthcarePartyId)\n .then(({ dataOwner }) => dataOwner.publicKey)\n .then((publicKey?: string) => {\n if (!publicKey) {\n throw new Error('No public key has been defined for hcp')\n }\n return this._RSA.importKeyPair('jwk', this._utils.pkcs8ToJwk(privateKey), 'jwk', this._utils.spkiToJwk(hex2ua(publicKey)))\n })\n .then((keyPair: { publicKey: CryptoKey; privateKey: CryptoKey }) => {\n this._RSA.rsaKeyPairs[healthcarePartyId] = keyPair\n return this._RSA.exportKeys(keyPair, 'jwk', 'jwk')\n })\n .then((exportedKeyPair) => {\n return this._RSA.storeKeyPair(healthcarePartyId, exportedKeyPair)\n })\n }\n\n // noinspection JSUnusedGlobalSymbols\n loadKeyPairsAsJwkInBrowserLocalStorage(healthcarePartyId: string, privKey: JsonWebKey) {\n return this.hcpartyBaseApi\n .getPublicKey(healthcarePartyId)\n .then((publicKey: models.PublicKey) => {\n const pubKey = this._utils.spkiToJwk(hex2ua(publicKey.hexString!))\n\n privKey.n = pubKey.n\n privKey.e = pubKey.e\n\n return this._RSA.importKeyPair('jwk', privKey, 'jwk', pubKey)\n })\n .then((keyPair: { publicKey: CryptoKey; privateKey: CryptoKey }) => {\n this._RSA.rsaKeyPairs[healthcarePartyId] = keyPair\n return this._RSA.exportKeys(keyPair, 'jwk', 'jwk')\n })\n .then((exportedKeyPair: { publicKey: any; privateKey: any }) => {\n return this._RSA.storeKeyPair(healthcarePartyId, exportedKeyPair)\n })\n }\n\n // noinspection JSUnusedGlobalSymbols\n loadKeyPairsInBrowserLocalStorage(healthcarePartyId: string, file: Blob): Promise<void> {\n const fr = new FileReader()\n return new Promise((resolve, reject) => {\n fr.onerror = reject\n fr.onabort = reject\n fr.onload = (e: any) => {\n //TODO remove any\n const privateKey = e.target.result as string\n this.loadKeyPairsAsTextInBrowserLocalStorage(healthcarePartyId, hex2ua(privateKey)).then(resolve).catch(reject)\n }\n fr.readAsText(file)\n })\n }\n\n // noinspection JSUnusedGlobalSymbols\n saveKeychainInBrowserLocalStorage(id: string, keychain: number) {\n localStorage.setItem(\n this.keychainLocalStoreIdPrefix + id,\n b2a(new Uint8Array(keychain).reduce((data, byte) => data + String.fromCharCode(byte), ''))\n )\n }\n\n saveKeychainInBrowserLocalStorageAsBase64(id: string, keyChainB64: string) {\n localStorage.setItem(this.keychainLocalStoreIdPrefix + id, keyChainB64)\n }\n\n // noinspection JSUnusedGlobalSymbols\n saveKeychainValidityDateInBrowserLocalStorage(id: string, date: string) {\n if (!id) return\n\n if (!date) {\n localStorage.removeItem(this.keychainValidityDateLocalStoreIdPrefix + id)\n } else {\n localStorage.setItem(this.keychainValidityDateLocalStoreIdPrefix + id, date)\n }\n }\n\n /**\n * Populate the HCP.options dict with an encrypted eHealth certificate and unencryped expiry date.\n * Any potentially unencrypted certificates will be pruned from the HCP.\n * @param hcpId Id of the hcp to modify\n * @returns modified HCP\n */\n async saveKeyChainInHCPFromLocalStorage(hcpId: string): Promise<models.HealthcareParty> {\n return await this.hcpartyBaseApi.getHealthcareParty(hcpId).then(async (hcp: HealthcareParty) => {\n let aesKey: CryptoKey | null = null\n try {\n aesKey = _.find(\n await this.decryptAndImportAesHcPartyKeysForDelegators([hcp.id!], hcp.id!),\n (delegator: { delegatorId: string }) => delegator.delegatorId === hcp.id\n )!.key\n } catch (e) {\n console.error('Error while importing the AES key.')\n }\n if (!aesKey) {\n console.error('No encryption key!')\n }\n\n const opts = hcp.options || {}\n\n const crt = this.getKeychainInBrowserLocalStorageAsBase64(hcp.id!!)\n if (!!aesKey && !!crt) {\n let crtEncrypted: ArrayBuffer | null = null\n try {\n crtEncrypted = await this.AES.encrypt(aesKey, new Uint8Array(string2ua(atob(crt))))\n } catch (e) {\n console.error('Error while encrypting the certificate', e)\n }\n\n // add the encrypted certificate to the options\n _.set(opts, this.hcpPreferenceKeyEhealthCert, ua2string(new Uint8Array(crtEncrypted!)))\n }\n\n const crtValidityDate = this.getKeychainValidityDateInBrowserLocalStorage(hcp.id!!)\n if (!!crtValidityDate) {\n _.set(opts, this.hcpPreferenceKeyEhealthCertDate, crtValidityDate)\n }\n\n hcp.options = opts\n return hcp\n })\n }\n\n importKeychainInBrowserFromHCP(hcpId: string): Promise<void> {\n return this.hcpartyBaseApi.getHealthcareParty(hcpId).then(async (hcp: HealthcareParty) => {\n let crtCryp: Uint8Array | null = null\n if (!!hcp.options && !!hcp.options[this.hcpPreferenceKeyEhealthCert]) {\n crtCryp = string2ua(hcp.options[this.hcpPreferenceKeyEhealthCert])\n }\n\n const crtValidityDate = _.get(hcp.options, this.hcpPreferenceKeyEhealthCertDate)\n\n // store the validity date\n if (!!crtValidityDate) {\n this.saveKeychainValidityDateInBrowserLocalStorage(hcp.id!!, crtValidityDate)\n }\n\n let crt: ArrayBuffer | null = null\n let decryptionKey: CryptoKey | null = null\n try {\n decryptionKey = _.find(\n await this.decryptAndImportAesHcPartyKeysForDelegators([hcp.id!], hcp.id!),\n (delegator: { delegatorId: string }) => delegator.delegatorId === hcp.id\n )!.key\n } catch (e) {\n console.error('Error while importing the AES key.')\n }\n if (!decryptionKey) {\n throw new Error('No encryption key! eHealth certificate cannot be decrypted.')\n }\n\n if (!!crtCryp && decryptionKey) {\n try {\n crt = await this.AES.decrypt(decryptionKey, crtCryp)\n } catch (e) {\n console.error(e)\n }\n }\n\n if (!crt) {\n throw new Error(`Error while saving certificate in browser local storage! Hcp ${hcp.id} has no certificate.`)\n } else {\n this.saveKeychainInBrowserLocalStorageAsBase64(hcp.id!!, btoa(String.fromCharCode.apply(null, new Uint8Array(crt) as any)))\n }\n\n return\n })\n }\n\n /**\n * Synchronizes the eHealth certificate from the database into the LocalStorage, returning information on the presence\n * of certificate data in either place.\n *\n * @param hcpId The healthcare party id\n * @returns A Promise for an object that represents the existence of a certificate in local storage and in the DB,\n * through the two boolean properties \"local\" and \"remote\".\n */\n syncEhealthCertificateFromDatabase(hcpId: string): Promise<{ remote: boolean; local: boolean }> {\n return this.hcpartyBaseApi.getHealthcareParty(hcpId).then((hcp: HealthcareParty) => {\n const remoteCertificate = _.get(hcp.options, this.hcpPreferenceKeyEhealthCert)\n const localCertificate = this.getKeychainInBrowserLocalStorageAsBase64(hcp.id!)\n\n if (remoteCertificate) {\n return this.importKeychainInBrowserFromHCP(hcp.id!)\n .then(() => ({ local: true, remote: true }))\n .catch(() => ({ local: !!localCertificate, remote: true }))\n } else {\n return { local: !!localCertificate, remote: !!remoteCertificate }\n }\n })\n }\n\n getKeychainInBrowserLocalStorageAsBase64(id: string) {\n return localStorage.getItem(this.keychainLocalStoreIdPrefix + id)\n }\n\n getKeychainValidityDateInBrowserLocalStorage(id: string) {\n return localStorage.getItem(this.keychainValidityDateLocalStoreIdPrefix + id)\n }\n\n // noinspection JSUnusedGlobalSymbols\n loadKeychainFromBrowserLocalStorage(id: string) {\n const lsItem = localStorage.getItem('org.taktik.icure.ehealth.keychain.' + id)\n return lsItem !== null ? b64_2uas(lsItem) : null\n }\n\n generateKeyForDelegate(ownerId: string, delegateId: string): PromiseLike<models.HealthcareParty | models.Patient> {\n //Preload hcp and patient because we need them and they are going to be invalidated from the caches\n return this._utils.notConcurrent(this.generateKeyConcurrencyMap, ownerId, () =>\n Promise.all([this.getDataOwner(ownerId), this.getDataOwner(delegateId)]).then(\n ([{ type: ownerType, dataOwner: owner }, { dataOwner: delegate }]) => {\n if ((owner.hcPartyKeys || {})[delegateId]) {\n return owner\n }\n const genProm = new Promise<['hcp' | 'patient' | 'device', models.HealthcareParty | models.Patient]>((resolve, reject) => {\n delegate.publicKey\n ? this._AES\n .generateCryptoKey(true)\n .then((AESKey) => {\n const ownerPubKey = this._utils.spkiToJwk(hex2ua(owner.publicKey!))\n const delegatePubKey = this._utils.spkiToJwk(hex2ua(delegate.publicKey!))\n\n return Promise.all([\n this._RSA.importKey('jwk', ownerPubKey, ['encrypt']),\n this._RSA.importKey('jwk', delegatePubKey, ['encrypt']),\n ]).then(([ownerImportedKey, delegateImportedKey]) =>\n Promise.all([\n this._RSA.encrypt(ownerImportedKey, hex2ua(AESKey as string)),\n this._RSA.encrypt(delegateImportedKey, hex2ua(AESKey as string)),\n ])\n )\n })\n .then(([ownerKey, delegateKey]) => (owner.hcPartyKeys![delegateId] = [ua2hex(ownerKey), ua2hex(delegateKey)]))\n .then(() => {\n ownerType === 'hcp'\n ? this.hcpartyBaseApi.modifyHealthcareParty(owner as HealthcareParty).then((hcp: HealthcareParty) => resolve(['hcp', hcp]))\n : ownerType === 'patient'\n ? this.hcpartyBaseApi.modifyHealthcareParty(owner as HealthcareParty).then((hcp: HealthcareParty) => resolve(['patient', hcp]))\n : this.deviceBaseApi.updateDevice(owner as Device).then((dev: Device) => resolve(['device', dev]))\n })\n .catch((e) => reject(e))\n : reject(new Error(`Missing public key for delegate ${delegateId}`))\n })\n\n // invalidate the hcPartyKeys cache for the delegate hcp (who was not modified, but the view for its\n // id was updated)\n this.hcPartyKeysRequestsCache[delegateId] = genProm.then(() => this.forceGetHcPartyKeysForDelegate(delegateId))\n return genProm.then((res) => res[1])\n }\n )\n )\n }\n\n private getDataOwner(ownerId: string) {\n return (this.hcpartyBaseApi as IccHcpartyXApi)\n .getHealthcareParty(ownerId, true)\n .then((x) => ({ type: 'hcp', dataOwner: x }))\n .catch(() => this.deviceBaseApi.getDevice(ownerId).then((x) => ({ type: 'device', dataOwner: x })))\n .catch(() => this.patientBaseApi.getPatient(ownerId).then((x) => ({ type: 'patient', dataOwner: x })))\n }\n\n // noinspection JSUnusedGlobalSymbols\n checkPrivateKeyValidity(hcp: models.HealthcareParty | models.Patient): Promise<boolean> {\n return new Promise<boolean>((resolve) => {\n this._RSA\n .importKey('jwk', this._utils.spkiToJwk(hex2ua(hcp.publicKey!)), ['encrypt'])\n .then((k) => this._RSA.encrypt(k, utf8_2ua('shibboleth')))\n .then((cipher) => {\n const kp = this._RSA.loadKeyPairNotImported(hcp.id!)\n return this._RSA\n .importKeyPair('jwk', kp.privateKey, 'jwk', kp.publicKey)\n .then((ikp) => this._RSA.decrypt(ikp.privateKey, new Uint8Array(cipher)))\n })\n .then((plainText) => {\n const pt = ua2utf8(plainText)\n console.log(pt)\n resolve(pt === 'shibboleth')\n })\n .catch(() => resolve(false))\n })\n }\n\n private throwDetailedExceptionForInvalidParameter(argName: string, argValue: any, methodName: string, methodArgs: any) {\n if (argValue) return\n\n let details = '\\nMethod name: icc-crypto-x-api.' + methodName + '()\\nArguments:'\n\n if (methodArgs) {\n try {\n const argsArray = [...methodArgs]\n _.each(argsArray, (arg, index) => (details += '\\n[' + index + ']: ' + JSON.stringify(arg)))\n } catch (ex) {\n details += '; a problem occured while logging arguments details: ' + ex\n }\n }\n\n throw '### THIS SHOULD NOT HAPPEN: ' + argName + ' has an invalid value: ' + argValue + details\n }\n\n getEncryptionDecryptionKeys(\n healthcarePartyId: string,\n document:\n | models.AccessLog\n | models.CalendarItem\n | models.Classification\n | models.Contact\n | models.Document\n | models.Form\n | models.HealthElement\n | models.Invoice\n | models.Message\n | models.Receipt\n | models.Patient\n ): Promise<Array<string> | null> {\n return !document.id\n ? Promise.resolve(null)\n : this.extractKeysFromDelegationsForHcpHierarchy(\n healthcarePartyId,\n document.id,\n (document.encryptionKeys && Object.keys(document.encryptionKeys).length && document.encryptionKeys) || document.delegations!\n )\n .then(({ extractedKeys }) => extractedKeys)\n .catch(() => null)\n }\n\n async encryptDecrypt(\n method: 'encrypt' | 'decrypt',\n content: Uint8Array | ArrayBuffer,\n edKey?: string,\n user?: User,\n documentObject?: models.Document\n ): Promise<Uint8Array | Array<any> | any> {\n if (!content || !(edKey || (user?.healthcarePartyId && documentObject))) return content\n\n if (edKey) {\n const importedEdKey = await this._AES.importKey('raw', hex2ua(edKey.replace(/-/g, '')))\n try {\n return this._AES[method](importedEdKey, content)\n } catch (e) {\n return content\n }\n }\n\n const sfks = await this.extractKeysFromDelegationsForHcpHierarchy(user?.healthcarePartyId!, documentObject?.id!, documentObject?.encryptionKeys!)\n const importedEdKey = await this._AES.importKey('raw', hex2ua(sfks.extractedKeys[0].replace(/-/g, '')))\n try {\n return this._AES[method](importedEdKey, content)\n } catch (e) {\n return content\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"icc-doctemplate-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-doctemplate-x-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icc-doctemplate-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-doctemplate-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccDoctemplateApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport { extend } from 'lodash'\nimport * as models from '../icc-api/model/models'\nimport { DocumentTemplate } from '../icc-api/model/models'\nimport { string2ua } from './utils/binary-utils'\nimport { XHR } from '../icc-api/api/XHR'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccDoctemplateXApi extends IccDoctemplateApi {\n crypto: IccCryptoXApi\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n this.fetchImpl = fetchImpl\n }\n\n newInstance(user: models.User, template: string, c: any): Promise<DocumentTemplate> {\n return new Promise<DocumentTemplate>((resolve, reject) => {\n const documentTemplate: DocumentTemplate = extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.DocumentTemplate',\n owner: user.id,\n created: new Date().getTime(),\n modified: new Date().getTime(),\n guid: this.crypto.randomUuid(),\n group: null,\n specialty: null,\n attachment: string2ua(template),\n mainUti: 'public.plain-text',\n },\n c || {}\n )\n if (documentTemplate.group && documentTemplate.group.guid == null) {\n documentTemplate.group.guid = this.crypto.randomUuid()\n }\n\n //sauver l doctemplate vide\n\n if (template) {\n //save attachement\n }\n\n return resolve(documentTemplate)\n })\n }\n\n // noinspection JSUnusedLocalSymbols\n findAllByOwnerId(ownerId: string): Promise<Array<models.DocumentTemplate>> {\n return new Promise(function (resolve, reject) {\n reject(console.log('findByHCPartyPatientSecretFKeys not implemented in document API!'))\n })\n }\n\n // noinspection JSUnusedGlobalSymbols\n getAttachmentUrl(documentId: string, attachmentId: string) {\n return (\n this.host + '/doctemplate/{documentId}/attachment/{attachmentId}'.replace('{documentId}', documentId).replace('{attachmentId}', attachmentId)\n )\n }\n\n getAttachmentText(documentTemplateId: string, attachmentId: string): Promise<any | boolean> {\n const _body = null\n\n const _url =\n this.host +\n '/doctemplate/{documentTemplateId}/attachmentText/{attachmentId}'\n .replace('{documentTemplateId}', documentTemplateId + '')\n .replace('{attachmentId}', attachmentId + '') +\n '?ts=' +\n new Date().getTime()\n\n return XHR.sendCommand('GET', _url, this.headers, _body, this.fetchImpl)\n .then((doc) => {\n if (doc.contentType.startsWith('application/octet-stream')) {\n const enc = new TextDecoder('utf-8')\n const arr = new Uint8Array(doc.body)\n return enc.decode(arr)\n } else if (doc.contentType.startsWith('text/plain') || doc.contentType.startsWith('text/html') || doc.contentType.startsWith('text/xml')) {\n return doc.body\n } else {\n return false\n }\n })\n .catch((err) => this.handleError(err))\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"icc-document-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-document-x-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icc-document-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-document-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccAuthApi, IccDocumentApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as _ from 'lodash'\nimport { XHR } from '../icc-api/api/XHR'\nimport * as models from '../icc-api/model/models'\n\nimport { a2b, hex2ua, string2ua, ua2string } from './utils/binary-utils'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccDocumentXApi extends IccDocumentApi {\n crypto: IccCryptoXApi\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n authApi: IccAuthApi\n\n /** maps invalid UTI values to corresponding MIME type for backward-compatibility (pre-v1.0.117) */\n compatUtiRevDefs: { [key: string]: string } = {\n 'com.adobe.encapsulatedPostscript': 'image/eps',\n 'com.adobe.illustrator.aiImage': 'application/illustrator',\n 'com.adobe.indesignImage': 'image/indesign',\n 'com.adobe.photoshopImage': 'image/psd',\n 'com.adobe.postscriptPfaFont': 'application/x-font-type1',\n 'com.adobe.postscriptPfbFont': 'application/x-font-type1',\n 'com.allume.stuffitArchive': 'application/stuffit',\n 'com.apple.binhexArchive': 'application/binhex',\n 'com.apple.diskImageUdif': 'application/x-apple-diskimage',\n 'com.apple.macbinaryArchive': 'application/macbinary',\n 'com.apple.quartzComposerComposition': 'application/x-quartzcomposer',\n 'com.apple.quicktimeImage': 'image/x-quicktime',\n 'com.apple.quicktimeMovie': 'video/quicktime',\n 'com.js.efxFax': 'image/efax',\n 'com.macromedia.shockwaveFlash': 'application/x-shockwave-flash',\n 'com.microsoft.advancedStreamRedirector': 'video/x-ms-asx',\n 'com.microsoft.advancedSystemsFormat': 'video/x-ms-asf',\n 'com.microsoft.waveformAudio': 'audio/wave',\n 'com.microsoft.windowsDynamicLinkLibrary': 'application/x-msdownload',\n 'com.microsoft.windowsExecutable': 'application/exe',\n 'com.microsoft.windowsMediaWax': 'audio/x-ms-wax',\n 'com.microsoft.windowsMediaWm': 'video/x-ms-wm',\n 'com.microsoft.windowsMediaWma': 'audio/x-ms-wma',\n 'com.microsoft.windowsMediaWmd': 'video/x-ms-wmd',\n 'com.microsoft.windowsMediaWmp': 'video/x-ms-wmp',\n 'com.microsoft.windowsMediaWmv': 'video/x-ms-wmv',\n 'com.microsoft.windowsMediaWmx': 'video/x-ms-wmx',\n 'com.microsoft.windowsMediaWmz': 'video/x-ms-wmz',\n 'com.microsoft.windowsMediaWvx': 'video/x-ms-wvx',\n 'com.netscape.javascriptSource': 'text/javascript',\n 'com.pkware.zipArchive': 'application/zip',\n 'com.rarlab.rarArchive': 'application/rar',\n 'com.redhat.redhatPackage': 'application/x-redhat-package',\n 'com.sgi.sgiImage': 'image/sgi',\n 'com.sun.javaAppDescriptor': 'text/vnd.sun.j2me.app-descriptor',\n 'com.sun.javaArchive': 'application/java-archive',\n 'com.sun.javaClass': 'application/java',\n 'com.sun.javaSource': 'text/x-java-source',\n 'com.sun.javaWebStart': 'application/jnlp',\n 'com.truevision.tgaImage': 'image/tga',\n 'org.bzip.bzip2Archive': 'application/x-bzip2',\n 'org.debian.debianPackage': 'application/x-debian-package',\n 'org.gnu.gnuTarArchive': 'application/x-gtar',\n 'org.gnu.gnuZipArchive': 'application/gzip',\n 'org.oasis.opendocument.textMaster': 'application/vnd.oasis.opendocument.text-master',\n 'org.oasis.opendocument.textWeb': 'application/vnd.oasis.opendocument.text-web',\n 'org.xiph.oggTheora': 'video/ogg',\n 'org.xiph.oggVorbis': 'audio/ogg',\n 'public.aifcAudio': 'audio/aiff',\n 'public.aiffAudio': 'audio/aiff',\n 'public.assemblySource': 'text/x-asm',\n 'public.cHeader': 'text/x-c-header',\n 'public.cpioArchive': 'application/x-cpio',\n 'public.cPlusPlusHeader': 'text/x-c++-hdr',\n 'public.cPlusPlusSource': 'application/x-cplusplus',\n 'public.cshScript': 'application/x-csh',\n 'public.cSource': 'text/x-c-code',\n 'public.isoImage': 'application/x-iso-image',\n 'public.mpeg4Audio': 'audio/mp4',\n 'public.objectiveCPlusPlusSource': 'text/x-objcppsrc',\n 'public.objectiveCSource': 'text/x-objcsrc',\n 'public.opentypeFont': 'font/opentype',\n 'public.perlScript': 'text/x-perl',\n 'public.phpScript': 'text/php',\n 'public.plainText': 'text/plain',\n 'public.pythonScript': 'text/x-python-script',\n 'public.shellScript': 'application/x-sh',\n 'public.tarArchive': 'application/tar',\n 'public.truetypeTtfFont': 'application/x-font-ttf',\n 'public.ulawAudio': 'audio/au',\n 'public.xbitmapImage': 'image/xbm',\n 'unofficial.atomFeed': 'application/atom+xml',\n 'unofficial.m3u8Playlist': 'application/x-mpegURL',\n 'unofficial.plsPlaylist': 'audio/scpls',\n 'unofficial.rdfFeed': 'application/rdf+xml',\n 'unofficial.rssFeed': 'application/rss+xml',\n }\n\n utiRevDefs: { [key: string]: string } = {\n ...this.compatUtiRevDefs,\n 'com.adobe.encapsulated-postscript': 'image/eps',\n 'com.adobe.illustrator.ai-image': 'application/illustrator',\n 'com.adobe.indesign-image': 'image/indesign',\n 'com.adobe.pdf': 'application/pdf',\n 'com.adobe.photoshop-image': 'image/psd',\n 'com.adobe.postscript': 'application/postscript',\n 'com.adobe.postscript-pfa-font': 'application/x-font-type1',\n 'com.adobe.postscript-pfb-font': 'application/x-font-type1',\n 'com.allume.stuffit-archive': 'application/stuffit',\n 'com.apple.applescript.script': 'application/x-applescript',\n 'com.apple.applescript.text': 'application/x-applescript',\n 'com.apple.binhex-archive': 'application/binhex',\n 'com.apple.disk-image-udif': 'application/x-apple-diskimage',\n 'com.apple.ical.ics': 'text/calendar',\n 'com.apple.ical.vcs': 'text/x-vcalendar',\n 'com.apple.macbinary-archive': 'application/macbinary',\n 'com.apple.pict': 'image/pict',\n 'com.apple.quartz-composer-composition': 'application/x-quartzcomposer',\n 'com.apple.quicktime-image': 'image/x-quicktime',\n 'com.apple.quicktime-movie': 'video/quicktime',\n 'com.bittorrent.torrent': 'application/x-bittorrent',\n 'com.compuserve.gif': 'image/gif',\n 'com.js.efx-fax': 'image/efax',\n 'com.kodak.flashpix.image': 'image/vndfpx',\n 'com.lizardtech.djvu': 'image/vnd.djvu',\n 'com.macromedia.shockwave-flash': 'application/x-shockwave-flash',\n 'com.microsoft.advanced-stream-redirector': 'video/x-ms-asx',\n 'com.microsoft.advanced-systems-format': 'video/x-ms-asf',\n 'com.microsoft.bmp': 'image/bmp',\n 'com.microsoft.excel.xls': 'application/excel',\n 'com.microsoft.ico': 'image/x-icon',\n 'com.microsoft.powerpoint.ppt': 'application/powerpoint',\n 'com.microsoft.waveform-audio': 'audio/wave',\n 'com.microsoft.windows-dynamic-link-library': 'application/x-msdownload',\n 'com.microsoft.windows-executable': 'application/exe',\n 'com.microsoft.windows-media-wax': 'audio/x-ms-wax',\n 'com.microsoft.windows-media-wm': 'video/x-ms-wm',\n 'com.microsoft.windows-media-wma': 'audio/x-ms-wma',\n 'com.microsoft.windows-media-wmd': 'video/x-ms-wmd',\n 'com.microsoft.windows-media-wmp': 'video/x-ms-wmp',\n 'com.microsoft.windows-media-wmv': 'video/x-ms-wmv',\n 'com.microsoft.windows-media-wmx': 'video/x-ms-wmx',\n 'com.microsoft.windows-media-wmz': 'video/x-ms-wmz',\n 'com.microsoft.windows-media-wvx': 'video/x-ms-wvx',\n 'com.microsoft.word.doc': 'application/msword',\n 'com.netscape.javascript-source': 'text/javascript',\n 'com.pkware.zip-archive': 'application/zip',\n 'com.rarlab.rar-archive': 'application/rar',\n 'com.real.realaudio': 'audio/vnd.rn-realaudio',\n 'com.real.realmedia': 'application/vnd.rn-realmedia',\n 'com.real.smil': 'application/smil',\n 'com.redhat.redhat-package': 'application/x-redhat-package',\n 'com.sgi.sgi-image': 'image/sgi',\n 'com.soundblaster.soundfont': 'application/x-soundfont',\n 'com.sun.java-app-descriptor': 'text/vnd.sun.j2me.app-descriptor',\n 'com.sun.java-archive': 'application/java-archive',\n 'com.sun.java-class': 'application/java',\n 'com.sun.java-source': 'text/x-java-source',\n 'com.sun.java-web-start': 'application/jnlp',\n 'com.truevision.tga-image': 'image/tga',\n 'org.bzip.bzip2-archive': 'application/x-bzip2',\n 'org.debian.debian-package': 'application/x-debian-package',\n 'org.gnu.gnu-tar-archive': 'application/x-gtar',\n 'org.gnu.gnu-zip-archive': 'application/gzip',\n 'org.neooffice.calc': 'application/vnd.sun.xml.calc',\n 'org.neooffice.draw': 'application/vnd.sun.xml.draw',\n 'org.neooffice.global': 'application/vnd.sun.xml.writer.global',\n 'org.neooffice.impress': 'application/vnd.sun.xml.impress',\n 'org.neooffice.math': 'application/vnd.sun.xml.math',\n 'org.neooffice.writer': 'application/vnd.sun.xml.writer',\n 'org.oasis.opendocument.chart': 'application/vnd.oasis.opendocument.chart',\n 'org.oasis.opendocument.database': 'application/vnd.oasis.opendocument.database',\n 'org.oasis.opendocument.formula': 'application/vnd.oasis.opendocument.formula',\n 'org.oasis.opendocument.graphics': 'application/vnd.oasis.opendocument.graphics',\n 'org.oasis.opendocument.image': 'application/vnd.oasis.opendocument.image',\n 'org.oasis.opendocument.presentation': 'application/vnd.oasis.opendocument.presentation',\n 'org.oasis.opendocument.spreadsheet': 'application/vnd.oasis.opendocument.spreadsheet',\n 'org.oasis.opendocument.text': 'application/vnd.oasis.opendocument.text',\n 'org.oasis.opendocument.text-master': 'application/vnd.oasis.opendocument.text-master',\n 'org.oasis.opendocument.text-web': 'application/vnd.oasis.opendocument.text-web',\n 'org.tug.tex': 'text/tex',\n 'org.xiph.flac': 'audio/flac',\n 'org.xiph.ogg-theora': 'video/ogg',\n 'org.xiph.ogg-vorbis': 'audio/ogg',\n 'public.3gpp': 'video/3gpp',\n 'public.3gpp2': 'video/3gpp2',\n 'public.aifc-audio': 'audio/aiff',\n 'public.aiff-audio': 'audio/aiff',\n 'public.assembly-source': 'text/x-asm',\n 'public.avi': 'video/avi',\n 'public.c-header': 'text/x-c-header',\n 'public.cpio-archive': 'application/x-cpio',\n 'public.c-plus-plus-header': 'text/x-c++-hdr',\n 'public.c-plus-plus-source': 'application/x-cplusplus',\n 'public.csh-script': 'application/x-csh',\n 'public.c-source': 'text/x-c-code',\n 'public.css': 'text/css',\n 'public.dv': 'video/x-dv',\n 'public.flv': 'video/x-flv',\n 'public.html': 'text/html',\n 'public.iso-image': 'application/x-iso-image',\n 'public.jpeg': 'image/jpeg',\n 'public.jpeg2000': 'image/jp2',\n 'public.midi': 'audio/midi',\n 'public.mka': 'audio/x-matroska',\n 'public.mkv': 'video/x-matroska',\n 'public.mp3': 'audio/mp3',\n 'public.mpeg': 'video/mpeg',\n 'public.mpeg4': 'video/mp4',\n 'public.mpeg4-audio': 'audio/mp4',\n 'public.mpegts': 'video/MP2T',\n 'public.objective-c-plus-plus-source': 'text/x-objcppsrc',\n 'public.objective-c-source': 'text/x-objcsrc',\n 'public.opentype-font': 'font/opentype',\n 'public.perl-script': 'text/x-perl',\n 'public.php-script': 'text/php',\n 'public.plain-text': 'text/plain',\n 'public.png': 'image/png',\n 'public.python-script': 'text/x-python-script',\n 'public.rtf': 'text/rtf',\n 'public.shell-script': 'application/x-sh',\n 'public.tar-archive': 'application/tar',\n 'public.tiff': 'image/tiff',\n 'public.truetype-ttf-font': 'application/x-font-ttf',\n 'public.ulaw-audio': 'audio/au',\n 'public.vcard': 'text/vcard',\n 'public.webm': 'video/webm',\n 'public.xbitmap-image': 'image/xbm',\n 'public.xml': 'text/xml',\n 'unofficial.atom-feed': 'application/atom+xml',\n 'unofficial.m3u8-playlist': 'application/x-mpegURL',\n 'unofficial.opml': 'text/x-opml',\n 'unofficial.pls-playlist': 'audio/scpls',\n 'unofficial.rdf-feed': 'application/rdf+xml',\n 'unofficial.rss-feed': 'application/rss+xml',\n }\n\n utiExts: { [key: string]: string } = {\n jpg: 'public.jpeg',\n jpeg: 'public.jpeg',\n png: 'public.png',\n rtf: 'public.rtf',\n mpeg: 'public.mpeg',\n mpg: 'public.mpeg',\n html: 'public.html',\n htm: 'public.html',\n pdf: 'com.adobe.pdf',\n xls: 'com.microsoft.excel.xls',\n xlsx: 'com.microsoft.excel.xls',\n doc: 'com.microsoft.word.doc',\n docx: 'com.microsoft.word.doc',\n }\n\n utiDefs: { [key: string]: string } = {\n 'application/atom+xml': 'unofficial.atom-feed',\n 'application/bat': 'com.microsoft.windows-executable',\n 'application/binhex': 'com.apple.binhex-archive',\n 'application/binhex4': 'com.apple.binhex-archive',\n 'application/ecmascript': 'com.netscape.javascript-source',\n 'application/eps': 'com.adobe.encapsulated-postscript',\n 'application/excel': 'com.microsoft.excel.xls',\n 'application/exe': 'com.microsoft.windows-executable',\n 'application/gnutar': 'public.tar-archive',\n 'application/gzip': 'org.gnu.gnu-zip-archive',\n 'application/illustrator': 'com.adobe.illustrator.ai-image',\n 'application/indesign': 'com.adobe.indesign-image',\n 'application/java-archive': 'com.sun.java-archive',\n 'application/java-byte-code': 'com.sun.java-class',\n 'application/java': 'com.sun.java-class',\n 'application/javascript': 'com.netscape.javascript-source',\n 'application/jnlp': 'com.sun.java-web-start',\n 'application/latex': 'org.tug.tex',\n 'application/mac-binary': 'com.apple.macbinary-archive',\n 'application/mac-binhex': 'com.apple.binhex-archive',\n 'application/mac-binhex40': 'com.apple.binhex-archive',\n 'application/macbinary': 'com.apple.macbinary-archive',\n 'application/mspowerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/msword': 'com.microsoft.word.doc',\n 'application/octet-stream': 'com.microsoft.windows-executable',\n 'application/pdf': 'com.adobe.pdf',\n 'application/photoshop': 'com.adobe.photoshop-image',\n 'application/php': 'public.php-script',\n 'application/plain': 'public.plain-text',\n 'application/postscript': 'com.adobe.postscript',\n 'application/powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/rar': 'com.rarlab.rar-archive',\n 'application/rdf+xml': 'unofficial.rdf-feed',\n 'application/rss+xml': 'unofficial.rss-feed',\n 'application/rtf': 'public.rtf',\n 'application/smil': 'com.real.smil',\n 'application/stuffit': 'com.allume.stuffit-archive',\n 'application/tar': 'public.tar-archive',\n 'application/tga': 'com.truevision.tga-image',\n 'application/vnd.fpx': 'com.kodak.flashpix.image',\n 'application/vnd.ms-excel': 'com.microsoft.excel.xls',\n 'application/vnd.ms-powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/vnd.oasis.opendocument.chart': 'org.oasis.opendocument.chart',\n 'application/vnd.oasis.opendocument.database': 'org.oasis.opendocument.database',\n 'application/vnd.oasis.opendocument.formula': 'org.oasis.opendocument.formula',\n 'application/vnd.oasis.opendocument.graphics-template': 'org.oasis.opendocument.graphics',\n 'application/vnd.oasis.opendocument.graphics': 'org.oasis.opendocument.graphics',\n 'application/vnd.oasis.opendocument.image': 'org.oasis.opendocument.image',\n 'application/vnd.oasis.opendocument.presentation-template': 'org.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.presentation': 'org.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet-template': 'org.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.spreadsheet': 'org.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text-master': 'org.oasis.opendocument.text-master',\n 'application/vnd.oasis.opendocument.text-template': 'org.oasis.opendocument.text',\n 'application/vnd.oasis.opendocument.text-web': 'org.oasis.opendocument.text-web',\n 'application/vnd.oasis.opendocument.text': 'org.oasis.opendocument.text',\n 'application/vnd.rn-realmedia': 'com.real.realmedia',\n 'application/vnd.sun.xml.calc.template': 'org.neooffice.calc',\n 'application/vnd.sun.xml.calc': 'org.neooffice.calc',\n 'application/vnd.sun.xml.draw.template': 'org.neooffice.draw',\n 'application/vnd.sun.xml.draw': 'org.neooffice.draw',\n 'application/vnd.sun.xml.impress.template': 'org.neooffice.impress',\n 'application/vnd.sun.xml.impress': 'org.neooffice.impress',\n 'application/vnd.sun.xml.math': 'org.neooffice.math',\n 'application/vnd.sun.xml.writer.global': 'org.neooffice.global',\n 'application/vnd.sun.xml.writer.template': 'org.neooffice.writer',\n 'application/vnd.sun.xml.writer': 'org.neooffice.writer',\n 'application/vndms-excel': 'com.microsoft.excel.xls',\n 'application/vndms-powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/vndrn-realmedia': 'com.real.realmedia',\n 'application/x-apple-diskimage': 'com.apple.disk-image-udif',\n 'application/x-applescript': 'com.apple.applescript.script',\n 'application/x-bat': 'com.microsoft.windows-executable',\n 'application/x-binary': 'com.apple.macbinary-archive',\n 'application/x-binhex40': 'com.apple.binhex-archive',\n 'application/x-bittorrent': 'com.bittorrent.torrent',\n 'application/x-bzip2': 'org.bzip.bzip2-archive',\n 'application/x-cpio': 'public.cpio-archive',\n 'application/x-cplusplus': 'public.c-plus-plus-source',\n 'application/x-csh': 'public.csh-script',\n 'application/x-deb': 'org.debian.debian-package',\n 'application/x-debian-package': 'org.debian.debian-package',\n 'application/x-eps': 'com.adobe.encapsulated-postscript',\n 'application/x-excel': 'com.microsoft.excel.xls',\n 'application/x-exe': 'com.microsoft.windows-executable',\n 'application/x-flac': 'org.xiph.flac',\n 'application/x-font-ttf': 'public.truetype-ttf-font',\n 'application/x-font-type1': 'com.adobe.postscript-pfa-font',\n 'application/x-gtar': 'org.gnu.gnu-tar-archive',\n 'application/x-gzip': 'org.gnu.gnu-zip-archive',\n 'application/x-iso-image': 'public.iso-image',\n 'application/x-java-class': 'com.sun.java-class',\n 'application/x-java': 'com.sun.java-web-start',\n 'application/x-javascript': 'com.netscape.javascript-source',\n 'application/x-latex': 'org.tug.tex',\n 'application/x-mac-binhex40': 'com.apple.binhex-archive',\n 'application/x-macbinary': 'com.apple.macbinary-archive',\n 'application/x-midi': 'public.midi',\n 'application/x-mpegURL': 'unofficial.m3u8-playlist',\n 'application/x-ms-wmd': 'com.microsoft.windows-media-wmd',\n 'application/x-ms-wmz': 'com.microsoft.windows-media-wmz',\n 'application/x-msdos-program': 'com.microsoft.windows-executable',\n 'application/x-msdownload': 'com.microsoft.windows-executable',\n 'application/x-msexcel': 'com.microsoft.excel.xls',\n 'application/x-mspowerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/x-pdf': 'com.adobe.pdf',\n 'application/x-perl': 'public.perl-script',\n 'application/x-php': 'public.php-script',\n 'application/x-quartzcomposer': 'com.apple.quartz-composer-composition',\n 'application/x-rar-compressed': 'com.rarlab.rar-archive',\n 'application/x-redhat-package': 'com.redhat.redhat-package',\n 'application/x-rpm': 'com.redhat.redhat-package',\n 'application/x-rtf': 'public.rtf',\n 'application/x-sh': 'public.shell-script',\n 'application/x-shellscript': 'public.shell-script',\n 'application/x-shockwave-flash': 'com.macromedia.shockwave-flash',\n 'application/x-sit': 'com.allume.stuffit-archive',\n 'application/x-smil': 'com.real.smil',\n 'application/x-soundfont': 'com.soundblaster.soundfont',\n 'application/x-stuffit': 'com.allume.stuffit-archive',\n 'application/x-tar': 'public.tar-archive',\n 'application/x-tex': 'org.tug.tex',\n 'application/x-texinfo': 'org.tug.tex',\n 'application/x-troff-msvideo': 'public.avi',\n 'application/x-zip-compressed': 'com.pkware.zip-archive',\n 'application/xhtml+xml': 'public.html',\n 'application/xml': 'public.xml',\n 'application/zip': 'com.pkware.zip-archive',\n 'audio/3gpp': 'public.3gpp',\n 'audio/3gpp2': 'public.3gpp2',\n 'audio/aiff': 'public.aiff-audio',\n 'audio/au': 'public.ulaw-audio',\n 'audio/basic': 'public.ulaw-audio',\n 'audio/flac': 'org.xiph.flac',\n 'audio/mid': 'public.midi',\n 'audio/midi': 'public.midi',\n 'audio/mp3': 'public.mp3',\n 'audio/mp4': 'public.mpeg4-audio',\n 'audio/mp4a-latm': 'public.mpeg4-audio',\n 'audio/mpeg': 'public.mp3',\n 'audio/mpeg3': 'public.mp3',\n 'audio/mpegurl': 'unofficial.m3u-playlist',\n 'audio/mpg': 'public.mp3',\n 'audio/ogg': 'org.xiph.ogg-vorbis',\n 'audio/scpls': 'unofficial.pls-playlist',\n 'audio/snd': 'public.ulaw-audio',\n 'audio/vnd.rn-realaudio': 'com.real.realaudio',\n 'audio/wav': 'com.microsoft.waveform-audio',\n 'audio/wave': 'com.microsoft.waveform-audio',\n 'audio/webm': 'public.webm',\n 'audio/x-adpcm': 'public.ulaw-audio',\n 'audio/x-aiff': 'public.aiff-audio',\n 'audio/x-au': 'public.ulaw-audio',\n 'audio/x-flac': 'org.xiph.flac',\n 'audio/x-matroska': 'public.mka',\n 'audio/x-mid': 'public.midi',\n 'audio/x-midi': 'public.midi',\n 'audio/x-mp3': 'public.mp3',\n 'audio/x-mpeg-3': 'public.mp3',\n 'audio/x-mpeg': 'public.mp3',\n 'audio/x-mpeg3': 'public.mp3',\n 'audio/x-mpegurl': 'unofficial.m3u-playlist',\n 'audio/x-mpg': 'public.mp3',\n 'audio/x-ms-wax': 'com.microsoft.windows-media-wax',\n 'audio/x-ms-wma': 'com.microsoft.windows-media-wma',\n 'audio/x-ogg': 'org.xiph.ogg-vorbis',\n 'audio/x-pn-realaudio-plugin': 'com.real.realaudio',\n 'audio/x-pn-realaudio': 'com.real.realaudio',\n 'audio/x-pn-wav': 'com.microsoft.waveform-audio',\n 'audio/x-realaudio': 'com.real.realmedia',\n 'audio/x-scpls': 'unofficial.pls-playlist',\n 'audio/x-wav': 'com.microsoft.waveform-audio',\n 'font/opentype': 'public.opentype-font',\n 'image/bmp': 'com.microsoft.bmp',\n 'image/efax': 'com.js.efx-fax',\n 'image/eps': 'com.adobe.encapsulated-postscript',\n 'image/fpx': 'com.kodak.flashpix.image',\n 'image/gif': 'com.compuserve.gif',\n 'image/indd': 'com.adobe.indesign-image',\n 'image/indesign': 'com.adobe.indesign-image',\n 'image/jp2': 'public.jpeg2000',\n 'image/jpeg': 'public.jpeg',\n 'image/ms-bmp': 'com.microsoft.bmp',\n 'image/photoshop': 'com.adobe.photoshop-image',\n 'image/pict': 'com.apple.pict',\n 'image/pipeg': 'public.jpeg',\n 'image/pjpeg': 'public.jpeg',\n 'image/png': 'public.png',\n 'image/psd': 'com.adobe.photoshop-image',\n 'image/sgi': 'com.sgi.sgi-image',\n 'image/targa': 'com.truevision.tga-image',\n 'image/tga': 'com.truevision.tga-image',\n 'image/tiff': 'public.tiff',\n 'image/vnd.djvu': 'com.lizardtech.djvu',\n 'image/vndfpx': 'com.kodak.flashpix.image',\n 'image/vndnet-fpx': 'com.kodak.flashpix.image',\n 'image/webp': 'public.webp',\n 'image/x-bitmap': 'com.microsoft.bmp',\n 'image/x-bmp': 'com.microsoft.bmp',\n 'image/x-djvu': 'com.lizardtech.djvu',\n 'image/x-eps': 'com.adobe.encapsulated-postscript',\n 'image/x-icon': 'com.microsoft.ico',\n 'image/x-indesign': 'com.adobe.indesign-image',\n 'image/x-macpict': 'com.apple.pict',\n 'image/x-ms-bmp': 'com.microsoft.bmp',\n 'image/x-photoshop': 'com.adobe.photoshop-image',\n 'image/x-pict': 'com.apple.pict',\n 'image/x-quicktime': 'com.apple.quicktime-image',\n 'image/x-tiff': 'public.tiff',\n 'image/x-windows-bmp': 'com.microsoft.bmp',\n 'image/x-xbitmap': 'com.microsoft.bmp',\n 'image/x-xbm': 'public.xbitmap-image',\n 'image/xbm': 'public.xbitmap-image',\n 'multipart/x-gzip': 'org.gnu.gnu-zip-archive',\n 'multipart/x-zip': 'com.pkware.zip-archive',\n 'music/crescendo': 'public.midi',\n 'text/calendar': 'com.apple.ical.ics',\n 'text/css': 'public.css',\n 'text/directory': 'public.vcard',\n 'text/ecmascript': 'com.netscape.javascript-source',\n 'text/html': 'public.html',\n 'text/javascript': 'com.netscape.javascript-source',\n 'text/php': 'public.php-script',\n 'text/plain': 'public.plain-text',\n 'text/richtext': 'public.rtf',\n 'text/rtf': 'public.rtf',\n 'text/ruby-script': 'public.ruby-script',\n 'text/tex': 'org.tug.tex',\n 'text/vcard': 'public.vcard',\n 'text/vnd.sun.j2me.app-descriptor': 'com.sun.java-app-descriptor',\n 'text/x-asm': 'public.assembly-source',\n 'text/x-c-code': 'public.c-source',\n 'text/x-c-header': 'public.c-header',\n 'text/x-c': 'public.c-source',\n 'text/x-c++-code': 'public.c-plus-plus-source',\n 'text/x-c++-hdr': 'public.c-plus-plus-header',\n 'text/x-c++-src': 'public.c-plus-plus-source',\n 'text/x-c++src': 'public.c-plus-plus-source',\n 'text/x-h': 'public.c-header',\n 'text/x-java-source': 'com.sun.java-source',\n 'text/x-latex': 'org.tug.tex',\n 'text/x-objcppsrc': 'public.objective-c-plus-plus-source',\n 'text/x-objcsrc': 'public.objective-c-source',\n 'text/x-opml': 'unofficial.opml',\n 'text/x-perl-script': 'public.perl-script',\n 'text/x-perl': 'public.perl-script',\n 'text/x-php-script': 'public.php-script',\n 'text/x-python-script': 'public.python-script',\n 'text/x-python': 'public.python-script',\n 'text/x-scriptcsh': 'public.csh-script',\n 'text/x-scriptperl-module': 'public.perl-script',\n 'text/x-scriptperl': 'public.perl-script',\n 'text/x-scriptphyton': 'public.python-script',\n 'text/x-scriptsh': 'public.shell-script',\n 'text/x-server-parsed-html': 'public.html',\n 'text/x-tex': 'org.tug.tex',\n 'text/x-vcalendar': 'com.apple.ical.vcs',\n 'text/x-vcard': 'public.vcard',\n 'text/xhtml': 'public.html',\n 'text/xml': 'public.xml',\n 'video/3gpp': 'public.3gpp',\n 'video/3gpp2': 'public.3gpp2',\n 'video/avi': 'public.avi',\n 'video/MP2T': 'public.mpegts',\n 'video/mp4': 'public.mpeg4',\n 'video/mp4v': 'public.mpeg4',\n 'video/mpeg': 'public.mpeg',\n 'video/mpg': 'public.mpeg',\n 'video/msvideo': 'public.avi',\n 'video/ogg': 'org.xiph.ogg-theora',\n 'video/quicktime': 'com.apple.quicktime-movie',\n 'video/webm': 'public.webm',\n 'video/x-dv': 'public.dv',\n 'video/x-flv': 'public.flv',\n 'video/x-m4v': 'public.mpeg4',\n 'video/x-matroska': 'public.mkv',\n 'video/x-mpeg': 'public.mpeg',\n 'video/x-mpg': 'public.mpeg',\n 'video/x-ms-asf-plugin': 'com.microsoft.advanced-systems-format',\n 'video/x-ms-asf': 'com.microsoft.advanced-systems-format',\n 'video/x-ms-asx': 'com.microsoft.advanced-stream-redirector',\n 'video/x-ms-wm': 'com.microsoft.windows-media-wm',\n 'video/x-ms-wmd': 'com.microsoft.windows-media-wmd',\n 'video/x-ms-wmp': 'com.microsoft.windows-media-wmp',\n 'video/x-ms-wmv': 'com.microsoft.windows-media-wmv',\n 'video/x-ms-wmx': 'com.microsoft.windows-media-wmx',\n 'video/x-ms-wmz': 'com.microsoft.windows-media-wmz',\n 'video/x-ms-wvx': 'com.microsoft.windows-media-wvx',\n 'video/x-msvideo': 'public.avi',\n 'video/x-ogg': 'org.xiph.ogg-theora',\n 'x-msdos-program': 'com.microsoft.windows-executable',\n 'x-music/x-midi': 'public.midi',\n }\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n authApi: IccAuthApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.authApi = authApi\n this.crypto = crypto\n this.fetchImpl = fetchImpl\n }\n\n // noinspection JSUnusedGlobalSymbols\n newInstance(user: models.User, message?: models.Message, c: any = {}) {\n const document = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Document',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId || user.patientId,\n author: user.id,\n codes: [],\n tags: [],\n },\n c\n )\n\n return this.initDelegationsAndEncryptionKeys(user, message, document)\n }\n\n private initDelegationsAndEncryptionKeys(\n user: models.User,\n message: models.Message | undefined = undefined,\n document: models.Document\n ): Promise<models.Document> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractDelegationsSFKs(message || null, hcpId)\n .then((secretForeignKeys) =>\n Promise.all([\n this.crypto.initObjectDelegations(document, message, hcpId!, secretForeignKeys.extractedKeys[0]),\n this.crypto.initEncryptionKeys(document, hcpId!),\n ])\n )\n .then((initData) => {\n const dels = initData[0]\n const eks = initData[1]\n _.extend(document, {\n delegations: dels.delegations,\n cryptedForeignKeys: dels.cryptedForeignKeys,\n secretForeignKeys: dels.secretForeignKeys,\n encryptionKeys: eks.encryptionKeys,\n })\n\n let promise = Promise.resolve(document)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((document) =>\n this.crypto.addDelegationsAndEncryptionKeys(message || null, document, hcpId!, delegateId, dels.secretId, eks.secretId).catch((e) => {\n console.log(e)\n return document\n })\n ))\n )\n return promise\n })\n }\n\n initEncryptionKeys(user: models.User, document: models.Document) {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(document, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(document, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((document) =>\n this.crypto.appendEncryptionKeys(document, hcpId!, delegateId, eks.secretId).then((extraEks) => {\n return _.extend(document, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n ))\n )\n return promise\n })\n }\n\n // noinspection JSUnusedGlobalSymbols\n findByMessage(hcpartyId: string, message: models.Message) {\n return this.crypto\n .extractDelegationsSFKs(message, hcpartyId)\n .then((secretForeignKeys) =>\n this.findDocumentsByHCPartyPatientForeignKeys(secretForeignKeys.hcpartyId!, secretForeignKeys.extractedKeys.join(','))\n )\n .then((documents) => this.decrypt(hcpartyId, documents))\n .then(function (decryptedForms) {\n return decryptedForms\n })\n }\n\n decrypt(hcpartyId: string, documents: Array<models.Document>): Promise<Array<models.Document>> {\n return Promise.all(\n documents.map((document) =>\n this.crypto\n .extractKeysFromDelegationsForHcpHierarchy(\n hcpartyId,\n document.id!,\n _.size(document.encryptionKeys) ? document.encryptionKeys! : document.delegations!\n )\n .then(({ extractedKeys: sfks }) => {\n if (!sfks || !sfks.length) {\n console.log('Cannot decrypt document', document.id)\n return Promise.resolve(document)\n }\n\n if (sfks.length && (document.encryptedSelf || document.encryptedAttachment)) {\n return this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, '')))\n .then((key: CryptoKey) =>\n Promise.all([\n document.encryptedSelf\n ? new Promise((resolve: (value: ArrayBuffer | null) => any) => {\n this.crypto.AES.decrypt(key, string2ua(a2b(document.encryptedSelf!))).then(resolve, () => {\n console.log('Cannot decrypt document', document.id)\n resolve(null)\n })\n })\n : Promise.resolve(null),\n document.encryptedAttachment\n ? new Promise((resolve: (value: ArrayBuffer | null) => any) => {\n this.crypto.AES.decrypt(key, document.encryptedAttachment!).then(resolve, () => {\n console.log('Cannot decrypt document', document.id)\n resolve(null)\n })\n })\n : Promise.resolve(null),\n ])\n )\n .then((decrypted: [ArrayBuffer | null, ArrayBuffer | null]) => {\n if (decrypted) {\n if (decrypted[0]) {\n document = _.extend(document, JSON.parse(ua2string(decrypted[0])))\n }\n if (decrypted[1]) {\n document.decryptedAttachment = decrypted[1]\n }\n }\n return document\n })\n } else {\n return Promise.resolve(document)\n }\n })\n )\n ).catch(function (e: Error) {\n console.log(e)\n return Promise.resolve(documents)\n })\n }\n\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"application/octet-stream\", enckeys?: string, fileName?: string): Promise<ArrayBuffer>\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"text/plain\", enckeys?: string, fileName?: string): Promise<string>\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"application/json\", enckeys?: string, fileName?: string): Promise<any>\n getAttachmentAs(\n documentId: string,\n attachmentId: string,\n returnType: 'application/octet-stream' | 'text/plain' | 'application/json',\n enckeys?: string,\n fileName?: string\n ): Promise<any> {\n const url =\n this.host +\n `/document/${documentId}/attachment/${attachmentId}` +\n '?ts=' +\n new Date().getTime() +\n (enckeys ? `&enckeys=${enckeys}` : '') +\n (fileName ? `&fileName=${fileName}` : '')\n return XHR.sendCommand('GET', url, this.headers, null, this.fetchImpl, returnType)\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n // noinspection JSUnusedGlobalSymbols\n getAttachmentUrl(documentId: string, attachmentId: string, sfks: Array<{ delegatorId: string; key: CryptoKey }>, fileName?: string) {\n return this.authApi\n .token('GET', `/rest/v1/document/${documentId}/attachment/${attachmentId}`)\n .then(\n (token) =>\n this.host +\n `/document/${documentId}/attachment/${attachmentId}${token ? `;tokenid=${token}` : ''}` +\n (sfks && sfks.length ? '?enckeys=' + sfks.join(',') : '') +\n (fileName && fileName.length ? `${sfks && sfks.length ? '&' : '?'}fileName=${encodeURIComponent(fileName)}` : '')\n )\n }\n\n // noinspection JSUnusedGlobalSymbols\n uti(mimeType: string, extension: string) {\n return (mimeType && mimeType !== 'application/octet-stream' ? this.utiDefs[mimeType] : this.utiExts[extension]) || this.utiDefs[mimeType]\n }\n\n // noinspection JSUnusedGlobalSymbols\n mimeType(uti: string) {\n return this.utiRevDefs[uti]\n }\n}\n"]}