@icure/api 8.11.0 → 8.13.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 (302) hide show
  1. package/icc-api/api/IccUserApi.d.ts +1 -1
  2. package/icc-api/api/IccUserApi.js +2 -2
  3. package/icc-api/api/IccUserApi.js.map +1 -1
  4. package/icc-api/model/HealthElement.d.ts +11 -0
  5. package/icc-api/model/HealthElement.js.map +1 -1
  6. package/icc-api/model/HealthElementAsserter.d.ts +33 -0
  7. package/icc-api/model/HealthElementAsserter.js +28 -0
  8. package/icc-api/model/HealthElementAsserter.js.map +1 -0
  9. package/icc-api/model/HealthElementQualifiedLink.d.ts +31 -0
  10. package/icc-api/model/HealthElementQualifiedLink.js +26 -0
  11. package/icc-api/model/HealthElementQualifiedLink.js.map +1 -0
  12. package/icc-api/model/models.d.ts +2 -0
  13. package/icc-api/model/models.js +2 -0
  14. package/icc-api/model/models.js.map +1 -1
  15. package/icc-x-api/filters/HealthElementByAssociationIdFilter.d.ts +23 -0
  16. package/icc-x-api/filters/HealthElementByAssociationIdFilter.js +30 -0
  17. package/icc-x-api/filters/HealthElementByAssociationIdFilter.js.map +1 -0
  18. package/icc-x-api/filters/HealthElementByQualifiedLinkFilter.d.ts +24 -0
  19. package/icc-x-api/filters/HealthElementByQualifiedLinkFilter.js +30 -0
  20. package/icc-x-api/filters/HealthElementByQualifiedLinkFilter.js.map +1 -0
  21. package/icc-x-api/filters/filters.d.ts +2 -0
  22. package/icc-x-api/filters/filters.js +2 -0
  23. package/icc-x-api/filters/filters.js.map +1 -1
  24. package/icc-x-api/index.js +1 -1
  25. package/icc-x-api/index.js.map +1 -1
  26. package/package.json +1 -1
  27. package/test/benchmarks/lzma-benchmark.spec.d.ts +0 -1
  28. package/test/benchmarks/lzma-benchmark.spec.js +0 -131
  29. package/test/benchmarks/lzma-benchmark.spec.js.map +0 -1
  30. package/test/benchmarks/lzma-compat.spec.d.ts +0 -1
  31. package/test/benchmarks/lzma-compat.spec.js +0 -187
  32. package/test/benchmarks/lzma-compat.spec.js.map +0 -1
  33. package/test/benchmarks/playwright.config.d.ts +0 -2
  34. package/test/benchmarks/playwright.config.js +0 -18
  35. package/test/benchmarks/playwright.config.js.map +0 -1
  36. package/test/icc-api/api/IccAgendaApi.d.ts +0 -1
  37. package/test/icc-api/api/IccAgendaApi.js +0 -64
  38. package/test/icc-api/api/IccAgendaApi.js.map +0 -1
  39. package/test/icc-api/api/IccAnonymousAccessApi.d.ts +0 -1
  40. package/test/icc-api/api/IccAnonymousAccessApi.js +0 -58
  41. package/test/icc-api/api/IccAnonymousAccessApi.js.map +0 -1
  42. package/test/icc-api/api/IccCalendarItemApi.d.ts +0 -1
  43. package/test/icc-api/api/IccCalendarItemApi.js +0 -67
  44. package/test/icc-api/api/IccCalendarItemApi.js.map +0 -1
  45. package/test/icc-api/api/IccCalendarItemTypeApi.d.ts +0 -1
  46. package/test/icc-api/api/IccCalendarItemTypeApi.js +0 -96
  47. package/test/icc-api/api/IccCalendarItemTypeApi.js.map +0 -1
  48. package/test/icc-api/api/IccCodeApi.d.ts +0 -1
  49. package/test/icc-api/api/IccCodeApi.js +0 -38
  50. package/test/icc-api/api/IccCodeApi.js.map +0 -1
  51. package/test/icc-api/api/IccDocumentApi.d.ts +0 -1
  52. package/test/icc-api/api/IccDocumentApi.js +0 -199
  53. package/test/icc-api/api/IccDocumentApi.js.map +0 -1
  54. package/test/icc-api/api/IccGroupApi.d.ts +0 -1
  55. package/test/icc-api/api/IccGroupApi.js +0 -50
  56. package/test/icc-api/api/IccGroupApi.js.map +0 -1
  57. package/test/icc-api/api/IccKeywordApi.d.ts +0 -1
  58. package/test/icc-api/api/IccKeywordApi.js +0 -64
  59. package/test/icc-api/api/IccKeywordApi.js.map +0 -1
  60. package/test/icc-api/api/IccMedicalLocationApi.d.ts +0 -1
  61. package/test/icc-api/api/IccMedicalLocationApi.js +0 -64
  62. package/test/icc-api/api/IccMedicalLocationApi.js.map +0 -1
  63. package/test/icc-api/api/IccPlaceApi.d.ts +0 -1
  64. package/test/icc-api/api/IccPlaceApi.js +0 -64
  65. package/test/icc-api/api/IccPlaceApi.js.map +0 -1
  66. package/test/icc-api/api/IccRecoveryDataApi.d.ts +0 -1
  67. package/test/icc-api/api/IccRecoveryDataApi.js +0 -95
  68. package/test/icc-api/api/IccRecoveryDataApi.js.map +0 -1
  69. package/test/icc-api/api/IccRoleApi.d.ts +0 -1
  70. package/test/icc-api/api/IccRoleApi.js +0 -34
  71. package/test/icc-api/api/IccRoleApi.js.map +0 -1
  72. package/test/icc-api/api/IccUserApi.d.ts +0 -1
  73. package/test/icc-api/api/IccUserApi.js +0 -96
  74. package/test/icc-api/api/IccUserApi.js.map +0 -1
  75. package/test/icc-api/e2e/IccCalendarItemApi.d.ts +0 -1
  76. package/test/icc-api/e2e/IccCalendarItemApi.js +0 -46
  77. package/test/icc-api/e2e/IccCalendarItemApi.js.map +0 -1
  78. package/test/icc-api/model/modelHelpersTest.d.ts +0 -1
  79. package/test/icc-api/model/modelHelpersTest.js +0 -45
  80. package/test/icc-api/model/modelHelpersTest.js.map +0 -1
  81. package/test/icc-x-api/auth/group-switch-test.d.ts +0 -1
  82. package/test/icc-x-api/auth/group-switch-test.js +0 -81
  83. package/test/icc-x-api/auth/group-switch-test.js.map +0 -1
  84. package/test/icc-x-api/auth/jwt-concurrency-test.d.ts +0 -2
  85. package/test/icc-x-api/auth/jwt-concurrency-test.js +0 -112
  86. package/test/icc-x-api/auth/jwt-concurrency-test.js.map +0 -1
  87. package/test/icc-x-api/auth/jwt-provider-test.d.ts +0 -1
  88. package/test/icc-x-api/auth/jwt-provider-test.js +0 -197
  89. package/test/icc-x-api/auth/jwt-provider-test.js.map +0 -1
  90. package/test/icc-x-api/auth/smart-auth-provider-test.d.ts +0 -1
  91. package/test/icc-x-api/auth/smart-auth-provider-test.js +0 -224
  92. package/test/icc-x-api/auth/smart-auth-provider-test.js.map +0 -1
  93. package/test/icc-x-api/autofix-anonymity-test.d.ts +0 -1
  94. package/test/icc-x-api/autofix-anonymity-test.js +0 -122
  95. package/test/icc-x-api/autofix-anonymity-test.js.map +0 -1
  96. package/test/icc-x-api/confidential-entities-test.d.ts +0 -1
  97. package/test/icc-x-api/confidential-entities-test.js +0 -168
  98. package/test/icc-x-api/confidential-entities-test.js.map +0 -1
  99. package/test/icc-x-api/crud/comprehensive-crud-test.d.ts +0 -1
  100. package/test/icc-x-api/crud/comprehensive-crud-test.js +0 -276
  101. package/test/icc-x-api/crud/comprehensive-crud-test.js.map +0 -1
  102. package/test/icc-x-api/crud/entities-crud-test-interface.d.ts +0 -16
  103. package/test/icc-x-api/crud/entities-crud-test-interface.js +0 -407
  104. package/test/icc-x-api/crud/entities-crud-test-interface.js.map +0 -1
  105. package/test/icc-x-api/crypto/anonymous-delegations-test.d.ts +0 -1
  106. package/test/icc-x-api/crypto/anonymous-delegations-test.js +0 -587
  107. package/test/icc-x-api/crypto/anonymous-delegations-test.js.map +0 -1
  108. package/test/icc-x-api/crypto/concurrency.d.ts +0 -1
  109. package/test/icc-x-api/crypto/concurrency.js +0 -35
  110. package/test/icc-x-api/crypto/concurrency.js.map +0 -1
  111. package/test/icc-x-api/crypto/crypto-utils.d.ts +0 -1
  112. package/test/icc-x-api/crypto/crypto-utils.js +0 -79
  113. package/test/icc-x-api/crypto/crypto-utils.js.map +0 -1
  114. package/test/icc-x-api/crypto/cryptoTest.d.ts +0 -2
  115. package/test/icc-x-api/crypto/cryptoTest.js +0 -402
  116. package/test/icc-x-api/crypto/cryptoTest.js.map +0 -1
  117. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.d.ts +0 -1
  118. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js +0 -166
  119. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js.map +0 -1
  120. package/test/icc-x-api/crypto/exchange-data-manager-test.d.ts +0 -1
  121. package/test/icc-x-api/crypto/exchange-data-manager-test.js +0 -674
  122. package/test/icc-x-api/crypto/exchange-data-manager-test.js.map +0 -1
  123. package/test/icc-x-api/crypto/full-crypto-test.d.ts +0 -1
  124. package/test/icc-x-api/crypto/full-crypto-test.js +0 -454
  125. package/test/icc-x-api/crypto/full-crypto-test.js.map +0 -1
  126. package/test/icc-x-api/crypto/legacy-metadata-migration-test.d.ts +0 -1
  127. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js +0 -379
  128. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js.map +0 -1
  129. package/test/icc-x-api/crypto/secure-delegations-manager-test.d.ts +0 -1
  130. package/test/icc-x-api/crypto/secure-delegations-manager-test.js +0 -278
  131. package/test/icc-x-api/crypto/secure-delegations-manager-test.js.map +0 -1
  132. package/test/icc-x-api/crypto/shamir.d.ts +0 -2
  133. package/test/icc-x-api/crypto/shamir.js +0 -167
  134. package/test/icc-x-api/crypto/shamir.js.map +0 -1
  135. package/test/icc-x-api/crypto/share-deduplication-test.d.ts +0 -1
  136. package/test/icc-x-api/crypto/share-deduplication-test.js +0 -250
  137. package/test/icc-x-api/crypto/share-deduplication-test.js.map +0 -1
  138. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.d.ts +0 -1
  139. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js +0 -71
  140. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js.map +0 -1
  141. package/test/icc-x-api/crypto/soft-deleted-data-owners.d.ts +0 -2
  142. package/test/icc-x-api/crypto/soft-deleted-data-owners.js +0 -113
  143. package/test/icc-x-api/crypto/soft-deleted-data-owners.js.map +0 -1
  144. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.d.ts +0 -1
  145. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js +0 -246
  146. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js.map +0 -1
  147. package/test/icc-x-api/entity-with-attachments-api-test.d.ts +0 -1
  148. package/test/icc-x-api/entity-with-attachments-api-test.js +0 -142
  149. package/test/icc-x-api/entity-with-attachments-api-test.js.map +0 -1
  150. package/test/icc-x-api/filters/filters.d.ts +0 -1
  151. package/test/icc-x-api/filters/filters.js +0 -49
  152. package/test/icc-x-api/filters/filters.js.map +0 -1
  153. package/test/icc-x-api/filters/healthelement.d.ts +0 -1
  154. package/test/icc-x-api/filters/healthelement.js +0 -333
  155. package/test/icc-x-api/filters/healthelement.js.map +0 -1
  156. package/test/icc-x-api/icc-accesslog-x-api.d.ts +0 -1
  157. package/test/icc-x-api/icc-accesslog-x-api.js +0 -106
  158. package/test/icc-x-api/icc-accesslog-x-api.js.map +0 -1
  159. package/test/icc-x-api/icc-application-settings-x-api.d.ts +0 -1
  160. package/test/icc-x-api/icc-application-settings-x-api.js +0 -91
  161. package/test/icc-x-api/icc-application-settings-x-api.js.map +0 -1
  162. package/test/icc-x-api/icc-auth-api.d.ts +0 -1
  163. package/test/icc-x-api/icc-auth-api.js +0 -47
  164. package/test/icc-x-api/icc-auth-api.js.map +0 -1
  165. package/test/icc-x-api/icc-calendar-item-x-api.d.ts +0 -1
  166. package/test/icc-x-api/icc-calendar-item-x-api.js +0 -150
  167. package/test/icc-x-api/icc-calendar-item-x-api.js.map +0 -1
  168. package/test/icc-x-api/icc-code-x-api-test.d.ts +0 -1
  169. package/test/icc-x-api/icc-code-x-api-test.js +0 -74
  170. package/test/icc-x-api/icc-code-x-api-test.js.map +0 -1
  171. package/test/icc-x-api/icc-contact-x-api.d.ts +0 -1
  172. package/test/icc-x-api/icc-contact-x-api.js +0 -355
  173. package/test/icc-x-api/icc-contact-x-api.js.map +0 -1
  174. package/test/icc-x-api/icc-document-x-api.d.ts +0 -1
  175. package/test/icc-x-api/icc-document-x-api.js +0 -76
  176. package/test/icc-x-api/icc-document-x-api.js.map +0 -1
  177. package/test/icc-x-api/icc-form-x-api.d.ts +0 -1
  178. package/test/icc-x-api/icc-form-x-api.js +0 -413
  179. package/test/icc-x-api/icc-form-x-api.js.map +0 -1
  180. package/test/icc-x-api/icc-hcparty-x-api-test.d.ts +0 -1
  181. package/test/icc-x-api/icc-hcparty-x-api-test.js +0 -43
  182. package/test/icc-x-api/icc-hcparty-x-api-test.js.map +0 -1
  183. package/test/icc-x-api/icc-helement-x-api-test.d.ts +0 -1
  184. package/test/icc-x-api/icc-helement-x-api-test.js +0 -155
  185. package/test/icc-x-api/icc-helement-x-api-test.js.map +0 -1
  186. package/test/icc-x-api/icc-invoice-x-api.d.ts +0 -1
  187. package/test/icc-x-api/icc-invoice-x-api.js +0 -99
  188. package/test/icc-x-api/icc-invoice-x-api.js.map +0 -1
  189. package/test/icc-x-api/icc-maintenance-task-x-api-test.d.ts +0 -1
  190. package/test/icc-x-api/icc-maintenance-task-x-api-test.js +0 -222
  191. package/test/icc-x-api/icc-maintenance-task-x-api-test.js.map +0 -1
  192. package/test/icc-x-api/icc-message-x-api.d.ts +0 -1
  193. package/test/icc-x-api/icc-message-x-api.js +0 -54
  194. package/test/icc-x-api/icc-message-x-api.js.map +0 -1
  195. package/test/icc-x-api/icc-patient-x-api-test.d.ts +0 -1
  196. package/test/icc-x-api/icc-patient-x-api-test.js +0 -209
  197. package/test/icc-x-api/icc-patient-x-api-test.js.map +0 -1
  198. package/test/icc-x-api/icc-recovery-x-api.d.ts +0 -1
  199. package/test/icc-x-api/icc-recovery-x-api.js +0 -175
  200. package/test/icc-x-api/icc-recovery-x-api.js.map +0 -1
  201. package/test/icc-x-api/icc-topic-x-api.d.ts +0 -1
  202. package/test/icc-x-api/icc-topic-x-api.js +0 -269
  203. package/test/icc-x-api/icc-topic-x-api.js.map +0 -1
  204. package/test/icc-x-api/icc-user-x-api-test.d.ts +0 -1
  205. package/test/icc-x-api/icc-user-x-api-test.js +0 -99
  206. package/test/icc-x-api/icc-user-x-api-test.js.map +0 -1
  207. package/test/icc-x-api/keyless-api.d.ts +0 -1
  208. package/test/icc-x-api/keyless-api.js +0 -125
  209. package/test/icc-x-api/keyless-api.js.map +0 -1
  210. package/test/icc-x-api/patient-user.d.ts +0 -2
  211. package/test/icc-x-api/patient-user.js +0 -103
  212. package/test/icc-x-api/patient-user.js.map +0 -1
  213. package/test/icc-x-api/storage/storage.d.ts +0 -1
  214. package/test/icc-x-api/storage/storage.js +0 -48
  215. package/test/icc-x-api/storage/storage.js.map +0 -1
  216. package/test/icc-x-api/test-api-no-parent.d.ts +0 -1
  217. package/test/icc-x-api/test-api-no-parent.js +0 -79
  218. package/test/icc-x-api/test-api-no-parent.js.map +0 -1
  219. package/test/icc-x-api/test-legacy-data-support.d.ts +0 -1
  220. package/test/icc-x-api/test-legacy-data-support.js +0 -375
  221. package/test/icc-x-api/test-legacy-data-support.js.map +0 -1
  222. package/test/icc-x-api/utils/date-encode-test.d.ts +0 -1
  223. package/test/icc-x-api/utils/date-encode-test.js +0 -150
  224. package/test/icc-x-api/utils/date-encode-test.js.map +0 -1
  225. package/test/icc-x-api/utils/graph-test.d.ts +0 -1
  226. package/test/icc-x-api/utils/graph-test.js +0 -54
  227. package/test/icc-x-api/utils/graph-test.js.map +0 -1
  228. package/test/icc-x-api/utils/lru-temporised-async-cache-test.d.ts +0 -1
  229. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js +0 -364
  230. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js.map +0 -1
  231. package/test/icc-x-api/utils/lzma-benchmark-test.d.ts +0 -1
  232. package/test/icc-x-api/utils/lzma-benchmark-test.js +0 -132
  233. package/test/icc-x-api/utils/lzma-benchmark-test.js.map +0 -1
  234. package/test/icc-x-api/utils/lzma-compat-test.d.ts +0 -1
  235. package/test/icc-x-api/utils/lzma-compat-test.js +0 -218
  236. package/test/icc-x-api/utils/lzma-compat-test.js.map +0 -1
  237. package/test/icc-x-api/utils/mutex-test.d.ts +0 -1
  238. package/test/icc-x-api/utils/mutex-test.js +0 -114
  239. package/test/icc-x-api/utils/mutex-test.js.map +0 -1
  240. package/test/icc-x-api/utils/to-moment-test.d.ts +0 -1
  241. package/test/icc-x-api/utils/to-moment-test.js +0 -110
  242. package/test/icc-x-api/utils/to-moment-test.js.map +0 -1
  243. package/test/support/CSM-185.d.ts +0 -1
  244. package/test/support/CSM-185.js +0 -124
  245. package/test/support/CSM-185.js.map +0 -1
  246. package/test/support/CSM-243.d.ts +0 -1
  247. package/test/support/CSM-243.js +0 -120
  248. package/test/support/CSM-243.js.map +0 -1
  249. package/test/support/CSM-543.d.ts +0 -1
  250. package/test/support/CSM-543.js +0 -164
  251. package/test/support/CSM-543.js.map +0 -1
  252. package/test/support/CSM-729.d.ts +0 -1
  253. package/test/support/CSM-729.js +0 -225
  254. package/test/support/CSM-729.js.map +0 -1
  255. package/test/support/CSM-814.d.ts +0 -1
  256. package/test/support/CSM-814.js +0 -475
  257. package/test/support/CSM-814.js.map +0 -1
  258. package/test/support/CSM-87.d.ts +0 -0
  259. package/test/support/CSM-87.js +0 -21
  260. package/test/support/CSM-87.js.map +0 -1
  261. package/test/support/CSM-93.d.ts +0 -1
  262. package/test/support/CSM-93.js +0 -112
  263. package/test/support/CSM-93.js.map +0 -1
  264. package/test/utils/FakeDataOwnerApi.d.ts +0 -32
  265. package/test/utils/FakeDataOwnerApi.js +0 -136
  266. package/test/utils/FakeDataOwnerApi.js.map +0 -1
  267. package/test/utils/FakeEncryptionKeysManager.d.ts +0 -36
  268. package/test/utils/FakeEncryptionKeysManager.js +0 -97
  269. package/test/utils/FakeEncryptionKeysManager.js.map +0 -1
  270. package/test/utils/FakeExchangeDataApi.d.ts +0 -32
  271. package/test/utils/FakeExchangeDataApi.js +0 -92
  272. package/test/utils/FakeExchangeDataApi.js.map +0 -1
  273. package/test/utils/FakeExchangeDataManager.d.ts +0 -48
  274. package/test/utils/FakeExchangeDataManager.js +0 -82
  275. package/test/utils/FakeExchangeDataManager.js.map +0 -1
  276. package/test/utils/FakeExchangeDataMapManager.d.ts +0 -12
  277. package/test/utils/FakeExchangeDataMapManager.js +0 -38
  278. package/test/utils/FakeExchangeDataMapManager.js.map +0 -1
  279. package/test/utils/FakeGenericApi.d.ts +0 -16
  280. package/test/utils/FakeGenericApi.js +0 -65
  281. package/test/utils/FakeGenericApi.js.map +0 -1
  282. package/test/utils/KeylessCryptoStrategies.d.ts +0 -23
  283. package/test/utils/KeylessCryptoStrategies.js +0 -26
  284. package/test/utils/KeylessCryptoStrategies.js.map +0 -1
  285. package/test/utils/TestApi.d.ts +0 -3
  286. package/test/utils/TestApi.js +0 -30
  287. package/test/utils/TestApi.js.map +0 -1
  288. package/test/utils/TestCollectionUtils.d.ts +0 -1
  289. package/test/utils/TestCollectionUtils.js +0 -310
  290. package/test/utils/TestCollectionUtils.js.map +0 -1
  291. package/test/utils/TestCryptoStrategies.d.ts +0 -42
  292. package/test/utils/TestCryptoStrategies.js +0 -80
  293. package/test/utils/TestCryptoStrategies.js.map +0 -1
  294. package/test/utils/TestStorage.d.ts +0 -23
  295. package/test/utils/TestStorage.js +0 -61
  296. package/test/utils/TestStorage.js.map +0 -1
  297. package/test/utils/roles.d.ts +0 -14
  298. package/test/utils/roles.js +0 -345
  299. package/test/utils/roles.js.map +0 -1
  300. package/test/utils/test_utils.d.ts +0 -87
  301. package/test/utils/test_utils.js +0 -452
  302. package/test/utils/test_utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"icc-application-settings-x-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-application-settings-x-api.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,4BAAyB;AACzB,oDAAuI;AACvI,iCAA4C;AAI5C,mCAAmC;AACnC,+BAA6B;AAC7B,mDAAmE;AAInE,IAAO,OAAO,GAAG,sBAAS,CAAC,OAAO,CAAA;AAQlC,2CAAsE;AACtE,iFAA6E;AAE7E,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAA;AACtB,IAAI,GAAa,CAAA;AACjB,IAAI,sBAA2C,CAAA;AAE/C,IAAA,2BAAc,EAAC,sCAAsC,EAAE,GAAG,EAAE;IAC1D,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;QACpD,CAAC;KAAA,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,uGAAuG,EAAE,GAAS,EAAE;QACrH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,yBAAY,CAAC,CAAA;QAC7C,MAAM,cAAc,GAAG,IAAI,mCAAyB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;QAClH,sBAAsB,GAAG,MAAM,cAAc,CAAC,yBAAyB,CACrE,IAAI,yCAAmB,CAAC;YACtB,EAAE,EAAE,IAAA,mBAAU,GAAE;YAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAChC,CAAC,CACH,CAAA;QACD,IAAA,aAAM,EAAC,CAAC,MAAM,cAAc,CAAC,sBAAsB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAA;QACrH,IAAA,aAAM,EAAC,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YACrH,sBAAsB,CAAC,EAAE;SAC1B,CAAC,CAAA;IACJ,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAA;IAElB,IAAA,UAAE,EAAC,yDAAyD,EAAE,GAAS,EAAE;;QACvE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,yBAAY,CAAC,CAAA;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;QAChD,MAAM,cAAc,GAAG,IAAI,mCAAyB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;QAClH,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,iCAAiC,CAC/F,SAAS,EACT,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,EAAE;YAClD,EAAE,EAAE,IAAA,mBAAU,GAAE;YAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;YAC/B,iBAAiB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;SAC3C,CAAC,CACH,CAAA;QACD,MAAM,0BAA0B,GAAG,MAAM,cAAc,CAAC,sBAAsB,EAAE,CAAA;QAChF,IAAA,aAAM,EAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,EAAE,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1H,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,IAAA,aAAM,EAAC,MAAA,CAAC,CAAC,iBAAiB,mCAAI,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA,EAAA,CAAC,CAAA;QAC3F,IAAA,aAAM,EAAC,MAAA,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,qBAAqB,CAAC,EAAE,CAAC,0CAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QAC5H,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAA;QAC3G,IAAA,aAAM,EAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,EAAE,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAA;QACvH,IAAA,aAAM,EAAC,MAAA,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,qBAAqB,CAAC,EAAE,CAAC,0CAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QACzH,IAAA,aAAM,EAAC,MAAA,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,qBAAqB,CAAC,EAAE,CAAC,0CAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;IACtI,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAA;IAElB,IAAA,UAAE,EAAC,gEAAgE,EAAE,GAAS,EAAE;;QAC9E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,yBAAY,CAAC,CAAA;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;QAEhD,MAAM,cAAc,GAAG,IAAI,mCAAyB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;QAClH,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC,yBAAyB,CACtE,IAAI,yCAAmB,CAAC;YACtB,EAAE,EAAE,IAAA,mBAAU,GAAE;YAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAChC,CAAC,CACH,CAAA;QACD,0IAA0I;QAC1I,MAAM,IAAI,CAAC,sBAAsB;aAC9B,iCAAiC,CAChC,IAAI,EACJ,IAAI,yCAAmB,iCAClB,iBAAiB,KACpB,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IACvC,CACH;aACA,IAAI,CACH,CAAC,CAAC,EAAE,EAAE;YACJ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC,EACD,CAAC,CAAC,EAAE,EAAE;YACJ,IAAA,aAAM,EAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,yGAAyG,CAAC,CAAA;QAC5I,CAAC,CACF,CAAA;QACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,iCAAiC,CACjE,SAAS,EACT,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,kCAC7C,iBAAiB,KACpB,iBAAiB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAC1C,CACH,CAAA;QACD,MAAM,0BAA0B,GAAG,MAAM,cAAc,CAAC,sBAAsB,EAAE,CAAA;QAChF,IAAA,aAAM,EAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAA;QACtH,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,IAAA,aAAM,EAAC,MAAA,CAAC,CAAC,iBAAiB,mCAAI,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA,EAAA,CAAC,CAAA;QAC3F,IAAA,aAAM,EAAC,MAAA,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,iBAAiB,CAAC,EAAE,CAAC,0CAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QACxH,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAA;QAC3G,IAAA,aAAM,EAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAA;QACnH,IAAA,aAAM,EAAC,MAAA,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,iBAAiB,CAAC,EAAE,CAAC,0CAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QACrH,IAAA,aAAM,EAAC,MAAA,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,iBAAiB,CAAC,EAAE,CAAC,0CAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;IAClI,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAA;AACpB,CAAC,CAAC,CAAA","sourcesContent":["import 'isomorphic-fetch'\nimport { describeNoLite, getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { before, it, describe } from 'mocha'\nimport { IccPatientXApi, sleep, SubscriptionOptions } from '../../icc-x-api'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { User } from '../../icc-api/model/User'\nimport { randomUUID } from 'crypto'\nimport { expect } from 'chai'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { IccTopicXApi } from '../../icc-x-api/icc-topic-x-api'\nimport { Topic, TopicRole } from '../../icc-api/model/Topic'\nimport { SecureDelegation } from '../../icc-api/model/SecureDelegation'\nimport initApi = TestUtils.initApi\nimport { XHR } from '../../icc-api/api/XHR'\nimport XHRError = XHR.XHRError\nimport { FilterChainTopic } from '../../icc-api/model/FilterChainTopic'\nimport { TopicByHcPartyFilter } from '../../icc-x-api/filters/TopicByHcPartyFilter'\nimport { TopicByParticipantFilter } from '../../icc-x-api/filters/TopicByParticipantFilter'\nimport { Connection } from '../../icc-api/model/Connection'\nimport { Message } from '../../icc-api/model/Message'\nimport { IccApplicationsettingsApi, IccTopicApi } from '../../icc-api'\nimport { ApplicationSettings } from '../../icc-api/model/ApplicationSettings'\n\nsetLocalStorage(fetch)\nlet env: TestVars\nlet unencryptedAppSettings: ApplicationSettings\n\ndescribeNoLite('icc-application-settings-x-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('Should still be able to create and get application settings that are not encrypted using the base api', async () => {\n const api1 = await initApi(env, hcp1Username)\n const appSettingsApi = new IccApplicationsettingsApi(env.iCureUrl, {}, api1.authApi.authenticationProvider, fetch)\n unencryptedAppSettings = await appSettingsApi.createApplicationSettings(\n new ApplicationSettings({\n id: randomUUID(),\n settings: { demo: 'plaintext' },\n })\n )\n expect((await appSettingsApi.getApplicationSettings()).map((x) => x.id)).to.have.members([unencryptedAppSettings.id])\n expect((await api1.applicationSettingsApi.getApplicationSettingsWithUser(undefined)).map((x) => x.id)).to.have.members([\n unencryptedAppSettings.id,\n ])\n }).timeout(10_000)\n\n it('Should be able to create encrypted application settings', async () => {\n const api2 = await initApi(env, hcp2Username)\n const user = await api2.userApi.getCurrentUser()\n const appSettingsApi = new IccApplicationsettingsApi(env.iCureUrl, {}, api2.authApi.authenticationProvider, fetch)\n const createdWithEncryption = await api2.applicationSettingsApi.createApplicationSettingsWithUser(\n undefined,\n await api2.applicationSettingsApi.newInstance(user, {\n id: randomUUID(),\n settings: { demo: 'plaintext' },\n encryptedSettings: { demo: 'willsucceed' },\n })\n )\n const retrievedWithoutDecryption = await appSettingsApi.getApplicationSettings()\n expect(retrievedWithoutDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, createdWithEncryption.id])\n retrievedWithoutDecryption.forEach((x) => expect(x.encryptedSettings ?? {}).to.deep.eq({}))\n expect(retrievedWithoutDecryption.find((x) => x.id == createdWithEncryption.id)?.settings).to.deep.eq({ demo: 'plaintext' })\n const retrievedWithDecryption = await api2.applicationSettingsApi.getApplicationSettingsWithUser(undefined)\n expect(retrievedWithDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, createdWithEncryption.id])\n expect(retrievedWithDecryption.find((x) => x.id == createdWithEncryption.id)?.settings).to.deep.eq({ demo: 'plaintext' })\n expect(retrievedWithDecryption.find((x) => x.id == createdWithEncryption.id)?.encryptedSettings).to.deep.eq({ demo: 'willsucceed' })\n }).timeout(10_000)\n\n it('Should be able to make existing application settings encrypted', async () => {\n const api1 = await initApi(env, hcp1Username)\n const user = await api1.userApi.getCurrentUser()\n\n const appSettingsApi = new IccApplicationsettingsApi(env.iCureUrl, {}, api1.authApi.authenticationProvider, fetch)\n const newToEncryptAfter = await appSettingsApi.createApplicationSettings(\n new ApplicationSettings({\n id: randomUUID(),\n settings: { demo: 'plaintext' },\n })\n )\n // Should not be allowed to set encryptedSettings on application settings where encryption key is not initialized through with user method\n await api1.applicationSettingsApi\n .updateApplicationSettingsWithUser(\n user,\n new ApplicationSettings({\n ...newToEncryptAfter,\n encryptedSettings: { demo: 'willfail' },\n })\n )\n .then(\n (x) => {\n throw new Error('Should not succeed')\n },\n (x) => {\n expect(x.toString()).to.contain('Application settings does not have initialized encryption metadata; initialize or use non-encrypted api')\n }\n )\n await api1.applicationSettingsApi.updateApplicationSettingsWithUser(\n undefined,\n await api1.applicationSettingsApi.newInstance(user, {\n ...newToEncryptAfter,\n encryptedSettings: { demo: 'willsucceed' },\n })\n )\n const retrievedWithoutDecryption = await appSettingsApi.getApplicationSettings()\n expect(retrievedWithoutDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, newToEncryptAfter.id])\n retrievedWithoutDecryption.forEach((x) => expect(x.encryptedSettings ?? {}).to.deep.eq({}))\n expect(retrievedWithoutDecryption.find((x) => x.id == newToEncryptAfter.id)?.settings).to.deep.eq({ demo: 'plaintext' })\n const retrievedWithDecryption = await api1.applicationSettingsApi.getApplicationSettingsWithUser(undefined)\n expect(retrievedWithDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, newToEncryptAfter.id])\n expect(retrievedWithDecryption.find((x) => x.id == newToEncryptAfter.id)?.settings).to.deep.eq({ demo: 'plaintext' })\n expect(retrievedWithDecryption.find((x) => x.id == newToEncryptAfter.id)?.encryptedSettings).to.deep.eq({ demo: 'willsucceed' })\n }).timeout(10_000)\n})\n"]}
@@ -1 +0,0 @@
1
- import 'isomorphic-fetch';
@@ -1,47 +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 test_utils_1 = require("../utils/test_utils");
14
- const mocha_1 = require("mocha");
15
- const AuthenticationProvider_1 = require("../../icc-x-api/auth/AuthenticationProvider");
16
- const icc_api_1 = require("../../icc-api");
17
- const node_compat_1 = require("../../node-compat");
18
- const TestApi_1 = require("../utils/TestApi");
19
- const types_1 = require("@icure/test-setup/types");
20
- const icc_x_api_1 = require("../../icc-x-api");
21
- (0, test_utils_1.setLocalStorage)(fetch);
22
- let env;
23
- describe('icc-auth-api Tests', () => {
24
- (0, mocha_1.before)(function () {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- this.timeout(600000);
27
- const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
28
- env = yield initializer.execute((0, types_1.getEnvVariables)());
29
- });
30
- });
31
- it('Can login and then logout instating all the Apis', () => __awaiter(void 0, void 0, void 0, function* () {
32
- // Given
33
- const username = env.dataOwnerDetails[test_utils_1.hcp1Username].user;
34
- const password = env.dataOwnerDetails[test_utils_1.hcp1Username].password;
35
- const { authApi } = yield (0, TestApi_1.TestApi)(env.iCureUrl, username, password, node_compat_1.crypto);
36
- yield authApi.logout();
37
- }));
38
- it('Can login and then logout instating only the AuthApi', () => __awaiter(void 0, void 0, void 0, function* () {
39
- // Given
40
- const username = env.dataOwnerDetails[test_utils_1.hcp1Username].user;
41
- const password = env.dataOwnerDetails[test_utils_1.hcp1Username].password;
42
- const authenticationProvider = new icc_x_api_1.EnsembleAuthenticationProvider(new icc_api_1.IccAuthApi(env.iCureUrl, {}, new AuthenticationProvider_1.NoAuthenticationProvider(), fetch), username, password);
43
- const authApi = new icc_api_1.IccAuthApi(env.iCureUrl, {}, authenticationProvider, fetch);
44
- yield authApi.logout();
45
- }));
46
- });
47
- //# sourceMappingURL=icc-auth-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icc-auth-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-auth-api.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,4BAAyB;AACzB,oDAA8F;AAC9F,iCAA8B;AAC9B,wFAAsF;AACtF,2CAA0C;AAC1C,mDAA0C;AAC1C,8CAA0C;AAC1C,mDAAmE;AACnE,+CAAgE;AAEhE,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAA;AACtB,IAAI,GAAa,CAAA;AAEjB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,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;QACpD,CAAC;KAAA,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAS,EAAE;QAChE,QAAQ;QACR,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,yBAAY,CAAC,CAAC,IAAI,CAAA;QACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,yBAAY,CAAC,CAAC,QAAQ,CAAA;QAE5D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,iBAAO,EAAC,GAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAM,CAAC,CAAA;QAE5E,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;IACxB,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAS,EAAE;QACpE,QAAQ;QACR,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,yBAAY,CAAC,CAAC,IAAI,CAAA;QACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,yBAAY,CAAC,CAAC,QAAQ,CAAA;QAE5D,MAAM,sBAAsB,GAAG,IAAI,0CAA8B,CAC/D,IAAI,oBAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,iDAAwB,EAAE,EAAE,KAAK,CAAC,EACvE,QAAQ,EACR,QAAQ,CACT,CAAA;QAED,MAAM,OAAO,GAAG,IAAI,oBAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAA;QAE/E,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;IACxB,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import 'isomorphic-fetch'\nimport { getEnvironmentInitializer, hcp1Username, setLocalStorage } from '../utils/test_utils'\nimport { before } from 'mocha'\nimport { NoAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\nimport { IccAuthApi } from '../../icc-api'\nimport { crypto } from '../../node-compat'\nimport { TestApi } from '../utils/TestApi'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { EnsembleAuthenticationProvider } from '../../icc-x-api'\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\ndescribe('icc-auth-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('Can login and then logout instating all the Apis', async () => {\n // Given\n const username = env.dataOwnerDetails[hcp1Username].user\n const password = env.dataOwnerDetails[hcp1Username].password\n\n const { authApi } = await TestApi(env!.iCureUrl, username, password, crypto)\n\n await authApi.logout()\n })\n\n it('Can login and then logout instating only the AuthApi', async () => {\n // Given\n const username = env.dataOwnerDetails[hcp1Username].user\n const password = env.dataOwnerDetails[hcp1Username].password\n\n const authenticationProvider = new EnsembleAuthenticationProvider(\n new IccAuthApi(env.iCureUrl, {}, new NoAuthenticationProvider(), fetch),\n username,\n password\n )\n\n const authApi = new IccAuthApi(env.iCureUrl, {}, authenticationProvider, fetch)\n\n await authApi.logout()\n })\n})\n"]}
@@ -1 +0,0 @@
1
- import 'isomorphic-fetch';
@@ -1,150 +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 test_utils_1 = require("../utils/test_utils");
14
- const mocha_1 = require("mocha");
15
- const icc_x_api_1 = require("../../icc-x-api");
16
- const icc_api_1 = require("../../icc-api");
17
- const Patient_1 = require("../../icc-api/model/Patient");
18
- const crypto_1 = require("crypto");
19
- const chai_1 = require("chai");
20
- var initApi = test_utils_1.TestUtils.initApi;
21
- const types_1 = require("@icure/test-setup/types");
22
- const SecureDelegation_1 = require("../../icc-api/model/SecureDelegation");
23
- var AccessLevelEnum = SecureDelegation_1.SecureDelegation.AccessLevelEnum;
24
- const AuthenticationProvider_1 = require("../../icc-x-api/auth/AuthenticationProvider");
25
- (0, test_utils_1.setLocalStorage)(fetch);
26
- let env;
27
- describe('icc-calendar-item-x-api Tests', () => {
28
- (0, mocha_1.before)(function () {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- this.timeout(600000);
31
- const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
32
- env = yield initializer.execute((0, types_1.getEnvVariables)());
33
- });
34
- });
35
- function createPatient(patientApiForHcp, hcpUser) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- return patientApiForHcp.createPatientWithUser(hcpUser, yield patientApiForHcp.newInstance(hcpUser, new Patient_1.Patient({
38
- id: (0, crypto_1.randomUUID)(),
39
- firstName: 'John',
40
- lastName: 'Snow',
41
- note: 'Winter is coming',
42
- })));
43
- });
44
- }
45
- it('Test', () => __awaiter(void 0, void 0, void 0, function* () {
46
- // Given
47
- const username = env.dataOwnerDetails[test_utils_1.hcp1Username].user;
48
- const password = env.dataOwnerDetails[test_utils_1.hcp1Username].password;
49
- const authProvider = new AuthenticationProvider_1.BasicAuthenticationProvider(username, password);
50
- const userApi = new icc_x_api_1.IccUserXApi(env.iCureUrl, {}, authProvider, null, fetch);
51
- const calenderItemApi = new icc_api_1.IccCalendarItemApi(env.iCureUrl, {}, authProvider, fetch);
52
- const currentUser = yield userApi.getCurrentUser();
53
- }));
54
- it('Test findBy', () => __awaiter(void 0, void 0, void 0, function* () {
55
- // Given
56
- const { userApi: userApiForHcp, dataOwnerApi: dataOwnerApiForHcp, patientApi: patientApiForHcp, cryptoApi: cryptoApiForHcp, dataOwnerApi: dateOwnerApiForHcp, calendarItemApi: calendarItemXApi, } = yield initApi(env, test_utils_1.hcp1Username);
57
- const hcpUser = yield userApiForHcp.getCurrentUser();
58
- const patient = (yield createPatient(patientApiForHcp, hcpUser));
59
- const calendarItem = {
60
- id: (0, crypto_1.randomUUID)(),
61
- created: new Date().getTime(),
62
- modified: new Date().getTime(),
63
- startTime: 20230327131313,
64
- endTime: 20230327141313,
65
- responsible: hcpUser.healthcarePartyId,
66
- author: hcpUser.id,
67
- codes: [],
68
- tags: [],
69
- };
70
- const calendarItemToCreate = yield calendarItemXApi.newInstancePatient(hcpUser, patient, calendarItem);
71
- const createdCalendarItem = yield calendarItemXApi.createCalendarItemWithHcParty(hcpUser, calendarItemToCreate);
72
- const foundItems = yield calendarItemXApi.findBy(hcpUser.healthcarePartyId, patient, false);
73
- const foundItemsUsingPost = yield calendarItemXApi.findBy(hcpUser.healthcarePartyId, patient, true);
74
- (0, chai_1.assert)(foundItems.length == 1, 'Found items should be 1');
75
- (0, chai_1.assert)(foundItems[0].id == createdCalendarItem.id, 'Found item should be the same as created item');
76
- (0, chai_1.assert)(foundItemsUsingPost.length == 1, 'Found items using post should be 1');
77
- (0, chai_1.assert)(foundItemsUsingPost[0].id == createdCalendarItem.id, 'Found item using post should be the same as created item');
78
- }));
79
- it('Share with should work as expected', () => __awaiter(void 0, void 0, void 0, function* () {
80
- const api1 = yield initApi(env, test_utils_1.hcp1Username);
81
- const user1 = yield api1.userApi.getCurrentUser();
82
- const api2 = yield initApi(env, test_utils_1.hcp2Username);
83
- const user2 = yield api2.userApi.getCurrentUser();
84
- const samplePatient = yield api1.patientApi.createPatientWithUser(user1, yield api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' }));
85
- const encryptedField = 'Something encrypted';
86
- const entity = yield api1.calendarItemApi.createCalendarItemWithHcParty(user1, yield api1.calendarItemApi.newInstancePatient(user1, samplePatient, { details: encryptedField }));
87
- (0, chai_1.expect)(entity.details).to.be.equal(encryptedField);
88
- yield api2.calendarItemApi
89
- .getCalendarItemWithUser(user2, entity.id)
90
- .then(() => {
91
- throw new Error('Should not be able to get the entity');
92
- })
93
- .catch(() => {
94
- /* expected */
95
- });
96
- yield api1.calendarItemApi.shareWith(user2.healthcarePartyId, entity);
97
- const retrieved = yield api2.calendarItemApi.getCalendarItemWithUser(user2, entity.id);
98
- (0, chai_1.expect)(retrieved.details).to.be.equal(encryptedField);
99
- (0, chai_1.expect)((yield api2.calendarItemApi.decryptPatientIdOf(retrieved))[0]).to.equal(samplePatient.id);
100
- }));
101
- it('Should be able to link a calendar item with an existing patient', () => __awaiter(void 0, void 0, void 0, function* () {
102
- var _a, _b;
103
- const api1 = yield initApi(env, test_utils_1.hcp1Username);
104
- const user1 = yield api1.userApi.getCurrentUser();
105
- const api2 = yield initApi(env, test_utils_1.hcp2Username);
106
- const user2 = yield api2.userApi.getCurrentUser();
107
- const api3 = yield initApi(env, test_utils_1.hcp3Username);
108
- const user3 = yield api3.userApi.getCurrentUser();
109
- const patient = yield api1.patientApi.createPatientWithUser(user1, yield api1.patientApi.newInstance(user1, {
110
- firstName: 'Gigio',
111
- lastName: 'Bagigio',
112
- }, { additionalDelegates: { [user2.healthcarePartyId]: 'WRITE' } }));
113
- const patientSecretIds = yield api2.patientApi.decryptNonConfidentialSecretIdsOf(patient);
114
- (0, chai_1.expect)(patientSecretIds).to.have.length(1);
115
- const itemTitle = 'An interesting title';
116
- const calendarItem = yield api2.calendarItemApi.createCalendarItemWithHcParty(user2, yield api2.calendarItemApi.newInstance(user2, { title: itemTitle }, { additionalDelegates: { [user1.healthcarePartyId]: 'WRITE' } }));
117
- (0, chai_1.expect)(calendarItem.title).to.equal(itemTitle);
118
- (0, chai_1.expect)((yield api1.calendarItemApi.getCalendarItemWithUser(user1, calendarItem.id)).title).to.equal(itemTitle);
119
- (0, chai_1.expect)(yield api1.calendarItemApi.decryptPatientIdOf(calendarItem)).to.have.length(0);
120
- (0, chai_1.expect)((_a = calendarItem.secretForeignKeys) !== null && _a !== void 0 ? _a : []).to.have.length(0);
121
- const linked = yield api1.calendarItemApi.linkWithPatient(calendarItem, patient, [user2.healthcarePartyId, user3.healthcarePartyId]);
122
- (0, chai_1.expect)(linked.title).to.equal(itemTitle);
123
- (0, chai_1.expect)((_b = linked.secretForeignKeys) !== null && _b !== void 0 ? _b : []).to.have.length(1);
124
- (0, chai_1.expect)(linked.secretForeignKeys[0]).to.equal(patientSecretIds[0]);
125
- const decryptedPatientIdBy1 = yield api1.calendarItemApi.decryptPatientIdOf(linked);
126
- (0, chai_1.expect)(decryptedPatientIdBy1).to.have.length(1);
127
- (0, chai_1.expect)(decryptedPatientIdBy1[0]).to.equal(patient.id);
128
- const retrievedBy2AfterLink = yield api2.calendarItemApi.getCalendarItemWithUser(user2, calendarItem.id);
129
- (0, chai_1.expect)(retrievedBy2AfterLink.title).to.equal(itemTitle);
130
- const decryptedPatientIdBy2 = yield api2.calendarItemApi.decryptPatientIdOf(retrievedBy2AfterLink);
131
- (0, chai_1.expect)(decryptedPatientIdBy2).to.have.length(1);
132
- (0, chai_1.expect)(decryptedPatientIdBy2[0]).to.equal(patient.id);
133
- const retrievedBy3AfterLink = yield api3.calendarItemApi.getCalendarItemWithUser(user3, calendarItem.id);
134
- (0, chai_1.expect)(retrievedBy3AfterLink.title).to.be.undefined; // not shared with user3
135
- const decryptedPatientIdBy3 = yield api3.calendarItemApi.decryptPatientIdOf(retrievedBy3AfterLink);
136
- (0, chai_1.expect)(decryptedPatientIdBy3).to.have.length(1);
137
- (0, chai_1.expect)(decryptedPatientIdBy3[0]).to.equal(patient.id);
138
- const sharedInfo = yield api1.calendarItemApi.getDataOwnersWithAccessTo(linked);
139
- (0, chai_1.expect)(sharedInfo.hasUnknownAnonymousDataOwners).to.be.false;
140
- (0, chai_1.expect)(Object.keys(sharedInfo.permissionsByDataOwnerId)).to.have.members([
141
- user1.healthcarePartyId,
142
- user2.healthcarePartyId,
143
- user3.healthcarePartyId,
144
- ]);
145
- (0, chai_1.expect)(sharedInfo.permissionsByDataOwnerId[user1.healthcarePartyId]).to.equal(AccessLevelEnum.WRITE);
146
- (0, chai_1.expect)(sharedInfo.permissionsByDataOwnerId[user2.healthcarePartyId]).to.equal(AccessLevelEnum.WRITE);
147
- (0, chai_1.expect)(sharedInfo.permissionsByDataOwnerId[user3.healthcarePartyId]).to.equal(AccessLevelEnum.READ);
148
- }));
149
- });
150
- //# sourceMappingURL=icc-calendar-item-x-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icc-calendar-item-x-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-calendar-item-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import 'isomorphic-fetch'\nimport { getEnvironmentInitializer, hcp1Username, hcp2Username, hcp3Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { before } from 'mocha'\nimport { IccPatientXApi, IccUserXApi } from '../../icc-x-api'\nimport { IccCalendarItemApi } from '../../icc-api'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { User } from '../../icc-api/model/User'\nimport { randomUUID } from 'crypto'\nimport { CalendarItem } from '../../icc-api/model/CalendarItem'\nimport { assert, expect } from 'chai'\nimport initApi = TestUtils.initApi\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { SecureDelegation } from '../../icc-api/model/SecureDelegation'\nimport AccessLevelEnum = SecureDelegation.AccessLevelEnum\nimport { BasicAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\ndescribe('icc-calendar-item-x-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n async function createPatient(patientApiForHcp: IccPatientXApi, hcpUser: User) {\n return patientApiForHcp.createPatientWithUser(\n hcpUser,\n await patientApiForHcp.newInstance(\n hcpUser,\n new Patient({\n id: randomUUID(),\n firstName: 'John',\n lastName: 'Snow',\n note: 'Winter is coming',\n })\n )\n )\n }\n\n it('Test', async () => {\n // Given\n const username = env.dataOwnerDetails[hcp1Username].user\n const password = env.dataOwnerDetails[hcp1Username].password\n\n const authProvider = new BasicAuthenticationProvider(username, password)\n\n const userApi = new IccUserXApi(env.iCureUrl, {}, authProvider, null as any, fetch)\n const calenderItemApi = new IccCalendarItemApi(env.iCureUrl, {}, authProvider, fetch)\n\n const currentUser = await userApi.getCurrentUser()\n })\n\n it('Test findBy', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n cryptoApi: cryptoApiForHcp,\n dataOwnerApi: dateOwnerApiForHcp,\n calendarItemApi: calendarItemXApi,\n } = await initApi(env, hcp1Username)\n const hcpUser = await userApiForHcp.getCurrentUser()\n const patient = (await createPatient(patientApiForHcp, hcpUser)) as Patient\n\n const calendarItem: CalendarItem = {\n id: randomUUID(),\n created: new Date().getTime(),\n modified: new Date().getTime(),\n startTime: 20230327131313,\n endTime: 20230327141313,\n responsible: hcpUser.healthcarePartyId!,\n author: hcpUser.id,\n codes: [],\n tags: [],\n }\n const calendarItemToCreate: CalendarItem = await calendarItemXApi.newInstancePatient(hcpUser, patient, calendarItem)\n const createdCalendarItem = await calendarItemXApi.createCalendarItemWithHcParty(hcpUser, calendarItemToCreate)\n\n const foundItems = await calendarItemXApi.findBy(hcpUser.healthcarePartyId!, patient, false)\n const foundItemsUsingPost = await calendarItemXApi.findBy(hcpUser.healthcarePartyId!, patient, true)\n\n assert(foundItems.length == 1, 'Found items should be 1')\n assert(foundItems[0].id == createdCalendarItem.id, 'Found item should be the same as created item')\n\n assert(foundItemsUsingPost.length == 1, 'Found items using post should be 1')\n assert(foundItemsUsingPost[0].id == createdCalendarItem.id, 'Found item using post should be the same as created item')\n })\n\n it('Share with should work as expected', async () => {\n const api1 = await initApi(env!, hcp1Username)\n const user1 = await api1.userApi.getCurrentUser()\n const api2 = await initApi(env!, hcp2Username)\n const user2 = await api2.userApi.getCurrentUser()\n const samplePatient = await api1.patientApi.createPatientWithUser(\n user1,\n await api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' })\n )\n const encryptedField = 'Something encrypted'\n const entity = await api1.calendarItemApi.createCalendarItemWithHcParty(\n user1,\n await api1.calendarItemApi.newInstancePatient(user1, samplePatient, { details: encryptedField })\n )\n expect(entity.details).to.be.equal(encryptedField)\n await api2.calendarItemApi\n .getCalendarItemWithUser(user2, entity.id)\n .then(() => {\n throw new Error('Should not be able to get the entity')\n })\n .catch(() => {\n /* expected */\n })\n await api1.calendarItemApi.shareWith(user2.healthcarePartyId!, entity)\n const retrieved = await api2.calendarItemApi.getCalendarItemWithUser(user2, entity.id)\n expect(retrieved.details).to.be.equal(encryptedField)\n expect((await api2.calendarItemApi.decryptPatientIdOf(retrieved))[0]).to.equal(samplePatient.id)\n })\n\n it('Should be able to link a calendar item with an existing patient', async () => {\n const api1 = await initApi(env!, hcp1Username)\n const user1 = await api1.userApi.getCurrentUser()\n const api2 = await initApi(env!, hcp2Username)\n const user2 = await api2.userApi.getCurrentUser()\n const api3 = await initApi(env!, hcp3Username)\n const user3 = await api3.userApi.getCurrentUser()\n const patient = await api1.patientApi.createPatientWithUser(\n user1,\n await api1.patientApi.newInstance(\n user1,\n {\n firstName: 'Gigio',\n lastName: 'Bagigio',\n },\n { additionalDelegates: { [user2.healthcarePartyId!]: 'WRITE' } }\n )\n )\n const patientSecretIds = await api2.patientApi.decryptNonConfidentialSecretIdsOf(patient)\n expect(patientSecretIds).to.have.length(1)\n const itemTitle = 'An interesting title'\n const calendarItem = await api2.calendarItemApi.createCalendarItemWithHcParty(\n user2,\n await api2.calendarItemApi.newInstance(user2, { title: itemTitle }, { additionalDelegates: { [user1.healthcarePartyId!]: 'WRITE' } })\n )\n expect(calendarItem.title).to.equal(itemTitle)\n expect((await api1.calendarItemApi.getCalendarItemWithUser(user1, calendarItem.id)).title).to.equal(itemTitle)\n expect(await api1.calendarItemApi.decryptPatientIdOf(calendarItem)).to.have.length(0)\n expect(calendarItem.secretForeignKeys ?? []).to.have.length(0)\n const linked = await api1.calendarItemApi.linkWithPatient(calendarItem, patient, [user2.healthcarePartyId!, user3.healthcarePartyId!])\n expect(linked.title).to.equal(itemTitle)\n expect(linked.secretForeignKeys ?? []).to.have.length(1)\n expect(linked.secretForeignKeys![0]).to.equal(patientSecretIds[0])\n const decryptedPatientIdBy1 = await api1.calendarItemApi.decryptPatientIdOf(linked)\n expect(decryptedPatientIdBy1).to.have.length(1)\n expect(decryptedPatientIdBy1[0]).to.equal(patient.id)\n const retrievedBy2AfterLink = await api2.calendarItemApi.getCalendarItemWithUser(user2, calendarItem.id)\n expect(retrievedBy2AfterLink.title).to.equal(itemTitle)\n const decryptedPatientIdBy2 = await api2.calendarItemApi.decryptPatientIdOf(retrievedBy2AfterLink)\n expect(decryptedPatientIdBy2).to.have.length(1)\n expect(decryptedPatientIdBy2[0]).to.equal(patient.id)\n const retrievedBy3AfterLink = await api3.calendarItemApi.getCalendarItemWithUser(user3, calendarItem.id)\n expect(retrievedBy3AfterLink.title).to.be.undefined // not shared with user3\n const decryptedPatientIdBy3 = await api3.calendarItemApi.decryptPatientIdOf(retrievedBy3AfterLink)\n expect(decryptedPatientIdBy3).to.have.length(1)\n expect(decryptedPatientIdBy3[0]).to.equal(patient.id)\n const sharedInfo = await api1.calendarItemApi.getDataOwnersWithAccessTo(linked)\n expect(sharedInfo.hasUnknownAnonymousDataOwners).to.be.false\n expect(Object.keys(sharedInfo.permissionsByDataOwnerId)).to.have.members([\n user1.healthcarePartyId!,\n user2.healthcarePartyId!,\n user3.healthcarePartyId!,\n ])\n expect(sharedInfo.permissionsByDataOwnerId[user1.healthcarePartyId!]).to.equal(AccessLevelEnum.WRITE)\n expect(sharedInfo.permissionsByDataOwnerId[user2.healthcarePartyId!]).to.equal(AccessLevelEnum.WRITE)\n expect(sharedInfo.permissionsByDataOwnerId[user3.healthcarePartyId!]).to.equal(AccessLevelEnum.READ)\n })\n})\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const mocha_1 = require("mocha");
4
- const chai_1 = require("chai");
5
- const icc_x_api_1 = require("../../icc-x-api");
6
- const icd10_1 = require("../../icc-x-api/rsrc/icd10");
7
- const icpc2_1 = require("../../icc-x-api/rsrc/icpc2");
8
- (0, mocha_1.describe)('icdChapters', () => {
9
- (0, mocha_1.it)('should group codes into the correct chapter', () => {
10
- const result = (0, icc_x_api_1.icdChapters)(['A01', 'A02'], icd10_1.default);
11
- (0, chai_1.expect)(result).to.have.length(1);
12
- (0, chai_1.expect)(result[0].code).to.equal('A0');
13
- (0, chai_1.expect)(result[0].subCodes).to.deep.equal(['A01', 'A02']);
14
- (0, chai_1.expect)(result[0].descr).to.have.property('en');
15
- });
16
- (0, mocha_1.it)('should split codes across different chapters', () => {
17
- const result = (0, icc_x_api_1.icdChapters)(['A01', 'C10', 'E50'], icd10_1.default);
18
- (0, chai_1.expect)(result).to.have.length(3);
19
- (0, chai_1.expect)(result.map((c) => c.code)).to.include.members(['A0', 'C0', 'E0']);
20
- });
21
- (0, mocha_1.it)('should return results sorted by code', () => {
22
- const codes = (0, icc_x_api_1.icdChapters)(['E50', 'A01', 'C10'], icd10_1.default).map((c) => c.code);
23
- (0, chai_1.expect)(codes).to.deep.equal([...codes].sort());
24
- });
25
- (0, mocha_1.it)('should ignore unmatched codes', () => {
26
- (0, chai_1.expect)((0, icc_x_api_1.icdChapters)(['ZZZ'], icd10_1.default)).to.have.length(0);
27
- });
28
- (0, mocha_1.it)('should return empty for empty input', () => {
29
- (0, chai_1.expect)((0, icc_x_api_1.icdChapters)([], icd10_1.default)).to.deep.equal([]);
30
- });
31
- (0, mocha_1.it)('should collect codes from the same range into one chapter', () => {
32
- const result = (0, icc_x_api_1.icdChapters)(['A01', 'A50', 'B10'], icd10_1.default);
33
- (0, chai_1.expect)(result).to.have.length(1);
34
- (0, chai_1.expect)(result[0].subCodes).to.include.members(['A01', 'A50', 'B10']);
35
- });
36
- (0, mocha_1.it)('should preserve the description from the data', () => {
37
- const result = (0, icc_x_api_1.icdChapters)(['F10'], icd10_1.default);
38
- (0, chai_1.expect)(result[0].descr.en).to.equal('Mental and behavioural disorders');
39
- });
40
- });
41
- (0, mocha_1.describe)('icpcChapters', () => {
42
- (0, mocha_1.it)('should group codes by their first letter', () => {
43
- const result = (0, icc_x_api_1.icpcChapters)(['A01', 'A73'], icpc2_1.default);
44
- (0, chai_1.expect)(result).to.have.length(1);
45
- (0, chai_1.expect)(result[0].code).to.equal('A');
46
- (0, chai_1.expect)(result[0].subCodes).to.deep.equal(['A01', 'A73']);
47
- (0, chai_1.expect)(result[0].descr).to.have.property('en');
48
- });
49
- (0, mocha_1.it)('should split codes across different chapters', () => {
50
- const result = (0, icc_x_api_1.icpcChapters)(['A01', 'D05', 'K99'], icpc2_1.default);
51
- (0, chai_1.expect)(result).to.have.length(3);
52
- (0, chai_1.expect)(result.map((c) => c.code)).to.include.members(['A', 'D', 'K']);
53
- });
54
- (0, mocha_1.it)('should return results sorted by code', () => {
55
- const codes = (0, icc_x_api_1.icpcChapters)(['K99', 'A01', 'D05'], icpc2_1.default).map((c) => c.code);
56
- (0, chai_1.expect)(codes).to.deep.equal([...codes].sort());
57
- });
58
- (0, mocha_1.it)('should ignore codes with no matching chapter letter', () => {
59
- (0, chai_1.expect)((0, icc_x_api_1.icpcChapters)(['C01', 'E05'], icpc2_1.default)).to.have.length(0);
60
- });
61
- (0, mocha_1.it)('should return empty for empty input', () => {
62
- (0, chai_1.expect)((0, icc_x_api_1.icpcChapters)([], icpc2_1.default)).to.deep.equal([]);
63
- });
64
- (0, mocha_1.it)('should handle lowercase input codes', () => {
65
- const result = (0, icc_x_api_1.icpcChapters)(['a01', 'a73'], icpc2_1.default);
66
- (0, chai_1.expect)(result).to.have.length(1);
67
- (0, chai_1.expect)(result[0].code).to.equal('A');
68
- });
69
- (0, mocha_1.it)('should preserve the description from the data', () => {
70
- const result = (0, icc_x_api_1.icpcChapters)(['K01'], icpc2_1.default);
71
- (0, chai_1.expect)(result[0].descr.en).to.equal('Circulatory');
72
- });
73
- });
74
- //# sourceMappingURL=icc-code-x-api-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icc-code-x-api-test.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-code-x-api-test.ts"],"names":[],"mappings":";;AAAA,iCAAoC;AACpC,+BAA6B;AAC7B,+CAA2D;AAC3D,sDAA8C;AAC9C,sDAA8C;AAE9C,IAAA,gBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAA,UAAE,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,IAAA,uBAAW,EAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,eAAK,CAAC,CAAA;QAEjD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAChC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;QACxD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,IAAA,uBAAW,EAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,eAAK,CAAC,CAAA;QAExD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAChC,IAAA,aAAM,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,eAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAE1E,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,IAAA,aAAM,EAAC,IAAA,uBAAW,EAAC,CAAC,KAAK,CAAC,EAAE,eAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,IAAA,aAAM,EAAC,IAAA,uBAAW,EAAC,EAAE,EAAE,eAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,MAAM,GAAG,IAAA,uBAAW,EAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,eAAK,CAAC,CAAA;QAExD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAChC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,IAAA,uBAAW,EAAC,CAAC,KAAK,CAAC,EAAE,eAAK,CAAC,CAAA;QAE1C,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,IAAA,gBAAQ,EAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAA,UAAE,EAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,eAAK,CAAC,CAAA;QAElD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAChC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;QACxD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,eAAK,CAAC,CAAA;QAEzD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAChC,IAAA,aAAM,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAA,wBAAY,EAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,eAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAE3E,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,IAAA,aAAM,EAAC,IAAA,wBAAY,EAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,eAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,IAAA,aAAM,EAAC,IAAA,wBAAY,EAAC,EAAE,EAAE,eAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,eAAK,CAAC,CAAA;QAElD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAChC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,IAAA,UAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,CAAC,KAAK,CAAC,EAAE,eAAK,CAAC,CAAA;QAE3C,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { describe, it } from 'mocha'\nimport { expect } from 'chai'\nimport { icdChapters, icpcChapters } from '../../icc-x-api'\nimport icd10 from '../../icc-x-api/rsrc/icd10'\nimport icpc2 from '../../icc-x-api/rsrc/icpc2'\n\ndescribe('icdChapters', () => {\n it('should group codes into the correct chapter', () => {\n const result = icdChapters(['A01', 'A02'], icd10)\n\n expect(result).to.have.length(1)\n expect(result[0].code).to.equal('A0')\n expect(result[0].subCodes).to.deep.equal(['A01', 'A02'])\n expect(result[0].descr).to.have.property('en')\n })\n\n it('should split codes across different chapters', () => {\n const result = icdChapters(['A01', 'C10', 'E50'], icd10)\n\n expect(result).to.have.length(3)\n expect(result.map((c) => c.code)).to.include.members(['A0', 'C0', 'E0'])\n })\n\n it('should return results sorted by code', () => {\n const codes = icdChapters(['E50', 'A01', 'C10'], icd10).map((c) => c.code)\n\n expect(codes).to.deep.equal([...codes].sort())\n })\n\n it('should ignore unmatched codes', () => {\n expect(icdChapters(['ZZZ'], icd10)).to.have.length(0)\n })\n\n it('should return empty for empty input', () => {\n expect(icdChapters([], icd10)).to.deep.equal([])\n })\n\n it('should collect codes from the same range into one chapter', () => {\n const result = icdChapters(['A01', 'A50', 'B10'], icd10)\n\n expect(result).to.have.length(1)\n expect(result[0].subCodes).to.include.members(['A01', 'A50', 'B10'])\n })\n\n it('should preserve the description from the data', () => {\n const result = icdChapters(['F10'], icd10)\n\n expect(result[0].descr.en).to.equal('Mental and behavioural disorders')\n })\n})\n\ndescribe('icpcChapters', () => {\n it('should group codes by their first letter', () => {\n const result = icpcChapters(['A01', 'A73'], icpc2)\n\n expect(result).to.have.length(1)\n expect(result[0].code).to.equal('A')\n expect(result[0].subCodes).to.deep.equal(['A01', 'A73'])\n expect(result[0].descr).to.have.property('en')\n })\n\n it('should split codes across different chapters', () => {\n const result = icpcChapters(['A01', 'D05', 'K99'], icpc2)\n\n expect(result).to.have.length(3)\n expect(result.map((c) => c.code)).to.include.members(['A', 'D', 'K'])\n })\n\n it('should return results sorted by code', () => {\n const codes = icpcChapters(['K99', 'A01', 'D05'], icpc2).map((c) => c.code)\n\n expect(codes).to.deep.equal([...codes].sort())\n })\n\n it('should ignore codes with no matching chapter letter', () => {\n expect(icpcChapters(['C01', 'E05'], icpc2)).to.have.length(0)\n })\n\n it('should return empty for empty input', () => {\n expect(icpcChapters([], icpc2)).to.deep.equal([])\n })\n\n it('should handle lowercase input codes', () => {\n const result = icpcChapters(['a01', 'a73'], icpc2)\n\n expect(result).to.have.length(1)\n expect(result[0].code).to.equal('A')\n })\n\n it('should preserve the description from the data', () => {\n const result = icpcChapters(['K01'], icpc2)\n\n expect(result[0].descr.en).to.equal('Circulatory')\n })\n})\n"]}
@@ -1 +0,0 @@
1
- import 'isomorphic-fetch';