@icure/api 8.6.18 → 8.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/icc-api/api/IccDocumentApi.d.ts +10 -2
  2. package/icc-api/api/IccDocumentApi.js +22 -4
  3. package/icc-api/api/IccDocumentApi.js.map +1 -1
  4. package/icc-api/api/IccReceiptApi.d.ts +17 -0
  5. package/icc-api/api/IccReceiptApi.js +52 -0
  6. package/icc-api/api/IccReceiptApi.js.map +1 -1
  7. package/icc-api/model/DataAttachment.d.ts +22 -0
  8. package/icc-api/model/DataAttachment.js.map +1 -1
  9. package/icc-api/model/Document.d.ts +6 -0
  10. package/icc-api/model/Document.js.map +1 -1
  11. package/icc-api/model/Receipt.d.ts +6 -0
  12. package/icc-api/model/Receipt.js.map +1 -1
  13. package/icc-x-api/crypto/BaseExchangeDataManager.js +2 -2
  14. package/icc-x-api/crypto/BaseExchangeDataManager.js.map +1 -1
  15. package/icc-x-api/crypto/ExchangeDataManager.js +3 -3
  16. package/icc-x-api/crypto/ExchangeDataManager.js.map +1 -1
  17. package/icc-x-api/crypto/ExtendedApisUtils.d.ts +1 -1
  18. package/icc-x-api/crypto/ExtendedApisUtils.js.map +1 -1
  19. package/icc-x-api/crypto/ExtendedApisUtilsImpl.d.ts +1 -1
  20. package/icc-x-api/crypto/ExtendedApisUtilsImpl.js +8 -2
  21. package/icc-x-api/crypto/ExtendedApisUtilsImpl.js.map +1 -1
  22. package/icc-x-api/crypto/RecoveryDataEncryption.js.map +1 -1
  23. package/icc-x-api/icc-accesslog-x-api.js +7 -7
  24. package/icc-x-api/icc-accesslog-x-api.js.map +1 -1
  25. package/icc-x-api/icc-calendar-item-x-api.js +7 -7
  26. package/icc-x-api/icc-calendar-item-x-api.js.map +1 -1
  27. package/icc-x-api/icc-classification-x-api.js +4 -5
  28. package/icc-x-api/icc-classification-x-api.js.map +1 -1
  29. package/icc-x-api/icc-code-x-api.d.ts +2 -2
  30. package/icc-x-api/icc-code-x-api.js +3 -33
  31. package/icc-x-api/icc-code-x-api.js.map +1 -1
  32. package/icc-x-api/icc-contact-x-api.js +20 -33
  33. package/icc-x-api/icc-contact-x-api.js.map +1 -1
  34. package/icc-x-api/icc-doctemplate-x-api.js.map +1 -1
  35. package/icc-x-api/icc-document-x-api.d.ts +8 -7
  36. package/icc-x-api/icc-document-x-api.js +64 -22
  37. package/icc-x-api/icc-document-x-api.js.map +1 -1
  38. package/icc-x-api/icc-form-x-api.js +3 -4
  39. package/icc-x-api/icc-form-x-api.js.map +1 -1
  40. package/icc-x-api/icc-helement-x-api.js +11 -11
  41. package/icc-x-api/icc-helement-x-api.js.map +1 -1
  42. package/icc-x-api/icc-invoice-x-api.js +3 -4
  43. package/icc-x-api/icc-invoice-x-api.js.map +1 -1
  44. package/icc-x-api/icc-maintenance-task-x-api.js +3 -3
  45. package/icc-x-api/icc-maintenance-task-x-api.js.map +1 -1
  46. package/icc-x-api/icc-patient-x-api.js +29 -29
  47. package/icc-x-api/icc-patient-x-api.js.map +1 -1
  48. package/icc-x-api/icc-receipt-x-api.d.ts +40 -0
  49. package/icc-x-api/icc-receipt-x-api.js +79 -1
  50. package/icc-x-api/icc-receipt-x-api.js.map +1 -1
  51. package/icc-x-api/icc-topic-x-api.js.map +1 -1
  52. package/icc-x-api/index.js +1 -1
  53. package/icc-x-api/index.js.map +1 -1
  54. package/icc-x-api/utils/code-util.d.ts +23 -0
  55. package/icc-x-api/utils/code-util.js +39 -2
  56. package/icc-x-api/utils/code-util.js.map +1 -1
  57. package/icc-x-api/utils/collection-utils.d.ts +13 -0
  58. package/icc-x-api/utils/collection-utils.js +69 -0
  59. package/icc-x-api/utils/collection-utils.js.map +1 -1
  60. package/icc-x-api/utils/compression-utils.d.ts +28 -0
  61. package/icc-x-api/utils/compression-utils.js +106 -0
  62. package/icc-x-api/utils/compression-utils.js.map +1 -0
  63. package/icc-x-api/utils/crypto-utils.js +7 -7
  64. package/icc-x-api/utils/crypto-utils.js.map +1 -1
  65. package/icc-x-api/utils/formatting-util.d.ts +1 -3
  66. package/icc-x-api/utils/formatting-util.js +15 -17
  67. package/icc-x-api/utils/formatting-util.js.map +1 -1
  68. package/icc-x-api/utils/hcp-util.js +2 -3
  69. package/icc-x-api/utils/hcp-util.js.map +1 -1
  70. package/icc-x-api/utils/insurability-util.js +10 -8
  71. package/icc-x-api/utils/insurability-util.js.map +1 -1
  72. package/icc-x-api/utils/lzma-wasm.d.ts +6 -0
  73. package/icc-x-api/utils/lzma-wasm.js +81 -0
  74. package/icc-x-api/utils/lzma-wasm.js.map +1 -0
  75. package/icc-x-api/utils/mutex.d.ts +12 -0
  76. package/icc-x-api/utils/mutex.js +26 -0
  77. package/icc-x-api/utils/mutex.js.map +1 -0
  78. package/icc-x-api/utils/websocket.js +7 -7
  79. package/icc-x-api/utils/websocket.js.map +1 -1
  80. package/icc-x-api/wasm/lzma/lzma.js +2 -0
  81. package/icc-x-api/wasm/lzma/lzma.wasm +0 -0
  82. package/package.json +2 -11
  83. package/icc-x-api/utils/uuid-encoder.d.ts +0 -44
  84. package/icc-x-api/utils/uuid-encoder.js +0 -114
  85. package/icc-x-api/utils/uuid-encoder.js.map +0 -1
  86. package/test/icc-api/api/IccAgendaApi.d.ts +0 -1
  87. package/test/icc-api/api/IccAgendaApi.js +0 -64
  88. package/test/icc-api/api/IccAgendaApi.js.map +0 -1
  89. package/test/icc-api/api/IccAnonymousAccessApi.d.ts +0 -1
  90. package/test/icc-api/api/IccAnonymousAccessApi.js +0 -58
  91. package/test/icc-api/api/IccAnonymousAccessApi.js.map +0 -1
  92. package/test/icc-api/api/IccCalendarItemApi.d.ts +0 -1
  93. package/test/icc-api/api/IccCalendarItemApi.js +0 -67
  94. package/test/icc-api/api/IccCalendarItemApi.js.map +0 -1
  95. package/test/icc-api/api/IccCalendarItemTypeApi.d.ts +0 -1
  96. package/test/icc-api/api/IccCalendarItemTypeApi.js +0 -96
  97. package/test/icc-api/api/IccCalendarItemTypeApi.js.map +0 -1
  98. package/test/icc-api/api/IccCodeApi.d.ts +0 -1
  99. package/test/icc-api/api/IccCodeApi.js +0 -38
  100. package/test/icc-api/api/IccCodeApi.js.map +0 -1
  101. package/test/icc-api/api/IccDocumentApi.d.ts +0 -1
  102. package/test/icc-api/api/IccDocumentApi.js +0 -199
  103. package/test/icc-api/api/IccDocumentApi.js.map +0 -1
  104. package/test/icc-api/api/IccGroupApi.d.ts +0 -1
  105. package/test/icc-api/api/IccGroupApi.js +0 -50
  106. package/test/icc-api/api/IccGroupApi.js.map +0 -1
  107. package/test/icc-api/api/IccKeywordApi.d.ts +0 -1
  108. package/test/icc-api/api/IccKeywordApi.js +0 -64
  109. package/test/icc-api/api/IccKeywordApi.js.map +0 -1
  110. package/test/icc-api/api/IccMedicalLocationApi.d.ts +0 -1
  111. package/test/icc-api/api/IccMedicalLocationApi.js +0 -64
  112. package/test/icc-api/api/IccMedicalLocationApi.js.map +0 -1
  113. package/test/icc-api/api/IccPlaceApi.d.ts +0 -1
  114. package/test/icc-api/api/IccPlaceApi.js +0 -64
  115. package/test/icc-api/api/IccPlaceApi.js.map +0 -1
  116. package/test/icc-api/api/IccRecoveryDataApi.d.ts +0 -1
  117. package/test/icc-api/api/IccRecoveryDataApi.js +0 -95
  118. package/test/icc-api/api/IccRecoveryDataApi.js.map +0 -1
  119. package/test/icc-api/api/IccRoleApi.d.ts +0 -1
  120. package/test/icc-api/api/IccRoleApi.js +0 -34
  121. package/test/icc-api/api/IccRoleApi.js.map +0 -1
  122. package/test/icc-api/api/IccUserApi.d.ts +0 -1
  123. package/test/icc-api/api/IccUserApi.js +0 -96
  124. package/test/icc-api/api/IccUserApi.js.map +0 -1
  125. package/test/icc-api/e2e/IccCalendarItemApi.d.ts +0 -1
  126. package/test/icc-api/e2e/IccCalendarItemApi.js +0 -46
  127. package/test/icc-api/e2e/IccCalendarItemApi.js.map +0 -1
  128. package/test/icc-api/model/modelHelpersTest.d.ts +0 -1
  129. package/test/icc-api/model/modelHelpersTest.js +0 -45
  130. package/test/icc-api/model/modelHelpersTest.js.map +0 -1
  131. package/test/icc-x-api/auth/group-switch-test.d.ts +0 -1
  132. package/test/icc-x-api/auth/group-switch-test.js +0 -81
  133. package/test/icc-x-api/auth/group-switch-test.js.map +0 -1
  134. package/test/icc-x-api/auth/jwt-concurrency-test.d.ts +0 -2
  135. package/test/icc-x-api/auth/jwt-concurrency-test.js +0 -112
  136. package/test/icc-x-api/auth/jwt-concurrency-test.js.map +0 -1
  137. package/test/icc-x-api/auth/jwt-provider-test.d.ts +0 -1
  138. package/test/icc-x-api/auth/jwt-provider-test.js +0 -197
  139. package/test/icc-x-api/auth/jwt-provider-test.js.map +0 -1
  140. package/test/icc-x-api/auth/smart-auth-provider-test.d.ts +0 -1
  141. package/test/icc-x-api/auth/smart-auth-provider-test.js +0 -224
  142. package/test/icc-x-api/auth/smart-auth-provider-test.js.map +0 -1
  143. package/test/icc-x-api/autofix-anonymity-test.d.ts +0 -1
  144. package/test/icc-x-api/autofix-anonymity-test.js +0 -122
  145. package/test/icc-x-api/autofix-anonymity-test.js.map +0 -1
  146. package/test/icc-x-api/confidential-entities-test.d.ts +0 -1
  147. package/test/icc-x-api/confidential-entities-test.js +0 -168
  148. package/test/icc-x-api/confidential-entities-test.js.map +0 -1
  149. package/test/icc-x-api/crud/comprehensive-crud-test.d.ts +0 -1
  150. package/test/icc-x-api/crud/comprehensive-crud-test.js +0 -276
  151. package/test/icc-x-api/crud/comprehensive-crud-test.js.map +0 -1
  152. package/test/icc-x-api/crud/entities-crud-test-interface.d.ts +0 -16
  153. package/test/icc-x-api/crud/entities-crud-test-interface.js +0 -408
  154. package/test/icc-x-api/crud/entities-crud-test-interface.js.map +0 -1
  155. package/test/icc-x-api/crypto/anonymous-delegations-test.d.ts +0 -1
  156. package/test/icc-x-api/crypto/anonymous-delegations-test.js +0 -587
  157. package/test/icc-x-api/crypto/anonymous-delegations-test.js.map +0 -1
  158. package/test/icc-x-api/crypto/concurrency.d.ts +0 -1
  159. package/test/icc-x-api/crypto/concurrency.js +0 -35
  160. package/test/icc-x-api/crypto/concurrency.js.map +0 -1
  161. package/test/icc-x-api/crypto/crypto-utils.d.ts +0 -1
  162. package/test/icc-x-api/crypto/crypto-utils.js +0 -79
  163. package/test/icc-x-api/crypto/crypto-utils.js.map +0 -1
  164. package/test/icc-x-api/crypto/cryptoTest.d.ts +0 -2
  165. package/test/icc-x-api/crypto/cryptoTest.js +0 -402
  166. package/test/icc-x-api/crypto/cryptoTest.js.map +0 -1
  167. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.d.ts +0 -1
  168. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js +0 -166
  169. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js.map +0 -1
  170. package/test/icc-x-api/crypto/exchange-data-manager-test.d.ts +0 -1
  171. package/test/icc-x-api/crypto/exchange-data-manager-test.js +0 -674
  172. package/test/icc-x-api/crypto/exchange-data-manager-test.js.map +0 -1
  173. package/test/icc-x-api/crypto/full-crypto-test.d.ts +0 -1
  174. package/test/icc-x-api/crypto/full-crypto-test.js +0 -454
  175. package/test/icc-x-api/crypto/full-crypto-test.js.map +0 -1
  176. package/test/icc-x-api/crypto/legacy-metadata-migration-test.d.ts +0 -1
  177. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js +0 -379
  178. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js.map +0 -1
  179. package/test/icc-x-api/crypto/secure-delegations-manager-test.d.ts +0 -1
  180. package/test/icc-x-api/crypto/secure-delegations-manager-test.js +0 -278
  181. package/test/icc-x-api/crypto/secure-delegations-manager-test.js.map +0 -1
  182. package/test/icc-x-api/crypto/shamir.d.ts +0 -2
  183. package/test/icc-x-api/crypto/shamir.js +0 -167
  184. package/test/icc-x-api/crypto/shamir.js.map +0 -1
  185. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.d.ts +0 -1
  186. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js +0 -71
  187. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js.map +0 -1
  188. package/test/icc-x-api/crypto/soft-deleted-data-owners.d.ts +0 -2
  189. package/test/icc-x-api/crypto/soft-deleted-data-owners.js +0 -113
  190. package/test/icc-x-api/crypto/soft-deleted-data-owners.js.map +0 -1
  191. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.d.ts +0 -1
  192. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js +0 -246
  193. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js.map +0 -1
  194. package/test/icc-x-api/entity-with-attachments-api-test.d.ts +0 -1
  195. package/test/icc-x-api/entity-with-attachments-api-test.js +0 -142
  196. package/test/icc-x-api/entity-with-attachments-api-test.js.map +0 -1
  197. package/test/icc-x-api/filters/filters.d.ts +0 -1
  198. package/test/icc-x-api/filters/filters.js +0 -49
  199. package/test/icc-x-api/filters/filters.js.map +0 -1
  200. package/test/icc-x-api/filters/healthelement.d.ts +0 -1
  201. package/test/icc-x-api/filters/healthelement.js +0 -333
  202. package/test/icc-x-api/filters/healthelement.js.map +0 -1
  203. package/test/icc-x-api/icc-accesslog-x-api.d.ts +0 -1
  204. package/test/icc-x-api/icc-accesslog-x-api.js +0 -106
  205. package/test/icc-x-api/icc-accesslog-x-api.js.map +0 -1
  206. package/test/icc-x-api/icc-application-settings-x-api.d.ts +0 -1
  207. package/test/icc-x-api/icc-application-settings-x-api.js +0 -91
  208. package/test/icc-x-api/icc-application-settings-x-api.js.map +0 -1
  209. package/test/icc-x-api/icc-auth-api.d.ts +0 -1
  210. package/test/icc-x-api/icc-auth-api.js +0 -47
  211. package/test/icc-x-api/icc-auth-api.js.map +0 -1
  212. package/test/icc-x-api/icc-calendar-item-x-api.d.ts +0 -1
  213. package/test/icc-x-api/icc-calendar-item-x-api.js +0 -150
  214. package/test/icc-x-api/icc-calendar-item-x-api.js.map +0 -1
  215. package/test/icc-x-api/icc-contact-x-api.d.ts +0 -1
  216. package/test/icc-x-api/icc-contact-x-api.js +0 -355
  217. package/test/icc-x-api/icc-contact-x-api.js.map +0 -1
  218. package/test/icc-x-api/icc-document-x-api.d.ts +0 -1
  219. package/test/icc-x-api/icc-document-x-api.js +0 -76
  220. package/test/icc-x-api/icc-document-x-api.js.map +0 -1
  221. package/test/icc-x-api/icc-form-x-api.d.ts +0 -1
  222. package/test/icc-x-api/icc-form-x-api.js +0 -413
  223. package/test/icc-x-api/icc-form-x-api.js.map +0 -1
  224. package/test/icc-x-api/icc-hcparty-x-api-test.d.ts +0 -1
  225. package/test/icc-x-api/icc-hcparty-x-api-test.js +0 -43
  226. package/test/icc-x-api/icc-hcparty-x-api-test.js.map +0 -1
  227. package/test/icc-x-api/icc-helement-x-api-test.d.ts +0 -1
  228. package/test/icc-x-api/icc-helement-x-api-test.js +0 -155
  229. package/test/icc-x-api/icc-helement-x-api-test.js.map +0 -1
  230. package/test/icc-x-api/icc-invoice-x-api.d.ts +0 -1
  231. package/test/icc-x-api/icc-invoice-x-api.js +0 -99
  232. package/test/icc-x-api/icc-invoice-x-api.js.map +0 -1
  233. package/test/icc-x-api/icc-maintenance-task-x-api-test.d.ts +0 -1
  234. package/test/icc-x-api/icc-maintenance-task-x-api-test.js +0 -222
  235. package/test/icc-x-api/icc-maintenance-task-x-api-test.js.map +0 -1
  236. package/test/icc-x-api/icc-message-x-api.d.ts +0 -1
  237. package/test/icc-x-api/icc-message-x-api.js +0 -54
  238. package/test/icc-x-api/icc-message-x-api.js.map +0 -1
  239. package/test/icc-x-api/icc-patient-x-api-test.d.ts +0 -1
  240. package/test/icc-x-api/icc-patient-x-api-test.js +0 -165
  241. package/test/icc-x-api/icc-patient-x-api-test.js.map +0 -1
  242. package/test/icc-x-api/icc-recovery-x-api.d.ts +0 -1
  243. package/test/icc-x-api/icc-recovery-x-api.js +0 -175
  244. package/test/icc-x-api/icc-recovery-x-api.js.map +0 -1
  245. package/test/icc-x-api/icc-topic-x-api.d.ts +0 -1
  246. package/test/icc-x-api/icc-topic-x-api.js +0 -269
  247. package/test/icc-x-api/icc-topic-x-api.js.map +0 -1
  248. package/test/icc-x-api/icc-user-x-api-test.d.ts +0 -1
  249. package/test/icc-x-api/icc-user-x-api-test.js +0 -99
  250. package/test/icc-x-api/icc-user-x-api-test.js.map +0 -1
  251. package/test/icc-x-api/keyless-api.d.ts +0 -1
  252. package/test/icc-x-api/keyless-api.js +0 -125
  253. package/test/icc-x-api/keyless-api.js.map +0 -1
  254. package/test/icc-x-api/patient-user.d.ts +0 -2
  255. package/test/icc-x-api/patient-user.js +0 -103
  256. package/test/icc-x-api/patient-user.js.map +0 -1
  257. package/test/icc-x-api/storage/storage.d.ts +0 -1
  258. package/test/icc-x-api/storage/storage.js +0 -48
  259. package/test/icc-x-api/storage/storage.js.map +0 -1
  260. package/test/icc-x-api/test-api-no-parent.d.ts +0 -1
  261. package/test/icc-x-api/test-api-no-parent.js +0 -79
  262. package/test/icc-x-api/test-api-no-parent.js.map +0 -1
  263. package/test/icc-x-api/test-legacy-data-support.d.ts +0 -1
  264. package/test/icc-x-api/test-legacy-data-support.js +0 -375
  265. package/test/icc-x-api/test-legacy-data-support.js.map +0 -1
  266. package/test/icc-x-api/utils/graph-test.d.ts +0 -1
  267. package/test/icc-x-api/utils/graph-test.js +0 -54
  268. package/test/icc-x-api/utils/graph-test.js.map +0 -1
  269. package/test/icc-x-api/utils/lru-temporised-async-cache-test.d.ts +0 -1
  270. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js +0 -364
  271. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js.map +0 -1
  272. package/test/support/CSM-185.d.ts +0 -1
  273. package/test/support/CSM-185.js +0 -124
  274. package/test/support/CSM-185.js.map +0 -1
  275. package/test/support/CSM-243.d.ts +0 -1
  276. package/test/support/CSM-243.js +0 -120
  277. package/test/support/CSM-243.js.map +0 -1
  278. package/test/support/CSM-543.d.ts +0 -1
  279. package/test/support/CSM-543.js +0 -164
  280. package/test/support/CSM-543.js.map +0 -1
  281. package/test/support/CSM-729.d.ts +0 -1
  282. package/test/support/CSM-729.js +0 -225
  283. package/test/support/CSM-729.js.map +0 -1
  284. package/test/support/CSM-87.d.ts +0 -0
  285. package/test/support/CSM-87.js +0 -21
  286. package/test/support/CSM-87.js.map +0 -1
  287. package/test/support/CSM-93.d.ts +0 -1
  288. package/test/support/CSM-93.js +0 -112
  289. package/test/support/CSM-93.js.map +0 -1
  290. package/test/utils/FakeDataOwnerApi.d.ts +0 -32
  291. package/test/utils/FakeDataOwnerApi.js +0 -136
  292. package/test/utils/FakeDataOwnerApi.js.map +0 -1
  293. package/test/utils/FakeEncryptionKeysManager.d.ts +0 -36
  294. package/test/utils/FakeEncryptionKeysManager.js +0 -98
  295. package/test/utils/FakeEncryptionKeysManager.js.map +0 -1
  296. package/test/utils/FakeExchangeDataApi.d.ts +0 -32
  297. package/test/utils/FakeExchangeDataApi.js +0 -92
  298. package/test/utils/FakeExchangeDataApi.js.map +0 -1
  299. package/test/utils/FakeExchangeDataManager.d.ts +0 -48
  300. package/test/utils/FakeExchangeDataManager.js +0 -82
  301. package/test/utils/FakeExchangeDataManager.js.map +0 -1
  302. package/test/utils/FakeExchangeDataMapManager.d.ts +0 -12
  303. package/test/utils/FakeExchangeDataMapManager.js +0 -38
  304. package/test/utils/FakeExchangeDataMapManager.js.map +0 -1
  305. package/test/utils/FakeGenericApi.d.ts +0 -16
  306. package/test/utils/FakeGenericApi.js +0 -65
  307. package/test/utils/FakeGenericApi.js.map +0 -1
  308. package/test/utils/KeylessCryptoStrategies.d.ts +0 -23
  309. package/test/utils/KeylessCryptoStrategies.js +0 -26
  310. package/test/utils/KeylessCryptoStrategies.js.map +0 -1
  311. package/test/utils/TestApi.d.ts +0 -3
  312. package/test/utils/TestApi.js +0 -30
  313. package/test/utils/TestApi.js.map +0 -1
  314. package/test/utils/TestCollectionUtils.d.ts +0 -1
  315. package/test/utils/TestCollectionUtils.js +0 -109
  316. package/test/utils/TestCollectionUtils.js.map +0 -1
  317. package/test/utils/TestCryptoStrategies.d.ts +0 -42
  318. package/test/utils/TestCryptoStrategies.js +0 -80
  319. package/test/utils/TestCryptoStrategies.js.map +0 -1
  320. package/test/utils/TestStorage.d.ts +0 -23
  321. package/test/utils/TestStorage.js +0 -61
  322. package/test/utils/TestStorage.js.map +0 -1
  323. package/test/utils/roles.d.ts +0 -14
  324. package/test/utils/roles.js +0 -345
  325. package/test/utils/roles.js.map +0 -1
  326. package/test/utils/test_utils.d.ts +0 -87
  327. package/test/utils/test_utils.js +0 -452
  328. package/test/utils/test_utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyless-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/keyless-api.ts"],"names":[],"mappings":"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","sourcesContent":["import 'isomorphic-fetch'\n\nimport { before } from 'mocha'\nimport { createNewHcpApi, createNewKeylessApi, getEnvironmentInitializer, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { IcureApi, SecretIdUseOption, ShaVersion } from '../../icc-x-api'\nimport { webcrypto } from 'crypto'\nimport { expect } from 'chai'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { CalendarItem } from '../../icc-api/model/CalendarItem'\nimport { TestKeyStorage } from '../utils/TestStorage'\nimport { TestCryptoStrategies } from '../utils/TestCryptoStrategies'\nimport { KeylessCryptoStrategies } from '../utils/KeylessCryptoStrategies'\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\ndescribe('Keyless api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n const calendarItemTitle = 'Encrypted title'\n\n async function initializeTestData() {\n const { api: patientApi, credentials: patientCredentials } = await createNewKeylessApi(env)\n const patientUser = await patientApi.userApi.getCurrentUser()\n const patient = (await patientApi.dataOwnerApi.getCurrentDataOwner()).dataOwner as Patient\n const { api: hcpApi, credentials: hcpDetails, user: hcpUser } = await createNewHcpApi(env)\n const exchangeData = await patientApi.cryptoApi.keylessCreateExchangeDataTo(hcpDetails.dataOwnerId)\n const createdCalendarItem = await patientApi.calendarItemApi.createCalendarItemWithHcParty(\n patientUser,\n await patientApi.calendarItemApi.newInstancePatient(\n patientUser,\n patient,\n { title: calendarItemTitle },\n {\n sfkOption: SecretIdUseOption.UseNone,\n alternateRootDelegation: hcpDetails.dataOwnerId,\n }\n )\n )\n expect(createdCalendarItem.title).to.equal(calendarItemTitle)\n return {\n patientApi,\n patientCredentials,\n patientUser,\n patient,\n hcpApi,\n hcpDetails,\n hcpUser,\n exchangeData,\n createdCalendarItem,\n }\n }\n\n it('Keyless api should allow creation of data and retrieval by delegator and delegate', async () => {\n const { patientApi, patientUser, patient, hcpApi, hcpUser, createdCalendarItem } = await initializeTestData()\n\n const retrievedByPatient: CalendarItem = await patientApi.calendarItemApi.getCalendarItemWithUser(patientUser, createdCalendarItem.id)\n expect(retrievedByPatient.title).to.equal(calendarItemTitle)\n expect(await patientApi.calendarItemApi.decryptPatientIdOf(retrievedByPatient)).to.have.members([patient.id])\n const retrievedByHcp: CalendarItem = await hcpApi.calendarItemApi.getCalendarItemWithUser(hcpUser, createdCalendarItem.id)\n expect(retrievedByHcp.title).to.equal(calendarItemTitle)\n expect(await hcpApi.calendarItemApi.decryptPatientIdOf(retrievedByHcp)).to.have.members([patient.id])\n })\n\n it('Keyless api should allow retrieval in new instance after exchange data injection', async () => {\n const { patientCredentials, patientUser, patient, exchangeData, createdCalendarItem } = await initializeTestData()\n\n const newPatientApi = await IcureApi.initialise(env.iCureUrl, patientCredentials, new KeylessCryptoStrategies(), webcrypto as any, fetch, {})\n await newPatientApi.calendarItemApi.getCalendarItemWithUser(patientUser, createdCalendarItem.id).then(\n () => {\n throw new Error('Get before injection for anonymous user should not work')\n },\n () => {\n /* ok, expected */\n }\n )\n await newPatientApi.cryptoApi.injectExchangeData([{ ...exchangeData, verified: false }], false)\n const retrievedByNewApi: CalendarItem = await newPatientApi.calendarItemApi.getCalendarItemWithUser(patientUser, createdCalendarItem.id)\n expect(retrievedByNewApi.title).to.equal(calendarItemTitle)\n expect(await newPatientApi.calendarItemApi.decryptPatientIdOf(retrievedByNewApi)).to.have.members([patient.id])\n })\n\n it('Should allow re-encryption of exchange data as unverified on injection', async () => {\n const { patientApi, patientCredentials, patientUser, patient, hcpDetails, exchangeData, createdCalendarItem } = await initializeTestData()\n\n const keyStorage = new TestKeyStorage()\n const newKey = await patientApi.cryptoApi.primitives.RSA.generateKeyPair(ShaVersion.Sha256)\n const newPatientApiWithKeyAndInjected = await IcureApi.initialise(\n env.iCureUrl,\n patientCredentials,\n new TestCryptoStrategies(newKey),\n webcrypto as any,\n fetch,\n {\n keyStorage,\n injectExchangeData: {\n details: [{ ...exchangeData, verified: false }],\n reEncryptWithOwnKeys: true,\n },\n }\n )\n expect(\n (await newPatientApiWithKeyAndInjected.cryptoApi.exchangeData.getOrCreateEncryptionDataTo(hcpDetails.dataOwnerId)).exchangeData.id ==\n exchangeData.exchangeDataId\n ).to.be.false\n const newPatientApiWithKey = await IcureApi.initialise(env.iCureUrl, patientCredentials, new TestCryptoStrategies(), webcrypto as any, fetch, {\n keyStorage,\n })\n const retrievedByNewApi: CalendarItem = await newPatientApiWithKey.calendarItemApi.getCalendarItemWithUser(patientUser, createdCalendarItem.id)\n expect(retrievedByNewApi.title).to.equal(calendarItemTitle)\n expect(await newPatientApiWithKey.calendarItemApi.decryptPatientIdOf(retrievedByNewApi)).to.have.members([patient.id])\n expect(\n (await newPatientApiWithKey.cryptoApi.exchangeData.getOrCreateEncryptionDataTo(hcpDetails.dataOwnerId)).exchangeData.id ==\n exchangeData.exchangeDataId\n ).to.be.false\n })\n\n it('Should allow re-encryption of exchange data as verified on injection', async () => {\n const { patientApi, patientCredentials, patientUser, patient, hcpDetails, exchangeData, createdCalendarItem } = await initializeTestData()\n\n const keyStorage = new TestKeyStorage()\n const newKey = await patientApi.cryptoApi.primitives.RSA.generateKeyPair(ShaVersion.Sha256)\n const newPatientApiWithKeyAndInjected = await IcureApi.initialise(\n env.iCureUrl,\n patientCredentials,\n new TestCryptoStrategies(newKey),\n webcrypto as any,\n fetch,\n {\n keyStorage,\n injectExchangeData: {\n details: [{ ...exchangeData, verified: true }],\n reEncryptWithOwnKeys: true,\n },\n }\n )\n expect(\n (await newPatientApiWithKeyAndInjected.cryptoApi.exchangeData.getOrCreateEncryptionDataTo(hcpDetails.dataOwnerId)).exchangeData.id ==\n exchangeData.exchangeDataId\n ).to.be.true\n const newPatientApiWithKey = await IcureApi.initialise(env.iCureUrl, patientCredentials, new TestCryptoStrategies(), webcrypto as any, fetch, {\n keyStorage,\n })\n expect(\n (await newPatientApiWithKey.cryptoApi.exchangeData.getOrCreateEncryptionDataTo(hcpDetails.dataOwnerId)).exchangeData.id ==\n exchangeData.exchangeDataId\n ).to.be.true\n const retrievedByNewApi: CalendarItem = await newPatientApiWithKey.calendarItemApi.getCalendarItemWithUser(patientUser, createdCalendarItem.id)\n expect(retrievedByNewApi.title).to.equal(calendarItemTitle)\n expect(await newPatientApiWithKey.calendarItemApi.decryptPatientIdOf(retrievedByNewApi)).to.have.members([patient.id])\n })\n})\n"]}
@@ -1,2 +0,0 @@
1
- import 'isomorphic-fetch';
2
- import 'mocha';
@@ -1,103 +0,0 @@
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
- require("isomorphic-fetch");
13
- const chai_1 = require("chai");
14
- require("mocha");
15
- const icc_x_api_1 = require("../../icc-x-api");
16
- const icc_api_1 = require("../../icc-api");
17
- const User_1 = require("../../icc-api/model/User");
18
- const node_compat_1 = require("../../node-compat");
19
- const Patient_1 = require("../../icc-api/model/Patient");
20
- const mocha_1 = require("mocha");
21
- const test_utils_1 = require("../utils/test_utils");
22
- const TestApi_1 = require("../utils/TestApi");
23
- const chaiAsPromised = require("chai-as-promised");
24
- const EntityShareRequest_1 = require("../../icc-api/model/requests/EntityShareRequest");
25
- const types_1 = require("@icure/test-setup/types");
26
- const AuthenticationProvider_1 = require("../../icc-x-api/auth/AuthenticationProvider");
27
- var initApi = test_utils_1.TestUtils.initApi;
28
- var RequestedPermissionEnum = EntityShareRequest_1.EntityShareRequest.RequestedPermissionEnum;
29
- (0, chai_1.use)(chaiAsPromised);
30
- (0, test_utils_1.setLocalStorage)(fetch);
31
- let env;
32
- let api;
33
- let hcpUser;
34
- const FULL_WRITE = RequestedPermissionEnum.FULL_WRITE;
35
- describe('Patient', () => {
36
- (0, mocha_1.before)(function () {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- this.timeout(600000);
39
- const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
40
- env = yield initializer.execute((0, types_1.getEnvVariables)());
41
- api = yield initApi(env, test_utils_1.hcp1Username);
42
- hcpUser = yield api.userApi.getCurrentUser();
43
- });
44
- });
45
- it('should be capable of creating a patient from scratch', () => __awaiter(void 0, void 0, void 0, function* () {
46
- const rawPatientApiForHcp = new icc_api_1.IccPatientApi(env.iCureUrl, {}, new AuthenticationProvider_1.BasicAuthenticationProvider(env.dataOwnerDetails[test_utils_1.hcp1Username].user, env.dataOwnerDetails[test_utils_1.hcp1Username].password));
47
- const patient = yield rawPatientApiForHcp.createPatient(new Patient_1.Patient({ id: api.cryptoApi.primitives.randomUuid(), firstName: 'Tasty', lastName: 'Test' }));
48
- const pwd = api.cryptoApi.primitives.randomUuid();
49
- const tmpUser = yield api.userApi.createUser(new User_1.User({
50
- id: api.cryptoApi.primitives.randomUuid(),
51
- login: api.cryptoApi.primitives.randomUuid(),
52
- passwordHash: pwd,
53
- patientId: patient.id,
54
- }));
55
- const rsa = new icc_x_api_1.RSAUtilsImpl(node_compat_1.crypto);
56
- const keyPair = yield rsa.generateKeyPair(icc_x_api_1.ShaVersion.Sha256);
57
- const { publicKey, privateKey } = keyPair;
58
- const publicKeyHex = (0, icc_x_api_1.ua2hex)(yield rsa.exportKey(publicKey, 'spki'));
59
- const rawPatientApi = new icc_api_1.IccPatientApi(env.iCureUrl, {}, new AuthenticationProvider_1.BasicAuthenticationProvider(tmpUser.id, pwd));
60
- yield rawPatientApi.modifyPatient(new Patient_1.Patient(Object.assign(Object.assign({}, patient), { publicKey: publicKeyHex })));
61
- // TODO some of these operations may be forbidden by the backend in future versions...
62
- const { userApi, patientApi, cryptoApi } = yield (0, TestApi_1.TestApi)(env.iCureUrl, tmpUser.id, pwd, node_compat_1.crypto, keyPair);
63
- const user = yield userApi.getCurrentUser();
64
- let me = yield patientApi.getPatientWithUser(user, user.patientId);
65
- const mySecretIds = yield patientApi.decryptSecretIdsOf(me);
66
- const myEncryptionKeys = yield patientApi.getEncryptionKeysOf(me);
67
- (0, chai_1.expect)(mySecretIds).to.have.length(1);
68
- (0, chai_1.expect)(myEncryptionKeys).to.have.length(1);
69
- me = yield patientApi.shareWith(hcpUser.healthcarePartyId, me, mySecretIds, { requestedPermissions: FULL_WRITE });
70
- const expectedNote = 'This will be encrypted';
71
- yield patientApi.modifyPatientWithUser(user, new Patient_1.Patient(Object.assign(Object.assign({}, me), { note: expectedNote })));
72
- const pat2 = yield api.patientApi.getPatientWithUser(hcpUser, patient.id);
73
- (0, chai_1.expect)(!!pat2);
74
- (0, chai_1.expect)(pat2.note).to.equal(expectedNote);
75
- })).timeout(60000);
76
- it('should be capable of logging in and encryption', () => __awaiter(void 0, void 0, void 0, function* () {
77
- const { userApi } = yield initApi(env, test_utils_1.patUsername);
78
- const rawPatientApi = new icc_api_1.IccPatientApi(env.iCureUrl, {}, new AuthenticationProvider_1.BasicAuthenticationProvider(env.dataOwnerDetails[test_utils_1.patUsername].user, env.dataOwnerDetails[test_utils_1.patUsername].password));
79
- const user = yield userApi.getCurrentUser();
80
- const patient = yield rawPatientApi.getPatient(user.patientId);
81
- const { calendarItemApi, patientApi, cryptoApi } = yield initApi(env, test_utils_1.patUsername);
82
- const patNote = 'Secret note';
83
- const pat = yield patientApi.modifyPatientWithUser(user, Object.assign(Object.assign({}, (yield patientApi.getPatientWithUser(user, user.patientId))), { note: patNote }));
84
- const ciTitle = 'Secret title';
85
- const ciDetails = 'Important and private information';
86
- const ci = yield calendarItemApi.createCalendarItemWithHcParty(user, yield calendarItemApi.newInstancePatient(user, patient, { patientId: patient.id, title: ciTitle, details: ciDetails }));
87
- if (!(0, test_utils_1.isLiteTest)()) {
88
- yield (0, chai_1.expect)(api.patientApi.getPatientWithUser(hcpUser, patient.id)).to.be.rejected;
89
- yield (0, chai_1.expect)(api.calendarItemApi.getCalendarItemWithUser(hcpUser, ci.id)).to.be.rejected;
90
- }
91
- yield patientApi.shareWith(hcpUser.healthcarePartyId, pat, yield patientApi.decryptSecretIdsOf(pat), { requestedPermissions: FULL_WRITE });
92
- yield calendarItemApi.shareWith(hcpUser.healthcarePartyId, ci, { requestedPermissions: FULL_WRITE });
93
- yield api.cryptoApi.forceReload();
94
- const pat3 = yield api.patientApi.getPatientWithUser(hcpUser, patient.id);
95
- const ci3 = yield api.calendarItemApi.getCalendarItemWithUser(hcpUser, ci.id);
96
- (0, chai_1.expect)(pat3).to.not.be.null;
97
- (0, chai_1.expect)(pat3.note).to.equal(patNote);
98
- (0, chai_1.expect)(ci3).to.not.be.null;
99
- (0, chai_1.expect)(ci3.title).to.equal(ciTitle);
100
- (0, chai_1.expect)(ci3.details).to.equal(ciDetails);
101
- })).timeout(60000);
102
- });
103
- //# sourceMappingURL=patient-user.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"patient-user.js","sourceRoot":"","sources":["../../../test/icc-x-api/patient-user.ts"],"names":[],"mappings":"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","sourcesContent":["import 'isomorphic-fetch'\nimport { expect, use as chaiUse } from 'chai'\nimport 'mocha'\nimport { Apis, RSAUtilsImpl, ShaVersion, ua2hex } from '../../icc-x-api'\nimport { IccPatientApi } from '../../icc-api'\nimport { User } from '../../icc-api/model/User'\nimport { crypto } from '../../node-compat'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { before } from 'mocha'\nimport { getEnvironmentInitializer, hcp1Username, isLiteTest, patUsername, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { TestApi } from '../utils/TestApi'\nimport { RSAUtils } from '../../icc-x-api/crypto/RSA'\nimport * as chaiAsPromised from 'chai-as-promised'\nimport { EntityShareRequest } from '../../icc-api/model/requests/EntityShareRequest'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { BasicAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\nimport initApi = TestUtils.initApi\nimport RequestedPermissionEnum = EntityShareRequest.RequestedPermissionEnum\n\nchaiUse(chaiAsPromised)\n\nsetLocalStorage(fetch)\nlet env: TestVars\nlet api: Apis\nlet hcpUser: User\n\nconst FULL_WRITE = RequestedPermissionEnum.FULL_WRITE\n\ndescribe('Patient', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n api = await initApi(env, hcp1Username)\n hcpUser = await api.userApi.getCurrentUser()\n })\n\n it('should be capable of creating a patient from scratch', async () => {\n const rawPatientApiForHcp = new IccPatientApi(\n env.iCureUrl,\n {},\n new BasicAuthenticationProvider(env.dataOwnerDetails[hcp1Username].user, env.dataOwnerDetails[hcp1Username].password)\n )\n const patient = await rawPatientApiForHcp.createPatient(\n new Patient({ id: api.cryptoApi.primitives.randomUuid(), firstName: 'Tasty', lastName: 'Test' })\n )\n const pwd = api.cryptoApi.primitives.randomUuid()\n const tmpUser = await api.userApi.createUser(\n new User({\n id: api.cryptoApi.primitives.randomUuid(),\n login: api.cryptoApi.primitives.randomUuid(),\n passwordHash: pwd,\n patientId: patient.id,\n })\n )\n\n const rsa = new RSAUtilsImpl(crypto)\n const keyPair = await rsa.generateKeyPair(ShaVersion.Sha256)\n const { publicKey, privateKey } = keyPair\n const publicKeyHex = ua2hex(await rsa.exportKey(publicKey, 'spki'))\n const rawPatientApi = new IccPatientApi(env.iCureUrl, {}, new BasicAuthenticationProvider(tmpUser.id!, pwd))\n await rawPatientApi.modifyPatient(new Patient({ ...patient, publicKey: publicKeyHex }))\n\n // TODO some of these operations may be forbidden by the backend in future versions...\n const { userApi, patientApi, cryptoApi } = await TestApi(env.iCureUrl, tmpUser.id!, pwd!, crypto, keyPair)\n const user = await userApi.getCurrentUser()\n let me: Patient = await patientApi.getPatientWithUser(user, user.patientId!)\n const mySecretIds = await patientApi.decryptSecretIdsOf(me)\n const myEncryptionKeys = await patientApi.getEncryptionKeysOf(me)\n expect(mySecretIds).to.have.length(1)\n expect(myEncryptionKeys).to.have.length(1)\n\n me = await patientApi.shareWith(hcpUser.healthcarePartyId!, me, mySecretIds, { requestedPermissions: FULL_WRITE })\n const expectedNote = 'This will be encrypted'\n await patientApi.modifyPatientWithUser(user, new Patient({ ...me, note: expectedNote }))\n\n const pat2 = await api.patientApi.getPatientWithUser(hcpUser, patient.id!)\n expect(!!pat2)\n expect(pat2.note).to.equal(expectedNote)\n }).timeout(60000)\n\n it('should be capable of logging in and encryption', async () => {\n const { userApi } = await initApi(env, patUsername)\n const rawPatientApi = new IccPatientApi(\n env.iCureUrl,\n {},\n new BasicAuthenticationProvider(env.dataOwnerDetails[patUsername].user, env.dataOwnerDetails[patUsername].password)\n )\n\n const user = await userApi.getCurrentUser()\n const patient = await rawPatientApi.getPatient(user.patientId!)\n\n const { calendarItemApi, patientApi, cryptoApi } = await initApi(env, patUsername)\n\n const patNote = 'Secret note'\n const pat = await patientApi.modifyPatientWithUser(user, {\n ...(await patientApi.getPatientWithUser(user, user.patientId!)),\n note: patNote,\n })\n const ciTitle = 'Secret title'\n const ciDetails = 'Important and private information'\n const ci = await calendarItemApi.createCalendarItemWithHcParty(\n user,\n await calendarItemApi.newInstancePatient(user, patient, { patientId: patient.id, title: ciTitle, details: ciDetails })\n )\n\n if (!isLiteTest()) {\n await expect(api.patientApi.getPatientWithUser(hcpUser, patient.id!)).to.be.rejected\n await expect(api.calendarItemApi.getCalendarItemWithUser(hcpUser, ci.id)).to.be.rejected\n }\n\n await patientApi.shareWith(hcpUser.healthcarePartyId!, pat!, await patientApi.decryptSecretIdsOf(pat!), { requestedPermissions: FULL_WRITE })\n await calendarItemApi.shareWith(hcpUser.healthcarePartyId!, ci!, { requestedPermissions: FULL_WRITE })\n await api.cryptoApi.forceReload()\n const pat3 = await api.patientApi.getPatientWithUser(hcpUser, patient.id!)\n const ci3 = await api.calendarItemApi.getCalendarItemWithUser(hcpUser, ci.id)\n expect(pat3).to.not.be.null\n expect(pat3.note).to.equal(patNote)\n expect(ci3).to.not.be.null\n expect(ci3.title).to.equal(ciTitle)\n expect(ci3.details).to.equal(ciDetails)\n }).timeout(60000)\n})\n"]}
@@ -1 +0,0 @@
1
- import 'isomorphic-fetch';
@@ -1,48 +0,0 @@
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
- const chai_1 = require("chai");
13
- const icc_x_api_1 = require("../../../icc-x-api");
14
- const os_1 = require("os");
15
- require("isomorphic-fetch");
16
- const util_1 = require("util");
17
- global.localStorage = new (require('node-localstorage').LocalStorage)((0, os_1.tmpdir)(), 5 * 1024 * 1024 * 1024);
18
- global.fetch = fetch;
19
- global.Storage = '';
20
- global.TextDecoder = util_1.TextDecoder;
21
- global.TextEncoder = util_1.TextEncoder;
22
- const testStorage = new icc_x_api_1.LocalStorageImpl();
23
- describe('Test LocalStorageFacade abstraction', () => {
24
- it('should store and retrieve a keypair', () => __awaiter(void 0, void 0, void 0, function* () {
25
- const key = 'key';
26
- const keyPair = {
27
- publicKey: 'publicKey',
28
- privateKey: 'privateKey', // pragma: allowlist secret
29
- };
30
- yield testStorage.setItem(key, JSON.stringify(keyPair));
31
- (0, chai_1.expect)(yield testStorage.getItem(key)).to.eq(JSON.stringify(keyPair));
32
- }));
33
- it('should store and retrieve a string', () => __awaiter(void 0, void 0, void 0, function* () {
34
- const key = 'key';
35
- const value = 'value';
36
- yield testStorage.setItem(key, value);
37
- (0, chai_1.expect)(yield testStorage.getItem(key)).to.eq(value);
38
- }));
39
- it('should remove a key', () => __awaiter(void 0, void 0, void 0, function* () {
40
- const key = 'key';
41
- const value = 'value';
42
- yield testStorage.setItem(key, value);
43
- (0, chai_1.expect)(yield testStorage.getItem(key)).to.eq(value);
44
- yield testStorage.removeItem(key);
45
- (0, chai_1.expect)(yield testStorage.getItem(key)).to.be.undefined;
46
- }));
47
- });
48
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../test/icc-x-api/storage/storage.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+BAA6B;AAC7B,kDAAqD;AACrD,2BAA2B;AAC3B,4BAAyB;AACzB,+BACC;AAAC,MAAc,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,CAAC,IAAA,WAAM,GAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAChH;AAAC,MAAc,CAAC,KAAK,GAAG,KAAK,CAC7B;AAAC,MAAc,CAAC,OAAO,GAAG,EAAE,CAC5B;AAAC,MAAc,CAAC,WAAW,GAAG,kBAAW,CACzC;AAAC,MAAc,CAAC,WAAW,GAAG,kBAAW,CAAA;AAC1C,MAAM,WAAW,GAAG,IAAI,4BAAgB,EAAE,CAAA;AAE1C,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACnD,MAAM,GAAG,GAAG,KAAK,CAAA;QACjB,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,WAAW;YACtB,UAAU,EAAE,YAAY,EAAE,2BAA2B;SACtD,CAAA;QACD,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QACvD,IAAA,aAAM,EAAC,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACvE,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAS,EAAE;QAClD,MAAM,GAAG,GAAG,KAAK,CAAA;QACjB,MAAM,KAAK,GAAG,OAAO,CAAA;QACrB,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACrC,IAAA,aAAM,EAAC,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACrD,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,qBAAqB,EAAE,GAAS,EAAE;QACnC,MAAM,GAAG,GAAG,KAAK,CAAA;QACjB,MAAM,KAAK,GAAG,OAAO,CAAA;QACrB,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACrC,IAAA,aAAM,EAAC,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACnD,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACjC,IAAA,aAAM,EAAC,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAA;IACxD,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { expect } from 'chai'\nimport { LocalStorageImpl } from '../../../icc-x-api'\nimport { tmpdir } from 'os'\nimport 'isomorphic-fetch'\nimport { TextDecoder, TextEncoder } from 'util'\n;(global as any).localStorage = new (require('node-localstorage').LocalStorage)(tmpdir(), 5 * 1024 * 1024 * 1024)\n;(global as any).fetch = fetch\n;(global as any).Storage = ''\n;(global as any).TextDecoder = TextDecoder\n;(global as any).TextEncoder = TextEncoder\nconst testStorage = new LocalStorageImpl()\n\ndescribe('Test LocalStorageFacade abstraction', () => {\n it('should store and retrieve a keypair', async () => {\n const key = 'key'\n const keyPair = {\n publicKey: 'publicKey',\n privateKey: 'privateKey', // pragma: allowlist secret\n }\n await testStorage.setItem(key, JSON.stringify(keyPair))\n expect(await testStorage.getItem(key)).to.eq(JSON.stringify(keyPair))\n })\n\n it('should store and retrieve a string', async () => {\n const key = 'key'\n const value = 'value'\n await testStorage.setItem(key, value)\n expect(await testStorage.getItem(key)).to.eq(value)\n })\n\n it('should remove a key', async () => {\n const key = 'key'\n const value = 'value'\n await testStorage.setItem(key, value)\n expect(await testStorage.getItem(key)).to.eq(value)\n await testStorage.removeItem(key)\n expect(await testStorage.getItem(key)).to.be.undefined\n })\n})\n"]}
@@ -1 +0,0 @@
1
- import 'isomorphic-fetch';
@@ -1,79 +0,0 @@
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
- const mocha_1 = require("mocha");
13
- const test_utils_1 = require("../utils/test_utils");
14
- const types_1 = require("@icure/test-setup/types");
15
- const icc_x_api_1 = require("../../icc-x-api");
16
- const TestCryptoStrategies_1 = require("../utils/TestCryptoStrategies");
17
- const crypto_1 = require("crypto");
18
- const TestStorage_1 = require("../utils/TestStorage");
19
- const chai_1 = require("chai");
20
- require("isomorphic-fetch");
21
- var initMasterApi = test_utils_1.TestUtils.initMasterApi;
22
- (0, chai_1.use)(require('chai-as-promised'));
23
- (0, test_utils_1.setLocalStorage)(fetch);
24
- let env;
25
- let api;
26
- let user;
27
- let login;
28
- let keypair;
29
- describe('A user without access to parent data', () => {
30
- (0, mocha_1.before)(function () {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- this.timeout(600000);
33
- const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
34
- env = yield initializer.execute((0, types_1.getEnvVariables)());
35
- const initialisationApi = yield initMasterApi(env);
36
- const initialisationUser = yield initialisationApi.userApi.getCurrentUser();
37
- const childHcp = yield initialisationApi.healthcarePartyApi.createHealthcareParty({
38
- id: initialisationApi.cryptoApi.primitives.randomUuid(),
39
- name: 'Some hcp',
40
- parentId: initialisationUser.healthcarePartyId,
41
- });
42
- login = `childUser-${initialisationApi.cryptoApi.primitives.randomUuid()}`;
43
- const childUser = yield initialisationApi.userApi.createUser({
44
- id: initialisationApi.cryptoApi.primitives.randomUuid(),
45
- healthcarePartyId: childHcp.id,
46
- login,
47
- passwordHash: 'LetMeInForReal',
48
- });
49
- keypair = yield initialisationApi.cryptoApi.primitives.RSA.generateKeyPair(icc_x_api_1.ShaVersion.Sha256);
50
- api = yield icc_x_api_1.IcureApi.initialise(env.iCureUrl, { username: childUser.login, password: 'LetMeInForReal' }, new TestCryptoStrategies_1.TestCryptoStrategies(keypair), crypto_1.webcrypto, fetch, {
51
- storage: new TestStorage_1.TestStorage(),
52
- keyStorage: new TestStorage_1.TestKeyStorage(),
53
- disableParentKeysInitialisation: true,
54
- });
55
- user = yield api.userApi.getCurrentUser();
56
- });
57
- });
58
- it('should not be able to initialise the api without disabling parent keys initialisation', () => __awaiter(void 0, void 0, void 0, function* () {
59
- yield (0, chai_1.expect)(icc_x_api_1.IcureApi.initialise(env.iCureUrl, { username: login, password: 'LetMeInForReal' }, new TestCryptoStrategies_1.TestCryptoStrategies(keypair), crypto_1.webcrypto, fetch, {
60
- storage: new TestStorage_1.TestStorage(),
61
- keyStorage: new TestStorage_1.TestKeyStorage(),
62
- })).to.be.rejected;
63
- }));
64
- it('should still be able to create and retrieve his data', () => __awaiter(void 0, void 0, void 0, function* () {
65
- const patient = yield api.patientApi.createPatientWithUser(user, yield api.patientApi.newInstance(user, {
66
- firstName: 'Tasty',
67
- lastName: 'Test',
68
- note: 'Secret',
69
- }));
70
- (0, chai_1.expect)(patient.note).to.equal('Secret');
71
- const he = yield api.healthcareElementApi.createHealthElementWithUser(user, yield api.healthcareElementApi.newInstance(user, patient, {
72
- note: 'Secret 2',
73
- }));
74
- (0, chai_1.expect)(he.note).to.equal('Secret 2');
75
- (0, chai_1.expect)(he.secretForeignKeys).to.have.length(1);
76
- (0, chai_1.expect)(he.secretForeignKeys).to.have.members(yield api.patientApi.decryptSecretIdsOf(patient));
77
- }));
78
- });
79
- //# sourceMappingURL=test-api-no-parent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-api-no-parent.js","sourceRoot":"","sources":["../../../test/icc-x-api/test-api-no-parent.ts"],"names":[],"mappings":"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","sourcesContent":["import { before } from 'mocha'\nimport { getEnvironmentInitializer, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { Apis, IcureApi, ShaVersion } from '../../icc-x-api'\nimport { User } from '../../icc-api/model/User'\nimport { TestCryptoStrategies } from '../utils/TestCryptoStrategies'\nimport { webcrypto } from 'crypto'\nimport { TestKeyStorage, TestStorage } from '../utils/TestStorage'\nimport { expect, use as chaiUse } from 'chai'\nimport 'isomorphic-fetch'\nimport { KeyPair } from '../../icc-x-api/crypto/RSA'\nimport initMasterApi = TestUtils.initMasterApi\n\nchaiUse(require('chai-as-promised'))\n\nsetLocalStorage(fetch)\nlet env: TestVars\nlet api: Apis\nlet user: User\nlet login: string\nlet keypair: KeyPair<CryptoKey>\n\ndescribe('A user without access to parent data', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n const initialisationApi = await initMasterApi(env)\n const initialisationUser = await initialisationApi.userApi.getCurrentUser()\n const childHcp = await initialisationApi.healthcarePartyApi.createHealthcareParty({\n id: initialisationApi.cryptoApi.primitives.randomUuid(),\n name: 'Some hcp',\n parentId: initialisationUser.healthcarePartyId,\n })\n login = `childUser-${initialisationApi.cryptoApi.primitives.randomUuid()}`\n const childUser = await initialisationApi.userApi.createUser({\n id: initialisationApi.cryptoApi.primitives.randomUuid(),\n healthcarePartyId: childHcp.id,\n login,\n passwordHash: 'LetMeInForReal',\n })\n keypair = await initialisationApi.cryptoApi.primitives.RSA.generateKeyPair(ShaVersion.Sha256)\n api = await IcureApi.initialise(\n env.iCureUrl,\n { username: childUser.login!, password: 'LetMeInForReal' },\n new TestCryptoStrategies(keypair),\n webcrypto as any,\n fetch,\n {\n storage: new TestStorage(),\n keyStorage: new TestKeyStorage(),\n disableParentKeysInitialisation: true,\n }\n )\n user = await api.userApi.getCurrentUser()\n })\n\n it('should not be able to initialise the api without disabling parent keys initialisation', async () => {\n await expect(\n IcureApi.initialise(env.iCureUrl, { username: login, password: 'LetMeInForReal' }, new TestCryptoStrategies(keypair), webcrypto as any, fetch, {\n storage: new TestStorage(),\n keyStorage: new TestKeyStorage(),\n })\n ).to.be.rejected\n })\n\n it('should still be able to create and retrieve his data', async () => {\n const patient = await api.patientApi.createPatientWithUser(\n user,\n await api.patientApi.newInstance(user, {\n firstName: 'Tasty',\n lastName: 'Test',\n note: 'Secret',\n })\n )\n expect(patient.note).to.equal('Secret')\n const he = await api.healthcareElementApi.createHealthElementWithUser(\n user,\n await api.healthcareElementApi.newInstance(user, patient, {\n note: 'Secret 2',\n })\n )\n expect(he.note).to.equal('Secret 2')\n expect(he.secretForeignKeys).to.have.length(1)\n expect(he.secretForeignKeys).to.have.members(await api.patientApi.decryptSecretIdsOf(patient))\n })\n})\n"]}
@@ -1 +0,0 @@
1
- import 'isomorphic-fetch';