@icure/api 8.11.0 → 8.12.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 (297) 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 +5 -0
  5. package/icc-api/model/HealthElement.js.map +1 -1
  6. package/icc-api/model/HealthElementQualifiedLink.d.ts +31 -0
  7. package/icc-api/model/HealthElementQualifiedLink.js +26 -0
  8. package/icc-api/model/HealthElementQualifiedLink.js.map +1 -0
  9. package/icc-api/model/models.d.ts +1 -0
  10. package/icc-api/model/models.js +1 -0
  11. package/icc-api/model/models.js.map +1 -1
  12. package/icc-x-api/filters/HealthElementByAssociationIdFilter.d.ts +23 -0
  13. package/icc-x-api/filters/HealthElementByAssociationIdFilter.js +30 -0
  14. package/icc-x-api/filters/HealthElementByAssociationIdFilter.js.map +1 -0
  15. package/icc-x-api/filters/HealthElementByQualifiedLinkFilter.d.ts +24 -0
  16. package/icc-x-api/filters/HealthElementByQualifiedLinkFilter.js +30 -0
  17. package/icc-x-api/filters/HealthElementByQualifiedLinkFilter.js.map +1 -0
  18. package/icc-x-api/filters/filters.d.ts +2 -0
  19. package/icc-x-api/filters/filters.js +2 -0
  20. package/icc-x-api/filters/filters.js.map +1 -1
  21. package/package.json +1 -1
  22. package/test/benchmarks/lzma-benchmark.spec.d.ts +0 -1
  23. package/test/benchmarks/lzma-benchmark.spec.js +0 -131
  24. package/test/benchmarks/lzma-benchmark.spec.js.map +0 -1
  25. package/test/benchmarks/lzma-compat.spec.d.ts +0 -1
  26. package/test/benchmarks/lzma-compat.spec.js +0 -187
  27. package/test/benchmarks/lzma-compat.spec.js.map +0 -1
  28. package/test/benchmarks/playwright.config.d.ts +0 -2
  29. package/test/benchmarks/playwright.config.js +0 -18
  30. package/test/benchmarks/playwright.config.js.map +0 -1
  31. package/test/icc-api/api/IccAgendaApi.d.ts +0 -1
  32. package/test/icc-api/api/IccAgendaApi.js +0 -64
  33. package/test/icc-api/api/IccAgendaApi.js.map +0 -1
  34. package/test/icc-api/api/IccAnonymousAccessApi.d.ts +0 -1
  35. package/test/icc-api/api/IccAnonymousAccessApi.js +0 -58
  36. package/test/icc-api/api/IccAnonymousAccessApi.js.map +0 -1
  37. package/test/icc-api/api/IccCalendarItemApi.d.ts +0 -1
  38. package/test/icc-api/api/IccCalendarItemApi.js +0 -67
  39. package/test/icc-api/api/IccCalendarItemApi.js.map +0 -1
  40. package/test/icc-api/api/IccCalendarItemTypeApi.d.ts +0 -1
  41. package/test/icc-api/api/IccCalendarItemTypeApi.js +0 -96
  42. package/test/icc-api/api/IccCalendarItemTypeApi.js.map +0 -1
  43. package/test/icc-api/api/IccCodeApi.d.ts +0 -1
  44. package/test/icc-api/api/IccCodeApi.js +0 -38
  45. package/test/icc-api/api/IccCodeApi.js.map +0 -1
  46. package/test/icc-api/api/IccDocumentApi.d.ts +0 -1
  47. package/test/icc-api/api/IccDocumentApi.js +0 -199
  48. package/test/icc-api/api/IccDocumentApi.js.map +0 -1
  49. package/test/icc-api/api/IccGroupApi.d.ts +0 -1
  50. package/test/icc-api/api/IccGroupApi.js +0 -50
  51. package/test/icc-api/api/IccGroupApi.js.map +0 -1
  52. package/test/icc-api/api/IccKeywordApi.d.ts +0 -1
  53. package/test/icc-api/api/IccKeywordApi.js +0 -64
  54. package/test/icc-api/api/IccKeywordApi.js.map +0 -1
  55. package/test/icc-api/api/IccMedicalLocationApi.d.ts +0 -1
  56. package/test/icc-api/api/IccMedicalLocationApi.js +0 -64
  57. package/test/icc-api/api/IccMedicalLocationApi.js.map +0 -1
  58. package/test/icc-api/api/IccPlaceApi.d.ts +0 -1
  59. package/test/icc-api/api/IccPlaceApi.js +0 -64
  60. package/test/icc-api/api/IccPlaceApi.js.map +0 -1
  61. package/test/icc-api/api/IccRecoveryDataApi.d.ts +0 -1
  62. package/test/icc-api/api/IccRecoveryDataApi.js +0 -95
  63. package/test/icc-api/api/IccRecoveryDataApi.js.map +0 -1
  64. package/test/icc-api/api/IccRoleApi.d.ts +0 -1
  65. package/test/icc-api/api/IccRoleApi.js +0 -34
  66. package/test/icc-api/api/IccRoleApi.js.map +0 -1
  67. package/test/icc-api/api/IccUserApi.d.ts +0 -1
  68. package/test/icc-api/api/IccUserApi.js +0 -96
  69. package/test/icc-api/api/IccUserApi.js.map +0 -1
  70. package/test/icc-api/e2e/IccCalendarItemApi.d.ts +0 -1
  71. package/test/icc-api/e2e/IccCalendarItemApi.js +0 -46
  72. package/test/icc-api/e2e/IccCalendarItemApi.js.map +0 -1
  73. package/test/icc-api/model/modelHelpersTest.d.ts +0 -1
  74. package/test/icc-api/model/modelHelpersTest.js +0 -45
  75. package/test/icc-api/model/modelHelpersTest.js.map +0 -1
  76. package/test/icc-x-api/auth/group-switch-test.d.ts +0 -1
  77. package/test/icc-x-api/auth/group-switch-test.js +0 -81
  78. package/test/icc-x-api/auth/group-switch-test.js.map +0 -1
  79. package/test/icc-x-api/auth/jwt-concurrency-test.d.ts +0 -2
  80. package/test/icc-x-api/auth/jwt-concurrency-test.js +0 -112
  81. package/test/icc-x-api/auth/jwt-concurrency-test.js.map +0 -1
  82. package/test/icc-x-api/auth/jwt-provider-test.d.ts +0 -1
  83. package/test/icc-x-api/auth/jwt-provider-test.js +0 -197
  84. package/test/icc-x-api/auth/jwt-provider-test.js.map +0 -1
  85. package/test/icc-x-api/auth/smart-auth-provider-test.d.ts +0 -1
  86. package/test/icc-x-api/auth/smart-auth-provider-test.js +0 -224
  87. package/test/icc-x-api/auth/smart-auth-provider-test.js.map +0 -1
  88. package/test/icc-x-api/autofix-anonymity-test.d.ts +0 -1
  89. package/test/icc-x-api/autofix-anonymity-test.js +0 -122
  90. package/test/icc-x-api/autofix-anonymity-test.js.map +0 -1
  91. package/test/icc-x-api/confidential-entities-test.d.ts +0 -1
  92. package/test/icc-x-api/confidential-entities-test.js +0 -168
  93. package/test/icc-x-api/confidential-entities-test.js.map +0 -1
  94. package/test/icc-x-api/crud/comprehensive-crud-test.d.ts +0 -1
  95. package/test/icc-x-api/crud/comprehensive-crud-test.js +0 -276
  96. package/test/icc-x-api/crud/comprehensive-crud-test.js.map +0 -1
  97. package/test/icc-x-api/crud/entities-crud-test-interface.d.ts +0 -16
  98. package/test/icc-x-api/crud/entities-crud-test-interface.js +0 -407
  99. package/test/icc-x-api/crud/entities-crud-test-interface.js.map +0 -1
  100. package/test/icc-x-api/crypto/anonymous-delegations-test.d.ts +0 -1
  101. package/test/icc-x-api/crypto/anonymous-delegations-test.js +0 -587
  102. package/test/icc-x-api/crypto/anonymous-delegations-test.js.map +0 -1
  103. package/test/icc-x-api/crypto/concurrency.d.ts +0 -1
  104. package/test/icc-x-api/crypto/concurrency.js +0 -35
  105. package/test/icc-x-api/crypto/concurrency.js.map +0 -1
  106. package/test/icc-x-api/crypto/crypto-utils.d.ts +0 -1
  107. package/test/icc-x-api/crypto/crypto-utils.js +0 -79
  108. package/test/icc-x-api/crypto/crypto-utils.js.map +0 -1
  109. package/test/icc-x-api/crypto/cryptoTest.d.ts +0 -2
  110. package/test/icc-x-api/crypto/cryptoTest.js +0 -402
  111. package/test/icc-x-api/crypto/cryptoTest.js.map +0 -1
  112. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.d.ts +0 -1
  113. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js +0 -166
  114. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js.map +0 -1
  115. package/test/icc-x-api/crypto/exchange-data-manager-test.d.ts +0 -1
  116. package/test/icc-x-api/crypto/exchange-data-manager-test.js +0 -674
  117. package/test/icc-x-api/crypto/exchange-data-manager-test.js.map +0 -1
  118. package/test/icc-x-api/crypto/full-crypto-test.d.ts +0 -1
  119. package/test/icc-x-api/crypto/full-crypto-test.js +0 -454
  120. package/test/icc-x-api/crypto/full-crypto-test.js.map +0 -1
  121. package/test/icc-x-api/crypto/legacy-metadata-migration-test.d.ts +0 -1
  122. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js +0 -379
  123. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js.map +0 -1
  124. package/test/icc-x-api/crypto/secure-delegations-manager-test.d.ts +0 -1
  125. package/test/icc-x-api/crypto/secure-delegations-manager-test.js +0 -278
  126. package/test/icc-x-api/crypto/secure-delegations-manager-test.js.map +0 -1
  127. package/test/icc-x-api/crypto/shamir.d.ts +0 -2
  128. package/test/icc-x-api/crypto/shamir.js +0 -167
  129. package/test/icc-x-api/crypto/shamir.js.map +0 -1
  130. package/test/icc-x-api/crypto/share-deduplication-test.d.ts +0 -1
  131. package/test/icc-x-api/crypto/share-deduplication-test.js +0 -250
  132. package/test/icc-x-api/crypto/share-deduplication-test.js.map +0 -1
  133. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.d.ts +0 -1
  134. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js +0 -71
  135. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js.map +0 -1
  136. package/test/icc-x-api/crypto/soft-deleted-data-owners.d.ts +0 -2
  137. package/test/icc-x-api/crypto/soft-deleted-data-owners.js +0 -113
  138. package/test/icc-x-api/crypto/soft-deleted-data-owners.js.map +0 -1
  139. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.d.ts +0 -1
  140. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js +0 -246
  141. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js.map +0 -1
  142. package/test/icc-x-api/entity-with-attachments-api-test.d.ts +0 -1
  143. package/test/icc-x-api/entity-with-attachments-api-test.js +0 -142
  144. package/test/icc-x-api/entity-with-attachments-api-test.js.map +0 -1
  145. package/test/icc-x-api/filters/filters.d.ts +0 -1
  146. package/test/icc-x-api/filters/filters.js +0 -49
  147. package/test/icc-x-api/filters/filters.js.map +0 -1
  148. package/test/icc-x-api/filters/healthelement.d.ts +0 -1
  149. package/test/icc-x-api/filters/healthelement.js +0 -333
  150. package/test/icc-x-api/filters/healthelement.js.map +0 -1
  151. package/test/icc-x-api/icc-accesslog-x-api.d.ts +0 -1
  152. package/test/icc-x-api/icc-accesslog-x-api.js +0 -106
  153. package/test/icc-x-api/icc-accesslog-x-api.js.map +0 -1
  154. package/test/icc-x-api/icc-application-settings-x-api.d.ts +0 -1
  155. package/test/icc-x-api/icc-application-settings-x-api.js +0 -91
  156. package/test/icc-x-api/icc-application-settings-x-api.js.map +0 -1
  157. package/test/icc-x-api/icc-auth-api.d.ts +0 -1
  158. package/test/icc-x-api/icc-auth-api.js +0 -47
  159. package/test/icc-x-api/icc-auth-api.js.map +0 -1
  160. package/test/icc-x-api/icc-calendar-item-x-api.d.ts +0 -1
  161. package/test/icc-x-api/icc-calendar-item-x-api.js +0 -150
  162. package/test/icc-x-api/icc-calendar-item-x-api.js.map +0 -1
  163. package/test/icc-x-api/icc-code-x-api-test.d.ts +0 -1
  164. package/test/icc-x-api/icc-code-x-api-test.js +0 -74
  165. package/test/icc-x-api/icc-code-x-api-test.js.map +0 -1
  166. package/test/icc-x-api/icc-contact-x-api.d.ts +0 -1
  167. package/test/icc-x-api/icc-contact-x-api.js +0 -355
  168. package/test/icc-x-api/icc-contact-x-api.js.map +0 -1
  169. package/test/icc-x-api/icc-document-x-api.d.ts +0 -1
  170. package/test/icc-x-api/icc-document-x-api.js +0 -76
  171. package/test/icc-x-api/icc-document-x-api.js.map +0 -1
  172. package/test/icc-x-api/icc-form-x-api.d.ts +0 -1
  173. package/test/icc-x-api/icc-form-x-api.js +0 -413
  174. package/test/icc-x-api/icc-form-x-api.js.map +0 -1
  175. package/test/icc-x-api/icc-hcparty-x-api-test.d.ts +0 -1
  176. package/test/icc-x-api/icc-hcparty-x-api-test.js +0 -43
  177. package/test/icc-x-api/icc-hcparty-x-api-test.js.map +0 -1
  178. package/test/icc-x-api/icc-helement-x-api-test.d.ts +0 -1
  179. package/test/icc-x-api/icc-helement-x-api-test.js +0 -155
  180. package/test/icc-x-api/icc-helement-x-api-test.js.map +0 -1
  181. package/test/icc-x-api/icc-invoice-x-api.d.ts +0 -1
  182. package/test/icc-x-api/icc-invoice-x-api.js +0 -99
  183. package/test/icc-x-api/icc-invoice-x-api.js.map +0 -1
  184. package/test/icc-x-api/icc-maintenance-task-x-api-test.d.ts +0 -1
  185. package/test/icc-x-api/icc-maintenance-task-x-api-test.js +0 -222
  186. package/test/icc-x-api/icc-maintenance-task-x-api-test.js.map +0 -1
  187. package/test/icc-x-api/icc-message-x-api.d.ts +0 -1
  188. package/test/icc-x-api/icc-message-x-api.js +0 -54
  189. package/test/icc-x-api/icc-message-x-api.js.map +0 -1
  190. package/test/icc-x-api/icc-patient-x-api-test.d.ts +0 -1
  191. package/test/icc-x-api/icc-patient-x-api-test.js +0 -209
  192. package/test/icc-x-api/icc-patient-x-api-test.js.map +0 -1
  193. package/test/icc-x-api/icc-recovery-x-api.d.ts +0 -1
  194. package/test/icc-x-api/icc-recovery-x-api.js +0 -175
  195. package/test/icc-x-api/icc-recovery-x-api.js.map +0 -1
  196. package/test/icc-x-api/icc-topic-x-api.d.ts +0 -1
  197. package/test/icc-x-api/icc-topic-x-api.js +0 -269
  198. package/test/icc-x-api/icc-topic-x-api.js.map +0 -1
  199. package/test/icc-x-api/icc-user-x-api-test.d.ts +0 -1
  200. package/test/icc-x-api/icc-user-x-api-test.js +0 -99
  201. package/test/icc-x-api/icc-user-x-api-test.js.map +0 -1
  202. package/test/icc-x-api/keyless-api.d.ts +0 -1
  203. package/test/icc-x-api/keyless-api.js +0 -125
  204. package/test/icc-x-api/keyless-api.js.map +0 -1
  205. package/test/icc-x-api/patient-user.d.ts +0 -2
  206. package/test/icc-x-api/patient-user.js +0 -103
  207. package/test/icc-x-api/patient-user.js.map +0 -1
  208. package/test/icc-x-api/storage/storage.d.ts +0 -1
  209. package/test/icc-x-api/storage/storage.js +0 -48
  210. package/test/icc-x-api/storage/storage.js.map +0 -1
  211. package/test/icc-x-api/test-api-no-parent.d.ts +0 -1
  212. package/test/icc-x-api/test-api-no-parent.js +0 -79
  213. package/test/icc-x-api/test-api-no-parent.js.map +0 -1
  214. package/test/icc-x-api/test-legacy-data-support.d.ts +0 -1
  215. package/test/icc-x-api/test-legacy-data-support.js +0 -375
  216. package/test/icc-x-api/test-legacy-data-support.js.map +0 -1
  217. package/test/icc-x-api/utils/date-encode-test.d.ts +0 -1
  218. package/test/icc-x-api/utils/date-encode-test.js +0 -150
  219. package/test/icc-x-api/utils/date-encode-test.js.map +0 -1
  220. package/test/icc-x-api/utils/graph-test.d.ts +0 -1
  221. package/test/icc-x-api/utils/graph-test.js +0 -54
  222. package/test/icc-x-api/utils/graph-test.js.map +0 -1
  223. package/test/icc-x-api/utils/lru-temporised-async-cache-test.d.ts +0 -1
  224. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js +0 -364
  225. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js.map +0 -1
  226. package/test/icc-x-api/utils/lzma-benchmark-test.d.ts +0 -1
  227. package/test/icc-x-api/utils/lzma-benchmark-test.js +0 -132
  228. package/test/icc-x-api/utils/lzma-benchmark-test.js.map +0 -1
  229. package/test/icc-x-api/utils/lzma-compat-test.d.ts +0 -1
  230. package/test/icc-x-api/utils/lzma-compat-test.js +0 -218
  231. package/test/icc-x-api/utils/lzma-compat-test.js.map +0 -1
  232. package/test/icc-x-api/utils/mutex-test.d.ts +0 -1
  233. package/test/icc-x-api/utils/mutex-test.js +0 -114
  234. package/test/icc-x-api/utils/mutex-test.js.map +0 -1
  235. package/test/icc-x-api/utils/to-moment-test.d.ts +0 -1
  236. package/test/icc-x-api/utils/to-moment-test.js +0 -110
  237. package/test/icc-x-api/utils/to-moment-test.js.map +0 -1
  238. package/test/support/CSM-185.d.ts +0 -1
  239. package/test/support/CSM-185.js +0 -124
  240. package/test/support/CSM-185.js.map +0 -1
  241. package/test/support/CSM-243.d.ts +0 -1
  242. package/test/support/CSM-243.js +0 -120
  243. package/test/support/CSM-243.js.map +0 -1
  244. package/test/support/CSM-543.d.ts +0 -1
  245. package/test/support/CSM-543.js +0 -164
  246. package/test/support/CSM-543.js.map +0 -1
  247. package/test/support/CSM-729.d.ts +0 -1
  248. package/test/support/CSM-729.js +0 -225
  249. package/test/support/CSM-729.js.map +0 -1
  250. package/test/support/CSM-814.d.ts +0 -1
  251. package/test/support/CSM-814.js +0 -475
  252. package/test/support/CSM-814.js.map +0 -1
  253. package/test/support/CSM-87.d.ts +0 -0
  254. package/test/support/CSM-87.js +0 -21
  255. package/test/support/CSM-87.js.map +0 -1
  256. package/test/support/CSM-93.d.ts +0 -1
  257. package/test/support/CSM-93.js +0 -112
  258. package/test/support/CSM-93.js.map +0 -1
  259. package/test/utils/FakeDataOwnerApi.d.ts +0 -32
  260. package/test/utils/FakeDataOwnerApi.js +0 -136
  261. package/test/utils/FakeDataOwnerApi.js.map +0 -1
  262. package/test/utils/FakeEncryptionKeysManager.d.ts +0 -36
  263. package/test/utils/FakeEncryptionKeysManager.js +0 -97
  264. package/test/utils/FakeEncryptionKeysManager.js.map +0 -1
  265. package/test/utils/FakeExchangeDataApi.d.ts +0 -32
  266. package/test/utils/FakeExchangeDataApi.js +0 -92
  267. package/test/utils/FakeExchangeDataApi.js.map +0 -1
  268. package/test/utils/FakeExchangeDataManager.d.ts +0 -48
  269. package/test/utils/FakeExchangeDataManager.js +0 -82
  270. package/test/utils/FakeExchangeDataManager.js.map +0 -1
  271. package/test/utils/FakeExchangeDataMapManager.d.ts +0 -12
  272. package/test/utils/FakeExchangeDataMapManager.js +0 -38
  273. package/test/utils/FakeExchangeDataMapManager.js.map +0 -1
  274. package/test/utils/FakeGenericApi.d.ts +0 -16
  275. package/test/utils/FakeGenericApi.js +0 -65
  276. package/test/utils/FakeGenericApi.js.map +0 -1
  277. package/test/utils/KeylessCryptoStrategies.d.ts +0 -23
  278. package/test/utils/KeylessCryptoStrategies.js +0 -26
  279. package/test/utils/KeylessCryptoStrategies.js.map +0 -1
  280. package/test/utils/TestApi.d.ts +0 -3
  281. package/test/utils/TestApi.js +0 -30
  282. package/test/utils/TestApi.js.map +0 -1
  283. package/test/utils/TestCollectionUtils.d.ts +0 -1
  284. package/test/utils/TestCollectionUtils.js +0 -310
  285. package/test/utils/TestCollectionUtils.js.map +0 -1
  286. package/test/utils/TestCryptoStrategies.d.ts +0 -42
  287. package/test/utils/TestCryptoStrategies.js +0 -80
  288. package/test/utils/TestCryptoStrategies.js.map +0 -1
  289. package/test/utils/TestStorage.d.ts +0 -23
  290. package/test/utils/TestStorage.js +0 -61
  291. package/test/utils/TestStorage.js.map +0 -1
  292. package/test/utils/roles.d.ts +0 -14
  293. package/test/utils/roles.js +0 -345
  294. package/test/utils/roles.js.map +0 -1
  295. package/test/utils/test_utils.d.ts +0 -87
  296. package/test/utils/test_utils.js +0 -452
  297. package/test/utils/test_utils.js.map +0 -1
@@ -0,0 +1,23 @@
1
+ /**
2
+ * iCure Data Stack API Documentation
3
+ * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.
4
+ *
5
+ * OpenAPI spec version: v1
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by the swagger code generator program.
9
+ * https://github.com/swagger-api/swagger-codegen.git
10
+ * Do not edit the class manually.
11
+ */
12
+ import { AbstractFilterHealthElement } from '../../icc-api/model/AbstractFilterHealthElement';
13
+ /**
14
+ * Retrieves the HealthElements that have in their qualifiedLinks, for any type of qualification, a link
15
+ * with an association id equal to associationId.
16
+ * As HealthElement is an encryptable entity and this filter does not specify a data owner id, a special
17
+ * permission is required to use this filter.
18
+ */
19
+ export declare class HealthElementByAssociationIdFilter extends AbstractFilterHealthElement {
20
+ $type: string;
21
+ constructor(json: JSON | any);
22
+ associationId?: string;
23
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HealthElementByAssociationIdFilter = void 0;
4
+ /**
5
+ * iCure Data Stack API Documentation
6
+ * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.
7
+ *
8
+ * OpenAPI spec version: v1
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by the swagger code generator program.
12
+ * https://github.com/swagger-api/swagger-codegen.git
13
+ * Do not edit the class manually.
14
+ */
15
+ const AbstractFilterHealthElement_1 = require("../../icc-api/model/AbstractFilterHealthElement");
16
+ /**
17
+ * Retrieves the HealthElements that have in their qualifiedLinks, for any type of qualification, a link
18
+ * with an association id equal to associationId.
19
+ * As HealthElement is an encryptable entity and this filter does not specify a data owner id, a special
20
+ * permission is required to use this filter.
21
+ */
22
+ class HealthElementByAssociationIdFilter extends AbstractFilterHealthElement_1.AbstractFilterHealthElement {
23
+ constructor(json) {
24
+ super(json);
25
+ this.$type = 'HealthElementByAssociationIdFilter';
26
+ Object.assign(this, json);
27
+ }
28
+ }
29
+ exports.HealthElementByAssociationIdFilter = HealthElementByAssociationIdFilter;
30
+ //# sourceMappingURL=HealthElementByAssociationIdFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HealthElementByAssociationIdFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/HealthElementByAssociationIdFilter.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,iGAA6F;AAE7F;;;;;GAKG;AACH,MAAa,kCAAmC,SAAQ,yDAA2B;IAEjF,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAFb,UAAK,GAAW,oCAAoC,CAAA;QAIlD,MAAM,CAAC,MAAM,CAAC,IAA0C,EAAE,IAAI,CAAC,CAAA;IACjE,CAAC;CAGF;AATD,gFASC","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AbstractFilterHealthElement } from '../../icc-api/model/AbstractFilterHealthElement'\n\n/**\n * Retrieves the HealthElements that have in their qualifiedLinks, for any type of qualification, a link\n * with an association id equal to associationId.\n * As HealthElement is an encryptable entity and this filter does not specify a data owner id, a special\n * permission is required to use this filter.\n */\nexport class HealthElementByAssociationIdFilter extends AbstractFilterHealthElement {\n $type: string = 'HealthElementByAssociationIdFilter'\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as HealthElementByAssociationIdFilter, json)\n }\n\n associationId?: string\n}\n"]}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * iCure Data Stack API Documentation
3
+ * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.
4
+ *
5
+ * OpenAPI spec version: v1
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by the swagger code generator program.
9
+ * https://github.com/swagger-api/swagger-codegen.git
10
+ * Do not edit the class manually.
11
+ */
12
+ import { AbstractFilterHealthElement } from '../../icc-api/model/AbstractFilterHealthElement';
13
+ /**
14
+ * Retrieves the HealthElement ids that have in their qualifiedLinks at least one link towards one of
15
+ * linkedIds. If type is not null, then only links with that qualification type are considered.
16
+ * As HealthElement is an encryptable entity and this filter does not specify a data owner id, a special
17
+ * permission is required to use this filter.
18
+ */
19
+ export declare class HealthElementByQualifiedLinkFilter extends AbstractFilterHealthElement {
20
+ $type: string;
21
+ constructor(json: JSON | any);
22
+ linkedIds?: Array<string>;
23
+ type?: string;
24
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HealthElementByQualifiedLinkFilter = void 0;
4
+ /**
5
+ * iCure Data Stack API Documentation
6
+ * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.
7
+ *
8
+ * OpenAPI spec version: v1
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by the swagger code generator program.
12
+ * https://github.com/swagger-api/swagger-codegen.git
13
+ * Do not edit the class manually.
14
+ */
15
+ const AbstractFilterHealthElement_1 = require("../../icc-api/model/AbstractFilterHealthElement");
16
+ /**
17
+ * Retrieves the HealthElement ids that have in their qualifiedLinks at least one link towards one of
18
+ * linkedIds. If type is not null, then only links with that qualification type are considered.
19
+ * As HealthElement is an encryptable entity and this filter does not specify a data owner id, a special
20
+ * permission is required to use this filter.
21
+ */
22
+ class HealthElementByQualifiedLinkFilter extends AbstractFilterHealthElement_1.AbstractFilterHealthElement {
23
+ constructor(json) {
24
+ super(json);
25
+ this.$type = 'HealthElementByQualifiedLinkFilter';
26
+ Object.assign(this, json);
27
+ }
28
+ }
29
+ exports.HealthElementByQualifiedLinkFilter = HealthElementByQualifiedLinkFilter;
30
+ //# sourceMappingURL=HealthElementByQualifiedLinkFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HealthElementByQualifiedLinkFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/HealthElementByQualifiedLinkFilter.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,iGAA6F;AAE7F;;;;;GAKG;AACH,MAAa,kCAAmC,SAAQ,yDAA2B;IAEjF,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAFb,UAAK,GAAW,oCAAoC,CAAA;QAIlD,MAAM,CAAC,MAAM,CAAC,IAA0C,EAAE,IAAI,CAAC,CAAA;IACjE,CAAC;CAIF;AAVD,gFAUC","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AbstractFilterHealthElement } from '../../icc-api/model/AbstractFilterHealthElement'\n\n/**\n * Retrieves the HealthElement ids that have in their qualifiedLinks at least one link towards one of\n * linkedIds. If type is not null, then only links with that qualification type are considered.\n * As HealthElement is an encryptable entity and this filter does not specify a data owner id, a special\n * permission is required to use this filter.\n */\nexport class HealthElementByQualifiedLinkFilter extends AbstractFilterHealthElement {\n $type: string = 'HealthElementByQualifiedLinkFilter'\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as HealthElementByQualifiedLinkFilter, json)\n }\n\n linkedIds?: Array<string>\n type?: string\n}\n"]}
@@ -45,6 +45,7 @@ export * from './ContactByHcPartyTagCodeDateFilter';
45
45
  export * from './ContactByServiceIdsFilter';
46
46
  export * from './DeviceByHcPartyFilter';
47
47
  export * from './DeviceByIdsFilter';
48
+ export * from './HealthElementByAssociationIdFilter';
48
49
  export * from './HealthElementByHcPartyCodeFilter';
49
50
  export * from './HealthElementByHcPartyFilter';
50
51
  export * from './HealthElementByHcPartyIdentifiersFilter';
@@ -54,6 +55,7 @@ export * from './HealthElementByHcPartyStatusVersioningFilter';
54
55
  export * from './HealthElementByHcPartyTagCodeFilter';
55
56
  export * from './HealthElementByHcPartyTagFilter';
56
57
  export * from './HealthElementByIdsFilter';
58
+ export * from './HealthElementByQualifiedLinkFilter';
57
59
  export * from './HealthcarePartyByIdsFilter';
58
60
  export * from './HealthcarePartyByNameFilter';
59
61
  export * from './HealthcarePartyByTagCodeFilter';
@@ -49,6 +49,7 @@ __exportStar(require("./ContactByHcPartyTagCodeDateFilter"), exports);
49
49
  __exportStar(require("./ContactByServiceIdsFilter"), exports);
50
50
  __exportStar(require("./DeviceByHcPartyFilter"), exports);
51
51
  __exportStar(require("./DeviceByIdsFilter"), exports);
52
+ __exportStar(require("./HealthElementByAssociationIdFilter"), exports);
52
53
  __exportStar(require("./HealthElementByHcPartyCodeFilter"), exports);
53
54
  __exportStar(require("./HealthElementByHcPartyFilter"), exports);
54
55
  __exportStar(require("./HealthElementByHcPartyIdentifiersFilter"), exports);
@@ -58,6 +59,7 @@ __exportStar(require("./HealthElementByHcPartyStatusVersioningFilter"), exports)
58
59
  __exportStar(require("./HealthElementByHcPartyTagCodeFilter"), exports);
59
60
  __exportStar(require("./HealthElementByHcPartyTagFilter"), exports);
60
61
  __exportStar(require("./HealthElementByIdsFilter"), exports);
62
+ __exportStar(require("./HealthElementByQualifiedLinkFilter"), exports);
61
63
  __exportStar(require("./HealthcarePartyByIdsFilter"), exports);
62
64
  __exportStar(require("./HealthcarePartyByNameFilter"), exports);
63
65
  __exportStar(require("./HealthcarePartyByTagCodeFilter"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../icc-x-api/filters/filters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAiD;AAOjD,6DAAyD;AACzD,+CAA2C;AAC3C,yDAAqD;AACrD,uFAAmF;AACnF,yFAAqF;AACrF,+FAA2F;AAC3F,qFAAiF;AACjF,yGAAqG;AACrG,2FAAuF;AAEvF,uCAAsC;AACtC,qEAAiE;AACjE,uHAAmH;AACnH,6DAAyD;AACzD,uGAAmG;AAGnG,qEAAiE;AAoBjE,mDAAgC;AAChC,qDAAkC;AAClC,uDAAoC;AACpC,+DAA4C;AAC5C,wDAAqC;AACrC,mDAAgC;AAChC,qDAAkC;AAClC,oDAAiC;AACjC,sEAAmD;AACnD,wEAAqD;AACrD,qDAAkC;AAClC,mDAAgC;AAChC,2DAAwC;AACxC,6EAA0D;AAC1D,sEAAmD;AACnD,8DAA2C;AAC3C,0DAAuC;AACvC,sDAAmC;AACnC,qEAAkD;AAClD,iEAA8C;AAC9C,4EAAyD;AACzD,sFAAmE;AACnE,kFAA+D;AAC/D,iFAA8D;AAC9D,wEAAqD;AACrD,oEAAiD;AACjD,6DAA0C;AAC1C,+DAA4C;AAC5C,gEAA6C;AAC7C,mEAAgD;AAChD,uEAAoD;AACpD,+DAA4C;AAC5C,uDAAoC;AACpC,mEAAgD;AAChD,oEAAiD;AACjD,qEAAkD;AAClD,wEAAqD;AACrD,yEAAsD;AACtD,kEAA+C;AAC/C,mEAAgD;AAChD,6EAA0D;AAC1D,sEAAmD;AACnD,2DAAwC;AACxC,oFAAiE;AACjE,4EAAyD;AACzD,+DAA4C;AAC5C,uDAAoC;AACpC,0EAAuD;AACvD,2DAAwC;AACxC,sEAAmD;AACnD,2EAAwD;AACxD,sEAAmD;AACnD,qEAAkD;AAClD,oEAAiD;AACjD,0EAAuD;AACvD,yEAAsD;AACtD,4EAAyD;AACzD,2EAAwD;AACxD,gEAA6C;AAC7C,mEAAgD;AAChD,uEAAoD;AACpD,0EAAuD;AACvD,uDAAoC;AACpC,+DAA4C;AAC5C,gDAA6B;AAC7B,oDAAiC;AACjC,iFAA8D;AAC9D,0EAAuD;AACvD,+DAA4C;AAC5C,mEAAgD;AAChD,yDAAsC;AACtC,6DAA0C;AAC1C,2DAAwC;AACxC,wEAAqD;AACrD,8EAA2D;AAE3D,MAAa,MAAM;IACV,MAAM,CAAC,OAAO;QACnB,OAAO,IAAI,oBAAoB,EAAE,CAAA;IACnC,CAAC;CACF;AAJD,wBAIC;AAiCD,MAAM,CAAC,GAA0B,IAAI,mCAAgB,CAAU,IAAI,+CAAsB,CAAC,EAAE,CAAC,EAAE,IAAI,+CAAsB,CAAC,EAAE,CAAC,CAAC,CAAA;AAE9H,MAAe,aAAa;IAG1B,+GAA+G;IAC/G,gHAAgH;IAChH,uHAAuH;IAEvH,YACE,cAAwC,EACxC,QAA0G;QAM5G,qFAAqF;QACrF,aAAQ,GAAoG,CAC1G,iBAAmC,EACnC,kBAAoC,EACpC,EAAE,CAAC,kBAAkB,CAAA;QARrB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAA;IACxC,CAAC;IAeD,MAAM,CAAC,QAAa;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,+BAAc,CAAI,QAAQ,CAAsB,CAAC,CAAA;IAC/E,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IAEH,GAAG,CAAC,oBAAiE;QACnE,MAAM,QAAQ,GAAG,CAAC,cAAiC,EAAE,eAAkC,EAAE,EAAE,CAAC,GAAG,EAAE,CAC/F,IAAI,uCAAkB,CAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAsB,CAAA;QAEnF,OAAO,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAA;IACpJ,CAAC;IAED,EAAE,CAAC,oBAAiE;QAClE,MAAM,QAAQ,GAAG,CAAC,cAAiC,EAAE,eAAkC,EAAE,EAAE,CAAC,GAAG,EAAE,CAC/F,IAAI,yBAAW,CAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAsB,CAAA;QAE5E,OAAO,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAA;IACpJ,CAAC;IAED,KAAK,CAAC,oBAAiE;QACrE,MAAM,QAAQ,GAAG,CAAC,cAAiC,EAAE,eAAkC,EAAE,EAAE,CAAC,GAAG,EAAE,CAC/F,IAAI,mCAAgB,CAAI,cAAc,EAAE,eAAe,CAAsB,CAAA;QAE/E,OAAO,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAA;IACpJ,CAAC;IAEO,8BAA8B,CACpC,gCAAoI;QAEpI,4DAA4D;QAC5D,MAAM,qBAAqB,GAAqB,IAAI,CAAA;QACpD,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,CAAA,CAAC,6BAA6B;QAElF,OAAO,qBAAqB,CAAC,cAAc;YACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CACR,SAAS,EAAE,wEAAwE;YACnF,CAAC,MAAwB,EAAE,sBAAwC,EAAE,EAAE;gBACrE,6HAA6H;gBAC7H,MAAM,eAAe,GAAG,sBAAsB,CAAC,KAAK,EAAE,CAAA;gBAEtD,OAAO,eAAe;oBACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,cAAc,EAAE,eAAe,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC;oBAChH,CAAC,CAAC,sBAAsB,CAAA,CAAC,mBAAmB;YAChD,CAAC,CACF;YACH,CAAC,CAAC,IAAI,CAAA;IACV,CAAC;IAEO,+BAA+B,CACrC,6BAAyE,EACzE,gCAAoI;QAEpI,MAAM,sBAAsB,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAChI,CAAC;CACF;AAED,MAAM,oBAAqB,SAAQ,aAAsB;IAGvD,YACE,cAA8C,EAC9C,KAAc,EACd,QAA4H;QAE5H,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,KAAK,CACH,cAA8C,EAC9C,QAA4H;QAE5H,OAAO,IAAI,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,CAAC,QAAmB;QACxB,OAAO,IAAI,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,+BAAc,CAAU,QAAQ,CAA4B,CAAC,CAAA;IACzG,CAAC;IAED,GAAG,CAAC,oBAAyE;QAC3E,OAAO,KAAK,CAAC,GAAG,CAAC,oBAA2B,CAAyB,CAAA;IACvE,CAAC;IAED,EAAE,CAAC,oBAAyE;QAC1E,OAAO,KAAK,CAAC,EAAE,CAAC,oBAA2B,CAAyB,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,oBAAyE;QAC7E,OAAO,KAAK,CAAC,KAAK,CAAC,oBAA2B,CAAyB,CAAA;IACzE,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAyB,CAAA;IAC1G,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,IAAI,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,+CAAsB,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAClF,CAAA;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,IAAI,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,iEAA+B,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CACzG,CAAA;IAC3B,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,IAAI,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,iEAA+B,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAC1G,CAAA;IAC3B,CAAC;IAED,SAAS,CAAC,YAAqB,EAAE,UAAmB,EAAE,WAAoB;QACxE,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,IAAI,oBAAoB,CACtB,GAAG,EAAE,CACH,IAAI,mEAAgC,CAAC;YACnC,iBAAiB,EAAE,IAAI,CAAC,KAAK;YAC7B,YAAY;YACZ,UAAU;YACV,WAAW;SACZ,CAAC,EACJ,IAAI,CAAC,KAAK,CACX,CACsB,CAAA;IAC3B,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,IAAI,oBAAoB,CACtB,GAAG,EAAE,CACH,IAAI,yEAAmC,CAAC;YACtC,iBAAiB,EAAE,IAAI,CAAC,KAAK;YAC7B,UAAU,EAAE,UAAU;SACvB,CAAC,EACJ,IAAI,CAAC,KAAK,CACX,CACsB,CAAA;IAC3B,CAAC;IAED,SAAS,CAAC,KAAe;QACvB,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,IAAI,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,+DAA8B,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CACxG,CAAA;IAC3B,CAAC;IAED,sBAAsB,CAAC,IAAa,EAAE,EAAW;QAC/C,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,IAAI,CAAC,KAAK,CACR,GAAG,EAAE,CACH,IAAI,mFAAwC,CAAC;YAC3C,iBAAiB,EAAE,IAAI,CAAC,KAAK;YAC7B,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,EAAE;SACnB,CAAC,CACL,CACsB,CAAA;IAC3B,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,IAAI,oBAAoB,CACtB,GAAG,EAAE,CACH,IAAI,qEAAiC,CAAC;YACpC,iBAAiB,EAAE,IAAI,CAAC,KAAK;YAC7B,WAAW,EAAE,WAAW;SACzB,CAAC,EACJ,IAAI,CAAC,KAAK,CACX,CACsB,CAAA;IAC3B,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAA,iBAAM,EAAC,IAAA,cAAG,EAAC,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IAC9G,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAA,iBAAM,EAAC,IAAA,cAAG,EAAC,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC9G,CAAC;IAED,2BAA2B,CAAC,MAAmB,EAAE,SAAkB,EAAE,UAAmB;QACtF,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,IAAI,oBAAoB,CACtB,GAAG,EAAE,CACH,IAAI,iGAA+C,CAAC;YAClD,iBAAiB,EAAE,IAAI,CAAC,KAAK;YAC7B,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,UAAU;SACvB,CAAC,EACJ,IAAI,CAAC,KAAK,CACX,CACsB,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,GAAa;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,uCAAkB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAyB,CAAA;IACtI,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,IAAI,oBAAoB,CACtB,GAAG,EAAE,CACH,IAAI,iFAAuC,CAAC;YAC1C,iBAAiB,EAAE,IAAI,CAAC,KAAK;YAC7B,YAAY,EAAE,IAAI;SACnB,CAAC,EACJ,IAAI,CAAC,KAAK,CACX,CACsB,CAAA;IAC3B,CAAC;IAED,KAAK;;QACH,OAAO,CAAA,MAAA,IAAI,CAAC,cAAc,oDAAI,KAAI,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAA;IACtD,CAAC;CACF","sourcesContent":["import { ConstantFilter } from './ConstantFilter'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { AbstractFilterPatient } from '../../icc-api/model/AbstractFilterPatient'\nimport { AbstractFilterContact } from '../../icc-api/model/AbstractFilterContact'\nimport { AbstractFilterService } from '../../icc-api/model/AbstractFilterService'\nimport { Service } from '../../icc-api/model/Service'\nimport { Contact } from '../../icc-api/model/Contact'\nimport { IntersectionFilter } from './IntersectionFilter'\nimport { UnionFilter } from './UnionFilter'\nimport { ComplementFilter } from './ComplementFilter'\nimport { PatientByHcPartyAndActiveFilter } from './PatientByHcPartyAndActiveFilter'\nimport { PatientByHcPartyAndAddressFilter } from './PatientByHcPartyAndAddressFilter'\nimport { PatientByHcPartyAndExternalIdFilter } from './PatientByHcPartyAndExternalIdFilter'\nimport { PatientByHcPartyAndSsinsFilter } from './PatientByHcPartyAndSsinsFilter'\nimport { PatientByHcPartyDateOfBirthBetweenFilter } from './PatientByHcPartyDateOfBirthBetweenFilter'\nimport { PatientByHcPartyDateOfBirthFilter } from './PatientByHcPartyDateOfBirthFilter'\n\nimport { add, format } from 'date-fns'\nimport { PatientByHcPartyFilter } from './PatientByHcPartyFilter'\nimport { PatientByHcPartyGenderEducationProfessionFilter } from './PatientByHcPartyGenderEducationProfessionFilter'\nimport { PatientByIdsFilter } from './PatientByIdsFilter'\nimport { PatientByHcPartyNameContainsFuzzyFilter } from './PatientByHcPartyNameContainsFuzzyFilter'\n\nimport GenderEnum = Patient.GenderEnum\nimport { ContactByHcPartyFilter } from './ContactByHcPartyFilter'\nimport { Device } from '../../icc-api/model/Device'\nimport { AbstractFilterDevice } from '../../icc-api/model/AbstractFilterDevice'\nimport { MaintenanceTask } from '../../icc-api/model/MaintenanceTask'\nimport { AbstractFilterMaintenanceTask } from '../../icc-api/model/AbstractFilterMaintenanceTask'\nimport { Code } from '../../icc-api/model/Code'\nimport { AbstractFilterCode } from '../../icc-api/model/AbstractFilterCode'\nimport { HealthElement } from '../../icc-api/model/HealthElement'\nimport { AbstractFilterHealthElement } from '../../icc-api/model/AbstractFilterHealthElement'\nimport { Invoice } from '../../icc-api/model/Invoice'\nimport { AbstractFilterInvoice } from '../../icc-api/model/AbstractFilterInvoice'\nimport { User } from '../../icc-api/model/User'\nimport { AbstractFilterUser } from '../../icc-api/model/AbstractFilterUser'\nimport { HealthcareParty } from '../../icc-api/model/HealthcareParty'\nimport { AbstractFilterHealthcareParty } from '../../icc-api/model/AbstractFilterHealthcareParty'\nimport { Tarification } from '../../icc-api/model/Tarification'\nimport { AbstractFilterPricing } from '../../icc-api/model/AbstractFilterPricing'\nimport { Insurance } from '../../icc-api/model/Insurance'\nimport { AbstractFilterInsurance } from '../../icc-api/model/AbstractFilterInsurance'\n\nexport * from './AllCodesFilter'\nexport * from './AllDevicesFilter'\nexport * from './AllDocumentsFilter'\nexport * from './AllHealthcarePartiesFilter'\nexport * from './AllInsurancesFilter'\nexport * from './AllUsersFilter'\nexport * from './AllPricingFilter'\nexport * from './CodeByIdsFilter'\nexport * from './CodeByRegionTypeCodeVersionFilter'\nexport * from './CodeByRegionTypeLabelLanguageFilter'\nexport * from './ComplementFilter'\nexport * from './ConstantFilter'\nexport * from './ContactByHcPartyFilter'\nexport * from './ContactByHcPartyPatientTagCodeDateFilter'\nexport * from './ContactByHcPartyTagCodeDateFilter'\nexport * from './ContactByServiceIdsFilter'\nexport * from './DeviceByHcPartyFilter'\nexport * from './DeviceByIdsFilter'\nexport * from './HealthElementByHcPartyCodeFilter'\nexport * from './HealthElementByHcPartyFilter'\nexport * from './HealthElementByHcPartyIdentifiersFilter'\nexport * from './HealthElementByHcPartyIdentifiersVersioningFilter'\nexport * from './HealthElementByHcPartySecretForeignKeysFilter'\nexport * from './HealthElementByHcPartyStatusVersioningFilter'\nexport * from './HealthElementByHcPartyTagCodeFilter'\nexport * from './HealthElementByHcPartyTagFilter'\nexport * from './HealthElementByIdsFilter'\nexport * from './HealthcarePartyByIdsFilter'\nexport * from './HealthcarePartyByNameFilter'\nexport * from './HealthcarePartyByTagCodeFilter'\nexport * from './HealthcarePartyByIdentifiersFilter'\nexport * from './HealthcarePartyByIdsFilter'\nexport * from './IntersectionFilter'\nexport * from './InvoiceByHcPartyCodeDateFilter'\nexport * from './PatientByHcPartyAndActiveFilter'\nexport * from './PatientByHcPartyAndAddressFilter'\nexport * from './PatientByHcPartyAndExternalIdFilter'\nexport * from './PatientByHcPartyAndIdentifiersFilter'\nexport * from './PatientByHcPartyAndSsinFilter'\nexport * from './PatientByHcPartyAndSsinsFilter'\nexport * from './PatientByHcPartyDateOfBirthBetweenFilter'\nexport * from './PatientByHcPartyDateOfBirthFilter'\nexport * from './PatientByHcPartyFilter'\nexport * from './PatientByHcPartyGenderEducationProfessionFilter'\nexport * from './PatientByHcPartyNameContainsFuzzyFilter'\nexport * from './PatientByHcPartyNameFilter'\nexport * from './PatientByIdsFilter'\nexport * from './ServiceByContactsAndSubcontactsFilter'\nexport * from './ServiceByHcPartyFilter'\nexport * from './ServiceByHcPartyIdentifiersFilter'\nexport * from './ServiceByHcPartyHealthElementIdsFilter'\nexport * from './ServiceByHcPartyTagCodeDateFilter'\nexport * from './ServiceByHcPartyCodePrefixFilter'\nexport * from './ServiceByHcPartyTagPrefixFilter'\nexport * from './ServiceByHcPartyMonthCodePrefixFilter'\nexport * from './ServiceByHcPartyMonthTagPrefixFilter'\nexport * from './ServiceByHcPartyPatientCodePrefixFilter'\nexport * from './ServiceByHcPartyPatientTagPrefixFilter'\nexport * from './ServiceByHcPartyCodesFilter'\nexport * from './ServiceByHcPartyTagCodesFilter'\nexport * from './ServiceByHcPartyPatientCodesFilter'\nexport * from './ServiceByHcPartyPatientTagCodesFilter'\nexport * from './ServiceByIdsFilter'\nexport * from './ServiceBySecretForeignKeys'\nexport * from './UnionFilter'\nexport * from './UserByIdsFilter'\nexport * from './MaintenanceTaskByHcPartyAndIdentifiersFilter'\nexport * from './MaintenanceTaskByHcPartyAndTypeFilter'\nexport * from './MaintenanceTaskByIdsFilter'\nexport * from './MaintenanceTaskAfterDateFilter'\nexport * from './TopicByHcPartyFilter'\nexport * from './TopicByParticipantFilter'\nexport * from './MessageByHcPartyFilter'\nexport * from './MessageByHcPartyTransportGuidFilter'\nexport * from './LatestMessageByHcPartyTransportGuidFilter'\n\nexport class Filter {\n public static patient(): PatientFilterBuilder {\n return new PatientFilterBuilder()\n }\n}\n\nexport type AbstractFilter<T> =\n | (T extends Patient\n ? AbstractFilterPatient\n : T extends Contact\n ? AbstractFilterContact\n : T extends Service\n ? AbstractFilterService\n : T extends HealthcareParty\n ? AbstractFilterHealthcareParty\n : T extends Device\n ? AbstractFilterDevice\n : T extends MaintenanceTask\n ? AbstractFilterMaintenanceTask\n : T extends Code\n ? AbstractFilterCode\n : T extends HealthElement\n ? AbstractFilterHealthElement\n : T extends Insurance\n ? AbstractFilterInsurance\n : T extends Invoice\n ? AbstractFilterInvoice\n : T extends User\n ? AbstractFilterUser\n : T extends Tarification\n ? AbstractFilterPricing\n : never)\n | ConstantFilter<T>\n | IntersectionFilter<T>\n | UnionFilter<T>\n | ComplementFilter<T>\n\nconst f: AbstractFilterContact = new ComplementFilter<Contact>(new ContactByHcPartyFilter({}), new ContactByHcPartyFilter({}))\n\nabstract class FilterBuilder<T> {\n // This is the current generator for the filter, when we call build(), filterProvider() is going to be called\n filterProvider?: () => AbstractFilter<T>\n // This is the method that is called each time we chain a filter to another filter. The default behaviour is to\n // return a FilterBuilder with the provider set to the last element in the chain, except when we use combination\n // operators like or()/and()/… . After one of those, the composer is set to a function that will return a FilterBuilder\n\n protected constructor(\n filterProvider?: () => AbstractFilter<T>,\n composer?: (thisFilterBuilder: FilterBuilder<T>, otherFilterBuilder: FilterBuilder<T>) => FilterBuilder<T>\n ) {\n this.filterProvider = filterProvider\n composer && (this.composer = composer)\n }\n\n // that combines the existing filterBuilder with the filter definition we just added.\n composer: (thisFilterBuilder: FilterBuilder<T>, otherFilterBuilder: FilterBuilder<T>) => FilterBuilder<T> = (\n thisFilterBuilder: FilterBuilder<T>,\n otherFilterBuilder: FilterBuilder<T>\n ) => otherFilterBuilder\n\n abstract build(): AbstractFilter<T>\n\n abstract clone(\n filterProvider?: () => AbstractFilter<T>,\n composer?: (thisFilterBuilder: FilterBuilder<T>, otherFilterBuilder: FilterBuilder<T>) => FilterBuilder<T>\n ): FilterBuilder<T>\n\n listOf(elements: T[]): FilterBuilder<T> {\n return this.clone(() => new ConstantFilter<T>(elements) as AbstractFilter<T>)\n }\n\n /**\n * There are two ways of doing and, or, …\n *\n * 1) for (...) or (...) we use the syntax ... .or((builder) => builder...)\n * ex: youngerThan(65).or((b) => b.olderThan(18).and().gender(M)) means any gender < 65 or male > 18\n * 2) for ((...) or ...) we use the syntax ... .or().…\n * ex: youngerThan(65).or().olderThan(18).and().gender(M) means males between 18 and 65\n *\n * When 1) is used we do not have to wait for anything to provide a resolved builder that can later be combined with extra elements in the chain.\n * In other words, we can build the current filter chain up to the or/and/… and we can build what is inside the or/and/… brackets and we can set\n * the filterProvider of the returned Builder to () => UnionFilter([leftHand.build(), innerBrackets.build()]).\n *\n * When 2) is used, things get more tricky because we will have to do an or/and/… between what we have on the leftHand and with what we do not have\n * yet on the right hand. What we do in that situation is to set the filterProvider() to undefined because calling build() without having provided a\n * rightHand doesn't make sense. We set a composer that is going to be called the next time we chain a filter.\n *\n * @param filterBuilderFactory\n */\n\n and(filterBuilderFactory?: (it: FilterBuilder<T>) => FilterBuilder<T>): FilterBuilder<T> {\n const combiner = (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () =>\n new IntersectionFilter<T>([leftHandFilter, rightHandFilter]) as AbstractFilter<T>\n\n return filterBuilderFactory ? this.makeEagerLeftRightFilterBuilder(filterBuilderFactory, combiner) : this.makeLazyLeftRightFilterBuilder(combiner)\n }\n\n or(filterBuilderFactory?: (it: FilterBuilder<T>) => FilterBuilder<T>): FilterBuilder<T> {\n const combiner = (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () =>\n new UnionFilter<T>([leftHandFilter, rightHandFilter]) as AbstractFilter<T>\n\n return filterBuilderFactory ? this.makeEagerLeftRightFilterBuilder(filterBuilderFactory, combiner) : this.makeLazyLeftRightFilterBuilder(combiner)\n }\n\n minus(filterBuilderFactory?: (it: FilterBuilder<T>) => FilterBuilder<T>): FilterBuilder<T> {\n const combiner = (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () =>\n new ComplementFilter<T>(leftHandFilter, rightHandFilter) as AbstractFilter<T>\n\n return filterBuilderFactory ? this.makeEagerLeftRightFilterBuilder(filterBuilderFactory, combiner) : this.makeLazyLeftRightFilterBuilder(combiner)\n }\n\n private makeLazyLeftRightFilterBuilder(\n leftHandRightHandFiltersCombiner: (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () => AbstractFilter<T>\n ) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const leftHandFilterBuilder: FilterBuilder<T> = this\n const leftHandFilter = leftHandFilterBuilder.build() // Freeze the leftHand filter\n\n return leftHandFilterBuilder.filterProvider\n ? this.clone(\n undefined, //filter provider is indeterminate until we have performed a composition\n (unused: FilterBuilder<T>, rightHandFilterBuilder: FilterBuilder<T>) => {\n // because we freeze the leftHand in the state it is right now, we are not going to use its value when the composition occurs\n const rightHandFilter = rightHandFilterBuilder.build()\n\n return rightHandFilter\n ? this.clone(leftHandRightHandFiltersCombiner(leftHandFilter, rightHandFilter), rightHandFilterBuilder.composer)\n : rightHandFilterBuilder //Can this happen ?\n }\n )\n : this\n }\n\n private makeEagerLeftRightFilterBuilder(\n rightHandFilterBuilderFactory: (it: FilterBuilder<T>) => FilterBuilder<T>,\n leftHandRightHandFiltersCombiner: (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () => AbstractFilter<T>\n ) {\n const rightHandFilterBuilder = rightHandFilterBuilderFactory(this)\n return this.filterProvider ? this.clone(leftHandRightHandFiltersCombiner(this.build(), rightHandFilterBuilder.build())) : this\n }\n}\n\nclass PatientFilterBuilder extends FilterBuilder<Patient> {\n hcpId?: string\n\n constructor(\n filterProvider?: () => AbstractFilter<Patient>,\n hcpId?: string,\n composer?: (thisFilterBuilder: FilterBuilder<Patient>, otherFilterBuilder: FilterBuilder<Patient>) => FilterBuilder<Patient>\n ) {\n super(filterProvider, composer)\n this.hcpId = hcpId\n }\n\n clone(\n filterProvider?: () => AbstractFilter<Patient>,\n composer?: (thisFilterBuilder: FilterBuilder<Patient>, otherFilterBuilder: FilterBuilder<Patient>) => FilterBuilder<Patient>\n ): FilterBuilder<Patient> {\n return new PatientFilterBuilder(filterProvider, this.hcpId, composer)\n }\n\n listOf(elements: Patient[]): PatientFilterBuilder {\n return new PatientFilterBuilder(() => new ConstantFilter<Patient>(elements) as AbstractFilter<Patient>)\n }\n\n and(filterBuilderFactory?: (it: PatientFilterBuilder) => PatientFilterBuilder): PatientFilterBuilder {\n return super.and(filterBuilderFactory as any) as PatientFilterBuilder\n }\n\n or(filterBuilderFactory?: (it: PatientFilterBuilder) => PatientFilterBuilder): PatientFilterBuilder {\n return super.or(filterBuilderFactory as any) as PatientFilterBuilder\n }\n\n minus(filterBuilderFactory?: (it: PatientFilterBuilder) => PatientFilterBuilder): PatientFilterBuilder {\n return super.minus(filterBuilderFactory as any) as PatientFilterBuilder\n }\n\n forHcp(hcpId: string): PatientFilterBuilder {\n return this.composer(this, new PatientFilterBuilder(this.filterProvider, hcpId)) as PatientFilterBuilder\n }\n\n all(): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyFilter({ healthcarePartyId: this.hcpId }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n activePatients(): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyAndActiveFilter({ healthcarePartyId: this.hcpId, active: true }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n inactivePatients(): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyAndActiveFilter({ healthcarePartyId: this.hcpId, active: false }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n byAddress(searchString?: string, postalCode?: string, houseNumber?: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyAndAddressFilter({\n healthcarePartyId: this.hcpId,\n searchString,\n postalCode,\n houseNumber,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n withExternalId(externalId: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyAndExternalIdFilter({\n healthcarePartyId: this.hcpId,\n externalId: externalId,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n withSsins(ssins: string[]): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyAndSsinsFilter({ healthcarePartyId: this.hcpId, ssins: ssins }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n withDateOfBirthBetween(from?: number, to?: number): PatientFilterBuilder {\n return this.composer(\n this,\n this.clone(\n () =>\n new PatientByHcPartyDateOfBirthBetweenFilter({\n healthcarePartyId: this.hcpId,\n minDateOfBirth: from,\n maxDateOfBirth: to,\n })\n )\n ) as PatientFilterBuilder\n }\n\n byDateOfBirth(dateOfBirth: number): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyDateOfBirthFilter({\n healthcarePartyId: this.hcpId,\n dateOfBirth: dateOfBirth,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n olderThan(age: number): PatientFilterBuilder {\n return this.withDateOfBirthBetween(10000101, parseInt(format(add(new Date(), { years: -age }), 'yyyyMMdd')))\n }\n\n youngerThan(age: number): PatientFilterBuilder {\n return this.withDateOfBirthBetween(parseInt(format(add(new Date(), { years: -age }), 'yyyyMMdd')), 99991231)\n }\n\n byGenderEducationProfession(gender?: GenderEnum, education?: string, profession?: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyGenderEducationProfessionFilter({\n healthcarePartyId: this.hcpId,\n gender: gender,\n education: education,\n profession: profession,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n byIds(ids: string[]): PatientFilterBuilder {\n return this.composer(this, new PatientFilterBuilder(() => new PatientByIdsFilter({ ids: ids }), this.hcpId)) as PatientFilterBuilder\n }\n\n searchByName(name: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyNameContainsFuzzyFilter({\n healthcarePartyId: this.hcpId,\n searchString: name,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n build(): AbstractFilter<Patient> {\n return this.filterProvider?.() || this.all().build()\n }\n}\n"]}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../icc-x-api/filters/filters.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConstantFilter } from './ConstantFilter'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { AbstractFilterPatient } from '../../icc-api/model/AbstractFilterPatient'\nimport { AbstractFilterContact } from '../../icc-api/model/AbstractFilterContact'\nimport { AbstractFilterService } from '../../icc-api/model/AbstractFilterService'\nimport { Service } from '../../icc-api/model/Service'\nimport { Contact } from '../../icc-api/model/Contact'\nimport { IntersectionFilter } from './IntersectionFilter'\nimport { UnionFilter } from './UnionFilter'\nimport { ComplementFilter } from './ComplementFilter'\nimport { PatientByHcPartyAndActiveFilter } from './PatientByHcPartyAndActiveFilter'\nimport { PatientByHcPartyAndAddressFilter } from './PatientByHcPartyAndAddressFilter'\nimport { PatientByHcPartyAndExternalIdFilter } from './PatientByHcPartyAndExternalIdFilter'\nimport { PatientByHcPartyAndSsinsFilter } from './PatientByHcPartyAndSsinsFilter'\nimport { PatientByHcPartyDateOfBirthBetweenFilter } from './PatientByHcPartyDateOfBirthBetweenFilter'\nimport { PatientByHcPartyDateOfBirthFilter } from './PatientByHcPartyDateOfBirthFilter'\n\nimport { add, format } from 'date-fns'\nimport { PatientByHcPartyFilter } from './PatientByHcPartyFilter'\nimport { PatientByHcPartyGenderEducationProfessionFilter } from './PatientByHcPartyGenderEducationProfessionFilter'\nimport { PatientByIdsFilter } from './PatientByIdsFilter'\nimport { PatientByHcPartyNameContainsFuzzyFilter } from './PatientByHcPartyNameContainsFuzzyFilter'\n\nimport GenderEnum = Patient.GenderEnum\nimport { ContactByHcPartyFilter } from './ContactByHcPartyFilter'\nimport { Device } from '../../icc-api/model/Device'\nimport { AbstractFilterDevice } from '../../icc-api/model/AbstractFilterDevice'\nimport { MaintenanceTask } from '../../icc-api/model/MaintenanceTask'\nimport { AbstractFilterMaintenanceTask } from '../../icc-api/model/AbstractFilterMaintenanceTask'\nimport { Code } from '../../icc-api/model/Code'\nimport { AbstractFilterCode } from '../../icc-api/model/AbstractFilterCode'\nimport { HealthElement } from '../../icc-api/model/HealthElement'\nimport { AbstractFilterHealthElement } from '../../icc-api/model/AbstractFilterHealthElement'\nimport { Invoice } from '../../icc-api/model/Invoice'\nimport { AbstractFilterInvoice } from '../../icc-api/model/AbstractFilterInvoice'\nimport { User } from '../../icc-api/model/User'\nimport { AbstractFilterUser } from '../../icc-api/model/AbstractFilterUser'\nimport { HealthcareParty } from '../../icc-api/model/HealthcareParty'\nimport { AbstractFilterHealthcareParty } from '../../icc-api/model/AbstractFilterHealthcareParty'\nimport { Tarification } from '../../icc-api/model/Tarification'\nimport { AbstractFilterPricing } from '../../icc-api/model/AbstractFilterPricing'\nimport { Insurance } from '../../icc-api/model/Insurance'\nimport { AbstractFilterInsurance } from '../../icc-api/model/AbstractFilterInsurance'\n\nexport * from './AllCodesFilter'\nexport * from './AllDevicesFilter'\nexport * from './AllDocumentsFilter'\nexport * from './AllHealthcarePartiesFilter'\nexport * from './AllInsurancesFilter'\nexport * from './AllUsersFilter'\nexport * from './AllPricingFilter'\nexport * from './CodeByIdsFilter'\nexport * from './CodeByRegionTypeCodeVersionFilter'\nexport * from './CodeByRegionTypeLabelLanguageFilter'\nexport * from './ComplementFilter'\nexport * from './ConstantFilter'\nexport * from './ContactByHcPartyFilter'\nexport * from './ContactByHcPartyPatientTagCodeDateFilter'\nexport * from './ContactByHcPartyTagCodeDateFilter'\nexport * from './ContactByServiceIdsFilter'\nexport * from './DeviceByHcPartyFilter'\nexport * from './DeviceByIdsFilter'\nexport * from './HealthElementByAssociationIdFilter'\nexport * from './HealthElementByHcPartyCodeFilter'\nexport * from './HealthElementByHcPartyFilter'\nexport * from './HealthElementByHcPartyIdentifiersFilter'\nexport * from './HealthElementByHcPartyIdentifiersVersioningFilter'\nexport * from './HealthElementByHcPartySecretForeignKeysFilter'\nexport * from './HealthElementByHcPartyStatusVersioningFilter'\nexport * from './HealthElementByHcPartyTagCodeFilter'\nexport * from './HealthElementByHcPartyTagFilter'\nexport * from './HealthElementByIdsFilter'\nexport * from './HealthElementByQualifiedLinkFilter'\nexport * from './HealthcarePartyByIdsFilter'\nexport * from './HealthcarePartyByNameFilter'\nexport * from './HealthcarePartyByTagCodeFilter'\nexport * from './HealthcarePartyByIdentifiersFilter'\nexport * from './HealthcarePartyByIdsFilter'\nexport * from './IntersectionFilter'\nexport * from './InvoiceByHcPartyCodeDateFilter'\nexport * from './PatientByHcPartyAndActiveFilter'\nexport * from './PatientByHcPartyAndAddressFilter'\nexport * from './PatientByHcPartyAndExternalIdFilter'\nexport * from './PatientByHcPartyAndIdentifiersFilter'\nexport * from './PatientByHcPartyAndSsinFilter'\nexport * from './PatientByHcPartyAndSsinsFilter'\nexport * from './PatientByHcPartyDateOfBirthBetweenFilter'\nexport * from './PatientByHcPartyDateOfBirthFilter'\nexport * from './PatientByHcPartyFilter'\nexport * from './PatientByHcPartyGenderEducationProfessionFilter'\nexport * from './PatientByHcPartyNameContainsFuzzyFilter'\nexport * from './PatientByHcPartyNameFilter'\nexport * from './PatientByIdsFilter'\nexport * from './ServiceByContactsAndSubcontactsFilter'\nexport * from './ServiceByHcPartyFilter'\nexport * from './ServiceByHcPartyIdentifiersFilter'\nexport * from './ServiceByHcPartyHealthElementIdsFilter'\nexport * from './ServiceByHcPartyTagCodeDateFilter'\nexport * from './ServiceByHcPartyCodePrefixFilter'\nexport * from './ServiceByHcPartyTagPrefixFilter'\nexport * from './ServiceByHcPartyMonthCodePrefixFilter'\nexport * from './ServiceByHcPartyMonthTagPrefixFilter'\nexport * from './ServiceByHcPartyPatientCodePrefixFilter'\nexport * from './ServiceByHcPartyPatientTagPrefixFilter'\nexport * from './ServiceByHcPartyCodesFilter'\nexport * from './ServiceByHcPartyTagCodesFilter'\nexport * from './ServiceByHcPartyPatientCodesFilter'\nexport * from './ServiceByHcPartyPatientTagCodesFilter'\nexport * from './ServiceByIdsFilter'\nexport * from './ServiceBySecretForeignKeys'\nexport * from './UnionFilter'\nexport * from './UserByIdsFilter'\nexport * from './MaintenanceTaskByHcPartyAndIdentifiersFilter'\nexport * from './MaintenanceTaskByHcPartyAndTypeFilter'\nexport * from './MaintenanceTaskByIdsFilter'\nexport * from './MaintenanceTaskAfterDateFilter'\nexport * from './TopicByHcPartyFilter'\nexport * from './TopicByParticipantFilter'\nexport * from './MessageByHcPartyFilter'\nexport * from './MessageByHcPartyTransportGuidFilter'\nexport * from './LatestMessageByHcPartyTransportGuidFilter'\n\nexport class Filter {\n public static patient(): PatientFilterBuilder {\n return new PatientFilterBuilder()\n }\n}\n\nexport type AbstractFilter<T> =\n | (T extends Patient\n ? AbstractFilterPatient\n : T extends Contact\n ? AbstractFilterContact\n : T extends Service\n ? AbstractFilterService\n : T extends HealthcareParty\n ? AbstractFilterHealthcareParty\n : T extends Device\n ? AbstractFilterDevice\n : T extends MaintenanceTask\n ? AbstractFilterMaintenanceTask\n : T extends Code\n ? AbstractFilterCode\n : T extends HealthElement\n ? AbstractFilterHealthElement\n : T extends Insurance\n ? AbstractFilterInsurance\n : T extends Invoice\n ? AbstractFilterInvoice\n : T extends User\n ? AbstractFilterUser\n : T extends Tarification\n ? AbstractFilterPricing\n : never)\n | ConstantFilter<T>\n | IntersectionFilter<T>\n | UnionFilter<T>\n | ComplementFilter<T>\n\nconst f: AbstractFilterContact = new ComplementFilter<Contact>(new ContactByHcPartyFilter({}), new ContactByHcPartyFilter({}))\n\nabstract class FilterBuilder<T> {\n // This is the current generator for the filter, when we call build(), filterProvider() is going to be called\n filterProvider?: () => AbstractFilter<T>\n // This is the method that is called each time we chain a filter to another filter. The default behaviour is to\n // return a FilterBuilder with the provider set to the last element in the chain, except when we use combination\n // operators like or()/and()/… . After one of those, the composer is set to a function that will return a FilterBuilder\n\n protected constructor(\n filterProvider?: () => AbstractFilter<T>,\n composer?: (thisFilterBuilder: FilterBuilder<T>, otherFilterBuilder: FilterBuilder<T>) => FilterBuilder<T>\n ) {\n this.filterProvider = filterProvider\n composer && (this.composer = composer)\n }\n\n // that combines the existing filterBuilder with the filter definition we just added.\n composer: (thisFilterBuilder: FilterBuilder<T>, otherFilterBuilder: FilterBuilder<T>) => FilterBuilder<T> = (\n thisFilterBuilder: FilterBuilder<T>,\n otherFilterBuilder: FilterBuilder<T>\n ) => otherFilterBuilder\n\n abstract build(): AbstractFilter<T>\n\n abstract clone(\n filterProvider?: () => AbstractFilter<T>,\n composer?: (thisFilterBuilder: FilterBuilder<T>, otherFilterBuilder: FilterBuilder<T>) => FilterBuilder<T>\n ): FilterBuilder<T>\n\n listOf(elements: T[]): FilterBuilder<T> {\n return this.clone(() => new ConstantFilter<T>(elements) as AbstractFilter<T>)\n }\n\n /**\n * There are two ways of doing and, or, …\n *\n * 1) for (...) or (...) we use the syntax ... .or((builder) => builder...)\n * ex: youngerThan(65).or((b) => b.olderThan(18).and().gender(M)) means any gender < 65 or male > 18\n * 2) for ((...) or ...) we use the syntax ... .or().…\n * ex: youngerThan(65).or().olderThan(18).and().gender(M) means males between 18 and 65\n *\n * When 1) is used we do not have to wait for anything to provide a resolved builder that can later be combined with extra elements in the chain.\n * In other words, we can build the current filter chain up to the or/and/… and we can build what is inside the or/and/… brackets and we can set\n * the filterProvider of the returned Builder to () => UnionFilter([leftHand.build(), innerBrackets.build()]).\n *\n * When 2) is used, things get more tricky because we will have to do an or/and/… between what we have on the leftHand and with what we do not have\n * yet on the right hand. What we do in that situation is to set the filterProvider() to undefined because calling build() without having provided a\n * rightHand doesn't make sense. We set a composer that is going to be called the next time we chain a filter.\n *\n * @param filterBuilderFactory\n */\n\n and(filterBuilderFactory?: (it: FilterBuilder<T>) => FilterBuilder<T>): FilterBuilder<T> {\n const combiner = (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () =>\n new IntersectionFilter<T>([leftHandFilter, rightHandFilter]) as AbstractFilter<T>\n\n return filterBuilderFactory ? this.makeEagerLeftRightFilterBuilder(filterBuilderFactory, combiner) : this.makeLazyLeftRightFilterBuilder(combiner)\n }\n\n or(filterBuilderFactory?: (it: FilterBuilder<T>) => FilterBuilder<T>): FilterBuilder<T> {\n const combiner = (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () =>\n new UnionFilter<T>([leftHandFilter, rightHandFilter]) as AbstractFilter<T>\n\n return filterBuilderFactory ? this.makeEagerLeftRightFilterBuilder(filterBuilderFactory, combiner) : this.makeLazyLeftRightFilterBuilder(combiner)\n }\n\n minus(filterBuilderFactory?: (it: FilterBuilder<T>) => FilterBuilder<T>): FilterBuilder<T> {\n const combiner = (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () =>\n new ComplementFilter<T>(leftHandFilter, rightHandFilter) as AbstractFilter<T>\n\n return filterBuilderFactory ? this.makeEagerLeftRightFilterBuilder(filterBuilderFactory, combiner) : this.makeLazyLeftRightFilterBuilder(combiner)\n }\n\n private makeLazyLeftRightFilterBuilder(\n leftHandRightHandFiltersCombiner: (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () => AbstractFilter<T>\n ) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const leftHandFilterBuilder: FilterBuilder<T> = this\n const leftHandFilter = leftHandFilterBuilder.build() // Freeze the leftHand filter\n\n return leftHandFilterBuilder.filterProvider\n ? this.clone(\n undefined, //filter provider is indeterminate until we have performed a composition\n (unused: FilterBuilder<T>, rightHandFilterBuilder: FilterBuilder<T>) => {\n // because we freeze the leftHand in the state it is right now, we are not going to use its value when the composition occurs\n const rightHandFilter = rightHandFilterBuilder.build()\n\n return rightHandFilter\n ? this.clone(leftHandRightHandFiltersCombiner(leftHandFilter, rightHandFilter), rightHandFilterBuilder.composer)\n : rightHandFilterBuilder //Can this happen ?\n }\n )\n : this\n }\n\n private makeEagerLeftRightFilterBuilder(\n rightHandFilterBuilderFactory: (it: FilterBuilder<T>) => FilterBuilder<T>,\n leftHandRightHandFiltersCombiner: (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () => AbstractFilter<T>\n ) {\n const rightHandFilterBuilder = rightHandFilterBuilderFactory(this)\n return this.filterProvider ? this.clone(leftHandRightHandFiltersCombiner(this.build(), rightHandFilterBuilder.build())) : this\n }\n}\n\nclass PatientFilterBuilder extends FilterBuilder<Patient> {\n hcpId?: string\n\n constructor(\n filterProvider?: () => AbstractFilter<Patient>,\n hcpId?: string,\n composer?: (thisFilterBuilder: FilterBuilder<Patient>, otherFilterBuilder: FilterBuilder<Patient>) => FilterBuilder<Patient>\n ) {\n super(filterProvider, composer)\n this.hcpId = hcpId\n }\n\n clone(\n filterProvider?: () => AbstractFilter<Patient>,\n composer?: (thisFilterBuilder: FilterBuilder<Patient>, otherFilterBuilder: FilterBuilder<Patient>) => FilterBuilder<Patient>\n ): FilterBuilder<Patient> {\n return new PatientFilterBuilder(filterProvider, this.hcpId, composer)\n }\n\n listOf(elements: Patient[]): PatientFilterBuilder {\n return new PatientFilterBuilder(() => new ConstantFilter<Patient>(elements) as AbstractFilter<Patient>)\n }\n\n and(filterBuilderFactory?: (it: PatientFilterBuilder) => PatientFilterBuilder): PatientFilterBuilder {\n return super.and(filterBuilderFactory as any) as PatientFilterBuilder\n }\n\n or(filterBuilderFactory?: (it: PatientFilterBuilder) => PatientFilterBuilder): PatientFilterBuilder {\n return super.or(filterBuilderFactory as any) as PatientFilterBuilder\n }\n\n minus(filterBuilderFactory?: (it: PatientFilterBuilder) => PatientFilterBuilder): PatientFilterBuilder {\n return super.minus(filterBuilderFactory as any) as PatientFilterBuilder\n }\n\n forHcp(hcpId: string): PatientFilterBuilder {\n return this.composer(this, new PatientFilterBuilder(this.filterProvider, hcpId)) as PatientFilterBuilder\n }\n\n all(): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyFilter({ healthcarePartyId: this.hcpId }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n activePatients(): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyAndActiveFilter({ healthcarePartyId: this.hcpId, active: true }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n inactivePatients(): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyAndActiveFilter({ healthcarePartyId: this.hcpId, active: false }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n byAddress(searchString?: string, postalCode?: string, houseNumber?: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyAndAddressFilter({\n healthcarePartyId: this.hcpId,\n searchString,\n postalCode,\n houseNumber,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n withExternalId(externalId: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyAndExternalIdFilter({\n healthcarePartyId: this.hcpId,\n externalId: externalId,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n withSsins(ssins: string[]): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyAndSsinsFilter({ healthcarePartyId: this.hcpId, ssins: ssins }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n withDateOfBirthBetween(from?: number, to?: number): PatientFilterBuilder {\n return this.composer(\n this,\n this.clone(\n () =>\n new PatientByHcPartyDateOfBirthBetweenFilter({\n healthcarePartyId: this.hcpId,\n minDateOfBirth: from,\n maxDateOfBirth: to,\n })\n )\n ) as PatientFilterBuilder\n }\n\n byDateOfBirth(dateOfBirth: number): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyDateOfBirthFilter({\n healthcarePartyId: this.hcpId,\n dateOfBirth: dateOfBirth,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n olderThan(age: number): PatientFilterBuilder {\n return this.withDateOfBirthBetween(10000101, parseInt(format(add(new Date(), { years: -age }), 'yyyyMMdd')))\n }\n\n youngerThan(age: number): PatientFilterBuilder {\n return this.withDateOfBirthBetween(parseInt(format(add(new Date(), { years: -age }), 'yyyyMMdd')), 99991231)\n }\n\n byGenderEducationProfession(gender?: GenderEnum, education?: string, profession?: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyGenderEducationProfessionFilter({\n healthcarePartyId: this.hcpId,\n gender: gender,\n education: education,\n profession: profession,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n byIds(ids: string[]): PatientFilterBuilder {\n return this.composer(this, new PatientFilterBuilder(() => new PatientByIdsFilter({ ids: ids }), this.hcpId)) as PatientFilterBuilder\n }\n\n searchByName(name: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyNameContainsFuzzyFilter({\n healthcarePartyId: this.hcpId,\n searchString: name,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n build(): AbstractFilter<Patient> {\n return this.filterProvider?.() || this.all().build()\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icure/api",
3
- "version": "8.11.0",
3
+ "version": "8.12.0",
4
4
  "description": "Typescript version of iCure standalone API client",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -1 +0,0 @@
1
- export {};
@@ -1,131 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const test_1 = require("@playwright/test");
13
- const http = require("http");
14
- const fs = require("fs");
15
- const path = require("path");
16
- const PROJECT_ROOT = path.resolve(__dirname, '..', '..');
17
- const MIME_TYPES = {
18
- '.html': 'text/html',
19
- '.js': 'application/javascript',
20
- '.wasm': 'application/wasm',
21
- '.css': 'text/css',
22
- };
23
- function startServer() {
24
- return new Promise((resolve) => {
25
- const server = http.createServer((req, res) => {
26
- var _a;
27
- const urlPath = ((_a = req.url) === null || _a === void 0 ? void 0 : _a.split('?')[0]) || '/';
28
- const filePath = path.join(PROJECT_ROOT, urlPath);
29
- if (!fs.existsSync(filePath) || fs.statSync(filePath).isDirectory()) {
30
- res.writeHead(404);
31
- res.end('Not found');
32
- return;
33
- }
34
- const ext = path.extname(filePath);
35
- const contentType = MIME_TYPES[ext] || 'application/octet-stream';
36
- res.writeHead(200, {
37
- 'Content-Type': contentType,
38
- 'Cross-Origin-Opener-Policy': 'same-origin',
39
- 'Cross-Origin-Embedder-Policy': 'require-corp',
40
- });
41
- fs.createReadStream(filePath).pipe(res);
42
- });
43
- server.listen(0, () => {
44
- const addr = server.address();
45
- const port = typeof addr === 'object' && addr ? addr.port : 0;
46
- resolve({ server, port });
47
- });
48
- });
49
- }
50
- const IMPLS = ['jsInline', 'jsWorker', 'wasm'];
51
- const IMPL_LABELS = {
52
- jsInline: 'JS Inline (LZMA1)',
53
- jsWorker: 'JS Worker (LZMA1)',
54
- wasm: 'WASM (LZMA2/XZ)',
55
- };
56
- function fmtMs(ms) {
57
- if (ms >= 1000)
58
- return (ms / 1000).toFixed(2) + ' s';
59
- return ms.toFixed(2) + ' ms';
60
- }
61
- function pad(s, w) {
62
- return s.length >= w ? s : ' '.repeat(w - s.length) + s;
63
- }
64
- const WORKER_FILES_DIR = path.join(__dirname, 'worker-files');
65
- (0, test_1.test)('LZMA benchmark: JS Inline vs JS Worker vs WASM', (_a) => __awaiter(void 0, [_a], void 0, function* ({ page }) {
66
- test_1.test.setTimeout(3600000); // 60 minutes for 128MB payloads
67
- const { server, port } = yield startServer();
68
- try {
69
- yield page.goto(`http://localhost:${port}/test/benchmarks/lzma-benchmark.html`);
70
- yield page.waitForFunction(() => window.__benchmarkResults != null, null, { timeout: 3300000 });
71
- const results = yield page.evaluate(() => window.__benchmarkResults);
72
- // Save test files to worker-files directory (skip large payloads with no exported files)
73
- fs.mkdirSync(WORKER_FILES_DIR, { recursive: true });
74
- for (const r of results) {
75
- if (!r.files)
76
- continue;
77
- fs.writeFileSync(path.join(WORKER_FILES_DIR, `${r.tag}.bin`), Buffer.from(r.files.reference, 'base64'));
78
- fs.writeFileSync(path.join(WORKER_FILES_DIR, `${r.tag}.lzma`), Buffer.from(r.files.lzmaJs, 'base64'));
79
- fs.writeFileSync(path.join(WORKER_FILES_DIR, `${r.tag}.xz`), Buffer.from(r.files.lzmaWasm, 'base64'));
80
- console.log(`Saved ${r.tag}.bin, ${r.tag}.lzma, ${r.tag}.xz to ${WORKER_FILES_DIR}`);
81
- }
82
- // Print results
83
- const W = 130;
84
- console.log('\n' + '='.repeat(W));
85
- console.log('LZMA Benchmark: JS Inline vs JS Worker vs WASM');
86
- console.log('='.repeat(W));
87
- for (const r of results) {
88
- console.log(`\n--- ${r.size} (${r.originalBytes.toLocaleString()} bytes)${r.skipJs ? ' [WASM only]' : ''} ---\n`);
89
- const activeImpls = r.skipJs ? ['wasm'] : IMPLS;
90
- for (const op of ['compress', 'decompress']) {
91
- console.log(` ${op.toUpperCase()}:`);
92
- console.log(` ${'Implementation'.padEnd(22)} ${pad('Median', 12)} ${pad('Mean', 12)} ${pad('Min', 12)} ${pad('Max', 12)} ${pad('P95', 12)} ${pad('Size', 10)} ${pad('Ratio', 8)} ${pad('OK', 4)}`);
93
- console.log(' ' + '-'.repeat(W - 4));
94
- const medians = activeImpls.map((impl) => r[impl][op].median);
95
- const fastestMedian = Math.min(...medians);
96
- for (const impl of activeImpls) {
97
- const s = r[impl][op];
98
- const isFastest = s.median === fastestMedian;
99
- const marker = isFastest ? ' *' : ' ';
100
- const compSize = op === 'compress' ? String(r[impl].compressedSize) : '-';
101
- const ratio = op === 'compress' ? r[impl].ratio + '%' : '-';
102
- console.log(` ${marker}${IMPL_LABELS[impl].padEnd(22)} ${pad(fmtMs(s.median), 12)} ${pad(fmtMs(s.mean), 12)} ${pad(fmtMs(s.min), 12)} ${pad(fmtMs(s.max), 12)} ${pad(fmtMs(s.p95), 12)} ${pad(compSize, 10)} ${pad(ratio, 8)} ${pad(r[impl].correct ? 'OK' : 'FAIL', 4)}`);
103
- }
104
- if (!r.skipJs) {
105
- const jsInlineMs = r.jsInline[op].median;
106
- const jsWorkerMs = r.jsWorker[op].median;
107
- const wasmMs = r.wasm[op].median;
108
- console.log('');
109
- console.log(` Speedup vs JS Inline: Worker ${(jsInlineMs / jsWorkerMs).toFixed(1)}x | WASM ${(jsInlineMs / wasmMs).toFixed(1)}x`);
110
- console.log(` Speedup vs JS Worker: WASM ${(jsWorkerMs / wasmMs).toFixed(1)}x`);
111
- }
112
- console.log('');
113
- }
114
- }
115
- console.log('='.repeat(W));
116
- console.log('* = fastest for that operation/size');
117
- console.log('='.repeat(W));
118
- // Assertions
119
- for (const r of results) {
120
- if (!r.skipJs) {
121
- (0, test_1.expect)(r.jsInline.correct).toBe(true);
122
- (0, test_1.expect)(r.jsWorker.correct).toBe(true);
123
- }
124
- (0, test_1.expect)(r.wasm.correct).toBe(true);
125
- }
126
- }
127
- finally {
128
- server.close();
129
- }
130
- }));
131
- //# sourceMappingURL=lzma-benchmark.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lzma-benchmark.spec.js","sourceRoot":"","sources":["../../../test/benchmarks/lzma-benchmark.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from '@playwright/test'\nimport * as http from 'http'\nimport * as fs from 'fs'\nimport * as path from 'path'\n\nconst PROJECT_ROOT = path.resolve(__dirname, '..', '..')\n\nconst MIME_TYPES: Record<string, string> = {\n '.html': 'text/html',\n '.js': 'application/javascript',\n '.wasm': 'application/wasm',\n '.css': 'text/css',\n}\n\nfunction startServer(): Promise<{ server: http.Server; port: number }> {\n return new Promise((resolve) => {\n const server = http.createServer((req, res) => {\n const urlPath = req.url?.split('?')[0] || '/'\n const filePath = path.join(PROJECT_ROOT, urlPath)\n\n if (!fs.existsSync(filePath) || fs.statSync(filePath).isDirectory()) {\n res.writeHead(404)\n res.end('Not found')\n return\n }\n\n const ext = path.extname(filePath)\n const contentType = MIME_TYPES[ext] || 'application/octet-stream'\n\n res.writeHead(200, {\n 'Content-Type': contentType,\n 'Cross-Origin-Opener-Policy': 'same-origin',\n 'Cross-Origin-Embedder-Policy': 'require-corp',\n })\n fs.createReadStream(filePath).pipe(res)\n })\n\n server.listen(0, () => {\n const addr = server.address()\n const port = typeof addr === 'object' && addr ? addr.port : 0\n resolve({ server, port })\n })\n })\n}\n\ninterface Stats {\n median: number\n mean: number\n min: number\n max: number\n p95: number\n}\n\ninterface ImplResult {\n compress: Stats\n decompress: Stats\n compressedSize: number\n ratio: string\n correct: boolean\n}\n\ninterface BenchmarkResult {\n size: string\n tag: string\n skipJs: boolean\n originalBytes: number\n files: {\n reference: string // base64\n lzmaJs: string // base64\n lzmaWasm: string // base64\n } | null\n jsInline: ImplResult\n jsWorker: ImplResult\n wasm: ImplResult\n}\n\nconst IMPLS = ['jsInline', 'jsWorker', 'wasm'] as const\nconst IMPL_LABELS: Record<string, string> = {\n jsInline: 'JS Inline (LZMA1)',\n jsWorker: 'JS Worker (LZMA1)',\n wasm: 'WASM (LZMA2/XZ)',\n}\n\nfunction fmtMs(ms: number): string {\n if (ms >= 1000) return (ms / 1000).toFixed(2) + ' s'\n return ms.toFixed(2) + ' ms'\n}\n\nfunction pad(s: string, w: number): string {\n return s.length >= w ? s : ' '.repeat(w - s.length) + s\n}\n\nconst WORKER_FILES_DIR = path.join(__dirname, 'worker-files')\n\ntest('LZMA benchmark: JS Inline vs JS Worker vs WASM', async ({ page }) => {\n test.setTimeout(3_600_000) // 60 minutes for 128MB payloads\n\n const { server, port } = await startServer()\n\n try {\n await page.goto(`http://localhost:${port}/test/benchmarks/lzma-benchmark.html`)\n\n await page.waitForFunction(() => (window as any).__benchmarkResults != null, null, { timeout: 3_300_000 })\n\n const results: BenchmarkResult[] = await page.evaluate(() => (window as any).__benchmarkResults)\n\n // Save test files to worker-files directory (skip large payloads with no exported files)\n fs.mkdirSync(WORKER_FILES_DIR, { recursive: true })\n for (const r of results) {\n if (!r.files) continue\n fs.writeFileSync(path.join(WORKER_FILES_DIR, `${r.tag}.bin`), Buffer.from(r.files.reference, 'base64'))\n fs.writeFileSync(path.join(WORKER_FILES_DIR, `${r.tag}.lzma`), Buffer.from(r.files.lzmaJs, 'base64'))\n fs.writeFileSync(path.join(WORKER_FILES_DIR, `${r.tag}.xz`), Buffer.from(r.files.lzmaWasm, 'base64'))\n console.log(`Saved ${r.tag}.bin, ${r.tag}.lzma, ${r.tag}.xz to ${WORKER_FILES_DIR}`)\n }\n\n // Print results\n const W = 130\n console.log('\\n' + '='.repeat(W))\n console.log('LZMA Benchmark: JS Inline vs JS Worker vs WASM')\n console.log('='.repeat(W))\n\n for (const r of results) {\n console.log(`\\n--- ${r.size} (${r.originalBytes.toLocaleString()} bytes)${r.skipJs ? ' [WASM only]' : ''} ---\\n`)\n\n const activeImpls = r.skipJs ? (['wasm'] as const) : IMPLS\n\n for (const op of ['compress', 'decompress'] as const) {\n console.log(` ${op.toUpperCase()}:`)\n console.log(\n ` ${'Implementation'.padEnd(22)} ${pad('Median', 12)} ${pad('Mean', 12)} ${pad('Min', 12)} ${pad('Max', 12)} ${pad('P95', 12)} ${pad('Size', 10)} ${pad('Ratio', 8)} ${pad('OK', 4)}`\n )\n console.log(' ' + '-'.repeat(W - 4))\n\n const medians = activeImpls.map((impl) => r[impl][op].median)\n const fastestMedian = Math.min(...medians)\n\n for (const impl of activeImpls) {\n const s = r[impl][op]\n const isFastest = s.median === fastestMedian\n const marker = isFastest ? ' *' : ' '\n const compSize = op === 'compress' ? String(r[impl].compressedSize) : '-'\n const ratio = op === 'compress' ? r[impl].ratio + '%' : '-'\n console.log(\n ` ${marker}${IMPL_LABELS[impl].padEnd(22)} ${pad(fmtMs(s.median), 12)} ${pad(fmtMs(s.mean), 12)} ${pad(fmtMs(s.min), 12)} ${pad(fmtMs(s.max), 12)} ${pad(fmtMs(s.p95), 12)} ${pad(compSize, 10)} ${pad(ratio, 8)} ${pad(r[impl].correct ? 'OK' : 'FAIL', 4)}`\n )\n }\n\n if (!r.skipJs) {\n const jsInlineMs = r.jsInline[op].median\n const jsWorkerMs = r.jsWorker[op].median\n const wasmMs = r.wasm[op].median\n\n console.log('')\n console.log(` Speedup vs JS Inline: Worker ${(jsInlineMs / jsWorkerMs).toFixed(1)}x | WASM ${(jsInlineMs / wasmMs).toFixed(1)}x`)\n console.log(` Speedup vs JS Worker: WASM ${(jsWorkerMs / wasmMs).toFixed(1)}x`)\n }\n console.log('')\n }\n }\n\n console.log('='.repeat(W))\n console.log('* = fastest for that operation/size')\n console.log('='.repeat(W))\n\n // Assertions\n for (const r of results) {\n if (!r.skipJs) {\n expect(r.jsInline.correct).toBe(true)\n expect(r.jsWorker.correct).toBe(true)\n }\n expect(r.wasm.correct).toBe(true)\n }\n } finally {\n server.close()\n }\n})\n"]}
@@ -1 +0,0 @@
1
- export {};