@icure/api 8.6.19 → 8.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) 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/utils/code-util.d.ts +23 -0
  53. package/icc-x-api/utils/code-util.js +39 -2
  54. package/icc-x-api/utils/code-util.js.map +1 -1
  55. package/icc-x-api/utils/collection-utils.d.ts +13 -0
  56. package/icc-x-api/utils/collection-utils.js +79 -0
  57. package/icc-x-api/utils/collection-utils.js.map +1 -1
  58. package/icc-x-api/utils/compression-utils.d.ts +28 -0
  59. package/icc-x-api/utils/compression-utils.js +106 -0
  60. package/icc-x-api/utils/compression-utils.js.map +1 -0
  61. package/icc-x-api/utils/crypto-utils.js +7 -7
  62. package/icc-x-api/utils/crypto-utils.js.map +1 -1
  63. package/icc-x-api/utils/formatting-util.d.ts +3 -3
  64. package/icc-x-api/utils/formatting-util.js +22 -23
  65. package/icc-x-api/utils/formatting-util.js.map +1 -1
  66. package/icc-x-api/utils/hcp-util.js +2 -3
  67. package/icc-x-api/utils/hcp-util.js.map +1 -1
  68. package/icc-x-api/utils/insurability-util.js +10 -8
  69. package/icc-x-api/utils/insurability-util.js.map +1 -1
  70. package/icc-x-api/utils/lzma-wasm.d.ts +6 -0
  71. package/icc-x-api/utils/lzma-wasm.js +81 -0
  72. package/icc-x-api/utils/lzma-wasm.js.map +1 -0
  73. package/icc-x-api/utils/mutex.d.ts +12 -0
  74. package/icc-x-api/utils/mutex.js +26 -0
  75. package/icc-x-api/utils/mutex.js.map +1 -0
  76. package/icc-x-api/utils/websocket.js +7 -7
  77. package/icc-x-api/utils/websocket.js.map +1 -1
  78. package/icc-x-api/wasm/lzma/lzma.js +2 -0
  79. package/icc-x-api/wasm/lzma/lzma.wasm +0 -0
  80. package/package.json +2 -11
  81. package/icc-x-api/utils/uuid-encoder.d.ts +0 -44
  82. package/icc-x-api/utils/uuid-encoder.js +0 -114
  83. package/icc-x-api/utils/uuid-encoder.js.map +0 -1
  84. package/test/icc-api/api/IccAgendaApi.d.ts +0 -1
  85. package/test/icc-api/api/IccAgendaApi.js +0 -64
  86. package/test/icc-api/api/IccAgendaApi.js.map +0 -1
  87. package/test/icc-api/api/IccAnonymousAccessApi.d.ts +0 -1
  88. package/test/icc-api/api/IccAnonymousAccessApi.js +0 -58
  89. package/test/icc-api/api/IccAnonymousAccessApi.js.map +0 -1
  90. package/test/icc-api/api/IccCalendarItemApi.d.ts +0 -1
  91. package/test/icc-api/api/IccCalendarItemApi.js +0 -67
  92. package/test/icc-api/api/IccCalendarItemApi.js.map +0 -1
  93. package/test/icc-api/api/IccCalendarItemTypeApi.d.ts +0 -1
  94. package/test/icc-api/api/IccCalendarItemTypeApi.js +0 -96
  95. package/test/icc-api/api/IccCalendarItemTypeApi.js.map +0 -1
  96. package/test/icc-api/api/IccCodeApi.d.ts +0 -1
  97. package/test/icc-api/api/IccCodeApi.js +0 -38
  98. package/test/icc-api/api/IccCodeApi.js.map +0 -1
  99. package/test/icc-api/api/IccDocumentApi.d.ts +0 -1
  100. package/test/icc-api/api/IccDocumentApi.js +0 -199
  101. package/test/icc-api/api/IccDocumentApi.js.map +0 -1
  102. package/test/icc-api/api/IccGroupApi.d.ts +0 -1
  103. package/test/icc-api/api/IccGroupApi.js +0 -50
  104. package/test/icc-api/api/IccGroupApi.js.map +0 -1
  105. package/test/icc-api/api/IccKeywordApi.d.ts +0 -1
  106. package/test/icc-api/api/IccKeywordApi.js +0 -64
  107. package/test/icc-api/api/IccKeywordApi.js.map +0 -1
  108. package/test/icc-api/api/IccMedicalLocationApi.d.ts +0 -1
  109. package/test/icc-api/api/IccMedicalLocationApi.js +0 -64
  110. package/test/icc-api/api/IccMedicalLocationApi.js.map +0 -1
  111. package/test/icc-api/api/IccPlaceApi.d.ts +0 -1
  112. package/test/icc-api/api/IccPlaceApi.js +0 -64
  113. package/test/icc-api/api/IccPlaceApi.js.map +0 -1
  114. package/test/icc-api/api/IccRecoveryDataApi.d.ts +0 -1
  115. package/test/icc-api/api/IccRecoveryDataApi.js +0 -95
  116. package/test/icc-api/api/IccRecoveryDataApi.js.map +0 -1
  117. package/test/icc-api/api/IccRoleApi.d.ts +0 -1
  118. package/test/icc-api/api/IccRoleApi.js +0 -34
  119. package/test/icc-api/api/IccRoleApi.js.map +0 -1
  120. package/test/icc-api/api/IccUserApi.d.ts +0 -1
  121. package/test/icc-api/api/IccUserApi.js +0 -96
  122. package/test/icc-api/api/IccUserApi.js.map +0 -1
  123. package/test/icc-api/e2e/IccCalendarItemApi.d.ts +0 -1
  124. package/test/icc-api/e2e/IccCalendarItemApi.js +0 -46
  125. package/test/icc-api/e2e/IccCalendarItemApi.js.map +0 -1
  126. package/test/icc-api/model/modelHelpersTest.d.ts +0 -1
  127. package/test/icc-api/model/modelHelpersTest.js +0 -45
  128. package/test/icc-api/model/modelHelpersTest.js.map +0 -1
  129. package/test/icc-x-api/auth/group-switch-test.d.ts +0 -1
  130. package/test/icc-x-api/auth/group-switch-test.js +0 -81
  131. package/test/icc-x-api/auth/group-switch-test.js.map +0 -1
  132. package/test/icc-x-api/auth/jwt-concurrency-test.d.ts +0 -2
  133. package/test/icc-x-api/auth/jwt-concurrency-test.js +0 -112
  134. package/test/icc-x-api/auth/jwt-concurrency-test.js.map +0 -1
  135. package/test/icc-x-api/auth/jwt-provider-test.d.ts +0 -1
  136. package/test/icc-x-api/auth/jwt-provider-test.js +0 -197
  137. package/test/icc-x-api/auth/jwt-provider-test.js.map +0 -1
  138. package/test/icc-x-api/auth/smart-auth-provider-test.d.ts +0 -1
  139. package/test/icc-x-api/auth/smart-auth-provider-test.js +0 -224
  140. package/test/icc-x-api/auth/smart-auth-provider-test.js.map +0 -1
  141. package/test/icc-x-api/autofix-anonymity-test.d.ts +0 -1
  142. package/test/icc-x-api/autofix-anonymity-test.js +0 -122
  143. package/test/icc-x-api/autofix-anonymity-test.js.map +0 -1
  144. package/test/icc-x-api/confidential-entities-test.d.ts +0 -1
  145. package/test/icc-x-api/confidential-entities-test.js +0 -168
  146. package/test/icc-x-api/confidential-entities-test.js.map +0 -1
  147. package/test/icc-x-api/crud/comprehensive-crud-test.d.ts +0 -1
  148. package/test/icc-x-api/crud/comprehensive-crud-test.js +0 -276
  149. package/test/icc-x-api/crud/comprehensive-crud-test.js.map +0 -1
  150. package/test/icc-x-api/crud/entities-crud-test-interface.d.ts +0 -16
  151. package/test/icc-x-api/crud/entities-crud-test-interface.js +0 -408
  152. package/test/icc-x-api/crud/entities-crud-test-interface.js.map +0 -1
  153. package/test/icc-x-api/crypto/anonymous-delegations-test.d.ts +0 -1
  154. package/test/icc-x-api/crypto/anonymous-delegations-test.js +0 -587
  155. package/test/icc-x-api/crypto/anonymous-delegations-test.js.map +0 -1
  156. package/test/icc-x-api/crypto/concurrency.d.ts +0 -1
  157. package/test/icc-x-api/crypto/concurrency.js +0 -35
  158. package/test/icc-x-api/crypto/concurrency.js.map +0 -1
  159. package/test/icc-x-api/crypto/crypto-utils.d.ts +0 -1
  160. package/test/icc-x-api/crypto/crypto-utils.js +0 -79
  161. package/test/icc-x-api/crypto/crypto-utils.js.map +0 -1
  162. package/test/icc-x-api/crypto/cryptoTest.d.ts +0 -2
  163. package/test/icc-x-api/crypto/cryptoTest.js +0 -402
  164. package/test/icc-x-api/crypto/cryptoTest.js.map +0 -1
  165. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.d.ts +0 -1
  166. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js +0 -166
  167. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js.map +0 -1
  168. package/test/icc-x-api/crypto/exchange-data-manager-test.d.ts +0 -1
  169. package/test/icc-x-api/crypto/exchange-data-manager-test.js +0 -674
  170. package/test/icc-x-api/crypto/exchange-data-manager-test.js.map +0 -1
  171. package/test/icc-x-api/crypto/full-crypto-test.d.ts +0 -1
  172. package/test/icc-x-api/crypto/full-crypto-test.js +0 -454
  173. package/test/icc-x-api/crypto/full-crypto-test.js.map +0 -1
  174. package/test/icc-x-api/crypto/legacy-metadata-migration-test.d.ts +0 -1
  175. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js +0 -379
  176. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js.map +0 -1
  177. package/test/icc-x-api/crypto/secure-delegations-manager-test.d.ts +0 -1
  178. package/test/icc-x-api/crypto/secure-delegations-manager-test.js +0 -278
  179. package/test/icc-x-api/crypto/secure-delegations-manager-test.js.map +0 -1
  180. package/test/icc-x-api/crypto/shamir.d.ts +0 -2
  181. package/test/icc-x-api/crypto/shamir.js +0 -167
  182. package/test/icc-x-api/crypto/shamir.js.map +0 -1
  183. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.d.ts +0 -1
  184. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js +0 -71
  185. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js.map +0 -1
  186. package/test/icc-x-api/crypto/soft-deleted-data-owners.d.ts +0 -2
  187. package/test/icc-x-api/crypto/soft-deleted-data-owners.js +0 -113
  188. package/test/icc-x-api/crypto/soft-deleted-data-owners.js.map +0 -1
  189. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.d.ts +0 -1
  190. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js +0 -246
  191. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js.map +0 -1
  192. package/test/icc-x-api/entity-with-attachments-api-test.d.ts +0 -1
  193. package/test/icc-x-api/entity-with-attachments-api-test.js +0 -142
  194. package/test/icc-x-api/entity-with-attachments-api-test.js.map +0 -1
  195. package/test/icc-x-api/filters/filters.d.ts +0 -1
  196. package/test/icc-x-api/filters/filters.js +0 -49
  197. package/test/icc-x-api/filters/filters.js.map +0 -1
  198. package/test/icc-x-api/filters/healthelement.d.ts +0 -1
  199. package/test/icc-x-api/filters/healthelement.js +0 -333
  200. package/test/icc-x-api/filters/healthelement.js.map +0 -1
  201. package/test/icc-x-api/icc-accesslog-x-api.d.ts +0 -1
  202. package/test/icc-x-api/icc-accesslog-x-api.js +0 -106
  203. package/test/icc-x-api/icc-accesslog-x-api.js.map +0 -1
  204. package/test/icc-x-api/icc-application-settings-x-api.d.ts +0 -1
  205. package/test/icc-x-api/icc-application-settings-x-api.js +0 -91
  206. package/test/icc-x-api/icc-application-settings-x-api.js.map +0 -1
  207. package/test/icc-x-api/icc-auth-api.d.ts +0 -1
  208. package/test/icc-x-api/icc-auth-api.js +0 -47
  209. package/test/icc-x-api/icc-auth-api.js.map +0 -1
  210. package/test/icc-x-api/icc-calendar-item-x-api.d.ts +0 -1
  211. package/test/icc-x-api/icc-calendar-item-x-api.js +0 -150
  212. package/test/icc-x-api/icc-calendar-item-x-api.js.map +0 -1
  213. package/test/icc-x-api/icc-contact-x-api.d.ts +0 -1
  214. package/test/icc-x-api/icc-contact-x-api.js +0 -355
  215. package/test/icc-x-api/icc-contact-x-api.js.map +0 -1
  216. package/test/icc-x-api/icc-document-x-api.d.ts +0 -1
  217. package/test/icc-x-api/icc-document-x-api.js +0 -76
  218. package/test/icc-x-api/icc-document-x-api.js.map +0 -1
  219. package/test/icc-x-api/icc-form-x-api.d.ts +0 -1
  220. package/test/icc-x-api/icc-form-x-api.js +0 -413
  221. package/test/icc-x-api/icc-form-x-api.js.map +0 -1
  222. package/test/icc-x-api/icc-hcparty-x-api-test.d.ts +0 -1
  223. package/test/icc-x-api/icc-hcparty-x-api-test.js +0 -43
  224. package/test/icc-x-api/icc-hcparty-x-api-test.js.map +0 -1
  225. package/test/icc-x-api/icc-helement-x-api-test.d.ts +0 -1
  226. package/test/icc-x-api/icc-helement-x-api-test.js +0 -155
  227. package/test/icc-x-api/icc-helement-x-api-test.js.map +0 -1
  228. package/test/icc-x-api/icc-invoice-x-api.d.ts +0 -1
  229. package/test/icc-x-api/icc-invoice-x-api.js +0 -99
  230. package/test/icc-x-api/icc-invoice-x-api.js.map +0 -1
  231. package/test/icc-x-api/icc-maintenance-task-x-api-test.d.ts +0 -1
  232. package/test/icc-x-api/icc-maintenance-task-x-api-test.js +0 -222
  233. package/test/icc-x-api/icc-maintenance-task-x-api-test.js.map +0 -1
  234. package/test/icc-x-api/icc-message-x-api.d.ts +0 -1
  235. package/test/icc-x-api/icc-message-x-api.js +0 -54
  236. package/test/icc-x-api/icc-message-x-api.js.map +0 -1
  237. package/test/icc-x-api/icc-patient-x-api-test.d.ts +0 -1
  238. package/test/icc-x-api/icc-patient-x-api-test.js +0 -165
  239. package/test/icc-x-api/icc-patient-x-api-test.js.map +0 -1
  240. package/test/icc-x-api/icc-recovery-x-api.d.ts +0 -1
  241. package/test/icc-x-api/icc-recovery-x-api.js +0 -175
  242. package/test/icc-x-api/icc-recovery-x-api.js.map +0 -1
  243. package/test/icc-x-api/icc-topic-x-api.d.ts +0 -1
  244. package/test/icc-x-api/icc-topic-x-api.js +0 -269
  245. package/test/icc-x-api/icc-topic-x-api.js.map +0 -1
  246. package/test/icc-x-api/icc-user-x-api-test.d.ts +0 -1
  247. package/test/icc-x-api/icc-user-x-api-test.js +0 -99
  248. package/test/icc-x-api/icc-user-x-api-test.js.map +0 -1
  249. package/test/icc-x-api/keyless-api.d.ts +0 -1
  250. package/test/icc-x-api/keyless-api.js +0 -125
  251. package/test/icc-x-api/keyless-api.js.map +0 -1
  252. package/test/icc-x-api/patient-user.d.ts +0 -2
  253. package/test/icc-x-api/patient-user.js +0 -103
  254. package/test/icc-x-api/patient-user.js.map +0 -1
  255. package/test/icc-x-api/storage/storage.d.ts +0 -1
  256. package/test/icc-x-api/storage/storage.js +0 -48
  257. package/test/icc-x-api/storage/storage.js.map +0 -1
  258. package/test/icc-x-api/test-api-no-parent.d.ts +0 -1
  259. package/test/icc-x-api/test-api-no-parent.js +0 -79
  260. package/test/icc-x-api/test-api-no-parent.js.map +0 -1
  261. package/test/icc-x-api/test-legacy-data-support.d.ts +0 -1
  262. package/test/icc-x-api/test-legacy-data-support.js +0 -375
  263. package/test/icc-x-api/test-legacy-data-support.js.map +0 -1
  264. package/test/icc-x-api/utils/graph-test.d.ts +0 -1
  265. package/test/icc-x-api/utils/graph-test.js +0 -54
  266. package/test/icc-x-api/utils/graph-test.js.map +0 -1
  267. package/test/icc-x-api/utils/lru-temporised-async-cache-test.d.ts +0 -1
  268. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js +0 -364
  269. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js.map +0 -1
  270. package/test/support/CSM-185.d.ts +0 -1
  271. package/test/support/CSM-185.js +0 -124
  272. package/test/support/CSM-185.js.map +0 -1
  273. package/test/support/CSM-243.d.ts +0 -1
  274. package/test/support/CSM-243.js +0 -120
  275. package/test/support/CSM-243.js.map +0 -1
  276. package/test/support/CSM-543.d.ts +0 -1
  277. package/test/support/CSM-543.js +0 -164
  278. package/test/support/CSM-543.js.map +0 -1
  279. package/test/support/CSM-729.d.ts +0 -1
  280. package/test/support/CSM-729.js +0 -225
  281. package/test/support/CSM-729.js.map +0 -1
  282. package/test/support/CSM-87.d.ts +0 -0
  283. package/test/support/CSM-87.js +0 -21
  284. package/test/support/CSM-87.js.map +0 -1
  285. package/test/support/CSM-93.d.ts +0 -1
  286. package/test/support/CSM-93.js +0 -112
  287. package/test/support/CSM-93.js.map +0 -1
  288. package/test/utils/FakeDataOwnerApi.d.ts +0 -32
  289. package/test/utils/FakeDataOwnerApi.js +0 -136
  290. package/test/utils/FakeDataOwnerApi.js.map +0 -1
  291. package/test/utils/FakeEncryptionKeysManager.d.ts +0 -36
  292. package/test/utils/FakeEncryptionKeysManager.js +0 -98
  293. package/test/utils/FakeEncryptionKeysManager.js.map +0 -1
  294. package/test/utils/FakeExchangeDataApi.d.ts +0 -32
  295. package/test/utils/FakeExchangeDataApi.js +0 -92
  296. package/test/utils/FakeExchangeDataApi.js.map +0 -1
  297. package/test/utils/FakeExchangeDataManager.d.ts +0 -48
  298. package/test/utils/FakeExchangeDataManager.js +0 -82
  299. package/test/utils/FakeExchangeDataManager.js.map +0 -1
  300. package/test/utils/FakeExchangeDataMapManager.d.ts +0 -12
  301. package/test/utils/FakeExchangeDataMapManager.js +0 -38
  302. package/test/utils/FakeExchangeDataMapManager.js.map +0 -1
  303. package/test/utils/FakeGenericApi.d.ts +0 -16
  304. package/test/utils/FakeGenericApi.js +0 -65
  305. package/test/utils/FakeGenericApi.js.map +0 -1
  306. package/test/utils/KeylessCryptoStrategies.d.ts +0 -23
  307. package/test/utils/KeylessCryptoStrategies.js +0 -26
  308. package/test/utils/KeylessCryptoStrategies.js.map +0 -1
  309. package/test/utils/TestApi.d.ts +0 -3
  310. package/test/utils/TestApi.js +0 -30
  311. package/test/utils/TestApi.js.map +0 -1
  312. package/test/utils/TestCollectionUtils.d.ts +0 -1
  313. package/test/utils/TestCollectionUtils.js +0 -109
  314. package/test/utils/TestCollectionUtils.js.map +0 -1
  315. package/test/utils/TestCryptoStrategies.d.ts +0 -42
  316. package/test/utils/TestCryptoStrategies.js +0 -80
  317. package/test/utils/TestCryptoStrategies.js.map +0 -1
  318. package/test/utils/TestStorage.d.ts +0 -23
  319. package/test/utils/TestStorage.js +0 -61
  320. package/test/utils/TestStorage.js.map +0 -1
  321. package/test/utils/roles.d.ts +0 -14
  322. package/test/utils/roles.js +0 -345
  323. package/test/utils/roles.js.map +0 -1
  324. package/test/utils/test_utils.d.ts +0 -87
  325. package/test/utils/test_utils.js +0 -452
  326. 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":";;;;;;;;;;;AAAA,iCAA8B;AAC9B,oDAA2F;AAC3F,mDAAmE;AACnE,+CAA4D;AAE5D,wEAAoE;AACpE,mCAAkC;AAClC,sDAAkE;AAClE,+BAA6C;AAC7C,4BAAyB;AAEzB,IAAO,aAAa,GAAG,sBAAS,CAAC,aAAa,CAAA;AAE9C,IAAA,UAAO,EAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAA;AAEpC,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAA;AACtB,IAAI,GAAa,CAAA;AACjB,IAAI,GAAS,CAAA;AACb,IAAI,IAAU,CAAA;AACd,IAAI,KAAa,CAAA;AACjB,IAAI,OAA2B,CAAA;AAE/B,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,IAAA,cAAM,EAAC;;YACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACpB,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAyB,GAAE,CAAA;YACrD,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAA,uBAAe,GAAE,CAAC,CAAA;YAClD,MAAM,iBAAiB,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;YAClD,MAAM,kBAAkB,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;YAC3E,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;gBAChF,EAAE,EAAE,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE;gBACvD,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,kBAAkB,CAAC,iBAAiB;aAC/C,CAAC,CAAA;YACF,KAAK,GAAG,aAAa,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAA;YAC1E,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC3D,EAAE,EAAE,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE;gBACvD,iBAAiB,EAAE,QAAQ,CAAC,EAAE;gBAC9B,KAAK;gBACL,YAAY,EAAE,gBAAgB;aAC/B,CAAC,CAAA;YACF,OAAO,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,sBAAU,CAAC,MAAM,CAAC,CAAA;YAC7F,GAAG,GAAG,MAAM,oBAAQ,CAAC,UAAU,CAC7B,GAAG,CAAC,QAAQ,EACZ,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAC1D,IAAI,2CAAoB,CAAC,OAAO,CAAC,EACjC,kBAAgB,EAChB,KAAK,EACL;gBACE,OAAO,EAAE,IAAI,yBAAW,EAAE;gBAC1B,UAAU,EAAE,IAAI,4BAAc,EAAE;gBAChC,+BAA+B,EAAE,IAAI;aACtC,CACF,CAAA;YACD,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;QAC3C,CAAC;KAAA,CAAC,CAAA;IAEF,EAAE,CAAC,uFAAuF,EAAE,GAAS,EAAE;QACrG,MAAM,IAAA,aAAM,EACV,oBAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,IAAI,2CAAoB,CAAC,OAAO,CAAC,EAAE,kBAAgB,EAAE,KAAK,EAAE;YAC7I,OAAO,EAAE,IAAI,yBAAW,EAAE;YAC1B,UAAU,EAAE,IAAI,4BAAc,EAAE;SACjC,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAA;IAClB,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAS,EAAE;QACpE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,qBAAqB,CACxD,IAAI,EACJ,MAAM,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE;YACrC,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CACH,CAAA;QACD,IAAA,aAAM,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,2BAA2B,CACnE,IAAI,EACJ,MAAM,GAAG,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE;YACxD,IAAI,EAAE,UAAU;SACjB,CAAC,CACH,CAAA;QACD,IAAA,aAAM,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACpC,IAAA,aAAM,EAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC9C,IAAA,aAAM,EAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;IAChG,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","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';