@icure/api 8.6.18 → 8.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/icc-api/api/IccDocumentApi.d.ts +10 -2
  2. package/icc-api/api/IccDocumentApi.js +22 -4
  3. package/icc-api/api/IccDocumentApi.js.map +1 -1
  4. package/icc-api/api/IccReceiptApi.d.ts +17 -0
  5. package/icc-api/api/IccReceiptApi.js +52 -0
  6. package/icc-api/api/IccReceiptApi.js.map +1 -1
  7. package/icc-api/model/DataAttachment.d.ts +22 -0
  8. package/icc-api/model/DataAttachment.js.map +1 -1
  9. package/icc-api/model/Document.d.ts +6 -0
  10. package/icc-api/model/Document.js.map +1 -1
  11. package/icc-api/model/Receipt.d.ts +6 -0
  12. package/icc-api/model/Receipt.js.map +1 -1
  13. package/icc-x-api/crypto/BaseExchangeDataManager.js +2 -2
  14. package/icc-x-api/crypto/BaseExchangeDataManager.js.map +1 -1
  15. package/icc-x-api/crypto/ExchangeDataManager.js +3 -3
  16. package/icc-x-api/crypto/ExchangeDataManager.js.map +1 -1
  17. package/icc-x-api/crypto/ExtendedApisUtils.d.ts +1 -1
  18. package/icc-x-api/crypto/ExtendedApisUtils.js.map +1 -1
  19. package/icc-x-api/crypto/ExtendedApisUtilsImpl.d.ts +1 -1
  20. package/icc-x-api/crypto/ExtendedApisUtilsImpl.js +8 -2
  21. package/icc-x-api/crypto/ExtendedApisUtilsImpl.js.map +1 -1
  22. package/icc-x-api/crypto/RecoveryDataEncryption.js.map +1 -1
  23. package/icc-x-api/icc-accesslog-x-api.js +7 -7
  24. package/icc-x-api/icc-accesslog-x-api.js.map +1 -1
  25. package/icc-x-api/icc-calendar-item-x-api.js +7 -7
  26. package/icc-x-api/icc-calendar-item-x-api.js.map +1 -1
  27. package/icc-x-api/icc-classification-x-api.js +4 -5
  28. package/icc-x-api/icc-classification-x-api.js.map +1 -1
  29. package/icc-x-api/icc-code-x-api.d.ts +2 -2
  30. package/icc-x-api/icc-code-x-api.js +3 -33
  31. package/icc-x-api/icc-code-x-api.js.map +1 -1
  32. package/icc-x-api/icc-contact-x-api.js +20 -33
  33. package/icc-x-api/icc-contact-x-api.js.map +1 -1
  34. package/icc-x-api/icc-doctemplate-x-api.js.map +1 -1
  35. package/icc-x-api/icc-document-x-api.d.ts +8 -7
  36. package/icc-x-api/icc-document-x-api.js +64 -22
  37. package/icc-x-api/icc-document-x-api.js.map +1 -1
  38. package/icc-x-api/icc-form-x-api.js +3 -4
  39. package/icc-x-api/icc-form-x-api.js.map +1 -1
  40. package/icc-x-api/icc-helement-x-api.js +11 -11
  41. package/icc-x-api/icc-helement-x-api.js.map +1 -1
  42. package/icc-x-api/icc-invoice-x-api.js +3 -4
  43. package/icc-x-api/icc-invoice-x-api.js.map +1 -1
  44. package/icc-x-api/icc-maintenance-task-x-api.js +3 -3
  45. package/icc-x-api/icc-maintenance-task-x-api.js.map +1 -1
  46. package/icc-x-api/icc-patient-x-api.js +29 -29
  47. package/icc-x-api/icc-patient-x-api.js.map +1 -1
  48. package/icc-x-api/icc-receipt-x-api.d.ts +40 -0
  49. package/icc-x-api/icc-receipt-x-api.js +79 -1
  50. package/icc-x-api/icc-receipt-x-api.js.map +1 -1
  51. package/icc-x-api/icc-topic-x-api.js.map +1 -1
  52. package/icc-x-api/index.js +1 -1
  53. package/icc-x-api/index.js.map +1 -1
  54. package/icc-x-api/utils/code-util.d.ts +23 -0
  55. package/icc-x-api/utils/code-util.js +39 -2
  56. package/icc-x-api/utils/code-util.js.map +1 -1
  57. package/icc-x-api/utils/collection-utils.d.ts +13 -0
  58. package/icc-x-api/utils/collection-utils.js +69 -0
  59. package/icc-x-api/utils/collection-utils.js.map +1 -1
  60. package/icc-x-api/utils/compression-utils.d.ts +28 -0
  61. package/icc-x-api/utils/compression-utils.js +106 -0
  62. package/icc-x-api/utils/compression-utils.js.map +1 -0
  63. package/icc-x-api/utils/crypto-utils.js +7 -7
  64. package/icc-x-api/utils/crypto-utils.js.map +1 -1
  65. package/icc-x-api/utils/formatting-util.d.ts +1 -3
  66. package/icc-x-api/utils/formatting-util.js +15 -17
  67. package/icc-x-api/utils/formatting-util.js.map +1 -1
  68. package/icc-x-api/utils/hcp-util.js +2 -3
  69. package/icc-x-api/utils/hcp-util.js.map +1 -1
  70. package/icc-x-api/utils/insurability-util.js +10 -8
  71. package/icc-x-api/utils/insurability-util.js.map +1 -1
  72. package/icc-x-api/utils/lzma-wasm.d.ts +6 -0
  73. package/icc-x-api/utils/lzma-wasm.js +81 -0
  74. package/icc-x-api/utils/lzma-wasm.js.map +1 -0
  75. package/icc-x-api/utils/mutex.d.ts +12 -0
  76. package/icc-x-api/utils/mutex.js +26 -0
  77. package/icc-x-api/utils/mutex.js.map +1 -0
  78. package/icc-x-api/utils/websocket.js +7 -7
  79. package/icc-x-api/utils/websocket.js.map +1 -1
  80. package/icc-x-api/wasm/lzma/lzma.js +2 -0
  81. package/icc-x-api/wasm/lzma/lzma.wasm +0 -0
  82. package/package.json +2 -11
  83. package/icc-x-api/utils/uuid-encoder.d.ts +0 -44
  84. package/icc-x-api/utils/uuid-encoder.js +0 -114
  85. package/icc-x-api/utils/uuid-encoder.js.map +0 -1
  86. package/test/icc-api/api/IccAgendaApi.d.ts +0 -1
  87. package/test/icc-api/api/IccAgendaApi.js +0 -64
  88. package/test/icc-api/api/IccAgendaApi.js.map +0 -1
  89. package/test/icc-api/api/IccAnonymousAccessApi.d.ts +0 -1
  90. package/test/icc-api/api/IccAnonymousAccessApi.js +0 -58
  91. package/test/icc-api/api/IccAnonymousAccessApi.js.map +0 -1
  92. package/test/icc-api/api/IccCalendarItemApi.d.ts +0 -1
  93. package/test/icc-api/api/IccCalendarItemApi.js +0 -67
  94. package/test/icc-api/api/IccCalendarItemApi.js.map +0 -1
  95. package/test/icc-api/api/IccCalendarItemTypeApi.d.ts +0 -1
  96. package/test/icc-api/api/IccCalendarItemTypeApi.js +0 -96
  97. package/test/icc-api/api/IccCalendarItemTypeApi.js.map +0 -1
  98. package/test/icc-api/api/IccCodeApi.d.ts +0 -1
  99. package/test/icc-api/api/IccCodeApi.js +0 -38
  100. package/test/icc-api/api/IccCodeApi.js.map +0 -1
  101. package/test/icc-api/api/IccDocumentApi.d.ts +0 -1
  102. package/test/icc-api/api/IccDocumentApi.js +0 -199
  103. package/test/icc-api/api/IccDocumentApi.js.map +0 -1
  104. package/test/icc-api/api/IccGroupApi.d.ts +0 -1
  105. package/test/icc-api/api/IccGroupApi.js +0 -50
  106. package/test/icc-api/api/IccGroupApi.js.map +0 -1
  107. package/test/icc-api/api/IccKeywordApi.d.ts +0 -1
  108. package/test/icc-api/api/IccKeywordApi.js +0 -64
  109. package/test/icc-api/api/IccKeywordApi.js.map +0 -1
  110. package/test/icc-api/api/IccMedicalLocationApi.d.ts +0 -1
  111. package/test/icc-api/api/IccMedicalLocationApi.js +0 -64
  112. package/test/icc-api/api/IccMedicalLocationApi.js.map +0 -1
  113. package/test/icc-api/api/IccPlaceApi.d.ts +0 -1
  114. package/test/icc-api/api/IccPlaceApi.js +0 -64
  115. package/test/icc-api/api/IccPlaceApi.js.map +0 -1
  116. package/test/icc-api/api/IccRecoveryDataApi.d.ts +0 -1
  117. package/test/icc-api/api/IccRecoveryDataApi.js +0 -95
  118. package/test/icc-api/api/IccRecoveryDataApi.js.map +0 -1
  119. package/test/icc-api/api/IccRoleApi.d.ts +0 -1
  120. package/test/icc-api/api/IccRoleApi.js +0 -34
  121. package/test/icc-api/api/IccRoleApi.js.map +0 -1
  122. package/test/icc-api/api/IccUserApi.d.ts +0 -1
  123. package/test/icc-api/api/IccUserApi.js +0 -96
  124. package/test/icc-api/api/IccUserApi.js.map +0 -1
  125. package/test/icc-api/e2e/IccCalendarItemApi.d.ts +0 -1
  126. package/test/icc-api/e2e/IccCalendarItemApi.js +0 -46
  127. package/test/icc-api/e2e/IccCalendarItemApi.js.map +0 -1
  128. package/test/icc-api/model/modelHelpersTest.d.ts +0 -1
  129. package/test/icc-api/model/modelHelpersTest.js +0 -45
  130. package/test/icc-api/model/modelHelpersTest.js.map +0 -1
  131. package/test/icc-x-api/auth/group-switch-test.d.ts +0 -1
  132. package/test/icc-x-api/auth/group-switch-test.js +0 -81
  133. package/test/icc-x-api/auth/group-switch-test.js.map +0 -1
  134. package/test/icc-x-api/auth/jwt-concurrency-test.d.ts +0 -2
  135. package/test/icc-x-api/auth/jwt-concurrency-test.js +0 -112
  136. package/test/icc-x-api/auth/jwt-concurrency-test.js.map +0 -1
  137. package/test/icc-x-api/auth/jwt-provider-test.d.ts +0 -1
  138. package/test/icc-x-api/auth/jwt-provider-test.js +0 -197
  139. package/test/icc-x-api/auth/jwt-provider-test.js.map +0 -1
  140. package/test/icc-x-api/auth/smart-auth-provider-test.d.ts +0 -1
  141. package/test/icc-x-api/auth/smart-auth-provider-test.js +0 -224
  142. package/test/icc-x-api/auth/smart-auth-provider-test.js.map +0 -1
  143. package/test/icc-x-api/autofix-anonymity-test.d.ts +0 -1
  144. package/test/icc-x-api/autofix-anonymity-test.js +0 -122
  145. package/test/icc-x-api/autofix-anonymity-test.js.map +0 -1
  146. package/test/icc-x-api/confidential-entities-test.d.ts +0 -1
  147. package/test/icc-x-api/confidential-entities-test.js +0 -168
  148. package/test/icc-x-api/confidential-entities-test.js.map +0 -1
  149. package/test/icc-x-api/crud/comprehensive-crud-test.d.ts +0 -1
  150. package/test/icc-x-api/crud/comprehensive-crud-test.js +0 -276
  151. package/test/icc-x-api/crud/comprehensive-crud-test.js.map +0 -1
  152. package/test/icc-x-api/crud/entities-crud-test-interface.d.ts +0 -16
  153. package/test/icc-x-api/crud/entities-crud-test-interface.js +0 -408
  154. package/test/icc-x-api/crud/entities-crud-test-interface.js.map +0 -1
  155. package/test/icc-x-api/crypto/anonymous-delegations-test.d.ts +0 -1
  156. package/test/icc-x-api/crypto/anonymous-delegations-test.js +0 -587
  157. package/test/icc-x-api/crypto/anonymous-delegations-test.js.map +0 -1
  158. package/test/icc-x-api/crypto/concurrency.d.ts +0 -1
  159. package/test/icc-x-api/crypto/concurrency.js +0 -35
  160. package/test/icc-x-api/crypto/concurrency.js.map +0 -1
  161. package/test/icc-x-api/crypto/crypto-utils.d.ts +0 -1
  162. package/test/icc-x-api/crypto/crypto-utils.js +0 -79
  163. package/test/icc-x-api/crypto/crypto-utils.js.map +0 -1
  164. package/test/icc-x-api/crypto/cryptoTest.d.ts +0 -2
  165. package/test/icc-x-api/crypto/cryptoTest.js +0 -402
  166. package/test/icc-x-api/crypto/cryptoTest.js.map +0 -1
  167. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.d.ts +0 -1
  168. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js +0 -166
  169. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js.map +0 -1
  170. package/test/icc-x-api/crypto/exchange-data-manager-test.d.ts +0 -1
  171. package/test/icc-x-api/crypto/exchange-data-manager-test.js +0 -674
  172. package/test/icc-x-api/crypto/exchange-data-manager-test.js.map +0 -1
  173. package/test/icc-x-api/crypto/full-crypto-test.d.ts +0 -1
  174. package/test/icc-x-api/crypto/full-crypto-test.js +0 -454
  175. package/test/icc-x-api/crypto/full-crypto-test.js.map +0 -1
  176. package/test/icc-x-api/crypto/legacy-metadata-migration-test.d.ts +0 -1
  177. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js +0 -379
  178. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js.map +0 -1
  179. package/test/icc-x-api/crypto/secure-delegations-manager-test.d.ts +0 -1
  180. package/test/icc-x-api/crypto/secure-delegations-manager-test.js +0 -278
  181. package/test/icc-x-api/crypto/secure-delegations-manager-test.js.map +0 -1
  182. package/test/icc-x-api/crypto/shamir.d.ts +0 -2
  183. package/test/icc-x-api/crypto/shamir.js +0 -167
  184. package/test/icc-x-api/crypto/shamir.js.map +0 -1
  185. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.d.ts +0 -1
  186. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js +0 -71
  187. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js.map +0 -1
  188. package/test/icc-x-api/crypto/soft-deleted-data-owners.d.ts +0 -2
  189. package/test/icc-x-api/crypto/soft-deleted-data-owners.js +0 -113
  190. package/test/icc-x-api/crypto/soft-deleted-data-owners.js.map +0 -1
  191. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.d.ts +0 -1
  192. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js +0 -246
  193. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js.map +0 -1
  194. package/test/icc-x-api/entity-with-attachments-api-test.d.ts +0 -1
  195. package/test/icc-x-api/entity-with-attachments-api-test.js +0 -142
  196. package/test/icc-x-api/entity-with-attachments-api-test.js.map +0 -1
  197. package/test/icc-x-api/filters/filters.d.ts +0 -1
  198. package/test/icc-x-api/filters/filters.js +0 -49
  199. package/test/icc-x-api/filters/filters.js.map +0 -1
  200. package/test/icc-x-api/filters/healthelement.d.ts +0 -1
  201. package/test/icc-x-api/filters/healthelement.js +0 -333
  202. package/test/icc-x-api/filters/healthelement.js.map +0 -1
  203. package/test/icc-x-api/icc-accesslog-x-api.d.ts +0 -1
  204. package/test/icc-x-api/icc-accesslog-x-api.js +0 -106
  205. package/test/icc-x-api/icc-accesslog-x-api.js.map +0 -1
  206. package/test/icc-x-api/icc-application-settings-x-api.d.ts +0 -1
  207. package/test/icc-x-api/icc-application-settings-x-api.js +0 -91
  208. package/test/icc-x-api/icc-application-settings-x-api.js.map +0 -1
  209. package/test/icc-x-api/icc-auth-api.d.ts +0 -1
  210. package/test/icc-x-api/icc-auth-api.js +0 -47
  211. package/test/icc-x-api/icc-auth-api.js.map +0 -1
  212. package/test/icc-x-api/icc-calendar-item-x-api.d.ts +0 -1
  213. package/test/icc-x-api/icc-calendar-item-x-api.js +0 -150
  214. package/test/icc-x-api/icc-calendar-item-x-api.js.map +0 -1
  215. package/test/icc-x-api/icc-contact-x-api.d.ts +0 -1
  216. package/test/icc-x-api/icc-contact-x-api.js +0 -355
  217. package/test/icc-x-api/icc-contact-x-api.js.map +0 -1
  218. package/test/icc-x-api/icc-document-x-api.d.ts +0 -1
  219. package/test/icc-x-api/icc-document-x-api.js +0 -76
  220. package/test/icc-x-api/icc-document-x-api.js.map +0 -1
  221. package/test/icc-x-api/icc-form-x-api.d.ts +0 -1
  222. package/test/icc-x-api/icc-form-x-api.js +0 -413
  223. package/test/icc-x-api/icc-form-x-api.js.map +0 -1
  224. package/test/icc-x-api/icc-hcparty-x-api-test.d.ts +0 -1
  225. package/test/icc-x-api/icc-hcparty-x-api-test.js +0 -43
  226. package/test/icc-x-api/icc-hcparty-x-api-test.js.map +0 -1
  227. package/test/icc-x-api/icc-helement-x-api-test.d.ts +0 -1
  228. package/test/icc-x-api/icc-helement-x-api-test.js +0 -155
  229. package/test/icc-x-api/icc-helement-x-api-test.js.map +0 -1
  230. package/test/icc-x-api/icc-invoice-x-api.d.ts +0 -1
  231. package/test/icc-x-api/icc-invoice-x-api.js +0 -99
  232. package/test/icc-x-api/icc-invoice-x-api.js.map +0 -1
  233. package/test/icc-x-api/icc-maintenance-task-x-api-test.d.ts +0 -1
  234. package/test/icc-x-api/icc-maintenance-task-x-api-test.js +0 -222
  235. package/test/icc-x-api/icc-maintenance-task-x-api-test.js.map +0 -1
  236. package/test/icc-x-api/icc-message-x-api.d.ts +0 -1
  237. package/test/icc-x-api/icc-message-x-api.js +0 -54
  238. package/test/icc-x-api/icc-message-x-api.js.map +0 -1
  239. package/test/icc-x-api/icc-patient-x-api-test.d.ts +0 -1
  240. package/test/icc-x-api/icc-patient-x-api-test.js +0 -165
  241. package/test/icc-x-api/icc-patient-x-api-test.js.map +0 -1
  242. package/test/icc-x-api/icc-recovery-x-api.d.ts +0 -1
  243. package/test/icc-x-api/icc-recovery-x-api.js +0 -175
  244. package/test/icc-x-api/icc-recovery-x-api.js.map +0 -1
  245. package/test/icc-x-api/icc-topic-x-api.d.ts +0 -1
  246. package/test/icc-x-api/icc-topic-x-api.js +0 -269
  247. package/test/icc-x-api/icc-topic-x-api.js.map +0 -1
  248. package/test/icc-x-api/icc-user-x-api-test.d.ts +0 -1
  249. package/test/icc-x-api/icc-user-x-api-test.js +0 -99
  250. package/test/icc-x-api/icc-user-x-api-test.js.map +0 -1
  251. package/test/icc-x-api/keyless-api.d.ts +0 -1
  252. package/test/icc-x-api/keyless-api.js +0 -125
  253. package/test/icc-x-api/keyless-api.js.map +0 -1
  254. package/test/icc-x-api/patient-user.d.ts +0 -2
  255. package/test/icc-x-api/patient-user.js +0 -103
  256. package/test/icc-x-api/patient-user.js.map +0 -1
  257. package/test/icc-x-api/storage/storage.d.ts +0 -1
  258. package/test/icc-x-api/storage/storage.js +0 -48
  259. package/test/icc-x-api/storage/storage.js.map +0 -1
  260. package/test/icc-x-api/test-api-no-parent.d.ts +0 -1
  261. package/test/icc-x-api/test-api-no-parent.js +0 -79
  262. package/test/icc-x-api/test-api-no-parent.js.map +0 -1
  263. package/test/icc-x-api/test-legacy-data-support.d.ts +0 -1
  264. package/test/icc-x-api/test-legacy-data-support.js +0 -375
  265. package/test/icc-x-api/test-legacy-data-support.js.map +0 -1
  266. package/test/icc-x-api/utils/graph-test.d.ts +0 -1
  267. package/test/icc-x-api/utils/graph-test.js +0 -54
  268. package/test/icc-x-api/utils/graph-test.js.map +0 -1
  269. package/test/icc-x-api/utils/lru-temporised-async-cache-test.d.ts +0 -1
  270. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js +0 -364
  271. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js.map +0 -1
  272. package/test/support/CSM-185.d.ts +0 -1
  273. package/test/support/CSM-185.js +0 -124
  274. package/test/support/CSM-185.js.map +0 -1
  275. package/test/support/CSM-243.d.ts +0 -1
  276. package/test/support/CSM-243.js +0 -120
  277. package/test/support/CSM-243.js.map +0 -1
  278. package/test/support/CSM-543.d.ts +0 -1
  279. package/test/support/CSM-543.js +0 -164
  280. package/test/support/CSM-543.js.map +0 -1
  281. package/test/support/CSM-729.d.ts +0 -1
  282. package/test/support/CSM-729.js +0 -225
  283. package/test/support/CSM-729.js.map +0 -1
  284. package/test/support/CSM-87.d.ts +0 -0
  285. package/test/support/CSM-87.js +0 -21
  286. package/test/support/CSM-87.js.map +0 -1
  287. package/test/support/CSM-93.d.ts +0 -1
  288. package/test/support/CSM-93.js +0 -112
  289. package/test/support/CSM-93.js.map +0 -1
  290. package/test/utils/FakeDataOwnerApi.d.ts +0 -32
  291. package/test/utils/FakeDataOwnerApi.js +0 -136
  292. package/test/utils/FakeDataOwnerApi.js.map +0 -1
  293. package/test/utils/FakeEncryptionKeysManager.d.ts +0 -36
  294. package/test/utils/FakeEncryptionKeysManager.js +0 -98
  295. package/test/utils/FakeEncryptionKeysManager.js.map +0 -1
  296. package/test/utils/FakeExchangeDataApi.d.ts +0 -32
  297. package/test/utils/FakeExchangeDataApi.js +0 -92
  298. package/test/utils/FakeExchangeDataApi.js.map +0 -1
  299. package/test/utils/FakeExchangeDataManager.d.ts +0 -48
  300. package/test/utils/FakeExchangeDataManager.js +0 -82
  301. package/test/utils/FakeExchangeDataManager.js.map +0 -1
  302. package/test/utils/FakeExchangeDataMapManager.d.ts +0 -12
  303. package/test/utils/FakeExchangeDataMapManager.js +0 -38
  304. package/test/utils/FakeExchangeDataMapManager.js.map +0 -1
  305. package/test/utils/FakeGenericApi.d.ts +0 -16
  306. package/test/utils/FakeGenericApi.js +0 -65
  307. package/test/utils/FakeGenericApi.js.map +0 -1
  308. package/test/utils/KeylessCryptoStrategies.d.ts +0 -23
  309. package/test/utils/KeylessCryptoStrategies.js +0 -26
  310. package/test/utils/KeylessCryptoStrategies.js.map +0 -1
  311. package/test/utils/TestApi.d.ts +0 -3
  312. package/test/utils/TestApi.js +0 -30
  313. package/test/utils/TestApi.js.map +0 -1
  314. package/test/utils/TestCollectionUtils.d.ts +0 -1
  315. package/test/utils/TestCollectionUtils.js +0 -109
  316. package/test/utils/TestCollectionUtils.js.map +0 -1
  317. package/test/utils/TestCryptoStrategies.d.ts +0 -42
  318. package/test/utils/TestCryptoStrategies.js +0 -80
  319. package/test/utils/TestCryptoStrategies.js.map +0 -1
  320. package/test/utils/TestStorage.d.ts +0 -23
  321. package/test/utils/TestStorage.js +0 -61
  322. package/test/utils/TestStorage.js.map +0 -1
  323. package/test/utils/roles.d.ts +0 -14
  324. package/test/utils/roles.js +0 -345
  325. package/test/utils/roles.js.map +0 -1
  326. package/test/utils/test_utils.d.ts +0 -87
  327. package/test/utils/test_utils.js +0 -452
  328. package/test/utils/test_utils.js.map +0 -1
@@ -8,7 +8,6 @@ exports.nihiiFormat = nihiiFormat;
8
8
  exports.nihiiValidate = nihiiValidate;
9
9
  exports.ssinFormat = ssinFormat;
10
10
  exports.ssinValidate = ssinValidate;
11
- exports.phoneNumberValidate = phoneNumberValidate;
12
11
  exports.phoneNumberFormat = phoneNumberFormat;
13
12
  exports.dateDecode = dateDecode;
14
13
  exports.timeDecode = timeDecode;
@@ -22,8 +21,7 @@ exports.personName = personName;
22
21
  exports.personNameAbbrev = personNameAbbrev;
23
22
  exports.toMoment = toMoment;
24
23
  const libphonenumber_js_1 = require("libphonenumber-js");
25
- const moment = require("moment");
26
- const _ = require("lodash");
24
+ const date_fns_1 = require("date-fns");
27
25
  // TODO: move this to env.js?
28
26
  const DEFAULT_COUNTRY = 'BE';
29
27
  exports.nihiiRegExp = new RegExp('^(\\d{1})(\\d{5})(\\d{2})(\\d{3})$');
@@ -90,12 +88,9 @@ export function phoneNumberFormat(phoneNumber: string): string {
90
88
  return phoneNumber
91
89
  }
92
90
  */
93
- function phoneNumberValidate(phoneNumber) {
94
- return (0, libphonenumber_js_1.isValidNumber)(phoneNumber);
95
- }
96
91
  function phoneNumberFormat(phoneNumber) {
97
92
  const parsedPhoneNumber = (0, libphonenumber_js_1.parseNumber)(phoneNumber, DEFAULT_COUNTRY);
98
- if (_.isEmpty(parsedPhoneNumber)) {
93
+ if (Object.keys(parsedPhoneNumber).length === 0) {
99
94
  // The number is not valid, so we leave the input string as-is.
100
95
  return phoneNumber;
101
96
  }
@@ -116,14 +111,14 @@ function dateDecode(dateNumber) {
116
111
  if (dateNumber < 0) {
117
112
  throw new Error("We don't decode negative dates. Please make sure you have valid data.");
118
113
  }
119
- const dateNumberStr = _.padStart(dateNumber.toString(), 8, '19700101');
114
+ const dateNumberStr = dateNumber.toString().padStart(8, '19700101');
120
115
  if (dateNumberStr.length > 8) {
121
116
  if (dateNumberStr.endsWith('000000')) {
122
- return dateNumber ? moment(dateNumberStr, 'YYYYMMDD000000').toDate() : undefined;
117
+ return dateNumber ? (0, date_fns_1.parse)(dateNumberStr.slice(0, 8), 'yyyyMMdd', new Date()) : undefined;
123
118
  }
124
119
  throw Error("Decoded date is over year 9999. We can't format it properly.");
125
120
  }
126
- return dateNumber ? moment(dateNumberStr, 'YYYYMMDD').toDate() : undefined;
121
+ return dateNumber ? (0, date_fns_1.parse)(dateNumberStr, 'yyyyMMdd', new Date()) : undefined;
127
122
  }
128
123
  /**
129
124
  * Converts a backend time number (e.g., health element openingDate) into a Date object.
@@ -133,7 +128,7 @@ function dateDecode(dateNumber) {
133
128
  * @see #dateDecode
134
129
  */
135
130
  function timeDecode(timeNumber) {
136
- return timeNumber ? moment(timeNumber.toString(), 'YYYYMMDDHHmmss').toDate() : undefined;
131
+ return timeNumber ? (0, date_fns_1.parse)(timeNumber.toString(), 'yyyyMMddHHmmss', new Date()) : undefined;
137
132
  }
138
133
  /**
139
134
  * Encodes a Date object into a backend date number (e.g., patient birth date).
@@ -143,7 +138,7 @@ function timeDecode(timeNumber) {
143
138
  * @see #timeEncode
144
139
  */
145
140
  function dateEncode(date) {
146
- const dateStr = _.padStart(moment(date).format('YYYYMMDD'), 8, '19700101');
141
+ const dateStr = (0, date_fns_1.format)(date, 'yyyyMMdd').padStart(8, '19700101');
147
142
  // date is null if the field is not set
148
143
  return date ? Number(dateStr) : undefined;
149
144
  }
@@ -155,7 +150,7 @@ function dateEncode(date) {
155
150
  * @see #dateEncode
156
151
  */
157
152
  function timeEncode(date) {
158
- return date ? Number(moment(date).format('YYYYMMDDHHmmss')) : undefined;
153
+ return date ? Number((0, date_fns_1.format)(date, 'yyyyMMddHHmmss')) : undefined;
159
154
  }
160
155
  /**
161
156
  * Formats a value and a physical unit into text.
@@ -194,7 +189,10 @@ function money(value) {
194
189
  * From { key1: value1, key2: value2, ... } returns key1=value1&key2=value2&...=...
195
190
  */
196
191
  function toUrlParams(params) {
197
- return _.filter(_.map(params, (value, key) => (value ? key + '=' + value : undefined))).join('&');
192
+ return Object.entries(params)
193
+ .map(([key, value]) => (value ? key + '=' + value : undefined))
194
+ .filter(Boolean)
195
+ .join('&');
198
196
  }
199
197
  function personName(person) {
200
198
  return `${person.firstName || ''} ${person.lastName || ''}`.trim();
@@ -208,13 +206,13 @@ function toMoment(epochOrLongCalendar) {
208
206
  return null;
209
207
  }
210
208
  if (epochOrLongCalendar >= 18000101 && epochOrLongCalendar < 25400000) {
211
- return moment('' + epochOrLongCalendar, 'YYYYMMDD');
209
+ return (0, date_fns_1.parse)('' + epochOrLongCalendar, 'yyyyMMdd', new Date());
212
210
  }
213
211
  else if (epochOrLongCalendar >= 18000101000000) {
214
- return moment('' + epochOrLongCalendar, 'YYYYMMDDhhmmss');
212
+ return (0, date_fns_1.parse)('' + epochOrLongCalendar, 'yyyyMMddHHmmss', new Date());
215
213
  }
216
214
  else {
217
- return moment(epochOrLongCalendar);
215
+ return new Date(epochOrLongCalendar);
218
216
  }
219
217
  }
220
218
  //# sourceMappingURL=formatting-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatting-util.js","sourceRoot":"","sources":["../../../icc-x-api/utils/formatting-util.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseNumber, formatNumber, isValidNumber, ParsedNumber } from 'libphonenumber-js'\n\nimport * as moment from 'moment'\nimport * as _ from 'lodash'\nimport { Moment } from 'moment'\n\n// TODO: move this to env.js?\nconst DEFAULT_COUNTRY = 'BE'\n\nexport const nihiiRegExp = new RegExp('^(\\\\d{1})(\\\\d{5})(\\\\d{2})(\\\\d{3})$')\nexport const ssinRegExp = new RegExp('^(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})$')\nexport const ibanRegExp = new RegExp('^(\\\\d{4})(\\\\d{4})(\\\\d{4})(\\\\d{4})$')\n\nconst patterns = {\n IBAN: (iban: string) => /^BE\\d{14}$/.test(iban) && isValidIBAN(iban),\n IBANBE: (iban: string) => /^BE\\d{14}$/.test(iban) && isValidIBAN(iban),\n}\n\n//http://ht5ifv.serprest.pt/extensions/tools/IBAN/\nexport function isValidIBAN(iban: string) {\n //This function check if the checksum if correct\n iban = iban.replace(/^(.{4})(.*)$/, '$2$1') //Move the first 4 chars from left to the right\n const fun = (e: string) => (e.charCodeAt(0) - 'A'.charCodeAt(0) + 10).toString()\n iban = iban.replace(/[A-Z]/g, fun) //Convert A-Z to 10-25\n let $sum = 0\n let $ei = 1 //First exponent\n for (let $i = iban.length - 1; $i >= 0; $i--) {\n $sum += $ei * parseInt(iban.charAt($i), 10) //multiply the digit by it's exponent\n $ei = ($ei * 10) % 97 //compute next base 10 exponent in modulus 97\n }\n return $sum % 97 === 1\n}\n\nexport function ibanValidate(iban: string) {\n if (iban.startsWith('BE')) {\n return patterns.IBANBE(iban)\n } else {\n return patterns.IBAN(iban)\n }\n}\n\nexport function ibanFormat(iban: string): string {\n return iban.replace(ibanRegExp, '$1 $2 $3 $4')\n}\n\nexport function nihiiFormat(nihii: string): string {\n return nihii.replace(nihiiRegExp, '$1 $2 $3 $4')\n}\n\nexport function nihiiValidate(nihii: string): boolean {\n return !!nihii.match(nihiiRegExp)\n}\n\nexport function ssinFormat(ssin: string): string {\n return ssin.replace(ssinRegExp, '$1 $2 $3 $4 $5')\n}\n\nexport function ssinValidate(ssin: string): boolean {\n return !!ssin.match(ssinRegExp)\n}\n\n/* Alternate lib free version\nexport function phoneNumberValidate(phoneNumber: string): boolean {\n return (\n !!phoneNumber.match(/(?:\\+|00)([1-9][0-9]{1-2})([- /.]*([0-9]+))+/) ||\n !!phoneNumber.match(/(0[1-9][0-9]*)([- /.]*([0-9]+))+/)\n )\n}\n\nexport function phoneNumberFormat(phoneNumber: string): string {\n let match = phoneNumber.match(/(?:\\+|00)([1-9][0-9]{1-2})([- /.]*([0-9]+))+/)\n if (match) {\n return `+${match[1]} ${match[2].replace(/[- /.]/g, \" \")}`.replace(/ /g, \" \")\n }\n match = phoneNumber.match(/0([1-9][0-9]*)([- /.]*([0-9]+))+/)\n if (match) {\n return `+32 ${match[1]} ${match[2].replace(/[- /.]/g, \" \")}`.replace(/ /g, \" \")\n }\n return phoneNumber\n}\n*/\n\nexport function phoneNumberValidate(phoneNumber: string): boolean {\n return isValidNumber(phoneNumber)\n}\n\nexport function phoneNumberFormat(phoneNumber: string): string {\n const parsedPhoneNumber = parseNumber(phoneNumber, DEFAULT_COUNTRY) as ParsedNumber\n if (_.isEmpty(parsedPhoneNumber)) {\n // The number is not valid, so we leave the input string as-is.\n return phoneNumber\n }\n return formatNumber(parsedPhoneNumber, 'INTERNATIONAL')\n}\n\n/**\n * Converts a backend date number (e.g., patient birth date) into a Date object.\n * @param dateNumber a YYYYMMDD date number from the backend\n * @return a Date object\n * @throws Error if it is impossible to create a date from the number, other if dateNumber is negative.\n * @see #dateEncode\n * @see #timeDecode\n */\nexport function dateDecode(dateNumber: number): Date | undefined {\n if (!dateNumber) {\n return undefined\n }\n\n if (dateNumber < 0) {\n throw new Error(\"We don't decode negative dates. Please make sure you have valid data.\")\n }\n const dateNumberStr: string = _.padStart(dateNumber.toString(), 8, '19700101')\n if (dateNumberStr.length > 8) {\n if (dateNumberStr.endsWith('000000')) {\n return dateNumber ? moment(dateNumberStr, 'YYYYMMDD000000').toDate() : undefined\n }\n\n throw Error(\"Decoded date is over year 9999. We can't format it properly.\")\n }\n return dateNumber ? moment(dateNumberStr, 'YYYYMMDD').toDate() : undefined\n}\n\n/**\n * Converts a backend time number (e.g., health element openingDate) into a Date object.\n * @param timeNumber a YYYYMMDD date number from the backend\n * @return a Date object\n * @see #timeEncode\n * @see #dateDecode\n */\nexport function timeDecode(timeNumber: number): Date | undefined {\n return timeNumber ? moment(timeNumber.toString(), 'YYYYMMDDHHmmss').toDate() : undefined\n}\n\n/**\n * Encodes a Date object into a backend date number (e.g., patient birth date).\n * @param date a Date object\n * @return a YYYYMMDD date number for the backend\n * @see #dateDecode\n * @see #timeEncode\n */\nexport function dateEncode(date: Date): number | undefined {\n const dateStr = _.padStart(moment(date).format('YYYYMMDD'), 8, '19700101')\n // date is null if the field is not set\n return date ? Number(dateStr) : undefined\n}\n\n/**\n * Encodes a Date object into a backend time number (e.g., health element openingDate).\n * @param date a Date object\n * @return a YYYYMMDDHHmmss date number for the backend\n * @see #timeDecode\n * @see #dateEncode\n */\nexport function timeEncode(date: Date): number | undefined {\n return date ? Number(moment(date).format('YYYYMMDDHHmmss')) : undefined\n}\n\n/**\n * Formats a value and a physical unit into text.\n * @param value the numerical or string value to encode\n * @param unit the unit represented as a string (an empty string is also supported)\n */\nexport function unit(value: number | string, unit: string | null): string {\n unit = unit || ''\n let separator: string\n if (!unit || unit.startsWith('°')) {\n separator = ''\n } else {\n // including '%'\n separator = '\\xa0'\n }\n return value + separator + unit\n}\n\n/**\n * 0.1 + 0.2 = 0.30000000000000004. Use this function to be better at maths.\n * @param a number\n * @return the rounded number, two after the comma\n */\nexport function amount(value: number): number {\n return Number((value || 0).toFixed(2))\n}\n\n/**\n * A simple formatter to keep the logic across the app.\n * Input: 2.1 ; Output: 2.10€\n */\nexport function money(value: number): string {\n return [(value || 0).toFixed(2), '€'].join('')\n}\n\n/**\n * Transform a dictionary to a url params.\n * From { key1: value1, key2: value2, ... } returns key1=value1&key2=value2&...=...\n */\nexport function toUrlParams(params: { [key: string]: string }): string {\n return _.filter(_.map(params, (value, key) => (value ? key + '=' + value : undefined))).join('&')\n}\n\nexport function personName(person: { firstName?: string; lastName?: string }): string {\n return `${person.firstName || ''} ${person.lastName || ''}`.trim()\n}\n\nexport function personNameAbbrev(person: { firstName?: string; lastName?: string }): string {\n const firstName = person.firstName ? person.firstName[0] + '.' : undefined\n return personName({ ...person, firstName })\n}\n\nexport function toMoment(epochOrLongCalendar: number): Moment | null {\n if (!epochOrLongCalendar && epochOrLongCalendar !== 0) {\n return null\n }\n if (epochOrLongCalendar >= 18000101 && epochOrLongCalendar < 25400000) {\n return moment('' + epochOrLongCalendar, 'YYYYMMDD')\n } else if (epochOrLongCalendar >= 18000101000000) {\n return moment('' + epochOrLongCalendar, 'YYYYMMDDhhmmss')\n } else {\n return moment(epochOrLongCalendar)\n }\n}\n"]}
1
+ {"version":3,"file":"formatting-util.js","sourceRoot":"","sources":["../../../icc-x-api/utils/formatting-util.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseNumber, formatNumber, isValidNumber, ParsedNumber } from 'libphonenumber-js'\nimport { format as formatDate, parse as parseDate } from 'date-fns'\n\n// TODO: move this to env.js?\nconst DEFAULT_COUNTRY = 'BE'\n\nexport const nihiiRegExp = new RegExp('^(\\\\d{1})(\\\\d{5})(\\\\d{2})(\\\\d{3})$')\nexport const ssinRegExp = new RegExp('^(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})$')\nexport const ibanRegExp = new RegExp('^(\\\\d{4})(\\\\d{4})(\\\\d{4})(\\\\d{4})$')\n\nconst patterns = {\n IBAN: (iban: string) => /^BE\\d{14}$/.test(iban) && isValidIBAN(iban),\n IBANBE: (iban: string) => /^BE\\d{14}$/.test(iban) && isValidIBAN(iban),\n}\n\n//http://ht5ifv.serprest.pt/extensions/tools/IBAN/\nexport function isValidIBAN(iban: string) {\n //This function check if the checksum if correct\n iban = iban.replace(/^(.{4})(.*)$/, '$2$1') //Move the first 4 chars from left to the right\n const fun = (e: string) => (e.charCodeAt(0) - 'A'.charCodeAt(0) + 10).toString()\n iban = iban.replace(/[A-Z]/g, fun) //Convert A-Z to 10-25\n let $sum = 0\n let $ei = 1 //First exponent\n for (let $i = iban.length - 1; $i >= 0; $i--) {\n $sum += $ei * parseInt(iban.charAt($i), 10) //multiply the digit by it's exponent\n $ei = ($ei * 10) % 97 //compute next base 10 exponent in modulus 97\n }\n return $sum % 97 === 1\n}\n\nexport function ibanValidate(iban: string) {\n if (iban.startsWith('BE')) {\n return patterns.IBANBE(iban)\n } else {\n return patterns.IBAN(iban)\n }\n}\n\nexport function ibanFormat(iban: string): string {\n return iban.replace(ibanRegExp, '$1 $2 $3 $4')\n}\n\nexport function nihiiFormat(nihii: string): string {\n return nihii.replace(nihiiRegExp, '$1 $2 $3 $4')\n}\n\nexport function nihiiValidate(nihii: string): boolean {\n return !!nihii.match(nihiiRegExp)\n}\n\nexport function ssinFormat(ssin: string): string {\n return ssin.replace(ssinRegExp, '$1 $2 $3 $4 $5')\n}\n\nexport function ssinValidate(ssin: string): boolean {\n return !!ssin.match(ssinRegExp)\n}\n\n/* Alternate lib free version\nexport function phoneNumberValidate(phoneNumber: string): boolean {\n return (\n !!phoneNumber.match(/(?:\\+|00)([1-9][0-9]{1-2})([- /.]*([0-9]+))+/) ||\n !!phoneNumber.match(/(0[1-9][0-9]*)([- /.]*([0-9]+))+/)\n )\n}\n\nexport function phoneNumberFormat(phoneNumber: string): string {\n let match = phoneNumber.match(/(?:\\+|00)([1-9][0-9]{1-2})([- /.]*([0-9]+))+/)\n if (match) {\n return `+${match[1]} ${match[2].replace(/[- /.]/g, \" \")}`.replace(/ /g, \" \")\n }\n match = phoneNumber.match(/0([1-9][0-9]*)([- /.]*([0-9]+))+/)\n if (match) {\n return `+32 ${match[1]} ${match[2].replace(/[- /.]/g, \" \")}`.replace(/ /g, \" \")\n }\n return phoneNumber\n}\n*/\n\nexport function phoneNumberFormat(phoneNumber: string): string {\n const parsedPhoneNumber = parseNumber(phoneNumber, DEFAULT_COUNTRY) as ParsedNumber\n if (Object.keys(parsedPhoneNumber).length === 0) {\n // The number is not valid, so we leave the input string as-is.\n return phoneNumber\n }\n return formatNumber(parsedPhoneNumber, 'INTERNATIONAL')\n}\n\n/**\n * Converts a backend date number (e.g., patient birth date) into a Date object.\n * @param dateNumber a YYYYMMDD date number from the backend\n * @return a Date object\n * @throws Error if it is impossible to create a date from the number, other if dateNumber is negative.\n * @see #dateEncode\n * @see #timeDecode\n */\nexport function dateDecode(dateNumber: number): Date | undefined {\n if (!dateNumber) {\n return undefined\n }\n\n if (dateNumber < 0) {\n throw new Error(\"We don't decode negative dates. Please make sure you have valid data.\")\n }\n const dateNumberStr: string = dateNumber.toString().padStart(8, '19700101')\n if (dateNumberStr.length > 8) {\n if (dateNumberStr.endsWith('000000')) {\n return dateNumber ? parseDate(dateNumberStr.slice(0, 8), 'yyyyMMdd', new Date()) : undefined\n }\n\n throw Error(\"Decoded date is over year 9999. We can't format it properly.\")\n }\n return dateNumber ? parseDate(dateNumberStr, 'yyyyMMdd', new Date()) : undefined\n}\n\n/**\n * Converts a backend time number (e.g., health element openingDate) into a Date object.\n * @param timeNumber a YYYYMMDD date number from the backend\n * @return a Date object\n * @see #timeEncode\n * @see #dateDecode\n */\nexport function timeDecode(timeNumber: number): Date | undefined {\n return timeNumber ? parseDate(timeNumber.toString(), 'yyyyMMddHHmmss', new Date()) : undefined\n}\n\n/**\n * Encodes a Date object into a backend date number (e.g., patient birth date).\n * @param date a Date object\n * @return a YYYYMMDD date number for the backend\n * @see #dateDecode\n * @see #timeEncode\n */\nexport function dateEncode(date: Date): number | undefined {\n const dateStr = formatDate(date, 'yyyyMMdd').padStart(8, '19700101')\n // date is null if the field is not set\n return date ? Number(dateStr) : undefined\n}\n\n/**\n * Encodes a Date object into a backend time number (e.g., health element openingDate).\n * @param date a Date object\n * @return a YYYYMMDDHHmmss date number for the backend\n * @see #timeDecode\n * @see #dateEncode\n */\nexport function timeEncode(date: Date): number | undefined {\n return date ? Number(formatDate(date, 'yyyyMMddHHmmss')) : undefined\n}\n\n/**\n * Formats a value and a physical unit into text.\n * @param value the numerical or string value to encode\n * @param unit the unit represented as a string (an empty string is also supported)\n */\nexport function unit(value: number | string, unit: string | null): string {\n unit = unit || ''\n let separator: string\n if (!unit || unit.startsWith('°')) {\n separator = ''\n } else {\n // including '%'\n separator = '\\xa0'\n }\n return value + separator + unit\n}\n\n/**\n * 0.1 + 0.2 = 0.30000000000000004. Use this function to be better at maths.\n * @param a number\n * @return the rounded number, two after the comma\n */\nexport function amount(value: number): number {\n return Number((value || 0).toFixed(2))\n}\n\n/**\n * A simple formatter to keep the logic across the app.\n * Input: 2.1 ; Output: 2.10€\n */\nexport function money(value: number): string {\n return [(value || 0).toFixed(2), '€'].join('')\n}\n\n/**\n * Transform a dictionary to a url params.\n * From { key1: value1, key2: value2, ... } returns key1=value1&key2=value2&...=...\n */\nexport function toUrlParams(params: { [key: string]: string }): string {\n return Object.entries(params)\n .map(([key, value]) => (value ? key + '=' + value : undefined))\n .filter(Boolean)\n .join('&')\n}\n\nexport function personName(person: { firstName?: string; lastName?: string }): string {\n return `${person.firstName || ''} ${person.lastName || ''}`.trim()\n}\n\nexport function personNameAbbrev(person: { firstName?: string; lastName?: string }): string {\n const firstName = person.firstName ? person.firstName[0] + '.' : undefined\n return personName({ ...person, firstName })\n}\n\nexport function toMoment(epochOrLongCalendar: number): Date | null {\n if (!epochOrLongCalendar && epochOrLongCalendar !== 0) {\n return null\n }\n if (epochOrLongCalendar >= 18000101 && epochOrLongCalendar < 25400000) {\n return parseDate('' + epochOrLongCalendar, 'yyyyMMdd', new Date())\n } else if (epochOrLongCalendar >= 18000101000000) {\n return parseDate('' + epochOrLongCalendar, 'yyyyMMddHHmmss', new Date())\n } else {\n return new Date(epochOrLongCalendar)\n }\n}\n"]}
@@ -4,7 +4,6 @@ exports.SPECIALITIES_KEYS = exports.SPECIALITIES = void 0;
4
4
  exports.isDoctor = isDoctor;
5
5
  exports.isDoctorAssistant = isDoctorAssistant;
6
6
  exports.getPhoneNumber = getPhoneNumber;
7
- const _ = require("lodash");
8
7
  const models_1 = require("../../icc-api/model/models");
9
8
  exports.SPECIALITIES = [
10
9
  'ADMINISTRATION',
@@ -77,7 +76,7 @@ exports.SPECIALITIES = [
77
76
  * Translation keys for specialities.
78
77
  * @see SPECIALITIES
79
78
  */
80
- exports.SPECIALITIES_KEYS = _.fromPairs(exports.SPECIALITIES.map((spec) => [spec, 'hcp-form.SPECIALITIES.' + spec]));
79
+ exports.SPECIALITIES_KEYS = Object.fromEntries(exports.SPECIALITIES.map((spec) => [spec, 'hcp-form.SPECIALITIES.' + spec]));
81
80
  function isDoctor(nihii) {
82
81
  return !!nihii && nihii.length === 11 && nihii.startsWith('1') && !nihii.endsWith('005') && !nihii.endsWith('006');
83
82
  }
@@ -118,6 +117,6 @@ function getPhoneNumber(hcp, maxLength) {
118
117
  }
119
118
  return res && Number(res);
120
119
  });
121
- return (!phoneNumbers.length || _.isNaN(phoneNumbers[0]) ? null : phoneNumbers[0]) || null;
120
+ return (!phoneNumbers.length || Number.isNaN(phoneNumbers[0]) ? null : phoneNumbers[0]) || null;
122
121
  }
123
122
  //# sourceMappingURL=hcp-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hcp-util.js","sourceRoot":"","sources":["../../../icc-x-api/utils/hcp-util.ts"],"names":[],"mappings":"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","sourcesContent":["import * as _ from 'lodash'\nimport { HealthcareParty, Telecom } from '../../icc-api/model/models'\n\nexport interface KendoDropdownSpeciality {\n text: string\n value: string\n}\n\nexport const SPECIALITIES: Array<string> = [\n 'ADMINISTRATION',\n 'CARE_GIVER',\n 'ANATOMOPATHOLOGY',\n 'ANESTHESIOLOGY',\n 'SOCIAL_WORKER',\n 'PHARMA_ASSISTANT',\n 'AUDIOLOGIST',\n 'BACTERIOLOGY',\n 'TRUSS_ORTHOTIST',\n 'CLINICAL_BIOLOGY',\n 'CARDIOLOGY',\n 'GENERAL_SURGERY',\n 'MAXILLOFACIAL_SURGERY',\n 'PLASTIC_SURGERY',\n 'STOMATOLOGICAL_SURGERY',\n 'CARDIOVASCULAR_SURGERY',\n 'DENTISTRY',\n 'DERMATOLOGY',\n 'DIETETIC',\n 'ENDOCRINOLOGY',\n 'OCCUPATIONAL_THERAPIST',\n 'GASTROENTEROLOGY',\n 'GENETIC',\n 'GERIATRICS',\n 'GYNECOLOGY',\n 'HEMATOLOGY',\n 'NURSE',\n 'NURSE_EDUCATOR',\n 'PHYSIOTHERAPY',\n 'SPEECH',\n 'ACUTE_MEDICINE',\n 'GENERAL_MEDICINE',\n 'INTERNAL_MEDICINE',\n 'NUCLEAR_MEDICINE',\n 'PHYSICAL_MEDICINE',\n 'NEONATOLOGY',\n 'NEPHROLOGY',\n 'NEUROSURGERY',\n 'NEUROLOGY',\n 'NEUROPEDIATRICS',\n 'NEUROPSYCHIATRY',\n 'NUTRITIONIST',\n 'ONCOLOGY',\n 'OPHTHALMOLOGY',\n 'ORTHOPEDICS',\n 'ORTHOPTISTE',\n 'OTORHINOLARYNGOLOGY',\n 'PEDIATRICS',\n 'PHARMACOLOGY',\n 'RESPIRATORY',\n 'PODIATRIST',\n 'PUBLIC_HEALTH_PREVENTION',\n 'PROSTHETIST',\n 'PSYCHIATRY',\n 'MEDICAL_PSYCHOLOGY',\n 'RADIODIAGNOSTICS',\n 'RADIOTHERAPY',\n 'RESUSCITATION',\n 'RHEUMATOLOGY',\n 'MIDWIFE',\n 'STOMATOLOGY',\n 'EMERGENCY',\n 'UROLOGY',\n 'TOXICOLOGY',\n 'TRANSPORT',\n]\n\n/**\n * Translation keys for specialities.\n * @see SPECIALITIES\n */\nexport const SPECIALITIES_KEYS: { [spec: string]: string } = _.fromPairs(SPECIALITIES.map((spec) => [spec, 'hcp-form.SPECIALITIES.' + spec]))\n\nexport function isDoctor(nihii: string): boolean {\n return !!nihii && nihii.length === 11 && nihii.startsWith('1') && !nihii.endsWith('005') && !nihii.endsWith('006')\n}\n\nexport function isDoctorAssistant(nihii: string): boolean {\n return !!nihii && nihii.length === 11 && nihii.startsWith('1') && nihii.endsWith('005') && nihii.endsWith('006')\n}\n\nexport function getPhoneNumber(hcp: HealthcareParty, maxLength: number | undefined): number | null {\n const phoneNumbers = (hcp.addresses || []).map((a) => {\n const t = (a.telecoms || []).find(\n (t: Telecom) => t.telecomType === Telecom.TelecomTypeEnum.Phone.toString() || t.telecomType === Telecom.TelecomTypeEnum.Mobile.toString()\n )\n let res = t && t.telecomNumber\n if (res && maxLength) {\n while (res.length > maxLength) {\n if (res.startsWith('0032')) {\n res = '0' + res.substr(4)\n } else if (res.startsWith('+32')) {\n res = '0' + res.substr(3)\n } else if (res.startsWith('32')) {\n res = '0' + res.substr(2)\n } else if (res.startsWith('00')) {\n res = res.substr(2)\n } else if (res.startsWith('0')) {\n res = res.substr(1)\n } else if (res.startsWith('352')) {\n res = '0' + res.substr(3)\n } else if (res.startsWith('33')) {\n res = '0' + res.substr(2)\n } else {\n res = res.substr(1)\n }\n }\n }\n return res && Number(res)\n })\n\n return (!phoneNumbers.length || _.isNaN(phoneNumbers[0]) ? null : phoneNumbers[0]) || null\n}\n"]}
1
+ {"version":3,"file":"hcp-util.js","sourceRoot":"","sources":["../../../icc-x-api/utils/hcp-util.ts"],"names":[],"mappings":"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","sourcesContent":["import { HealthcareParty, Telecom } from '../../icc-api/model/models'\n\nexport interface KendoDropdownSpeciality {\n text: string\n value: string\n}\n\nexport const SPECIALITIES: Array<string> = [\n 'ADMINISTRATION',\n 'CARE_GIVER',\n 'ANATOMOPATHOLOGY',\n 'ANESTHESIOLOGY',\n 'SOCIAL_WORKER',\n 'PHARMA_ASSISTANT',\n 'AUDIOLOGIST',\n 'BACTERIOLOGY',\n 'TRUSS_ORTHOTIST',\n 'CLINICAL_BIOLOGY',\n 'CARDIOLOGY',\n 'GENERAL_SURGERY',\n 'MAXILLOFACIAL_SURGERY',\n 'PLASTIC_SURGERY',\n 'STOMATOLOGICAL_SURGERY',\n 'CARDIOVASCULAR_SURGERY',\n 'DENTISTRY',\n 'DERMATOLOGY',\n 'DIETETIC',\n 'ENDOCRINOLOGY',\n 'OCCUPATIONAL_THERAPIST',\n 'GASTROENTEROLOGY',\n 'GENETIC',\n 'GERIATRICS',\n 'GYNECOLOGY',\n 'HEMATOLOGY',\n 'NURSE',\n 'NURSE_EDUCATOR',\n 'PHYSIOTHERAPY',\n 'SPEECH',\n 'ACUTE_MEDICINE',\n 'GENERAL_MEDICINE',\n 'INTERNAL_MEDICINE',\n 'NUCLEAR_MEDICINE',\n 'PHYSICAL_MEDICINE',\n 'NEONATOLOGY',\n 'NEPHROLOGY',\n 'NEUROSURGERY',\n 'NEUROLOGY',\n 'NEUROPEDIATRICS',\n 'NEUROPSYCHIATRY',\n 'NUTRITIONIST',\n 'ONCOLOGY',\n 'OPHTHALMOLOGY',\n 'ORTHOPEDICS',\n 'ORTHOPTISTE',\n 'OTORHINOLARYNGOLOGY',\n 'PEDIATRICS',\n 'PHARMACOLOGY',\n 'RESPIRATORY',\n 'PODIATRIST',\n 'PUBLIC_HEALTH_PREVENTION',\n 'PROSTHETIST',\n 'PSYCHIATRY',\n 'MEDICAL_PSYCHOLOGY',\n 'RADIODIAGNOSTICS',\n 'RADIOTHERAPY',\n 'RESUSCITATION',\n 'RHEUMATOLOGY',\n 'MIDWIFE',\n 'STOMATOLOGY',\n 'EMERGENCY',\n 'UROLOGY',\n 'TOXICOLOGY',\n 'TRANSPORT',\n]\n\n/**\n * Translation keys for specialities.\n * @see SPECIALITIES\n */\nexport const SPECIALITIES_KEYS: { [spec: string]: string } = Object.fromEntries(SPECIALITIES.map((spec) => [spec, 'hcp-form.SPECIALITIES.' + spec]))\n\nexport function isDoctor(nihii: string): boolean {\n return !!nihii && nihii.length === 11 && nihii.startsWith('1') && !nihii.endsWith('005') && !nihii.endsWith('006')\n}\n\nexport function isDoctorAssistant(nihii: string): boolean {\n return !!nihii && nihii.length === 11 && nihii.startsWith('1') && nihii.endsWith('005') && nihii.endsWith('006')\n}\n\nexport function getPhoneNumber(hcp: HealthcareParty, maxLength: number | undefined): number | null {\n const phoneNumbers = (hcp.addresses || []).map((a) => {\n const t = (a.telecoms || []).find(\n (t: Telecom) => t.telecomType === Telecom.TelecomTypeEnum.Phone.toString() || t.telecomType === Telecom.TelecomTypeEnum.Mobile.toString()\n )\n let res = t && t.telecomNumber\n if (res && maxLength) {\n while (res.length > maxLength) {\n if (res.startsWith('0032')) {\n res = '0' + res.substr(4)\n } else if (res.startsWith('+32')) {\n res = '0' + res.substr(3)\n } else if (res.startsWith('32')) {\n res = '0' + res.substr(2)\n } else if (res.startsWith('00')) {\n res = res.substr(2)\n } else if (res.startsWith('0')) {\n res = res.substr(1)\n } else if (res.startsWith('352')) {\n res = '0' + res.substr(3)\n } else if (res.startsWith('33')) {\n res = '0' + res.substr(2)\n } else {\n res = res.substr(1)\n }\n }\n }\n return res && Number(res)\n })\n\n return (!phoneNumbers.length || Number.isNaN(phoneNumbers[0]) ? null : phoneNumbers[0]) || null\n}\n"]}
@@ -6,18 +6,18 @@ exports.isPatientPaymentByIo = isPatientPaymentByIo;
6
6
  exports.getMembership = getMembership;
7
7
  exports.getInsurability = getInsurability;
8
8
  exports.isPatientHospitalized = isPatientHospitalized;
9
- const _ = require("lodash");
10
9
  function isBIM(ct1, ct2) {
11
10
  //BIM if ct1 ood and ct2 ood
12
11
  return +ct1 % 2 !== 0 && +ct2 % 2 !== 0;
13
12
  }
14
13
  function patientIsBIM(patient) {
15
- var _a, _b;
14
+ var _a, _b, _c, _d, _e, _f, _g, _h;
16
15
  // FIXME this doesn't check the date of the insurability. It is related to the idea of having only on insurability at a time.
17
- return isBIM((_a = _.get(patient, 'insurabilities[0].parameters.tc1')) !== null && _a !== void 0 ? _a : '000', (_b = _.get(patient, 'insurabilities[0].parameters.tc2')) !== null && _b !== void 0 ? _b : '000');
16
+ return isBIM((_d = (_c = (_b = (_a = patient === null || patient === void 0 ? void 0 : patient.insurabilities) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.parameters) === null || _c === void 0 ? void 0 : _c.tc1) !== null && _d !== void 0 ? _d : '000', (_h = (_g = (_f = (_e = patient === null || patient === void 0 ? void 0 : patient.insurabilities) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.parameters) === null || _g === void 0 ? void 0 : _g.tc2) !== null && _h !== void 0 ? _h : '000');
18
17
  }
19
18
  function isPatientPaymentByIo(patient) {
20
- const paymentByIo = _.get(patient, 'insurabilities[0].parameters.paymentByIo');
19
+ var _a, _b, _c;
20
+ const paymentByIo = (_c = (_b = (_a = patient === null || patient === void 0 ? void 0 : patient.insurabilities) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.parameters) === null || _c === void 0 ? void 0 : _c.paymentByIo;
21
21
  return paymentByIo === 'true';
22
22
  }
23
23
  /**
@@ -26,8 +26,9 @@ function isPatientPaymentByIo(patient) {
26
26
  * @param patient The patient
27
27
  */
28
28
  function getMembership(patient) {
29
- const ioCode = _.get(patient, 'insurabilities[0].identificationNumber');
30
- if (_.isUndefined(ioCode)) {
29
+ var _a, _b;
30
+ const ioCode = (_b = (_a = patient === null || patient === void 0 ? void 0 : patient.insurabilities) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.identificationNumber;
31
+ if (ioCode === undefined) {
31
32
  // TODO translate
32
33
  throw new Error("Le patient n'a pas de données d'assurabilité");
33
34
  }
@@ -39,8 +40,9 @@ function getMembership(patient) {
39
40
  * @param patient The patient
40
41
  */
41
42
  function getInsurability(patient) {
42
- const insurability = _.get(patient, 'insurabilities[0]');
43
- if (_.isUndefined(insurability)) {
43
+ var _a;
44
+ const insurability = (_a = patient === null || patient === void 0 ? void 0 : patient.insurabilities) === null || _a === void 0 ? void 0 : _a[0];
45
+ if (insurability === undefined) {
44
46
  // TODO translate
45
47
  throw new Error("Le patient n'a pas de données d'assurabilité");
46
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"insurability-util.js","sourceRoot":"","sources":["../../../icc-x-api/utils/insurability-util.ts"],"names":[],"mappings":";;AAGA,sBAGC;AAED,oCAGC;AAED,oDAGC;AAOD,sCAOC;AAOD,0CAOC;AAOD,sDAEC;AArDD,4BAA2B;AAG3B,SAAgB,KAAK,CAAC,GAAoB,EAAE,GAAoB;IAC9D,4BAA4B;IAC5B,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;AACzC,CAAC;AAED,SAAgB,YAAY,CAAC,OAAgB;;IAC3C,6HAA6H;IAC7H,OAAO,KAAK,CAAC,MAAA,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,kCAAkC,CAAC,mCAAI,KAAK,EAAE,MAAA,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,kCAAkC,CAAC,mCAAI,KAAK,CAAC,CAAA;AACxI,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,0CAA0C,CAAC,CAAA;IAC9E,OAAO,WAAW,KAAK,MAAM,CAAA;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,OAAgB;IAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAA;IACvE,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,iBAAiB;QACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,OAAgB;IAC9C,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;IACxD,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,iBAAiB;QACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,eAAe,IAAI,KAAK,CAAA;AAC1D,CAAC","sourcesContent":["import * as _ from 'lodash'\nimport { Patient, Insurability } from '../../icc-api/model/models'\n\nexport function isBIM(ct1: number | string, ct2: number | string): boolean {\n //BIM if ct1 ood and ct2 ood\n return +ct1 % 2 !== 0 && +ct2 % 2 !== 0\n}\n\nexport function patientIsBIM(patient: Patient) {\n // FIXME this doesn't check the date of the insurability. It is related to the idea of having only on insurability at a time.\n return isBIM(_.get(patient, 'insurabilities[0].parameters.tc1') ?? '000', _.get(patient, 'insurabilities[0].parameters.tc2') ?? '000')\n}\n\nexport function isPatientPaymentByIo(patient: Patient) {\n const paymentByIo = _.get(patient, 'insurabilities[0].parameters.paymentByIo')\n return paymentByIo === 'true'\n}\n\n/**\n * Returns the titulary id from patient insurability\n * @throws error if the patient has no insurability data\n * @param patient The patient\n */\nexport function getMembership(patient: Patient): string {\n const ioCode = _.get(patient, 'insurabilities[0].identificationNumber')\n if (_.isUndefined(ioCode)) {\n // TODO translate\n throw new Error(\"Le patient n'a pas de données d'assurabilité\")\n }\n return ioCode\n}\n\n/**\n * Returns the insurability from patient\n * @throws error if the patient has no insurability data\n * @param patient The patient\n */\nexport function getInsurability(patient: Patient): Insurability {\n const insurability = _.get(patient, 'insurabilities[0]')\n if (_.isUndefined(insurability)) {\n // TODO translate\n throw new Error(\"Le patient n'a pas de données d'assurabilité\")\n }\n return insurability\n}\n\n/**\n * Returns the insurability from patient\n * @throws error if the patient has no insurability data\n * @param patient\n */\nexport function isPatientHospitalized(patient: Patient): boolean {\n return getInsurability(patient).hospitalisation || false\n}\n"]}
1
+ {"version":3,"file":"insurability-util.js","sourceRoot":"","sources":["../../../icc-x-api/utils/insurability-util.ts"],"names":[],"mappings":";;AAEA,sBAGC;AAED,oCAGC;AAED,oDAGC;AAOD,sCAOC;AAOD,0CAOC;AAOD,sDAEC;AAlDD,SAAgB,KAAK,CAAC,GAAoB,EAAE,GAAoB;IAC9D,4BAA4B;IAC5B,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;AACzC,CAAC;AAED,SAAgB,YAAY,CAAC,OAAgB;;IAC3C,6HAA6H;IAC7H,OAAO,KAAK,CAAC,MAAA,MAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,0CAAG,CAAC,CAAC,0CAAE,UAAU,0CAAE,GAAG,mCAAI,KAAK,EAAE,MAAA,MAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,0CAAG,CAAC,CAAC,0CAAE,UAAU,0CAAE,GAAG,mCAAI,KAAK,CAAC,CAAA;AAC9H,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAgB;;IACnD,MAAM,WAAW,GAAG,MAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,0CAAG,CAAC,CAAC,0CAAE,UAAU,0CAAE,WAAW,CAAA;IACzE,OAAO,WAAW,KAAK,MAAM,CAAA;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,OAAgB;;IAC5C,MAAM,MAAM,GAAG,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,0CAAG,CAAC,CAAC,0CAAE,oBAAoB,CAAA;IACjE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,iBAAiB;QACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,OAAgB;;IAC9C,MAAM,YAAY,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,0CAAG,CAAC,CAAC,CAAA;IACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,iBAAiB;QACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,eAAe,IAAI,KAAK,CAAA;AAC1D,CAAC","sourcesContent":["import { Patient, Insurability } from '../../icc-api/model/models'\n\nexport function isBIM(ct1: number | string, ct2: number | string): boolean {\n //BIM if ct1 ood and ct2 ood\n return +ct1 % 2 !== 0 && +ct2 % 2 !== 0\n}\n\nexport function patientIsBIM(patient: Patient) {\n // FIXME this doesn't check the date of the insurability. It is related to the idea of having only on insurability at a time.\n return isBIM(patient?.insurabilities?.[0]?.parameters?.tc1 ?? '000', patient?.insurabilities?.[0]?.parameters?.tc2 ?? '000')\n}\n\nexport function isPatientPaymentByIo(patient: Patient) {\n const paymentByIo = patient?.insurabilities?.[0]?.parameters?.paymentByIo\n return paymentByIo === 'true'\n}\n\n/**\n * Returns the titulary id from patient insurability\n * @throws error if the patient has no insurability data\n * @param patient The patient\n */\nexport function getMembership(patient: Patient): string {\n const ioCode = patient?.insurabilities?.[0]?.identificationNumber\n if (ioCode === undefined) {\n // TODO translate\n throw new Error(\"Le patient n'a pas de données d'assurabilité\")\n }\n return ioCode\n}\n\n/**\n * Returns the insurability from patient\n * @throws error if the patient has no insurability data\n * @param patient The patient\n */\nexport function getInsurability(patient: Patient): Insurability {\n const insurability = patient?.insurabilities?.[0]\n if (insurability === undefined) {\n // TODO translate\n throw new Error(\"Le patient n'a pas de données d'assurabilité\")\n }\n return insurability\n}\n\n/**\n * Returns the insurability from patient\n * @throws error if the patient has no insurability data\n * @param patient\n */\nexport function isPatientHospitalized(patient: Patient): boolean {\n return getInsurability(patient).hospitalisation || false\n}\n"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * WASM-based LZMA2/XZ compression using liblzma compiled via Emscripten.
3
+ * The WASM module is lazy-loaded on first use.
4
+ */
5
+ export declare function lzmaWasmCompress(data: ArrayBuffer | Uint8Array, preset?: number): Promise<ArrayBuffer>;
6
+ export declare function lzmaWasmDecompress(data: ArrayBuffer | Uint8Array): Promise<ArrayBuffer>;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ /**
3
+ * WASM-based LZMA2/XZ compression using liblzma compiled via Emscripten.
4
+ * The WASM module is lazy-loaded on first use.
5
+ */
6
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
+ return new (P || (P = Promise))(function (resolve, reject) {
9
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13
+ });
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.lzmaWasmCompress = lzmaWasmCompress;
17
+ exports.lzmaWasmDecompress = lzmaWasmDecompress;
18
+ let modulePromise = null;
19
+ function getModule() {
20
+ if (!modulePromise) {
21
+ modulePromise = (() => __awaiter(this, void 0, void 0, function* () {
22
+ // Dynamic import of the Emscripten glue code
23
+ const factory = (yield Promise.resolve().then(() => require('../wasm/lzma/lzma.js'))).default;
24
+ return factory();
25
+ }))();
26
+ }
27
+ return modulePromise;
28
+ }
29
+ function lzmaWasmCompress(data_1) {
30
+ return __awaiter(this, arguments, void 0, function* (data, preset = 6) {
31
+ const mod = yield getModule();
32
+ const input = data instanceof ArrayBuffer ? new Uint8Array(data) : data;
33
+ const inputPtr = mod._malloc(input.length);
34
+ if (!inputPtr)
35
+ throw new Error('WASM malloc failed for input');
36
+ try {
37
+ mod.HEAPU8.set(input, inputPtr);
38
+ const ret = mod._lzma_wasm_compress(inputPtr, input.length, preset);
39
+ if (ret !== 0) {
40
+ mod._free_result();
41
+ throw new Error(`LZMA WASM compress failed with code ${ret}`);
42
+ }
43
+ const resultPtr = mod._get_result_ptr();
44
+ const resultLen = mod._get_result_len();
45
+ const output = new Uint8Array(resultLen);
46
+ output.set(mod.HEAPU8.subarray(resultPtr, resultPtr + resultLen));
47
+ mod._free_result();
48
+ return output.buffer;
49
+ }
50
+ finally {
51
+ mod._free(inputPtr);
52
+ }
53
+ });
54
+ }
55
+ function lzmaWasmDecompress(data) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const mod = yield getModule();
58
+ const input = data instanceof ArrayBuffer ? new Uint8Array(data) : data;
59
+ const inputPtr = mod._malloc(input.length);
60
+ if (!inputPtr)
61
+ throw new Error('WASM malloc failed for input');
62
+ try {
63
+ mod.HEAPU8.set(input, inputPtr);
64
+ const ret = mod._lzma_wasm_decompress(inputPtr, input.length);
65
+ if (ret !== 0) {
66
+ mod._free_result();
67
+ throw new Error(`LZMA WASM decompress failed with code ${ret}`);
68
+ }
69
+ const resultPtr = mod._get_result_ptr();
70
+ const resultLen = mod._get_result_len();
71
+ const output = new Uint8Array(resultLen);
72
+ output.set(mod.HEAPU8.subarray(resultPtr, resultPtr + resultLen));
73
+ mod._free_result();
74
+ return output.buffer;
75
+ }
76
+ finally {
77
+ mod._free(inputPtr);
78
+ }
79
+ });
80
+ }
81
+ //# sourceMappingURL=lzma-wasm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lzma-wasm.js","sourceRoot":"","sources":["../../../icc-x-api/utils/lzma-wasm.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * WASM-based LZMA2/XZ compression using liblzma compiled via Emscripten.\n * The WASM module is lazy-loaded on first use.\n */\n\ninterface LzmaWasmModule {\n _lzma_wasm_compress(ptr: number, len: number, preset: number): number\n _lzma_wasm_decompress(ptr: number, len: number): number\n _get_result_ptr(): number\n _get_result_len(): number\n _free_result(): void\n _malloc(size: number): number\n _free(ptr: number): void\n HEAPU8: Uint8Array\n}\n\ntype ModuleFactory = () => Promise<LzmaWasmModule>\n\nlet modulePromise: Promise<LzmaWasmModule> | null = null\n\nfunction getModule(): Promise<LzmaWasmModule> {\n if (!modulePromise) {\n modulePromise = (async () => {\n // Dynamic import of the Emscripten glue code\n const factory: ModuleFactory = (await import('../wasm/lzma/lzma.js')).default\n return factory()\n })()\n }\n return modulePromise\n}\n\nexport async function lzmaWasmCompress(data: ArrayBuffer | Uint8Array, preset: number = 6): Promise<ArrayBuffer> {\n const mod = await getModule()\n const input = data instanceof ArrayBuffer ? new Uint8Array(data) : data\n\n const inputPtr = mod._malloc(input.length)\n if (!inputPtr) throw new Error('WASM malloc failed for input')\n\n try {\n mod.HEAPU8.set(input, inputPtr)\n const ret = mod._lzma_wasm_compress(inputPtr, input.length, preset)\n if (ret !== 0) {\n mod._free_result()\n throw new Error(`LZMA WASM compress failed with code ${ret}`)\n }\n\n const resultPtr = mod._get_result_ptr()\n const resultLen = mod._get_result_len()\n const output = new Uint8Array(resultLen)\n output.set(mod.HEAPU8.subarray(resultPtr, resultPtr + resultLen))\n mod._free_result()\n return output.buffer\n } finally {\n mod._free(inputPtr)\n }\n}\n\nexport async function lzmaWasmDecompress(data: ArrayBuffer | Uint8Array): Promise<ArrayBuffer> {\n const mod = await getModule()\n const input = data instanceof ArrayBuffer ? new Uint8Array(data) : data\n\n const inputPtr = mod._malloc(input.length)\n if (!inputPtr) throw new Error('WASM malloc failed for input')\n\n try {\n mod.HEAPU8.set(input, inputPtr)\n const ret = mod._lzma_wasm_decompress(inputPtr, input.length)\n if (ret !== 0) {\n mod._free_result()\n throw new Error(`LZMA WASM decompress failed with code ${ret}`)\n }\n\n const resultPtr = mod._get_result_ptr()\n const resultLen = mod._get_result_len()\n const output = new Uint8Array(resultLen)\n output.set(mod.HEAPU8.subarray(resultPtr, resultPtr + resultLen))\n mod._free_result()\n return output.buffer\n } finally {\n mod._free(inputPtr)\n }\n}"]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A simple promise-based mutual exclusion lock. Callers acquire the lock and receive a release function;
3
+ * subsequent acquire() calls queue behind the current holder until it releases.
4
+ */
5
+ export declare class Mutex {
6
+ private queue;
7
+ /**
8
+ * Wait until the lock is available, then acquire it.
9
+ * @returns a release function that MUST be called (typically in a finally block) to let the next waiter proceed.
10
+ */
11
+ acquire(): Promise<() => void>;
12
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mutex = void 0;
4
+ /**
5
+ * A simple promise-based mutual exclusion lock. Callers acquire the lock and receive a release function;
6
+ * subsequent acquire() calls queue behind the current holder until it releases.
7
+ */
8
+ class Mutex {
9
+ constructor() {
10
+ this.queue = Promise.resolve();
11
+ }
12
+ /**
13
+ * Wait until the lock is available, then acquire it.
14
+ * @returns a release function that MUST be called (typically in a finally block) to let the next waiter proceed.
15
+ */
16
+ acquire() {
17
+ let release;
18
+ const prev = this.queue;
19
+ this.queue = new Promise((resolve) => {
20
+ release = resolve;
21
+ });
22
+ return prev.then(() => release);
23
+ }
24
+ }
25
+ exports.Mutex = Mutex;
26
+ //# sourceMappingURL=mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../../icc-x-api/utils/mutex.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,KAAK;IAAlB;QACU,UAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IAclD,CAAC;IAZC;;;OAGG;IACH,OAAO;QACL,IAAI,OAAoB,CAAA;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACzC,OAAO,GAAG,OAAO,CAAA;QACnB,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;CACF;AAfD,sBAeC","sourcesContent":["/**\n * A simple promise-based mutual exclusion lock. Callers acquire the lock and receive a release function;\n * subsequent acquire() calls queue behind the current holder until it releases.\n */\nexport class Mutex {\n private queue: Promise<void> = Promise.resolve()\n\n /**\n * Wait until the lock is available, then acquire it.\n * @returns a release function that MUST be called (typically in a finally block) to let the next waiter proceed.\n */\n acquire(): Promise<() => void> {\n let release!: () => void\n const prev = this.queue\n this.queue = new Promise<void>((resolve) => {\n release = resolve\n })\n return prev.then(() => release)\n }\n}\n"]}
@@ -13,9 +13,9 @@ exports.WebSocketWrapper = void 0;
13
13
  exports.subscribeToEntityEvents = subscribeToEntityEvents;
14
14
  const WebSocketNode = require("ws");
15
15
  const User_1 = require("../../icc-api/model/User");
16
- const browser_or_node_1 = require("browser-or-node");
17
16
  const HealthcareParty_1 = require("../../icc-api/model/HealthcareParty");
18
17
  const Device_1 = require("../../icc-api/model/Device");
18
+ const isNode = typeof process !== "undefined" && process.versions != null && process.versions.node != null;
19
19
  function subscribeToEntityEvents(basePath, authApi, entityClass, eventTypes, filter, eventFired, options = {}, decryptor) {
20
20
  var _a, _b;
21
21
  const config = {
@@ -138,7 +138,7 @@ class WebSocketWrapper {
138
138
  if (!bearerToken) {
139
139
  throw new Error('Cannot obtain JWT for the user');
140
140
  }
141
- const socket = browser_or_node_1.isNode
141
+ const socket = isNode
142
142
  ? new WebSocketNode(this.url, {
143
143
  headers: {
144
144
  Authorization: bearerToken,
@@ -243,7 +243,7 @@ class WebsocketAdapter {
243
243
  }
244
244
  get readyState() {
245
245
  if (this.websocket) {
246
- if (browser_or_node_1.isNode) {
246
+ if (isNode) {
247
247
  switch (this.websocket.readyState) {
248
248
  case WebSocketNode.CONNECTING:
249
249
  return ReadyState.CONNECTING;
@@ -287,7 +287,7 @@ class WebsocketAdapter {
287
287
  }
288
288
  onMessage(callback) {
289
289
  if (this.websocket) {
290
- if (browser_or_node_1.isNode) {
290
+ if (isNode) {
291
291
  ;
292
292
  this.websocket.on('message', (x) => callback(x.toString('utf8')));
293
293
  }
@@ -315,7 +315,7 @@ class WebsocketAdapter {
315
315
  }
316
316
  onOpen(callback) {
317
317
  if (this.websocket) {
318
- if (browser_or_node_1.isNode) {
318
+ if (isNode) {
319
319
  ;
320
320
  this.websocket.on('open', callback);
321
321
  }
@@ -327,7 +327,7 @@ class WebsocketAdapter {
327
327
  }
328
328
  onClose(callback) {
329
329
  if (this.websocket) {
330
- if (browser_or_node_1.isNode) {
330
+ if (isNode) {
331
331
  ;
332
332
  this.websocket.on('close', callback);
333
333
  }
@@ -339,7 +339,7 @@ class WebsocketAdapter {
339
339
  }
340
340
  onError(callback) {
341
341
  if (this.websocket) {
342
- if (browser_or_node_1.isNode) {
342
+ if (isNode) {
343
343
  ;
344
344
  this.websocket.on('error', callback);
345
345
  }