@icure/cardinal-sdk 2.14.0 → 2.16.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 (77) hide show
  1. package/Kotlin-DateTime-library-kotlinx-datetime.mjs +1 -1
  2. package/api/AccessLogApi.d.mts +11 -0
  3. package/api/AccessLogBasicApi.d.mts +11 -0
  4. package/api/AccessLogBasicInGroupApi.d.mts +6 -0
  5. package/api/AccessLogInGroupApi.d.mts +33 -1
  6. package/api/AuthApi.d.mts +11 -0
  7. package/api/CalendarItemApi.d.mts +11 -0
  8. package/api/CalendarItemBasicApi.d.mts +11 -0
  9. package/api/CalendarItemBasicInGroupApi.d.mts +6 -0
  10. package/api/CalendarItemInGroupApi.d.mts +6 -0
  11. package/api/ContactApi.d.mts +22 -0
  12. package/api/ContactBasicApi.d.mts +22 -0
  13. package/api/ContactBasicInGroupApi.d.mts +11 -0
  14. package/api/ContactInGroupApi.d.mts +11 -0
  15. package/api/DocumentApi.d.mts +11 -0
  16. package/api/DocumentBasicApi.d.mts +11 -0
  17. package/api/DocumentBasicInGroupApi.d.mts +6 -0
  18. package/api/DocumentInGroupApi.d.mts +6 -0
  19. package/api/FormApi.d.mts +11 -0
  20. package/api/FormBasicApi.d.mts +11 -0
  21. package/api/FormBasicInGroupApi.d.mts +6 -0
  22. package/api/FormInGroupApi.d.mts +6 -0
  23. package/api/GroupApi.d.mts +38 -0
  24. package/api/HealthElementApi.d.mts +11 -0
  25. package/api/HealthElementBasicApi.d.mts +11 -0
  26. package/api/HealthElementBasicInGroupApi.d.mts +6 -0
  27. package/api/HealthElementInGroupApi.d.mts +6 -0
  28. package/api/InvoiceApi.d.mts +11 -0
  29. package/api/InvoiceBasicApi.d.mts +11 -0
  30. package/api/InvoiceBasicInGroupApi.d.mts +6 -0
  31. package/api/InvoiceInGroupApi.d.mts +6 -0
  32. package/api/MessageApi.d.mts +11 -0
  33. package/api/MessageBasicApi.d.mts +11 -0
  34. package/api/MessageBasicInGroupApi.d.mts +6 -0
  35. package/api/MessageInGroupApi.d.mts +6 -0
  36. package/api/ReceiptApi.d.mts +11 -0
  37. package/api/ReceiptBasicApi.d.mts +11 -0
  38. package/api/ReceiptBasicInGroupApi.d.mts +6 -0
  39. package/api/ReceiptInGroupApi.d.mts +6 -0
  40. package/api/RelatedPersonApi.d.mts +11 -0
  41. package/api/RelatedPersonBasicApi.d.mts +11 -0
  42. package/api/RelatedPersonBasicInGroupApi.d.mts +6 -0
  43. package/api/RelatedPersonInGroupApi.d.mts +6 -0
  44. package/api/TopicApi.d.mts +11 -0
  45. package/api/TopicBasicApi.d.mts +11 -0
  46. package/api/TopicBasicInGroupApi.d.mts +6 -0
  47. package/api/TopicInGroupApi.d.mts +6 -0
  48. package/api/UserApi.d.mts +32 -0
  49. package/api.d.mts +93 -93
  50. package/api.mjs +93 -93
  51. package/cardinal-sdk-ts.d.mts +12 -16
  52. package/cardinal-sdk-ts.mjs +48143 -43904
  53. package/cardinal-sdk.mjs +80427 -78338
  54. package/crypto.d.mts +33 -33
  55. package/crypto.mjs +33 -33
  56. package/filters.d.mts +16 -16
  57. package/filters.mjs +16 -16
  58. package/kerberus-ts.mjs +1 -0
  59. package/kotlin-kotlin-stdlib.mjs +24 -24
  60. package/kotlinx-coroutines-core.mjs +10 -10
  61. package/ktor-ktor-utils.mjs +2 -2
  62. package/model/base/CryptoActor.mjs +4 -4
  63. package/model/embed/form/template/Field.d.mts +1 -1
  64. package/model/embed/form/template/StructureElement.d.mts +1 -1
  65. package/model/embed/form/template/StructureElement.mjs +8 -8
  66. package/model/filter/predicate/Predicate.d.mts +1 -1
  67. package/model/filter/predicate/Predicate.mjs +2 -2
  68. package/model.d.mts +188 -188
  69. package/model.mjs +188 -188
  70. package/options/AuthenticationMethod.d.mts +17 -1
  71. package/options/AuthenticationMethod.mjs +15 -0
  72. package/package.json +1 -1
  73. package/subscription.d.mts +2 -2
  74. package/subscription.mjs +2 -2
  75. package/utils.d.mts +2 -2
  76. package/utils.mjs +2 -2
  77. /package/{kerberus.d.mts → kerberus-ts.d.mts} +0 -0
@@ -367,7 +367,7 @@ function addFormatStructureForDate(structure) {
367
367
  function addFormatStructureForTime(structure) {
368
368
  this.y3z(structure);
369
369
  }
370
- initMetadataForInterface(AbstractWithDateTimeBuilder, 'AbstractWithDateTimeBuilder', VOID, VOID, [AbstractWithDateBuilder, AbstractWithTimeBuilder, WithDate, WithTime]);
370
+ initMetadataForInterface(AbstractWithDateTimeBuilder, 'AbstractWithDateTimeBuilder', VOID, VOID, [AbstractWithDateBuilder, AbstractWithTimeBuilder, WithTime, WithDate]);
371
371
  initMetadataForClass(Builder_0, 'Builder', VOID, VOID, [AbstractDateTimeFormatBuilder, AbstractWithDateTimeBuilder]);
372
372
  initMetadataForClass(LocalDateTimeFormat, 'LocalDateTimeFormat', VOID, AbstractDateTimeFormat);
373
373
  function set_fractionOfSecond(value) {
@@ -1,6 +1,7 @@
1
1
  import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
2
  import { AccessLogDelegateOptions } from '../crypto/entities/AccessLogDelegateOptions.mjs';
3
3
  import { AccessLogShareOptions } from '../crypto/entities/AccessLogShareOptions.mjs';
4
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
4
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
5
6
  import { AccessLog, DecryptedAccessLog, EncryptedAccessLog } from '../model/AccessLog.mjs';
6
7
  import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs';
@@ -228,6 +229,16 @@ export interface AccessLogApi {
228
229
  * because you had no write access to them) they will not be included in this list.
229
230
  */
230
231
  purgeAccessLogs(accessLogs: Array<AccessLog>): Promise<Array<StoredDocumentIdentifier>>;
232
+ /**
233
+ *
234
+ * Get all data owners with access to the provided access log, attempting to identify any unknown anonymous data owners
235
+ * using delegations de-anonymization metadata.
236
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
237
+ * anonymous data owners and the behaviour of basic apis.
238
+ * @param accessLog an access log
239
+ * @return information on users with access to the provided access log
240
+ */
241
+ getDataOwnersWithAccessTo(accessLog: AccessLog): Promise<EntityAccessInformation>;
231
242
  /**
232
243
  *
233
244
  * Share an access log with another data owner.
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { AccessLog, EncryptedAccessLog } from '../model/AccessLog.mjs';
3
4
  import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs';
4
5
  import { AccessLogBasicInGroupApi } from './AccessLogBasicInGroupApi.mjs';
@@ -119,6 +120,16 @@ export interface AccessLogBasicApi {
119
120
  * because you had no write access to them) they will not be included in this list.
120
121
  */
121
122
  purgeAccessLogs(accessLogs: Array<AccessLog>): Promise<Array<StoredDocumentIdentifier>>;
123
+ /**
124
+ *
125
+ * Get all data owners with access to the provided access log, attempting to identify any unknown anonymous data owners
126
+ * using delegations de-anonymization metadata.
127
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
128
+ * anonymous data owners and the behaviour of basic apis.
129
+ * @param accessLog an access log
130
+ * @return information on users with access to the provided access log
131
+ */
132
+ getDataOwnersWithAccessTo(accessLog: AccessLog): Promise<EntityAccessInformation>;
122
133
  /**
123
134
  *
124
135
  * Create a new access log. The provided access log must have the encryption metadata initialized.
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { AccessLog, EncryptedAccessLog } from '../model/AccessLog.mjs';
3
4
  import { GroupScoped } from '../model/GroupScoped.mjs';
4
5
  import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs';
@@ -59,6 +60,11 @@ export interface AccessLogBasicInGroupApi {
59
60
  */
60
61
  purgeAccessLog(accessLog: GroupScoped<AccessLog>): Promise<void>;
61
62
  purgeAccessLogs(accessLogs: Array<GroupScoped<AccessLog>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
63
+ /**
64
+ *
65
+ * In-group version of [AccessLogBasicFlavourlessApi.getDataOwnersWithAccessTo].
66
+ */
67
+ getDataOwnersWithAccessTo(accessLog: GroupScoped<AccessLog>): Promise<EntityAccessInformation>;
62
68
  /**
63
69
  *
64
70
  * In-group version of [AccessLogBasicFlavouredApi.createAccessLog].
@@ -1,5 +1,7 @@
1
- import { FilterOptions, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
1
+ import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
2
  import { AccessLogDelegateOptions } from '../crypto/entities/AccessLogDelegateOptions.mjs';
3
+ import { AccessLogShareOptions } from '../crypto/entities/AccessLogShareOptions.mjs';
4
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
3
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
4
6
  import { AccessLog, DecryptedAccessLog, EncryptedAccessLog } from '../model/AccessLog.mjs';
5
7
  import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs';
@@ -117,6 +119,36 @@ export interface AccessLogInGroupApi {
117
119
  */
118
120
  purgeAccessLog(accessLog: GroupScoped<AccessLog>): Promise<void>;
119
121
  purgeAccessLogs(accessLogs: Array<GroupScoped<AccessLog>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
122
+ /**
123
+ *
124
+ * In-group version of [AccessLogBasicFlavourlessApi.getDataOwnersWithAccessTo].
125
+ */
126
+ getDataOwnersWithAccessTo(accessLog: GroupScoped<AccessLog>): Promise<EntityAccessInformation>;
127
+ /**
128
+ *
129
+ * In-group version of [AccessLogFlavouredApi.shareWith]
130
+ */
131
+ shareWith(delegate: EntityReferenceInGroup, accessLog: GroupScoped<DecryptedAccessLog>, options?: {
132
+ options?: AccessLogShareOptions | undefined;
133
+ }): Promise<GroupScoped<DecryptedAccessLog>>;
134
+ /**
135
+ *
136
+ * In-group version of [AccessLogFlavouredApi.shareWithMany]
137
+ */
138
+ shareWithMany(accessLog: GroupScoped<DecryptedAccessLog>, delegates: ArrayWithUniqueKeys<{
139
+ delegate: EntityReferenceInGroup;
140
+ shareOptions: AccessLogShareOptions;
141
+ }, 'delegate'>): Promise<GroupScoped<DecryptedAccessLog>>;
142
+ /**
143
+ *
144
+ * In-group version of [AccessLogFlavouredApi.filterAccessLogsBy]
145
+ */
146
+ filterAccessLogsBy(groupId: string, filter: FilterOptions<AccessLog>): Promise<PaginatedListIterator<GroupScoped<DecryptedAccessLog>>>;
147
+ /**
148
+ *
149
+ * In-group version of [AccessLogFlavouredApi.filterAccessLogsBySorted]
150
+ */
151
+ filterAccessLogsBySorted(groupId: string, filter: SortableFilterOptions<AccessLog>): Promise<PaginatedListIterator<GroupScoped<DecryptedAccessLog>>>;
120
152
  /**
121
153
  *
122
154
  * In-group version of [AccessLogBasicFlavouredApi.createAccessLog].
package/api/AuthApi.d.mts CHANGED
@@ -1,3 +1,14 @@
1
1
  export interface AuthApi {
2
2
  getBearerToken(): Promise<string>;
3
+ /**
4
+ *
5
+ * Get the refresh token currently used by the sdk.
6
+ *
7
+ * The refresh token is bound to the group (and data owner scope) of this sdk instance, and can be used to initialize
8
+ * a new sdk instance through the `existingRefreshJwt` of [com.icure.cardinal.sdk.options.AuthenticationMethod.UsingSecretProvider],
9
+ * without having to provide any secret while the refresh token is valid.
10
+ * Note that if the user can access multiple groups, the initialization of the new sdk still requires a group selector,
11
+ * and the new sdk will be bound to the group chosen by the selector, regardless of the group of the refresh token.
12
+ */
13
+ getRefreshToken(): Promise<string>;
3
14
  }
@@ -1,6 +1,7 @@
1
1
  import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
2
  import { CalendarItemDelegateOptions } from '../crypto/entities/CalendarItemDelegateOptions.mjs';
3
3
  import { CalendarItemShareOptions } from '../crypto/entities/CalendarItemShareOptions.mjs';
4
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
4
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
5
6
  import { CalendarItem, DecryptedCalendarItem, EncryptedCalendarItem } from '../model/CalendarItem.mjs';
6
7
  import { CalendarItemOccupancy } from '../model/CalendarItemOccupancy.mjs';
@@ -279,6 +280,16 @@ export interface CalendarItemApi {
279
280
  * because you had no write access to them) they will not be included in this list.
280
281
  */
281
282
  purgeCalendarItems(calendarItems: Array<CalendarItem>): Promise<Array<StoredDocumentIdentifier>>;
283
+ /**
284
+ *
285
+ * Get all data owners with access to the provided calendar item, attempting to identify any unknown anonymous data owners
286
+ * using delegations de-anonymization metadata.
287
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
288
+ * anonymous data owners and the behaviour of basic apis.
289
+ * @param calendarItem a calendar item
290
+ * @return information on users with access to the provided calendar item
291
+ */
292
+ getDataOwnersWithAccessTo(calendarItem: CalendarItem): Promise<EntityAccessInformation>;
282
293
  /**
283
294
  *
284
295
  * Share a calendar item with another data owner. The calendar item must already exist in the database for this method to
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, FilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { CalendarItem, EncryptedCalendarItem } from '../model/CalendarItem.mjs';
3
4
  import { CalendarItemOccupancy } from '../model/CalendarItemOccupancy.mjs';
4
5
  import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs';
@@ -158,6 +159,16 @@ export interface CalendarItemBasicApi {
158
159
  * because you had no write access to them) they will not be included in this list.
159
160
  */
160
161
  purgeCalendarItems(calendarItems: Array<CalendarItem>): Promise<Array<StoredDocumentIdentifier>>;
162
+ /**
163
+ *
164
+ * Get all data owners with access to the provided calendar item, attempting to identify any unknown anonymous data owners
165
+ * using delegations de-anonymization metadata.
166
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
167
+ * anonymous data owners and the behaviour of basic apis.
168
+ * @param calendarItem a calendar item
169
+ * @return information on users with access to the provided calendar item
170
+ */
171
+ getDataOwnersWithAccessTo(calendarItem: CalendarItem): Promise<EntityAccessInformation>;
161
172
  /**
162
173
  *
163
174
  * Create a new calendar item. The provided calendar item must have the encryption metadata initialized.
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { CalendarItem, EncryptedCalendarItem } from '../model/CalendarItem.mjs';
3
4
  import { CalendarItemOccupancy } from '../model/CalendarItemOccupancy.mjs';
4
5
  import { GroupScoped } from '../model/GroupScoped.mjs';
@@ -79,6 +80,11 @@ export interface CalendarItemBasicInGroupApi {
79
80
  * In-group version of [CalendarItemBasicFlavourlessApi.purgeCalendarItems]
80
81
  */
81
82
  purgeCalendarItems(calendarItems: Array<GroupScoped<CalendarItem>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
83
+ /**
84
+ *
85
+ * In-group version of [CalendarItemBasicFlavourlessApi.getDataOwnersWithAccessTo].
86
+ */
87
+ getDataOwnersWithAccessTo(calendarItem: GroupScoped<CalendarItem>): Promise<EntityAccessInformation>;
82
88
  /**
83
89
  *
84
90
  * In-group version of [CalendarItemBasicFlavouredApi.createCalendarItem].
@@ -1,6 +1,7 @@
1
1
  import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
2
  import { CalendarItemDelegateOptions } from '../crypto/entities/CalendarItemDelegateOptions.mjs';
3
3
  import { CalendarItemShareOptions } from '../crypto/entities/CalendarItemShareOptions.mjs';
4
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
4
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
5
6
  import { CalendarItem, DecryptedCalendarItem, EncryptedCalendarItem } from '../model/CalendarItem.mjs';
6
7
  import { CalendarItemOccupancy } from '../model/CalendarItemOccupancy.mjs';
@@ -140,6 +141,11 @@ export interface CalendarItemInGroupApi {
140
141
  * In-group version of [CalendarItemBasicFlavourlessApi.purgeCalendarItems]
141
142
  */
142
143
  purgeCalendarItems(calendarItems: Array<GroupScoped<CalendarItem>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
144
+ /**
145
+ *
146
+ * In-group version of [CalendarItemBasicFlavourlessApi.getDataOwnersWithAccessTo].
147
+ */
148
+ getDataOwnersWithAccessTo(calendarItem: GroupScoped<CalendarItem>): Promise<EntityAccessInformation>;
143
149
  /**
144
150
  *
145
151
  * In-group version of [CalendarItemFlavouredApi.shareWith]
@@ -1,6 +1,7 @@
1
1
  import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
2
  import { ContactDelegateOptions } from '../crypto/entities/ContactDelegateOptions.mjs';
3
3
  import { ContactShareOptions } from '../crypto/entities/ContactShareOptions.mjs';
4
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
4
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
5
6
  import { Contact, DecryptedContact, EncryptedContact } from '../model/Contact.mjs';
6
7
  import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs';
@@ -297,6 +298,27 @@ export interface ContactApi {
297
298
  * @return the occurrences for codes of type [codeType] in services.
298
299
  */
299
300
  getServiceCodesOccurrences(codeType: string, minOccurrences: number): Promise<Array<LabelledOccurence>>;
301
+ /**
302
+ *
303
+ * Get all data owners with access to the provided contact, attempting to identify any unknown anonymous data owners
304
+ * using delegations de-anonymization metadata.
305
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
306
+ * anonymous data owners and the behaviour of basic apis.
307
+ * @param contact a contact
308
+ * @return information on users with access to the provided contact
309
+ */
310
+ getDataOwnersWithAccessTo(contact: Contact): Promise<EntityAccessInformation>;
311
+ /**
312
+ *
313
+ * Get all data owners with access to the provided service, attempting to identify any unknown anonymous data owners
314
+ * using delegations de-anonymization metadata. Services share the security metadata of the contact containing them,
315
+ * so this reflects the access to that contact.
316
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
317
+ * anonymous data owners and the behaviour of basic apis.
318
+ * @param service a service
319
+ * @return information on users with access to the provided service
320
+ */
321
+ getDataOwnersWithAccessToService(service: Service): Promise<EntityAccessInformation>;
300
322
  /**
301
323
  *
302
324
  * Share a contact with another data owner. The contact must already exist in the database for this method to
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { Contact, EncryptedContact } from '../model/Contact.mjs';
3
4
  import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs';
4
5
  import { LabelledOccurence } from '../model/data/LabelledOccurence.mjs';
@@ -196,6 +197,27 @@ export interface ContactBasicApi {
196
197
  * @return the occurrences for codes of type [codeType] in services.
197
198
  */
198
199
  getServiceCodesOccurrences(codeType: string, minOccurrences: number): Promise<Array<LabelledOccurence>>;
200
+ /**
201
+ *
202
+ * Get all data owners with access to the provided contact, attempting to identify any unknown anonymous data owners
203
+ * using delegations de-anonymization metadata.
204
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
205
+ * anonymous data owners and the behaviour of basic apis.
206
+ * @param contact a contact
207
+ * @return information on users with access to the provided contact
208
+ */
209
+ getDataOwnersWithAccessTo(contact: Contact): Promise<EntityAccessInformation>;
210
+ /**
211
+ *
212
+ * Get all data owners with access to the provided service, attempting to identify any unknown anonymous data owners
213
+ * using delegations de-anonymization metadata. Services share the security metadata of the contact containing them,
214
+ * so this reflects the access to that contact.
215
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
216
+ * anonymous data owners and the behaviour of basic apis.
217
+ * @param service a service
218
+ * @return information on users with access to the provided service
219
+ */
220
+ getDataOwnersWithAccessToService(service: Service): Promise<EntityAccessInformation>;
199
221
  /**
200
222
  *
201
223
  * Create a new contact. The provided contact must have the encryption metadata initialized.
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { Contact, EncryptedContact } from '../model/Contact.mjs';
3
4
  import { GroupScoped } from '../model/GroupScoped.mjs';
4
5
  import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs';
@@ -84,6 +85,16 @@ export interface ContactBasicInGroupApi {
84
85
  * In-group version of [ContactBasicFlavourlessApi.purgeContacts]
85
86
  */
86
87
  purgeContacts(contacts: Array<GroupScoped<Contact>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
88
+ /**
89
+ *
90
+ * In-group version of [ContactBasicFlavourlessApi.getDataOwnersWithAccessTo].
91
+ */
92
+ getDataOwnersWithAccessTo(contact: GroupScoped<Contact>): Promise<EntityAccessInformation>;
93
+ /**
94
+ *
95
+ * In-group version of [ContactBasicFlavourlessApi.getDataOwnersWithAccessToService].
96
+ */
97
+ getDataOwnersWithAccessToService(service: GroupScoped<Service>): Promise<EntityAccessInformation>;
87
98
  /**
88
99
  *
89
100
  * In-group version of [ContactBasicFlavouredApi.createContact].
@@ -1,6 +1,7 @@
1
1
  import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
2
  import { ContactDelegateOptions } from '../crypto/entities/ContactDelegateOptions.mjs';
3
3
  import { ContactShareOptions } from '../crypto/entities/ContactShareOptions.mjs';
4
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
4
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
5
6
  import { Contact, DecryptedContact, EncryptedContact } from '../model/Contact.mjs';
6
7
  import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs';
@@ -146,6 +147,16 @@ export interface ContactInGroupApi {
146
147
  * In-group version of [ContactBasicFlavourlessApi.purgeContacts]
147
148
  */
148
149
  purgeContacts(contacts: Array<GroupScoped<Contact>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
150
+ /**
151
+ *
152
+ * In-group version of [ContactBasicFlavourlessApi.getDataOwnersWithAccessTo].
153
+ */
154
+ getDataOwnersWithAccessTo(contact: GroupScoped<Contact>): Promise<EntityAccessInformation>;
155
+ /**
156
+ *
157
+ * In-group version of [ContactBasicFlavourlessApi.getDataOwnersWithAccessToService].
158
+ */
159
+ getDataOwnersWithAccessToService(service: GroupScoped<Service>): Promise<EntityAccessInformation>;
149
160
  /**
150
161
  *
151
162
  * In-group version of [ContactFlavouredApi.shareWith]
@@ -1,6 +1,7 @@
1
1
  import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
2
  import { DocumentDelegateOptions } from '../crypto/entities/DocumentDelegateOptions.mjs';
3
3
  import { DocumentShareOptions } from '../crypto/entities/DocumentShareOptions.mjs';
4
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
4
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
5
6
  import { DecryptedDocument, Document, EncryptedDocument } from '../model/Document.mjs';
6
7
  import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs';
@@ -476,6 +477,16 @@ export interface DocumentApi {
476
477
  * @return the updated document
477
478
  */
478
479
  deleteSecondaryAttachment(documentId: string, key: string, rev: string): Promise<EncryptedDocument>;
480
+ /**
481
+ *
482
+ * Get all data owners with access to the provided document, attempting to identify any unknown anonymous data owners
483
+ * using delegations de-anonymization metadata.
484
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
485
+ * anonymous data owners and the behaviour of basic apis.
486
+ * @param document a document
487
+ * @return information on users with access to the provided document
488
+ */
489
+ getDataOwnersWithAccessTo(document: Document): Promise<EntityAccessInformation>;
479
490
  /**
480
491
  *
481
492
  * Share a document with another data owner. The document must already exist in the database for this method to
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { Document, EncryptedDocument } from '../model/Document.mjs';
3
4
  import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs';
4
5
  import { DocumentBasicInGroupApi } from './DocumentBasicInGroupApi.mjs';
@@ -190,6 +191,16 @@ export interface DocumentBasicApi {
190
191
  * @return the updated document
191
192
  */
192
193
  deleteSecondaryAttachment(documentId: string, key: string, rev: string): Promise<EncryptedDocument>;
194
+ /**
195
+ *
196
+ * Get all data owners with access to the provided document, attempting to identify any unknown anonymous data owners
197
+ * using delegations de-anonymization metadata.
198
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
199
+ * anonymous data owners and the behaviour of basic apis.
200
+ * @param document a document
201
+ * @return information on users with access to the provided document
202
+ */
203
+ getDataOwnersWithAccessTo(document: Document): Promise<EntityAccessInformation>;
193
204
  /**
194
205
  *
195
206
  * Create a new document. The provided document must have the encryption metadata initialized.
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { Document, EncryptedDocument } from '../model/Document.mjs';
3
4
  import { GroupScoped } from '../model/GroupScoped.mjs';
4
5
  import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs';
@@ -63,6 +64,11 @@ export interface DocumentBasicInGroupApi {
63
64
  * In-group version of [DocumentBasicFlavourlessApi.purgeDocuments]
64
65
  */
65
66
  purgeDocuments(documents: Array<GroupScoped<Document>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
67
+ /**
68
+ *
69
+ * In-group version of [DocumentBasicFlavourlessApi.getDataOwnersWithAccessTo].
70
+ */
71
+ getDataOwnersWithAccessTo(document: GroupScoped<Document>): Promise<EntityAccessInformation>;
66
72
  /**
67
73
  *
68
74
  * In-group version of [DocumentBasicFlavouredApi.createDocument].
@@ -1,6 +1,7 @@
1
1
  import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
2
  import { DocumentDelegateOptions } from '../crypto/entities/DocumentDelegateOptions.mjs';
3
3
  import { DocumentShareOptions } from '../crypto/entities/DocumentShareOptions.mjs';
4
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
4
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
5
6
  import { DecryptedDocument, Document, EncryptedDocument } from '../model/Document.mjs';
6
7
  import { EntityReferenceInGroup } from '../model/EntityReferenceInGroup.mjs';
@@ -163,6 +164,11 @@ export interface DocumentInGroupApi {
163
164
  * In-group version of [DocumentBasicFlavourlessApi.purgeDocuments]
164
165
  */
165
166
  purgeDocuments(documents: Array<GroupScoped<Document>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
167
+ /**
168
+ *
169
+ * In-group version of [DocumentBasicFlavourlessApi.getDataOwnersWithAccessTo].
170
+ */
171
+ getDataOwnersWithAccessTo(document: GroupScoped<Document>): Promise<EntityAccessInformation>;
166
172
  /**
167
173
  *
168
174
  * In-group version of [DocumentFlavouredApi.shareWith]
package/api/FormApi.d.mts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { FormDelegateOptions } from '../crypto/entities/FormDelegateOptions.mjs';
3
4
  import { FormShareOptions } from '../crypto/entities/FormShareOptions.mjs';
4
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
@@ -227,6 +228,16 @@ export interface FormApi {
227
228
  * because you had no write access to them) they will not be included in this list.
228
229
  */
229
230
  purgeForms(forms: Array<Form>): Promise<Array<StoredDocumentIdentifier>>;
231
+ /**
232
+ *
233
+ * Get all data owners with access to the provided form, attempting to identify any unknown anonymous data owners
234
+ * using delegations de-anonymization metadata.
235
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
236
+ * anonymous data owners and the behaviour of basic apis.
237
+ * @param form a form
238
+ * @return information on users with access to the provided form
239
+ */
240
+ getDataOwnersWithAccessTo(form: Form): Promise<EntityAccessInformation>;
230
241
  getFormTemplate(formTemplateId: string, options?: {
231
242
  raw?: boolean | undefined;
232
243
  }): Promise<FormTemplate>;
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { EncryptedForm, Form } from '../model/Form.mjs';
3
4
  import { FormTemplate } from '../model/FormTemplate.mjs';
4
5
  import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs';
@@ -120,6 +121,16 @@ export interface FormBasicApi {
120
121
  * because you had no write access to them) they will not be included in this list.
121
122
  */
122
123
  purgeForms(forms: Array<Form>): Promise<Array<StoredDocumentIdentifier>>;
124
+ /**
125
+ *
126
+ * Get all data owners with access to the provided form, attempting to identify any unknown anonymous data owners
127
+ * using delegations de-anonymization metadata.
128
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
129
+ * anonymous data owners and the behaviour of basic apis.
130
+ * @param form a form
131
+ * @return information on users with access to the provided form
132
+ */
133
+ getDataOwnersWithAccessTo(form: Form): Promise<EntityAccessInformation>;
123
134
  getFormTemplate(formTemplateId: string, options?: {
124
135
  raw?: boolean | undefined;
125
136
  }): Promise<FormTemplate>;
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { EncryptedForm, Form } from '../model/Form.mjs';
3
4
  import { FormTemplate } from '../model/FormTemplate.mjs';
4
5
  import { GroupScoped } from '../model/GroupScoped.mjs';
@@ -64,6 +65,11 @@ export interface FormBasicInGroupApi {
64
65
  * In-group version of [FormBasicFlavourlessApi.purgeForms]
65
66
  */
66
67
  purgeForms(forms: Array<GroupScoped<Form>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
68
+ /**
69
+ *
70
+ * In-group version of [FormBasicFlavourlessApi.getDataOwnersWithAccessTo].
71
+ */
72
+ getDataOwnersWithAccessTo(form: GroupScoped<Form>): Promise<EntityAccessInformation>;
67
73
  createFormTemplate(formTemplate: GroupScoped<FormTemplate>): Promise<GroupScoped<FormTemplate>>;
68
74
  createFormTemplates(formTemplates: Array<GroupScoped<FormTemplate>>): Promise<Array<GroupScoped<FormTemplate>>>;
69
75
  getFormTemplate(groupId: string, formTemplateId: string): Promise<GroupScoped<FormTemplate> | undefined>;
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { FormDelegateOptions } from '../crypto/entities/FormDelegateOptions.mjs';
3
4
  import { FormShareOptions } from '../crypto/entities/FormShareOptions.mjs';
4
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
@@ -121,6 +122,11 @@ export interface FormInGroupApi {
121
122
  * In-group version of [FormBasicFlavourlessApi.purgeForms]
122
123
  */
123
124
  purgeForms(forms: Array<GroupScoped<Form>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
125
+ /**
126
+ *
127
+ * In-group version of [FormBasicFlavourlessApi.getDataOwnersWithAccessTo].
128
+ */
129
+ getDataOwnersWithAccessTo(form: GroupScoped<Form>): Promise<EntityAccessInformation>;
124
130
  createFormTemplate(formTemplate: GroupScoped<FormTemplate>): Promise<GroupScoped<FormTemplate>>;
125
131
  createFormTemplates(formTemplates: Array<GroupScoped<FormTemplate>>): Promise<Array<GroupScoped<FormTemplate>>>;
126
132
  getFormTemplate(groupId: string, formTemplateId: string): Promise<GroupScoped<FormTemplate> | undefined>;
@@ -81,4 +81,42 @@ export interface GroupApi {
81
81
  modifyGroupApplicationId(id: string, applicationId: string): Promise<Group>;
82
82
  addTagToGroup(id: string, rev: string, tag: CodeStub): Promise<Group>;
83
83
  removeTagFromGroup(id: string, rev: string, tagId: string): Promise<Group>;
84
+ createApplicationGroup(id: string, name: string, options?: {
85
+ server?: string | undefined;
86
+ q?: number | undefined;
87
+ n?: number | undefined;
88
+ superGroup?: string | undefined;
89
+ projectId?: string | undefined;
90
+ }): Promise<Group>;
91
+ createTenantGroup(id: string, name: string, options?: {
92
+ server?: string | undefined;
93
+ q?: number | undefined;
94
+ n?: number | undefined;
95
+ superGroup?: string | undefined;
96
+ projectId?: string | undefined;
97
+ }): Promise<Group>;
98
+ /**
99
+ *
100
+ * Sets a design doc schema version as available on or more groups. This operation will fail if the schema version [schemaVersion]
101
+ * does not exist for the application or if there is at least one group among [groupIds] where the indexation task were not run.
102
+ *
103
+ * @param applicationGroupId the id of the application group. All the groups specified in [groupIds] must be children of this group.
104
+ * @param schemaVersion the version of the schema to enable.
105
+ * @param groupIds the ids of the groups to update.
106
+ */
107
+ addSchemaVersionOnGroups(applicationGroupId: string, schemaVersion: number, groupIds: Array<string>): Promise<Array<Group>>;
108
+ /**
109
+ *
110
+ * Removes a design doc schema version as available on or more groups. This operation will fail if that schema version is the only one
111
+ * to be enabled on at least one group, unless [failIfSingleSchema] is set to false.
112
+ *
113
+ * @param applicationGroupId the id of the application group. All the groups specified in [groupIds] must be children of this group.
114
+ * @param schemaVersion the version of the schema to enable.
115
+ * @param groupIds the ids of the groups to update.
116
+ * @param failIfSingleSchema if false, the operation will not fail if the specified version is the only one enabled on one or more of the
117
+ * groups.
118
+ */
119
+ removeSchemaVersionFromGroups(applicationGroupId: string, schemaVersion: number, groupIds: Array<string>, options?: {
120
+ failIfSingleSchema?: boolean;
121
+ }): Promise<Array<Group>>;
84
122
  }
@@ -1,4 +1,5 @@
1
1
  import { FilterOptions, PaginatedListIterator, SortableFilterOptions } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { HealthElementDelegateOptions } from '../crypto/entities/HealthElementDelegateOptions.mjs';
3
4
  import { HealthElementShareOptions } from '../crypto/entities/HealthElementShareOptions.mjs';
4
5
  import { SecretIdUseOption } from '../crypto/entities/SecretIdUseOption.mjs';
@@ -239,6 +240,16 @@ export interface HealthElementApi {
239
240
  * because you had no write access to them) they will not be included in this list.
240
241
  */
241
242
  purgeHealthElements(healthElements: Array<HealthElement>): Promise<Array<StoredDocumentIdentifier>>;
243
+ /**
244
+ *
245
+ * Get all data owners with access to the provided health element, attempting to identify any unknown anonymous data owners
246
+ * using delegations de-anonymization metadata.
247
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
248
+ * anonymous data owners and the behaviour of basic apis.
249
+ * @param healthElement a health element
250
+ * @return information on users with access to the provided health element
251
+ */
252
+ getDataOwnersWithAccessTo(healthElement: HealthElement): Promise<EntityAccessInformation>;
242
253
  /**
243
254
  *
244
255
  * Share a health element with another data owner. The health element must already exist in the database for this method to
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { EncryptedHealthElement, HealthElement } from '../model/HealthElement.mjs';
3
4
  import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs';
4
5
  import { EntitySubscription } from '../subscription/EntitySubscription.mjs';
@@ -122,6 +123,16 @@ export interface HealthElementBasicApi {
122
123
  * because you had no write access to them) they will not be included in this list.
123
124
  */
124
125
  purgeHealthElements(healthElements: Array<HealthElement>): Promise<Array<StoredDocumentIdentifier>>;
126
+ /**
127
+ *
128
+ * Get all data owners with access to the provided health element, attempting to identify any unknown anonymous data owners
129
+ * using delegations de-anonymization metadata.
130
+ * See [com.icure.cardinal.sdk.crypto.EntityAccessInformationProvider.getDataOwnersWithAccessTo] for the semantics of
131
+ * anonymous data owners and the behaviour of basic apis.
132
+ * @param healthElement a health element
133
+ * @return information on users with access to the provided health element
134
+ */
135
+ getDataOwnersWithAccessTo(healthElement: HealthElement): Promise<EntityAccessInformation>;
125
136
  /**
126
137
  *
127
138
  * Create a new health element. The provided health element must have the encryption metadata initialized.
@@ -1,4 +1,5 @@
1
1
  import { BaseFilterOptions, BaseSortableFilterOptions, PaginatedListIterator } from '../cardinal-sdk-ts.mjs';
2
+ import { EntityAccessInformation } from '../crypto/entities/EntityAccessInformation.mjs';
2
3
  import { GroupScoped } from '../model/GroupScoped.mjs';
3
4
  import { EncryptedHealthElement, HealthElement } from '../model/HealthElement.mjs';
4
5
  import { StoredDocumentIdentifier } from '../model/StoredDocumentIdentifier.mjs';
@@ -63,6 +64,11 @@ export interface HealthElementBasicInGroupApi {
63
64
  * In-group version of [HealthElementBasicFlavourlessApi.purgeHealthElements]
64
65
  */
65
66
  purgeHealthElements(healthElements: Array<GroupScoped<HealthElement>>): Promise<Array<GroupScoped<StoredDocumentIdentifier>>>;
67
+ /**
68
+ *
69
+ * In-group version of [HealthElementBasicFlavourlessApi.getDataOwnersWithAccessTo].
70
+ */
71
+ getDataOwnersWithAccessTo(healthElement: GroupScoped<HealthElement>): Promise<EntityAccessInformation>;
66
72
  /**
67
73
  *
68
74
  * In-group version of [HealthElementApi.createHealthElement]