@icure/api 5.3.4 → 5.3.6

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 (1857) hide show
  1. package/.editorconfig +11 -0
  2. package/.eslintrc.js +31 -0
  3. package/.github/workflows/build.yml +41 -0
  4. package/.gitmodules +3 -0
  5. package/.nyc_output/4fb11039-5260-43aa-bbec-20ed9a7243b5.json +1 -0
  6. package/.nyc_output/d3da738f-2735-4cbe-9ce5-8270e16e2706.json +1 -0
  7. package/.nyc_output/processinfo/4fb11039-5260-43aa-bbec-20ed9a7243b5.json +1 -0
  8. package/.nyc_output/processinfo/d3da738f-2735-4cbe-9ce5-8270e16e2706.json +1 -0
  9. package/.nyc_output/processinfo/index.json +1 -0
  10. package/.pre-commit-config.yaml +22 -0
  11. package/.prettierrc +5 -0
  12. package/.secrets.baseline +174 -0
  13. package/CHANGELOG.md +112 -0
  14. package/Dockerfile +25 -0
  15. package/InstantiateIccXApiWithAuthProvider.md +72 -0
  16. package/LICENSE +7 -0
  17. package/README.md +75 -0
  18. package/apidocs/.swagger-codegen-ignore +23 -0
  19. package/ci/cloudbuild.yaml +16 -0
  20. package/dist/icc-api/api/IccGroupApi.d.ts +200 -0
  21. package/dist/icc-api/api/IccGroupApi.js +428 -0
  22. package/dist/icc-api/api/IccGroupApi.js.map +1 -0
  23. package/dist/icc-api/model/ModelHelper.js +94 -0
  24. package/dist/icc-api/model/ModelHelper.js.map +1 -0
  25. package/dist/icc-api/model/models.d.ts +274 -0
  26. package/dist/icc-x-api/auth/AuthenticationProvider.js +78 -0
  27. package/dist/icc-x-api/auth/AuthenticationProvider.js.map +1 -0
  28. package/dist/icc-x-api/auth/JwtAuthService.d.ts +20 -0
  29. package/dist/icc-x-api/auth/JwtAuthService.js +85 -0
  30. package/dist/icc-x-api/auth/JwtAuthService.js.map +1 -0
  31. package/dist/icc-x-api/auth/JwtBridgedAuthService.d.ts +26 -0
  32. package/dist/icc-x-api/auth/JwtBridgedAuthService.js +128 -0
  33. package/dist/icc-x-api/auth/JwtBridgedAuthService.js.map +1 -0
  34. package/dist/icc-x-api/crypto/AES.js +146 -0
  35. package/dist/icc-x-api/crypto/AES.js.map +1 -0
  36. package/dist/icc-x-api/filters/filters.d.ts +115 -0
  37. package/dist/icc-x-api/icc-bekmehr-x-api.d.ts +41 -0
  38. package/dist/icc-x-api/icc-crypto-x-api.d.ts +526 -0
  39. package/dist/icc-x-api/icc-crypto-x-api.js +1788 -0
  40. package/dist/icc-x-api/icc-crypto-x-api.js.map +1 -0
  41. package/dist/icc-x-api/utils/asn1-packer.d.ts +3 -0
  42. package/dist/icc-x-api/utils/asn1-parser.d.ts +8 -0
  43. package/dist/icc-x-api/utils/net-utils.d.ts +25 -0
  44. package/dist/package.json +22 -0
  45. package/fake-secrets.txt +3 -0
  46. package/icc-api/.swagger-codegen/VERSION +1 -0
  47. package/icc-api/.swagger-codegen-ignore +23 -0
  48. package/icc-api/LICENSE +201 -0
  49. package/icc-api/api/IccAccesslogApi.ts +265 -0
  50. package/icc-api/api/IccAgendaApi.ts +151 -0
  51. package/icc-api/api/IccAnonymousAccessApi.ts +126 -0
  52. package/icc-api/api/IccApplicationsettingsApi.ts +89 -0
  53. package/icc-api/api/IccArticleApi.ts +120 -0
  54. package/icc-api/api/IccAuthApi.ts +235 -0
  55. package/icc-api/api/IccBeefactApi.ts +66 -0
  56. package/icc-api/api/IccBekmehrApi.ts +909 -0
  57. package/icc-api/api/IccBeresultexportApi.ts +134 -0
  58. package/icc-api/api/IccBeresultimportApi.ts +130 -0
  59. package/icc-api/api/IccBesamv2Api.ts +790 -0
  60. package/icc-api/api/IccCalendarItemApi.ts +353 -0
  61. package/icc-api/api/IccCalendarItemTypeApi.ts +134 -0
  62. package/icc-api/api/IccClassificationApi.ts +180 -0
  63. package/icc-api/api/IccClassificationTemplateApi.ts +188 -0
  64. package/icc-api/api/IccCodeApi.ts +423 -0
  65. package/icc-api/api/IccContactApi.ts +669 -0
  66. package/icc-api/api/IccDataownerApi.ts +66 -0
  67. package/icc-api/api/IccDeviceApi.ts +358 -0
  68. package/icc-api/api/IccDoctemplateApi.ts +258 -0
  69. package/icc-api/api/IccDocumentApi.ts +444 -0
  70. package/icc-api/api/IccDocumentTemplateApi.ts +261 -0
  71. package/icc-api/api/IccEntityrefApi.ts +73 -0
  72. package/icc-api/api/IccEntitytemplateApi.ts +249 -0
  73. package/icc-api/api/IccFormApi.ts +547 -0
  74. package/icc-api/api/IccFrontendmigrationApi.ts +135 -0
  75. package/icc-api/api/IccGroupApi.ts +504 -0
  76. package/icc-api/api/IccHcpartyApi.ts +487 -0
  77. package/icc-api/api/IccHelementApi.ts +330 -0
  78. package/icc-api/api/IccIcureApi.ts +303 -0
  79. package/icc-api/api/IccInsuranceApi.ts +154 -0
  80. package/icc-api/api/IccInvoiceApi.ts +721 -0
  81. package/icc-api/api/IccKeywordApi.ts +135 -0
  82. package/icc-api/api/IccMaintenanceTaskApi.ts +133 -0
  83. package/icc-api/api/IccMedexApi.ts +58 -0
  84. package/icc-api/api/IccMedicallocationApi.ts +120 -0
  85. package/icc-api/api/IccMessageApi.ts +478 -0
  86. package/icc-api/api/IccPatientApi.ts +822 -0
  87. package/icc-api/api/IccPermissionApi.ts +59 -0
  88. package/icc-api/api/IccPlaceApi.ts +120 -0
  89. package/icc-api/api/IccPubsubApi.ts +106 -0
  90. package/icc-api/api/IccReceiptApi.ts +168 -0
  91. package/icc-api/api/IccReplicationApi.ts +106 -0
  92. package/icc-api/api/IccTarificationApi.ts +236 -0
  93. package/icc-api/api/IccTimeTableApi.ts +146 -0
  94. package/icc-api/api/IccTmpApi.ts +1298 -0
  95. package/icc-api/api/IccUserApi.ts +525 -0
  96. package/icc-api/api/XHR.ts +146 -0
  97. package/icc-api/iccApi.ts +46 -0
  98. package/icc-api/index.ts +44 -0
  99. package/icc-api/model/AbstractFilterCode.ts +19 -0
  100. package/icc-api/model/AbstractFilterContact.ts +19 -0
  101. package/icc-api/model/AbstractFilterDevice.ts +19 -0
  102. package/icc-api/model/AbstractFilterHealthElement.ts +19 -0
  103. package/icc-api/model/AbstractFilterHealthcareParty.ts +19 -0
  104. package/icc-api/model/AbstractFilterInvoice.ts +19 -0
  105. package/icc-api/model/AbstractFilterMaintenanceTask.ts +19 -0
  106. package/icc-api/model/AbstractFilterPatient.ts +19 -0
  107. package/icc-api/model/AbstractFilterService.ts +19 -0
  108. package/icc-api/model/AbstractFilterUser.ts +19 -0
  109. package/icc-api/model/AccessLog.ts +108 -0
  110. package/icc-api/model/AddedDocument.ts +27 -0
  111. package/icc-api/model/Address.ts +99 -0
  112. package/icc-api/model/AdministrationQuantity.ts +22 -0
  113. package/icc-api/model/Agenda.ts +61 -0
  114. package/icc-api/model/AgreementAppendix.ts +22 -0
  115. package/icc-api/model/Amp.ts +57 -0
  116. package/icc-api/model/AmpComponent.ts +51 -0
  117. package/icc-api/model/Ampp.ts +75 -0
  118. package/icc-api/model/AmppComponent.ts +36 -0
  119. package/icc-api/model/Annotation.ts +42 -0
  120. package/icc-api/model/ApplicationSettings.ts +58 -0
  121. package/icc-api/model/Appointment.ts +31 -0
  122. package/icc-api/model/AppointmentImport.ts +39 -0
  123. package/icc-api/model/AppointmentTypeAndPlace.ts +27 -0
  124. package/icc-api/model/Article.ts +82 -0
  125. package/icc-api/model/Atc.ts +20 -0
  126. package/icc-api/model/Attachment.ts +23 -0
  127. package/icc-api/model/AttachmentMetadata.ts +25 -0
  128. package/icc-api/model/AuthenticationResponse.ts +27 -0
  129. package/icc-api/model/AuthenticationToken.ts +35 -0
  130. package/icc-api/model/Basic.ts +20 -0
  131. package/icc-api/model/Body.ts +20 -0
  132. package/icc-api/model/Body3.ts +20 -0
  133. package/icc-api/model/BulkAttachmentUpdateOptions.ts +30 -0
  134. package/icc-api/model/ByteArray.ts +20 -0
  135. package/icc-api/model/CalendarItem.ts +105 -0
  136. package/icc-api/model/CalendarItemTag.ts +22 -0
  137. package/icc-api/model/CalendarItemType.ts +32 -0
  138. package/icc-api/model/CareTeamMember.ts +38 -0
  139. package/icc-api/model/CareTeamMembership.ts +39 -0
  140. package/icc-api/model/CheckSMFPatientResult.ts +24 -0
  141. package/icc-api/model/Classification.ts +81 -0
  142. package/icc-api/model/ClassificationTemplate.ts +80 -0
  143. package/icc-api/model/Code.ts +202 -0
  144. package/icc-api/model/CodeStub.ts +24 -0
  145. package/icc-api/model/CodeType.ts +19 -0
  146. package/icc-api/model/CommentedClassification.ts +21 -0
  147. package/icc-api/model/Commercialization.ts +25 -0
  148. package/icc-api/model/Company.ts +35 -0
  149. package/icc-api/model/Contact.ts +129 -0
  150. package/icc-api/model/Content.ts +45 -0
  151. package/icc-api/model/Copayment.ts +22 -0
  152. package/icc-api/model/Data.ts +17 -0
  153. package/icc-api/model/DataAttachment.ts +34 -0
  154. package/icc-api/model/DataOwnerRegistrationSuccess.ts +21 -0
  155. package/icc-api/model/DataOwnerWithType.ts +19 -0
  156. package/icc-api/model/DatabaseInfo.ts +28 -0
  157. package/icc-api/model/DatabaseInitialisation.ts +27 -0
  158. package/icc-api/model/DatabaseSynchronization.ts +30 -0
  159. package/icc-api/model/Delegation.ts +25 -0
  160. package/icc-api/model/DeletedAttachment.ts +38 -0
  161. package/icc-api/model/Device.ts +93 -0
  162. package/icc-api/model/DeviceType.ts +23 -0
  163. package/icc-api/model/DiaryNoteExportInfo.ts +30 -0
  164. package/icc-api/model/Dmpp.ts +45 -0
  165. package/icc-api/model/DocIdentifier.ts +20 -0
  166. package/icc-api/model/Document.ts +274 -0
  167. package/icc-api/model/DocumentGroup.ts +20 -0
  168. package/icc-api/model/DocumentTemplate.ts +162 -0
  169. package/icc-api/model/Duration.ts +21 -0
  170. package/icc-api/model/EIDItem.ts +23 -0
  171. package/icc-api/model/Editor.ts +37 -0
  172. package/icc-api/model/EfactInvoice.ts +43 -0
  173. package/icc-api/model/EmailOrSmsMessage.ts +39 -0
  174. package/icc-api/model/EmailTemplate.ts +20 -0
  175. package/icc-api/model/Employer.ts +21 -0
  176. package/icc-api/model/EmploymentInfo.ts +24 -0
  177. package/icc-api/model/EntityReference.ts +25 -0
  178. package/icc-api/model/EntityTemplate.ts +31 -0
  179. package/icc-api/model/Episode.ts +30 -0
  180. package/icc-api/model/FilterChainCode.ts +23 -0
  181. package/icc-api/model/FilterChainContact.ts +23 -0
  182. package/icc-api/model/FilterChainDevice.ts +23 -0
  183. package/icc-api/model/FilterChainHealthElement.ts +23 -0
  184. package/icc-api/model/FilterChainHealthcareParty.ts +23 -0
  185. package/icc-api/model/FilterChainInvoice.ts +23 -0
  186. package/icc-api/model/FilterChainMaintenanceTask.ts +23 -0
  187. package/icc-api/model/FilterChainPatient.ts +23 -0
  188. package/icc-api/model/FilterChainService.ts +23 -0
  189. package/icc-api/model/FilterChainUser.ts +23 -0
  190. package/icc-api/model/FinancialInstitutionInformation.ts +32 -0
  191. package/icc-api/model/FlatRateTarification.ts +39 -0
  192. package/icc-api/model/FlowItem.ts +51 -0
  193. package/icc-api/model/Form.ts +116 -0
  194. package/icc-api/model/FormColumn.ts +22 -0
  195. package/icc-api/model/FormDataOption.ts +20 -0
  196. package/icc-api/model/FormLayout.ts +29 -0
  197. package/icc-api/model/FormLayoutData.ts +44 -0
  198. package/icc-api/model/FormPlanning.ts +26 -0
  199. package/icc-api/model/FormSection.ts +23 -0
  200. package/icc-api/model/FormTemplate.ts +48 -0
  201. package/icc-api/model/FormTemplateLayout.ts +23 -0
  202. package/icc-api/model/Formula.ts +31 -0
  203. package/icc-api/model/FrontEndMigration.ts +47 -0
  204. package/icc-api/model/Group.ts +69 -0
  205. package/icc-api/model/GroupDatabasesInfo.ts +22 -0
  206. package/icc-api/model/GroupDeletionReport.ts +21 -0
  207. package/icc-api/model/GuiCode.ts +20 -0
  208. package/icc-api/model/GuiCodeType.ts +19 -0
  209. package/icc-api/model/HealthElement.ts +159 -0
  210. package/icc-api/model/HealthcareParty.ts +224 -0
  211. package/icc-api/model/HealthcarePartyHistoryStatus.ts +33 -0
  212. package/icc-api/model/IcureStub.ts +74 -0
  213. package/icc-api/model/IdWithRev.ts +20 -0
  214. package/icc-api/model/Identifier.ts +27 -0
  215. package/icc-api/model/IdentityDocumentReader.ts +24 -0
  216. package/icc-api/model/ImportMapping.ts +24 -0
  217. package/icc-api/model/ImportResult.ts +34 -0
  218. package/icc-api/model/IncapacityExportInfo.ts +54 -0
  219. package/icc-api/model/IndexedIdentifier.ts +21 -0
  220. package/icc-api/model/IndexingInfo.ts +19 -0
  221. package/icc-api/model/Ingredient.ts +36 -0
  222. package/icc-api/model/Insurability.ts +61 -0
  223. package/icc-api/model/Insurance.ts +33 -0
  224. package/icc-api/model/Invoice.ts +205 -0
  225. package/icc-api/model/InvoiceItem.ts +97 -0
  226. package/icc-api/model/InvoiceSender.ts +28 -0
  227. package/icc-api/model/InvoicesBatch.ts +29 -0
  228. package/icc-api/model/InvoicingCode.ts +86 -0
  229. package/icc-api/model/Keyword.ts +61 -0
  230. package/icc-api/model/KeywordSubword.ts +20 -0
  231. package/icc-api/model/LabelledOccurence.ts +20 -0
  232. package/icc-api/model/LetterValue.ts +22 -0
  233. package/icc-api/model/ListOfIds.ts +22 -0
  234. package/icc-api/model/ListOfProperties.ts +23 -0
  235. package/icc-api/model/LoginCredentials.ts +20 -0
  236. package/icc-api/model/MaintenanceTask.ts +93 -0
  237. package/icc-api/model/MapOfIds.ts +19 -0
  238. package/icc-api/model/Measure.ts +31 -0
  239. package/icc-api/model/MedexInfo.ts +33 -0
  240. package/icc-api/model/MedicalHouseContract.ts +81 -0
  241. package/icc-api/model/MedicalLocation.ts +37 -0
  242. package/icc-api/model/Medication.ts +72 -0
  243. package/icc-api/model/MedicationSchemeExportInfo.ts +25 -0
  244. package/icc-api/model/Medicinalproduct.ts +24 -0
  245. package/icc-api/model/Message.ts +145 -0
  246. package/icc-api/model/MessageReadStatus.ts +23 -0
  247. package/icc-api/model/MessageWithBatch.ts +22 -0
  248. package/icc-api/model/MessagesReadStatusUpdate.ts +22 -0
  249. package/icc-api/model/MikronoAppointmentTypeRest.ts +25 -0
  250. package/icc-api/model/MikronoCredentials.ts +21 -0
  251. package/icc-api/model/MimeAttachment.ts +22 -0
  252. package/icc-api/model/ModelHelper.ts +87 -0
  253. package/icc-api/model/Nmp.ts +34 -0
  254. package/icc-api/model/NoGenericPrescriptionReason.ts +21 -0
  255. package/icc-api/model/NoSwitchReason.ts +21 -0
  256. package/icc-api/model/NumeratorRange.ts +21 -0
  257. package/icc-api/model/OperationToken.ts +22 -0
  258. package/icc-api/model/PackagingType.ts +23 -0
  259. package/icc-api/model/PaginatedDocumentKeyIdPairObject.ts +20 -0
  260. package/icc-api/model/PaginatedListAccessLog.ts +24 -0
  261. package/icc-api/model/PaginatedListAmp.ts +24 -0
  262. package/icc-api/model/PaginatedListCalendarItem.ts +24 -0
  263. package/icc-api/model/PaginatedListClassification.ts +24 -0
  264. package/icc-api/model/PaginatedListClassificationTemplate.ts +24 -0
  265. package/icc-api/model/PaginatedListCode.ts +24 -0
  266. package/icc-api/model/PaginatedListContact.ts +24 -0
  267. package/icc-api/model/PaginatedListDevice.ts +24 -0
  268. package/icc-api/model/PaginatedListDocument.ts +24 -0
  269. package/icc-api/model/PaginatedListEntityTemplate.ts +24 -0
  270. package/icc-api/model/PaginatedListForm.ts +24 -0
  271. package/icc-api/model/PaginatedListGroup.ts +24 -0
  272. package/icc-api/model/PaginatedListHealthElement.ts +24 -0
  273. package/icc-api/model/PaginatedListHealthcareParty.ts +24 -0
  274. package/icc-api/model/PaginatedListInvoice.ts +24 -0
  275. package/icc-api/model/PaginatedListMaintenanceTask.ts +24 -0
  276. package/icc-api/model/PaginatedListMessage.ts +24 -0
  277. package/icc-api/model/PaginatedListNmp.ts +24 -0
  278. package/icc-api/model/PaginatedListPatient.ts +24 -0
  279. package/icc-api/model/PaginatedListService.ts +24 -0
  280. package/icc-api/model/PaginatedListString.ts +23 -0
  281. package/icc-api/model/PaginatedListTarification.ts +24 -0
  282. package/icc-api/model/PaginatedListUser.ts +24 -0
  283. package/icc-api/model/PaginatedListVmp.ts +24 -0
  284. package/icc-api/model/PaginatedListVmpGroup.ts +24 -0
  285. package/icc-api/model/Paragraph.ts +41 -0
  286. package/icc-api/model/ParagraphAgreement.ts +41 -0
  287. package/icc-api/model/Part.ts +17 -0
  288. package/icc-api/model/Partnership.ts +118 -0
  289. package/icc-api/model/Patient.ts +370 -0
  290. package/icc-api/model/PatientByHcPartyGenderEducationProfession.ts +35 -0
  291. package/icc-api/model/PatientHealthCareParty.ts +64 -0
  292. package/icc-api/model/PatientRegistrationSuccess.ts +21 -0
  293. package/icc-api/model/Payment.ts +34 -0
  294. package/icc-api/model/Periodicity.ts +21 -0
  295. package/icc-api/model/Permission.ts +30 -0
  296. package/icc-api/model/PermissionCriterion.ts +46 -0
  297. package/icc-api/model/PermissionItem.ts +56 -0
  298. package/icc-api/model/PersonName.ts +66 -0
  299. package/icc-api/model/PharmaceuticalForm.ts +29 -0
  300. package/icc-api/model/PharmaceuticalFormStub.ts +24 -0
  301. package/icc-api/model/Place.ts +27 -0
  302. package/icc-api/model/PlanOfAction.ts +114 -0
  303. package/icc-api/model/Predicate.ts +17 -0
  304. package/icc-api/model/Pricing.ts +21 -0
  305. package/icc-api/model/PropertyStub.ts +31 -0
  306. package/icc-api/model/PropertyTypeStub.ts +32 -0
  307. package/icc-api/model/PublicKey.ts +20 -0
  308. package/icc-api/model/Quantity.ts +20 -0
  309. package/icc-api/model/Receipt.ts +83 -0
  310. package/icc-api/model/ReferralPeriod.ts +33 -0
  311. package/icc-api/model/RefreshTokenExpiredError.ts +5 -0
  312. package/icc-api/model/RegimenItem.ts +27 -0
  313. package/icc-api/model/RegistrationInformation.ts +23 -0
  314. package/icc-api/model/RegistrationSuccess.ts +21 -0
  315. package/icc-api/model/Reimbursement.ts +57 -0
  316. package/icc-api/model/ReimbursementCriterion.ts +22 -0
  317. package/icc-api/model/Remote.ts +21 -0
  318. package/icc-api/model/RemoteAuthentication.ts +20 -0
  319. package/icc-api/model/Renewal.ts +21 -0
  320. package/icc-api/model/ReplicateCommand.ts +25 -0
  321. package/icc-api/model/Replication.ts +28 -0
  322. package/icc-api/model/ReplicationInfo.ts +22 -0
  323. package/icc-api/model/ReplicationStats.ts +27 -0
  324. package/icc-api/model/ReplicatorDocument.ts +34 -0
  325. package/icc-api/model/ReplicatorResponse.ts +23 -0
  326. package/icc-api/model/ResultInfo.ts +33 -0
  327. package/icc-api/model/RevisionInfo.ts +20 -0
  328. package/icc-api/model/Right.ts +22 -0
  329. package/icc-api/model/RouteOfAdministration.ts +22 -0
  330. package/icc-api/model/SamText.ts +22 -0
  331. package/icc-api/model/SamVersion.ts +26 -0
  332. package/icc-api/model/SchoolingInfo.ts +23 -0
  333. package/icc-api/model/Section.ts +23 -0
  334. package/icc-api/model/Service.ts +155 -0
  335. package/icc-api/model/ServiceLink.ts +22 -0
  336. package/icc-api/model/SoftwareMedicalFileExport.ts +23 -0
  337. package/icc-api/model/StandardSubstance.ts +33 -0
  338. package/icc-api/model/StrengthRange.ts +22 -0
  339. package/icc-api/model/StructureElement.ts +17 -0
  340. package/icc-api/model/SubContact.ts +89 -0
  341. package/icc-api/model/Substance.ts +31 -0
  342. package/icc-api/model/SubstanceStub.ts +26 -0
  343. package/icc-api/model/Substanceproduct.ts +24 -0
  344. package/icc-api/model/Suggest.ts +23 -0
  345. package/icc-api/model/SumehrContent.ts +26 -0
  346. package/icc-api/model/SumehrExportInfo.ts +30 -0
  347. package/icc-api/model/SumehrValidity.ts +27 -0
  348. package/icc-api/model/SupplyProblem.ts +25 -0
  349. package/icc-api/model/Suspension.ts +22 -0
  350. package/icc-api/model/Tag.ts +20 -0
  351. package/icc-api/model/Tarification.ts +213 -0
  352. package/icc-api/model/Telecom.ts +64 -0
  353. package/icc-api/model/TimeSeries.ts +28 -0
  354. package/icc-api/model/TimeTable.ts +84 -0
  355. package/icc-api/model/TimeTableHour.ts +20 -0
  356. package/icc-api/model/TimeTableItem.ts +30 -0
  357. package/icc-api/model/TokenWithGroup.ts +21 -0
  358. package/icc-api/model/TypedValueObject.ts +40 -0
  359. package/icc-api/model/Unit.ts +17 -0
  360. package/icc-api/model/User.ts +132 -0
  361. package/icc-api/model/UserAndHealthcareParty.ts +25 -0
  362. package/icc-api/model/UserGroup.ts +31 -0
  363. package/icc-api/model/Valorisation.ts +31 -0
  364. package/icc-api/model/Verse.ts +65 -0
  365. package/icc-api/model/VirtualForm.ts +22 -0
  366. package/icc-api/model/VirtualIngredient.ts +33 -0
  367. package/icc-api/model/Vmp.ts +40 -0
  368. package/icc-api/model/VmpComponent.ts +28 -0
  369. package/icc-api/model/VmpGroup.ts +34 -0
  370. package/icc-api/model/VmpGroupStub.ts +23 -0
  371. package/icc-api/model/VmpStub.ts +24 -0
  372. package/icc-api/model/Vtm.ts +23 -0
  373. package/icc-api/model/Wada.ts +22 -0
  374. package/icc-api/model/WebSession.ts +26 -0
  375. package/icc-api/model/WebSessionMaxIdleTime.ts +24 -0
  376. package/icc-api/model/WebSessionMaxIdleTimeUnits.ts +21 -0
  377. package/icc-api/model/Weekday.ts +21 -0
  378. package/icc-api/model/models.ts +289 -0
  379. package/icc-x-api/auth/AuthService.ts +18 -0
  380. package/icc-x-api/auth/AuthenticationProvider.ts +92 -0
  381. package/icc-x-api/auth/BasicAuthService.ts +25 -0
  382. package/icc-x-api/auth/EnsembleAuthService.ts +64 -0
  383. package/icc-x-api/auth/JwtAuthService.ts +82 -0
  384. package/icc-x-api/auth/JwtBridgedAuthService.ts +127 -0
  385. package/icc-x-api/auth/NoAuthService.ts +18 -0
  386. package/icc-x-api/crypto/AES.ts +173 -0
  387. package/icc-x-api/crypto/RSA.ts +170 -0
  388. package/icc-x-api/crypto/shamir.ts +326 -0
  389. package/icc-x-api/crypto/utils.ts +0 -0
  390. package/icc-x-api/filters/AllCodesFilter.ts +22 -0
  391. package/icc-x-api/filters/AllDevicesFilter.ts +23 -0
  392. package/icc-x-api/filters/AllHealthcarePartiesFilter.ts +23 -0
  393. package/icc-x-api/filters/AllUsersFilter.ts +23 -0
  394. package/icc-x-api/filters/CodeByIdsFilter.ts +25 -0
  395. package/icc-x-api/filters/CodeByRegionTypeLabelLanguageFilter.ts +28 -0
  396. package/icc-x-api/filters/CodeIdsByTypeCodeVersionIntervalFilter.ts +30 -0
  397. package/icc-x-api/filters/ComplementFilter.ts +13 -0
  398. package/icc-x-api/filters/ConstantFilter.ts +9 -0
  399. package/icc-x-api/filters/ContactByHcPartyFilter.ts +25 -0
  400. package/icc-x-api/filters/ContactByHcPartyPatientTagCodeDateFilter.ts +32 -0
  401. package/icc-x-api/filters/ContactByHcPartyTagCodeDateFilter.ts +32 -0
  402. package/icc-x-api/filters/ContactByServiceIdsFilter.ts +24 -0
  403. package/icc-x-api/filters/DeviceByHcPartyFilter.ts +26 -0
  404. package/icc-x-api/filters/DeviceByIdsFilter.ts +26 -0
  405. package/icc-x-api/filters/HealthElementByHcPartyFilter.ts +24 -0
  406. package/icc-x-api/filters/HealthElementByHcPartyIdentifiersFilter.ts +26 -0
  407. package/icc-x-api/filters/HealthElementByHcPartySecretForeignKeysFilter.ts +27 -0
  408. package/icc-x-api/filters/HealthElementByHcPartyTagCodeFilter.ts +29 -0
  409. package/icc-x-api/filters/HealthElementByIdsFilter.ts +24 -0
  410. package/icc-x-api/filters/HealthcarePartyByIdsFilter.ts +24 -0
  411. package/icc-x-api/filters/HealthcarePartyByTagCodeFilter.ts +27 -0
  412. package/icc-x-api/filters/IntersectionFilter.ts +11 -0
  413. package/icc-x-api/filters/InvoiceByHcPartyCodeDateFilter.ts +27 -0
  414. package/icc-x-api/filters/MaintenanceTaskAfterDateFilter.ts +25 -0
  415. package/icc-x-api/filters/MaintenanceTaskByHcPartyAndIdentifiersFilter.ts +26 -0
  416. package/icc-x-api/filters/MaintenanceTaskByHcPartyAndTypeFilter.ts +25 -0
  417. package/icc-x-api/filters/MaintenanceTaskByIdsFilter.ts +24 -0
  418. package/icc-x-api/filters/PatientByHcPartyAndActiveFilter.ts +25 -0
  419. package/icc-x-api/filters/PatientByHcPartyAndAddressFilter.ts +27 -0
  420. package/icc-x-api/filters/PatientByHcPartyAndExternalIdFilter.ts +25 -0
  421. package/icc-x-api/filters/PatientByHcPartyAndIdentifiersFilter.ts +26 -0
  422. package/icc-x-api/filters/PatientByHcPartyAndSsinFilter.ts +25 -0
  423. package/icc-x-api/filters/PatientByHcPartyAndSsinsFilter.ts +25 -0
  424. package/icc-x-api/filters/PatientByHcPartyDateOfBirthBetweenFilter.ts +26 -0
  425. package/icc-x-api/filters/PatientByHcPartyDateOfBirthFilter.ts +25 -0
  426. package/icc-x-api/filters/PatientByHcPartyFilter.ts +24 -0
  427. package/icc-x-api/filters/PatientByHcPartyGenderEducationProfession.ts +19 -0
  428. package/icc-x-api/filters/PatientByHcPartyNameContainsFuzzyFilter.ts +25 -0
  429. package/icc-x-api/filters/PatientByHcPartyNameFilter.ts +25 -0
  430. package/icc-x-api/filters/PatientByIdsFilter.ts +24 -0
  431. package/icc-x-api/filters/ServiceByContactsAndSubcontactsFilter.ts +28 -0
  432. package/icc-x-api/filters/ServiceByHcPartyFilter.ts +24 -0
  433. package/icc-x-api/filters/ServiceByHcPartyHealthElementIdsFilter.ts +25 -0
  434. package/icc-x-api/filters/ServiceByHcPartyIdentifiersFilter.ts +26 -0
  435. package/icc-x-api/filters/ServiceByHcPartyTagCodeDateFilter.ts +31 -0
  436. package/icc-x-api/filters/ServiceByIdsFilter.ts +24 -0
  437. package/icc-x-api/filters/ServiceBySecretForeignKeys.ts +25 -0
  438. package/icc-x-api/filters/UnionFilter.ts +10 -0
  439. package/icc-x-api/filters/UserByIdsFilter.ts +24 -0
  440. package/icc-x-api/filters/UserByNameEmailPhoneFilter.ts +24 -0
  441. package/icc-x-api/filters/UsersByPatientIdFilter.ts +25 -0
  442. package/icc-x-api/filters/filters.ts +361 -0
  443. package/icc-x-api/icc-accesslog-x-api.ts +342 -0
  444. package/icc-x-api/icc-bekmehr-x-api.ts +360 -0
  445. package/icc-x-api/icc-calendar-item-x-api.ts +325 -0
  446. package/icc-x-api/icc-classification-x-api.ts +108 -0
  447. package/icc-x-api/icc-code-x-api.ts +133 -0
  448. package/icc-x-api/icc-contact-x-api.ts +979 -0
  449. package/icc-x-api/icc-crypto-x-api.ts +2350 -0
  450. package/icc-x-api/icc-data-owner-x-api.ts +37 -0
  451. package/icc-x-api/icc-doctemplate-x-api.ts +104 -0
  452. package/icc-x-api/icc-document-x-api.ts +772 -0
  453. package/icc-x-api/icc-form-x-api.ts +186 -0
  454. package/icc-x-api/icc-hcparty-x-api.ts +150 -0
  455. package/icc-x-api/icc-helement-x-api.ts +433 -0
  456. package/icc-x-api/icc-invoice-x-api.ts +207 -0
  457. package/icc-x-api/icc-maintenance-task-x-api.ts +243 -0
  458. package/icc-x-api/icc-message-x-api.ts +92 -0
  459. package/icc-x-api/icc-patient-x-api.ts +1275 -0
  460. package/icc-x-api/icc-receipt-x-api.ts +105 -0
  461. package/icc-x-api/icc-time-table-x-api.ts +69 -0
  462. package/icc-x-api/icc-user-x-api.ts +20 -0
  463. package/icc-x-api/index.ts +227 -0
  464. package/icc-x-api/rsrc/codelng.ts +8 -0
  465. package/icc-x-api/rsrc/contact.i18n.ts +110 -0
  466. package/icc-x-api/rsrc/icd10.ts +113 -0
  467. package/icc-x-api/rsrc/icpc2.ts +22 -0
  468. package/icc-x-api/storage/KeyStorageFacade.ts +35 -0
  469. package/icc-x-api/storage/KeyStorageImpl.ts +37 -0
  470. package/icc-x-api/storage/LocalStorageImpl.ts +24 -0
  471. package/icc-x-api/storage/StorageFacade.ts +21 -0
  472. package/icc-x-api/utils/asn1-packer.ts +87 -0
  473. package/icc-x-api/utils/asn1-parser.ts +151 -0
  474. package/icc-x-api/utils/binary-utils.ts +163 -0
  475. package/icc-x-api/utils/code-util.ts +39 -0
  476. package/icc-x-api/utils/crypto-utils.ts +235 -0
  477. package/icc-x-api/utils/error-reporting.ts +416 -0
  478. package/icc-x-api/utils/formatting-util.ts +220 -0
  479. package/icc-x-api/utils/functional-util.ts +16 -0
  480. package/icc-x-api/utils/hcp-util.ts +122 -0
  481. package/icc-x-api/utils/index.ts +7 -0
  482. package/icc-x-api/utils/insurability-util.ts +54 -0
  483. package/icc-x-api/utils/net-utils.ts +243 -0
  484. package/icc-x-api/utils/person-util.ts +29 -0
  485. package/icc-x-api/utils/uuid-encoder.ts +127 -0
  486. package/icure-pre-commit/.pre-commit-config.yaml +16 -0
  487. package/icure-pre-commit/.secrets.baseline +109 -0
  488. package/icure-pre-commit/README.md +18 -0
  489. package/icure-pre-commit/basic.pre-commit-config.yaml +16 -0
  490. package/icure-pre-commit/icure_detect_secrets/filters/is_icure_safe_data.py +89 -0
  491. package/icure-pre-commit/icure_detect_secrets/filters/is_key_format.py +9 -0
  492. package/icure-pre-commit/icure_detect_secrets/plugins/EncodedFileDetector.py +71 -0
  493. package/icure-pre-commit/icure_detect_secrets/plugins/KeyFileDetector.py +57 -0
  494. package/icure-pre-commit/install_optional_detect-secrets.sh +45 -0
  495. package/icure-pre-commit/install_required_tools.sh +35 -0
  496. package/icure-pre-commit/kotlin.pre-commit-config.yaml +21 -0
  497. package/icure-pre-commit/scan-secrets.sh +7 -0
  498. package/index.ts +8 -0
  499. package/node-compat.ts +11 -0
  500. package/package-lock.json +26824 -0
  501. package/package.json +65 -3
  502. package/sonar-project.properties +20 -0
  503. package/test/icc-api/api/IccDocumentApi.ts +141 -0
  504. package/test/icc-api/api/IccUserApi.ts +22 -0
  505. package/test/icc-api/e2e/IccCalendarItemApi.ts +37 -0
  506. package/test/icc-api/model/modelHelpersTest.ts +54 -0
  507. package/test/icc-x-api/auth/jwt-concurrency-test.ts +142 -0
  508. package/test/icc-x-api/crypto/concurrency.ts +33 -0
  509. package/test/icc-x-api/crypto/crypto-utils.ts +89 -0
  510. package/test/icc-x-api/crypto/cryptoTest.ts +291 -0
  511. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.ts +168 -0
  512. package/test/icc-x-api/crypto/full-crypto-test.ts +569 -0
  513. package/test/icc-x-api/crypto/shamir.ts +46 -0
  514. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.ts +137 -0
  515. package/test/icc-x-api/error-reporting-test.ts +85 -0
  516. package/test/icc-x-api/filters/filters.ts +58 -0
  517. package/test/icc-x-api/icc-accesslog-x-api.ts +104 -0
  518. package/test/icc-x-api/icc-auth-api.ts +44 -0
  519. package/test/icc-x-api/icc-calendar-item-x-api.ts +97 -0
  520. package/test/icc-x-api/icc-contact-x-api.ts +235 -0
  521. package/test/icc-x-api/icc-form-x-api-test.ts +273 -0
  522. package/test/icc-x-api/icc-form-x-api.ts +97 -0
  523. package/test/icc-x-api/icc-helement-x-api-test.ts +150 -0
  524. package/test/icc-x-api/icc-invoice-x-api.ts +100 -0
  525. package/test/icc-x-api/icc-maintenance-task-x-api-test.ts +273 -0
  526. package/test/icc-x-api/icc-patient-x-api-test.ts +58 -0
  527. package/test/icc-x-api/icc-time-table-x-api.ts +84 -0
  528. package/test/icc-x-api/patient-user.ts +154 -0
  529. package/test/icc-x-api/storage/storage.ts +51 -0
  530. package/test/mocha.opts +1 -0
  531. package/test/scratch/docker-compose-cloud.yaml +121 -0
  532. package/test/scratch/docker-compose.yaml +46 -0
  533. package/test/scratch/docker.ini +9 -0
  534. package/test/scratch/haproxy/haproxy.cfg +26 -0
  535. package/test/support/CSM-87.ts +30 -0
  536. package/test/support/CSM-93.ts +127 -0
  537. package/test/utils/test-utils-decorators.ts +409 -0
  538. package/test/utils/test_utils.ts +167 -0
  539. package/test-scripts/cleanup.ts +26 -0
  540. package/tsconfig.json +21 -0
  541. package/icc-api/api/IccGroupApi.d.ts +0 -199
  542. package/icc-api/api/IccGroupApi.js +0 -427
  543. package/icc-api/api/IccGroupApi.js.map +0 -1
  544. package/icc-api/model/ModelHelper.js +0 -93
  545. package/icc-api/model/ModelHelper.js.map +0 -1
  546. package/icc-api/model/models.d.ts +0 -274
  547. package/icc-x-api/auth/AuthenticationProvider.js +0 -78
  548. package/icc-x-api/auth/AuthenticationProvider.js.map +0 -1
  549. package/icc-x-api/auth/JwtAuthService.d.ts +0 -20
  550. package/icc-x-api/auth/JwtAuthService.js +0 -84
  551. package/icc-x-api/auth/JwtAuthService.js.map +0 -1
  552. package/icc-x-api/auth/JwtBridgedAuthService.d.ts +0 -26
  553. package/icc-x-api/auth/JwtBridgedAuthService.js +0 -128
  554. package/icc-x-api/auth/JwtBridgedAuthService.js.map +0 -1
  555. package/icc-x-api/crypto/AES.js +0 -146
  556. package/icc-x-api/crypto/AES.js.map +0 -1
  557. package/icc-x-api/filters/filters.d.ts +0 -115
  558. package/icc-x-api/icc-bekmehr-x-api.d.ts +0 -41
  559. package/icc-x-api/icc-crypto-x-api.d.ts +0 -526
  560. package/icc-x-api/icc-crypto-x-api.js +0 -1788
  561. package/icc-x-api/icc-crypto-x-api.js.map +0 -1
  562. package/icc-x-api/utils/asn1-packer.d.ts +0 -3
  563. package/icc-x-api/utils/asn1-parser.d.ts +0 -8
  564. package/icc-x-api/utils/net-utils.d.ts +0 -25
  565. /package/{icc-api → dist/icc-api}/api/IccAccesslogApi.d.ts +0 -0
  566. /package/{icc-api → dist/icc-api}/api/IccAccesslogApi.js +0 -0
  567. /package/{icc-api → dist/icc-api}/api/IccAccesslogApi.js.map +0 -0
  568. /package/{icc-api → dist/icc-api}/api/IccAgendaApi.d.ts +0 -0
  569. /package/{icc-api → dist/icc-api}/api/IccAgendaApi.js +0 -0
  570. /package/{icc-api → dist/icc-api}/api/IccAgendaApi.js.map +0 -0
  571. /package/{icc-api → dist/icc-api}/api/IccAnonymousAccessApi.d.ts +0 -0
  572. /package/{icc-api → dist/icc-api}/api/IccAnonymousAccessApi.js +0 -0
  573. /package/{icc-api → dist/icc-api}/api/IccAnonymousAccessApi.js.map +0 -0
  574. /package/{icc-api → dist/icc-api}/api/IccApplicationsettingsApi.d.ts +0 -0
  575. /package/{icc-api → dist/icc-api}/api/IccApplicationsettingsApi.js +0 -0
  576. /package/{icc-api → dist/icc-api}/api/IccApplicationsettingsApi.js.map +0 -0
  577. /package/{icc-api → dist/icc-api}/api/IccArticleApi.d.ts +0 -0
  578. /package/{icc-api → dist/icc-api}/api/IccArticleApi.js +0 -0
  579. /package/{icc-api → dist/icc-api}/api/IccArticleApi.js.map +0 -0
  580. /package/{icc-api → dist/icc-api}/api/IccAuthApi.d.ts +0 -0
  581. /package/{icc-api → dist/icc-api}/api/IccAuthApi.js +0 -0
  582. /package/{icc-api → dist/icc-api}/api/IccAuthApi.js.map +0 -0
  583. /package/{icc-api → dist/icc-api}/api/IccBeefactApi.d.ts +0 -0
  584. /package/{icc-api → dist/icc-api}/api/IccBeefactApi.js +0 -0
  585. /package/{icc-api → dist/icc-api}/api/IccBeefactApi.js.map +0 -0
  586. /package/{icc-api → dist/icc-api}/api/IccBekmehrApi.d.ts +0 -0
  587. /package/{icc-api → dist/icc-api}/api/IccBekmehrApi.js +0 -0
  588. /package/{icc-api → dist/icc-api}/api/IccBekmehrApi.js.map +0 -0
  589. /package/{icc-api → dist/icc-api}/api/IccBeresultexportApi.d.ts +0 -0
  590. /package/{icc-api → dist/icc-api}/api/IccBeresultexportApi.js +0 -0
  591. /package/{icc-api → dist/icc-api}/api/IccBeresultexportApi.js.map +0 -0
  592. /package/{icc-api → dist/icc-api}/api/IccBeresultimportApi.d.ts +0 -0
  593. /package/{icc-api → dist/icc-api}/api/IccBeresultimportApi.js +0 -0
  594. /package/{icc-api → dist/icc-api}/api/IccBeresultimportApi.js.map +0 -0
  595. /package/{icc-api → dist/icc-api}/api/IccBesamv2Api.d.ts +0 -0
  596. /package/{icc-api → dist/icc-api}/api/IccBesamv2Api.js +0 -0
  597. /package/{icc-api → dist/icc-api}/api/IccBesamv2Api.js.map +0 -0
  598. /package/{icc-api → dist/icc-api}/api/IccCalendarItemApi.d.ts +0 -0
  599. /package/{icc-api → dist/icc-api}/api/IccCalendarItemApi.js +0 -0
  600. /package/{icc-api → dist/icc-api}/api/IccCalendarItemApi.js.map +0 -0
  601. /package/{icc-api → dist/icc-api}/api/IccCalendarItemTypeApi.d.ts +0 -0
  602. /package/{icc-api → dist/icc-api}/api/IccCalendarItemTypeApi.js +0 -0
  603. /package/{icc-api → dist/icc-api}/api/IccCalendarItemTypeApi.js.map +0 -0
  604. /package/{icc-api → dist/icc-api}/api/IccClassificationApi.d.ts +0 -0
  605. /package/{icc-api → dist/icc-api}/api/IccClassificationApi.js +0 -0
  606. /package/{icc-api → dist/icc-api}/api/IccClassificationApi.js.map +0 -0
  607. /package/{icc-api → dist/icc-api}/api/IccClassificationTemplateApi.d.ts +0 -0
  608. /package/{icc-api → dist/icc-api}/api/IccClassificationTemplateApi.js +0 -0
  609. /package/{icc-api → dist/icc-api}/api/IccClassificationTemplateApi.js.map +0 -0
  610. /package/{icc-api → dist/icc-api}/api/IccCodeApi.d.ts +0 -0
  611. /package/{icc-api → dist/icc-api}/api/IccCodeApi.js +0 -0
  612. /package/{icc-api → dist/icc-api}/api/IccCodeApi.js.map +0 -0
  613. /package/{icc-api → dist/icc-api}/api/IccContactApi.d.ts +0 -0
  614. /package/{icc-api → dist/icc-api}/api/IccContactApi.js +0 -0
  615. /package/{icc-api → dist/icc-api}/api/IccContactApi.js.map +0 -0
  616. /package/{icc-api → dist/icc-api}/api/IccDataownerApi.d.ts +0 -0
  617. /package/{icc-api → dist/icc-api}/api/IccDataownerApi.js +0 -0
  618. /package/{icc-api → dist/icc-api}/api/IccDataownerApi.js.map +0 -0
  619. /package/{icc-api → dist/icc-api}/api/IccDeviceApi.d.ts +0 -0
  620. /package/{icc-api → dist/icc-api}/api/IccDeviceApi.js +0 -0
  621. /package/{icc-api → dist/icc-api}/api/IccDeviceApi.js.map +0 -0
  622. /package/{icc-api → dist/icc-api}/api/IccDoctemplateApi.d.ts +0 -0
  623. /package/{icc-api → dist/icc-api}/api/IccDoctemplateApi.js +0 -0
  624. /package/{icc-api → dist/icc-api}/api/IccDoctemplateApi.js.map +0 -0
  625. /package/{icc-api → dist/icc-api}/api/IccDocumentApi.d.ts +0 -0
  626. /package/{icc-api → dist/icc-api}/api/IccDocumentApi.js +0 -0
  627. /package/{icc-api → dist/icc-api}/api/IccDocumentApi.js.map +0 -0
  628. /package/{icc-api → dist/icc-api}/api/IccDocumentTemplateApi.d.ts +0 -0
  629. /package/{icc-api → dist/icc-api}/api/IccDocumentTemplateApi.js +0 -0
  630. /package/{icc-api → dist/icc-api}/api/IccDocumentTemplateApi.js.map +0 -0
  631. /package/{icc-api → dist/icc-api}/api/IccEntityrefApi.d.ts +0 -0
  632. /package/{icc-api → dist/icc-api}/api/IccEntityrefApi.js +0 -0
  633. /package/{icc-api → dist/icc-api}/api/IccEntityrefApi.js.map +0 -0
  634. /package/{icc-api → dist/icc-api}/api/IccEntitytemplateApi.d.ts +0 -0
  635. /package/{icc-api → dist/icc-api}/api/IccEntitytemplateApi.js +0 -0
  636. /package/{icc-api → dist/icc-api}/api/IccEntitytemplateApi.js.map +0 -0
  637. /package/{icc-api → dist/icc-api}/api/IccFormApi.d.ts +0 -0
  638. /package/{icc-api → dist/icc-api}/api/IccFormApi.js +0 -0
  639. /package/{icc-api → dist/icc-api}/api/IccFormApi.js.map +0 -0
  640. /package/{icc-api → dist/icc-api}/api/IccFrontendmigrationApi.d.ts +0 -0
  641. /package/{icc-api → dist/icc-api}/api/IccFrontendmigrationApi.js +0 -0
  642. /package/{icc-api → dist/icc-api}/api/IccFrontendmigrationApi.js.map +0 -0
  643. /package/{icc-api → dist/icc-api}/api/IccHcpartyApi.d.ts +0 -0
  644. /package/{icc-api → dist/icc-api}/api/IccHcpartyApi.js +0 -0
  645. /package/{icc-api → dist/icc-api}/api/IccHcpartyApi.js.map +0 -0
  646. /package/{icc-api → dist/icc-api}/api/IccHelementApi.d.ts +0 -0
  647. /package/{icc-api → dist/icc-api}/api/IccHelementApi.js +0 -0
  648. /package/{icc-api → dist/icc-api}/api/IccHelementApi.js.map +0 -0
  649. /package/{icc-api → dist/icc-api}/api/IccIcureApi.d.ts +0 -0
  650. /package/{icc-api → dist/icc-api}/api/IccIcureApi.js +0 -0
  651. /package/{icc-api → dist/icc-api}/api/IccIcureApi.js.map +0 -0
  652. /package/{icc-api → dist/icc-api}/api/IccInsuranceApi.d.ts +0 -0
  653. /package/{icc-api → dist/icc-api}/api/IccInsuranceApi.js +0 -0
  654. /package/{icc-api → dist/icc-api}/api/IccInsuranceApi.js.map +0 -0
  655. /package/{icc-api → dist/icc-api}/api/IccInvoiceApi.d.ts +0 -0
  656. /package/{icc-api → dist/icc-api}/api/IccInvoiceApi.js +0 -0
  657. /package/{icc-api → dist/icc-api}/api/IccInvoiceApi.js.map +0 -0
  658. /package/{icc-api → dist/icc-api}/api/IccKeywordApi.d.ts +0 -0
  659. /package/{icc-api → dist/icc-api}/api/IccKeywordApi.js +0 -0
  660. /package/{icc-api → dist/icc-api}/api/IccKeywordApi.js.map +0 -0
  661. /package/{icc-api → dist/icc-api}/api/IccMaintenanceTaskApi.d.ts +0 -0
  662. /package/{icc-api → dist/icc-api}/api/IccMaintenanceTaskApi.js +0 -0
  663. /package/{icc-api → dist/icc-api}/api/IccMaintenanceTaskApi.js.map +0 -0
  664. /package/{icc-api → dist/icc-api}/api/IccMedexApi.d.ts +0 -0
  665. /package/{icc-api → dist/icc-api}/api/IccMedexApi.js +0 -0
  666. /package/{icc-api → dist/icc-api}/api/IccMedexApi.js.map +0 -0
  667. /package/{icc-api → dist/icc-api}/api/IccMedicallocationApi.d.ts +0 -0
  668. /package/{icc-api → dist/icc-api}/api/IccMedicallocationApi.js +0 -0
  669. /package/{icc-api → dist/icc-api}/api/IccMedicallocationApi.js.map +0 -0
  670. /package/{icc-api → dist/icc-api}/api/IccMessageApi.d.ts +0 -0
  671. /package/{icc-api → dist/icc-api}/api/IccMessageApi.js +0 -0
  672. /package/{icc-api → dist/icc-api}/api/IccMessageApi.js.map +0 -0
  673. /package/{icc-api → dist/icc-api}/api/IccPatientApi.d.ts +0 -0
  674. /package/{icc-api → dist/icc-api}/api/IccPatientApi.js +0 -0
  675. /package/{icc-api → dist/icc-api}/api/IccPatientApi.js.map +0 -0
  676. /package/{icc-api → dist/icc-api}/api/IccPermissionApi.d.ts +0 -0
  677. /package/{icc-api → dist/icc-api}/api/IccPermissionApi.js +0 -0
  678. /package/{icc-api → dist/icc-api}/api/IccPermissionApi.js.map +0 -0
  679. /package/{icc-api → dist/icc-api}/api/IccPlaceApi.d.ts +0 -0
  680. /package/{icc-api → dist/icc-api}/api/IccPlaceApi.js +0 -0
  681. /package/{icc-api → dist/icc-api}/api/IccPlaceApi.js.map +0 -0
  682. /package/{icc-api → dist/icc-api}/api/IccPubsubApi.d.ts +0 -0
  683. /package/{icc-api → dist/icc-api}/api/IccPubsubApi.js +0 -0
  684. /package/{icc-api → dist/icc-api}/api/IccPubsubApi.js.map +0 -0
  685. /package/{icc-api → dist/icc-api}/api/IccReceiptApi.d.ts +0 -0
  686. /package/{icc-api → dist/icc-api}/api/IccReceiptApi.js +0 -0
  687. /package/{icc-api → dist/icc-api}/api/IccReceiptApi.js.map +0 -0
  688. /package/{icc-api → dist/icc-api}/api/IccReplicationApi.d.ts +0 -0
  689. /package/{icc-api → dist/icc-api}/api/IccReplicationApi.js +0 -0
  690. /package/{icc-api → dist/icc-api}/api/IccReplicationApi.js.map +0 -0
  691. /package/{icc-api → dist/icc-api}/api/IccTarificationApi.d.ts +0 -0
  692. /package/{icc-api → dist/icc-api}/api/IccTarificationApi.js +0 -0
  693. /package/{icc-api → dist/icc-api}/api/IccTarificationApi.js.map +0 -0
  694. /package/{icc-api → dist/icc-api}/api/IccTimeTableApi.d.ts +0 -0
  695. /package/{icc-api → dist/icc-api}/api/IccTimeTableApi.js +0 -0
  696. /package/{icc-api → dist/icc-api}/api/IccTimeTableApi.js.map +0 -0
  697. /package/{icc-api → dist/icc-api}/api/IccTmpApi.d.ts +0 -0
  698. /package/{icc-api → dist/icc-api}/api/IccTmpApi.js +0 -0
  699. /package/{icc-api → dist/icc-api}/api/IccTmpApi.js.map +0 -0
  700. /package/{icc-api → dist/icc-api}/api/IccUserApi.d.ts +0 -0
  701. /package/{icc-api → dist/icc-api}/api/IccUserApi.js +0 -0
  702. /package/{icc-api → dist/icc-api}/api/IccUserApi.js.map +0 -0
  703. /package/{icc-api → dist/icc-api}/api/XHR.d.ts +0 -0
  704. /package/{icc-api → dist/icc-api}/api/XHR.js +0 -0
  705. /package/{icc-api → dist/icc-api}/api/XHR.js.map +0 -0
  706. /package/{icc-api → dist/icc-api}/iccApi.d.ts +0 -0
  707. /package/{icc-api → dist/icc-api}/iccApi.js +0 -0
  708. /package/{icc-api → dist/icc-api}/iccApi.js.map +0 -0
  709. /package/{icc-api → dist/icc-api}/index.d.ts +0 -0
  710. /package/{icc-api → dist/icc-api}/index.js +0 -0
  711. /package/{icc-api → dist/icc-api}/index.js.map +0 -0
  712. /package/{icc-api → dist/icc-api}/model/AbstractFilterCode.d.ts +0 -0
  713. /package/{icc-api → dist/icc-api}/model/AbstractFilterCode.js +0 -0
  714. /package/{icc-api → dist/icc-api}/model/AbstractFilterCode.js.map +0 -0
  715. /package/{icc-api → dist/icc-api}/model/AbstractFilterContact.d.ts +0 -0
  716. /package/{icc-api → dist/icc-api}/model/AbstractFilterContact.js +0 -0
  717. /package/{icc-api → dist/icc-api}/model/AbstractFilterContact.js.map +0 -0
  718. /package/{icc-api → dist/icc-api}/model/AbstractFilterDevice.d.ts +0 -0
  719. /package/{icc-api → dist/icc-api}/model/AbstractFilterDevice.js +0 -0
  720. /package/{icc-api → dist/icc-api}/model/AbstractFilterDevice.js.map +0 -0
  721. /package/{icc-api → dist/icc-api}/model/AbstractFilterHealthElement.d.ts +0 -0
  722. /package/{icc-api → dist/icc-api}/model/AbstractFilterHealthElement.js +0 -0
  723. /package/{icc-api → dist/icc-api}/model/AbstractFilterHealthElement.js.map +0 -0
  724. /package/{icc-api → dist/icc-api}/model/AbstractFilterHealthcareParty.d.ts +0 -0
  725. /package/{icc-api → dist/icc-api}/model/AbstractFilterHealthcareParty.js +0 -0
  726. /package/{icc-api → dist/icc-api}/model/AbstractFilterHealthcareParty.js.map +0 -0
  727. /package/{icc-api → dist/icc-api}/model/AbstractFilterInvoice.d.ts +0 -0
  728. /package/{icc-api → dist/icc-api}/model/AbstractFilterInvoice.js +0 -0
  729. /package/{icc-api → dist/icc-api}/model/AbstractFilterInvoice.js.map +0 -0
  730. /package/{icc-api → dist/icc-api}/model/AbstractFilterMaintenanceTask.d.ts +0 -0
  731. /package/{icc-api → dist/icc-api}/model/AbstractFilterMaintenanceTask.js +0 -0
  732. /package/{icc-api → dist/icc-api}/model/AbstractFilterMaintenanceTask.js.map +0 -0
  733. /package/{icc-api → dist/icc-api}/model/AbstractFilterPatient.d.ts +0 -0
  734. /package/{icc-api → dist/icc-api}/model/AbstractFilterPatient.js +0 -0
  735. /package/{icc-api → dist/icc-api}/model/AbstractFilterPatient.js.map +0 -0
  736. /package/{icc-api → dist/icc-api}/model/AbstractFilterService.d.ts +0 -0
  737. /package/{icc-api → dist/icc-api}/model/AbstractFilterService.js +0 -0
  738. /package/{icc-api → dist/icc-api}/model/AbstractFilterService.js.map +0 -0
  739. /package/{icc-api → dist/icc-api}/model/AbstractFilterUser.d.ts +0 -0
  740. /package/{icc-api → dist/icc-api}/model/AbstractFilterUser.js +0 -0
  741. /package/{icc-api → dist/icc-api}/model/AbstractFilterUser.js.map +0 -0
  742. /package/{icc-api → dist/icc-api}/model/AccessLog.d.ts +0 -0
  743. /package/{icc-api → dist/icc-api}/model/AccessLog.js +0 -0
  744. /package/{icc-api → dist/icc-api}/model/AccessLog.js.map +0 -0
  745. /package/{icc-api → dist/icc-api}/model/AddedDocument.d.ts +0 -0
  746. /package/{icc-api → dist/icc-api}/model/AddedDocument.js +0 -0
  747. /package/{icc-api → dist/icc-api}/model/AddedDocument.js.map +0 -0
  748. /package/{icc-api → dist/icc-api}/model/Address.d.ts +0 -0
  749. /package/{icc-api → dist/icc-api}/model/Address.js +0 -0
  750. /package/{icc-api → dist/icc-api}/model/Address.js.map +0 -0
  751. /package/{icc-api → dist/icc-api}/model/AdministrationQuantity.d.ts +0 -0
  752. /package/{icc-api → dist/icc-api}/model/AdministrationQuantity.js +0 -0
  753. /package/{icc-api → dist/icc-api}/model/AdministrationQuantity.js.map +0 -0
  754. /package/{icc-api → dist/icc-api}/model/Agenda.d.ts +0 -0
  755. /package/{icc-api → dist/icc-api}/model/Agenda.js +0 -0
  756. /package/{icc-api → dist/icc-api}/model/Agenda.js.map +0 -0
  757. /package/{icc-api → dist/icc-api}/model/AgreementAppendix.d.ts +0 -0
  758. /package/{icc-api → dist/icc-api}/model/AgreementAppendix.js +0 -0
  759. /package/{icc-api → dist/icc-api}/model/AgreementAppendix.js.map +0 -0
  760. /package/{icc-api → dist/icc-api}/model/Amp.d.ts +0 -0
  761. /package/{icc-api → dist/icc-api}/model/Amp.js +0 -0
  762. /package/{icc-api → dist/icc-api}/model/Amp.js.map +0 -0
  763. /package/{icc-api → dist/icc-api}/model/AmpComponent.d.ts +0 -0
  764. /package/{icc-api → dist/icc-api}/model/AmpComponent.js +0 -0
  765. /package/{icc-api → dist/icc-api}/model/AmpComponent.js.map +0 -0
  766. /package/{icc-api → dist/icc-api}/model/Ampp.d.ts +0 -0
  767. /package/{icc-api → dist/icc-api}/model/Ampp.js +0 -0
  768. /package/{icc-api → dist/icc-api}/model/Ampp.js.map +0 -0
  769. /package/{icc-api → dist/icc-api}/model/AmppComponent.d.ts +0 -0
  770. /package/{icc-api → dist/icc-api}/model/AmppComponent.js +0 -0
  771. /package/{icc-api → dist/icc-api}/model/AmppComponent.js.map +0 -0
  772. /package/{icc-api → dist/icc-api}/model/Annotation.d.ts +0 -0
  773. /package/{icc-api → dist/icc-api}/model/Annotation.js +0 -0
  774. /package/{icc-api → dist/icc-api}/model/Annotation.js.map +0 -0
  775. /package/{icc-api → dist/icc-api}/model/ApplicationSettings.d.ts +0 -0
  776. /package/{icc-api → dist/icc-api}/model/ApplicationSettings.js +0 -0
  777. /package/{icc-api → dist/icc-api}/model/ApplicationSettings.js.map +0 -0
  778. /package/{icc-api → dist/icc-api}/model/Appointment.d.ts +0 -0
  779. /package/{icc-api → dist/icc-api}/model/Appointment.js +0 -0
  780. /package/{icc-api → dist/icc-api}/model/Appointment.js.map +0 -0
  781. /package/{icc-api → dist/icc-api}/model/AppointmentImport.d.ts +0 -0
  782. /package/{icc-api → dist/icc-api}/model/AppointmentImport.js +0 -0
  783. /package/{icc-api → dist/icc-api}/model/AppointmentImport.js.map +0 -0
  784. /package/{icc-api → dist/icc-api}/model/AppointmentTypeAndPlace.d.ts +0 -0
  785. /package/{icc-api → dist/icc-api}/model/AppointmentTypeAndPlace.js +0 -0
  786. /package/{icc-api → dist/icc-api}/model/AppointmentTypeAndPlace.js.map +0 -0
  787. /package/{icc-api → dist/icc-api}/model/Article.d.ts +0 -0
  788. /package/{icc-api → dist/icc-api}/model/Article.js +0 -0
  789. /package/{icc-api → dist/icc-api}/model/Article.js.map +0 -0
  790. /package/{icc-api → dist/icc-api}/model/Atc.d.ts +0 -0
  791. /package/{icc-api → dist/icc-api}/model/Atc.js +0 -0
  792. /package/{icc-api → dist/icc-api}/model/Atc.js.map +0 -0
  793. /package/{icc-api → dist/icc-api}/model/Attachment.d.ts +0 -0
  794. /package/{icc-api → dist/icc-api}/model/Attachment.js +0 -0
  795. /package/{icc-api → dist/icc-api}/model/Attachment.js.map +0 -0
  796. /package/{icc-api → dist/icc-api}/model/AttachmentMetadata.d.ts +0 -0
  797. /package/{icc-api → dist/icc-api}/model/AttachmentMetadata.js +0 -0
  798. /package/{icc-api → dist/icc-api}/model/AttachmentMetadata.js.map +0 -0
  799. /package/{icc-api → dist/icc-api}/model/AuthenticationResponse.d.ts +0 -0
  800. /package/{icc-api → dist/icc-api}/model/AuthenticationResponse.js +0 -0
  801. /package/{icc-api → dist/icc-api}/model/AuthenticationResponse.js.map +0 -0
  802. /package/{icc-api → dist/icc-api}/model/AuthenticationToken.d.ts +0 -0
  803. /package/{icc-api → dist/icc-api}/model/AuthenticationToken.js +0 -0
  804. /package/{icc-api → dist/icc-api}/model/AuthenticationToken.js.map +0 -0
  805. /package/{icc-api → dist/icc-api}/model/Basic.d.ts +0 -0
  806. /package/{icc-api → dist/icc-api}/model/Basic.js +0 -0
  807. /package/{icc-api → dist/icc-api}/model/Basic.js.map +0 -0
  808. /package/{icc-api → dist/icc-api}/model/Body.d.ts +0 -0
  809. /package/{icc-api → dist/icc-api}/model/Body.js +0 -0
  810. /package/{icc-api → dist/icc-api}/model/Body.js.map +0 -0
  811. /package/{icc-api → dist/icc-api}/model/Body3.d.ts +0 -0
  812. /package/{icc-api → dist/icc-api}/model/Body3.js +0 -0
  813. /package/{icc-api → dist/icc-api}/model/Body3.js.map +0 -0
  814. /package/{icc-api → dist/icc-api}/model/BulkAttachmentUpdateOptions.d.ts +0 -0
  815. /package/{icc-api → dist/icc-api}/model/BulkAttachmentUpdateOptions.js +0 -0
  816. /package/{icc-api → dist/icc-api}/model/BulkAttachmentUpdateOptions.js.map +0 -0
  817. /package/{icc-api → dist/icc-api}/model/ByteArray.d.ts +0 -0
  818. /package/{icc-api → dist/icc-api}/model/ByteArray.js +0 -0
  819. /package/{icc-api → dist/icc-api}/model/ByteArray.js.map +0 -0
  820. /package/{icc-api → dist/icc-api}/model/CalendarItem.d.ts +0 -0
  821. /package/{icc-api → dist/icc-api}/model/CalendarItem.js +0 -0
  822. /package/{icc-api → dist/icc-api}/model/CalendarItem.js.map +0 -0
  823. /package/{icc-api → dist/icc-api}/model/CalendarItemTag.d.ts +0 -0
  824. /package/{icc-api → dist/icc-api}/model/CalendarItemTag.js +0 -0
  825. /package/{icc-api → dist/icc-api}/model/CalendarItemTag.js.map +0 -0
  826. /package/{icc-api → dist/icc-api}/model/CalendarItemType.d.ts +0 -0
  827. /package/{icc-api → dist/icc-api}/model/CalendarItemType.js +0 -0
  828. /package/{icc-api → dist/icc-api}/model/CalendarItemType.js.map +0 -0
  829. /package/{icc-api → dist/icc-api}/model/CareTeamMember.d.ts +0 -0
  830. /package/{icc-api → dist/icc-api}/model/CareTeamMember.js +0 -0
  831. /package/{icc-api → dist/icc-api}/model/CareTeamMember.js.map +0 -0
  832. /package/{icc-api → dist/icc-api}/model/CareTeamMembership.d.ts +0 -0
  833. /package/{icc-api → dist/icc-api}/model/CareTeamMembership.js +0 -0
  834. /package/{icc-api → dist/icc-api}/model/CareTeamMembership.js.map +0 -0
  835. /package/{icc-api → dist/icc-api}/model/CheckSMFPatientResult.d.ts +0 -0
  836. /package/{icc-api → dist/icc-api}/model/CheckSMFPatientResult.js +0 -0
  837. /package/{icc-api → dist/icc-api}/model/CheckSMFPatientResult.js.map +0 -0
  838. /package/{icc-api → dist/icc-api}/model/Classification.d.ts +0 -0
  839. /package/{icc-api → dist/icc-api}/model/Classification.js +0 -0
  840. /package/{icc-api → dist/icc-api}/model/Classification.js.map +0 -0
  841. /package/{icc-api → dist/icc-api}/model/ClassificationTemplate.d.ts +0 -0
  842. /package/{icc-api → dist/icc-api}/model/ClassificationTemplate.js +0 -0
  843. /package/{icc-api → dist/icc-api}/model/ClassificationTemplate.js.map +0 -0
  844. /package/{icc-api → dist/icc-api}/model/Code.d.ts +0 -0
  845. /package/{icc-api → dist/icc-api}/model/Code.js +0 -0
  846. /package/{icc-api → dist/icc-api}/model/Code.js.map +0 -0
  847. /package/{icc-api → dist/icc-api}/model/CodeStub.d.ts +0 -0
  848. /package/{icc-api → dist/icc-api}/model/CodeStub.js +0 -0
  849. /package/{icc-api → dist/icc-api}/model/CodeStub.js.map +0 -0
  850. /package/{icc-api → dist/icc-api}/model/CodeType.d.ts +0 -0
  851. /package/{icc-api → dist/icc-api}/model/CodeType.js +0 -0
  852. /package/{icc-api → dist/icc-api}/model/CodeType.js.map +0 -0
  853. /package/{icc-api → dist/icc-api}/model/CommentedClassification.d.ts +0 -0
  854. /package/{icc-api → dist/icc-api}/model/CommentedClassification.js +0 -0
  855. /package/{icc-api → dist/icc-api}/model/CommentedClassification.js.map +0 -0
  856. /package/{icc-api → dist/icc-api}/model/Commercialization.d.ts +0 -0
  857. /package/{icc-api → dist/icc-api}/model/Commercialization.js +0 -0
  858. /package/{icc-api → dist/icc-api}/model/Commercialization.js.map +0 -0
  859. /package/{icc-api → dist/icc-api}/model/Company.d.ts +0 -0
  860. /package/{icc-api → dist/icc-api}/model/Company.js +0 -0
  861. /package/{icc-api → dist/icc-api}/model/Company.js.map +0 -0
  862. /package/{icc-api → dist/icc-api}/model/Contact.d.ts +0 -0
  863. /package/{icc-api → dist/icc-api}/model/Contact.js +0 -0
  864. /package/{icc-api → dist/icc-api}/model/Contact.js.map +0 -0
  865. /package/{icc-api → dist/icc-api}/model/Content.d.ts +0 -0
  866. /package/{icc-api → dist/icc-api}/model/Content.js +0 -0
  867. /package/{icc-api → dist/icc-api}/model/Content.js.map +0 -0
  868. /package/{icc-api → dist/icc-api}/model/Copayment.d.ts +0 -0
  869. /package/{icc-api → dist/icc-api}/model/Copayment.js +0 -0
  870. /package/{icc-api → dist/icc-api}/model/Copayment.js.map +0 -0
  871. /package/{icc-api → dist/icc-api}/model/Data.d.ts +0 -0
  872. /package/{icc-api → dist/icc-api}/model/Data.js +0 -0
  873. /package/{icc-api → dist/icc-api}/model/Data.js.map +0 -0
  874. /package/{icc-api → dist/icc-api}/model/DataAttachment.d.ts +0 -0
  875. /package/{icc-api → dist/icc-api}/model/DataAttachment.js +0 -0
  876. /package/{icc-api → dist/icc-api}/model/DataAttachment.js.map +0 -0
  877. /package/{icc-api → dist/icc-api}/model/DataOwnerRegistrationSuccess.d.ts +0 -0
  878. /package/{icc-api → dist/icc-api}/model/DataOwnerRegistrationSuccess.js +0 -0
  879. /package/{icc-api → dist/icc-api}/model/DataOwnerRegistrationSuccess.js.map +0 -0
  880. /package/{icc-api → dist/icc-api}/model/DataOwnerWithType.d.ts +0 -0
  881. /package/{icc-api → dist/icc-api}/model/DataOwnerWithType.js +0 -0
  882. /package/{icc-api → dist/icc-api}/model/DataOwnerWithType.js.map +0 -0
  883. /package/{icc-api → dist/icc-api}/model/DatabaseInfo.d.ts +0 -0
  884. /package/{icc-api → dist/icc-api}/model/DatabaseInfo.js +0 -0
  885. /package/{icc-api → dist/icc-api}/model/DatabaseInfo.js.map +0 -0
  886. /package/{icc-api → dist/icc-api}/model/DatabaseInitialisation.d.ts +0 -0
  887. /package/{icc-api → dist/icc-api}/model/DatabaseInitialisation.js +0 -0
  888. /package/{icc-api → dist/icc-api}/model/DatabaseInitialisation.js.map +0 -0
  889. /package/{icc-api → dist/icc-api}/model/DatabaseSynchronization.d.ts +0 -0
  890. /package/{icc-api → dist/icc-api}/model/DatabaseSynchronization.js +0 -0
  891. /package/{icc-api → dist/icc-api}/model/DatabaseSynchronization.js.map +0 -0
  892. /package/{icc-api → dist/icc-api}/model/Delegation.d.ts +0 -0
  893. /package/{icc-api → dist/icc-api}/model/Delegation.js +0 -0
  894. /package/{icc-api → dist/icc-api}/model/Delegation.js.map +0 -0
  895. /package/{icc-api → dist/icc-api}/model/DeletedAttachment.d.ts +0 -0
  896. /package/{icc-api → dist/icc-api}/model/DeletedAttachment.js +0 -0
  897. /package/{icc-api → dist/icc-api}/model/DeletedAttachment.js.map +0 -0
  898. /package/{icc-api → dist/icc-api}/model/Device.d.ts +0 -0
  899. /package/{icc-api → dist/icc-api}/model/Device.js +0 -0
  900. /package/{icc-api → dist/icc-api}/model/Device.js.map +0 -0
  901. /package/{icc-api → dist/icc-api}/model/DeviceType.d.ts +0 -0
  902. /package/{icc-api → dist/icc-api}/model/DeviceType.js +0 -0
  903. /package/{icc-api → dist/icc-api}/model/DeviceType.js.map +0 -0
  904. /package/{icc-api → dist/icc-api}/model/DiaryNoteExportInfo.d.ts +0 -0
  905. /package/{icc-api → dist/icc-api}/model/DiaryNoteExportInfo.js +0 -0
  906. /package/{icc-api → dist/icc-api}/model/DiaryNoteExportInfo.js.map +0 -0
  907. /package/{icc-api → dist/icc-api}/model/Dmpp.d.ts +0 -0
  908. /package/{icc-api → dist/icc-api}/model/Dmpp.js +0 -0
  909. /package/{icc-api → dist/icc-api}/model/Dmpp.js.map +0 -0
  910. /package/{icc-api → dist/icc-api}/model/DocIdentifier.d.ts +0 -0
  911. /package/{icc-api → dist/icc-api}/model/DocIdentifier.js +0 -0
  912. /package/{icc-api → dist/icc-api}/model/DocIdentifier.js.map +0 -0
  913. /package/{icc-api → dist/icc-api}/model/Document.d.ts +0 -0
  914. /package/{icc-api → dist/icc-api}/model/Document.js +0 -0
  915. /package/{icc-api → dist/icc-api}/model/Document.js.map +0 -0
  916. /package/{icc-api → dist/icc-api}/model/DocumentGroup.d.ts +0 -0
  917. /package/{icc-api → dist/icc-api}/model/DocumentGroup.js +0 -0
  918. /package/{icc-api → dist/icc-api}/model/DocumentGroup.js.map +0 -0
  919. /package/{icc-api → dist/icc-api}/model/DocumentTemplate.d.ts +0 -0
  920. /package/{icc-api → dist/icc-api}/model/DocumentTemplate.js +0 -0
  921. /package/{icc-api → dist/icc-api}/model/DocumentTemplate.js.map +0 -0
  922. /package/{icc-api → dist/icc-api}/model/Duration.d.ts +0 -0
  923. /package/{icc-api → dist/icc-api}/model/Duration.js +0 -0
  924. /package/{icc-api → dist/icc-api}/model/Duration.js.map +0 -0
  925. /package/{icc-api → dist/icc-api}/model/EIDItem.d.ts +0 -0
  926. /package/{icc-api → dist/icc-api}/model/EIDItem.js +0 -0
  927. /package/{icc-api → dist/icc-api}/model/EIDItem.js.map +0 -0
  928. /package/{icc-api → dist/icc-api}/model/Editor.d.ts +0 -0
  929. /package/{icc-api → dist/icc-api}/model/Editor.js +0 -0
  930. /package/{icc-api → dist/icc-api}/model/Editor.js.map +0 -0
  931. /package/{icc-api → dist/icc-api}/model/EfactInvoice.d.ts +0 -0
  932. /package/{icc-api → dist/icc-api}/model/EfactInvoice.js +0 -0
  933. /package/{icc-api → dist/icc-api}/model/EfactInvoice.js.map +0 -0
  934. /package/{icc-api → dist/icc-api}/model/EmailOrSmsMessage.d.ts +0 -0
  935. /package/{icc-api → dist/icc-api}/model/EmailOrSmsMessage.js +0 -0
  936. /package/{icc-api → dist/icc-api}/model/EmailOrSmsMessage.js.map +0 -0
  937. /package/{icc-api → dist/icc-api}/model/EmailTemplate.d.ts +0 -0
  938. /package/{icc-api → dist/icc-api}/model/EmailTemplate.js +0 -0
  939. /package/{icc-api → dist/icc-api}/model/EmailTemplate.js.map +0 -0
  940. /package/{icc-api → dist/icc-api}/model/Employer.d.ts +0 -0
  941. /package/{icc-api → dist/icc-api}/model/Employer.js +0 -0
  942. /package/{icc-api → dist/icc-api}/model/Employer.js.map +0 -0
  943. /package/{icc-api → dist/icc-api}/model/EmploymentInfo.d.ts +0 -0
  944. /package/{icc-api → dist/icc-api}/model/EmploymentInfo.js +0 -0
  945. /package/{icc-api → dist/icc-api}/model/EmploymentInfo.js.map +0 -0
  946. /package/{icc-api → dist/icc-api}/model/EntityReference.d.ts +0 -0
  947. /package/{icc-api → dist/icc-api}/model/EntityReference.js +0 -0
  948. /package/{icc-api → dist/icc-api}/model/EntityReference.js.map +0 -0
  949. /package/{icc-api → dist/icc-api}/model/EntityTemplate.d.ts +0 -0
  950. /package/{icc-api → dist/icc-api}/model/EntityTemplate.js +0 -0
  951. /package/{icc-api → dist/icc-api}/model/EntityTemplate.js.map +0 -0
  952. /package/{icc-api → dist/icc-api}/model/Episode.d.ts +0 -0
  953. /package/{icc-api → dist/icc-api}/model/Episode.js +0 -0
  954. /package/{icc-api → dist/icc-api}/model/Episode.js.map +0 -0
  955. /package/{icc-api → dist/icc-api}/model/FilterChainCode.d.ts +0 -0
  956. /package/{icc-api → dist/icc-api}/model/FilterChainCode.js +0 -0
  957. /package/{icc-api → dist/icc-api}/model/FilterChainCode.js.map +0 -0
  958. /package/{icc-api → dist/icc-api}/model/FilterChainContact.d.ts +0 -0
  959. /package/{icc-api → dist/icc-api}/model/FilterChainContact.js +0 -0
  960. /package/{icc-api → dist/icc-api}/model/FilterChainContact.js.map +0 -0
  961. /package/{icc-api → dist/icc-api}/model/FilterChainDevice.d.ts +0 -0
  962. /package/{icc-api → dist/icc-api}/model/FilterChainDevice.js +0 -0
  963. /package/{icc-api → dist/icc-api}/model/FilterChainDevice.js.map +0 -0
  964. /package/{icc-api → dist/icc-api}/model/FilterChainHealthElement.d.ts +0 -0
  965. /package/{icc-api → dist/icc-api}/model/FilterChainHealthElement.js +0 -0
  966. /package/{icc-api → dist/icc-api}/model/FilterChainHealthElement.js.map +0 -0
  967. /package/{icc-api → dist/icc-api}/model/FilterChainHealthcareParty.d.ts +0 -0
  968. /package/{icc-api → dist/icc-api}/model/FilterChainHealthcareParty.js +0 -0
  969. /package/{icc-api → dist/icc-api}/model/FilterChainHealthcareParty.js.map +0 -0
  970. /package/{icc-api → dist/icc-api}/model/FilterChainInvoice.d.ts +0 -0
  971. /package/{icc-api → dist/icc-api}/model/FilterChainInvoice.js +0 -0
  972. /package/{icc-api → dist/icc-api}/model/FilterChainInvoice.js.map +0 -0
  973. /package/{icc-api → dist/icc-api}/model/FilterChainMaintenanceTask.d.ts +0 -0
  974. /package/{icc-api → dist/icc-api}/model/FilterChainMaintenanceTask.js +0 -0
  975. /package/{icc-api → dist/icc-api}/model/FilterChainMaintenanceTask.js.map +0 -0
  976. /package/{icc-api → dist/icc-api}/model/FilterChainPatient.d.ts +0 -0
  977. /package/{icc-api → dist/icc-api}/model/FilterChainPatient.js +0 -0
  978. /package/{icc-api → dist/icc-api}/model/FilterChainPatient.js.map +0 -0
  979. /package/{icc-api → dist/icc-api}/model/FilterChainService.d.ts +0 -0
  980. /package/{icc-api → dist/icc-api}/model/FilterChainService.js +0 -0
  981. /package/{icc-api → dist/icc-api}/model/FilterChainService.js.map +0 -0
  982. /package/{icc-api → dist/icc-api}/model/FilterChainUser.d.ts +0 -0
  983. /package/{icc-api → dist/icc-api}/model/FilterChainUser.js +0 -0
  984. /package/{icc-api → dist/icc-api}/model/FilterChainUser.js.map +0 -0
  985. /package/{icc-api → dist/icc-api}/model/FinancialInstitutionInformation.d.ts +0 -0
  986. /package/{icc-api → dist/icc-api}/model/FinancialInstitutionInformation.js +0 -0
  987. /package/{icc-api → dist/icc-api}/model/FinancialInstitutionInformation.js.map +0 -0
  988. /package/{icc-api → dist/icc-api}/model/FlatRateTarification.d.ts +0 -0
  989. /package/{icc-api → dist/icc-api}/model/FlatRateTarification.js +0 -0
  990. /package/{icc-api → dist/icc-api}/model/FlatRateTarification.js.map +0 -0
  991. /package/{icc-api → dist/icc-api}/model/FlowItem.d.ts +0 -0
  992. /package/{icc-api → dist/icc-api}/model/FlowItem.js +0 -0
  993. /package/{icc-api → dist/icc-api}/model/FlowItem.js.map +0 -0
  994. /package/{icc-api → dist/icc-api}/model/Form.d.ts +0 -0
  995. /package/{icc-api → dist/icc-api}/model/Form.js +0 -0
  996. /package/{icc-api → dist/icc-api}/model/Form.js.map +0 -0
  997. /package/{icc-api → dist/icc-api}/model/FormColumn.d.ts +0 -0
  998. /package/{icc-api → dist/icc-api}/model/FormColumn.js +0 -0
  999. /package/{icc-api → dist/icc-api}/model/FormColumn.js.map +0 -0
  1000. /package/{icc-api → dist/icc-api}/model/FormDataOption.d.ts +0 -0
  1001. /package/{icc-api → dist/icc-api}/model/FormDataOption.js +0 -0
  1002. /package/{icc-api → dist/icc-api}/model/FormDataOption.js.map +0 -0
  1003. /package/{icc-api → dist/icc-api}/model/FormLayout.d.ts +0 -0
  1004. /package/{icc-api → dist/icc-api}/model/FormLayout.js +0 -0
  1005. /package/{icc-api → dist/icc-api}/model/FormLayout.js.map +0 -0
  1006. /package/{icc-api → dist/icc-api}/model/FormLayoutData.d.ts +0 -0
  1007. /package/{icc-api → dist/icc-api}/model/FormLayoutData.js +0 -0
  1008. /package/{icc-api → dist/icc-api}/model/FormLayoutData.js.map +0 -0
  1009. /package/{icc-api → dist/icc-api}/model/FormPlanning.d.ts +0 -0
  1010. /package/{icc-api → dist/icc-api}/model/FormPlanning.js +0 -0
  1011. /package/{icc-api → dist/icc-api}/model/FormPlanning.js.map +0 -0
  1012. /package/{icc-api → dist/icc-api}/model/FormSection.d.ts +0 -0
  1013. /package/{icc-api → dist/icc-api}/model/FormSection.js +0 -0
  1014. /package/{icc-api → dist/icc-api}/model/FormSection.js.map +0 -0
  1015. /package/{icc-api → dist/icc-api}/model/FormTemplate.d.ts +0 -0
  1016. /package/{icc-api → dist/icc-api}/model/FormTemplate.js +0 -0
  1017. /package/{icc-api → dist/icc-api}/model/FormTemplate.js.map +0 -0
  1018. /package/{icc-api → dist/icc-api}/model/FormTemplateLayout.d.ts +0 -0
  1019. /package/{icc-api → dist/icc-api}/model/FormTemplateLayout.js +0 -0
  1020. /package/{icc-api → dist/icc-api}/model/FormTemplateLayout.js.map +0 -0
  1021. /package/{icc-api → dist/icc-api}/model/Formula.d.ts +0 -0
  1022. /package/{icc-api → dist/icc-api}/model/Formula.js +0 -0
  1023. /package/{icc-api → dist/icc-api}/model/Formula.js.map +0 -0
  1024. /package/{icc-api → dist/icc-api}/model/FrontEndMigration.d.ts +0 -0
  1025. /package/{icc-api → dist/icc-api}/model/FrontEndMigration.js +0 -0
  1026. /package/{icc-api → dist/icc-api}/model/FrontEndMigration.js.map +0 -0
  1027. /package/{icc-api → dist/icc-api}/model/Group.d.ts +0 -0
  1028. /package/{icc-api → dist/icc-api}/model/Group.js +0 -0
  1029. /package/{icc-api → dist/icc-api}/model/Group.js.map +0 -0
  1030. /package/{icc-api → dist/icc-api}/model/GroupDatabasesInfo.d.ts +0 -0
  1031. /package/{icc-api → dist/icc-api}/model/GroupDatabasesInfo.js +0 -0
  1032. /package/{icc-api → dist/icc-api}/model/GroupDatabasesInfo.js.map +0 -0
  1033. /package/{icc-api → dist/icc-api}/model/GroupDeletionReport.d.ts +0 -0
  1034. /package/{icc-api → dist/icc-api}/model/GroupDeletionReport.js +0 -0
  1035. /package/{icc-api → dist/icc-api}/model/GroupDeletionReport.js.map +0 -0
  1036. /package/{icc-api → dist/icc-api}/model/GuiCode.d.ts +0 -0
  1037. /package/{icc-api → dist/icc-api}/model/GuiCode.js +0 -0
  1038. /package/{icc-api → dist/icc-api}/model/GuiCode.js.map +0 -0
  1039. /package/{icc-api → dist/icc-api}/model/GuiCodeType.d.ts +0 -0
  1040. /package/{icc-api → dist/icc-api}/model/GuiCodeType.js +0 -0
  1041. /package/{icc-api → dist/icc-api}/model/GuiCodeType.js.map +0 -0
  1042. /package/{icc-api → dist/icc-api}/model/HealthElement.d.ts +0 -0
  1043. /package/{icc-api → dist/icc-api}/model/HealthElement.js +0 -0
  1044. /package/{icc-api → dist/icc-api}/model/HealthElement.js.map +0 -0
  1045. /package/{icc-api → dist/icc-api}/model/HealthcareParty.d.ts +0 -0
  1046. /package/{icc-api → dist/icc-api}/model/HealthcareParty.js +0 -0
  1047. /package/{icc-api → dist/icc-api}/model/HealthcareParty.js.map +0 -0
  1048. /package/{icc-api → dist/icc-api}/model/HealthcarePartyHistoryStatus.d.ts +0 -0
  1049. /package/{icc-api → dist/icc-api}/model/HealthcarePartyHistoryStatus.js +0 -0
  1050. /package/{icc-api → dist/icc-api}/model/HealthcarePartyHistoryStatus.js.map +0 -0
  1051. /package/{icc-api → dist/icc-api}/model/IcureStub.d.ts +0 -0
  1052. /package/{icc-api → dist/icc-api}/model/IcureStub.js +0 -0
  1053. /package/{icc-api → dist/icc-api}/model/IcureStub.js.map +0 -0
  1054. /package/{icc-api → dist/icc-api}/model/IdWithRev.d.ts +0 -0
  1055. /package/{icc-api → dist/icc-api}/model/IdWithRev.js +0 -0
  1056. /package/{icc-api → dist/icc-api}/model/IdWithRev.js.map +0 -0
  1057. /package/{icc-api → dist/icc-api}/model/Identifier.d.ts +0 -0
  1058. /package/{icc-api → dist/icc-api}/model/Identifier.js +0 -0
  1059. /package/{icc-api → dist/icc-api}/model/Identifier.js.map +0 -0
  1060. /package/{icc-api → dist/icc-api}/model/IdentityDocumentReader.d.ts +0 -0
  1061. /package/{icc-api → dist/icc-api}/model/IdentityDocumentReader.js +0 -0
  1062. /package/{icc-api → dist/icc-api}/model/IdentityDocumentReader.js.map +0 -0
  1063. /package/{icc-api → dist/icc-api}/model/ImportMapping.d.ts +0 -0
  1064. /package/{icc-api → dist/icc-api}/model/ImportMapping.js +0 -0
  1065. /package/{icc-api → dist/icc-api}/model/ImportMapping.js.map +0 -0
  1066. /package/{icc-api → dist/icc-api}/model/ImportResult.d.ts +0 -0
  1067. /package/{icc-api → dist/icc-api}/model/ImportResult.js +0 -0
  1068. /package/{icc-api → dist/icc-api}/model/ImportResult.js.map +0 -0
  1069. /package/{icc-api → dist/icc-api}/model/IncapacityExportInfo.d.ts +0 -0
  1070. /package/{icc-api → dist/icc-api}/model/IncapacityExportInfo.js +0 -0
  1071. /package/{icc-api → dist/icc-api}/model/IncapacityExportInfo.js.map +0 -0
  1072. /package/{icc-api → dist/icc-api}/model/IndexedIdentifier.d.ts +0 -0
  1073. /package/{icc-api → dist/icc-api}/model/IndexedIdentifier.js +0 -0
  1074. /package/{icc-api → dist/icc-api}/model/IndexedIdentifier.js.map +0 -0
  1075. /package/{icc-api → dist/icc-api}/model/IndexingInfo.d.ts +0 -0
  1076. /package/{icc-api → dist/icc-api}/model/IndexingInfo.js +0 -0
  1077. /package/{icc-api → dist/icc-api}/model/IndexingInfo.js.map +0 -0
  1078. /package/{icc-api → dist/icc-api}/model/Ingredient.d.ts +0 -0
  1079. /package/{icc-api → dist/icc-api}/model/Ingredient.js +0 -0
  1080. /package/{icc-api → dist/icc-api}/model/Ingredient.js.map +0 -0
  1081. /package/{icc-api → dist/icc-api}/model/Insurability.d.ts +0 -0
  1082. /package/{icc-api → dist/icc-api}/model/Insurability.js +0 -0
  1083. /package/{icc-api → dist/icc-api}/model/Insurability.js.map +0 -0
  1084. /package/{icc-api → dist/icc-api}/model/Insurance.d.ts +0 -0
  1085. /package/{icc-api → dist/icc-api}/model/Insurance.js +0 -0
  1086. /package/{icc-api → dist/icc-api}/model/Insurance.js.map +0 -0
  1087. /package/{icc-api → dist/icc-api}/model/Invoice.d.ts +0 -0
  1088. /package/{icc-api → dist/icc-api}/model/Invoice.js +0 -0
  1089. /package/{icc-api → dist/icc-api}/model/Invoice.js.map +0 -0
  1090. /package/{icc-api → dist/icc-api}/model/InvoiceItem.d.ts +0 -0
  1091. /package/{icc-api → dist/icc-api}/model/InvoiceItem.js +0 -0
  1092. /package/{icc-api → dist/icc-api}/model/InvoiceItem.js.map +0 -0
  1093. /package/{icc-api → dist/icc-api}/model/InvoiceSender.d.ts +0 -0
  1094. /package/{icc-api → dist/icc-api}/model/InvoiceSender.js +0 -0
  1095. /package/{icc-api → dist/icc-api}/model/InvoiceSender.js.map +0 -0
  1096. /package/{icc-api → dist/icc-api}/model/InvoicesBatch.d.ts +0 -0
  1097. /package/{icc-api → dist/icc-api}/model/InvoicesBatch.js +0 -0
  1098. /package/{icc-api → dist/icc-api}/model/InvoicesBatch.js.map +0 -0
  1099. /package/{icc-api → dist/icc-api}/model/InvoicingCode.d.ts +0 -0
  1100. /package/{icc-api → dist/icc-api}/model/InvoicingCode.js +0 -0
  1101. /package/{icc-api → dist/icc-api}/model/InvoicingCode.js.map +0 -0
  1102. /package/{icc-api → dist/icc-api}/model/Keyword.d.ts +0 -0
  1103. /package/{icc-api → dist/icc-api}/model/Keyword.js +0 -0
  1104. /package/{icc-api → dist/icc-api}/model/Keyword.js.map +0 -0
  1105. /package/{icc-api → dist/icc-api}/model/KeywordSubword.d.ts +0 -0
  1106. /package/{icc-api → dist/icc-api}/model/KeywordSubword.js +0 -0
  1107. /package/{icc-api → dist/icc-api}/model/KeywordSubword.js.map +0 -0
  1108. /package/{icc-api → dist/icc-api}/model/LabelledOccurence.d.ts +0 -0
  1109. /package/{icc-api → dist/icc-api}/model/LabelledOccurence.js +0 -0
  1110. /package/{icc-api → dist/icc-api}/model/LabelledOccurence.js.map +0 -0
  1111. /package/{icc-api → dist/icc-api}/model/LetterValue.d.ts +0 -0
  1112. /package/{icc-api → dist/icc-api}/model/LetterValue.js +0 -0
  1113. /package/{icc-api → dist/icc-api}/model/LetterValue.js.map +0 -0
  1114. /package/{icc-api → dist/icc-api}/model/ListOfIds.d.ts +0 -0
  1115. /package/{icc-api → dist/icc-api}/model/ListOfIds.js +0 -0
  1116. /package/{icc-api → dist/icc-api}/model/ListOfIds.js.map +0 -0
  1117. /package/{icc-api → dist/icc-api}/model/ListOfProperties.d.ts +0 -0
  1118. /package/{icc-api → dist/icc-api}/model/ListOfProperties.js +0 -0
  1119. /package/{icc-api → dist/icc-api}/model/ListOfProperties.js.map +0 -0
  1120. /package/{icc-api → dist/icc-api}/model/LoginCredentials.d.ts +0 -0
  1121. /package/{icc-api → dist/icc-api}/model/LoginCredentials.js +0 -0
  1122. /package/{icc-api → dist/icc-api}/model/LoginCredentials.js.map +0 -0
  1123. /package/{icc-api → dist/icc-api}/model/MaintenanceTask.d.ts +0 -0
  1124. /package/{icc-api → dist/icc-api}/model/MaintenanceTask.js +0 -0
  1125. /package/{icc-api → dist/icc-api}/model/MaintenanceTask.js.map +0 -0
  1126. /package/{icc-api → dist/icc-api}/model/MapOfIds.d.ts +0 -0
  1127. /package/{icc-api → dist/icc-api}/model/MapOfIds.js +0 -0
  1128. /package/{icc-api → dist/icc-api}/model/MapOfIds.js.map +0 -0
  1129. /package/{icc-api → dist/icc-api}/model/Measure.d.ts +0 -0
  1130. /package/{icc-api → dist/icc-api}/model/Measure.js +0 -0
  1131. /package/{icc-api → dist/icc-api}/model/Measure.js.map +0 -0
  1132. /package/{icc-api → dist/icc-api}/model/MedexInfo.d.ts +0 -0
  1133. /package/{icc-api → dist/icc-api}/model/MedexInfo.js +0 -0
  1134. /package/{icc-api → dist/icc-api}/model/MedexInfo.js.map +0 -0
  1135. /package/{icc-api → dist/icc-api}/model/MedicalHouseContract.d.ts +0 -0
  1136. /package/{icc-api → dist/icc-api}/model/MedicalHouseContract.js +0 -0
  1137. /package/{icc-api → dist/icc-api}/model/MedicalHouseContract.js.map +0 -0
  1138. /package/{icc-api → dist/icc-api}/model/MedicalLocation.d.ts +0 -0
  1139. /package/{icc-api → dist/icc-api}/model/MedicalLocation.js +0 -0
  1140. /package/{icc-api → dist/icc-api}/model/MedicalLocation.js.map +0 -0
  1141. /package/{icc-api → dist/icc-api}/model/Medication.d.ts +0 -0
  1142. /package/{icc-api → dist/icc-api}/model/Medication.js +0 -0
  1143. /package/{icc-api → dist/icc-api}/model/Medication.js.map +0 -0
  1144. /package/{icc-api → dist/icc-api}/model/MedicationSchemeExportInfo.d.ts +0 -0
  1145. /package/{icc-api → dist/icc-api}/model/MedicationSchemeExportInfo.js +0 -0
  1146. /package/{icc-api → dist/icc-api}/model/MedicationSchemeExportInfo.js.map +0 -0
  1147. /package/{icc-api → dist/icc-api}/model/Medicinalproduct.d.ts +0 -0
  1148. /package/{icc-api → dist/icc-api}/model/Medicinalproduct.js +0 -0
  1149. /package/{icc-api → dist/icc-api}/model/Medicinalproduct.js.map +0 -0
  1150. /package/{icc-api → dist/icc-api}/model/Message.d.ts +0 -0
  1151. /package/{icc-api → dist/icc-api}/model/Message.js +0 -0
  1152. /package/{icc-api → dist/icc-api}/model/Message.js.map +0 -0
  1153. /package/{icc-api → dist/icc-api}/model/MessageReadStatus.d.ts +0 -0
  1154. /package/{icc-api → dist/icc-api}/model/MessageReadStatus.js +0 -0
  1155. /package/{icc-api → dist/icc-api}/model/MessageReadStatus.js.map +0 -0
  1156. /package/{icc-api → dist/icc-api}/model/MessageWithBatch.d.ts +0 -0
  1157. /package/{icc-api → dist/icc-api}/model/MessageWithBatch.js +0 -0
  1158. /package/{icc-api → dist/icc-api}/model/MessageWithBatch.js.map +0 -0
  1159. /package/{icc-api → dist/icc-api}/model/MessagesReadStatusUpdate.d.ts +0 -0
  1160. /package/{icc-api → dist/icc-api}/model/MessagesReadStatusUpdate.js +0 -0
  1161. /package/{icc-api → dist/icc-api}/model/MessagesReadStatusUpdate.js.map +0 -0
  1162. /package/{icc-api → dist/icc-api}/model/MikronoAppointmentTypeRest.d.ts +0 -0
  1163. /package/{icc-api → dist/icc-api}/model/MikronoAppointmentTypeRest.js +0 -0
  1164. /package/{icc-api → dist/icc-api}/model/MikronoAppointmentTypeRest.js.map +0 -0
  1165. /package/{icc-api → dist/icc-api}/model/MikronoCredentials.d.ts +0 -0
  1166. /package/{icc-api → dist/icc-api}/model/MikronoCredentials.js +0 -0
  1167. /package/{icc-api → dist/icc-api}/model/MikronoCredentials.js.map +0 -0
  1168. /package/{icc-api → dist/icc-api}/model/MimeAttachment.d.ts +0 -0
  1169. /package/{icc-api → dist/icc-api}/model/MimeAttachment.js +0 -0
  1170. /package/{icc-api → dist/icc-api}/model/MimeAttachment.js.map +0 -0
  1171. /package/{icc-api → dist/icc-api}/model/ModelHelper.d.ts +0 -0
  1172. /package/{icc-api → dist/icc-api}/model/Nmp.d.ts +0 -0
  1173. /package/{icc-api → dist/icc-api}/model/Nmp.js +0 -0
  1174. /package/{icc-api → dist/icc-api}/model/Nmp.js.map +0 -0
  1175. /package/{icc-api → dist/icc-api}/model/NoGenericPrescriptionReason.d.ts +0 -0
  1176. /package/{icc-api → dist/icc-api}/model/NoGenericPrescriptionReason.js +0 -0
  1177. /package/{icc-api → dist/icc-api}/model/NoGenericPrescriptionReason.js.map +0 -0
  1178. /package/{icc-api → dist/icc-api}/model/NoSwitchReason.d.ts +0 -0
  1179. /package/{icc-api → dist/icc-api}/model/NoSwitchReason.js +0 -0
  1180. /package/{icc-api → dist/icc-api}/model/NoSwitchReason.js.map +0 -0
  1181. /package/{icc-api → dist/icc-api}/model/NumeratorRange.d.ts +0 -0
  1182. /package/{icc-api → dist/icc-api}/model/NumeratorRange.js +0 -0
  1183. /package/{icc-api → dist/icc-api}/model/NumeratorRange.js.map +0 -0
  1184. /package/{icc-api → dist/icc-api}/model/OperationToken.d.ts +0 -0
  1185. /package/{icc-api → dist/icc-api}/model/OperationToken.js +0 -0
  1186. /package/{icc-api → dist/icc-api}/model/OperationToken.js.map +0 -0
  1187. /package/{icc-api → dist/icc-api}/model/PackagingType.d.ts +0 -0
  1188. /package/{icc-api → dist/icc-api}/model/PackagingType.js +0 -0
  1189. /package/{icc-api → dist/icc-api}/model/PackagingType.js.map +0 -0
  1190. /package/{icc-api → dist/icc-api}/model/PaginatedDocumentKeyIdPairObject.d.ts +0 -0
  1191. /package/{icc-api → dist/icc-api}/model/PaginatedDocumentKeyIdPairObject.js +0 -0
  1192. /package/{icc-api → dist/icc-api}/model/PaginatedDocumentKeyIdPairObject.js.map +0 -0
  1193. /package/{icc-api → dist/icc-api}/model/PaginatedListAccessLog.d.ts +0 -0
  1194. /package/{icc-api → dist/icc-api}/model/PaginatedListAccessLog.js +0 -0
  1195. /package/{icc-api → dist/icc-api}/model/PaginatedListAccessLog.js.map +0 -0
  1196. /package/{icc-api → dist/icc-api}/model/PaginatedListAmp.d.ts +0 -0
  1197. /package/{icc-api → dist/icc-api}/model/PaginatedListAmp.js +0 -0
  1198. /package/{icc-api → dist/icc-api}/model/PaginatedListAmp.js.map +0 -0
  1199. /package/{icc-api → dist/icc-api}/model/PaginatedListCalendarItem.d.ts +0 -0
  1200. /package/{icc-api → dist/icc-api}/model/PaginatedListCalendarItem.js +0 -0
  1201. /package/{icc-api → dist/icc-api}/model/PaginatedListCalendarItem.js.map +0 -0
  1202. /package/{icc-api → dist/icc-api}/model/PaginatedListClassification.d.ts +0 -0
  1203. /package/{icc-api → dist/icc-api}/model/PaginatedListClassification.js +0 -0
  1204. /package/{icc-api → dist/icc-api}/model/PaginatedListClassification.js.map +0 -0
  1205. /package/{icc-api → dist/icc-api}/model/PaginatedListClassificationTemplate.d.ts +0 -0
  1206. /package/{icc-api → dist/icc-api}/model/PaginatedListClassificationTemplate.js +0 -0
  1207. /package/{icc-api → dist/icc-api}/model/PaginatedListClassificationTemplate.js.map +0 -0
  1208. /package/{icc-api → dist/icc-api}/model/PaginatedListCode.d.ts +0 -0
  1209. /package/{icc-api → dist/icc-api}/model/PaginatedListCode.js +0 -0
  1210. /package/{icc-api → dist/icc-api}/model/PaginatedListCode.js.map +0 -0
  1211. /package/{icc-api → dist/icc-api}/model/PaginatedListContact.d.ts +0 -0
  1212. /package/{icc-api → dist/icc-api}/model/PaginatedListContact.js +0 -0
  1213. /package/{icc-api → dist/icc-api}/model/PaginatedListContact.js.map +0 -0
  1214. /package/{icc-api → dist/icc-api}/model/PaginatedListDevice.d.ts +0 -0
  1215. /package/{icc-api → dist/icc-api}/model/PaginatedListDevice.js +0 -0
  1216. /package/{icc-api → dist/icc-api}/model/PaginatedListDevice.js.map +0 -0
  1217. /package/{icc-api → dist/icc-api}/model/PaginatedListDocument.d.ts +0 -0
  1218. /package/{icc-api → dist/icc-api}/model/PaginatedListDocument.js +0 -0
  1219. /package/{icc-api → dist/icc-api}/model/PaginatedListDocument.js.map +0 -0
  1220. /package/{icc-api → dist/icc-api}/model/PaginatedListEntityTemplate.d.ts +0 -0
  1221. /package/{icc-api → dist/icc-api}/model/PaginatedListEntityTemplate.js +0 -0
  1222. /package/{icc-api → dist/icc-api}/model/PaginatedListEntityTemplate.js.map +0 -0
  1223. /package/{icc-api → dist/icc-api}/model/PaginatedListForm.d.ts +0 -0
  1224. /package/{icc-api → dist/icc-api}/model/PaginatedListForm.js +0 -0
  1225. /package/{icc-api → dist/icc-api}/model/PaginatedListForm.js.map +0 -0
  1226. /package/{icc-api → dist/icc-api}/model/PaginatedListGroup.d.ts +0 -0
  1227. /package/{icc-api → dist/icc-api}/model/PaginatedListGroup.js +0 -0
  1228. /package/{icc-api → dist/icc-api}/model/PaginatedListGroup.js.map +0 -0
  1229. /package/{icc-api → dist/icc-api}/model/PaginatedListHealthElement.d.ts +0 -0
  1230. /package/{icc-api → dist/icc-api}/model/PaginatedListHealthElement.js +0 -0
  1231. /package/{icc-api → dist/icc-api}/model/PaginatedListHealthElement.js.map +0 -0
  1232. /package/{icc-api → dist/icc-api}/model/PaginatedListHealthcareParty.d.ts +0 -0
  1233. /package/{icc-api → dist/icc-api}/model/PaginatedListHealthcareParty.js +0 -0
  1234. /package/{icc-api → dist/icc-api}/model/PaginatedListHealthcareParty.js.map +0 -0
  1235. /package/{icc-api → dist/icc-api}/model/PaginatedListInvoice.d.ts +0 -0
  1236. /package/{icc-api → dist/icc-api}/model/PaginatedListInvoice.js +0 -0
  1237. /package/{icc-api → dist/icc-api}/model/PaginatedListInvoice.js.map +0 -0
  1238. /package/{icc-api → dist/icc-api}/model/PaginatedListMaintenanceTask.d.ts +0 -0
  1239. /package/{icc-api → dist/icc-api}/model/PaginatedListMaintenanceTask.js +0 -0
  1240. /package/{icc-api → dist/icc-api}/model/PaginatedListMaintenanceTask.js.map +0 -0
  1241. /package/{icc-api → dist/icc-api}/model/PaginatedListMessage.d.ts +0 -0
  1242. /package/{icc-api → dist/icc-api}/model/PaginatedListMessage.js +0 -0
  1243. /package/{icc-api → dist/icc-api}/model/PaginatedListMessage.js.map +0 -0
  1244. /package/{icc-api → dist/icc-api}/model/PaginatedListNmp.d.ts +0 -0
  1245. /package/{icc-api → dist/icc-api}/model/PaginatedListNmp.js +0 -0
  1246. /package/{icc-api → dist/icc-api}/model/PaginatedListNmp.js.map +0 -0
  1247. /package/{icc-api → dist/icc-api}/model/PaginatedListPatient.d.ts +0 -0
  1248. /package/{icc-api → dist/icc-api}/model/PaginatedListPatient.js +0 -0
  1249. /package/{icc-api → dist/icc-api}/model/PaginatedListPatient.js.map +0 -0
  1250. /package/{icc-api → dist/icc-api}/model/PaginatedListService.d.ts +0 -0
  1251. /package/{icc-api → dist/icc-api}/model/PaginatedListService.js +0 -0
  1252. /package/{icc-api → dist/icc-api}/model/PaginatedListService.js.map +0 -0
  1253. /package/{icc-api → dist/icc-api}/model/PaginatedListString.d.ts +0 -0
  1254. /package/{icc-api → dist/icc-api}/model/PaginatedListString.js +0 -0
  1255. /package/{icc-api → dist/icc-api}/model/PaginatedListString.js.map +0 -0
  1256. /package/{icc-api → dist/icc-api}/model/PaginatedListTarification.d.ts +0 -0
  1257. /package/{icc-api → dist/icc-api}/model/PaginatedListTarification.js +0 -0
  1258. /package/{icc-api → dist/icc-api}/model/PaginatedListTarification.js.map +0 -0
  1259. /package/{icc-api → dist/icc-api}/model/PaginatedListUser.d.ts +0 -0
  1260. /package/{icc-api → dist/icc-api}/model/PaginatedListUser.js +0 -0
  1261. /package/{icc-api → dist/icc-api}/model/PaginatedListUser.js.map +0 -0
  1262. /package/{icc-api → dist/icc-api}/model/PaginatedListVmp.d.ts +0 -0
  1263. /package/{icc-api → dist/icc-api}/model/PaginatedListVmp.js +0 -0
  1264. /package/{icc-api → dist/icc-api}/model/PaginatedListVmp.js.map +0 -0
  1265. /package/{icc-api → dist/icc-api}/model/PaginatedListVmpGroup.d.ts +0 -0
  1266. /package/{icc-api → dist/icc-api}/model/PaginatedListVmpGroup.js +0 -0
  1267. /package/{icc-api → dist/icc-api}/model/PaginatedListVmpGroup.js.map +0 -0
  1268. /package/{icc-api → dist/icc-api}/model/Paragraph.d.ts +0 -0
  1269. /package/{icc-api → dist/icc-api}/model/Paragraph.js +0 -0
  1270. /package/{icc-api → dist/icc-api}/model/Paragraph.js.map +0 -0
  1271. /package/{icc-api → dist/icc-api}/model/ParagraphAgreement.d.ts +0 -0
  1272. /package/{icc-api → dist/icc-api}/model/ParagraphAgreement.js +0 -0
  1273. /package/{icc-api → dist/icc-api}/model/ParagraphAgreement.js.map +0 -0
  1274. /package/{icc-api → dist/icc-api}/model/Part.d.ts +0 -0
  1275. /package/{icc-api → dist/icc-api}/model/Part.js +0 -0
  1276. /package/{icc-api → dist/icc-api}/model/Part.js.map +0 -0
  1277. /package/{icc-api → dist/icc-api}/model/Partnership.d.ts +0 -0
  1278. /package/{icc-api → dist/icc-api}/model/Partnership.js +0 -0
  1279. /package/{icc-api → dist/icc-api}/model/Partnership.js.map +0 -0
  1280. /package/{icc-api → dist/icc-api}/model/Patient.d.ts +0 -0
  1281. /package/{icc-api → dist/icc-api}/model/Patient.js +0 -0
  1282. /package/{icc-api → dist/icc-api}/model/Patient.js.map +0 -0
  1283. /package/{icc-api → dist/icc-api}/model/PatientByHcPartyGenderEducationProfession.d.ts +0 -0
  1284. /package/{icc-api → dist/icc-api}/model/PatientByHcPartyGenderEducationProfession.js +0 -0
  1285. /package/{icc-api → dist/icc-api}/model/PatientByHcPartyGenderEducationProfession.js.map +0 -0
  1286. /package/{icc-api → dist/icc-api}/model/PatientHealthCareParty.d.ts +0 -0
  1287. /package/{icc-api → dist/icc-api}/model/PatientHealthCareParty.js +0 -0
  1288. /package/{icc-api → dist/icc-api}/model/PatientHealthCareParty.js.map +0 -0
  1289. /package/{icc-api → dist/icc-api}/model/PatientRegistrationSuccess.d.ts +0 -0
  1290. /package/{icc-api → dist/icc-api}/model/PatientRegistrationSuccess.js +0 -0
  1291. /package/{icc-api → dist/icc-api}/model/PatientRegistrationSuccess.js.map +0 -0
  1292. /package/{icc-api → dist/icc-api}/model/Payment.d.ts +0 -0
  1293. /package/{icc-api → dist/icc-api}/model/Payment.js +0 -0
  1294. /package/{icc-api → dist/icc-api}/model/Payment.js.map +0 -0
  1295. /package/{icc-api → dist/icc-api}/model/Periodicity.d.ts +0 -0
  1296. /package/{icc-api → dist/icc-api}/model/Periodicity.js +0 -0
  1297. /package/{icc-api → dist/icc-api}/model/Periodicity.js.map +0 -0
  1298. /package/{icc-api → dist/icc-api}/model/Permission.d.ts +0 -0
  1299. /package/{icc-api → dist/icc-api}/model/Permission.js +0 -0
  1300. /package/{icc-api → dist/icc-api}/model/Permission.js.map +0 -0
  1301. /package/{icc-api → dist/icc-api}/model/PermissionCriterion.d.ts +0 -0
  1302. /package/{icc-api → dist/icc-api}/model/PermissionCriterion.js +0 -0
  1303. /package/{icc-api → dist/icc-api}/model/PermissionCriterion.js.map +0 -0
  1304. /package/{icc-api → dist/icc-api}/model/PermissionItem.d.ts +0 -0
  1305. /package/{icc-api → dist/icc-api}/model/PermissionItem.js +0 -0
  1306. /package/{icc-api → dist/icc-api}/model/PermissionItem.js.map +0 -0
  1307. /package/{icc-api → dist/icc-api}/model/PersonName.d.ts +0 -0
  1308. /package/{icc-api → dist/icc-api}/model/PersonName.js +0 -0
  1309. /package/{icc-api → dist/icc-api}/model/PersonName.js.map +0 -0
  1310. /package/{icc-api → dist/icc-api}/model/PharmaceuticalForm.d.ts +0 -0
  1311. /package/{icc-api → dist/icc-api}/model/PharmaceuticalForm.js +0 -0
  1312. /package/{icc-api → dist/icc-api}/model/PharmaceuticalForm.js.map +0 -0
  1313. /package/{icc-api → dist/icc-api}/model/PharmaceuticalFormStub.d.ts +0 -0
  1314. /package/{icc-api → dist/icc-api}/model/PharmaceuticalFormStub.js +0 -0
  1315. /package/{icc-api → dist/icc-api}/model/PharmaceuticalFormStub.js.map +0 -0
  1316. /package/{icc-api → dist/icc-api}/model/Place.d.ts +0 -0
  1317. /package/{icc-api → dist/icc-api}/model/Place.js +0 -0
  1318. /package/{icc-api → dist/icc-api}/model/Place.js.map +0 -0
  1319. /package/{icc-api → dist/icc-api}/model/PlanOfAction.d.ts +0 -0
  1320. /package/{icc-api → dist/icc-api}/model/PlanOfAction.js +0 -0
  1321. /package/{icc-api → dist/icc-api}/model/PlanOfAction.js.map +0 -0
  1322. /package/{icc-api → dist/icc-api}/model/Predicate.d.ts +0 -0
  1323. /package/{icc-api → dist/icc-api}/model/Predicate.js +0 -0
  1324. /package/{icc-api → dist/icc-api}/model/Predicate.js.map +0 -0
  1325. /package/{icc-api → dist/icc-api}/model/Pricing.d.ts +0 -0
  1326. /package/{icc-api → dist/icc-api}/model/Pricing.js +0 -0
  1327. /package/{icc-api → dist/icc-api}/model/Pricing.js.map +0 -0
  1328. /package/{icc-api → dist/icc-api}/model/PropertyStub.d.ts +0 -0
  1329. /package/{icc-api → dist/icc-api}/model/PropertyStub.js +0 -0
  1330. /package/{icc-api → dist/icc-api}/model/PropertyStub.js.map +0 -0
  1331. /package/{icc-api → dist/icc-api}/model/PropertyTypeStub.d.ts +0 -0
  1332. /package/{icc-api → dist/icc-api}/model/PropertyTypeStub.js +0 -0
  1333. /package/{icc-api → dist/icc-api}/model/PropertyTypeStub.js.map +0 -0
  1334. /package/{icc-api → dist/icc-api}/model/PublicKey.d.ts +0 -0
  1335. /package/{icc-api → dist/icc-api}/model/PublicKey.js +0 -0
  1336. /package/{icc-api → dist/icc-api}/model/PublicKey.js.map +0 -0
  1337. /package/{icc-api → dist/icc-api}/model/Quantity.d.ts +0 -0
  1338. /package/{icc-api → dist/icc-api}/model/Quantity.js +0 -0
  1339. /package/{icc-api → dist/icc-api}/model/Quantity.js.map +0 -0
  1340. /package/{icc-api → dist/icc-api}/model/Receipt.d.ts +0 -0
  1341. /package/{icc-api → dist/icc-api}/model/Receipt.js +0 -0
  1342. /package/{icc-api → dist/icc-api}/model/Receipt.js.map +0 -0
  1343. /package/{icc-api → dist/icc-api}/model/ReferralPeriod.d.ts +0 -0
  1344. /package/{icc-api → dist/icc-api}/model/ReferralPeriod.js +0 -0
  1345. /package/{icc-api → dist/icc-api}/model/ReferralPeriod.js.map +0 -0
  1346. /package/{icc-api → dist/icc-api}/model/RefreshTokenExpiredError.d.ts +0 -0
  1347. /package/{icc-api → dist/icc-api}/model/RefreshTokenExpiredError.js +0 -0
  1348. /package/{icc-api → dist/icc-api}/model/RefreshTokenExpiredError.js.map +0 -0
  1349. /package/{icc-api → dist/icc-api}/model/RegimenItem.d.ts +0 -0
  1350. /package/{icc-api → dist/icc-api}/model/RegimenItem.js +0 -0
  1351. /package/{icc-api → dist/icc-api}/model/RegimenItem.js.map +0 -0
  1352. /package/{icc-api → dist/icc-api}/model/RegistrationInformation.d.ts +0 -0
  1353. /package/{icc-api → dist/icc-api}/model/RegistrationInformation.js +0 -0
  1354. /package/{icc-api → dist/icc-api}/model/RegistrationInformation.js.map +0 -0
  1355. /package/{icc-api → dist/icc-api}/model/RegistrationSuccess.d.ts +0 -0
  1356. /package/{icc-api → dist/icc-api}/model/RegistrationSuccess.js +0 -0
  1357. /package/{icc-api → dist/icc-api}/model/RegistrationSuccess.js.map +0 -0
  1358. /package/{icc-api → dist/icc-api}/model/Reimbursement.d.ts +0 -0
  1359. /package/{icc-api → dist/icc-api}/model/Reimbursement.js +0 -0
  1360. /package/{icc-api → dist/icc-api}/model/Reimbursement.js.map +0 -0
  1361. /package/{icc-api → dist/icc-api}/model/ReimbursementCriterion.d.ts +0 -0
  1362. /package/{icc-api → dist/icc-api}/model/ReimbursementCriterion.js +0 -0
  1363. /package/{icc-api → dist/icc-api}/model/ReimbursementCriterion.js.map +0 -0
  1364. /package/{icc-api → dist/icc-api}/model/Remote.d.ts +0 -0
  1365. /package/{icc-api → dist/icc-api}/model/Remote.js +0 -0
  1366. /package/{icc-api → dist/icc-api}/model/Remote.js.map +0 -0
  1367. /package/{icc-api → dist/icc-api}/model/RemoteAuthentication.d.ts +0 -0
  1368. /package/{icc-api → dist/icc-api}/model/RemoteAuthentication.js +0 -0
  1369. /package/{icc-api → dist/icc-api}/model/RemoteAuthentication.js.map +0 -0
  1370. /package/{icc-api → dist/icc-api}/model/Renewal.d.ts +0 -0
  1371. /package/{icc-api → dist/icc-api}/model/Renewal.js +0 -0
  1372. /package/{icc-api → dist/icc-api}/model/Renewal.js.map +0 -0
  1373. /package/{icc-api → dist/icc-api}/model/ReplicateCommand.d.ts +0 -0
  1374. /package/{icc-api → dist/icc-api}/model/ReplicateCommand.js +0 -0
  1375. /package/{icc-api → dist/icc-api}/model/ReplicateCommand.js.map +0 -0
  1376. /package/{icc-api → dist/icc-api}/model/Replication.d.ts +0 -0
  1377. /package/{icc-api → dist/icc-api}/model/Replication.js +0 -0
  1378. /package/{icc-api → dist/icc-api}/model/Replication.js.map +0 -0
  1379. /package/{icc-api → dist/icc-api}/model/ReplicationInfo.d.ts +0 -0
  1380. /package/{icc-api → dist/icc-api}/model/ReplicationInfo.js +0 -0
  1381. /package/{icc-api → dist/icc-api}/model/ReplicationInfo.js.map +0 -0
  1382. /package/{icc-api → dist/icc-api}/model/ReplicationStats.d.ts +0 -0
  1383. /package/{icc-api → dist/icc-api}/model/ReplicationStats.js +0 -0
  1384. /package/{icc-api → dist/icc-api}/model/ReplicationStats.js.map +0 -0
  1385. /package/{icc-api → dist/icc-api}/model/ReplicatorDocument.d.ts +0 -0
  1386. /package/{icc-api → dist/icc-api}/model/ReplicatorDocument.js +0 -0
  1387. /package/{icc-api → dist/icc-api}/model/ReplicatorDocument.js.map +0 -0
  1388. /package/{icc-api → dist/icc-api}/model/ReplicatorResponse.d.ts +0 -0
  1389. /package/{icc-api → dist/icc-api}/model/ReplicatorResponse.js +0 -0
  1390. /package/{icc-api → dist/icc-api}/model/ReplicatorResponse.js.map +0 -0
  1391. /package/{icc-api → dist/icc-api}/model/ResultInfo.d.ts +0 -0
  1392. /package/{icc-api → dist/icc-api}/model/ResultInfo.js +0 -0
  1393. /package/{icc-api → dist/icc-api}/model/ResultInfo.js.map +0 -0
  1394. /package/{icc-api → dist/icc-api}/model/RevisionInfo.d.ts +0 -0
  1395. /package/{icc-api → dist/icc-api}/model/RevisionInfo.js +0 -0
  1396. /package/{icc-api → dist/icc-api}/model/RevisionInfo.js.map +0 -0
  1397. /package/{icc-api → dist/icc-api}/model/Right.d.ts +0 -0
  1398. /package/{icc-api → dist/icc-api}/model/Right.js +0 -0
  1399. /package/{icc-api → dist/icc-api}/model/Right.js.map +0 -0
  1400. /package/{icc-api → dist/icc-api}/model/RouteOfAdministration.d.ts +0 -0
  1401. /package/{icc-api → dist/icc-api}/model/RouteOfAdministration.js +0 -0
  1402. /package/{icc-api → dist/icc-api}/model/RouteOfAdministration.js.map +0 -0
  1403. /package/{icc-api → dist/icc-api}/model/SamText.d.ts +0 -0
  1404. /package/{icc-api → dist/icc-api}/model/SamText.js +0 -0
  1405. /package/{icc-api → dist/icc-api}/model/SamText.js.map +0 -0
  1406. /package/{icc-api → dist/icc-api}/model/SamVersion.d.ts +0 -0
  1407. /package/{icc-api → dist/icc-api}/model/SamVersion.js +0 -0
  1408. /package/{icc-api → dist/icc-api}/model/SamVersion.js.map +0 -0
  1409. /package/{icc-api → dist/icc-api}/model/SchoolingInfo.d.ts +0 -0
  1410. /package/{icc-api → dist/icc-api}/model/SchoolingInfo.js +0 -0
  1411. /package/{icc-api → dist/icc-api}/model/SchoolingInfo.js.map +0 -0
  1412. /package/{icc-api → dist/icc-api}/model/Section.d.ts +0 -0
  1413. /package/{icc-api → dist/icc-api}/model/Section.js +0 -0
  1414. /package/{icc-api → dist/icc-api}/model/Section.js.map +0 -0
  1415. /package/{icc-api → dist/icc-api}/model/Service.d.ts +0 -0
  1416. /package/{icc-api → dist/icc-api}/model/Service.js +0 -0
  1417. /package/{icc-api → dist/icc-api}/model/Service.js.map +0 -0
  1418. /package/{icc-api → dist/icc-api}/model/ServiceLink.d.ts +0 -0
  1419. /package/{icc-api → dist/icc-api}/model/ServiceLink.js +0 -0
  1420. /package/{icc-api → dist/icc-api}/model/ServiceLink.js.map +0 -0
  1421. /package/{icc-api → dist/icc-api}/model/SoftwareMedicalFileExport.d.ts +0 -0
  1422. /package/{icc-api → dist/icc-api}/model/SoftwareMedicalFileExport.js +0 -0
  1423. /package/{icc-api → dist/icc-api}/model/SoftwareMedicalFileExport.js.map +0 -0
  1424. /package/{icc-api → dist/icc-api}/model/StandardSubstance.d.ts +0 -0
  1425. /package/{icc-api → dist/icc-api}/model/StandardSubstance.js +0 -0
  1426. /package/{icc-api → dist/icc-api}/model/StandardSubstance.js.map +0 -0
  1427. /package/{icc-api → dist/icc-api}/model/StrengthRange.d.ts +0 -0
  1428. /package/{icc-api → dist/icc-api}/model/StrengthRange.js +0 -0
  1429. /package/{icc-api → dist/icc-api}/model/StrengthRange.js.map +0 -0
  1430. /package/{icc-api → dist/icc-api}/model/StructureElement.d.ts +0 -0
  1431. /package/{icc-api → dist/icc-api}/model/StructureElement.js +0 -0
  1432. /package/{icc-api → dist/icc-api}/model/StructureElement.js.map +0 -0
  1433. /package/{icc-api → dist/icc-api}/model/SubContact.d.ts +0 -0
  1434. /package/{icc-api → dist/icc-api}/model/SubContact.js +0 -0
  1435. /package/{icc-api → dist/icc-api}/model/SubContact.js.map +0 -0
  1436. /package/{icc-api → dist/icc-api}/model/Substance.d.ts +0 -0
  1437. /package/{icc-api → dist/icc-api}/model/Substance.js +0 -0
  1438. /package/{icc-api → dist/icc-api}/model/Substance.js.map +0 -0
  1439. /package/{icc-api → dist/icc-api}/model/SubstanceStub.d.ts +0 -0
  1440. /package/{icc-api → dist/icc-api}/model/SubstanceStub.js +0 -0
  1441. /package/{icc-api → dist/icc-api}/model/SubstanceStub.js.map +0 -0
  1442. /package/{icc-api → dist/icc-api}/model/Substanceproduct.d.ts +0 -0
  1443. /package/{icc-api → dist/icc-api}/model/Substanceproduct.js +0 -0
  1444. /package/{icc-api → dist/icc-api}/model/Substanceproduct.js.map +0 -0
  1445. /package/{icc-api → dist/icc-api}/model/Suggest.d.ts +0 -0
  1446. /package/{icc-api → dist/icc-api}/model/Suggest.js +0 -0
  1447. /package/{icc-api → dist/icc-api}/model/Suggest.js.map +0 -0
  1448. /package/{icc-api → dist/icc-api}/model/SumehrContent.d.ts +0 -0
  1449. /package/{icc-api → dist/icc-api}/model/SumehrContent.js +0 -0
  1450. /package/{icc-api → dist/icc-api}/model/SumehrContent.js.map +0 -0
  1451. /package/{icc-api → dist/icc-api}/model/SumehrExportInfo.d.ts +0 -0
  1452. /package/{icc-api → dist/icc-api}/model/SumehrExportInfo.js +0 -0
  1453. /package/{icc-api → dist/icc-api}/model/SumehrExportInfo.js.map +0 -0
  1454. /package/{icc-api → dist/icc-api}/model/SumehrValidity.d.ts +0 -0
  1455. /package/{icc-api → dist/icc-api}/model/SumehrValidity.js +0 -0
  1456. /package/{icc-api → dist/icc-api}/model/SumehrValidity.js.map +0 -0
  1457. /package/{icc-api → dist/icc-api}/model/SupplyProblem.d.ts +0 -0
  1458. /package/{icc-api → dist/icc-api}/model/SupplyProblem.js +0 -0
  1459. /package/{icc-api → dist/icc-api}/model/SupplyProblem.js.map +0 -0
  1460. /package/{icc-api → dist/icc-api}/model/Suspension.d.ts +0 -0
  1461. /package/{icc-api → dist/icc-api}/model/Suspension.js +0 -0
  1462. /package/{icc-api → dist/icc-api}/model/Suspension.js.map +0 -0
  1463. /package/{icc-api → dist/icc-api}/model/Tag.d.ts +0 -0
  1464. /package/{icc-api → dist/icc-api}/model/Tag.js +0 -0
  1465. /package/{icc-api → dist/icc-api}/model/Tag.js.map +0 -0
  1466. /package/{icc-api → dist/icc-api}/model/Tarification.d.ts +0 -0
  1467. /package/{icc-api → dist/icc-api}/model/Tarification.js +0 -0
  1468. /package/{icc-api → dist/icc-api}/model/Tarification.js.map +0 -0
  1469. /package/{icc-api → dist/icc-api}/model/Telecom.d.ts +0 -0
  1470. /package/{icc-api → dist/icc-api}/model/Telecom.js +0 -0
  1471. /package/{icc-api → dist/icc-api}/model/Telecom.js.map +0 -0
  1472. /package/{icc-api → dist/icc-api}/model/TimeSeries.d.ts +0 -0
  1473. /package/{icc-api → dist/icc-api}/model/TimeSeries.js +0 -0
  1474. /package/{icc-api → dist/icc-api}/model/TimeSeries.js.map +0 -0
  1475. /package/{icc-api → dist/icc-api}/model/TimeTable.d.ts +0 -0
  1476. /package/{icc-api → dist/icc-api}/model/TimeTable.js +0 -0
  1477. /package/{icc-api → dist/icc-api}/model/TimeTable.js.map +0 -0
  1478. /package/{icc-api → dist/icc-api}/model/TimeTableHour.d.ts +0 -0
  1479. /package/{icc-api → dist/icc-api}/model/TimeTableHour.js +0 -0
  1480. /package/{icc-api → dist/icc-api}/model/TimeTableHour.js.map +0 -0
  1481. /package/{icc-api → dist/icc-api}/model/TimeTableItem.d.ts +0 -0
  1482. /package/{icc-api → dist/icc-api}/model/TimeTableItem.js +0 -0
  1483. /package/{icc-api → dist/icc-api}/model/TimeTableItem.js.map +0 -0
  1484. /package/{icc-api → dist/icc-api}/model/TokenWithGroup.d.ts +0 -0
  1485. /package/{icc-api → dist/icc-api}/model/TokenWithGroup.js +0 -0
  1486. /package/{icc-api → dist/icc-api}/model/TokenWithGroup.js.map +0 -0
  1487. /package/{icc-api → dist/icc-api}/model/TypedValueObject.d.ts +0 -0
  1488. /package/{icc-api → dist/icc-api}/model/TypedValueObject.js +0 -0
  1489. /package/{icc-api → dist/icc-api}/model/TypedValueObject.js.map +0 -0
  1490. /package/{icc-api → dist/icc-api}/model/Unit.d.ts +0 -0
  1491. /package/{icc-api → dist/icc-api}/model/Unit.js +0 -0
  1492. /package/{icc-api → dist/icc-api}/model/Unit.js.map +0 -0
  1493. /package/{icc-api → dist/icc-api}/model/User.d.ts +0 -0
  1494. /package/{icc-api → dist/icc-api}/model/User.js +0 -0
  1495. /package/{icc-api → dist/icc-api}/model/User.js.map +0 -0
  1496. /package/{icc-api → dist/icc-api}/model/UserAndHealthcareParty.d.ts +0 -0
  1497. /package/{icc-api → dist/icc-api}/model/UserAndHealthcareParty.js +0 -0
  1498. /package/{icc-api → dist/icc-api}/model/UserAndHealthcareParty.js.map +0 -0
  1499. /package/{icc-api → dist/icc-api}/model/UserGroup.d.ts +0 -0
  1500. /package/{icc-api → dist/icc-api}/model/UserGroup.js +0 -0
  1501. /package/{icc-api → dist/icc-api}/model/UserGroup.js.map +0 -0
  1502. /package/{icc-api → dist/icc-api}/model/Valorisation.d.ts +0 -0
  1503. /package/{icc-api → dist/icc-api}/model/Valorisation.js +0 -0
  1504. /package/{icc-api → dist/icc-api}/model/Valorisation.js.map +0 -0
  1505. /package/{icc-api → dist/icc-api}/model/Verse.d.ts +0 -0
  1506. /package/{icc-api → dist/icc-api}/model/Verse.js +0 -0
  1507. /package/{icc-api → dist/icc-api}/model/Verse.js.map +0 -0
  1508. /package/{icc-api → dist/icc-api}/model/VirtualForm.d.ts +0 -0
  1509. /package/{icc-api → dist/icc-api}/model/VirtualForm.js +0 -0
  1510. /package/{icc-api → dist/icc-api}/model/VirtualForm.js.map +0 -0
  1511. /package/{icc-api → dist/icc-api}/model/VirtualIngredient.d.ts +0 -0
  1512. /package/{icc-api → dist/icc-api}/model/VirtualIngredient.js +0 -0
  1513. /package/{icc-api → dist/icc-api}/model/VirtualIngredient.js.map +0 -0
  1514. /package/{icc-api → dist/icc-api}/model/Vmp.d.ts +0 -0
  1515. /package/{icc-api → dist/icc-api}/model/Vmp.js +0 -0
  1516. /package/{icc-api → dist/icc-api}/model/Vmp.js.map +0 -0
  1517. /package/{icc-api → dist/icc-api}/model/VmpComponent.d.ts +0 -0
  1518. /package/{icc-api → dist/icc-api}/model/VmpComponent.js +0 -0
  1519. /package/{icc-api → dist/icc-api}/model/VmpComponent.js.map +0 -0
  1520. /package/{icc-api → dist/icc-api}/model/VmpGroup.d.ts +0 -0
  1521. /package/{icc-api → dist/icc-api}/model/VmpGroup.js +0 -0
  1522. /package/{icc-api → dist/icc-api}/model/VmpGroup.js.map +0 -0
  1523. /package/{icc-api → dist/icc-api}/model/VmpGroupStub.d.ts +0 -0
  1524. /package/{icc-api → dist/icc-api}/model/VmpGroupStub.js +0 -0
  1525. /package/{icc-api → dist/icc-api}/model/VmpGroupStub.js.map +0 -0
  1526. /package/{icc-api → dist/icc-api}/model/VmpStub.d.ts +0 -0
  1527. /package/{icc-api → dist/icc-api}/model/VmpStub.js +0 -0
  1528. /package/{icc-api → dist/icc-api}/model/VmpStub.js.map +0 -0
  1529. /package/{icc-api → dist/icc-api}/model/Vtm.d.ts +0 -0
  1530. /package/{icc-api → dist/icc-api}/model/Vtm.js +0 -0
  1531. /package/{icc-api → dist/icc-api}/model/Vtm.js.map +0 -0
  1532. /package/{icc-api → dist/icc-api}/model/Wada.d.ts +0 -0
  1533. /package/{icc-api → dist/icc-api}/model/Wada.js +0 -0
  1534. /package/{icc-api → dist/icc-api}/model/Wada.js.map +0 -0
  1535. /package/{icc-api → dist/icc-api}/model/WebSession.d.ts +0 -0
  1536. /package/{icc-api → dist/icc-api}/model/WebSession.js +0 -0
  1537. /package/{icc-api → dist/icc-api}/model/WebSession.js.map +0 -0
  1538. /package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTime.d.ts +0 -0
  1539. /package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTime.js +0 -0
  1540. /package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTime.js.map +0 -0
  1541. /package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTimeUnits.d.ts +0 -0
  1542. /package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTimeUnits.js +0 -0
  1543. /package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTimeUnits.js.map +0 -0
  1544. /package/{icc-api → dist/icc-api}/model/Weekday.d.ts +0 -0
  1545. /package/{icc-api → dist/icc-api}/model/Weekday.js +0 -0
  1546. /package/{icc-api → dist/icc-api}/model/Weekday.js.map +0 -0
  1547. /package/{icc-api → dist/icc-api}/model/models.js +0 -0
  1548. /package/{icc-api → dist/icc-api}/model/models.js.map +0 -0
  1549. /package/{icc-x-api → dist/icc-x-api}/auth/AuthService.d.ts +0 -0
  1550. /package/{icc-x-api → dist/icc-x-api}/auth/AuthService.js +0 -0
  1551. /package/{icc-x-api → dist/icc-x-api}/auth/AuthService.js.map +0 -0
  1552. /package/{icc-x-api → dist/icc-x-api}/auth/AuthenticationProvider.d.ts +0 -0
  1553. /package/{icc-x-api → dist/icc-x-api}/auth/BasicAuthService.d.ts +0 -0
  1554. /package/{icc-x-api → dist/icc-x-api}/auth/BasicAuthService.js +0 -0
  1555. /package/{icc-x-api → dist/icc-x-api}/auth/BasicAuthService.js.map +0 -0
  1556. /package/{icc-x-api → dist/icc-x-api}/auth/EnsembleAuthService.d.ts +0 -0
  1557. /package/{icc-x-api → dist/icc-x-api}/auth/EnsembleAuthService.js +0 -0
  1558. /package/{icc-x-api → dist/icc-x-api}/auth/EnsembleAuthService.js.map +0 -0
  1559. /package/{icc-x-api → dist/icc-x-api}/auth/NoAuthService.d.ts +0 -0
  1560. /package/{icc-x-api → dist/icc-x-api}/auth/NoAuthService.js +0 -0
  1561. /package/{icc-x-api → dist/icc-x-api}/auth/NoAuthService.js.map +0 -0
  1562. /package/{icc-x-api → dist/icc-x-api}/crypto/AES.d.ts +0 -0
  1563. /package/{icc-x-api → dist/icc-x-api}/crypto/RSA.d.ts +0 -0
  1564. /package/{icc-x-api → dist/icc-x-api}/crypto/RSA.js +0 -0
  1565. /package/{icc-x-api → dist/icc-x-api}/crypto/RSA.js.map +0 -0
  1566. /package/{icc-x-api → dist/icc-x-api}/crypto/shamir.d.ts +0 -0
  1567. /package/{icc-x-api → dist/icc-x-api}/crypto/shamir.js +0 -0
  1568. /package/{icc-x-api → dist/icc-x-api}/crypto/shamir.js.map +0 -0
  1569. /package/{icc-x-api → dist/icc-x-api}/crypto/utils.d.ts +0 -0
  1570. /package/{icc-x-api → dist/icc-x-api}/crypto/utils.js +0 -0
  1571. /package/{icc-x-api → dist/icc-x-api}/crypto/utils.js.map +0 -0
  1572. /package/{icc-x-api → dist/icc-x-api}/filters/AllCodesFilter.d.ts +0 -0
  1573. /package/{icc-x-api → dist/icc-x-api}/filters/AllCodesFilter.js +0 -0
  1574. /package/{icc-x-api → dist/icc-x-api}/filters/AllCodesFilter.js.map +0 -0
  1575. /package/{icc-x-api → dist/icc-x-api}/filters/AllDevicesFilter.d.ts +0 -0
  1576. /package/{icc-x-api → dist/icc-x-api}/filters/AllDevicesFilter.js +0 -0
  1577. /package/{icc-x-api → dist/icc-x-api}/filters/AllDevicesFilter.js.map +0 -0
  1578. /package/{icc-x-api → dist/icc-x-api}/filters/AllHealthcarePartiesFilter.d.ts +0 -0
  1579. /package/{icc-x-api → dist/icc-x-api}/filters/AllHealthcarePartiesFilter.js +0 -0
  1580. /package/{icc-x-api → dist/icc-x-api}/filters/AllHealthcarePartiesFilter.js.map +0 -0
  1581. /package/{icc-x-api → dist/icc-x-api}/filters/AllUsersFilter.d.ts +0 -0
  1582. /package/{icc-x-api → dist/icc-x-api}/filters/AllUsersFilter.js +0 -0
  1583. /package/{icc-x-api → dist/icc-x-api}/filters/AllUsersFilter.js.map +0 -0
  1584. /package/{icc-x-api → dist/icc-x-api}/filters/CodeByIdsFilter.d.ts +0 -0
  1585. /package/{icc-x-api → dist/icc-x-api}/filters/CodeByIdsFilter.js +0 -0
  1586. /package/{icc-x-api → dist/icc-x-api}/filters/CodeByIdsFilter.js.map +0 -0
  1587. /package/{icc-x-api → dist/icc-x-api}/filters/CodeByRegionTypeLabelLanguageFilter.d.ts +0 -0
  1588. /package/{icc-x-api → dist/icc-x-api}/filters/CodeByRegionTypeLabelLanguageFilter.js +0 -0
  1589. /package/{icc-x-api → dist/icc-x-api}/filters/CodeByRegionTypeLabelLanguageFilter.js.map +0 -0
  1590. /package/{icc-x-api → dist/icc-x-api}/filters/CodeIdsByTypeCodeVersionIntervalFilter.d.ts +0 -0
  1591. /package/{icc-x-api → dist/icc-x-api}/filters/CodeIdsByTypeCodeVersionIntervalFilter.js +0 -0
  1592. /package/{icc-x-api → dist/icc-x-api}/filters/CodeIdsByTypeCodeVersionIntervalFilter.js.map +0 -0
  1593. /package/{icc-x-api → dist/icc-x-api}/filters/ComplementFilter.d.ts +0 -0
  1594. /package/{icc-x-api → dist/icc-x-api}/filters/ComplementFilter.js +0 -0
  1595. /package/{icc-x-api → dist/icc-x-api}/filters/ComplementFilter.js.map +0 -0
  1596. /package/{icc-x-api → dist/icc-x-api}/filters/ConstantFilter.d.ts +0 -0
  1597. /package/{icc-x-api → dist/icc-x-api}/filters/ConstantFilter.js +0 -0
  1598. /package/{icc-x-api → dist/icc-x-api}/filters/ConstantFilter.js.map +0 -0
  1599. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyFilter.d.ts +0 -0
  1600. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyFilter.js +0 -0
  1601. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyFilter.js.map +0 -0
  1602. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyPatientTagCodeDateFilter.d.ts +0 -0
  1603. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyPatientTagCodeDateFilter.js +0 -0
  1604. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyPatientTagCodeDateFilter.js.map +0 -0
  1605. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyTagCodeDateFilter.d.ts +0 -0
  1606. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyTagCodeDateFilter.js +0 -0
  1607. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyTagCodeDateFilter.js.map +0 -0
  1608. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByServiceIdsFilter.d.ts +0 -0
  1609. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByServiceIdsFilter.js +0 -0
  1610. /package/{icc-x-api → dist/icc-x-api}/filters/ContactByServiceIdsFilter.js.map +0 -0
  1611. /package/{icc-x-api → dist/icc-x-api}/filters/DeviceByHcPartyFilter.d.ts +0 -0
  1612. /package/{icc-x-api → dist/icc-x-api}/filters/DeviceByHcPartyFilter.js +0 -0
  1613. /package/{icc-x-api → dist/icc-x-api}/filters/DeviceByHcPartyFilter.js.map +0 -0
  1614. /package/{icc-x-api → dist/icc-x-api}/filters/DeviceByIdsFilter.d.ts +0 -0
  1615. /package/{icc-x-api → dist/icc-x-api}/filters/DeviceByIdsFilter.js +0 -0
  1616. /package/{icc-x-api → dist/icc-x-api}/filters/DeviceByIdsFilter.js.map +0 -0
  1617. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyFilter.d.ts +0 -0
  1618. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyFilter.js +0 -0
  1619. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyFilter.js.map +0 -0
  1620. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyIdentifiersFilter.d.ts +0 -0
  1621. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyIdentifiersFilter.js +0 -0
  1622. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyIdentifiersFilter.js.map +0 -0
  1623. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartySecretForeignKeysFilter.d.ts +0 -0
  1624. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartySecretForeignKeysFilter.js +0 -0
  1625. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartySecretForeignKeysFilter.js.map +0 -0
  1626. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyTagCodeFilter.d.ts +0 -0
  1627. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyTagCodeFilter.js +0 -0
  1628. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyTagCodeFilter.js.map +0 -0
  1629. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByIdsFilter.d.ts +0 -0
  1630. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByIdsFilter.js +0 -0
  1631. /package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByIdsFilter.js.map +0 -0
  1632. /package/{icc-x-api → dist/icc-x-api}/filters/HealthcarePartyByIdsFilter.d.ts +0 -0
  1633. /package/{icc-x-api → dist/icc-x-api}/filters/HealthcarePartyByIdsFilter.js +0 -0
  1634. /package/{icc-x-api → dist/icc-x-api}/filters/HealthcarePartyByIdsFilter.js.map +0 -0
  1635. /package/{icc-x-api → dist/icc-x-api}/filters/HealthcarePartyByTagCodeFilter.d.ts +0 -0
  1636. /package/{icc-x-api → dist/icc-x-api}/filters/HealthcarePartyByTagCodeFilter.js +0 -0
  1637. /package/{icc-x-api → dist/icc-x-api}/filters/HealthcarePartyByTagCodeFilter.js.map +0 -0
  1638. /package/{icc-x-api → dist/icc-x-api}/filters/IntersectionFilter.d.ts +0 -0
  1639. /package/{icc-x-api → dist/icc-x-api}/filters/IntersectionFilter.js +0 -0
  1640. /package/{icc-x-api → dist/icc-x-api}/filters/IntersectionFilter.js.map +0 -0
  1641. /package/{icc-x-api → dist/icc-x-api}/filters/InvoiceByHcPartyCodeDateFilter.d.ts +0 -0
  1642. /package/{icc-x-api → dist/icc-x-api}/filters/InvoiceByHcPartyCodeDateFilter.js +0 -0
  1643. /package/{icc-x-api → dist/icc-x-api}/filters/InvoiceByHcPartyCodeDateFilter.js.map +0 -0
  1644. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskAfterDateFilter.d.ts +0 -0
  1645. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskAfterDateFilter.js +0 -0
  1646. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskAfterDateFilter.js.map +0 -0
  1647. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndIdentifiersFilter.d.ts +0 -0
  1648. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndIdentifiersFilter.js +0 -0
  1649. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndIdentifiersFilter.js.map +0 -0
  1650. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndTypeFilter.d.ts +0 -0
  1651. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndTypeFilter.js +0 -0
  1652. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndTypeFilter.js.map +0 -0
  1653. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByIdsFilter.d.ts +0 -0
  1654. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByIdsFilter.js +0 -0
  1655. /package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByIdsFilter.js.map +0 -0
  1656. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndActiveFilter.d.ts +0 -0
  1657. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndActiveFilter.js +0 -0
  1658. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndActiveFilter.js.map +0 -0
  1659. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndAddressFilter.d.ts +0 -0
  1660. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndAddressFilter.js +0 -0
  1661. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndAddressFilter.js.map +0 -0
  1662. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndExternalIdFilter.d.ts +0 -0
  1663. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndExternalIdFilter.js +0 -0
  1664. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndExternalIdFilter.js.map +0 -0
  1665. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndIdentifiersFilter.d.ts +0 -0
  1666. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndIdentifiersFilter.js +0 -0
  1667. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndIdentifiersFilter.js.map +0 -0
  1668. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinFilter.d.ts +0 -0
  1669. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinFilter.js +0 -0
  1670. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinFilter.js.map +0 -0
  1671. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinsFilter.d.ts +0 -0
  1672. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinsFilter.js +0 -0
  1673. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinsFilter.js.map +0 -0
  1674. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthBetweenFilter.d.ts +0 -0
  1675. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthBetweenFilter.js +0 -0
  1676. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthBetweenFilter.js.map +0 -0
  1677. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthFilter.d.ts +0 -0
  1678. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthFilter.js +0 -0
  1679. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthFilter.js.map +0 -0
  1680. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyFilter.d.ts +0 -0
  1681. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyFilter.js +0 -0
  1682. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyFilter.js.map +0 -0
  1683. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyGenderEducationProfession.d.ts +0 -0
  1684. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyGenderEducationProfession.js +0 -0
  1685. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyGenderEducationProfession.js.map +0 -0
  1686. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameContainsFuzzyFilter.d.ts +0 -0
  1687. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameContainsFuzzyFilter.js +0 -0
  1688. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameContainsFuzzyFilter.js.map +0 -0
  1689. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameFilter.d.ts +0 -0
  1690. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameFilter.js +0 -0
  1691. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameFilter.js.map +0 -0
  1692. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByIdsFilter.d.ts +0 -0
  1693. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByIdsFilter.js +0 -0
  1694. /package/{icc-x-api → dist/icc-x-api}/filters/PatientByIdsFilter.js.map +0 -0
  1695. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByContactsAndSubcontactsFilter.d.ts +0 -0
  1696. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByContactsAndSubcontactsFilter.js +0 -0
  1697. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByContactsAndSubcontactsFilter.js.map +0 -0
  1698. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyFilter.d.ts +0 -0
  1699. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyFilter.js +0 -0
  1700. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyFilter.js.map +0 -0
  1701. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyHealthElementIdsFilter.d.ts +0 -0
  1702. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyHealthElementIdsFilter.js +0 -0
  1703. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyHealthElementIdsFilter.js.map +0 -0
  1704. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyIdentifiersFilter.d.ts +0 -0
  1705. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyIdentifiersFilter.js +0 -0
  1706. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyIdentifiersFilter.js.map +0 -0
  1707. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyTagCodeDateFilter.d.ts +0 -0
  1708. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyTagCodeDateFilter.js +0 -0
  1709. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyTagCodeDateFilter.js.map +0 -0
  1710. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByIdsFilter.d.ts +0 -0
  1711. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByIdsFilter.js +0 -0
  1712. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceByIdsFilter.js.map +0 -0
  1713. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceBySecretForeignKeys.d.ts +0 -0
  1714. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceBySecretForeignKeys.js +0 -0
  1715. /package/{icc-x-api → dist/icc-x-api}/filters/ServiceBySecretForeignKeys.js.map +0 -0
  1716. /package/{icc-x-api → dist/icc-x-api}/filters/UnionFilter.d.ts +0 -0
  1717. /package/{icc-x-api → dist/icc-x-api}/filters/UnionFilter.js +0 -0
  1718. /package/{icc-x-api → dist/icc-x-api}/filters/UnionFilter.js.map +0 -0
  1719. /package/{icc-x-api → dist/icc-x-api}/filters/UserByIdsFilter.d.ts +0 -0
  1720. /package/{icc-x-api → dist/icc-x-api}/filters/UserByIdsFilter.js +0 -0
  1721. /package/{icc-x-api → dist/icc-x-api}/filters/UserByIdsFilter.js.map +0 -0
  1722. /package/{icc-x-api → dist/icc-x-api}/filters/UserByNameEmailPhoneFilter.d.ts +0 -0
  1723. /package/{icc-x-api → dist/icc-x-api}/filters/UserByNameEmailPhoneFilter.js +0 -0
  1724. /package/{icc-x-api → dist/icc-x-api}/filters/UserByNameEmailPhoneFilter.js.map +0 -0
  1725. /package/{icc-x-api → dist/icc-x-api}/filters/UsersByPatientIdFilter.d.ts +0 -0
  1726. /package/{icc-x-api → dist/icc-x-api}/filters/UsersByPatientIdFilter.js +0 -0
  1727. /package/{icc-x-api → dist/icc-x-api}/filters/UsersByPatientIdFilter.js.map +0 -0
  1728. /package/{icc-x-api → dist/icc-x-api}/filters/filters.js +0 -0
  1729. /package/{icc-x-api → dist/icc-x-api}/filters/filters.js.map +0 -0
  1730. /package/{icc-x-api → dist/icc-x-api}/icc-accesslog-x-api.d.ts +0 -0
  1731. /package/{icc-x-api → dist/icc-x-api}/icc-accesslog-x-api.js +0 -0
  1732. /package/{icc-x-api → dist/icc-x-api}/icc-accesslog-x-api.js.map +0 -0
  1733. /package/{icc-x-api → dist/icc-x-api}/icc-bekmehr-x-api.js +0 -0
  1734. /package/{icc-x-api → dist/icc-x-api}/icc-bekmehr-x-api.js.map +0 -0
  1735. /package/{icc-x-api → dist/icc-x-api}/icc-calendar-item-x-api.d.ts +0 -0
  1736. /package/{icc-x-api → dist/icc-x-api}/icc-calendar-item-x-api.js +0 -0
  1737. /package/{icc-x-api → dist/icc-x-api}/icc-calendar-item-x-api.js.map +0 -0
  1738. /package/{icc-x-api → dist/icc-x-api}/icc-classification-x-api.d.ts +0 -0
  1739. /package/{icc-x-api → dist/icc-x-api}/icc-classification-x-api.js +0 -0
  1740. /package/{icc-x-api → dist/icc-x-api}/icc-classification-x-api.js.map +0 -0
  1741. /package/{icc-x-api → dist/icc-x-api}/icc-code-x-api.d.ts +0 -0
  1742. /package/{icc-x-api → dist/icc-x-api}/icc-code-x-api.js +0 -0
  1743. /package/{icc-x-api → dist/icc-x-api}/icc-code-x-api.js.map +0 -0
  1744. /package/{icc-x-api → dist/icc-x-api}/icc-contact-x-api.d.ts +0 -0
  1745. /package/{icc-x-api → dist/icc-x-api}/icc-contact-x-api.js +0 -0
  1746. /package/{icc-x-api → dist/icc-x-api}/icc-contact-x-api.js.map +0 -0
  1747. /package/{icc-x-api → dist/icc-x-api}/icc-data-owner-x-api.d.ts +0 -0
  1748. /package/{icc-x-api → dist/icc-x-api}/icc-data-owner-x-api.js +0 -0
  1749. /package/{icc-x-api → dist/icc-x-api}/icc-data-owner-x-api.js.map +0 -0
  1750. /package/{icc-x-api → dist/icc-x-api}/icc-doctemplate-x-api.d.ts +0 -0
  1751. /package/{icc-x-api → dist/icc-x-api}/icc-doctemplate-x-api.js +0 -0
  1752. /package/{icc-x-api → dist/icc-x-api}/icc-doctemplate-x-api.js.map +0 -0
  1753. /package/{icc-x-api → dist/icc-x-api}/icc-document-x-api.d.ts +0 -0
  1754. /package/{icc-x-api → dist/icc-x-api}/icc-document-x-api.js +0 -0
  1755. /package/{icc-x-api → dist/icc-x-api}/icc-document-x-api.js.map +0 -0
  1756. /package/{icc-x-api → dist/icc-x-api}/icc-form-x-api.d.ts +0 -0
  1757. /package/{icc-x-api → dist/icc-x-api}/icc-form-x-api.js +0 -0
  1758. /package/{icc-x-api → dist/icc-x-api}/icc-form-x-api.js.map +0 -0
  1759. /package/{icc-x-api → dist/icc-x-api}/icc-hcparty-x-api.d.ts +0 -0
  1760. /package/{icc-x-api → dist/icc-x-api}/icc-hcparty-x-api.js +0 -0
  1761. /package/{icc-x-api → dist/icc-x-api}/icc-hcparty-x-api.js.map +0 -0
  1762. /package/{icc-x-api → dist/icc-x-api}/icc-helement-x-api.d.ts +0 -0
  1763. /package/{icc-x-api → dist/icc-x-api}/icc-helement-x-api.js +0 -0
  1764. /package/{icc-x-api → dist/icc-x-api}/icc-helement-x-api.js.map +0 -0
  1765. /package/{icc-x-api → dist/icc-x-api}/icc-invoice-x-api.d.ts +0 -0
  1766. /package/{icc-x-api → dist/icc-x-api}/icc-invoice-x-api.js +0 -0
  1767. /package/{icc-x-api → dist/icc-x-api}/icc-invoice-x-api.js.map +0 -0
  1768. /package/{icc-x-api → dist/icc-x-api}/icc-maintenance-task-x-api.d.ts +0 -0
  1769. /package/{icc-x-api → dist/icc-x-api}/icc-maintenance-task-x-api.js +0 -0
  1770. /package/{icc-x-api → dist/icc-x-api}/icc-maintenance-task-x-api.js.map +0 -0
  1771. /package/{icc-x-api → dist/icc-x-api}/icc-message-x-api.d.ts +0 -0
  1772. /package/{icc-x-api → dist/icc-x-api}/icc-message-x-api.js +0 -0
  1773. /package/{icc-x-api → dist/icc-x-api}/icc-message-x-api.js.map +0 -0
  1774. /package/{icc-x-api → dist/icc-x-api}/icc-patient-x-api.d.ts +0 -0
  1775. /package/{icc-x-api → dist/icc-x-api}/icc-patient-x-api.js +0 -0
  1776. /package/{icc-x-api → dist/icc-x-api}/icc-patient-x-api.js.map +0 -0
  1777. /package/{icc-x-api → dist/icc-x-api}/icc-receipt-x-api.d.ts +0 -0
  1778. /package/{icc-x-api → dist/icc-x-api}/icc-receipt-x-api.js +0 -0
  1779. /package/{icc-x-api → dist/icc-x-api}/icc-receipt-x-api.js.map +0 -0
  1780. /package/{icc-x-api → dist/icc-x-api}/icc-time-table-x-api.d.ts +0 -0
  1781. /package/{icc-x-api → dist/icc-x-api}/icc-time-table-x-api.js +0 -0
  1782. /package/{icc-x-api → dist/icc-x-api}/icc-time-table-x-api.js.map +0 -0
  1783. /package/{icc-x-api → dist/icc-x-api}/icc-user-x-api.d.ts +0 -0
  1784. /package/{icc-x-api → dist/icc-x-api}/icc-user-x-api.js +0 -0
  1785. /package/{icc-x-api → dist/icc-x-api}/icc-user-x-api.js.map +0 -0
  1786. /package/{icc-x-api → dist/icc-x-api}/index.d.ts +0 -0
  1787. /package/{icc-x-api → dist/icc-x-api}/index.js +0 -0
  1788. /package/{icc-x-api → dist/icc-x-api}/index.js.map +0 -0
  1789. /package/{icc-x-api → dist/icc-x-api}/rsrc/codelng.d.ts +0 -0
  1790. /package/{icc-x-api → dist/icc-x-api}/rsrc/codelng.js +0 -0
  1791. /package/{icc-x-api → dist/icc-x-api}/rsrc/codelng.js.map +0 -0
  1792. /package/{icc-x-api → dist/icc-x-api}/rsrc/contact.i18n.d.ts +0 -0
  1793. /package/{icc-x-api → dist/icc-x-api}/rsrc/contact.i18n.js +0 -0
  1794. /package/{icc-x-api → dist/icc-x-api}/rsrc/contact.i18n.js.map +0 -0
  1795. /package/{icc-x-api → dist/icc-x-api}/rsrc/icd10.d.ts +0 -0
  1796. /package/{icc-x-api → dist/icc-x-api}/rsrc/icd10.js +0 -0
  1797. /package/{icc-x-api → dist/icc-x-api}/rsrc/icd10.js.map +0 -0
  1798. /package/{icc-x-api → dist/icc-x-api}/rsrc/icpc2.d.ts +0 -0
  1799. /package/{icc-x-api → dist/icc-x-api}/rsrc/icpc2.js +0 -0
  1800. /package/{icc-x-api → dist/icc-x-api}/rsrc/icpc2.js.map +0 -0
  1801. /package/{icc-x-api → dist/icc-x-api}/storage/KeyStorageFacade.d.ts +0 -0
  1802. /package/{icc-x-api → dist/icc-x-api}/storage/KeyStorageFacade.js +0 -0
  1803. /package/{icc-x-api → dist/icc-x-api}/storage/KeyStorageFacade.js.map +0 -0
  1804. /package/{icc-x-api → dist/icc-x-api}/storage/KeyStorageImpl.d.ts +0 -0
  1805. /package/{icc-x-api → dist/icc-x-api}/storage/KeyStorageImpl.js +0 -0
  1806. /package/{icc-x-api → dist/icc-x-api}/storage/KeyStorageImpl.js.map +0 -0
  1807. /package/{icc-x-api → dist/icc-x-api}/storage/LocalStorageImpl.d.ts +0 -0
  1808. /package/{icc-x-api → dist/icc-x-api}/storage/LocalStorageImpl.js +0 -0
  1809. /package/{icc-x-api → dist/icc-x-api}/storage/LocalStorageImpl.js.map +0 -0
  1810. /package/{icc-x-api → dist/icc-x-api}/storage/StorageFacade.d.ts +0 -0
  1811. /package/{icc-x-api → dist/icc-x-api}/storage/StorageFacade.js +0 -0
  1812. /package/{icc-x-api → dist/icc-x-api}/storage/StorageFacade.js.map +0 -0
  1813. /package/{icc-x-api → dist/icc-x-api}/utils/asn1-packer.js +0 -0
  1814. /package/{icc-x-api → dist/icc-x-api}/utils/asn1-packer.js.map +0 -0
  1815. /package/{icc-x-api → dist/icc-x-api}/utils/asn1-parser.js +0 -0
  1816. /package/{icc-x-api → dist/icc-x-api}/utils/asn1-parser.js.map +0 -0
  1817. /package/{icc-x-api → dist/icc-x-api}/utils/binary-utils.d.ts +0 -0
  1818. /package/{icc-x-api → dist/icc-x-api}/utils/binary-utils.js +0 -0
  1819. /package/{icc-x-api → dist/icc-x-api}/utils/binary-utils.js.map +0 -0
  1820. /package/{icc-x-api → dist/icc-x-api}/utils/code-util.d.ts +0 -0
  1821. /package/{icc-x-api → dist/icc-x-api}/utils/code-util.js +0 -0
  1822. /package/{icc-x-api → dist/icc-x-api}/utils/code-util.js.map +0 -0
  1823. /package/{icc-x-api → dist/icc-x-api}/utils/crypto-utils.d.ts +0 -0
  1824. /package/{icc-x-api → dist/icc-x-api}/utils/crypto-utils.js +0 -0
  1825. /package/{icc-x-api → dist/icc-x-api}/utils/crypto-utils.js.map +0 -0
  1826. /package/{icc-x-api → dist/icc-x-api}/utils/error-reporting.d.ts +0 -0
  1827. /package/{icc-x-api → dist/icc-x-api}/utils/error-reporting.js +0 -0
  1828. /package/{icc-x-api → dist/icc-x-api}/utils/error-reporting.js.map +0 -0
  1829. /package/{icc-x-api → dist/icc-x-api}/utils/formatting-util.d.ts +0 -0
  1830. /package/{icc-x-api → dist/icc-x-api}/utils/formatting-util.js +0 -0
  1831. /package/{icc-x-api → dist/icc-x-api}/utils/formatting-util.js.map +0 -0
  1832. /package/{icc-x-api → dist/icc-x-api}/utils/functional-util.d.ts +0 -0
  1833. /package/{icc-x-api → dist/icc-x-api}/utils/functional-util.js +0 -0
  1834. /package/{icc-x-api → dist/icc-x-api}/utils/functional-util.js.map +0 -0
  1835. /package/{icc-x-api → dist/icc-x-api}/utils/hcp-util.d.ts +0 -0
  1836. /package/{icc-x-api → dist/icc-x-api}/utils/hcp-util.js +0 -0
  1837. /package/{icc-x-api → dist/icc-x-api}/utils/hcp-util.js.map +0 -0
  1838. /package/{icc-x-api → dist/icc-x-api}/utils/index.d.ts +0 -0
  1839. /package/{icc-x-api → dist/icc-x-api}/utils/index.js +0 -0
  1840. /package/{icc-x-api → dist/icc-x-api}/utils/index.js.map +0 -0
  1841. /package/{icc-x-api → dist/icc-x-api}/utils/insurability-util.d.ts +0 -0
  1842. /package/{icc-x-api → dist/icc-x-api}/utils/insurability-util.js +0 -0
  1843. /package/{icc-x-api → dist/icc-x-api}/utils/insurability-util.js.map +0 -0
  1844. /package/{icc-x-api → dist/icc-x-api}/utils/net-utils.js +0 -0
  1845. /package/{icc-x-api → dist/icc-x-api}/utils/net-utils.js.map +0 -0
  1846. /package/{icc-x-api → dist/icc-x-api}/utils/person-util.d.ts +0 -0
  1847. /package/{icc-x-api → dist/icc-x-api}/utils/person-util.js +0 -0
  1848. /package/{icc-x-api → dist/icc-x-api}/utils/person-util.js.map +0 -0
  1849. /package/{icc-x-api → dist/icc-x-api}/utils/uuid-encoder.d.ts +0 -0
  1850. /package/{icc-x-api → dist/icc-x-api}/utils/uuid-encoder.js +0 -0
  1851. /package/{icc-x-api → dist/icc-x-api}/utils/uuid-encoder.js.map +0 -0
  1852. /package/{index.d.ts → dist/index.d.ts} +0 -0
  1853. /package/{index.js → dist/index.js} +0 -0
  1854. /package/{index.js.map → dist/index.js.map} +0 -0
  1855. /package/{node-compat.d.ts → dist/node-compat.d.ts} +0 -0
  1856. /package/{node-compat.js → dist/node-compat.js} +0 -0
  1857. /package/{node-compat.js.map → dist/node-compat.js.map} +0 -0
@@ -0,0 +1,1788 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.IccCryptoXApi = void 0;
13
+ const AES_1 = require("./crypto/AES");
14
+ const RSA_1 = require("./crypto/RSA");
15
+ const shamir_1 = require("./crypto/shamir");
16
+ const _ = require("lodash");
17
+ const models_1 = require("../icc-api/model/models");
18
+ const binary_utils_1 = require("./utils/binary-utils");
19
+ const utils_1 = require("./utils");
20
+ const error_reporting_1 = require("./utils/error-reporting");
21
+ class IccCryptoXApi {
22
+ get crypto() {
23
+ return this._crypto;
24
+ }
25
+ get shamir() {
26
+ return this._shamir;
27
+ }
28
+ get RSA() {
29
+ return this._RSA;
30
+ }
31
+ get AES() {
32
+ return this._AES;
33
+ }
34
+ get keyStorage() {
35
+ return this._keyStorage;
36
+ }
37
+ get storage() {
38
+ return this._storage;
39
+ }
40
+ emptyHcpCache(hcpartyId) {
41
+ delete this.hcPartyKeysRequestsCache[hcpartyId];
42
+ delete this.dataOwnerCache[hcpartyId];
43
+ }
44
+ /**
45
+ * @internal may be changed without notice
46
+ * Gets all delegate encrypted HcParty keys of the delegate with the given `delegateHcPartyId`, and for each key the delegator id
47
+ * If the keys are not cached, they are retrieved from the backend.
48
+ *
49
+ * @param delegateHcPartyId The Health Care Party id
50
+ * @returns \{delegatorId: delegateEncryptedHcPartyKey\}
51
+ */
52
+ getEncryptedAesExchangeKeysForDelegate(delegateHcPartyId) {
53
+ return (this.hcPartyKeysRequestsCache[delegateHcPartyId] ||
54
+ (this.hcPartyKeysRequestsCache[delegateHcPartyId] = this.forceGetEncryptedAesExchangeKeysForDelegate(delegateHcPartyId)));
55
+ }
56
+ forceGetEncryptedAesExchangeKeysForDelegate(delegateHcPartyId) {
57
+ return Promise.all([
58
+ this.patientBaseApi.getPatientAesExchangeKeysForDelegate(delegateHcPartyId).catch(() => { }),
59
+ this.hcpartyBaseApi.getAesExchangeKeysForDelegate(delegateHcPartyId).catch(() => { }),
60
+ this.deviceBaseApi.getDeviceAesExchangeKeysForDelegate(delegateHcPartyId).catch(() => { }),
61
+ ]).then(([a, b, c]) => (Object.assign(Object.assign(Object.assign({}, a), b), c)));
62
+ }
63
+ constructor(host, headers, hcpartyBaseApi, //Init with a hcparty x api for better performances
64
+ patientBaseApi, deviceBaseApi, crypto = typeof window !== 'undefined' ? window.crypto : typeof self !== 'undefined' ? self.crypto : {}, storage, keyStorage) {
65
+ this.hcPartyKeysCache = {};
66
+ //[delegateId][delegatorId] = delegateEncryptedHcPartyKey
67
+ //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)
68
+ this.hcPartyKeysRequestsCache = {};
69
+ this.cacheLastDeletionTimestamp = undefined;
70
+ this.dataOwnerCache = {};
71
+ this.keychainLocalStoreIdPrefix = 'org.taktik.icure.ehealth.keychain.';
72
+ this.keychainValidityDateLocalStoreIdPrefix = 'org.taktik.icure.ehealth.keychain-date.';
73
+ this.hcpPreferenceKeyEhealthCert = 'eHealthCRTCrypt';
74
+ this.hcpPreferenceKeyEhealthCertDate = 'eHealthCRTDate';
75
+ this.rsaLocalStoreIdPrefix = 'org.taktik.icure.rsa.';
76
+ /**
77
+ * @internal may be changed without notice
78
+ */
79
+ this.rsaKeyPairs = {};
80
+ /**
81
+ * Specifies if the error reporting is enabled
82
+ */
83
+ this.enableErrorReporting = true;
84
+ /**
85
+ * Allows to specify the behaviour for saving the error report
86
+ */
87
+ this.saveErrorReportCallback = (collectedData) => __awaiter(this, void 0, void 0, function* () {
88
+ const entryPrefix = `icure.errorreports.${new Date() / 1}.${this.randomUuid()}.`;
89
+ console.warn('Storage entry prefix: ' + entryPrefix);
90
+ this.storage.setItem(entryPrefix + 'full', JSON.stringify(collectedData.fullData));
91
+ this.storage.setItem(entryPrefix + 'minimal', JSON.stringify(collectedData.minimalData));
92
+ });
93
+ this.hcpartyBaseApi = hcpartyBaseApi;
94
+ this.patientBaseApi = patientBaseApi;
95
+ this.deviceBaseApi = deviceBaseApi;
96
+ this._crypto = crypto;
97
+ this.generateKeyConcurrencyMap = {};
98
+ this._AES = new AES_1.AESUtils(crypto);
99
+ this._RSA = new RSA_1.RSAUtils(crypto);
100
+ this._shamir = new shamir_1.ShamirClass(crypto);
101
+ this._storage = storage;
102
+ this._keyStorage = keyStorage;
103
+ }
104
+ loadAllKeysFromLocalStorage(dataOwnerId) {
105
+ return __awaiter(this, void 0, void 0, function* () {
106
+ const pubKeys = yield this.getDataOwnerHexPublicKeys((yield this.getDataOwner(dataOwnerId)).dataOwner);
107
+ for (const pk of pubKeys) {
108
+ const fingerprint = pk.slice(-32);
109
+ if (!this.rsaKeyPairs[fingerprint]) {
110
+ yield this.cacheKeyPair(this.loadKeyPairNotImported(dataOwnerId, fingerprint));
111
+ }
112
+ }
113
+ });
114
+ }
115
+ getCachedRsaKeyPairForFingerprint(dataOwnerId, pubKeyOrFingerprint) {
116
+ var _a;
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ const fingerprint = pubKeyOrFingerprint.slice(-32);
119
+ return (_a = this.rsaKeyPairs[fingerprint]) !== null && _a !== void 0 ? _a : (yield this.cacheKeyPair(this.loadKeyPairNotImported(dataOwnerId, fingerprint)));
120
+ });
121
+ }
122
+ getPublicKeys() {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ return yield Object.values(this.rsaKeyPairs).reduce((p, rsa) => __awaiter(this, void 0, void 0, function* () {
125
+ return (yield p).concat([(0, utils_1.jwk2spki)(yield this.RSA.exportKey(rsa.publicKey, 'jwk'))]);
126
+ }), Promise.resolve([]));
127
+ });
128
+ }
129
+ getPublicKeysAsSpki() {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ return yield Object.values(this.rsaKeyPairs).reduce((p, rsa) => __awaiter(this, void 0, void 0, function* () {
132
+ return (yield p).concat([(0, binary_utils_1.ua2hex)(yield this.RSA.exportKey(rsa.publicKey, 'spki'))]);
133
+ }), Promise.resolve([]));
134
+ });
135
+ }
136
+ randomUuid() {
137
+ return ((1e7).toString() + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) => (Number(c) ^ (this._crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (Number(c) / 4)))).toString(16) //Keep that inlined or you will loose the random
138
+ );
139
+ }
140
+ sha256(data) {
141
+ return this._crypto.subtle.digest('SHA-256', data);
142
+ }
143
+ encryptShamirRSAKey(hcp, notaries, threshold) {
144
+ return this.loadKeyPairImported(hcp.id).then((keyPair) => this._RSA.exportKey(keyPair.privateKey, 'pkcs8').then((exportedKey) => __awaiter(this, void 0, void 0, function* () {
145
+ const privateKey = exportedKey;
146
+ const nLen = notaries.length;
147
+ const shares = nLen == 1 ? [privateKey] : this._shamir.share((0, binary_utils_1.ua2hex)(privateKey), nLen, threshold || nLen).map((share) => (0, binary_utils_1.hex2ua)(share));
148
+ const publicKeys = yield this.getPublicKeys();
149
+ return _.reduce(notaries, (queue, notary, idx) => {
150
+ return queue.then((hcp) => __awaiter(this, void 0, void 0, function* () {
151
+ const { owner: hcParty, aesExchangeKeys } = yield this.getOrCreateHcPartyKeys(hcp, notary.id);
152
+ const [publicKeyIdentifier, hcPartyKeys] = Object.entries(aesExchangeKeys)[0];
153
+ try {
154
+ const importedAESHcPartyKey = yield this.decryptHcPartyKey(notary.id, hcParty.id, notary.id, publicKeyIdentifier, hcPartyKeys, publicKeys);
155
+ const encryptedShamirPartition = yield this.AES.encrypt(importedAESHcPartyKey.key, shares[idx]);
156
+ hcParty.privateKeyShamirPartitions = hcParty.privateKeyShamirPartitions || {};
157
+ hcParty.privateKeyShamirPartitions[notary.id] = (0, binary_utils_1.ua2hex)(encryptedShamirPartition);
158
+ }
159
+ catch (e) {
160
+ console.log('Error during encryptedShamirRSAKey', notary.id, e);
161
+ }
162
+ return hcParty;
163
+ }));
164
+ }, Promise.resolve(hcp));
165
+ })));
166
+ }
167
+ /* Reconstructs the hcp's private key from the notaries' shamir shares and stores it in localstorage.
168
+ The retrieval procedure of the shares is not designed or implemented yet. Therefore, it currently only
169
+ works if the private key of the notaries are stored in local storage (e.g. notaries = [hcp parent]).
170
+ * @param hcp : the hcp whose key we want to reconstruct
171
+ * @param notaries : holders of the shamir shares
172
+ **/
173
+ decryptShamirRSAKey(hcp, notaries) {
174
+ return __awaiter(this, void 0, void 0, function* () {
175
+ try {
176
+ const publicKeys = yield this.getPublicKeys();
177
+ const nLen = notaries.length;
178
+ let decryptedPrivatedKey;
179
+ if (nLen == 1) {
180
+ const notaryHcPartyId = notaries[0].id;
181
+ const encryptedAesKeyMap = yield this.getEncryptedAesExchangeKeys(hcp, notaryHcPartyId);
182
+ const importedAESHcPartyKey = yield Promise.all(Object.entries(encryptedAesKeyMap).map(([idPubKey, keysMap]) => __awaiter(this, void 0, void 0, function* () { return yield this.decryptHcPartyKey(notaryHcPartyId, hcp.id, notaryHcPartyId, idPubKey, keysMap, publicKeys); })));
183
+ const cryptedPrivatedKey = hcp.privateKeyShamirPartitions[notaryHcPartyId];
184
+ decryptedPrivatedKey = (0, binary_utils_1.ua2hex)(yield this.AES.decryptSome(importedAESHcPartyKey.map((k) => k.key), (0, binary_utils_1.hex2ua)(cryptedPrivatedKey)));
185
+ }
186
+ else {
187
+ const decryptedShares = yield _.reduce(notaries, (queue, notary) => {
188
+ return queue.then((shares) => __awaiter(this, void 0, void 0, function* () {
189
+ try {
190
+ // TODO: now, we get the encrypted shares in db and decrypt them. This assumes that the
191
+ // the notaries' private keys are in localstorage. We should implement a way for the notaries to
192
+ // give hcp the decrypted shares without having to also share their private keys.
193
+ const encryptedAesKeyMap = yield this.getEncryptedAesExchangeKeys(hcp, notary.id);
194
+ const importedAESHcPartyKey = yield Promise.all(Object.entries(encryptedAesKeyMap).map(([idPubKey, keysMap]) => __awaiter(this, void 0, void 0, function* () { return yield this.decryptHcPartyKey(notary.id, hcp.id, notary.id, idPubKey, keysMap, publicKeys); })));
195
+ const encryptedShare = hcp.privateKeyShamirPartitions[notary.id];
196
+ const decryptedShamirPartition = (0, binary_utils_1.ua2hex)(yield this.AES.decryptSome(importedAESHcPartyKey.map((k) => k.key), (0, binary_utils_1.hex2ua)(encryptedShare)));
197
+ shares.push(decryptedShamirPartition);
198
+ }
199
+ catch (e) {
200
+ console.log('Error during encryptedShamirRSAKey', notary.id, e);
201
+ }
202
+ return shares;
203
+ }));
204
+ }, Promise.resolve([]));
205
+ decryptedPrivatedKey = this._shamir.combine(decryptedShares);
206
+ }
207
+ const importedPrivateKey = yield this._RSA.importKey('pkcs8', (0, binary_utils_1.hex2ua)(decryptedPrivatedKey), ['decrypt']);
208
+ const importedPublicKey = yield this._RSA.importKey('spki', (0, binary_utils_1.hex2ua)(hcp.publicKey), ['encrypt']);
209
+ const exportedKeyPair = yield this._RSA.exportKeys({ publicKey: importedPublicKey, privateKey: importedPrivateKey }, 'jwk', 'jwk');
210
+ this._keyStorage.storeKeyPair(`${this.rsaLocalStoreIdPrefix}${hcp.id}`, exportedKeyPair);
211
+ }
212
+ catch (e) {
213
+ console.log('Cannot decrypt shamir RSA key');
214
+ }
215
+ });
216
+ }
217
+ /**
218
+ * Gets the decryptedHcPartyKey for the given `encryptedHcPartyKey`
219
+ *
220
+ * If the decrypted key exists in the cache, retrieves it from there.
221
+ * Otherwise, decrypts it using the RSA key of the delegator or delegate (depending on the value of `encryptedForDelegator`)
222
+ *
223
+ * @param loggedHcPartyId The logged DataOwner id or the id of his parent
224
+ * @param delegatorId The id of Delegator eg, the DataOwner where this AES exchange key is stored
225
+ * @param delegateHcPartyId The id of the delegate : the data owner for whom this aes exchange key has been created
226
+ * @param publicKey The public key of the delegator : A unique aes exchange key is created for each public key of the delegator. This is the public key corresponding to the encryptedHcPartyKeys
227
+ * @param encryptedHcPartyKeys The encryptedHcPartyKeys to be decrypted
228
+ * @param publicKeys The public keys for which we might have a private key
229
+ *
230
+ * @returns - **delegatorId** the input param `delegatorId`
231
+ * - **key** the decrypted `encryptedHcPartyKey`
232
+ */
233
+ decryptHcPartyKey(loggedHcPartyId, delegatorId, delegateHcPartyId, publicKey, encryptedHcPartyKeys, publicKeys) {
234
+ var _a;
235
+ return __awaiter(this, void 0, void 0, function* () {
236
+ if (!publicKeys.length) {
237
+ const reason = `Cannot decrypt RSA encrypted AES HcPartyKey from ${delegatorId} to ${delegateHcPartyId}: no public key`;
238
+ console.warn(reason);
239
+ throw new Error(reason);
240
+ }
241
+ const cacheKey = `${delegateHcPartyId}|${publicKey.slice(-32)}|${delegatorId}`;
242
+ const res = this.hcPartyKeysCache[cacheKey];
243
+ if (res) {
244
+ return res;
245
+ }
246
+ const result = yield publicKeys.reduce((res, pk) => __awaiter(this, void 0, void 0, function* () {
247
+ var _b, _c, _d;
248
+ const delegatorAndKeys = yield res;
249
+ if (delegatorAndKeys) {
250
+ return delegatorAndKeys;
251
+ }
252
+ const fingerprint = pk.slice(-32);
253
+ const keyPair = (_b = this.rsaKeyPairs[fingerprint]) !== null && _b !== void 0 ? _b : (yield this.cacheKeyPair(this.loadKeyPairNotImported(loggedHcPartyId, fingerprint)));
254
+ if (!keyPair) {
255
+ return;
256
+ }
257
+ // Due to past bugs the encryptedHcPartyKeys may contain the full key instead of just the fingerprint.
258
+ let encryptedHcPartyKey = (_c = encryptedHcPartyKeys[fingerprint]) !== null && _c !== void 0 ? _c : encryptedHcPartyKeys[pk];
259
+ if (!encryptedHcPartyKey) {
260
+ const delegate = yield this.getDataOwner(delegateHcPartyId, false); //it is faster to just try to decrypt if not in cache
261
+ if (!(delegate === null || delegate === void 0 ? void 0 : delegate.dataOwner) || ((_d = delegate.dataOwner.publicKey) === null || _d === void 0 ? void 0 : _d.endsWith(fingerprint))) {
262
+ encryptedHcPartyKey = encryptedHcPartyKeys[''];
263
+ }
264
+ else {
265
+ return;
266
+ }
267
+ }
268
+ try {
269
+ const decryptedAesExchangeKey = yield this._RSA.decrypt(keyPair.privateKey, (0, binary_utils_1.hex2ua)(encryptedHcPartyKey));
270
+ const importedAesExchangeKey = yield this._AES.importKey('raw', decryptedAesExchangeKey);
271
+ return (this.hcPartyKeysCache[cacheKey] = {
272
+ delegatorId: delegatorId,
273
+ key: importedAesExchangeKey,
274
+ rawKey: (0, binary_utils_1.ua2hex)(new Uint8Array(decryptedAesExchangeKey)),
275
+ });
276
+ }
277
+ catch (e) {
278
+ const reason = `Cannot decrypt RSA encrypted AES HcPartyKey from ${delegatorId} to ${delegateHcPartyId} for pubKey ${fingerprint}: impossible to decrypt`;
279
+ console.log(reason);
280
+ }
281
+ }), Promise.resolve(undefined));
282
+ const availablePublicKeys = publicKeys.filter((pk) => this.rsaKeyPairs[pk.slice(-32)]);
283
+ if (!result) {
284
+ //Try to find another key from the transfer keys
285
+ const hcp = (yield this.getDataOwner(loggedHcPartyId));
286
+ const candidates = Object.entries((_a = hcp.dataOwner.transferKeys) !== null && _a !== void 0 ? _a : {})
287
+ .filter(([fp, _]) => availablePublicKeys.some((pk) => pk.slice(-32) === fp.slice(-32))) // only keep keys that we will be able to decrypt
288
+ .flatMap(([pk, keys]) => Object.entries(keys).map(([k, v]) => [pk, k, v]))
289
+ .filter(([_, k]) => !publicKeys.some((apk) => apk.slice(-32) === k.slice(-32)));
290
+ if (candidates.length) {
291
+ const newPublicKeys = yield candidates.reduce((p, [decryptionKeyFingerprint, privateKeyFingerprint, encryptedPrivateKey]) => __awaiter(this, void 0, void 0, function* () {
292
+ var _e, _f;
293
+ const newKeys = yield p;
294
+ const aesExchangeKeys = (_e = Object.entries(hcp.dataOwner.aesExchangeKeys).find(([fp, _]) => fp.slice(-32) === privateKeyFingerprint.slice(-32))) === null || _e === void 0 ? void 0 : _e[1][loggedHcPartyId];
295
+ if (aesExchangeKeys) {
296
+ const encryptedAesExchangeKey = (_f = Object.entries(aesExchangeKeys).find(([fp, _]) => fp.slice(-32) === decryptionKeyFingerprint.slice(-32))) === null || _f === void 0 ? void 0 : _f[1];
297
+ if (encryptedAesExchangeKey) {
298
+ const keyPair = this.rsaKeyPairs[decryptionKeyFingerprint.slice(-32)];
299
+ if (!keyPair) {
300
+ return newKeys;
301
+ }
302
+ const decryptedAesExchangeKey = yield this._RSA.decrypt(keyPair.privateKey, (0, binary_utils_1.hex2ua)(encryptedAesExchangeKey));
303
+ const importedAesExchangeKey = yield this._AES.importKey('raw', decryptedAesExchangeKey);
304
+ const decryptedPrivateKey = yield this._AES.decrypt(importedAesExchangeKey, (0, binary_utils_1.hex2ua)(encryptedPrivateKey));
305
+ const newPublicKey = Object.keys(hcp.dataOwner.aesExchangeKeys).find((fp) => fp.slice(-32) === privateKeyFingerprint.slice(-32));
306
+ yield this.cacheKeyPair({
307
+ publicKey: (0, utils_1.spkiToJwk)((0, binary_utils_1.hex2ua)(newPublicKey)),
308
+ privateKey: (0, utils_1.pkcs8ToJwk)(decryptedPrivateKey),
309
+ });
310
+ return newKeys.concat([newPublicKey]);
311
+ }
312
+ }
313
+ return newKeys;
314
+ }), Promise.resolve([]));
315
+ if (newPublicKeys.length) {
316
+ return yield this.decryptHcPartyKey(loggedHcPartyId, delegatorId, delegateHcPartyId, publicKey, encryptedHcPartyKeys, newPublicKeys);
317
+ }
318
+ }
319
+ const reason = `Cannot decrypt RSA encrypted AES HcPartyKey from ${delegatorId} to ${delegateHcPartyId}: impossible to decrypt. No private key was found or could be used to decrypt the aes exchange keys`;
320
+ console.log(reason);
321
+ throw new Error(reason);
322
+ }
323
+ return result;
324
+ });
325
+ }
326
+ /**
327
+ * Cache the RSA private/public key pair for the HcP with the given id `hcPartyKeyOwner`
328
+ */
329
+ cacheKeyPair(keyPairInJwk) {
330
+ return this._RSA.importKeyPair('jwk', keyPairInJwk.privateKey, 'jwk', keyPairInJwk.publicKey).then((importedKeyPair) => {
331
+ const pk = (0, utils_1.jwk2spki)(keyPairInJwk.publicKey);
332
+ return (this.rsaKeyPairs[pk.slice(-32)] = importedKeyPair);
333
+ });
334
+ }
335
+ /**
336
+ * Gets the secret ID (SFKs) that should be used in the prescribed context (confidential or not) from decrypted SPKs of the given `parent`, decrypted by the HcP with the given `hcpartyId` AND by its HcP parents
337
+ * @param parent :the object of which delegations (SPKs) to decrypt
338
+ * @param hcpartyId :the id of the delegate HcP
339
+ * @param confidential :weather the key is going to be used for a confidential piece or data or not
340
+ * @returns - **extractedKeys** array containing secret IDs (SFKs) from decrypted SPKs, from both given HcP and its parents ; can contain duplicates
341
+ * - **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)
342
+ */
343
+ extractPreferredSfk(parent, hcpartyId, confidential) {
344
+ return __awaiter(this, void 0, void 0, function* () {
345
+ const secretForeignKeys = yield this.extractSFKsHierarchyFromDelegations(parent, hcpartyId);
346
+ const keys = secretForeignKeys
347
+ .filter(({ extractedKeys }) => extractedKeys.length > 0)
348
+ .filter((x, idx) => (confidential ? x.hcpartyId === hcpartyId : idx === 0))[0];
349
+ return ((keys &&
350
+ (confidential
351
+ ? keys.extractedKeys.find((k) => !secretForeignKeys.some(({ extractedKeys, hcpartyId: parentHcpId }) => hcpartyId !== parentHcpId && extractedKeys.includes(k)))
352
+ : keys.extractedKeys[0])) ||
353
+ undefined);
354
+ });
355
+ }
356
+ /**
357
+ * Gets an array of decrypted HcPartyKeys, shared between the delegate with ID `delegateHcPartyId` and the delegators in `delegatorsHcPartyIdsSet`
358
+ *
359
+ * 1. Get the keys for the delegateHealthCareParty (cache/backend).
360
+ * 2. For each key in the delegators, decrypt it with the delegate's private key
361
+ * 3. Filter out undefined keys and return them
362
+ *
363
+ * @param delegatorsHcPartyIdsSet array of delegator HcP IDs that could have delegated something to the HcP with ID `delegateHcPartyId`
364
+ * @param delegateHcPartyId the HcP for which the HcPs with IDs in `delegatorsHcPartyIdsSet` could have delegated something
365
+ * @param minCacheDurationInSeconds The minimum cache duration
366
+ * @returns - **delegatorId** : the id of the delegator HcP that shares the **key** with the `delegateHcPartyId`
367
+ * - **key** the decrypted HcPartyKey, shared between **delegatorId** and `delegateHcPartyId`
368
+ */
369
+ decryptAndImportAesHcPartyKeysForDelegators(delegatorsHcPartyIdsSet, delegateHcPartyId, minCacheDurationInSeconds = 60) {
370
+ return __awaiter(this, void 0, void 0, function* () {
371
+ const aesExchangeKeys = yield this.getEncryptedAesExchangeKeysForDelegate(delegateHcPartyId).then((delegatorIdsWithDelegateEncryptedHcPartyKeys) => __awaiter(this, void 0, void 0, function* () {
372
+ // [key: delegatorId] = delegateEncryptedHcPartyKey
373
+ // For each delegatorId, obtain the AES key (decrypted HcParty Key) shared with the delegate, decrypted by the delegate
374
+ return (yield Promise.all(delegatorsHcPartyIdsSet.map((delegatorId) => __awaiter(this, void 0, void 0, function* () {
375
+ const encryptedHcPartyKeysForPubKeyFingerprint = delegatorIdsWithDelegateEncryptedHcPartyKeys[delegatorId];
376
+ if (!encryptedHcPartyKeysForPubKeyFingerprint) {
377
+ return [];
378
+ }
379
+ const decryptedKeys = yield Promise.all(Object.entries(encryptedHcPartyKeysForPubKeyFingerprint).map(([delegatorPubKeyFinerprint, encryptedAesExchangeKeys]) => __awaiter(this, void 0, void 0, function* () {
380
+ try {
381
+ return yield this.decryptHcPartyKey(delegateHcPartyId, delegatorId, delegateHcPartyId, delegatorPubKeyFinerprint, encryptedAesExchangeKeys, Object.keys(this.rsaKeyPairs));
382
+ }
383
+ catch (e) {
384
+ console.log(`failed to decrypt hcPartyKey from ${delegatorId} to ${delegateHcPartyId}`);
385
+ return;
386
+ }
387
+ })));
388
+ return decryptedKeys.filter((x) => !!x);
389
+ })))).reduce((acc, x) => [...acc, ...x], []);
390
+ }));
391
+ if (aesExchangeKeys.length > 0) {
392
+ return aesExchangeKeys;
393
+ }
394
+ const nowTimestamp = +new Date();
395
+ if (!this.cacheLastDeletionTimestamp || (nowTimestamp - this.cacheLastDeletionTimestamp) / 1000 >= minCacheDurationInSeconds) {
396
+ delete this.hcPartyKeysRequestsCache[delegateHcPartyId];
397
+ this.cacheLastDeletionTimestamp = nowTimestamp;
398
+ return this.decryptAndImportAesHcPartyKeysForDelegators(delegatorsHcPartyIdsSet, delegateHcPartyId, minCacheDurationInSeconds);
399
+ }
400
+ return [];
401
+ });
402
+ }
403
+ /**
404
+ * 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)
405
+ *
406
+ * 1. Checks whether the delegations' object has a delegation for the
407
+ * given healthCarePartyId.
408
+ * 2. Enumerates all the delegators (delegation.owner) present in
409
+ * the delegations.
410
+ * 3. Decrypt's delegators' keys and returns them.
411
+ *
412
+ * @param dataOwnerId : the id of the delegate HCP
413
+ * @param delegations : delegations (can be SPKs, CFKs, EKs) for all delegates
414
+ * @param fallbackOnParent default true; use parent's healthCarePartyId in case there's no delegation for the `healthcarePartyId`
415
+ * @returns - **delegatorId** : the id of the delegator HcP that shares the **key** with the `healthcarePartyId`
416
+ * - **key** the decrypted HcPartyKey, shared between **delegatorId** and `healthcarePartyId`
417
+ */
418
+ getDecryptedAesExchangeKeysOfDelegateAndParentsFromGenericDelegations(dataOwnerId, delegations, fallbackOnParent = true) {
419
+ var _a;
420
+ return __awaiter(this, void 0, void 0, function* () {
421
+ const delegationsArray = (_a = delegations[dataOwnerId]) !== null && _a !== void 0 ? _a : [];
422
+ if (!delegationsArray.length && fallbackOnParent) {
423
+ const { dataOwner: hcp } = yield this.getDataOwner(dataOwnerId);
424
+ return hcp.parentId
425
+ ? yield this.getDecryptedAesExchangeKeysOfDelegateAndParentsFromGenericDelegations(hcp.parentId, delegations)
426
+ : [];
427
+ }
428
+ else {
429
+ const delegatorIds = new Set();
430
+ delegationsArray.forEach((del) => delegatorIds.add(del.owner));
431
+ return this.decryptAndImportAesHcPartyKeysForDelegators(Array.from(delegatorIds), dataOwnerId);
432
+ }
433
+ });
434
+ }
435
+ /**
436
+ * Retrieve the owner HealthCareParty key and use it to encrypt
437
+ * both the delegations (createdObject.id) and the cryptedForeignKeys
438
+ * (parentObject.id), and returns them in an object.
439
+ */
440
+ initObjectDelegations(createdObject, parentObject, ownerId, secretForeignKeyOfParent) {
441
+ return __awaiter(this, arguments, void 0, function* () {
442
+ const publicKeys = yield this.getPublicKeys();
443
+ this.throwDetailedExceptionForInvalidParameter('createdObject.id', createdObject.id, 'initObjectDelegations', arguments);
444
+ if (parentObject)
445
+ this.throwDetailedExceptionForInvalidParameter('parentObject.id', parentObject.id, 'initObjectDelegations', arguments);
446
+ const secretId = this.randomUuid();
447
+ return this.getDataOwner(ownerId).then(({ dataOwner: owner }) => __awaiter(this, void 0, void 0, function* () {
448
+ const { owner: modifiedOwner, aesExchangeKeys } = yield this.getOrCreateHcPartyKeys(owner, ownerId);
449
+ const importedAESHcPartyKey = yield this.decryptAnyAesExchangeKeyForOwner(aesExchangeKeys, ownerId, ownerId, ownerId, publicKeys);
450
+ const encryptedDelegation = yield this._AES.encrypt(importedAESHcPartyKey.key, (0, binary_utils_1.string2ua)(createdObject.id + ':' + secretId).buffer, importedAESHcPartyKey.rawKey);
451
+ const encryptedSecretForeignKey = parentObject
452
+ ? yield this._AES.encrypt(importedAESHcPartyKey.key, (0, binary_utils_1.string2ua)(createdObject.id + ':' + parentObject.id).buffer, importedAESHcPartyKey.rawKey)
453
+ : undefined;
454
+ return {
455
+ owner: modifiedOwner,
456
+ delegations: _.fromPairs([
457
+ [
458
+ ownerId,
459
+ [
460
+ {
461
+ owner: ownerId,
462
+ delegatedTo: ownerId,
463
+ key: (0, binary_utils_1.ua2hex)(encryptedDelegation),
464
+ },
465
+ ],
466
+ ],
467
+ ]),
468
+ cryptedForeignKeys: (encryptedSecretForeignKey
469
+ ? _.fromPairs([
470
+ [
471
+ ownerId,
472
+ [
473
+ {
474
+ owner: ownerId,
475
+ delegatedTo: ownerId,
476
+ key: (0, binary_utils_1.ua2hex)(encryptedSecretForeignKey),
477
+ },
478
+ ],
479
+ ],
480
+ ])
481
+ : {}) || {},
482
+ secretForeignKeys: (secretForeignKeyOfParent && [secretForeignKeyOfParent]) || [],
483
+ secretId: secretId,
484
+ };
485
+ }));
486
+ });
487
+ }
488
+ decryptAnyAesExchangeKeyForOwner(aesExchangeKeys, loggedHcPartyId, delegatorId, delegateHcPartyId, publicKeys) {
489
+ return __awaiter(this, void 0, void 0, function* () {
490
+ const importedAESHcPartyKey = yield Object.entries(aesExchangeKeys).reduce((acc, [publicKeyIdentifier, hcPartyKeys]) => __awaiter(this, void 0, void 0, function* () {
491
+ const accValue = yield acc;
492
+ if (accValue) {
493
+ return accValue;
494
+ }
495
+ try {
496
+ return yield this.decryptHcPartyKey(loggedHcPartyId, delegatorId, delegateHcPartyId, publicKeyIdentifier, hcPartyKeys, publicKeys);
497
+ }
498
+ catch (e) {
499
+ return undefined;
500
+ }
501
+ }), Promise.resolve(undefined));
502
+ if (!importedAESHcPartyKey) {
503
+ throw new Error(`No hcParty key can be decrypted from ${delegatorId} to ${delegateHcPartyId} using currently available private keys`);
504
+ }
505
+ return importedAESHcPartyKey;
506
+ });
507
+ }
508
+ /**
509
+ * Gets updated instances of SPKs and CKFs for the child object `modifiedObject`.
510
+ * These updated SPKs and CKFs contain new SPKs/CFKs to provide delegation from delegator HcP with id `ownerId` to delegate HcP with id `delegateId`
511
+ *
512
+ * 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;
513
+ * the `secretIdOfModifiedObject` is returned, unmodified, as `secretId`
514
+ * 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
515
+ * 3. creates a new delegation (Secret Primary Keys) on the `modifiedObject` encrypted with the HcPKey from owner to the delegate;
516
+ * 4. if `parentObject` != null, creates a new CFK on the `modifiedObject` encrypted with the HcPKey from owner to the delegate;
517
+ * 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`
518
+ * 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`
519
+ * 7. then some duplicates delegations (SPKs) and CKFs are removed
520
+ *
521
+ * @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
522
+ * @param parentObject : will NOT be mutated
523
+ * @param ownerId : the HcP id of the delegator
524
+ * @param delegateId : the HcP id of the delegate
525
+ * @param secretIdOfModifiedObject : the secret id used in the child object to generate its SPK
526
+ * @returns - **delegations** existing delegations (SPKs) of the `modifiedObject`, appended with results from step 5
527
+ * - **cryptedForeignKeys** existing CFKs of the `modifiedObject`, appended with results from steps 6
528
+ * - **secretId** which is the given input parameter `secretIdOfModifiedObject`
529
+ */
530
+ extendedDelegationsAndCryptedForeignKeys(
531
+ //TODO: suggested name: getExtendedChildObjectSPKandCFKwithDelegationFromDelegatorToDelegate
532
+ modifiedObject, parentObject, ownerId, delegateId, secretIdOfModifiedObject) {
533
+ this.throwDetailedExceptionForInvalidParameter('modifiedObject.id', modifiedObject.id, 'extendedDelegationsAndCryptedForeignKeys', arguments); //modifiedObject should never be null
534
+ if (parentObject)
535
+ this.throwDetailedExceptionForInvalidParameter('parentObject.id', parentObject === null || parentObject === void 0 ? void 0 : parentObject.id, 'extendedDelegationsAndCryptedForeignKeys', arguments);
536
+ this.throwDetailedExceptionForInvalidParameter('secretIdOfModifiedObject', secretIdOfModifiedObject, 'extendedDelegationsAndCryptedForeignKeys', arguments);
537
+ return this.getDataOwner(ownerId)
538
+ .then(({ dataOwner: owner }) => __awaiter(this, void 0, void 0, function* () {
539
+ const publicKeys = yield this.getPublicKeys();
540
+ const { owner: modifiedOwner, aesExchangeKeys } = yield this.getOrCreateHcPartyKeys(owner, delegateId);
541
+ const importedAESHcPartyKey = yield this.decryptAnyAesExchangeKeyForOwner(aesExchangeKeys, ownerId, delegateId, ownerId, publicKeys);
542
+ modifiedObject = (modifiedObject === null || modifiedObject === void 0 ? void 0 : modifiedObject.id) === owner.id ? modifiedOwner : modifiedObject;
543
+ return {
544
+ previousDecryptedDelegations: yield Promise.all(((modifiedObject.delegations || {})[delegateId] || []).map((d) => (d.key &&
545
+ d.owner === ownerId &&
546
+ this._AES.decrypt(importedAESHcPartyKey.key, (0, binary_utils_1.hex2ua)(d.key), importedAESHcPartyKey.rawKey).catch(() => {
547
+ console.log(`Cannot decrypt delegation from ${d.owner} to ${d.delegatedTo} for object with id ${modifiedObject.id}:`, modifiedObject);
548
+ return Promise.resolve();
549
+ })) ||
550
+ Promise.resolve())),
551
+ previousDecryptedCryptedForeignKeys: yield Promise.all(((modifiedObject.cryptedForeignKeys || {})[delegateId] || []).map((d) => (d.key &&
552
+ d.owner === ownerId &&
553
+ this._AES.decrypt(importedAESHcPartyKey.key, (0, binary_utils_1.hex2ua)(d.key), importedAESHcPartyKey.rawKey).catch(() => {
554
+ console.log(`Cannot decrypt cryptedForeignKeys from ${d.owner} to ${d.delegatedTo} for object with id ${modifiedObject.id}:`, modifiedObject);
555
+ return Promise.resolve();
556
+ })) ||
557
+ Promise.resolve())),
558
+ cryptedDelegation: yield this._AES.encrypt(importedAESHcPartyKey.key, (0, binary_utils_1.string2ua)(modifiedObject.id + ':' + secretIdOfModifiedObject).buffer, importedAESHcPartyKey.rawKey),
559
+ cryptedForeignKey: parentObject
560
+ ? yield this._AES.encrypt(importedAESHcPartyKey.key, (0, binary_utils_1.string2ua)(modifiedObject.id + ':' + parentObject.id).buffer, importedAESHcPartyKey.rawKey)
561
+ : undefined,
562
+ };
563
+ }))
564
+ .then(({ previousDecryptedDelegations, previousDecryptedCryptedForeignKeys, cryptedDelegation, cryptedForeignKey }) => {
565
+ //try to limit the extent of the modifications to the delegations by preserving the redundant delegation already present and removing duplicates
566
+ //For delegate delegateId, we create:
567
+ // 1. an array of objects { d : {owner,delegatedTo,encrypted(key)}} with one object for each existing delegation and the new key concatenated
568
+ // 2. an array of objects { k : decrypted(key)} with one object for the existing delegations and the new key concatenated
569
+ // We merge them to get one array of objects: { d: {owner,delegatedTo,encrypted(key)}, k: decrypted(key)}
570
+ const delegationCryptedDecrypted = _.merge(((modifiedObject.delegations || {})[delegateId] || []).map((d) => ({
571
+ d,
572
+ })), (previousDecryptedDelegations || []).map((dd) => (dd ? (0, binary_utils_1.ua2string)(dd) : null)).map((k) => ({ k })))
573
+ .filter(({ d, k }) => !!k || d.owner !== ownerId) //Only keep the ones created by us that can still be decrypted
574
+ .map(({ d, k }) => ({
575
+ d,
576
+ k: k || this.randomUuid(),
577
+ })) // Use some unique id that ensures the delegation not created by us are going to be held
578
+ .concat([
579
+ {
580
+ d: {
581
+ owner: ownerId,
582
+ delegatedTo: delegateId,
583
+ key: (0, binary_utils_1.ua2hex)(cryptedDelegation),
584
+ },
585
+ k: modifiedObject.id + ':' + secretIdOfModifiedObject,
586
+ },
587
+ ]);
588
+ const allDelegations = _.cloneDeep(modifiedObject.delegations || {});
589
+ //Only keep one version of the decrypted key
590
+ allDelegations[delegateId] = _.uniqBy(delegationCryptedDecrypted, (x) => x.k).map((x) => x.d);
591
+ const cryptedForeignKeysCryptedDecrypted = _.merge(((modifiedObject.cryptedForeignKeys || {})[delegateId] || []).map((d) => ({
592
+ d,
593
+ })), (previousDecryptedCryptedForeignKeys || []).map((dd) => (dd ? (0, binary_utils_1.ua2string)(dd) : null)).map((k) => ({ k })))
594
+ .filter(({ d, k }) => !!k || d.owner !== ownerId) //Only keep the ones created by us that can still be decrypted
595
+ .map(({ d, k }) => ({
596
+ d,
597
+ k: k || this.randomUuid(),
598
+ })) // Use some unique id that ensures the delegation not created by us are going to be held
599
+ .concat(cryptedForeignKey
600
+ ? [
601
+ {
602
+ d: {
603
+ owner: ownerId,
604
+ delegatedTo: delegateId,
605
+ key: (0, binary_utils_1.ua2hex)(cryptedForeignKey),
606
+ },
607
+ k: modifiedObject.id + ':' + (parentObject === null || parentObject === void 0 ? void 0 : parentObject.id),
608
+ },
609
+ ]
610
+ : []);
611
+ const allCryptedForeignKeys = _.cloneDeep(modifiedObject.cryptedForeignKeys || {});
612
+ if (cryptedForeignKeysCryptedDecrypted.length > 0) {
613
+ allCryptedForeignKeys[delegateId] = _.uniqBy(cryptedForeignKeysCryptedDecrypted, (x) => x.k).map((x) => x.d);
614
+ }
615
+ return {
616
+ modifiedObject,
617
+ delegations: allDelegations,
618
+ cryptedForeignKeys: allCryptedForeignKeys,
619
+ secretId: secretIdOfModifiedObject,
620
+ };
621
+ });
622
+ }
623
+ // What we need is to find aes exchange keys on the owner ! Even just with whom he shared information, we don't care about aes exchange keys
624
+ _getDelegateIdsOf(owner) {
625
+ var _a;
626
+ return __awaiter(this, void 0, void 0, function* () {
627
+ const mapOfAesExchKeysDelegates = Object.entries((_a = owner.aesExchangeKeys) !== null && _a !== void 0 ? _a : {}).reduce((map, [, aesExchKeys]) => map.concat(Object.keys(aesExchKeys).filter((delegateId) => !map.includes(delegateId))), []);
628
+ return owner.hcPartyKeys
629
+ ? mapOfAesExchKeysDelegates.concat(Object.keys(owner.hcPartyKeys).filter((delegateId) => !mapOfAesExchKeysDelegates.includes(delegateId)))
630
+ : mapOfAesExchKeysDelegates;
631
+ });
632
+ }
633
+ getEncryptedAesExchangeKeys(owner, delegateId) {
634
+ var _a, _b, _c;
635
+ return __awaiter(this, void 0, void 0, function* () {
636
+ const publicKeys = yield this.getPublicKeys();
637
+ const mapOfAesExchangeKeys = Object.entries((_a = owner.aesExchangeKeys) !== null && _a !== void 0 ? _a : {})
638
+ .filter((e) => e[1][delegateId] && Object.keys(e[1][delegateId]).some((k1) => publicKeys.some((pk) => pk.endsWith(k1))))
639
+ .reduce((map, e) => {
640
+ const candidates = Object.entries(e[1][delegateId]); //[fingerprint of delegate pub key, key], [fingerprint of owner pub key, key]
641
+ const [publicKeyFingerprint, encryptedAesExchangeKey] = candidates[candidates.findIndex(([k, v]) => publicKeys.some((pk) => pk.endsWith(k)))];
642
+ return Object.assign(Object.assign({}, map), { [e[0]]: { [publicKeyFingerprint]: encryptedAesExchangeKey } });
643
+ }, {});
644
+ if (!owner.publicKey || mapOfAesExchangeKeys[owner.publicKey] || !((_b = owner.hcPartyKeys) === null || _b === void 0 ? void 0 : _b[delegateId])) {
645
+ return mapOfAesExchangeKeys;
646
+ }
647
+ const delegate = (yield this.getDataOwner(delegateId)).dataOwner;
648
+ if (delegate.publicKey && publicKeys.includes(delegate.publicKey)) {
649
+ return Object.assign(Object.assign({}, mapOfAesExchangeKeys), { [owner.publicKey]: { [(_c = (yield this.getDataOwner(delegateId)).dataOwner.publicKey) === null || _c === void 0 ? void 0 : _c.slice(-32)]: owner.hcPartyKeys[delegateId][1] } });
650
+ }
651
+ else if (publicKeys.includes(owner.publicKey)) {
652
+ return Object.assign(Object.assign({}, mapOfAesExchangeKeys), { [owner.publicKey]: { [owner.publicKey.slice(-32)]: owner.hcPartyKeys[delegateId][0] } });
653
+ }
654
+ return mapOfAesExchangeKeys;
655
+ });
656
+ }
657
+ getOrCreateHcPartyKeys(owner, delegateId) {
658
+ return __awaiter(this, void 0, void 0, function* () {
659
+ const aesExchangeKeys = yield this.getEncryptedAesExchangeKeys(owner, delegateId);
660
+ if (Object.keys(aesExchangeKeys).length) {
661
+ return { owner, aesExchangeKeys };
662
+ }
663
+ const modifiedOwner = yield this.generateKeyForDelegate(owner.id, delegateId);
664
+ return { owner: modifiedOwner, aesExchangeKeys: yield this.getEncryptedAesExchangeKeys(modifiedOwner, delegateId) };
665
+ });
666
+ }
667
+ /**
668
+ * Retrieve the owners HealthCareParty key, decrypt it, and
669
+ * use it to encrypt & initialize the "encryptionKeys" object
670
+ * and return it.
671
+ * @param createdObject
672
+ * @param ownerId
673
+ */
674
+ initEncryptionKeys(createdObject, ownerId) {
675
+ this.throwDetailedExceptionForInvalidParameter('createdObject.id', createdObject.id, 'initEncryptionKeys', arguments);
676
+ const secretId = this.randomUuid();
677
+ return this.getDataOwner(ownerId).then(({ dataOwner: owner }) => __awaiter(this, void 0, void 0, function* () {
678
+ const publicKeys = yield this.getPublicKeys();
679
+ const { owner: modifiedOwner, aesExchangeKeys } = yield this.getOrCreateHcPartyKeys(owner, ownerId);
680
+ const importedAESHcPartyKey = yield this.decryptAnyAesExchangeKeyForOwner(aesExchangeKeys, ownerId, ownerId, ownerId, publicKeys);
681
+ const encryptedEncryptionKeys = yield this._AES.encrypt(importedAESHcPartyKey.key, (0, binary_utils_1.string2ua)(createdObject.id + ':' + secretId), importedAESHcPartyKey.rawKey);
682
+ return {
683
+ encryptionKeys: _.fromPairs([
684
+ [
685
+ ownerId,
686
+ [
687
+ {
688
+ owner: ownerId,
689
+ delegatedTo: ownerId,
690
+ key: (0, binary_utils_1.ua2hex)(encryptedEncryptionKeys),
691
+ },
692
+ ],
693
+ ],
694
+ ]),
695
+ secretId: secretId,
696
+ };
697
+ }));
698
+ }
699
+ /**
700
+ * Gets an updated instance of the EKs of `modifiedObject`.
701
+ * The updated EKs contain a new EK to provide delegation from delegator HcP with id `ownerId` to delegate HcP with id `delegateId`.
702
+ * @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
703
+ * @param ownerId : delegator HcP id
704
+ * @param delegateId : delegate HcP id
705
+ * @param secretEncryptionKeyOfObject : secret Id for the EK (Content Encryption Key)
706
+ * @returns
707
+ * - **encryptionKeys** existing EKs of the `modifiedObject`, appended with a new EK item (owner: `ownerId`, delegatedTo: `delegateId`, encrypted key with secretId:
708
+ * `secretEncryptionKeyOfObject` )
709
+ * - **secretId** which is the given input parameter `secretEncryptionKeyOfObject`
710
+ */
711
+ appendEncryptionKeys(
712
+ //TODO: suggested name: getExtendedEKwithDelegationFromDelegatorToDelegate
713
+ modifiedObject, ownerId, delegateId, secretEncryptionKeyOfObject) {
714
+ return __awaiter(this, arguments, void 0, function* () {
715
+ this.throwDetailedExceptionForInvalidParameter('modifiedObject.id', modifiedObject.id, 'appendEncryptionKeys', arguments); //modifiedObject should never be null
716
+ this.throwDetailedExceptionForInvalidParameter('secretEncryptionKeyOfObject', secretEncryptionKeyOfObject, 'appendEncryptionKeys', arguments);
717
+ const owner = (yield this.getDataOwner(ownerId)).dataOwner;
718
+ const publicKeys = yield this.getPublicKeys();
719
+ const { owner: modifiedOwner, aesExchangeKeys } = yield this.getOrCreateHcPartyKeys(owner, delegateId);
720
+ modifiedObject = (modifiedObject === null || modifiedObject === void 0 ? void 0 : modifiedObject.id) === owner.id ? modifiedOwner : modifiedObject;
721
+ const importedAESHcPartyKey = yield this.decryptAnyAesExchangeKeyForOwner(aesExchangeKeys, ownerId, ownerId, delegateId, publicKeys);
722
+ const previousDecryptedEncryptionKeys = yield Promise.all(((modifiedObject.encryptionKeys || {})[delegateId] || []).map((d) => (d.key &&
723
+ d.owner === ownerId &&
724
+ this._AES.decrypt(importedAESHcPartyKey.key, (0, binary_utils_1.hex2ua)(d.key), importedAESHcPartyKey.rawKey).catch(() => {
725
+ console.log(`Cannot decrypt encryption key from ${d.owner} to ${d.delegatedTo} for object with id ${modifiedObject.id}:`, modifiedObject);
726
+ return Promise.resolve();
727
+ })) ||
728
+ Promise.resolve()));
729
+ const encryptedEncryptionKey = yield this._AES.encrypt(importedAESHcPartyKey.key, (0, binary_utils_1.string2ua)(modifiedObject.id + ':' + secretEncryptionKeyOfObject));
730
+ //try to limit the extent of the modifications to the delegations by preserving the redundant encryption keys already present and removing duplicates
731
+ //For delegate delegateId, we create:
732
+ // 1. an array of objects { d : {owner,delegatedTo,encrypted(key)}} with one object for the existing encryption keys and the new key concatenated
733
+ // 2. an array of objects { k : decrypted(key)} with one object for the existing delegations and the new key concatenated
734
+ // We merge them to get one array of objects: { d: {owner,delegatedTo,encrypted(key)}, k: decrypted(key)}
735
+ const encryptionKeysCryptedDecrypted = _.merge(((modifiedObject.encryptionKeys || {})[delegateId] || []).map((d) => ({
736
+ d,
737
+ })), (previousDecryptedEncryptionKeys || []).map((dd) => (dd ? (0, binary_utils_1.ua2string)(dd) : null)).map((k) => ({ k })))
738
+ .filter(({ d, k }) => !!k || d.owner !== ownerId) //Only keep the ones created by us that can still be decrypted
739
+ .map(({ d, k }) => ({ d, k: k || this.randomUuid() }))
740
+ .concat([
741
+ {
742
+ d: {
743
+ owner: ownerId,
744
+ delegatedTo: delegateId,
745
+ key: (0, binary_utils_1.ua2hex)(encryptedEncryptionKey),
746
+ },
747
+ k: modifiedObject.id + ':' + secretEncryptionKeyOfObject,
748
+ },
749
+ ]);
750
+ const allEncryptionKeys = _.cloneDeep(modifiedObject.encryptionKeys || {});
751
+ allEncryptionKeys[delegateId] = _.uniqBy(encryptionKeysCryptedDecrypted, (x) => x.k).map((x) => x.d);
752
+ return {
753
+ modifiedObject: modifiedObject,
754
+ encryptionKeys: allEncryptionKeys,
755
+ secretId: secretEncryptionKeyOfObject,
756
+ };
757
+ });
758
+ }
759
+ /**
760
+ * 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`
761
+ * The SFKs of `child` are not updated, so this method assumes this is not the initial delegation on the `child` object
762
+ * The method also performs some deduplication of all types of delegations.
763
+ * @param parent : the parent object of `child`; will NOT be mutated
764
+ * @param child : the object that will be mutated and returned
765
+ * @param ownerId delegator HcP id
766
+ * @param delegateId delegate HcP id
767
+ * @param secretDelegationKey the secret Id used in the child object to generate the SPK
768
+ * @param secretEncryptionKey the secret Id used in the child object to generate the EK (Content Encryption Key)
769
+ * @returns - an updated `child` object that will contain updated SPKs, CFKs, EKs
770
+ * */
771
+ addDelegationsAndEncryptionKeys(
772
+ //TODO: suggested name: updateChildGenericDelegationsFromDelegatorToDelegate
773
+ parent, child, ownerId, delegateId, secretDelegationKey, secretEncryptionKey) {
774
+ return __awaiter(this, arguments, void 0, function* () {
775
+ if (parent)
776
+ this.throwDetailedExceptionForInvalidParameter('parent.id', parent.id, 'addDelegationsAndEncryptionKeys', arguments);
777
+ this.throwDetailedExceptionForInvalidParameter('child.id', child.id, 'addDelegationsAndEncryptionKeys', arguments);
778
+ const extendedChildObjectSPKsAndCFKs = secretDelegationKey
779
+ ? yield this.extendedDelegationsAndCryptedForeignKeys(child, parent, ownerId, delegateId, secretDelegationKey)
780
+ : { modifiedObject: child, delegations: {}, cryptedForeignKeys: {}, secretId: null };
781
+ const extendedChildObjectEKs = secretEncryptionKey
782
+ ? yield this.appendEncryptionKeys(extendedChildObjectSPKsAndCFKs.modifiedObject, ownerId, delegateId, secretEncryptionKey)
783
+ : { encryptionKeys: {}, modifiedObject: extendedChildObjectSPKsAndCFKs.modifiedObject };
784
+ const latestObject = extendedChildObjectEKs.modifiedObject;
785
+ return _.assign(latestObject, {
786
+ // Conservative version ... We might want to be more aggressive with the deduplication of keys
787
+ // For each delegate, we are going to concatenate to the src (the new delegations), the object in dest (the current delegations)
788
+ // for which we do not find an equivalent delegation (same delegator, same delegate)
789
+ delegations: _.assignWith(child.delegations, extendedChildObjectSPKsAndCFKs.delegations, (dest, src) => (src || []).concat(_.filter(dest, (d) => !src.some((s) => s.owner === d.owner && s.delegatedTo === d.delegatedTo)))),
790
+ cryptedForeignKeys: _.assignWith(child.cryptedForeignKeys, extendedChildObjectSPKsAndCFKs.cryptedForeignKeys, (dest, src) => (src || []).concat(_.filter(dest, (d) => !src.some((s) => s.owner === d.owner && s.delegatedTo === d.delegatedTo)))),
791
+ encryptionKeys: _.assignWith(child.encryptionKeys, extendedChildObjectEKs.encryptionKeys, (dest, src) => (src || []).concat(_.filter(dest, (d) => !src.some((s) => s.owner === d.owner && s.delegatedTo === d.delegatedTo)))),
792
+ });
793
+ });
794
+ }
795
+ /**
796
+ * 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
797
+ * @param document : the object of which delegations (SPKs) to decrypt
798
+ * @param hcpartyId : the id of the delegate HcP
799
+ * @returns - **extractedKeys** array containing secret IDs (SFKs) from decrypted SPKs, from both given HcP and its parents ; can contain duplicates
800
+ * - **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)
801
+ */
802
+ //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?
803
+ extractDelegationsSFKs(
804
+ //TODO: suggested name: getSecretIDsSPKofHcpAndParentsFromDocument
805
+ document, hcpartyId) {
806
+ if (!document || !hcpartyId) {
807
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId }); //TODO: thow exception instead?
808
+ }
809
+ const delegationsForAllDelegates = document.delegations;
810
+ if (!delegationsForAllDelegates || !Object.keys(delegationsForAllDelegates).length) {
811
+ console.log(`There is no delegation in document (${document.id})`);
812
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId });
813
+ }
814
+ return this.extractKeysFromDelegationsForHcpHierarchy(hcpartyId, document.id, delegationsForAllDelegates);
815
+ }
816
+ /**
817
+ * 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
818
+ * @param document : the object of which delegations (SPKs) to decrypt
819
+ * @param hcpartyId : the id of the delegate HcP
820
+ * @returns - **extractedKeys** array containing secret IDs (SFKs) from decrypted SPKs, from both given HcP and its parents ; can contain duplicates
821
+ * - **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)
822
+ */
823
+ extractSFKsHierarchyFromDelegations(document, hcpartyId) {
824
+ if (!document || !hcpartyId) {
825
+ return Promise.resolve([]);
826
+ }
827
+ const delegationsForAllDelegates = document.delegations;
828
+ if (!delegationsForAllDelegates || !Object.keys(delegationsForAllDelegates).length) {
829
+ console.log(`There is no delegation in document (${document.id})`);
830
+ return Promise.resolve([]);
831
+ }
832
+ return this.extractKeysHierarchyFromDelegationLikes(hcpartyId, document.id, delegationsForAllDelegates);
833
+ }
834
+ // noinspection JSUnusedGlobalSymbols
835
+ extractCryptedFKs(
836
+ //TODO: suggested name: getSecretIDsCFKofHcpAndParentsFromDocument
837
+ document, hcpartyId) {
838
+ if (!document || !document.cryptedForeignKeys) {
839
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId });
840
+ }
841
+ const cfksForAllDelegates = document.cryptedForeignKeys;
842
+ if (!cfksForAllDelegates || !Object.keys(cfksForAllDelegates).length) {
843
+ console.log(`There is no cryptedForeignKeys in document (${document.id})`);
844
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId });
845
+ }
846
+ return this.extractKeysFromDelegationsForHcpHierarchy(hcpartyId, document.id, cfksForAllDelegates);
847
+ }
848
+ extractEncryptionsSKs(
849
+ //TODO: suggested name: getSecretIDsEKofHcpAndParentsFromDocument
850
+ document, hcpartyId) {
851
+ if (!document.encryptionKeys) {
852
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId });
853
+ }
854
+ const eckeysForAllDelegates = document.encryptionKeys;
855
+ if (!eckeysForAllDelegates || !Object.keys(eckeysForAllDelegates).length) {
856
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId });
857
+ }
858
+ return this.extractKeysFromDelegationsForHcpHierarchy(hcpartyId, document.id, eckeysForAllDelegates);
859
+ }
860
+ extractDelegationsSFKsAndEncryptionSKs(ety, ownerId) {
861
+ const delegationsSfksOwnerPromise = this.extractDelegationsSFKs(ety, ownerId).then((xks) => xks.extractedKeys); //Will climb up hierarchy
862
+ const encryptionKeysOwnerPromise = this.extractEncryptionsSKs(ety, ownerId).then((xks) => xks.extractedKeys); //Will climb up hierarchy
863
+ return Promise.all([delegationsSfksOwnerPromise, encryptionKeysOwnerPromise]);
864
+ }
865
+ /**
866
+ * Get decrypted generic secret IDs (secretIdSPKs, parentIds, secretIdEKs) from generic delegations (SPKs, CFKs, EKs)
867
+ * 1. Get HealthCareParty from it's Id.
868
+ * 2. Decrypt the keys of the given HCP.
869
+ * 3. Decrypt the parent's key if it has parent.
870
+ * 4. Return the decrypted key corresponding to the Health Care Party.
871
+ * @param hcpartyId : the id of the delegate HcP (including its parents) for which to decrypt `extractedKeys`
872
+ * @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
873
+ * @param delegations : generic delegations (can be SPKs, CFKs, EKs) for all delegates from where to extract `extractedKeys`
874
+ * @returns - **extractedKeys** array containing secret IDs from decrypted generic delegations, from both HCP with given `hcpartyId` and its parents; can contain duplicates
875
+ * - **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)
876
+ */
877
+ //TODO: even if there are no delegations for parent HCP (but the parent exists), the returned hcpartyId will be the one of the parent
878
+ extractKeysHierarchyFromDelegationLikes(
879
+ //TODO suggested name: getSecretIdsOfHcpAndParentsFromGenericDelegations
880
+ hcpartyId, objectId, delegations) {
881
+ var _a;
882
+ return __awaiter(this, void 0, void 0, function* () {
883
+ const { dataOwner: hcp } = yield this.getDataOwner(hcpartyId);
884
+ const extractedKeys = [];
885
+ if ((_a = delegations[hcpartyId]) === null || _a === void 0 ? void 0 : _a.length) {
886
+ const decryptedAndImportedAesHcPartyKeys = yield this.getDecryptedAesExchangeKeysOfDelegateAndParentsFromGenericDelegations(hcpartyId, delegations, false);
887
+ const collatedAesKeysFromDelegatorToHcpartyId = decryptedAndImportedAesHcPartyKeys.reduce((map, k) => { var _a; return (Object.assign(Object.assign({}, map), { [k.delegatorId]: ((_a = map[k.delegatorId]) !== null && _a !== void 0 ? _a : []).concat([k]) })); }, {});
888
+ extractedKeys.push(...(yield this.decryptKeyInDelegationLikes(delegations[hcpartyId], collatedAesKeysFromDelegatorToHcpartyId, objectId)));
889
+ }
890
+ return hcp.parentId
891
+ ? [
892
+ ...(yield this.extractKeysHierarchyFromDelegationLikes(hcp.parentId, objectId, delegations)),
893
+ { extractedKeys: extractedKeys, hcpartyId: hcpartyId },
894
+ ]
895
+ : [{ extractedKeys: extractedKeys, hcpartyId: hcpartyId }];
896
+ });
897
+ }
898
+ /**
899
+ * Get decrypted generic secret IDs (secretIdSPKs, parentIds, secretIdEKs) from generic delegations (SPKs, CFKs, EKs)
900
+ * 1. Get Data Owner (HCP, Patient or Device) from it's Id.
901
+ * 2. Decrypt the keys of the given data owner.
902
+ * 3. Decrypt the parent's key if it has parent.
903
+ * 4. Return the decrypted key corresponding to the Health Care Party.
904
+ * @param dataOwnerId : the id of the delegate data owner (including its parents) for which to decrypt `extractedKeys`
905
+ * @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
906
+ * @param delegations : generic delegations (can be SPKs, CFKs, EKs) for all delegates from where to extract `extractedKeys`
907
+ * @returns - **extractedKeys** array containing secret IDs from decrypted generic delegations, from both data owner with given `dataOwnerId` and its parents; can contain duplicates
908
+ * - **dataOwnerId** the given `dataOwnerId` OR, if a parent exist, the data owner id of the top parent in the hierarchy (even if that parent has no delegations)
909
+ */
910
+ //TODO: even if there are no delegations for parent HCP (but the parent exists), the returned dataOwnerId will be the one of the parent
911
+ extractKeysFromDelegationsForHcpHierarchy(
912
+ //TODO suggested name: getSecretIdsOfHcpAndParentsFromGenericDelegations
913
+ dataOwnerId, objectId, delegations) {
914
+ return this.getDataOwner(dataOwnerId)
915
+ .then(({ dataOwner: hcp }) => (delegations[dataOwnerId] && delegations[dataOwnerId].length
916
+ ? this.getDecryptedAesExchangeKeysOfDelegateAndParentsFromGenericDelegations(dataOwnerId, delegations, false).then((decryptedAndImportedAesHcPartyKeys) => {
917
+ const collatedAesKeysFromDelegatorToHcpartyId = {};
918
+ decryptedAndImportedAesHcPartyKeys.forEach((k) => {
919
+ var _a;
920
+ ;
921
+ ((_a = collatedAesKeysFromDelegatorToHcpartyId[k.delegatorId]) !== null && _a !== void 0 ? _a : (collatedAesKeysFromDelegatorToHcpartyId[k.delegatorId] = [])).push(k);
922
+ });
923
+ return this.decryptKeyInDelegationLikes(delegations[dataOwnerId], collatedAesKeysFromDelegatorToHcpartyId, objectId);
924
+ })
925
+ : Promise.resolve([]))
926
+ .then((extractedKeys) => __awaiter(this, void 0, void 0, function* () {
927
+ if (extractedKeys.length == 0) {
928
+ return yield this._extractDelegationsKeysUsingDataOwnerDelegateAesExchangeKeys(hcp, delegations, objectId);
929
+ }
930
+ return extractedKeys;
931
+ }))
932
+ .then((extractedKeys) => __awaiter(this, void 0, void 0, function* () {
933
+ var _a;
934
+ const parentExtractedKeys = hcp.parentId
935
+ ? yield this.extractKeysFromDelegationsForHcpHierarchy(hcp.parentId, objectId, delegations)
936
+ : { extractedKeys: [], hcpartyId: undefined };
937
+ return { extractedKeys: extractedKeys.concat(parentExtractedKeys.extractedKeys), hcpartyId: (_a = parentExtractedKeys.hcpartyId) !== null && _a !== void 0 ? _a : dataOwnerId };
938
+ })))
939
+ .catch((e) => {
940
+ console.error(`DataOwner with id ${dataOwnerId} cannot be resolved`);
941
+ throw e;
942
+ });
943
+ }
944
+ /**
945
+ * This method covers the use case when a DataOwner found back access to its data, and needs to use the delegations of its delegates instead
946
+ * of its own ones
947
+ *
948
+ * @param dataOwner The current data owner from whom we want to decrypt the aesExchangeKeys
949
+ * @param delegations The object delegations to decrypt
950
+ * @param objectId The object to decrypt id
951
+ * @private
952
+ */
953
+ _extractDelegationsKeysUsingDataOwnerDelegateAesExchangeKeys(dataOwner, delegations, objectId) {
954
+ return __awaiter(this, void 0, void 0, function* () {
955
+ // Find other keys through aesExchangeKeys
956
+ const dataOwnerPubKeys = yield this.getPublicKeys();
957
+ const keysToDecrypt = (0, utils_1.fold)(Object.entries(dataOwner.aesExchangeKeys), {}, (acc, [pub, aesForPub]) => {
958
+ if (dataOwnerPubKeys.find((pubKey) => pubKey.slice(-32) == pub.slice(-32)) == undefined) {
959
+ // We get AES Keys only from delegates of keys we don't currently have
960
+ // Otherwise, decrypted AES Keys would have previously worked
961
+ Object.entries(aesForPub).forEach(([delegateId, aesKeys]) => {
962
+ if (delegateId != dataOwner.id) {
963
+ const aesAcc = {};
964
+ Object.entries(aesKeys)
965
+ .filter(([encrPubKey]) => dataOwnerPubKeys.some((pubKey) => pubKey.slice(-32) == encrPubKey))
966
+ .forEach(([pubKeyFingerprint, aesEncr]) => {
967
+ aesAcc[pubKeyFingerprint] = aesEncr;
968
+ });
969
+ if (acc[delegateId] == undefined) {
970
+ acc[delegateId] = {};
971
+ }
972
+ acc[delegateId][pub] = aesAcc;
973
+ }
974
+ });
975
+ }
976
+ return acc;
977
+ });
978
+ const decryptedAndImportedAesHcPartyKeys = yield (0, utils_1.foldAsync)(Object.entries(keysToDecrypt), [], (delKeysAcc, [delegateId, keysForDelegate]) => __awaiter(this, void 0, void 0, function* () {
979
+ try {
980
+ delKeysAcc.push(yield this.decryptAnyAesExchangeKeyForOwner(keysForDelegate, dataOwner.id, dataOwner.id, delegateId, dataOwnerPubKeys));
981
+ }
982
+ catch (e) {
983
+ console.log(`Could not decrypt aesExchangeKeys for delegate ${delegateId}`);
984
+ }
985
+ return delKeysAcc;
986
+ }));
987
+ const collatedAesKeysFromDelegatorToHcpartyId = decryptedAndImportedAesHcPartyKeys.reduce((map, k) => { var _a; return (Object.assign(Object.assign({}, map), { [k.delegatorId]: ((_a = map[k.delegatorId]) !== null && _a !== void 0 ? _a : []).concat([k]) })); }, {});
988
+ const delegateIdsWithNewExtractedAesKeys = Object.keys(keysToDecrypt);
989
+ const delegationsToDecrypt = (0, utils_1.fold)(Object.entries(delegations), [], (acc, [delegateId, del]) => {
990
+ if (delegateIdsWithNewExtractedAesKeys.find((id) => id == delegateId) != undefined) {
991
+ acc.push(...delegations[delegateId]);
992
+ }
993
+ return acc;
994
+ });
995
+ return this.decryptKeyInDelegationLikes(delegationsToDecrypt, collatedAesKeysFromDelegatorToHcpartyId, objectId);
996
+ });
997
+ }
998
+ /**
999
+ * Gets an array of generic secret IDs decrypted from a list of generic delegations (SPKs, CFKs, EKs) `delegationsArray`
1000
+ * 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
1001
+ * For each one of the delegations in the `delegationsArray`, it tries to decrypt with the decryptedHcPartyKey of the owner of that delegation;
1002
+ *
1003
+ * @param delegationsArray : generic delegations array
1004
+ * @param aesKeys : **key** HcP ids of delegators/owners in the `delegationsArray`, each with its own decryptedHcPartyKey
1005
+ * @param masterId : is the object id to which the generic delegation belongs to
1006
+ * - used only to check whether the object.id matches the one stored in the decrypted generic delegation item
1007
+ * - even if there's no match, the secret ID is kept as a valid result (and a message logged to console)
1008
+ * @returns array of generic secret IDs (secretIdSPK, parentId, secretIdEK)
1009
+ */
1010
+ decryptKeyInDelegationLikes(
1011
+ //TODO: suggested name: getSecretIdsFromGenericDelegations
1012
+ delegationsArray, aesKeysForDataOwnerId, masterId) {
1013
+ return __awaiter(this, void 0, void 0, function* () {
1014
+ const decryptPromises = delegationsArray.map((genericDelegationItem) => __awaiter(this, void 0, void 0, function* () {
1015
+ const aesKeys = aesKeysForDataOwnerId[genericDelegationItem.owner];
1016
+ if (aesKeys === null || aesKeys === void 0 ? void 0 : aesKeys.length) {
1017
+ return aesKeys.reduce((acc, aesKey) => __awaiter(this, void 0, void 0, function* () {
1018
+ const accValue = yield acc;
1019
+ if (accValue) {
1020
+ return accValue;
1021
+ }
1022
+ try {
1023
+ const decryptedGenericDelegationKey = yield this._AES.decrypt(aesKey.key, (0, binary_utils_1.hex2ua)(genericDelegationItem.key), aesKey.rawKey);
1024
+ const results = (0, binary_utils_1.ua2string)(decryptedGenericDelegationKey).split(':');
1025
+ const objectId = results[0]; //must be the ID of the object, for checksum
1026
+ const genericSecretId = results[1];
1027
+ const details = 'object ID: ' + masterId + '; generic delegation from ' + genericDelegationItem.owner + ' to ' + genericDelegationItem.delegatedTo;
1028
+ if (!objectId)
1029
+ console.warn('Object id is empty; ' + details);
1030
+ if (!genericSecretId)
1031
+ console.warn('Secret id is empty; ' + details);
1032
+ if (objectId !== masterId) {
1033
+ /*console.log(
1034
+ "Cryptographic mistake: object ID is not equal to the expected concatenated id within decrypted generic delegation. This may happen when patients have been merged; " +
1035
+ details
1036
+ )*/
1037
+ }
1038
+ return genericSecretId;
1039
+ }
1040
+ catch (err) {
1041
+ console.log(`Could not decrypt generic delegation in object with ID: ${masterId} from ${genericDelegationItem.owner} to ${genericDelegationItem.delegatedTo}: ${err}`);
1042
+ return undefined;
1043
+ }
1044
+ }), Promise.resolve(undefined));
1045
+ }
1046
+ else {
1047
+ console.log(`Could not find aes key for object with ID: ${masterId}`);
1048
+ }
1049
+ }));
1050
+ return Promise.all(decryptPromises).then((genericSecretId) => genericSecretId.filter((id) => !!id));
1051
+ });
1052
+ }
1053
+ getPublicKeyFromPrivateKey(privateKey, dataOwner) {
1054
+ var _a;
1055
+ if (!privateKey.n || !privateKey.e) {
1056
+ throw new Error('No public key can be deduced from incomplete private key');
1057
+ }
1058
+ const publicKeyFromPrivateKey = (0, utils_1.jwk2spki)(privateKey);
1059
+ const publicKeys = [dataOwner.publicKey].concat(Object.keys((_a = dataOwner.aesExchangeKeys) !== null && _a !== void 0 ? _a : {})).filter((x) => !!x);
1060
+ if (!publicKeys.length) {
1061
+ throw new Error('No public key has been defined for hcp');
1062
+ }
1063
+ const publicKey = publicKeys.find((it) => it === publicKeyFromPrivateKey);
1064
+ if (!publicKey) {
1065
+ throw new Error('No public key can be found for this private key');
1066
+ }
1067
+ return publicKey;
1068
+ }
1069
+ loadKeyPairsAsTextInBrowserLocalStorage(healthcarePartyId, privateKey) {
1070
+ return __awaiter(this, void 0, void 0, function* () {
1071
+ const { dataOwner } = yield this.getDataOwner(healthcarePartyId);
1072
+ const privateKeyInJwk = (0, utils_1.pkcs8ToJwk)(privateKey);
1073
+ const publicKey = this.getPublicKeyFromPrivateKey(privateKeyInJwk, dataOwner);
1074
+ const keyPair = yield this._RSA.importKeyPair('jwk', privateKeyInJwk, 'jwk', (0, utils_1.spkiToJwk)((0, binary_utils_1.hex2ua)(publicKey)));
1075
+ this.rsaKeyPairs[publicKey.slice(-32)] = keyPair;
1076
+ const exportedKeyPair = yield this._RSA.exportKeys(keyPair, 'jwk', 'jwk');
1077
+ return this._keyStorage.storeKeyPair(`${this.rsaLocalStoreIdPrefix}${healthcarePartyId}.${publicKey.slice(-32)}`, exportedKeyPair);
1078
+ });
1079
+ }
1080
+ loadKeyPairsAsJwkInBrowserLocalStorage(healthcarePartyId, privateKey) {
1081
+ return __awaiter(this, void 0, void 0, function* () {
1082
+ const { dataOwner } = yield this.getDataOwner(healthcarePartyId);
1083
+ if ((!privateKey.n || !privateKey.e) && dataOwner.publicKey) {
1084
+ //Fallback on default publicKey
1085
+ console.warn('An incomplete key has been completed using the default public key of the data owner');
1086
+ const publicKeyInJwk = (0, utils_1.spkiToJwk)((0, binary_utils_1.hex2ua)(dataOwner.publicKey));
1087
+ privateKey.n = publicKeyInJwk.n;
1088
+ privateKey.e = publicKeyInJwk.e;
1089
+ }
1090
+ const publicKey = this.getPublicKeyFromPrivateKey(privateKey, dataOwner);
1091
+ const keyPair = yield this._RSA.importKeyPair('jwk', privateKey, 'jwk', (0, utils_1.spkiToJwk)((0, binary_utils_1.hex2ua)(publicKey)));
1092
+ this.rsaKeyPairs[publicKey.slice(-32)] = keyPair;
1093
+ const exportedKeyPair = yield this._RSA.exportKeys(keyPair, 'jwk', 'jwk');
1094
+ return this._keyStorage.storeKeyPair(`${this.rsaLocalStoreIdPrefix}${healthcarePartyId}.${publicKey.slice(-32)}`, exportedKeyPair);
1095
+ });
1096
+ }
1097
+ // noinspection JSUnusedGlobalSymbols
1098
+ loadKeyPairsInBrowserLocalStorage(healthcarePartyId, file) {
1099
+ const fr = new FileReader();
1100
+ return new Promise((resolve, reject) => {
1101
+ fr.onerror = reject;
1102
+ fr.onabort = reject;
1103
+ fr.onload = (e) => {
1104
+ //TODO remove any
1105
+ const privateKey = e.target.result;
1106
+ this.loadKeyPairsAsTextInBrowserLocalStorage(healthcarePartyId, (0, binary_utils_1.hex2ua)(privateKey))
1107
+ .then(() => resolve())
1108
+ .catch(reject);
1109
+ };
1110
+ fr.readAsText(file);
1111
+ });
1112
+ }
1113
+ // noinspection JSUnusedGlobalSymbols
1114
+ saveKeychainInBrowserLocalStorage(id, keychain) {
1115
+ this._storage.setItem(this.keychainLocalStoreIdPrefix + id, (0, binary_utils_1.b2a)(new Uint8Array(keychain).reduce((data, byte) => data + String.fromCharCode(byte), '')));
1116
+ }
1117
+ saveKeychainInBrowserLocalStorageAsBase64(id, keyChainB64) {
1118
+ this._storage.setItem(this.keychainLocalStoreIdPrefix + id, keyChainB64);
1119
+ }
1120
+ // noinspection JSUnusedGlobalSymbols
1121
+ saveKeychainValidityDateInBrowserLocalStorage(id, date) {
1122
+ if (!id)
1123
+ return;
1124
+ if (!date) {
1125
+ this._storage.deleteItem(this.keychainValidityDateLocalStoreIdPrefix + id);
1126
+ }
1127
+ else {
1128
+ this._storage.setItem(this.keychainValidityDateLocalStoreIdPrefix + id, date);
1129
+ }
1130
+ }
1131
+ /**
1132
+ * Populate the HCP.options dict with an encrypted eHealth certificate and unencryped expiry date.
1133
+ * Any potentially unencrypted certificates will be pruned from the HCP.
1134
+ * @param hcpId Id of the hcp to modify
1135
+ * @returns modified HCP
1136
+ */
1137
+ saveKeyChainInHCPFromLocalStorage(hcpId) {
1138
+ return __awaiter(this, void 0, void 0, function* () {
1139
+ return yield this.hcpartyBaseApi.getHealthcareParty(hcpId).then((hcp) => __awaiter(this, void 0, void 0, function* () {
1140
+ let aesKey = null;
1141
+ try {
1142
+ aesKey = _.find(yield this.decryptAndImportAesHcPartyKeysForDelegators([hcp.id], hcp.id), (delegator) => delegator.delegatorId === hcp.id).key;
1143
+ }
1144
+ catch (e) {
1145
+ console.error('Error while importing the AES key.');
1146
+ }
1147
+ if (!aesKey) {
1148
+ console.error('No encryption key!');
1149
+ }
1150
+ const opts = hcp.options || {};
1151
+ const crt = this.getKeychainInBrowserLocalStorageAsBase64(hcp.id);
1152
+ if (!!aesKey && !!crt) {
1153
+ let crtEncrypted = null;
1154
+ try {
1155
+ crtEncrypted = yield this.AES.encrypt(aesKey, new Uint8Array((0, binary_utils_1.string2ua)(atob(crt))));
1156
+ }
1157
+ catch (e) {
1158
+ console.error('Error while encrypting the certificate', e);
1159
+ }
1160
+ // add the encrypted certificate to the options
1161
+ _.set(opts, this.hcpPreferenceKeyEhealthCert, (0, binary_utils_1.ua2string)(new Uint8Array(crtEncrypted)));
1162
+ }
1163
+ const crtValidityDate = this.getKeychainValidityDateInBrowserLocalStorage(hcp.id);
1164
+ if (!!crtValidityDate) {
1165
+ _.set(opts, this.hcpPreferenceKeyEhealthCertDate, crtValidityDate);
1166
+ }
1167
+ hcp.options = opts;
1168
+ return hcp;
1169
+ }));
1170
+ });
1171
+ }
1172
+ importKeychainInBrowserFromHCP(hcpId) {
1173
+ return this.hcpartyBaseApi.getHealthcareParty(hcpId).then((hcp) => __awaiter(this, void 0, void 0, function* () {
1174
+ let crtCryp = null;
1175
+ if (!!hcp.options && !!hcp.options[this.hcpPreferenceKeyEhealthCert]) {
1176
+ crtCryp = (0, binary_utils_1.string2ua)(hcp.options[this.hcpPreferenceKeyEhealthCert]);
1177
+ }
1178
+ const crtValidityDate = _.get(hcp.options, this.hcpPreferenceKeyEhealthCertDate);
1179
+ // store the validity date
1180
+ if (!!crtValidityDate) {
1181
+ this.saveKeychainValidityDateInBrowserLocalStorage(hcp.id, crtValidityDate);
1182
+ }
1183
+ let crt = null;
1184
+ let decryptionKey = null;
1185
+ try {
1186
+ decryptionKey = _.find(yield this.decryptAndImportAesHcPartyKeysForDelegators([hcp.id], hcp.id), (delegator) => delegator.delegatorId === hcp.id).key;
1187
+ }
1188
+ catch (e) {
1189
+ console.error('Error while importing the AES key.');
1190
+ }
1191
+ if (!decryptionKey) {
1192
+ throw new Error('No encryption key! eHealth certificate cannot be decrypted.');
1193
+ }
1194
+ if (!!crtCryp && decryptionKey) {
1195
+ try {
1196
+ crt = yield this.AES.decrypt(decryptionKey, crtCryp);
1197
+ }
1198
+ catch (e) {
1199
+ console.error(e);
1200
+ }
1201
+ }
1202
+ if (!crt) {
1203
+ throw new Error(`Error while saving certificate in browser local storage! Hcp ${hcp.id} has no certificate.`);
1204
+ }
1205
+ else {
1206
+ this.saveKeychainInBrowserLocalStorageAsBase64(hcp.id, btoa(String.fromCharCode.apply(null, Array.from(new Uint8Array(crt)))));
1207
+ }
1208
+ return;
1209
+ }));
1210
+ }
1211
+ /**
1212
+ * Synchronizes the eHealth certificate from the database into the LocalStorage, returning information on the presence
1213
+ * of certificate data in either place.
1214
+ *
1215
+ * @param hcpId The healthcare party id
1216
+ * @returns A Promise for an object that represents the existence of a certificate in local storage and in the DB,
1217
+ * through the two boolean properties "local" and "remote".
1218
+ */
1219
+ syncEhealthCertificateFromDatabase(hcpId) {
1220
+ return this.hcpartyBaseApi.getHealthcareParty(hcpId).then((hcp) => {
1221
+ const remoteCertificate = _.get(hcp.options, this.hcpPreferenceKeyEhealthCert);
1222
+ const localCertificate = this.getKeychainInBrowserLocalStorageAsBase64(hcp.id);
1223
+ if (remoteCertificate) {
1224
+ return this.importKeychainInBrowserFromHCP(hcp.id)
1225
+ .then(() => ({ local: true, remote: true }))
1226
+ .catch(() => ({ local: !!localCertificate, remote: true }));
1227
+ }
1228
+ else {
1229
+ return { local: !!localCertificate, remote: !!remoteCertificate };
1230
+ }
1231
+ });
1232
+ }
1233
+ getKeychainInBrowserLocalStorageAsBase64(id) {
1234
+ return this._storage.getItem(this.keychainLocalStoreIdPrefix + id);
1235
+ }
1236
+ getKeychainValidityDateInBrowserLocalStorage(id) {
1237
+ return this._storage.getItem(this.keychainValidityDateLocalStoreIdPrefix + id);
1238
+ }
1239
+ // noinspection JSUnusedGlobalSymbols
1240
+ loadKeychainFromBrowserLocalStorage(id) {
1241
+ const lsItem = this._storage.getItem(this.keychainLocalStoreIdPrefix + id);
1242
+ return lsItem !== undefined ? (0, binary_utils_1.b64_2uas)(lsItem) : null;
1243
+ }
1244
+ /**
1245
+ * loads the RSA key pair (hcparty) in JWK from local storage, not imported
1246
+ *
1247
+ * @param id doc id - hcpartyId
1248
+ * @param publicKeyFingerPrint the 32 last characters of public key this private key is associated with
1249
+ * @returns {Object} it is in JWK - not imported
1250
+ */
1251
+ loadKeyPairNotImported(id, publicKeyFingerPrint) {
1252
+ var _a;
1253
+ if (typeof Storage === 'undefined') {
1254
+ console.log('Your browser does not support HTML5 Browser Local Storage !');
1255
+ throw 'Your browser does not support HTML5 Browser Local Storage !';
1256
+ }
1257
+ //TODO decryption
1258
+ const item = publicKeyFingerPrint
1259
+ ? (_a = this._keyStorage.getKeypair(this.rsaLocalStoreIdPrefix + id + '.' + publicKeyFingerPrint.slice(-32))) !== null && _a !== void 0 ? _a : this._keyStorage.getKeypair(this.rsaLocalStoreIdPrefix + id)
1260
+ : this._keyStorage.getKeypair(this.rsaLocalStoreIdPrefix + id);
1261
+ if (!item) {
1262
+ console.warn(`No key can be found in local storage for id ${id} and publicKeyFingerPrint ${publicKeyFingerPrint}`);
1263
+ }
1264
+ return item;
1265
+ }
1266
+ /**
1267
+ * Loads and imports the RSA key pair (hcparty) from local storage
1268
+ *
1269
+ * @param id doc id - hcPartyId
1270
+ * @returns {Promise} -> {CryptoKey} - imported RSA
1271
+ */
1272
+ loadKeyPairImported(id) {
1273
+ return __awaiter(this, void 0, void 0, function* () {
1274
+ let jwkKeyPair = this._keyStorage.getKeypair(this.rsaLocalStoreIdPrefix + id);
1275
+ if (!jwkKeyPair) {
1276
+ const { dataOwner } = yield this.getDataOwner(id);
1277
+ if (dataOwner.publicKey) {
1278
+ jwkKeyPair = this._keyStorage.getKeypair(this.rsaLocalStoreIdPrefix + id + '.' + dataOwner.publicKey.slice(-32));
1279
+ }
1280
+ else {
1281
+ console.warn('Attempting to load default public key for data owner without default public key');
1282
+ }
1283
+ }
1284
+ if (jwkKeyPair !== undefined) {
1285
+ if (jwkKeyPair.publicKey && jwkKeyPair.privateKey) {
1286
+ return yield this._RSA.importKeyPair('jwk', jwkKeyPair.privateKey, 'jwk', jwkKeyPair.publicKey).catch((err) => {
1287
+ console.error('Error in RSA.importKeyPair: ' + err);
1288
+ throw err;
1289
+ });
1290
+ }
1291
+ else {
1292
+ const message = 'Error in RSA.importKeyPair: Invalid key';
1293
+ console.error(message);
1294
+ throw Error(message);
1295
+ }
1296
+ }
1297
+ else {
1298
+ const message = 'Error in RSA.importKeyPair: Missing key';
1299
+ console.error(message);
1300
+ throw Error(message);
1301
+ }
1302
+ });
1303
+ }
1304
+ /**
1305
+ * When a user lost his keys, people to whom he shared information may call this method to give access back to him, re-encrypting their common
1306
+ * AES key using the new user public key.
1307
+ *
1308
+ * @param accessGiver User, in charge of giving access back to the person who previously gave him some access (should be the current user)
1309
+ * @param ownerId Id of the data owner to which we would like to get access back
1310
+ * @param ownerNewPublicKey New Data Owner Public Key we want to use to re-encrypt previously created AES key
1311
+ */
1312
+ giveAccessBackTo(accessGiver, ownerId, ownerNewPublicKey) {
1313
+ var _a, _b;
1314
+ return __awaiter(this, void 0, void 0, function* () {
1315
+ const newPubKeyCryptoKey = yield this._RSA.importKey('spki', (0, binary_utils_1.hex2ua)(ownerNewPublicKey), ['encrypt']);
1316
+ const giverDoId = (_b = (_a = accessGiver.healthcarePartyId) !== null && _a !== void 0 ? _a : accessGiver.patientId) !== null && _b !== void 0 ? _b : accessGiver.deviceId;
1317
+ if (!giverDoId) {
1318
+ throw new Error(`Access giver ${accessGiver.id} must be a data Owner`);
1319
+ }
1320
+ const giverDoKeys = yield this.getDataOwner(giverDoId).then((doData) => { var _a; return [doData.dataOwner.publicKey, ...Object.keys((_a = doData.dataOwner.aesExchangeKeys) !== null && _a !== void 0 ? _a : {})].filter((x) => !!x); });
1321
+ const giveAccessBackToExchangeKey = (exchangeKeys, delegatorId, // Getter for getter exchange keys, giver for giver exchange keys
1322
+ delegateId // Giver for getter exchange keys, getter for giver exchange keys
1323
+ ) => __awaiter(this, void 0, void 0, function* () {
1324
+ const updatedExchangeKeys = _.cloneDeep(exchangeKeys);
1325
+ for (const [publicKey, mapsByDelegate] of Object.entries(updatedExchangeKeys)) {
1326
+ const mapOfDelegate = mapsByDelegate[delegateId];
1327
+ if (!!mapOfDelegate && !mapOfDelegate[ownerNewPublicKey.slice(-32)]) {
1328
+ const decryptedKey = yield this.decryptHcPartyKey(giverDoId, delegatorId, delegateId, publicKey, mapOfDelegate, giverDoKeys)
1329
+ .then((x) => x === null || x === void 0 ? void 0 : x.rawKey)
1330
+ .catch(() => undefined);
1331
+ if (decryptedKey) {
1332
+ mapOfDelegate[ownerNewPublicKey.slice(-32)] = yield this.encryptAesKeyOnlyForProvidedKeys(decryptedKey, delegateId, [
1333
+ newPubKeyCryptoKey,
1334
+ ]).then((encrAes) => Object.values(Object.values(encrAes)[0])[0]);
1335
+ }
1336
+ }
1337
+ }
1338
+ return updatedExchangeKeys;
1339
+ });
1340
+ yield (0, utils_1.retry)(() => __awaiter(this, void 0, void 0, function* () {
1341
+ var _c;
1342
+ const getterDo = yield this.getDataOwner(ownerId);
1343
+ const updatedGetterKeys = yield giveAccessBackToExchangeKey((_c = getterDo.dataOwner.aesExchangeKeys) !== null && _c !== void 0 ? _c : {}, ownerId, giverDoId);
1344
+ yield this._saveDataOwner({
1345
+ type: getterDo.type,
1346
+ dataOwner: Object.assign(Object.assign({}, getterDo.dataOwner), { aesExchangeKeys: updatedGetterKeys }),
1347
+ });
1348
+ }), 3, 5000, 1);
1349
+ yield (0, utils_1.retry)(() => __awaiter(this, void 0, void 0, function* () {
1350
+ var _d;
1351
+ const giverDo = yield this.getDataOwner(giverDoId);
1352
+ const updatedGiverKeys = yield giveAccessBackToExchangeKey((_d = giverDo.dataOwner.aesExchangeKeys) !== null && _d !== void 0 ? _d : {}, giverDoId, ownerId);
1353
+ yield this._saveDataOwner({
1354
+ type: giverDo.type,
1355
+ dataOwner: Object.assign(Object.assign({}, giverDo.dataOwner), { aesExchangeKeys: updatedGiverKeys }),
1356
+ });
1357
+ }), 3, 5000, 1);
1358
+ });
1359
+ }
1360
+ addNewKeyPairForOwnerId(maintenanceTasksApi, user, ownerId, generateTransferKey = true, sendMaintenanceTasks = true) {
1361
+ return __awaiter(this, void 0, void 0, function* () {
1362
+ return this.addNewKeyPairForOwner(maintenanceTasksApi, user, yield this.getDataOwner(ownerId), generateTransferKey, sendMaintenanceTasks);
1363
+ });
1364
+ }
1365
+ addNewKeyPairForOwner(maintenanceTasksApi, user, cdo, generateTransferKey = true, sendMaintenanceTasks = true) {
1366
+ return __awaiter(this, void 0, void 0, function* () {
1367
+ const generatedKeypair = yield this.RSA.generateKeyPair();
1368
+ return this.addKeyPairForOwner(maintenanceTasksApi, user, cdo, generatedKeypair, generateTransferKey, sendMaintenanceTasks);
1369
+ });
1370
+ }
1371
+ addRawKeyPairForOwnerId(maintenanceTasksApi, user, ownerId, keypair, generateTransferKey = true, sendMaintenanceTasks = true) {
1372
+ return __awaiter(this, void 0, void 0, function* () {
1373
+ return this.addRawKeyPairForOwner(maintenanceTasksApi, user, yield this.getDataOwner(ownerId), keypair, generateTransferKey, sendMaintenanceTasks);
1374
+ });
1375
+ }
1376
+ addRawKeyPairForOwner(maintenanceTasksApi, user, cdo, keypair, generateTransferKey = true, sendMaintenanceTasks = true) {
1377
+ return __awaiter(this, void 0, void 0, function* () {
1378
+ const importedPrivateKey = yield this._RSA.importKey('pkcs8', (0, binary_utils_1.hex2ua)(keypair.privateKey), ['decrypt']);
1379
+ const importedPublicKey = yield this._RSA.importKey('spki', (0, binary_utils_1.hex2ua)(keypair.publicKey), ['encrypt']);
1380
+ return this.addKeyPairForOwner(maintenanceTasksApi, user, cdo, { publicKey: importedPublicKey, privateKey: importedPrivateKey }, generateTransferKey, sendMaintenanceTasks);
1381
+ });
1382
+ }
1383
+ addKeyPairForOwner(maintenanceTasksApi, user, cdo, keypair, generateTransferKey = true, sendMaintenanceTasks = true) {
1384
+ return __awaiter(this, void 0, void 0, function* () {
1385
+ const publicKeyHex = (0, binary_utils_1.ua2hex)(yield this.RSA.exportKey(keypair.publicKey, 'spki'));
1386
+ const gen = (yield this._AES.generateCryptoKey(true));
1387
+ yield this.cacheKeyPair({
1388
+ publicKey: yield this.RSA.exportKey(keypair.publicKey, 'jwk'),
1389
+ privateKey: yield this.RSA.exportKey(keypair.privateKey, 'jwk'),
1390
+ });
1391
+ const { type: ownerType, dataOwner: ownerToUpdate } = yield this.createOrUpdateAesExchangeKeysFor(cdo, gen, {
1392
+ pubKey: keypair.publicKey,
1393
+ privKey: keypair.privateKey,
1394
+ }).then((dataOwnerWithUpdatedAesKeys) => __awaiter(this, void 0, void 0, function* () {
1395
+ return generateTransferKey
1396
+ ? yield this.createOrUpdateTransferKeysFor(dataOwnerWithUpdatedAesKeys, gen, { pubKey: keypair.publicKey, privKey: keypair.privateKey })
1397
+ : dataOwnerWithUpdatedAesKeys;
1398
+ }));
1399
+ const modifiedDataOwnerAndType = yield this._saveDataOwner({ type: ownerType, dataOwner: ownerToUpdate });
1400
+ const sentMaintenanceTasks = sendMaintenanceTasks
1401
+ ? yield this.sendMaintenanceTasks(maintenanceTasksApi, user, modifiedDataOwnerAndType.dataOwner, keypair.publicKey)
1402
+ : [];
1403
+ return {
1404
+ dataOwner: sentMaintenanceTasks.length
1405
+ ? yield this.retrieveDataOwnerInfoAfterPotentialUpdate(modifiedDataOwnerAndType.dataOwner)
1406
+ : modifiedDataOwnerAndType.dataOwner,
1407
+ publicKey: publicKeyHex,
1408
+ privateKey: (0, binary_utils_1.ua2hex)((yield this.RSA.exportKey(keypair.privateKey, 'pkcs8'))),
1409
+ };
1410
+ });
1411
+ }
1412
+ _saveDataOwner(dataOwner) {
1413
+ return __awaiter(this, void 0, void 0, function* () {
1414
+ const ownerType = dataOwner.type;
1415
+ const ownerToUpdate = dataOwner.dataOwner;
1416
+ return ownerType === 'hcp'
1417
+ ? yield (this.dataOwnerCache[ownerToUpdate.id] = this.hcpartyBaseApi
1418
+ .modifyHealthcareParty(ownerToUpdate)
1419
+ .then((x) => ({ type: 'hcp', dataOwner: x })))
1420
+ : ownerType === 'patient'
1421
+ ? yield (this.dataOwnerCache[ownerToUpdate.id] = this.patientBaseApi
1422
+ .modifyPatient(ownerToUpdate)
1423
+ .then((x) => ({ type: 'patient', dataOwner: x })))
1424
+ : yield (this.dataOwnerCache[ownerToUpdate.id] = this.deviceBaseApi
1425
+ .updateDevice(ownerToUpdate)
1426
+ .then((x) => ({ type: 'device', dataOwner: x })));
1427
+ });
1428
+ }
1429
+ createOrUpdateAesExchangeKeysFor(cdo, decryptedAesExchangeKey, keyToEncrypt) {
1430
+ var _a;
1431
+ return __awaiter(this, void 0, void 0, function* () {
1432
+ const publicKeyHex = (0, binary_utils_1.ua2hex)(yield this.RSA.exportKey(keyToEncrypt.pubKey, 'spki'));
1433
+ const existingAesExchangeKeys = (_a = cdo.dataOwner.aesExchangeKeys) !== null && _a !== void 0 ? _a : {};
1434
+ existingAesExchangeKeys[publicKeyHex] = yield this.encryptAesKeyFor(decryptedAesExchangeKey, cdo.dataOwner, keyToEncrypt.pubKey);
1435
+ return { type: cdo.type, dataOwner: Object.assign(Object.assign({}, cdo.dataOwner), { aesExchangeKeys: existingAesExchangeKeys }) };
1436
+ });
1437
+ }
1438
+ createOrUpdateTransferKeysFor(dataOwner, decryptedAesExchangeKey, keyToEncrypt) {
1439
+ var _a;
1440
+ return __awaiter(this, void 0, void 0, function* () {
1441
+ const pubKeyToEncryptHex = (0, binary_utils_1.ua2hex)(yield this.RSA.exportKey(keyToEncrypt.pubKey, 'spki'));
1442
+ const encryptedKey = (0, binary_utils_1.ua2hex)(yield this._AES.encrypt(yield this._AES.importKey('raw', (0, binary_utils_1.hex2ua)(decryptedAesExchangeKey)), (yield this.RSA.exportKey(keyToEncrypt.privKey, 'pkcs8')), decryptedAesExchangeKey));
1443
+ const dataOwnerExistingPubKeys = Array.from(yield this.getDataOwnerHexPublicKeys(dataOwner.dataOwner));
1444
+ const transferKeys = (0, utils_1.fold)(dataOwnerExistingPubKeys, (_a = dataOwner.dataOwner.transferKeys) !== null && _a !== void 0 ? _a : {}, (pubAcc, pubKeyHex) => {
1445
+ var _a;
1446
+ if (pubKeyHex !== pubKeyToEncryptHex) {
1447
+ const existingKeys = (_a = pubAcc[pubKeyHex]) !== null && _a !== void 0 ? _a : {};
1448
+ existingKeys[pubKeyToEncryptHex] = encryptedKey;
1449
+ pubAcc[pubKeyHex] = existingKeys;
1450
+ }
1451
+ return pubAcc;
1452
+ });
1453
+ return { type: dataOwner.type, dataOwner: Object.assign(Object.assign({}, dataOwner.dataOwner), { transferKeys: transferKeys }) };
1454
+ });
1455
+ }
1456
+ encryptAesKeyFor(aesKey, dataOwner, doNewPublicKey) {
1457
+ return __awaiter(this, void 0, void 0, function* () {
1458
+ const dataOwnerAllPubKeys = [doNewPublicKey].concat(yield this.getDataOwnerPublicKeys(dataOwner));
1459
+ return this.encryptAesKeyOnlyForProvidedKeys(aesKey, dataOwner.id, dataOwnerAllPubKeys);
1460
+ });
1461
+ }
1462
+ encryptAesKeyOnlyForProvidedKeys(aesKey, dataOwnerId, dataOwnerPubKeys) {
1463
+ return __awaiter(this, void 0, void 0, function* () {
1464
+ const encryptedAesForDataOwner = yield (0, utils_1.foldAsync)(dataOwnerPubKeys, {}, (encrAes, pubKey) => __awaiter(this, void 0, void 0, function* () {
1465
+ encrAes[(0, binary_utils_1.ua2hex)(yield this.RSA.exportKey(pubKey, 'spki')).slice(-32)] = (0, binary_utils_1.ua2hex)(yield this._RSA.encrypt(pubKey, (0, binary_utils_1.hex2ua)(aesKey)));
1466
+ return encrAes;
1467
+ }));
1468
+ return { [dataOwnerId]: encryptedAesForDataOwner };
1469
+ });
1470
+ }
1471
+ retrieveDataOwnerInfoAfterPotentialUpdate(dataOwnerToUpdate) {
1472
+ this.emptyHcpCache(dataOwnerToUpdate.id);
1473
+ return this.getDataOwner(dataOwnerToUpdate.id).then(({ type, dataOwner }) => {
1474
+ var _a, _b, _c, _d;
1475
+ return {
1476
+ type: type,
1477
+ dataOwner: Object.assign(Object.assign({}, dataOwner), { transferKeys: dataOwnerToUpdate.transferKeys, hcPartyKeys: (0, utils_1.fold)(Object.entries((_a = dataOwnerToUpdate.hcPartyKeys) !== null && _a !== void 0 ? _a : {}), (_b = dataOwner.hcPartyKeys) !== null && _b !== void 0 ? _b : {}, (acc, [delegateId, hcKeys]) => {
1478
+ acc[delegateId] = hcKeys;
1479
+ return acc;
1480
+ }), aesExchangeKeys: (0, utils_1.fold)(Object.entries((_c = dataOwnerToUpdate.aesExchangeKeys) !== null && _c !== void 0 ? _c : {}), (_d = dataOwner.aesExchangeKeys) !== null && _d !== void 0 ? _d : {}, (pubAcc, [pubKey, newAesExcKeys]) => {
1481
+ var _a;
1482
+ const existingKeys = (_a = pubAcc[pubKey]) !== null && _a !== void 0 ? _a : {};
1483
+ pubAcc[pubKey] = (0, utils_1.fold)(Object.entries(newAesExcKeys), existingKeys, (delAcc, [delId, delKeys]) => {
1484
+ delAcc[delId] = delKeys;
1485
+ return delAcc;
1486
+ });
1487
+ return pubAcc;
1488
+ }) }),
1489
+ };
1490
+ });
1491
+ }
1492
+ sendMaintenanceTasks(maintenanceTaskApi, user, dataOwner, newPublicKey) {
1493
+ return __awaiter(this, void 0, void 0, function* () {
1494
+ const hexNewPubKey = (0, binary_utils_1.ua2hex)(yield this.RSA.exportKey(newPublicKey, 'spki'));
1495
+ const availablePubKeysSet = new Set(yield this.getPublicKeysAsSpki());
1496
+ const hasNonAccessiblePubKeys = Array.from(this.getDataOwnerHexPublicKeys(dataOwner).values()).some((existingPubKey) => existingPubKey != hexNewPubKey && !availablePubKeysSet.has(existingPubKey));
1497
+ if (hasNonAccessiblePubKeys) {
1498
+ const allDelegatesAndDelegator = new Set([
1499
+ ...Object.keys(yield this.getEncryptedAesExchangeKeysForDelegate(dataOwner.id)),
1500
+ ...(yield this._getDelegateIdsOf(dataOwner)),
1501
+ ]);
1502
+ const tasks = [...allDelegatesAndDelegator]
1503
+ .filter((delegateId) => delegateId != dataOwner.id)
1504
+ .map((delegateId) => {
1505
+ return { delegateId, maintenanceTask: this.createMaintenanceTask(dataOwner, hexNewPubKey) };
1506
+ });
1507
+ const res = [];
1508
+ for (const task of tasks) {
1509
+ const taskToCreate = yield (maintenanceTaskApi === null || maintenanceTaskApi === void 0 ? void 0 : maintenanceTaskApi.newInstance(user, task.maintenanceTask, [task.delegateId]));
1510
+ const createdTask = taskToCreate ? yield (maintenanceTaskApi === null || maintenanceTaskApi === void 0 ? void 0 : maintenanceTaskApi.createMaintenanceTaskWithUser(user, taskToCreate)) : undefined;
1511
+ if (createdTask) {
1512
+ res.push(createdTask);
1513
+ }
1514
+ }
1515
+ return res;
1516
+ }
1517
+ else {
1518
+ return [];
1519
+ }
1520
+ });
1521
+ }
1522
+ createMaintenanceTask(concernedDataOwner, concernedPubKey) {
1523
+ return new models_1.MaintenanceTask({
1524
+ id: this.randomUuid(),
1525
+ taskType: 'KEY_PAIR_UPDATE',
1526
+ status: models_1.MaintenanceTask.StatusEnum.Pending,
1527
+ properties: [
1528
+ new models_1.PropertyStub({
1529
+ id: 'dataOwnerConcernedId',
1530
+ type: new models_1.PropertyTypeStub({ type: models_1.PropertyTypeStub.TypeEnum.STRING }),
1531
+ typedValue: new models_1.TypedValueObject({
1532
+ type: models_1.TypedValueObject.TypeEnum.STRING,
1533
+ stringValue: concernedDataOwner.id,
1534
+ }),
1535
+ }),
1536
+ new models_1.PropertyStub({
1537
+ id: 'dataOwnerConcernedPubKey',
1538
+ type: new models_1.PropertyTypeStub({ type: models_1.PropertyTypeStub.TypeEnum.STRING }),
1539
+ typedValue: new models_1.TypedValueObject({
1540
+ type: models_1.TypedValueObject.TypeEnum.STRING,
1541
+ stringValue: concernedPubKey,
1542
+ }),
1543
+ }),
1544
+ ],
1545
+ });
1546
+ }
1547
+ getDataOwnerHexPublicKeys(dataOwner) {
1548
+ return new Set((dataOwner.publicKey ? [dataOwner.publicKey] : [])
1549
+ .concat(dataOwner.aesExchangeKeys ? Object.keys(dataOwner.aesExchangeKeys) : [])
1550
+ .filter((pubKey) => !!pubKey));
1551
+ }
1552
+ getDataOwnerPublicKeys(dataOwner) {
1553
+ return __awaiter(this, void 0, void 0, function* () {
1554
+ return yield Promise.all(Array.from(this.getDataOwnerHexPublicKeys(dataOwner)).map((pubKey) => __awaiter(this, void 0, void 0, function* () { return yield this._RSA.importKey('jwk', (0, utils_1.spkiToJwk)((0, binary_utils_1.hex2ua)(pubKey)), ['encrypt']); })));
1555
+ });
1556
+ }
1557
+ generateKeyForDelegate(ownerId, delegateId) {
1558
+ //Preload hcp and patient because we need them and they are going to be invalidated from the caches
1559
+ return (0, utils_1.notConcurrent)(this.generateKeyConcurrencyMap, ownerId, () => __awaiter(this, void 0, void 0, function* () {
1560
+ var _a, _b, _c, _d, _e;
1561
+ const [{ type: ownerType, dataOwner: owner }, { dataOwner: delegate }] = yield Promise.all([
1562
+ this.getDataOwner(ownerId),
1563
+ this.getDataOwner(delegateId),
1564
+ ]);
1565
+ const availablePublicKeysFingerprints = Object.keys(this.rsaKeyPairs);
1566
+ const ownerLegacyPublicKey = owner.publicKey;
1567
+ const isOwnerLegacyPublicKeyAvailable = ownerLegacyPublicKey
1568
+ ? availablePublicKeysFingerprints.some((fp) => ownerLegacyPublicKey.endsWith(fp))
1569
+ : false;
1570
+ const availableOwnerPublicKeys = [
1571
+ ownerLegacyPublicKey,
1572
+ ...Object.keys(owner.aesExchangeKeys || {}).filter((x) => x !== ownerLegacyPublicKey),
1573
+ ].filter((k) => !!k && availablePublicKeysFingerprints.some((fp) => k.endsWith(fp)));
1574
+ const selectedPublicKey = availableOwnerPublicKeys[0];
1575
+ if (!selectedPublicKey) {
1576
+ throw new Error(`Invalid owner, no public key, keypairs have not be set for ${ownerId}`);
1577
+ }
1578
+ if (((owner.hcPartyKeys || {})[delegateId] && owner.publicKey && availablePublicKeysFingerprints.includes(owner.publicKey.slice(-32))) ||
1579
+ Object.values(owner.aesExchangeKeys || {}).some((x) => x[delegateId] && Object.keys(x[delegateId]).some((k) => availablePublicKeysFingerprints.includes(k)))) {
1580
+ return owner;
1581
+ }
1582
+ let ownerCombinedAesExchangeKeys = (_a = owner.aesExchangeKeys) !== null && _a !== void 0 ? _a : {};
1583
+ if (ownerLegacyPublicKey && !((_b = owner.aesExchangeKeys) !== null && _b !== void 0 ? _b : {})[ownerLegacyPublicKey]) {
1584
+ //Transfer keys from old structure (hcparty keys) to new one (aesExchangeKeys)
1585
+ const unknownDataOwnerCounterPartIds = Object.keys((_c = owner.hcPartyKeys) !== null && _c !== void 0 ? _c : {}).filter((x) => x !== ownerId && x !== delegateId);
1586
+ const counterParts = [
1587
+ owner,
1588
+ delegate,
1589
+ ...(yield Promise.all(unknownDataOwnerCounterPartIds.map((cpid) => this.getDataOwner(cpid).then((dot) => dot.dataOwner)))),
1590
+ ];
1591
+ ownerCombinedAesExchangeKeys = Object.assign({ [ownerLegacyPublicKey]: Object.entries((_d = owner.hcPartyKeys) !== null && _d !== void 0 ? _d : {}).reduce((map, [hcpId, keys]) => {
1592
+ var _a, _b;
1593
+ return (Object.assign(Object.assign(Object.assign({}, map), { [hcpId]: { [ownerLegacyPublicKey.slice(-32)]: keys[0], [(_b = (_a = counterParts.find((x) => x.id === hcpId)) === null || _a === void 0 ? void 0 : _a.publicKey) !== null && _b !== void 0 ? _b : '']: keys[1] } }), {}));
1594
+ }, {}) }, ownerCombinedAesExchangeKeys);
1595
+ }
1596
+ const delegatePublicKeys = [delegate.publicKey, ...Object.keys((_e = delegate.aesExchangeKeys) !== null && _e !== void 0 ? _e : {}).filter((x) => x !== delegate.publicKey)].filter((x) => !!x);
1597
+ if (!delegatePublicKeys.length) {
1598
+ throw new Error(`Invalid delegate, no public key, keypairs have not be set for ${delegateId}`);
1599
+ }
1600
+ const genProm = this._AES.generateCryptoKey(true).then((AESKey) => __awaiter(this, void 0, void 0, function* () {
1601
+ var _f, _g;
1602
+ const allPubKeys = [...availableOwnerPublicKeys, ...delegatePublicKeys];
1603
+ const encryptedAesKeys = yield allPubKeys.reduce((map, pubK) => __awaiter(this, void 0, void 0, function* () {
1604
+ return (Object.assign(Object.assign({}, (yield map)), { [pubK.slice(-32)]: (0, binary_utils_1.ua2hex)(yield this._RSA.encrypt(yield this._RSA.importKey('jwk', (0, utils_1.spkiToJwk)((0, binary_utils_1.hex2ua)(pubK)), ['encrypt']), (0, binary_utils_1.hex2ua)(AESKey))) }));
1605
+ }), Promise.resolve({}));
1606
+ if (delegate.publicKey && ownerLegacyPublicKey && isOwnerLegacyPublicKeyAvailable) {
1607
+ owner.hcPartyKeys[delegateId] = [encryptedAesKeys[ownerLegacyPublicKey.slice(-32)], encryptedAesKeys[delegate.publicKey.slice(-32)]];
1608
+ }
1609
+ owner.aesExchangeKeys = this.fixAesExchangeKeyEntriesToFingerprints(Object.assign(Object.assign({}, (ownerCombinedAesExchangeKeys !== null && ownerCombinedAesExchangeKeys !== void 0 ? ownerCombinedAesExchangeKeys : {})), { [selectedPublicKey]: Object.assign(Object.assign({}, ((_g = (_f = owner.aesExchangeKeys) === null || _f === void 0 ? void 0 : _f[selectedPublicKey]) !== null && _g !== void 0 ? _g : {})), { [delegateId]: encryptedAesKeys }) }));
1610
+ return new Promise((resolve, reject) => {
1611
+ ownerType === 'hcp'
1612
+ ? (this.dataOwnerCache[owner.id] = this.hcpartyBaseApi
1613
+ .modifyHealthcareParty(owner)
1614
+ .then((x) => ({ type: 'hcp', dataOwner: x })))
1615
+ .then((x) => resolve(['hcp', x.dataOwner]))
1616
+ .catch((e) => reject(e))
1617
+ : ownerType === 'patient'
1618
+ ? (this.dataOwnerCache[owner.id] = this.patientBaseApi.modifyPatient(owner).then((x) => ({ type: 'patient', dataOwner: x })))
1619
+ .then((x) => resolve(['patient', x.dataOwner]))
1620
+ .catch((e) => reject(e))
1621
+ : (this.dataOwnerCache[owner.id] = this.deviceBaseApi.updateDevice(owner).then((x) => ({ type: 'device', dataOwner: x })))
1622
+ .then((x) => resolve(['device', x.dataOwner]))
1623
+ .catch((e) => reject(e));
1624
+ });
1625
+ }));
1626
+ this.hcPartyKeysRequestsCache[delegateId] = genProm.then(() => {
1627
+ return this.forceGetEncryptedAesExchangeKeysForDelegate(delegateId);
1628
+ });
1629
+ return genProm.then((res) => {
1630
+ return res[1];
1631
+ });
1632
+ }));
1633
+ }
1634
+ getDataOwner(ownerId, loadIfMissingFromCache = true) {
1635
+ var _a;
1636
+ const retrieve = () => __awaiter(this, void 0, void 0, function* () {
1637
+ const hcpDataOwnerPromise = this.hcpartyBaseApi
1638
+ .getHealthcareParty(ownerId)
1639
+ .then((x) => ({ type: 'hcp', dataOwner: x }))
1640
+ .catch(() => undefined);
1641
+ const patientDataOwnerPromise = this.patientBaseApi
1642
+ .getPatient(ownerId)
1643
+ .then((x) => ({ type: 'patient', dataOwner: x }))
1644
+ .catch(() => undefined);
1645
+ const hcpDataOwner = yield hcpDataOwnerPromise;
1646
+ const patientDataOwner = yield patientDataOwnerPromise;
1647
+ if (!!hcpDataOwner && !!patientDataOwner)
1648
+ console.error("Both hcp and patient data owner found for id: '" + ownerId + "'");
1649
+ if (!!hcpDataOwner || !!patientDataOwner) {
1650
+ return hcpDataOwner !== null && hcpDataOwner !== void 0 ? hcpDataOwner : patientDataOwner;
1651
+ }
1652
+ const deviceDataOwner = yield this.deviceBaseApi
1653
+ .getDevice(ownerId)
1654
+ .then((x) => ({ type: 'device', dataOwner: x }))
1655
+ .catch(() => undefined);
1656
+ if (!!deviceDataOwner)
1657
+ return deviceDataOwner;
1658
+ throw new Error("Data owner with id '" + ownerId + "' not found");
1659
+ });
1660
+ return ((_a = this.dataOwnerCache[ownerId]) !== null && _a !== void 0 ? _a : (loadIfMissingFromCache
1661
+ ? (this.dataOwnerCache[ownerId] = retrieve().catch((e) => {
1662
+ delete this.dataOwnerCache[ownerId];
1663
+ throw e;
1664
+ }))
1665
+ : undefined));
1666
+ }
1667
+ // noinspection JSUnusedGlobalSymbols
1668
+ checkPrivateKeyValidity(dataOwner) {
1669
+ var _a;
1670
+ return __awaiter(this, void 0, void 0, function* () {
1671
+ const publicKeys = Array.from(new Set([dataOwner.publicKey].concat(Object.keys((_a = dataOwner.aesExchangeKeys) !== null && _a !== void 0 ? _a : {})).filter((x) => !!x)));
1672
+ return yield publicKeys.reduce((pres, publicKey) => __awaiter(this, void 0, void 0, function* () {
1673
+ const res = yield pres;
1674
+ try {
1675
+ const k = yield this._RSA.importKey('jwk', (0, utils_1.spkiToJwk)((0, binary_utils_1.hex2ua)(publicKey)), ['encrypt']);
1676
+ const cipher = yield this._RSA.encrypt(k, (0, binary_utils_1.utf8_2ua)('shibboleth'));
1677
+ const ikp = yield this.getCachedRsaKeyPairForFingerprint(dataOwner.id, publicKey.slice(-32));
1678
+ const plainText = (0, binary_utils_1.ua2utf8)(yield this._RSA.decrypt(ikp.privateKey, new Uint8Array(cipher)));
1679
+ return plainText === 'shibboleth' || res;
1680
+ }
1681
+ catch (e) {
1682
+ return res;
1683
+ }
1684
+ }), Promise.resolve(false));
1685
+ });
1686
+ }
1687
+ throwDetailedExceptionForInvalidParameter(argName, argValue, methodName, methodArgs) {
1688
+ if (argValue)
1689
+ return;
1690
+ let details = '\nMethod name: icc-crypto-x-api.' + methodName + '()\nArguments:';
1691
+ if (methodArgs) {
1692
+ try {
1693
+ const argsArray = [...methodArgs];
1694
+ _.each(argsArray, (arg, index) => (details += '\n[' + index + ']: ' + JSON.stringify(arg)));
1695
+ }
1696
+ catch (ex) {
1697
+ details += '; a problem occured while logging arguments details: ' + ex;
1698
+ }
1699
+ }
1700
+ throw '### THIS SHOULD NOT HAPPEN: ' + argName + ' has an invalid value: ' + argValue + details;
1701
+ }
1702
+ getEncryptionDecryptionKeys(dataOwnerId, document) {
1703
+ return __awaiter(this, void 0, void 0, function* () {
1704
+ try {
1705
+ return !document.id
1706
+ ? undefined
1707
+ : _.uniq((yield this.extractKeysFromDelegationsForHcpHierarchy(dataOwnerId, document.id, (document.encryptionKeys && Object.keys(document.encryptionKeys).length && document.encryptionKeys) || document.delegations)).extractedKeys);
1708
+ }
1709
+ catch (e) {
1710
+ return undefined;
1711
+ }
1712
+ });
1713
+ }
1714
+ dataOwnerCanDecryptPatient(dataOwnerId, p) {
1715
+ var _a, _b;
1716
+ return __awaiter(this, void 0, void 0, function* () {
1717
+ if (p.encryptionKeys && ((_a = p.encryptionKeys[dataOwnerId]) === null || _a === void 0 ? void 0 : _a.length))
1718
+ return true;
1719
+ const dataOwner = yield this.getDataOwner(dataOwnerId);
1720
+ if (dataOwner.type === 'hcp' && p.encryptionKeys && ((_b = p.encryptionKeys[dataOwner.dataOwner.parentId]) === null || _b === void 0 ? void 0 : _b.length))
1721
+ return true;
1722
+ return false;
1723
+ });
1724
+ }
1725
+ encryptDecrypt(method, content, edKey, user, documentObject) {
1726
+ return __awaiter(this, void 0, void 0, function* () {
1727
+ if (!content || !(edKey || ((user === null || user === void 0 ? void 0 : user.healthcarePartyId) && documentObject)))
1728
+ return content;
1729
+ if (edKey) {
1730
+ const importedEdKey = yield this._AES.importKey('raw', (0, binary_utils_1.hex2ua)(edKey.replace(/-/g, '')));
1731
+ try {
1732
+ return yield this._AES[method](importedEdKey, content);
1733
+ }
1734
+ catch (e) {
1735
+ return content;
1736
+ }
1737
+ }
1738
+ const sfks = yield this.extractKeysFromDelegationsForHcpHierarchy(user === null || user === void 0 ? void 0 : user.healthcarePartyId, documentObject === null || documentObject === void 0 ? void 0 : documentObject.id, documentObject === null || documentObject === void 0 ? void 0 : documentObject.encryptionKeys);
1739
+ const importedEdKey = yield this._AES.importKey('raw', (0, binary_utils_1.hex2ua)(sfks.extractedKeys[0].replace(/-/g, '')));
1740
+ try {
1741
+ return yield this._AES[method](importedEdKey, content);
1742
+ }
1743
+ catch (e) {
1744
+ return content;
1745
+ }
1746
+ });
1747
+ }
1748
+ /**
1749
+ * Store keypair in storage
1750
+ *
1751
+ * @param id
1752
+ * @param keyPair should be JWK
1753
+ *
1754
+ * @deprecated use storage.setItem instead
1755
+ */
1756
+ storeKeyPair(id, keyPair) {
1757
+ this._storage.setItem(this.rsaLocalStoreIdPrefix + id, JSON.stringify(keyPair));
1758
+ }
1759
+ fixAesExchangeKeyEntriesToFingerprints(aesExchangeKeys) {
1760
+ return Object.fromEntries(Object.entries(aesExchangeKeys).map(([delegatorPubKey, allDelegates]) => [
1761
+ delegatorPubKey,
1762
+ Object.fromEntries(Object.entries(allDelegates).map(([delegateId, keyEntries]) => [
1763
+ delegateId,
1764
+ Object.fromEntries(Object.entries(keyEntries).map(([publicKey, encryptedValue]) => [publicKey.slice(-32), encryptedValue])),
1765
+ ])),
1766
+ ]));
1767
+ }
1768
+ reportError(description, // Description of what caused the error
1769
+ involvedEntities, // Entities that were being processed when the error occurred
1770
+ dataOwnerId // Id of the data owner who was doing the processing when the error occurred
1771
+ ) {
1772
+ return __awaiter(this, void 0, void 0, function* () {
1773
+ if (this.enableErrorReporting) {
1774
+ try {
1775
+ const collectedData = yield new error_reporting_1.ErrorReporting(this).collectDataForReport(description, involvedEntities, dataOwnerId);
1776
+ console.warn('Reporting error for ' + description);
1777
+ yield this.saveErrorReportCallback(collectedData);
1778
+ }
1779
+ catch (e) {
1780
+ console.error('Failed to report error for ' + description);
1781
+ console.error(e);
1782
+ }
1783
+ }
1784
+ });
1785
+ }
1786
+ }
1787
+ exports.IccCryptoXApi = IccCryptoXApi;
1788
+ //# sourceMappingURL=icc-crypto-x-api.js.map