@icure/api 8.10.1 → 8.11.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 (291) hide show
  1. package/icc-api/api/IccPatientApi.d.ts +1 -1
  2. package/icc-api/api/IccPatientApi.js +4 -2
  3. package/icc-api/api/IccPatientApi.js.map +1 -1
  4. package/icc-api/api/IccReceiptApi.js +8 -2
  5. package/icc-api/api/IccReceiptApi.js.map +1 -1
  6. package/icc-x-api/crypto/ExtendedApisUtilsImpl.d.ts +11 -0
  7. package/icc-x-api/crypto/ExtendedApisUtilsImpl.js +75 -13
  8. package/icc-x-api/crypto/ExtendedApisUtilsImpl.js.map +1 -1
  9. package/icc-x-api/crypto/SecurityMetadataDecryptor.d.ts +14 -0
  10. package/icc-x-api/crypto/SecurityMetadataDecryptor.js +28 -0
  11. package/icc-x-api/crypto/SecurityMetadataDecryptor.js.map +1 -1
  12. package/icc-x-api/icc-patient-x-api.d.ts +4 -1
  13. package/icc-x-api/icc-patient-x-api.js +5 -2
  14. package/icc-x-api/icc-patient-x-api.js.map +1 -1
  15. package/package.json +1 -1
  16. package/test/benchmarks/lzma-benchmark.spec.d.ts +1 -0
  17. package/test/benchmarks/lzma-benchmark.spec.js +131 -0
  18. package/test/benchmarks/lzma-benchmark.spec.js.map +1 -0
  19. package/test/benchmarks/lzma-compat.spec.d.ts +1 -0
  20. package/test/benchmarks/lzma-compat.spec.js +187 -0
  21. package/test/benchmarks/lzma-compat.spec.js.map +1 -0
  22. package/test/benchmarks/playwright.config.d.ts +2 -0
  23. package/test/benchmarks/playwright.config.js +18 -0
  24. package/test/benchmarks/playwright.config.js.map +1 -0
  25. package/test/icc-api/api/IccAgendaApi.d.ts +1 -0
  26. package/test/icc-api/api/IccAgendaApi.js +64 -0
  27. package/test/icc-api/api/IccAgendaApi.js.map +1 -0
  28. package/test/icc-api/api/IccAnonymousAccessApi.d.ts +1 -0
  29. package/test/icc-api/api/IccAnonymousAccessApi.js +58 -0
  30. package/test/icc-api/api/IccAnonymousAccessApi.js.map +1 -0
  31. package/test/icc-api/api/IccCalendarItemApi.d.ts +1 -0
  32. package/test/icc-api/api/IccCalendarItemApi.js +67 -0
  33. package/test/icc-api/api/IccCalendarItemApi.js.map +1 -0
  34. package/test/icc-api/api/IccCalendarItemTypeApi.d.ts +1 -0
  35. package/test/icc-api/api/IccCalendarItemTypeApi.js +96 -0
  36. package/test/icc-api/api/IccCalendarItemTypeApi.js.map +1 -0
  37. package/test/icc-api/api/IccCodeApi.d.ts +1 -0
  38. package/test/icc-api/api/IccCodeApi.js +38 -0
  39. package/test/icc-api/api/IccCodeApi.js.map +1 -0
  40. package/test/icc-api/api/IccDocumentApi.d.ts +1 -0
  41. package/test/icc-api/api/IccDocumentApi.js +199 -0
  42. package/test/icc-api/api/IccDocumentApi.js.map +1 -0
  43. package/test/icc-api/api/IccGroupApi.d.ts +1 -0
  44. package/test/icc-api/api/IccGroupApi.js +50 -0
  45. package/test/icc-api/api/IccGroupApi.js.map +1 -0
  46. package/test/icc-api/api/IccKeywordApi.d.ts +1 -0
  47. package/test/icc-api/api/IccKeywordApi.js +64 -0
  48. package/test/icc-api/api/IccKeywordApi.js.map +1 -0
  49. package/test/icc-api/api/IccMedicalLocationApi.d.ts +1 -0
  50. package/test/icc-api/api/IccMedicalLocationApi.js +64 -0
  51. package/test/icc-api/api/IccMedicalLocationApi.js.map +1 -0
  52. package/test/icc-api/api/IccPlaceApi.d.ts +1 -0
  53. package/test/icc-api/api/IccPlaceApi.js +64 -0
  54. package/test/icc-api/api/IccPlaceApi.js.map +1 -0
  55. package/test/icc-api/api/IccRecoveryDataApi.d.ts +1 -0
  56. package/test/icc-api/api/IccRecoveryDataApi.js +95 -0
  57. package/test/icc-api/api/IccRecoveryDataApi.js.map +1 -0
  58. package/test/icc-api/api/IccRoleApi.d.ts +1 -0
  59. package/test/icc-api/api/IccRoleApi.js +34 -0
  60. package/test/icc-api/api/IccRoleApi.js.map +1 -0
  61. package/test/icc-api/api/IccUserApi.d.ts +1 -0
  62. package/test/icc-api/api/IccUserApi.js +96 -0
  63. package/test/icc-api/api/IccUserApi.js.map +1 -0
  64. package/test/icc-api/e2e/IccCalendarItemApi.d.ts +1 -0
  65. package/test/icc-api/e2e/IccCalendarItemApi.js +46 -0
  66. package/test/icc-api/e2e/IccCalendarItemApi.js.map +1 -0
  67. package/test/icc-api/model/modelHelpersTest.d.ts +1 -0
  68. package/test/icc-api/model/modelHelpersTest.js +45 -0
  69. package/test/icc-api/model/modelHelpersTest.js.map +1 -0
  70. package/test/icc-x-api/auth/group-switch-test.d.ts +1 -0
  71. package/test/icc-x-api/auth/group-switch-test.js +81 -0
  72. package/test/icc-x-api/auth/group-switch-test.js.map +1 -0
  73. package/test/icc-x-api/auth/jwt-concurrency-test.d.ts +2 -0
  74. package/test/icc-x-api/auth/jwt-concurrency-test.js +112 -0
  75. package/test/icc-x-api/auth/jwt-concurrency-test.js.map +1 -0
  76. package/test/icc-x-api/auth/jwt-provider-test.d.ts +1 -0
  77. package/test/icc-x-api/auth/jwt-provider-test.js +197 -0
  78. package/test/icc-x-api/auth/jwt-provider-test.js.map +1 -0
  79. package/test/icc-x-api/auth/smart-auth-provider-test.d.ts +1 -0
  80. package/test/icc-x-api/auth/smart-auth-provider-test.js +224 -0
  81. package/test/icc-x-api/auth/smart-auth-provider-test.js.map +1 -0
  82. package/test/icc-x-api/autofix-anonymity-test.d.ts +1 -0
  83. package/test/icc-x-api/autofix-anonymity-test.js +122 -0
  84. package/test/icc-x-api/autofix-anonymity-test.js.map +1 -0
  85. package/test/icc-x-api/confidential-entities-test.d.ts +1 -0
  86. package/test/icc-x-api/confidential-entities-test.js +168 -0
  87. package/test/icc-x-api/confidential-entities-test.js.map +1 -0
  88. package/test/icc-x-api/crud/comprehensive-crud-test.d.ts +1 -0
  89. package/test/icc-x-api/crud/comprehensive-crud-test.js +276 -0
  90. package/test/icc-x-api/crud/comprehensive-crud-test.js.map +1 -0
  91. package/test/icc-x-api/crud/entities-crud-test-interface.d.ts +16 -0
  92. package/test/icc-x-api/crud/entities-crud-test-interface.js +407 -0
  93. package/test/icc-x-api/crud/entities-crud-test-interface.js.map +1 -0
  94. package/test/icc-x-api/crypto/anonymous-delegations-test.d.ts +1 -0
  95. package/test/icc-x-api/crypto/anonymous-delegations-test.js +587 -0
  96. package/test/icc-x-api/crypto/anonymous-delegations-test.js.map +1 -0
  97. package/test/icc-x-api/crypto/concurrency.d.ts +1 -0
  98. package/test/icc-x-api/crypto/concurrency.js +35 -0
  99. package/test/icc-x-api/crypto/concurrency.js.map +1 -0
  100. package/test/icc-x-api/crypto/crypto-utils.d.ts +1 -0
  101. package/test/icc-x-api/crypto/crypto-utils.js +79 -0
  102. package/test/icc-x-api/crypto/crypto-utils.js.map +1 -0
  103. package/test/icc-x-api/crypto/cryptoTest.d.ts +2 -0
  104. package/test/icc-x-api/crypto/cryptoTest.js +402 -0
  105. package/test/icc-x-api/crypto/cryptoTest.js.map +1 -0
  106. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.d.ts +1 -0
  107. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js +166 -0
  108. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js.map +1 -0
  109. package/test/icc-x-api/crypto/exchange-data-manager-test.d.ts +1 -0
  110. package/test/icc-x-api/crypto/exchange-data-manager-test.js +674 -0
  111. package/test/icc-x-api/crypto/exchange-data-manager-test.js.map +1 -0
  112. package/test/icc-x-api/crypto/full-crypto-test.d.ts +1 -0
  113. package/test/icc-x-api/crypto/full-crypto-test.js +454 -0
  114. package/test/icc-x-api/crypto/full-crypto-test.js.map +1 -0
  115. package/test/icc-x-api/crypto/legacy-metadata-migration-test.d.ts +1 -0
  116. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js +379 -0
  117. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js.map +1 -0
  118. package/test/icc-x-api/crypto/secure-delegations-manager-test.d.ts +1 -0
  119. package/test/icc-x-api/crypto/secure-delegations-manager-test.js +278 -0
  120. package/test/icc-x-api/crypto/secure-delegations-manager-test.js.map +1 -0
  121. package/test/icc-x-api/crypto/shamir.d.ts +2 -0
  122. package/test/icc-x-api/crypto/shamir.js +167 -0
  123. package/test/icc-x-api/crypto/shamir.js.map +1 -0
  124. package/test/icc-x-api/crypto/share-deduplication-test.d.ts +1 -0
  125. package/test/icc-x-api/crypto/share-deduplication-test.js +250 -0
  126. package/test/icc-x-api/crypto/share-deduplication-test.js.map +1 -0
  127. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.d.ts +1 -0
  128. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js +71 -0
  129. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js.map +1 -0
  130. package/test/icc-x-api/crypto/soft-deleted-data-owners.d.ts +2 -0
  131. package/test/icc-x-api/crypto/soft-deleted-data-owners.js +113 -0
  132. package/test/icc-x-api/crypto/soft-deleted-data-owners.js.map +1 -0
  133. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.d.ts +1 -0
  134. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js +246 -0
  135. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js.map +1 -0
  136. package/test/icc-x-api/entity-with-attachments-api-test.d.ts +1 -0
  137. package/test/icc-x-api/entity-with-attachments-api-test.js +142 -0
  138. package/test/icc-x-api/entity-with-attachments-api-test.js.map +1 -0
  139. package/test/icc-x-api/filters/filters.d.ts +1 -0
  140. package/test/icc-x-api/filters/filters.js +49 -0
  141. package/test/icc-x-api/filters/filters.js.map +1 -0
  142. package/test/icc-x-api/filters/healthelement.d.ts +1 -0
  143. package/test/icc-x-api/filters/healthelement.js +333 -0
  144. package/test/icc-x-api/filters/healthelement.js.map +1 -0
  145. package/test/icc-x-api/icc-accesslog-x-api.d.ts +1 -0
  146. package/test/icc-x-api/icc-accesslog-x-api.js +106 -0
  147. package/test/icc-x-api/icc-accesslog-x-api.js.map +1 -0
  148. package/test/icc-x-api/icc-application-settings-x-api.d.ts +1 -0
  149. package/test/icc-x-api/icc-application-settings-x-api.js +91 -0
  150. package/test/icc-x-api/icc-application-settings-x-api.js.map +1 -0
  151. package/test/icc-x-api/icc-auth-api.d.ts +1 -0
  152. package/test/icc-x-api/icc-auth-api.js +47 -0
  153. package/test/icc-x-api/icc-auth-api.js.map +1 -0
  154. package/test/icc-x-api/icc-calendar-item-x-api.d.ts +1 -0
  155. package/test/icc-x-api/icc-calendar-item-x-api.js +150 -0
  156. package/test/icc-x-api/icc-calendar-item-x-api.js.map +1 -0
  157. package/test/icc-x-api/icc-code-x-api-test.d.ts +1 -0
  158. package/test/icc-x-api/icc-code-x-api-test.js +74 -0
  159. package/test/icc-x-api/icc-code-x-api-test.js.map +1 -0
  160. package/test/icc-x-api/icc-contact-x-api.d.ts +1 -0
  161. package/test/icc-x-api/icc-contact-x-api.js +355 -0
  162. package/test/icc-x-api/icc-contact-x-api.js.map +1 -0
  163. package/test/icc-x-api/icc-document-x-api.d.ts +1 -0
  164. package/test/icc-x-api/icc-document-x-api.js +76 -0
  165. package/test/icc-x-api/icc-document-x-api.js.map +1 -0
  166. package/test/icc-x-api/icc-form-x-api.d.ts +1 -0
  167. package/test/icc-x-api/icc-form-x-api.js +413 -0
  168. package/test/icc-x-api/icc-form-x-api.js.map +1 -0
  169. package/test/icc-x-api/icc-hcparty-x-api-test.d.ts +1 -0
  170. package/test/icc-x-api/icc-hcparty-x-api-test.js +43 -0
  171. package/test/icc-x-api/icc-hcparty-x-api-test.js.map +1 -0
  172. package/test/icc-x-api/icc-helement-x-api-test.d.ts +1 -0
  173. package/test/icc-x-api/icc-helement-x-api-test.js +155 -0
  174. package/test/icc-x-api/icc-helement-x-api-test.js.map +1 -0
  175. package/test/icc-x-api/icc-invoice-x-api.d.ts +1 -0
  176. package/test/icc-x-api/icc-invoice-x-api.js +99 -0
  177. package/test/icc-x-api/icc-invoice-x-api.js.map +1 -0
  178. package/test/icc-x-api/icc-maintenance-task-x-api-test.d.ts +1 -0
  179. package/test/icc-x-api/icc-maintenance-task-x-api-test.js +222 -0
  180. package/test/icc-x-api/icc-maintenance-task-x-api-test.js.map +1 -0
  181. package/test/icc-x-api/icc-message-x-api.d.ts +1 -0
  182. package/test/icc-x-api/icc-message-x-api.js +54 -0
  183. package/test/icc-x-api/icc-message-x-api.js.map +1 -0
  184. package/test/icc-x-api/icc-patient-x-api-test.d.ts +1 -0
  185. package/test/icc-x-api/icc-patient-x-api-test.js +209 -0
  186. package/test/icc-x-api/icc-patient-x-api-test.js.map +1 -0
  187. package/test/icc-x-api/icc-recovery-x-api.d.ts +1 -0
  188. package/test/icc-x-api/icc-recovery-x-api.js +175 -0
  189. package/test/icc-x-api/icc-recovery-x-api.js.map +1 -0
  190. package/test/icc-x-api/icc-topic-x-api.d.ts +1 -0
  191. package/test/icc-x-api/icc-topic-x-api.js +269 -0
  192. package/test/icc-x-api/icc-topic-x-api.js.map +1 -0
  193. package/test/icc-x-api/icc-user-x-api-test.d.ts +1 -0
  194. package/test/icc-x-api/icc-user-x-api-test.js +99 -0
  195. package/test/icc-x-api/icc-user-x-api-test.js.map +1 -0
  196. package/test/icc-x-api/keyless-api.d.ts +1 -0
  197. package/test/icc-x-api/keyless-api.js +125 -0
  198. package/test/icc-x-api/keyless-api.js.map +1 -0
  199. package/test/icc-x-api/patient-user.d.ts +2 -0
  200. package/test/icc-x-api/patient-user.js +103 -0
  201. package/test/icc-x-api/patient-user.js.map +1 -0
  202. package/test/icc-x-api/storage/storage.d.ts +1 -0
  203. package/test/icc-x-api/storage/storage.js +48 -0
  204. package/test/icc-x-api/storage/storage.js.map +1 -0
  205. package/test/icc-x-api/test-api-no-parent.d.ts +1 -0
  206. package/test/icc-x-api/test-api-no-parent.js +79 -0
  207. package/test/icc-x-api/test-api-no-parent.js.map +1 -0
  208. package/test/icc-x-api/test-legacy-data-support.d.ts +1 -0
  209. package/test/icc-x-api/test-legacy-data-support.js +375 -0
  210. package/test/icc-x-api/test-legacy-data-support.js.map +1 -0
  211. package/test/icc-x-api/utils/date-encode-test.d.ts +1 -0
  212. package/test/icc-x-api/utils/date-encode-test.js +150 -0
  213. package/test/icc-x-api/utils/date-encode-test.js.map +1 -0
  214. package/test/icc-x-api/utils/graph-test.d.ts +1 -0
  215. package/test/icc-x-api/utils/graph-test.js +54 -0
  216. package/test/icc-x-api/utils/graph-test.js.map +1 -0
  217. package/test/icc-x-api/utils/lru-temporised-async-cache-test.d.ts +1 -0
  218. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js +364 -0
  219. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js.map +1 -0
  220. package/test/icc-x-api/utils/lzma-benchmark-test.d.ts +1 -0
  221. package/test/icc-x-api/utils/lzma-benchmark-test.js +132 -0
  222. package/test/icc-x-api/utils/lzma-benchmark-test.js.map +1 -0
  223. package/test/icc-x-api/utils/lzma-compat-test.d.ts +1 -0
  224. package/test/icc-x-api/utils/lzma-compat-test.js +218 -0
  225. package/test/icc-x-api/utils/lzma-compat-test.js.map +1 -0
  226. package/test/icc-x-api/utils/mutex-test.d.ts +1 -0
  227. package/test/icc-x-api/utils/mutex-test.js +114 -0
  228. package/test/icc-x-api/utils/mutex-test.js.map +1 -0
  229. package/test/icc-x-api/utils/to-moment-test.d.ts +1 -0
  230. package/test/icc-x-api/utils/to-moment-test.js +110 -0
  231. package/test/icc-x-api/utils/to-moment-test.js.map +1 -0
  232. package/test/support/CSM-185.d.ts +1 -0
  233. package/test/support/CSM-185.js +124 -0
  234. package/test/support/CSM-185.js.map +1 -0
  235. package/test/support/CSM-243.d.ts +1 -0
  236. package/test/support/CSM-243.js +120 -0
  237. package/test/support/CSM-243.js.map +1 -0
  238. package/test/support/CSM-543.d.ts +1 -0
  239. package/test/support/CSM-543.js +164 -0
  240. package/test/support/CSM-543.js.map +1 -0
  241. package/test/support/CSM-729.d.ts +1 -0
  242. package/test/support/CSM-729.js +225 -0
  243. package/test/support/CSM-729.js.map +1 -0
  244. package/test/support/CSM-814.d.ts +1 -0
  245. package/test/support/CSM-814.js +475 -0
  246. package/test/support/CSM-814.js.map +1 -0
  247. package/test/support/CSM-87.d.ts +0 -0
  248. package/test/support/CSM-87.js +21 -0
  249. package/test/support/CSM-87.js.map +1 -0
  250. package/test/support/CSM-93.d.ts +1 -0
  251. package/test/support/CSM-93.js +112 -0
  252. package/test/support/CSM-93.js.map +1 -0
  253. package/test/utils/FakeDataOwnerApi.d.ts +32 -0
  254. package/test/utils/FakeDataOwnerApi.js +136 -0
  255. package/test/utils/FakeDataOwnerApi.js.map +1 -0
  256. package/test/utils/FakeEncryptionKeysManager.d.ts +36 -0
  257. package/test/utils/FakeEncryptionKeysManager.js +97 -0
  258. package/test/utils/FakeEncryptionKeysManager.js.map +1 -0
  259. package/test/utils/FakeExchangeDataApi.d.ts +32 -0
  260. package/test/utils/FakeExchangeDataApi.js +92 -0
  261. package/test/utils/FakeExchangeDataApi.js.map +1 -0
  262. package/test/utils/FakeExchangeDataManager.d.ts +48 -0
  263. package/test/utils/FakeExchangeDataManager.js +82 -0
  264. package/test/utils/FakeExchangeDataManager.js.map +1 -0
  265. package/test/utils/FakeExchangeDataMapManager.d.ts +12 -0
  266. package/test/utils/FakeExchangeDataMapManager.js +38 -0
  267. package/test/utils/FakeExchangeDataMapManager.js.map +1 -0
  268. package/test/utils/FakeGenericApi.d.ts +16 -0
  269. package/test/utils/FakeGenericApi.js +65 -0
  270. package/test/utils/FakeGenericApi.js.map +1 -0
  271. package/test/utils/KeylessCryptoStrategies.d.ts +23 -0
  272. package/test/utils/KeylessCryptoStrategies.js +26 -0
  273. package/test/utils/KeylessCryptoStrategies.js.map +1 -0
  274. package/test/utils/TestApi.d.ts +3 -0
  275. package/test/utils/TestApi.js +30 -0
  276. package/test/utils/TestApi.js.map +1 -0
  277. package/test/utils/TestCollectionUtils.d.ts +1 -0
  278. package/test/utils/TestCollectionUtils.js +310 -0
  279. package/test/utils/TestCollectionUtils.js.map +1 -0
  280. package/test/utils/TestCryptoStrategies.d.ts +42 -0
  281. package/test/utils/TestCryptoStrategies.js +80 -0
  282. package/test/utils/TestCryptoStrategies.js.map +1 -0
  283. package/test/utils/TestStorage.d.ts +23 -0
  284. package/test/utils/TestStorage.js +61 -0
  285. package/test/utils/TestStorage.js.map +1 -0
  286. package/test/utils/roles.d.ts +14 -0
  287. package/test/utils/roles.js +345 -0
  288. package/test/utils/roles.js.map +1 -0
  289. package/test/utils/test_utils.d.ts +87 -0
  290. package/test/utils/test_utils.js +452 -0
  291. package/test/utils/test_utils.js.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"IccReceiptApi.js","sourceRoot":"","sources":["../../../icc-api/api/IccReceiptApi.ts"],"names":[],"mappings":"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","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 { XHR } from './XHR'\nimport { DocIdentifier } from '../model/DocIdentifier'\nimport { Receipt } from '../model/Receipt'\nimport { AuthenticationProvider, NoAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\nimport { iccRestApiPath } from './IccRestApiPath'\nimport { EntityShareOrMetadataUpdateRequest } from '../model/requests/EntityShareOrMetadataUpdateRequest'\nimport { EntityBulkShareResult } from '../model/requests/EntityBulkShareResult'\nimport { ListOfIds } from '../model/ListOfIds'\nimport { BulkShareOrUpdateMetadataParams } from '../model/requests/BulkShareOrUpdateMetadataParams'\nimport { ConflictResolutionRequest } from '../model/ConflictResolutionRequest'\nimport { ConflictResolutionResult } from '../model/ConflictResolutionResult'\nimport { ConflictResolutionStrategy } from '../model/ConflictResolutionStrategy'\nimport { MergeResult } from '../model/MergeResult'\n\nexport class IccReceiptApi {\n host: string\n _headers: Array<XHR.Header>\n authenticationProvider: AuthenticationProvider\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n get headers(): Promise<Array<XHR.Header>> {\n return Promise.resolve(this._headers)\n }\n\n constructor(\n host: string,\n headers: any,\n authenticationProvider?: AuthenticationProvider,\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n ) {\n this.host = iccRestApiPath(host)\n this._headers = Object.keys(headers).map((k) => new XHR.Header(k, headers[k]))\n this.authenticationProvider = !!authenticationProvider ? authenticationProvider : new NoAuthenticationProvider()\n this.fetchImpl = fetchImpl\n }\n\n setHeaders(h: Array<XHR.Header>) {\n this._headers = h\n }\n\n handleError(e: XHR.XHRError): never {\n throw e\n }\n\n /**\n *\n * @summary Creates a receipt\n * @param body\n */\n async createReceipt(body?: Receipt): Promise<Receipt> {\n const _url = this.host + `/receipt` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Receipt(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Deletes a batch of receipts.\n *\n * @param receiptIds a ListOfIds containing the ids of the receipts to delete.\n * @return a Promise that will resolve in an array of DocIdentifiers of the successfully deleted receipts.\n */\n async deleteReceipts(receiptIds: ListOfIds): Promise<Array<DocIdentifier>> {\n const headers = (await this.headers).filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand(\n 'POST',\n this.host + `/receipt/delete/batch` + '?ts=' + new Date().getTime(),\n headers,\n receiptIds,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => (doc.body as Array<JSON>).map((it) => new DocIdentifier(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Deletes a single receipt by id.\n *\n * @param receiptId the id of the receipt to delete.\n * @return a Promise that will resolve in the DocIdentifier of the deleted receipt.\n */\n async deleteReceipt(receiptId: string): Promise<DocIdentifier> {\n return XHR.sendCommand(\n 'DELETE',\n this.host + `/receipt/${encodeURIComponent(receiptId)}` + '?ts=' + new Date().getTime(),\n await this.headers,\n null,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => new DocIdentifier(doc.body))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Gets a receipt\n * @param receiptId\n */\n async getReceipt(receiptId: string): Promise<Receipt> {\n let _body = null\n\n const _url = this.host + `/receipt/${encodeURIComponent(String(receiptId))}` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Receipt(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Get an attachment\n * @param receiptId\n * @param attachmentId\n * @param enckeys\n */\n async getReceiptAttachment(receiptId: string, attachmentId: string, enckeys?: null): Promise<ArrayBuffer> {\n if (enckeys) {\n throw new Error('Server-side encryption is not supported anymore.')\n }\n let _body = null\n\n const _url =\n this.host +\n `/receipt/${encodeURIComponent(String(receiptId))}/attachment/${encodeURIComponent(String(attachmentId))}` +\n '?ts=' +\n new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Gets a receipt\n * @param ref\n */\n async listByReference(ref: string): Promise<Array<Receipt>> {\n let _body = null\n\n const _url = this.host + `/receipt/byRef/${encodeURIComponent(String(ref))}` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Receipt(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Updates a receipt\n * @param body\n */\n async modifyReceipt(body?: Receipt): Promise<Receipt> {\n let _body = null\n _body = body\n\n const _url = this.host + `/receipt` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Receipt(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @deprecated use setReceiptAttachmentForBlobType instead\n */\n async setReceiptAttachment(receiptId: string, receiptRev: string, blobType: string, enckeys?: null, body?: ArrayBuffer): Promise<Receipt> {\n if (enckeys) {\n throw new Error('Server-side encryption is not supported anymore.')\n }\n if (!body) {\n throw new Error('Attachment content is requred')\n }\n return this.setReceiptAttachmentForBlobType(receiptId, receiptRev, blobType, body)\n }\n\n /**\n * @summary Creates a receipt's attachment\n * @param receiptId id of a receipt\n * @param receiptRev rev of the receipt\n * @param blobType receipt blob type\n * @param body content of the attachment, already encrypted\n */\n async setReceiptAttachmentForBlobType(receiptId: string, receiptRev: string, blobType: string, body: ArrayBuffer): Promise<Receipt> {\n if (!receiptRev) throw new Error('Receipt rev is required')\n\n let _body = body\n\n const _url =\n this.host +\n `/receipt/${encodeURIComponent(String(receiptId))}/attachment/${encodeURIComponent(String(blobType))}` +\n '?ts=' +\n new Date().getTime() +\n '&rev=' +\n receiptRev\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/octet-stream'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Receipt(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Creates a receipt's data attachment with compression metadata\n * @param receiptId id of a receipt\n * @param blobType receipt blob type\n * @param rev revision of the receipt\n * @param body content of the attachment\n * @param compressionAlgorithm the compression algorithm used on the client side, if any\n * @param triedCompressionAlgorithmsVersion a version string for the compression algorithms tried\n * @param realDataSize the real size of the data after decryption and decompression\n */\n async setReceiptDataAttachment(\n receiptId: string,\n blobType: string,\n rev: string,\n body: ArrayBuffer,\n compressionAlgorithm?: string,\n triedCompressionAlgorithmsVersion?: string,\n realDataSize?: number\n ): Promise<Receipt> {\n if (!rev) throw new Error('Receipt rev is required')\n\n const _url =\n this.host +\n `/receipt/${encodeURIComponent(String(receiptId))}/dataattachment/${encodeURIComponent(String(blobType))}` +\n '?ts=' +\n new Date().getTime() +\n '&rev=' +\n encodeURIComponent(String(rev)) +\n (compressionAlgorithm ? '&compressionAlgorithm=' + encodeURIComponent(String(compressionAlgorithm)) : '') +\n (triedCompressionAlgorithmsVersion\n ? '&triedCompressionAlgorithmsVersion=' + encodeURIComponent(String(triedCompressionAlgorithmsVersion))\n : '') +\n (realDataSize != null ? '&realDataSize=' + encodeURIComponent(String(realDataSize)) : '')\n let headers = await this.headers\n headers = headers\n .filter((h) => h.header !== 'Content-Type')\n .concat(new XHR.Header('Content-Type', 'application/octet-stream'))\n return XHR.sendCommand('PUT', _url, headers, body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Receipt(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Get a receipt's attachment by blob type\n * @param receiptId id of the receipt\n * @param blobType the blob type of the attachment to retrieve\n */\n async getReceiptAttachmentByBlobType(receiptId: string, blobType: string): Promise<ArrayBuffer> {\n const _url =\n this.host +\n `/receipt/${encodeURIComponent(String(receiptId))}/attachment/ofType/${encodeURIComponent(String(blobType))}` +\n '?ts=' +\n new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, null, this.fetchImpl, \"application/octet-stream\", this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @internal this method is for internal use only and may be changed without notice\n */\n async bulkShareReceipt(request: BulkShareOrUpdateMetadataParams): Promise<EntityBulkShareResult<Receipt>[]> {\n const _url = this.host + '/receipt/bulkSharedMetadataUpdate' + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, request, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((x) => new EntityBulkShareResult<Receipt>(x, Receipt)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Retrieves the ids of all the receipts that currently have conflicting revisions and therefore need to\n * be resolved.\n * @summary List the ids of the receipts that have conflicts.\n * @return the ids of the receipts with unresolved conflicts.\n */\n async getConflictingEntitiesIds(): Promise<Array<string>> {\n const _url = this.host + `/receipt/conflicts` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, null, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body as Array<string>)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Retrieves all the conflicting revisions of the receipt with the given id (the current revision is not\n * included). The returned entities are still encrypted.\n * @summary Get the conflicting revisions of a receipt.\n * @param entityId the id of the receipt to retrieve the conflicts for.\n * @return the conflicting revisions of the receipt.\n */\n async getConflictsForEntity(entityId: string): Promise<Array<Receipt>> {\n const _url = this.host + `/receipt/conflicts/of?entityId=${encodeURIComponent(String(entityId))}` + '&ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, null, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Receipt(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Resolves a conflict by declaring which revision of the receipt should be kept as winner and which\n * conflicting revisions should be purged. The provided document must already be encrypted.\n * @summary Declare the winning revision of a conflicting receipt.\n * @param body the {@link ConflictResolutionRequest} carrying the winning revision and the conflicts to purge.\n * @return the {@link ConflictResolutionResult} with the saved winner and the conflicts that are still unresolved.\n */\n async declareConflictWinner(body: ConflictResolutionRequest<Receipt>): Promise<ConflictResolutionResult<Receipt>> {\n const _url = this.host + `/receipt/conflicts/winner` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new ConflictResolutionResult<Receipt>(doc.body, (x) => new Receipt(x)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Automatically resolves the conflicting revisions of the receipts with the given ids, according to the provided\n * {@link ConflictResolutionStrategy}.\n * @summary Automatically solve the conflicts of the receipts with the given ids.\n * @param entityIds the ids of the receipts to solve the conflicts for.\n * @param strategy the {@link ConflictResolutionStrategy} to use to resolve the conflicts. Defaults to `FullMergeability`.\n * @return the {@link MergeResult} of the conflict resolution for each requested entity.\n */\n async autoSolveConflicts(\n entityIds: Array<string>,\n strategy: ConflictResolutionStrategy = ConflictResolutionStrategy.FullMergeability\n ): Promise<Array<MergeResult>> {\n const _url = this.host + `/receipt/conflicts/solve?strategy=${encodeURIComponent(String(strategy))}` + '&ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, entityIds, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new MergeResult(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Like {@link autoSolveConflicts} but targets the entities of the group with the given id.\n * @summary Automatically solve the conflicts of the receipts with the given ids, in the given group.\n * @param groupId the id of the group to look into.\n * @param entityIds the ids of the receipts to solve the conflicts for.\n * @param strategy the {@link ConflictResolutionStrategy} to use to resolve the conflicts. Defaults to `FullMergeability`.\n * @return the {@link MergeResult} of the conflict resolution for each requested entity.\n */\n async autoSolveConflictsInGroup(\n groupId: string,\n entityIds: Array<string>,\n strategy: ConflictResolutionStrategy = ConflictResolutionStrategy.FullMergeability\n ): Promise<Array<MergeResult>> {\n const _url =\n this.host +\n `/receipt/inGroup/${encodeURIComponent(String(groupId))}/conflicts/solve?strategy=${encodeURIComponent(String(strategy))}` +\n '&ts=' +\n new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, entityIds, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new MergeResult(it)))\n .catch((err) => this.handleError(err))\n }\n}\n"]}
1
+ {"version":3,"file":"IccReceiptApi.js","sourceRoot":"","sources":["../../../icc-api/api/IccReceiptApi.ts"],"names":[],"mappings":"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","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 { XHR } from './XHR'\nimport { DocIdentifier } from '../model/DocIdentifier'\nimport { Receipt } from '../model/Receipt'\nimport { AuthenticationProvider, NoAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\nimport { iccRestApiPath } from './IccRestApiPath'\nimport { EntityShareOrMetadataUpdateRequest } from '../model/requests/EntityShareOrMetadataUpdateRequest'\nimport { EntityBulkShareResult } from '../model/requests/EntityBulkShareResult'\nimport { ListOfIds } from '../model/ListOfIds'\nimport { BulkShareOrUpdateMetadataParams } from '../model/requests/BulkShareOrUpdateMetadataParams'\nimport { ConflictResolutionRequest } from '../model/ConflictResolutionRequest'\nimport { ConflictResolutionResult } from '../model/ConflictResolutionResult'\nimport { ConflictResolutionStrategy } from '../model/ConflictResolutionStrategy'\nimport { MergeResult } from '../model/MergeResult'\n\nexport class IccReceiptApi {\n host: string\n _headers: Array<XHR.Header>\n authenticationProvider: AuthenticationProvider\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n get headers(): Promise<Array<XHR.Header>> {\n return Promise.resolve(this._headers)\n }\n\n constructor(\n host: string,\n headers: any,\n authenticationProvider?: AuthenticationProvider,\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n ) {\n this.host = iccRestApiPath(host)\n this._headers = Object.keys(headers).map((k) => new XHR.Header(k, headers[k]))\n this.authenticationProvider = !!authenticationProvider ? authenticationProvider : new NoAuthenticationProvider()\n this.fetchImpl = fetchImpl\n }\n\n setHeaders(h: Array<XHR.Header>) {\n this._headers = h\n }\n\n handleError(e: XHR.XHRError): never {\n throw e\n }\n\n /**\n *\n * @summary Creates a receipt\n * @param body\n */\n async createReceipt(body?: Receipt): Promise<Receipt> {\n const _url = this.host + `/receipt` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Receipt(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Deletes a batch of receipts.\n *\n * @param receiptIds a ListOfIds containing the ids of the receipts to delete.\n * @return a Promise that will resolve in an array of DocIdentifiers of the successfully deleted receipts.\n */\n async deleteReceipts(receiptIds: ListOfIds): Promise<Array<DocIdentifier>> {\n const headers = (await this.headers).filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand(\n 'POST',\n this.host + `/receipt/delete/batch` + '?ts=' + new Date().getTime(),\n headers,\n receiptIds,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => (doc.body as Array<JSON>).map((it) => new DocIdentifier(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Deletes a single receipt by id.\n *\n * @param receiptId the id of the receipt to delete.\n * @return a Promise that will resolve in the DocIdentifier of the deleted receipt.\n */\n async deleteReceipt(receiptId: string): Promise<DocIdentifier> {\n return XHR.sendCommand(\n 'DELETE',\n this.host + `/receipt/${encodeURIComponent(receiptId)}` + '?ts=' + new Date().getTime(),\n await this.headers,\n null,\n this.fetchImpl,\n undefined,\n this.authenticationProvider.getAuthService()\n )\n .then((doc) => new DocIdentifier(doc.body))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Gets a receipt\n * @param receiptId\n */\n async getReceipt(receiptId: string): Promise<Receipt> {\n let _body = null\n\n const _url = this.host + `/receipt/${encodeURIComponent(String(receiptId))}` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Receipt(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Get an attachment\n * @param receiptId\n * @param attachmentId\n * @param enckeys\n */\n async getReceiptAttachment(receiptId: string, attachmentId: string, enckeys?: null): Promise<ArrayBuffer> {\n if (enckeys) {\n throw new Error('Server-side encryption is not supported anymore.')\n }\n let _body = null\n\n const _url =\n this.host +\n `/receipt/${encodeURIComponent(String(receiptId))}/attachment/${encodeURIComponent(String(attachmentId))}` +\n '?ts=' +\n new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Gets a receipt\n * @param ref\n */\n async listByReference(ref: string): Promise<Array<Receipt>> {\n let _body = null\n\n const _url = this.host + `/receipt/byRef/${encodeURIComponent(String(ref))}` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Receipt(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Updates a receipt\n * @param body\n */\n async modifyReceipt(body?: Receipt): Promise<Receipt> {\n let _body = null\n _body = body\n\n const _url = this.host + `/receipt` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Receipt(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @deprecated use setReceiptAttachmentForBlobType instead\n */\n async setReceiptAttachment(receiptId: string, receiptRev: string, blobType: string, enckeys?: null, body?: ArrayBuffer): Promise<Receipt> {\n if (enckeys) {\n throw new Error('Server-side encryption is not supported anymore.')\n }\n if (!body) {\n throw new Error('Attachment content is requred')\n }\n return this.setReceiptAttachmentForBlobType(receiptId, receiptRev, blobType, body)\n }\n\n /**\n * @summary Creates a receipt's attachment\n * @param receiptId id of a receipt\n * @param receiptRev rev of the receipt\n * @param blobType receipt blob type\n * @param body content of the attachment, already encrypted\n */\n async setReceiptAttachmentForBlobType(receiptId: string, receiptRev: string, blobType: string, body: ArrayBuffer): Promise<Receipt> {\n if (!receiptRev) throw new Error('Receipt rev is required')\n\n let _body = body\n\n const _url =\n this.host +\n `/receipt/${encodeURIComponent(String(receiptId))}/attachment/${encodeURIComponent(String(blobType))}` +\n '?ts=' +\n new Date().getTime() +\n '&rev=' +\n receiptRev +\n '&contentLength=' +\n encodeURIComponent(String(body.byteLength)) +\n '&contentType=' +\n encodeURIComponent('application/octet-stream')\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/octet-stream'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Receipt(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Creates a receipt's data attachment with compression metadata\n * @param receiptId id of a receipt\n * @param blobType receipt blob type\n * @param rev revision of the receipt\n * @param body content of the attachment\n * @param compressionAlgorithm the compression algorithm used on the client side, if any\n * @param triedCompressionAlgorithmsVersion a version string for the compression algorithms tried\n * @param realDataSize the real size of the data after decryption and decompression\n */\n async setReceiptDataAttachment(\n receiptId: string,\n blobType: string,\n rev: string,\n body: ArrayBuffer,\n compressionAlgorithm?: string,\n triedCompressionAlgorithmsVersion?: string,\n realDataSize?: number\n ): Promise<Receipt> {\n if (!rev) throw new Error('Receipt rev is required')\n\n const _url =\n this.host +\n `/receipt/${encodeURIComponent(String(receiptId))}/dataattachment/${encodeURIComponent(String(blobType))}` +\n '?ts=' +\n new Date().getTime() +\n '&rev=' +\n encodeURIComponent(String(rev)) +\n (compressionAlgorithm ? '&compressionAlgorithm=' + encodeURIComponent(String(compressionAlgorithm)) : '') +\n (triedCompressionAlgorithmsVersion\n ? '&triedCompressionAlgorithmsVersion=' + encodeURIComponent(String(triedCompressionAlgorithmsVersion))\n : '') +\n (realDataSize != null ? '&realDataSize=' + encodeURIComponent(String(realDataSize)) : '') +\n '&contentLength=' +\n encodeURIComponent(String(body.byteLength))\n let headers = await this.headers\n headers = headers\n .filter((h) => h.header !== 'Content-Type')\n .concat(new XHR.Header('Content-Type', 'application/octet-stream'))\n return XHR.sendCommand('PUT', _url, headers, body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new Receipt(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @summary Get a receipt's attachment by blob type\n * @param receiptId id of the receipt\n * @param blobType the blob type of the attachment to retrieve\n */\n async getReceiptAttachmentByBlobType(receiptId: string, blobType: string): Promise<ArrayBuffer> {\n const _url =\n this.host +\n `/receipt/${encodeURIComponent(String(receiptId))}/attachment/ofType/${encodeURIComponent(String(blobType))}` +\n '?ts=' +\n new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, null, this.fetchImpl, \"application/octet-stream\", this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * @internal this method is for internal use only and may be changed without notice\n */\n async bulkShareReceipt(request: BulkShareOrUpdateMetadataParams): Promise<EntityBulkShareResult<Receipt>[]> {\n const _url = this.host + '/receipt/bulkSharedMetadataUpdate' + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, request, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((x) => new EntityBulkShareResult<Receipt>(x, Receipt)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Retrieves the ids of all the receipts that currently have conflicting revisions and therefore need to\n * be resolved.\n * @summary List the ids of the receipts that have conflicts.\n * @return the ids of the receipts with unresolved conflicts.\n */\n async getConflictingEntitiesIds(): Promise<Array<string>> {\n const _url = this.host + `/receipt/conflicts` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, null, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body as Array<string>)\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Retrieves all the conflicting revisions of the receipt with the given id (the current revision is not\n * included). The returned entities are still encrypted.\n * @summary Get the conflicting revisions of a receipt.\n * @param entityId the id of the receipt to retrieve the conflicts for.\n * @return the conflicting revisions of the receipt.\n */\n async getConflictsForEntity(entityId: string): Promise<Array<Receipt>> {\n const _url = this.host + `/receipt/conflicts/of?entityId=${encodeURIComponent(String(entityId))}` + '&ts=' + new Date().getTime()\n let headers = await this.headers\n return XHR.sendCommand('GET', _url, headers, null, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new Receipt(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Resolves a conflict by declaring which revision of the receipt should be kept as winner and which\n * conflicting revisions should be purged. The provided document must already be encrypted.\n * @summary Declare the winning revision of a conflicting receipt.\n * @param body the {@link ConflictResolutionRequest} carrying the winning revision and the conflicts to purge.\n * @return the {@link ConflictResolutionResult} with the saved winner and the conflicts that are still unresolved.\n */\n async declareConflictWinner(body: ConflictResolutionRequest<Receipt>): Promise<ConflictResolutionResult<Receipt>> {\n const _url = this.host + `/receipt/conflicts/winner` + '?ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new ConflictResolutionResult<Receipt>(doc.body, (x) => new Receipt(x)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Automatically resolves the conflicting revisions of the receipts with the given ids, according to the provided\n * {@link ConflictResolutionStrategy}.\n * @summary Automatically solve the conflicts of the receipts with the given ids.\n * @param entityIds the ids of the receipts to solve the conflicts for.\n * @param strategy the {@link ConflictResolutionStrategy} to use to resolve the conflicts. Defaults to `FullMergeability`.\n * @return the {@link MergeResult} of the conflict resolution for each requested entity.\n */\n async autoSolveConflicts(\n entityIds: Array<string>,\n strategy: ConflictResolutionStrategy = ConflictResolutionStrategy.FullMergeability\n ): Promise<Array<MergeResult>> {\n const _url = this.host + `/receipt/conflicts/solve?strategy=${encodeURIComponent(String(strategy))}` + '&ts=' + new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, entityIds, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new MergeResult(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Like {@link autoSolveConflicts} but targets the entities of the group with the given id.\n * @summary Automatically solve the conflicts of the receipts with the given ids, in the given group.\n * @param groupId the id of the group to look into.\n * @param entityIds the ids of the receipts to solve the conflicts for.\n * @param strategy the {@link ConflictResolutionStrategy} to use to resolve the conflicts. Defaults to `FullMergeability`.\n * @return the {@link MergeResult} of the conflict resolution for each requested entity.\n */\n async autoSolveConflictsInGroup(\n groupId: string,\n entityIds: Array<string>,\n strategy: ConflictResolutionStrategy = ConflictResolutionStrategy.FullMergeability\n ): Promise<Array<MergeResult>> {\n const _url =\n this.host +\n `/receipt/inGroup/${encodeURIComponent(String(groupId))}/conflicts/solve?strategy=${encodeURIComponent(String(strategy))}` +\n '&ts=' +\n new Date().getTime()\n let headers = await this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, entityIds, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new MergeResult(it)))\n .catch((err) => this.handleError(err))\n }\n}\n"]}
@@ -107,6 +107,17 @@ export declare class ExtendedApisUtilsImpl implements ExtendedApisUtils {
107
107
  reason?: string;
108
108
  }[];
109
109
  }>;
110
+ /**
111
+ * Whether an existing, already-established access level (`undefined` if none) is enough to satisfy a requested
112
+ * permission, without needing to create/update a delegation just for the permission itself. `ROOT` is a special,
113
+ * self-only request independent of any other delegation on the entity, so it is never considered satisfied by
114
+ * unrelated existing coverage.
115
+ *
116
+ * `MAX_WRITE` doesn't demand write access outright: it resolves to WRITE only if the caller granting it
117
+ * (`callerAccess`) itself has WRITE, and to READ otherwise - so an existing READ is already sufficient for a
118
+ * `MAX_WRITE` request unless the caller could actually upgrade it to WRITE.
119
+ */
120
+ private isPermissionSufficient;
110
121
  private prepareBulkShareRequests;
111
122
  simpleShareOrUpdateEncryptedEntityMetadata<T extends EncryptedEntityStub>(entity: {
112
123
  entity: T;
@@ -146,9 +146,32 @@ class ExtendedApisUtilsImpl {
146
146
  };
147
147
  });
148
148
  }
149
+ /**
150
+ * Whether an existing, already-established access level (`undefined` if none) is enough to satisfy a requested
151
+ * permission, without needing to create/update a delegation just for the permission itself. `ROOT` is a special,
152
+ * self-only request independent of any other delegation on the entity, so it is never considered satisfied by
153
+ * unrelated existing coverage.
154
+ *
155
+ * `MAX_WRITE` doesn't demand write access outright: it resolves to WRITE only if the caller granting it
156
+ * (`callerAccess`) itself has WRITE, and to READ otherwise - so an existing READ is already sufficient for a
157
+ * `MAX_WRITE` request unless the caller could actually upgrade it to WRITE.
158
+ */
159
+ isPermissionSufficient(existing, requested, callerAccess) {
160
+ if (requested === 'ROOT')
161
+ return false;
162
+ if (!existing)
163
+ return false;
164
+ if (existing === 'WRITE')
165
+ return true;
166
+ if (requested === 'FULL_READ')
167
+ return true;
168
+ if (requested === 'FULL_WRITE')
169
+ return false;
170
+ return callerAccess !== 'WRITE'; // MAX_WRITE: existing READ is enough unless the caller could grant WRITE
171
+ }
149
172
  prepareBulkShareRequests(entitiesType, entitiesUpdates) {
150
173
  return __awaiter(this, void 0, void 0, function* () {
151
- var _a, _b, _c;
174
+ var _a, _b, _c, _d;
152
175
  if (new Set(entitiesUpdates.map((e) => e.entity.id)).size !== entitiesUpdates.length) {
153
176
  throw new Error('Duplicate requests: the same entity id is present more than once in the input');
154
177
  }
@@ -171,22 +194,61 @@ class ExtendedApisUtilsImpl {
171
194
  updatedForMigration: true,
172
195
  });
173
196
  }
174
- for (const [delegate, userRequest] of Object.entries(dataForDelegates)) {
175
- if (!migrationRequests[delegate]) {
176
- const request = yield this.secureDelegationsManager.makeShareOrUpdateRequestParams(entityWithType, delegate, (_a = userRequest.shareSecretIds) !== null && _a !== void 0 ? _a : [], (_b = userRequest.shareEncryptionKeys) !== null && _b !== void 0 ? _b : [], (_c = userRequest.shareOwningEntityIds) !== null && _c !== void 0 ? _c : [], userRequest.requestedPermissions);
177
- if (request) {
178
- currentRequests[String(currentOrderedRequests.length)] = request;
179
- currentOrderedRequests.push({
180
- delegateId: delegate,
181
- request: userRequest,
182
- updatedForMigration: false,
183
- });
197
+ // Hoisted: needed both for the redundant-share check below and (as before) for potentialParentDelegations.
198
+ const selfId = yield this.dataOwnerApi.getCurrentDataOwnerId();
199
+ const hierarchy = this.useParentKeys ? yield this.dataOwnerApi.getCurrentDataOwnerHierarchyIds() : [selfId];
200
+ const existingDelegationMembersDetails = yield this.securityMetadataDecryptor.getDelegationMemberDetails(entityWithType);
201
+ // Whole-entity, content-independent permission a data owner already has via ANY existing delegation naming
202
+ // them - matches how the backend itself authorizes writes ("is there at least one delegation with write
203
+ // access"), so unlike content coverage below this is deliberately not restricted to what the current caller
204
+ // can decrypt: permission-level metadata is not end-to-end encrypted the way secret ids/encryption keys are.
205
+ const bestPermissionByDataOwner = {};
206
+ for (const members of Object.values(existingDelegationMembersDetails)) {
207
+ for (const partyId of [members.delegator, members.delegate]) {
208
+ if (partyId && bestPermissionByDataOwner[partyId] !== 'WRITE') {
209
+ bestPermissionByDataOwner[partyId] = members.accessLevel;
184
210
  }
185
211
  }
186
212
  }
213
+ for (const dataOwnerId of Object.keys((_a = entity.delegations) !== null && _a !== void 0 ? _a : {})) {
214
+ bestPermissionByDataOwner[dataOwnerId] = 'WRITE';
215
+ }
216
+ // Content a data owner already has DIRECT (decryptable-by-me) access to via any existing delegation naming
217
+ // them as either party - only computed for content types actually requested by at least one delegate.
218
+ const delegatesToProcess = Object.entries(dataForDelegates).filter(([delegate]) => !migrationRequests[delegate]);
219
+ const needsSecretIds = delegatesToProcess.some(([, r]) => { var _a; return ((_a = r.shareSecretIds) !== null && _a !== void 0 ? _a : []).length > 0; });
220
+ const needsEncryptionKeys = delegatesToProcess.some(([, r]) => { var _a; return ((_a = r.shareEncryptionKeys) !== null && _a !== void 0 ? _a : []).length > 0; });
221
+ const needsOwningEntityIds = delegatesToProcess.some(([, r]) => { var _a; return ((_a = r.shareOwningEntityIds) !== null && _a !== void 0 ? _a : []).length > 0; });
222
+ const directSecretIds = needsSecretIds
223
+ ? yield this.securityMetadataDecryptor.directlyAccessibleValuesByDataOwner(entity, hierarchy, SecurityMetadataDecryptor_1.SecurityMetadataType.SecretId)
224
+ : {};
225
+ const directEncryptionKeys = needsEncryptionKeys
226
+ ? yield this.securityMetadataDecryptor.directlyAccessibleValuesByDataOwner(entity, hierarchy, SecurityMetadataDecryptor_1.SecurityMetadataType.EncryptionKey)
227
+ : {};
228
+ const directOwningEntityIds = needsOwningEntityIds
229
+ ? yield this.securityMetadataDecryptor.directlyAccessibleValuesByDataOwner(entity, hierarchy, SecurityMetadataDecryptor_1.SecurityMetadataType.OwningEntityId)
230
+ : {};
231
+ for (const [delegate, userRequest] of delegatesToProcess) {
232
+ const filteredSecretIds = ((_b = userRequest.shareSecretIds) !== null && _b !== void 0 ? _b : []).filter((id) => { var _a; return !((_a = directSecretIds[delegate]) === null || _a === void 0 ? void 0 : _a.has(id)); });
233
+ const filteredEncryptionKeys = ((_c = userRequest.shareEncryptionKeys) !== null && _c !== void 0 ? _c : []).filter((k) => { var _a; return !((_a = directEncryptionKeys[delegate]) === null || _a === void 0 ? void 0 : _a.has(k)); });
234
+ const filteredOwningEntityIds = ((_d = userRequest.shareOwningEntityIds) !== null && _d !== void 0 ? _d : []).filter((id) => { var _a; return !((_a = directOwningEntityIds[delegate]) === null || _a === void 0 ? void 0 : _a.has(id)); });
235
+ const nothingLeftToShare = !filteredSecretIds.length && !filteredEncryptionKeys.length && !filteredOwningEntityIds.length;
236
+ if (nothingLeftToShare &&
237
+ this.isPermissionSufficient(bestPermissionByDataOwner[delegate], userRequest.requestedPermissions, bestPermissionByDataOwner[selfId])) {
238
+ continue; // fully covered by some other already-decryptable, directly-named delegation: nothing to write
239
+ }
240
+ const request = yield this.secureDelegationsManager.makeShareOrUpdateRequestParams(entityWithType, delegate, filteredSecretIds, filteredEncryptionKeys, filteredOwningEntityIds, userRequest.requestedPermissions);
241
+ if (request) {
242
+ currentRequests[String(currentOrderedRequests.length)] = request;
243
+ currentOrderedRequests.push({
244
+ delegateId: delegate,
245
+ request: userRequest,
246
+ updatedForMigration: false,
247
+ });
248
+ }
249
+ }
187
250
  if (Object.keys(currentRequests).length > 0) {
188
- const existingDelegationMembersDetails = yield this.securityMetadataDecryptor.getDelegationMemberDetails(entityWithType);
189
- const accessibleMembers = new Set(this.useParentKeys ? yield this.dataOwnerApi.getCurrentDataOwnerHierarchyIds() : [yield this.dataOwnerApi.getCurrentDataOwnerId()]);
251
+ const accessibleMembers = new Set(hierarchy);
190
252
  const potentialParentDelegations = Object.entries(existingDelegationMembersDetails).flatMap(([k, members]) => {
191
253
  if ((!!members.delegate && accessibleMembers.has(members.delegate)) || (!!members.delegator && accessibleMembers.has(members.delegator))) {
192
254
  return [k];