@icure/api 8.6.3 → 8.6.5
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.
- package/icc-api/model/CryptoActorStub.d.ts +2 -0
- package/icc-api/model/CryptoActorStub.js.map +1 -1
- package/icc-api/model/Device.d.ts +1 -0
- package/icc-api/model/Device.js.map +1 -1
- package/icc-api/model/HealthcareParty.d.ts +1 -0
- package/icc-api/model/HealthcareParty.js.map +1 -1
- package/icc-api/model/ModelHelper.d.ts +1 -1
- package/icc-api/model/ModelHelper.js +15 -2
- package/icc-api/model/ModelHelper.js.map +1 -1
- package/icc-api/model/Patient.d.ts +1 -0
- package/icc-api/model/Patient.js.map +1 -1
- package/icc-api/model/User.d.ts +1 -0
- package/icc-api/model/User.js.map +1 -1
- package/icc-x-api/crypto/AES.js +1 -1
- package/icc-x-api/crypto/AES.js.map +1 -1
- package/icc-x-api/crypto/BaseExchangeDataManager.js +14 -14
- package/icc-x-api/crypto/BaseExchangeDataManager.js.map +1 -1
- package/icc-x-api/crypto/BaseExchangeKeysManager.js +1 -1
- package/icc-x-api/crypto/BaseExchangeKeysManager.js.map +1 -1
- package/icc-x-api/crypto/CryptoPrimitives.js +3 -2
- package/icc-x-api/crypto/CryptoPrimitives.js.map +1 -1
- package/icc-x-api/crypto/CryptoStrategies.d.ts +2 -1
- package/icc-x-api/crypto/CryptoStrategies.js.map +1 -1
- package/icc-x-api/crypto/ExchangeDataManager.js +3 -3
- package/icc-x-api/crypto/ExchangeDataManager.js.map +1 -1
- package/icc-x-api/crypto/ExtendedApisUtilsImpl.js +1 -1
- package/icc-x-api/crypto/ExtendedApisUtilsImpl.js.map +1 -1
- package/icc-x-api/crypto/KeyRecovery.js +3 -3
- package/icc-x-api/crypto/KeyRecovery.js.map +1 -1
- package/icc-x-api/crypto/NativeCryptoPrimitivesBridge.js +13 -13
- package/icc-x-api/crypto/NativeCryptoPrimitivesBridge.js.map +1 -1
- package/icc-x-api/crypto/RSA.js +2 -2
- package/icc-x-api/crypto/RSA.js.map +1 -1
- package/icc-x-api/crypto/RecoveryDataEncryption.js +5 -5
- package/icc-x-api/crypto/RecoveryDataEncryption.js.map +1 -1
- package/icc-x-api/crypto/SecureDelegationsManager.js +1 -1
- package/icc-x-api/crypto/SecureDelegationsManager.js.map +1 -1
- package/icc-x-api/crypto/ShamirKeysManager.js +1 -1
- package/icc-x-api/crypto/ShamirKeysManager.js.map +1 -1
- package/icc-x-api/crypto/UserEncryptionKeysManager.js +2 -2
- package/icc-x-api/crypto/UserEncryptionKeysManager.js.map +1 -1
- package/icc-x-api/crypto/utils.js +1 -1
- package/icc-x-api/crypto/utils.js.map +1 -1
- package/icc-x-api/filters/HealthElementByHcPartyCodeFilter.d.ts +24 -0
- package/icc-x-api/filters/HealthElementByHcPartyCodeFilter.js +24 -0
- package/icc-x-api/filters/HealthElementByHcPartyCodeFilter.js.map +1 -0
- package/icc-x-api/filters/HealthElementByHcPartyIdentifiersVersioningFilter.d.ts +22 -0
- package/icc-x-api/filters/HealthElementByHcPartyIdentifiersVersioningFilter.js +24 -0
- package/icc-x-api/filters/HealthElementByHcPartyIdentifiersVersioningFilter.js.map +1 -0
- package/icc-x-api/filters/HealthElementByHcPartyStatusVersioningFilter.d.ts +21 -0
- package/icc-x-api/filters/HealthElementByHcPartyStatusVersioningFilter.js +24 -0
- package/icc-x-api/filters/HealthElementByHcPartyStatusVersioningFilter.js.map +1 -0
- package/icc-x-api/filters/HealthElementByHcPartyTagFilter.d.ts +24 -0
- package/icc-x-api/filters/HealthElementByHcPartyTagFilter.js +24 -0
- package/icc-x-api/filters/HealthElementByHcPartyTagFilter.js.map +1 -0
- package/icc-x-api/filters/VersionFiltering.d.ts +14 -0
- package/icc-x-api/filters/VersionFiltering.js +19 -0
- package/icc-x-api/filters/VersionFiltering.js.map +1 -0
- package/icc-x-api/filters/filters.d.ts +8 -4
- package/icc-x-api/filters/filters.js +4 -0
- package/icc-x-api/filters/filters.js.map +1 -1
- package/icc-x-api/icc-receipt-x-api.js +1 -1
- package/icc-x-api/icc-receipt-x-api.js.map +1 -1
- package/icc-x-api/utils/binary-utils.js +1 -1
- package/icc-x-api/utils/binary-utils.js.map +1 -1
- package/package.json +1 -1
- package/test/icc-api/api/IccAnonymousAccessApi.js +1 -1
- package/test/icc-api/api/IccAnonymousAccessApi.js.map +1 -1
- package/test/icc-api/api/IccDocumentApi.js +13 -12
- package/test/icc-api/api/IccDocumentApi.js.map +1 -1
- package/test/icc-x-api/crud/comprehensive-crud-test.js +2 -2
- package/test/icc-x-api/crud/comprehensive-crud-test.js.map +1 -1
- package/test/icc-x-api/crypto/crypto-utils.js +1 -1
- package/test/icc-x-api/crypto/crypto-utils.js.map +1 -1
- package/test/icc-x-api/crypto/soft-deleted-data-owners.js +1 -1
- package/test/icc-x-api/crypto/soft-deleted-data-owners.js.map +1 -1
- package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js +1 -1
- package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js.map +1 -1
- package/test/icc-x-api/filters/healthelement.d.ts +1 -0
- package/test/icc-x-api/filters/healthelement.js +333 -0
- package/test/icc-x-api/filters/healthelement.js.map +1 -0
- package/test/icc-x-api/test-legacy-data-support.js +4 -4
- package/test/icc-x-api/test-legacy-data-support.js.map +1 -1
- package/test/support/CSM-729.d.ts +1 -0
- package/test/support/CSM-729.js +225 -0
- package/test/support/CSM-729.js.map +1 -0
- package/test/utils/TestCryptoStrategies.js +1 -1
- package/test/utils/TestCryptoStrategies.js.map +1 -1
- package/test/utils/roles.d.ts +1 -0
- package/test/utils/roles.js +1 -0
- package/test/utils/roles.js.map +1 -1
- package/test/utils/test_utils.js +2 -2
- package/test/utils/test_utils.js.map +1 -1
package/test/utils/roles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../test/utils/roles.ts"],"names":[],"mappings":"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","sourcesContent":["export const defaultRoles = {\n BASIC_DATA_OWNER: [\n 'HealthElementManagement.Create',\n 'HealthElementManagement.Purge',\n 'AccessLogManagement.Create',\n 'ArticleManagement.Create',\n 'ArticleManagement.Purge',\n 'CalendarItemManagement.Create',\n 'CalendarItemManagement.Purge',\n 'ClassificationManagement.Create',\n 'ClassificationManagement.Purge',\n 'ClassificationTemplateManagement.Create',\n 'CodeManagement.Read',\n 'ContactManagement.Create',\n 'ContactManagement.Purge',\n 'ServiceManagement.Create',\n 'ServiceManagement.Purge',\n 'DocumentManagement.Create',\n 'DocumentManagement.Purge',\n 'FormManagement.Create',\n 'FormManagement.Purge',\n 'InvoiceManagement.Create',\n 'InvoiceManagement.Purge',\n 'MaintenanceTaskManagement.Create',\n 'MaintenanceTaskManagement.Purge',\n 'PatientManagement.Create',\n 'PatientManagement.Purge',\n 'ReceiptManagement.Create',\n 'ReceiptManagement.Purge',\n 'TimeTableManagement.Create',\n 'TimeTableManagement.Purge',\n 'AgendaManagement.Create',\n 'GroupManagement.Read.BasicInfo',\n ],\n HIERARCHICAL_DATA_OWNER: [\n 'ApplicationSettingsManagement.Create',\n 'ApplicationSettingsManagement.ExtendedRead.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedUpdate.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedPurge.DelegatedToParents',\n 'ExtendedEncryptionMetadataEntitiesManagement.ForParent',\n 'CryptoActorManagement.ExtendedExchangeKeysSearch.DelegatedToParents',\n 'HealthElementManagement.ExtendedRead.DelegatedToParents',\n 'AccessLogManagement.ExtendedRead.DelegatedToParents',\n 'ArticleManagement.ExtendedRead.DelegatedToParents',\n 'CalendarItemManagement.ExtendedRead.DelegatedToParents',\n 'ClassificationManagement.ExtendedRead.DelegatedToParents',\n 'ClassificationTemplateManagement.Read',\n 'ContactManagement.ExtendedRead.DelegatedToParents',\n 'ServiceManagement.ExtendedRead.DelegatedToParents',\n 'DocumentManagement.ExtendedRead.DelegatedToParents',\n 'FormManagement.ExtendedRead.DelegatedToParents',\n 'InvoiceManagement.ExtendedRead.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedRead.DelegatedToParents',\n 'MessageManagement.ExtendedRead.DelegatedToParents',\n 'PatientManagement.ExtendedRead.DelegatedToParents',\n 'ReceiptManagement.ExtendedRead.DelegatedToParents',\n 'TimeTableManagement.ExtendedRead.DelegatedToParents',\n 'TopicManagement.ExtendedRead.DelegatedToParents',\n 'HealthElementManagement.ExtendedUpdate.DelegatedToParents',\n 'AccessLogManagement.ExtendedUpdate.DelegatedToParents',\n 'ArticleManagement.ExtendedUpdate.DelegatedToParents',\n 'CalendarItemManagement.ExtendedUpdate.DelegatedToParents',\n 'ClassificationManagement.ExtendedUpdate.DelegatedToParents',\n 'ClassificationTemplateManagement.Update',\n 'ContactManagement.ExtendedUpdate.DelegatedToParents',\n 'ServiceManagement.ExtendedUpdate.DelegatedToParents',\n 'DocumentManagement.ExtendedUpdate.DelegatedToParents',\n 'FormManagement.ExtendedUpdate.DelegatedToParents',\n 'InvoiceManagement.ExtendedUpdate.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedUpdate.DelegatedToParents',\n 'MessageManagement.ExtendedUpdate.DelegatedToParents',\n 'PatientManagement.ExtendedUpdate.DelegatedToParents',\n 'ReceiptManagement.ExtendedUpdate.DelegatedToParents',\n 'TimeTableManagement.ExtendedUpdate.DelegatedToParents',\n 'TopicManagement.ExtendedUpdate.DelegatedToParents',\n 'HealthElementManagement.ExtendedPurge.DelegatedToParents',\n 'AccessLogManagement.ExtendedPurge.DelegatedToParents',\n 'ArticleManagement.ExtendedPurge.DelegatedToParents',\n 'CalendarItemManagement.ExtendedPurge.DelegatedToParents',\n 'ClassificationManagement.ExtendedPurge.DelegatedToParents',\n 'ClassificationTemplateManagement.Delete',\n 'ContactManagement.ExtendedPurge.DelegatedToParents',\n 'ServiceManagement.ExtendedPurge.DelegatedToParents',\n 'DocumentManagement.ExtendedPurge.DelegatedToParents',\n 'FormManagement.ExtendedPurge.DelegatedToParents',\n 'InvoiceManagement.ExtendedPurge.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedPurge.DelegatedToParents',\n 'MessageManagement.ExtendedPurge.DelegatedToParents',\n 'PatientManagement.ExtendedPurge.DelegatedToParents',\n 'ReceiptManagement.ExtendedPurge.DelegatedToParents',\n 'TimeTableManagement.ExtendedPurge.DelegatedToParents',\n 'TopicManagement.ExtendedPurge.DelegatedToParents',\n 'SecureDelegationKeyMapManagement.ExtendedRead.DelegatedToParents',\n 'RecoveryDataManagement.ExtendedCreate.ForParent',\n 'RecoveryDataManagement.ExtendedRead.ForParent',\n 'RecoveryDataManagement.ExtendedDelete.ForParent',\n 'GroupManagement.Read.AdvancedInfo',\n ],\n PATIENT_USER_MANAGER: [\n 'UserManagement.Create.Patient',\n 'UserManagement.Read.Patient',\n 'UserManagement.Update.Patient.Secrets',\n 'UserManagement.Update.Patient.ContactDetails',\n 'UserManagement.Update.Patient.Roles',\n 'UserManagement.Update.Patient.Status',\n 'UserManagement.Update.Patient.DataOwnerDetails',\n 'UserManagement.Update.Patient.Basic',\n 'UserManagement.Update.Patient.Metadata',\n 'UserManagement.Delete.Patient',\n 'UserManagement.Search',\n 'RecoveryDataManagement.ExtendedCreate.Patient',\n 'RecoveryDataManagement.ExtendedRead.Patient',\n 'RecoveryDataManagement.ExtendedDelete.Patient',\n ],\n HCP_USER_MANAGER: [\n 'UserManagement.Create.HealthcareParty',\n 'UserManagement.Read.HealthcareParty',\n 'UserManagement.Update.HealthcareParty.Secrets',\n 'UserManagement.Update.HealthcareParty.ContactDetails',\n 'UserManagement.Update.HealthcareParty.Roles',\n 'UserManagement.Update.HealthcareParty.Status',\n 'UserManagement.Update.HealthcareParty.DataOwnerDetails',\n 'UserManagement.Update.HealthcareParty.Basic',\n 'UserManagement.Update.HealthcareParty.Metadata',\n 'UserManagement.Delete.HealthcareParty',\n 'UserManagement.Search',\n 'HealthcarePartyManagement.Create.Any',\n 'HealthcarePartyManagement.FullRead',\n 'HealthcarePartyManagement.Delete.Any',\n 'HealthcarePartyManagement.Update.Any',\n 'HealthcarePartyManagement.ProtectedContentUpdate.CreationMetadata',\n 'HealthcarePartyManagement.ProtectedContentUpdate.Parent',\n 'HealthcarePartyManagement.ProtectedContentUpdate.BankDetails',\n 'RecoveryDataManagement.ExtendedCreate.HealthcareParty',\n 'RecoveryDataManagement.ExtendedRead.HealthcareParty',\n 'RecoveryDataManagement.ExtendedDelete.HealthcareParty',\n ],\n DEVICE_USER_MANAGER: [\n 'UserManagement.Create.Device',\n 'UserManagement.Read.Device',\n 'UserManagement.Update.Device.Secrets',\n 'UserManagement.Update.Device.ContactDetails',\n 'UserManagement.Update.Device.Roles',\n 'UserManagement.Update.Device.Status',\n 'UserManagement.Update.Device.DataOwnerDetails',\n 'UserManagement.Update.Device.Basic',\n 'UserManagement.Update.Device.Metadata',\n 'UserManagement.Delete.Device',\n 'UserManagement.Search',\n 'RecoveryDataManagement.ExtendedCreate.Device',\n 'RecoveryDataManagement.ExtendedRead.Device',\n 'RecoveryDataManagement.ExtendedDelete.Device',\n 'DeviceManagement.Read.Any',\n 'DeviceManagement.Create',\n 'DeviceManagement.Purge.Any',\n 'DeviceManagement.Update.Any',\n 'DeviceManagement.Search',\n ],\n BASIC_USER: [\n 'UserManagement.Read.Own',\n 'UserManagement.Update.Own.Secrets',\n 'UserManagement.Update.Own.ContactDetails',\n 'UserManagement.Update.Own.Status',\n 'UserManagement.Update.Own.Basic',\n 'UserManagement.Update.Own.Metadata',\n 'UserManagement.Update.Own.VerifiedLoginIdentifiers',\n 'UserManagement.Delete.Own',\n 'GroupManagement.Read.BasicInfo',\n ],\n BASIC_USER_MANAGER: ['UserManagement.Create.Other'],\n TOPIC_PARTICIPANT: ['MessageManagement.ConditionalCreate.AsTopicParticipant', 'MessageManagement.Purge'],\n TOPIC_MANAGER: ['TopicManagement.Create'],\n LEGACY_MESSAGE_MANAGER: ['MessageManagement.Create', 'MessageManagement.Purge'],\n LEGACY_HCP: [\n 'ApplicationSettingsManagement.Create',\n 'ApplicationSettingsManagement.ExtendedRead.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedUpdate.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedPurge.DelegatedToParents',\n 'ExtendedEncryptionMetadataEntitiesManagement.ForParent',\n 'UserManagement.Update.Own.LoginIdentifiers',\n 'AgendaManagement.Create',\n 'MessageManagement.ProtectedContentUpdate.ReadStatus',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedUser',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedTime',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedEntryOverride',\n 'CryptoActorManagement.ExtendedUpdate.Patient.PublicKeys',\n 'CryptoActorManagement.ExtendedUpdate.Patient.AnyExchangeKeys',\n 'CryptoActorManagement.ExtendedUpdate.Patient.RecoveryData',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.PublicKeys',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.AnyExchangeKeys',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.RecoveryData',\n 'CryptoActorManagement.ExtendedExchangeKeysSearch.Any',\n 'UserManagement.Create.HealthcareParty',\n 'UserManagement.Create.Patient',\n 'UserManagement.Create.Device',\n 'UserManagement.Read.Own',\n 'UserManagement.Read.Admin',\n 'UserManagement.Read.HealthcareParty',\n 'UserManagement.Read.Patient',\n 'UserManagement.Read.Device',\n 'UserManagement.Read.Other',\n 'UserManagement.Search',\n 'UserManagement.Update.Own.Basic',\n 'UserManagement.Update.Own.ContactDetails',\n 'UserManagement.Update.Own.Status',\n 'UserManagement.Update.HealthcareParty.Basic',\n 'UserManagement.Update.HealthcareParty.ContactDetails',\n 'UserManagement.Update.HealthcareParty.Status',\n 'UserManagement.Update.HealthcareParty.Secrets',\n 'UserManagement.Update.Patient.Basic',\n 'UserManagement.Update.Patient.ContactDetails',\n 'UserManagement.Update.Patient.Status',\n 'UserManagement.Update.Patient.Secrets',\n 'UserManagement.Update.Patient.DataOwnerDetails',\n 'UserManagement.Update.Patient.Roles',\n 'UserManagement.Update.Device.Basic',\n 'UserManagement.Update.Device.ContactDetails',\n 'UserManagement.Update.Device.Status',\n 'UserManagement.Update.Device.Secrets',\n 'UserManagement.Update.Device.DataOwnerDetails',\n 'UserManagement.Update.Device.Roles',\n 'UserManagement.Update.Other.Basic',\n 'UserManagement.Update.Other.ContactDetails',\n 'UserManagement.Update.Other.Status',\n 'UserManagement.Update.Other.Secrets',\n 'UserManagement.Update.Other.DataOwnerDetails',\n 'UserManagement.Update.Other.Roles',\n 'UserManagement.Delete.Own',\n 'UserManagement.Delete.Admin',\n 'UserManagement.Delete.HealthcareParty',\n 'UserManagement.Delete.Patient',\n 'UserManagement.Delete.Device',\n 'UserManagement.Delete.Other',\n 'HealthElementManagement.Create',\n 'HealthElementManagement.ExtendedRead.Any',\n 'HealthElementManagement.ExtendedUpdate.Any',\n 'HealthElementManagement.ExtendedPurge.Any',\n 'HealthElementManagement.ProtectedContentUpdate.CreationMetadata',\n 'AccessLogManagement.Create',\n 'AccessLogManagement.ExtendedRead.Any',\n 'AccessLogManagement.ExtendedUpdate.Any',\n 'AccessLogManagement.ExtendedPurge.Any',\n 'AccessLogManagement.ProtectedContentUpdate.CreationMetadata',\n 'AccessLogManagement.AggregatePatientsByUser.Any',\n 'ArticleManagement.Create',\n 'ArticleManagement.ExtendedRead.Any',\n 'ArticleManagement.ExtendedUpdate.Any',\n 'ArticleManagement.ExtendedPurge.Any',\n 'ArticleManagement.ProtectedContentUpdate.CreationMetadata',\n 'CalendarItemManagement.Create',\n 'CalendarItemManagement.ExtendedRead.Any',\n 'CalendarItemManagement.ExtendedUpdate.Any',\n 'CalendarItemManagement.ExtendedPurge.Any',\n 'CalendarItemManagement.ProtectedContentUpdate.CreationMetadata',\n 'ClassificationManagement.Create',\n 'ClassificationManagement.ExtendedRead.Any',\n 'ClassificationManagement.ExtendedUpdate.Any',\n 'ClassificationManagement.ExtendedPurge.Any',\n 'ClassificationManagement.ProtectedContentUpdate.CreationMetadata',\n 'ClassificationTemplateManagement.Create',\n 'ClassificationTemplateManagement.Read',\n 'ClassificationTemplateManagement.Update',\n 'ClassificationTemplateManagement.Delete',\n 'ClassificationTemplateManagement.ProtectedContentUpdate.CreationMetadata',\n 'ContactManagement.Create',\n 'ContactManagement.ExtendedRead.Any',\n 'ContactManagement.ExtendedUpdate.Any',\n 'ContactManagement.ExtendedPurge.Any',\n 'ContactManagement.ProtectedContentUpdate.CreationMetadata',\n 'ServiceManagement.ExtendedRead.Any',\n 'DocumentManagement.Create',\n 'DocumentManagement.ExtendedRead.Any',\n 'DocumentManagement.ExtendedUpdate.Any',\n 'DocumentManagement.ExtendedPurge.Any',\n 'DocumentManagement.ProtectedContentUpdate.CreationMetadata',\n 'FormManagement.Create',\n 'FormManagement.ExtendedRead.Any',\n 'FormManagement.ExtendedUpdate.Any',\n 'FormManagement.ExtendedPurge.Any',\n 'FormManagement.ProtectedContentUpdate.CreationMetadata',\n 'InvoiceManagement.Create',\n 'InvoiceManagement.ExtendedRead.Any',\n 'InvoiceManagement.ExtendedUpdate.Any',\n 'InvoiceManagement.ExtendedPurge.Any',\n 'InvoiceManagement.ProtectedContentUpdate.CreationMetadata',\n 'InvoiceManagement.Maintenance.InvoicingCodesUpdate.Any',\n 'InvoiceManagement.Maintenance.CanGetInvoicesForUsersAndInsurances',\n 'MaintenanceTaskManagement.Create',\n 'MaintenanceTaskManagement.ExtendedRead.Any',\n 'MaintenanceTaskManagement.ExtendedUpdate.Any',\n 'MaintenanceTaskManagement.ExtendedPurge.Any',\n 'MaintenanceTaskManagement.ProtectedContentUpdate.CreationMetadata',\n 'MessageManagement.Create',\n 'MessageManagement.ExtendedRead.Any',\n 'MessageManagement.ExtendedUpdate.Any',\n 'MessageManagement.ExtendedPurge.Any',\n 'MessageManagement.ProtectedContentUpdate.CreationMetadata',\n 'PatientManagement.Create',\n 'PatientManagement.ExtendedRead.Any',\n 'PatientManagement.ExtendedUpdate.Any',\n 'PatientManagement.ExtendedPurge.Any',\n 'PatientManagement.ProtectedContentUpdate.CreationMetadata',\n 'ReceiptManagement.Create',\n 'ReceiptManagement.ExtendedRead.Any',\n 'ReceiptManagement.ExtendedUpdate.Any',\n 'ReceiptManagement.ExtendedPurge.Any',\n 'ReceiptManagement.ProtectedContentUpdate.CreationMetadata',\n 'TimeTableManagement.Create',\n 'TimeTableManagement.ExtendedRead.Any',\n 'TimeTableManagement.ExtendedUpdate.Any',\n 'TimeTableManagement.ExtendedPurge.Any',\n 'TimeTableManagement.ProtectedContentUpdate.CreationMetadata',\n 'TopicManagement.Create',\n 'TopicManagement.ExtendedRead.Any',\n 'TopicManagement.ExtendedUpdate.Any',\n 'TopicManagement.ExtendedPurge.Any',\n 'TopicManagement.ProtectedContentUpdate.CreationMetadata',\n 'SystemMaintenance.TmpServiceUser',\n 'SystemMaintenance.ViewUpdate',\n 'SystemMaintenance.AutoResolveConflicts',\n 'SystemMaintenance.Metrics',\n 'SystemMaintenance.IndexingInfoReader',\n 'SystemMaintenance.ReplicationInfoReader',\n 'HealthcarePartyManagement.FullRead',\n 'HealthcarePartyManagement.Create.Any',\n 'HealthcarePartyManagement.Delete.Any',\n 'HealthcarePartyManagement.Update.Any',\n 'HealthcarePartyManagement.ProtectedContentUpdate.CreationMetadata',\n 'HealthcarePartyManagement.ProtectedContentUpdate.Parent',\n 'HealthcarePartyManagement.ProtectedContentUpdate.BankDetails',\n 'GroupManagement.Read.AdvancedInfo',\n 'ObjectStorageManagement.Read',\n 'ObjectStorageManagement.Create',\n ],\n}\n"]}
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../test/utils/roles.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,gBAAgB,EAAE,CAAC,kCAAkC,CAAC;IACtD,gBAAgB,EAAE;QAChB,gCAAgC;QAChC,+BAA+B;QAC/B,4BAA4B;QAC5B,0BAA0B;QAC1B,yBAAyB;QACzB,+BAA+B;QAC/B,8BAA8B;QAC9B,iCAAiC;QACjC,gCAAgC;QAChC,yCAAyC;QACzC,qBAAqB;QACrB,0BAA0B;QAC1B,yBAAyB;QACzB,0BAA0B;QAC1B,yBAAyB;QACzB,2BAA2B;QAC3B,0BAA0B;QAC1B,uBAAuB;QACvB,sBAAsB;QACtB,0BAA0B;QAC1B,yBAAyB;QACzB,kCAAkC;QAClC,iCAAiC;QACjC,0BAA0B;QAC1B,yBAAyB;QACzB,0BAA0B;QAC1B,yBAAyB;QACzB,4BAA4B;QAC5B,2BAA2B;QAC3B,yBAAyB;QACzB,gCAAgC;KACjC;IACD,uBAAuB,EAAE;QACvB,sCAAsC;QACtC,+DAA+D;QAC/D,iEAAiE;QACjE,gEAAgE;QAChE,wDAAwD;QACxD,qEAAqE;QACrE,yDAAyD;QACzD,qDAAqD;QACrD,mDAAmD;QACnD,wDAAwD;QACxD,0DAA0D;QAC1D,uCAAuC;QACvC,mDAAmD;QACnD,mDAAmD;QACnD,oDAAoD;QACpD,gDAAgD;QAChD,mDAAmD;QACnD,2DAA2D;QAC3D,mDAAmD;QACnD,mDAAmD;QACnD,mDAAmD;QACnD,qDAAqD;QACrD,iDAAiD;QACjD,2DAA2D;QAC3D,uDAAuD;QACvD,qDAAqD;QACrD,0DAA0D;QAC1D,4DAA4D;QAC5D,yCAAyC;QACzC,qDAAqD;QACrD,qDAAqD;QACrD,sDAAsD;QACtD,kDAAkD;QAClD,qDAAqD;QACrD,6DAA6D;QAC7D,qDAAqD;QACrD,qDAAqD;QACrD,qDAAqD;QACrD,uDAAuD;QACvD,mDAAmD;QACnD,0DAA0D;QAC1D,sDAAsD;QACtD,oDAAoD;QACpD,yDAAyD;QACzD,2DAA2D;QAC3D,yCAAyC;QACzC,oDAAoD;QACpD,oDAAoD;QACpD,qDAAqD;QACrD,iDAAiD;QACjD,oDAAoD;QACpD,4DAA4D;QAC5D,oDAAoD;QACpD,oDAAoD;QACpD,oDAAoD;QACpD,sDAAsD;QACtD,kDAAkD;QAClD,kEAAkE;QAClE,iDAAiD;QACjD,+CAA+C;QAC/C,iDAAiD;QACjD,mCAAmC;KACpC;IACD,oBAAoB,EAAE;QACpB,+BAA+B;QAC/B,6BAA6B;QAC7B,uCAAuC;QACvC,8CAA8C;QAC9C,qCAAqC;QACrC,sCAAsC;QACtC,gDAAgD;QAChD,qCAAqC;QACrC,wCAAwC;QACxC,+BAA+B;QAC/B,uBAAuB;QACvB,+CAA+C;QAC/C,6CAA6C;QAC7C,+CAA+C;KAChD;IACD,gBAAgB,EAAE;QAChB,uCAAuC;QACvC,qCAAqC;QACrC,+CAA+C;QAC/C,sDAAsD;QACtD,6CAA6C;QAC7C,8CAA8C;QAC9C,wDAAwD;QACxD,6CAA6C;QAC7C,gDAAgD;QAChD,uCAAuC;QACvC,uBAAuB;QACvB,sCAAsC;QACtC,oCAAoC;QACpC,sCAAsC;QACtC,sCAAsC;QACtC,mEAAmE;QACnE,yDAAyD;QACzD,8DAA8D;QAC9D,uDAAuD;QACvD,qDAAqD;QACrD,uDAAuD;KACxD;IACD,mBAAmB,EAAE;QACnB,8BAA8B;QAC9B,4BAA4B;QAC5B,sCAAsC;QACtC,6CAA6C;QAC7C,oCAAoC;QACpC,qCAAqC;QACrC,+CAA+C;QAC/C,oCAAoC;QACpC,uCAAuC;QACvC,8BAA8B;QAC9B,uBAAuB;QACvB,8CAA8C;QAC9C,4CAA4C;QAC5C,8CAA8C;QAC9C,2BAA2B;QAC3B,yBAAyB;QACzB,4BAA4B;QAC5B,6BAA6B;QAC7B,yBAAyB;KAC1B;IACD,UAAU,EAAE;QACV,yBAAyB;QACzB,mCAAmC;QACnC,0CAA0C;QAC1C,kCAAkC;QAClC,iCAAiC;QACjC,oCAAoC;QACpC,oDAAoD;QACpD,2BAA2B;QAC3B,gCAAgC;KACjC;IACD,kBAAkB,EAAE,CAAC,6BAA6B,CAAC;IACnD,iBAAiB,EAAE,CAAC,wDAAwD,EAAE,yBAAyB,CAAC;IACxG,aAAa,EAAE,CAAC,wBAAwB,CAAC;IACzC,sBAAsB,EAAE,CAAC,0BAA0B,EAAE,yBAAyB,CAAC;IAC/E,UAAU,EAAE;QACV,sCAAsC;QACtC,+DAA+D;QAC/D,iEAAiE;QACjE,gEAAgE;QAChE,wDAAwD;QACxD,4CAA4C;QAC5C,yBAAyB;QACzB,qDAAqD;QACrD,qDAAqD;QACrD,qDAAqD;QACrD,8DAA8D;QAC9D,yDAAyD;QACzD,8DAA8D;QAC9D,2DAA2D;QAC3D,iEAAiE;QACjE,sEAAsE;QACtE,mEAAmE;QACnE,sDAAsD;QACtD,uCAAuC;QACvC,+BAA+B;QAC/B,8BAA8B;QAC9B,yBAAyB;QACzB,2BAA2B;QAC3B,qCAAqC;QACrC,6BAA6B;QAC7B,4BAA4B;QAC5B,2BAA2B;QAC3B,uBAAuB;QACvB,iCAAiC;QACjC,0CAA0C;QAC1C,kCAAkC;QAClC,6CAA6C;QAC7C,sDAAsD;QACtD,8CAA8C;QAC9C,+CAA+C;QAC/C,qCAAqC;QACrC,8CAA8C;QAC9C,sCAAsC;QACtC,uCAAuC;QACvC,gDAAgD;QAChD,qCAAqC;QACrC,oCAAoC;QACpC,6CAA6C;QAC7C,qCAAqC;QACrC,sCAAsC;QACtC,+CAA+C;QAC/C,oCAAoC;QACpC,mCAAmC;QACnC,4CAA4C;QAC5C,oCAAoC;QACpC,qCAAqC;QACrC,8CAA8C;QAC9C,mCAAmC;QACnC,2BAA2B;QAC3B,6BAA6B;QAC7B,uCAAuC;QACvC,+BAA+B;QAC/B,8BAA8B;QAC9B,6BAA6B;QAC7B,gCAAgC;QAChC,0CAA0C;QAC1C,4CAA4C;QAC5C,2CAA2C;QAC3C,iEAAiE;QACjE,4BAA4B;QAC5B,sCAAsC;QACtC,wCAAwC;QACxC,uCAAuC;QACvC,6DAA6D;QAC7D,iDAAiD;QACjD,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,+BAA+B;QAC/B,yCAAyC;QACzC,2CAA2C;QAC3C,0CAA0C;QAC1C,gEAAgE;QAChE,iCAAiC;QACjC,2CAA2C;QAC3C,6CAA6C;QAC7C,4CAA4C;QAC5C,kEAAkE;QAClE,yCAAyC;QACzC,uCAAuC;QACvC,yCAAyC;QACzC,yCAAyC;QACzC,0EAA0E;QAC1E,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,oCAAoC;QACpC,2BAA2B;QAC3B,qCAAqC;QACrC,uCAAuC;QACvC,sCAAsC;QACtC,4DAA4D;QAC5D,uBAAuB;QACvB,iCAAiC;QACjC,mCAAmC;QACnC,kCAAkC;QAClC,wDAAwD;QACxD,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,wDAAwD;QACxD,mEAAmE;QACnE,kCAAkC;QAClC,4CAA4C;QAC5C,8CAA8C;QAC9C,6CAA6C;QAC7C,mEAAmE;QACnE,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,4BAA4B;QAC5B,sCAAsC;QACtC,wCAAwC;QACxC,uCAAuC;QACvC,6DAA6D;QAC7D,wBAAwB;QACxB,kCAAkC;QAClC,oCAAoC;QACpC,mCAAmC;QACnC,yDAAyD;QACzD,kCAAkC;QAClC,8BAA8B;QAC9B,wCAAwC;QACxC,2BAA2B;QAC3B,sCAAsC;QACtC,yCAAyC;QACzC,oCAAoC;QACpC,sCAAsC;QACtC,sCAAsC;QACtC,sCAAsC;QACtC,mEAAmE;QACnE,yDAAyD;QACzD,8DAA8D;QAC9D,mCAAmC;QACnC,8BAA8B;QAC9B,gCAAgC;KACjC;CACF,CAAA","sourcesContent":["export const defaultRoles = {\n ANY_ACTING_SCOPE: ['DataOwner.ActingScope.OfChildren'],\n BASIC_DATA_OWNER: [\n 'HealthElementManagement.Create',\n 'HealthElementManagement.Purge',\n 'AccessLogManagement.Create',\n 'ArticleManagement.Create',\n 'ArticleManagement.Purge',\n 'CalendarItemManagement.Create',\n 'CalendarItemManagement.Purge',\n 'ClassificationManagement.Create',\n 'ClassificationManagement.Purge',\n 'ClassificationTemplateManagement.Create',\n 'CodeManagement.Read',\n 'ContactManagement.Create',\n 'ContactManagement.Purge',\n 'ServiceManagement.Create',\n 'ServiceManagement.Purge',\n 'DocumentManagement.Create',\n 'DocumentManagement.Purge',\n 'FormManagement.Create',\n 'FormManagement.Purge',\n 'InvoiceManagement.Create',\n 'InvoiceManagement.Purge',\n 'MaintenanceTaskManagement.Create',\n 'MaintenanceTaskManagement.Purge',\n 'PatientManagement.Create',\n 'PatientManagement.Purge',\n 'ReceiptManagement.Create',\n 'ReceiptManagement.Purge',\n 'TimeTableManagement.Create',\n 'TimeTableManagement.Purge',\n 'AgendaManagement.Create',\n 'GroupManagement.Read.BasicInfo',\n ],\n HIERARCHICAL_DATA_OWNER: [\n 'ApplicationSettingsManagement.Create',\n 'ApplicationSettingsManagement.ExtendedRead.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedUpdate.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedPurge.DelegatedToParents',\n 'ExtendedEncryptionMetadataEntitiesManagement.ForParent',\n 'CryptoActorManagement.ExtendedExchangeKeysSearch.DelegatedToParents',\n 'HealthElementManagement.ExtendedRead.DelegatedToParents',\n 'AccessLogManagement.ExtendedRead.DelegatedToParents',\n 'ArticleManagement.ExtendedRead.DelegatedToParents',\n 'CalendarItemManagement.ExtendedRead.DelegatedToParents',\n 'ClassificationManagement.ExtendedRead.DelegatedToParents',\n 'ClassificationTemplateManagement.Read',\n 'ContactManagement.ExtendedRead.DelegatedToParents',\n 'ServiceManagement.ExtendedRead.DelegatedToParents',\n 'DocumentManagement.ExtendedRead.DelegatedToParents',\n 'FormManagement.ExtendedRead.DelegatedToParents',\n 'InvoiceManagement.ExtendedRead.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedRead.DelegatedToParents',\n 'MessageManagement.ExtendedRead.DelegatedToParents',\n 'PatientManagement.ExtendedRead.DelegatedToParents',\n 'ReceiptManagement.ExtendedRead.DelegatedToParents',\n 'TimeTableManagement.ExtendedRead.DelegatedToParents',\n 'TopicManagement.ExtendedRead.DelegatedToParents',\n 'HealthElementManagement.ExtendedUpdate.DelegatedToParents',\n 'AccessLogManagement.ExtendedUpdate.DelegatedToParents',\n 'ArticleManagement.ExtendedUpdate.DelegatedToParents',\n 'CalendarItemManagement.ExtendedUpdate.DelegatedToParents',\n 'ClassificationManagement.ExtendedUpdate.DelegatedToParents',\n 'ClassificationTemplateManagement.Update',\n 'ContactManagement.ExtendedUpdate.DelegatedToParents',\n 'ServiceManagement.ExtendedUpdate.DelegatedToParents',\n 'DocumentManagement.ExtendedUpdate.DelegatedToParents',\n 'FormManagement.ExtendedUpdate.DelegatedToParents',\n 'InvoiceManagement.ExtendedUpdate.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedUpdate.DelegatedToParents',\n 'MessageManagement.ExtendedUpdate.DelegatedToParents',\n 'PatientManagement.ExtendedUpdate.DelegatedToParents',\n 'ReceiptManagement.ExtendedUpdate.DelegatedToParents',\n 'TimeTableManagement.ExtendedUpdate.DelegatedToParents',\n 'TopicManagement.ExtendedUpdate.DelegatedToParents',\n 'HealthElementManagement.ExtendedPurge.DelegatedToParents',\n 'AccessLogManagement.ExtendedPurge.DelegatedToParents',\n 'ArticleManagement.ExtendedPurge.DelegatedToParents',\n 'CalendarItemManagement.ExtendedPurge.DelegatedToParents',\n 'ClassificationManagement.ExtendedPurge.DelegatedToParents',\n 'ClassificationTemplateManagement.Delete',\n 'ContactManagement.ExtendedPurge.DelegatedToParents',\n 'ServiceManagement.ExtendedPurge.DelegatedToParents',\n 'DocumentManagement.ExtendedPurge.DelegatedToParents',\n 'FormManagement.ExtendedPurge.DelegatedToParents',\n 'InvoiceManagement.ExtendedPurge.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedPurge.DelegatedToParents',\n 'MessageManagement.ExtendedPurge.DelegatedToParents',\n 'PatientManagement.ExtendedPurge.DelegatedToParents',\n 'ReceiptManagement.ExtendedPurge.DelegatedToParents',\n 'TimeTableManagement.ExtendedPurge.DelegatedToParents',\n 'TopicManagement.ExtendedPurge.DelegatedToParents',\n 'SecureDelegationKeyMapManagement.ExtendedRead.DelegatedToParents',\n 'RecoveryDataManagement.ExtendedCreate.ForParent',\n 'RecoveryDataManagement.ExtendedRead.ForParent',\n 'RecoveryDataManagement.ExtendedDelete.ForParent',\n 'GroupManagement.Read.AdvancedInfo',\n ],\n PATIENT_USER_MANAGER: [\n 'UserManagement.Create.Patient',\n 'UserManagement.Read.Patient',\n 'UserManagement.Update.Patient.Secrets',\n 'UserManagement.Update.Patient.ContactDetails',\n 'UserManagement.Update.Patient.Roles',\n 'UserManagement.Update.Patient.Status',\n 'UserManagement.Update.Patient.DataOwnerDetails',\n 'UserManagement.Update.Patient.Basic',\n 'UserManagement.Update.Patient.Metadata',\n 'UserManagement.Delete.Patient',\n 'UserManagement.Search',\n 'RecoveryDataManagement.ExtendedCreate.Patient',\n 'RecoveryDataManagement.ExtendedRead.Patient',\n 'RecoveryDataManagement.ExtendedDelete.Patient',\n ],\n HCP_USER_MANAGER: [\n 'UserManagement.Create.HealthcareParty',\n 'UserManagement.Read.HealthcareParty',\n 'UserManagement.Update.HealthcareParty.Secrets',\n 'UserManagement.Update.HealthcareParty.ContactDetails',\n 'UserManagement.Update.HealthcareParty.Roles',\n 'UserManagement.Update.HealthcareParty.Status',\n 'UserManagement.Update.HealthcareParty.DataOwnerDetails',\n 'UserManagement.Update.HealthcareParty.Basic',\n 'UserManagement.Update.HealthcareParty.Metadata',\n 'UserManagement.Delete.HealthcareParty',\n 'UserManagement.Search',\n 'HealthcarePartyManagement.Create.Any',\n 'HealthcarePartyManagement.FullRead',\n 'HealthcarePartyManagement.Delete.Any',\n 'HealthcarePartyManagement.Update.Any',\n 'HealthcarePartyManagement.ProtectedContentUpdate.CreationMetadata',\n 'HealthcarePartyManagement.ProtectedContentUpdate.Parent',\n 'HealthcarePartyManagement.ProtectedContentUpdate.BankDetails',\n 'RecoveryDataManagement.ExtendedCreate.HealthcareParty',\n 'RecoveryDataManagement.ExtendedRead.HealthcareParty',\n 'RecoveryDataManagement.ExtendedDelete.HealthcareParty',\n ],\n DEVICE_USER_MANAGER: [\n 'UserManagement.Create.Device',\n 'UserManagement.Read.Device',\n 'UserManagement.Update.Device.Secrets',\n 'UserManagement.Update.Device.ContactDetails',\n 'UserManagement.Update.Device.Roles',\n 'UserManagement.Update.Device.Status',\n 'UserManagement.Update.Device.DataOwnerDetails',\n 'UserManagement.Update.Device.Basic',\n 'UserManagement.Update.Device.Metadata',\n 'UserManagement.Delete.Device',\n 'UserManagement.Search',\n 'RecoveryDataManagement.ExtendedCreate.Device',\n 'RecoveryDataManagement.ExtendedRead.Device',\n 'RecoveryDataManagement.ExtendedDelete.Device',\n 'DeviceManagement.Read.Any',\n 'DeviceManagement.Create',\n 'DeviceManagement.Purge.Any',\n 'DeviceManagement.Update.Any',\n 'DeviceManagement.Search',\n ],\n BASIC_USER: [\n 'UserManagement.Read.Own',\n 'UserManagement.Update.Own.Secrets',\n 'UserManagement.Update.Own.ContactDetails',\n 'UserManagement.Update.Own.Status',\n 'UserManagement.Update.Own.Basic',\n 'UserManagement.Update.Own.Metadata',\n 'UserManagement.Update.Own.VerifiedLoginIdentifiers',\n 'UserManagement.Delete.Own',\n 'GroupManagement.Read.BasicInfo',\n ],\n BASIC_USER_MANAGER: ['UserManagement.Create.Other'],\n TOPIC_PARTICIPANT: ['MessageManagement.ConditionalCreate.AsTopicParticipant', 'MessageManagement.Purge'],\n TOPIC_MANAGER: ['TopicManagement.Create'],\n LEGACY_MESSAGE_MANAGER: ['MessageManagement.Create', 'MessageManagement.Purge'],\n LEGACY_HCP: [\n 'ApplicationSettingsManagement.Create',\n 'ApplicationSettingsManagement.ExtendedRead.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedUpdate.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedPurge.DelegatedToParents',\n 'ExtendedEncryptionMetadataEntitiesManagement.ForParent',\n 'UserManagement.Update.Own.LoginIdentifiers',\n 'AgendaManagement.Create',\n 'MessageManagement.ProtectedContentUpdate.ReadStatus',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedUser',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedTime',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedEntryOverride',\n 'CryptoActorManagement.ExtendedUpdate.Patient.PublicKeys',\n 'CryptoActorManagement.ExtendedUpdate.Patient.AnyExchangeKeys',\n 'CryptoActorManagement.ExtendedUpdate.Patient.RecoveryData',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.PublicKeys',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.AnyExchangeKeys',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.RecoveryData',\n 'CryptoActorManagement.ExtendedExchangeKeysSearch.Any',\n 'UserManagement.Create.HealthcareParty',\n 'UserManagement.Create.Patient',\n 'UserManagement.Create.Device',\n 'UserManagement.Read.Own',\n 'UserManagement.Read.Admin',\n 'UserManagement.Read.HealthcareParty',\n 'UserManagement.Read.Patient',\n 'UserManagement.Read.Device',\n 'UserManagement.Read.Other',\n 'UserManagement.Search',\n 'UserManagement.Update.Own.Basic',\n 'UserManagement.Update.Own.ContactDetails',\n 'UserManagement.Update.Own.Status',\n 'UserManagement.Update.HealthcareParty.Basic',\n 'UserManagement.Update.HealthcareParty.ContactDetails',\n 'UserManagement.Update.HealthcareParty.Status',\n 'UserManagement.Update.HealthcareParty.Secrets',\n 'UserManagement.Update.Patient.Basic',\n 'UserManagement.Update.Patient.ContactDetails',\n 'UserManagement.Update.Patient.Status',\n 'UserManagement.Update.Patient.Secrets',\n 'UserManagement.Update.Patient.DataOwnerDetails',\n 'UserManagement.Update.Patient.Roles',\n 'UserManagement.Update.Device.Basic',\n 'UserManagement.Update.Device.ContactDetails',\n 'UserManagement.Update.Device.Status',\n 'UserManagement.Update.Device.Secrets',\n 'UserManagement.Update.Device.DataOwnerDetails',\n 'UserManagement.Update.Device.Roles',\n 'UserManagement.Update.Other.Basic',\n 'UserManagement.Update.Other.ContactDetails',\n 'UserManagement.Update.Other.Status',\n 'UserManagement.Update.Other.Secrets',\n 'UserManagement.Update.Other.DataOwnerDetails',\n 'UserManagement.Update.Other.Roles',\n 'UserManagement.Delete.Own',\n 'UserManagement.Delete.Admin',\n 'UserManagement.Delete.HealthcareParty',\n 'UserManagement.Delete.Patient',\n 'UserManagement.Delete.Device',\n 'UserManagement.Delete.Other',\n 'HealthElementManagement.Create',\n 'HealthElementManagement.ExtendedRead.Any',\n 'HealthElementManagement.ExtendedUpdate.Any',\n 'HealthElementManagement.ExtendedPurge.Any',\n 'HealthElementManagement.ProtectedContentUpdate.CreationMetadata',\n 'AccessLogManagement.Create',\n 'AccessLogManagement.ExtendedRead.Any',\n 'AccessLogManagement.ExtendedUpdate.Any',\n 'AccessLogManagement.ExtendedPurge.Any',\n 'AccessLogManagement.ProtectedContentUpdate.CreationMetadata',\n 'AccessLogManagement.AggregatePatientsByUser.Any',\n 'ArticleManagement.Create',\n 'ArticleManagement.ExtendedRead.Any',\n 'ArticleManagement.ExtendedUpdate.Any',\n 'ArticleManagement.ExtendedPurge.Any',\n 'ArticleManagement.ProtectedContentUpdate.CreationMetadata',\n 'CalendarItemManagement.Create',\n 'CalendarItemManagement.ExtendedRead.Any',\n 'CalendarItemManagement.ExtendedUpdate.Any',\n 'CalendarItemManagement.ExtendedPurge.Any',\n 'CalendarItemManagement.ProtectedContentUpdate.CreationMetadata',\n 'ClassificationManagement.Create',\n 'ClassificationManagement.ExtendedRead.Any',\n 'ClassificationManagement.ExtendedUpdate.Any',\n 'ClassificationManagement.ExtendedPurge.Any',\n 'ClassificationManagement.ProtectedContentUpdate.CreationMetadata',\n 'ClassificationTemplateManagement.Create',\n 'ClassificationTemplateManagement.Read',\n 'ClassificationTemplateManagement.Update',\n 'ClassificationTemplateManagement.Delete',\n 'ClassificationTemplateManagement.ProtectedContentUpdate.CreationMetadata',\n 'ContactManagement.Create',\n 'ContactManagement.ExtendedRead.Any',\n 'ContactManagement.ExtendedUpdate.Any',\n 'ContactManagement.ExtendedPurge.Any',\n 'ContactManagement.ProtectedContentUpdate.CreationMetadata',\n 'ServiceManagement.ExtendedRead.Any',\n 'DocumentManagement.Create',\n 'DocumentManagement.ExtendedRead.Any',\n 'DocumentManagement.ExtendedUpdate.Any',\n 'DocumentManagement.ExtendedPurge.Any',\n 'DocumentManagement.ProtectedContentUpdate.CreationMetadata',\n 'FormManagement.Create',\n 'FormManagement.ExtendedRead.Any',\n 'FormManagement.ExtendedUpdate.Any',\n 'FormManagement.ExtendedPurge.Any',\n 'FormManagement.ProtectedContentUpdate.CreationMetadata',\n 'InvoiceManagement.Create',\n 'InvoiceManagement.ExtendedRead.Any',\n 'InvoiceManagement.ExtendedUpdate.Any',\n 'InvoiceManagement.ExtendedPurge.Any',\n 'InvoiceManagement.ProtectedContentUpdate.CreationMetadata',\n 'InvoiceManagement.Maintenance.InvoicingCodesUpdate.Any',\n 'InvoiceManagement.Maintenance.CanGetInvoicesForUsersAndInsurances',\n 'MaintenanceTaskManagement.Create',\n 'MaintenanceTaskManagement.ExtendedRead.Any',\n 'MaintenanceTaskManagement.ExtendedUpdate.Any',\n 'MaintenanceTaskManagement.ExtendedPurge.Any',\n 'MaintenanceTaskManagement.ProtectedContentUpdate.CreationMetadata',\n 'MessageManagement.Create',\n 'MessageManagement.ExtendedRead.Any',\n 'MessageManagement.ExtendedUpdate.Any',\n 'MessageManagement.ExtendedPurge.Any',\n 'MessageManagement.ProtectedContentUpdate.CreationMetadata',\n 'PatientManagement.Create',\n 'PatientManagement.ExtendedRead.Any',\n 'PatientManagement.ExtendedUpdate.Any',\n 'PatientManagement.ExtendedPurge.Any',\n 'PatientManagement.ProtectedContentUpdate.CreationMetadata',\n 'ReceiptManagement.Create',\n 'ReceiptManagement.ExtendedRead.Any',\n 'ReceiptManagement.ExtendedUpdate.Any',\n 'ReceiptManagement.ExtendedPurge.Any',\n 'ReceiptManagement.ProtectedContentUpdate.CreationMetadata',\n 'TimeTableManagement.Create',\n 'TimeTableManagement.ExtendedRead.Any',\n 'TimeTableManagement.ExtendedUpdate.Any',\n 'TimeTableManagement.ExtendedPurge.Any',\n 'TimeTableManagement.ProtectedContentUpdate.CreationMetadata',\n 'TopicManagement.Create',\n 'TopicManagement.ExtendedRead.Any',\n 'TopicManagement.ExtendedUpdate.Any',\n 'TopicManagement.ExtendedPurge.Any',\n 'TopicManagement.ProtectedContentUpdate.CreationMetadata',\n 'SystemMaintenance.TmpServiceUser',\n 'SystemMaintenance.ViewUpdate',\n 'SystemMaintenance.AutoResolveConflicts',\n 'SystemMaintenance.Metrics',\n 'SystemMaintenance.IndexingInfoReader',\n 'SystemMaintenance.ReplicationInfoReader',\n 'HealthcarePartyManagement.FullRead',\n 'HealthcarePartyManagement.Create.Any',\n 'HealthcarePartyManagement.Delete.Any',\n 'HealthcarePartyManagement.Update.Any',\n 'HealthcarePartyManagement.ProtectedContentUpdate.CreationMetadata',\n 'HealthcarePartyManagement.ProtectedContentUpdate.Parent',\n 'HealthcarePartyManagement.ProtectedContentUpdate.BankDetails',\n 'GroupManagement.Read.AdvancedInfo',\n 'ObjectStorageManagement.Read',\n 'ObjectStorageManagement.Create',\n ],\n}\n"]}
|
package/test/utils/test_utils.js
CHANGED
|
@@ -138,8 +138,8 @@ function getApiAndAddPrivateKeysForUser(iCureUrl, details, options) {
|
|
|
138
138
|
return __awaiter(this, void 0, void 0, function* () {
|
|
139
139
|
const RSA = new icc_x_api_1.RSAUtilsImpl(crypto_1.webcrypto);
|
|
140
140
|
const keys = {
|
|
141
|
-
publicKey: yield RSA.importKey('spki', (0, icc_x_api_1.hex2ua)(details.publicKey), ['encrypt'], icc_x_api_1.ShaVersion.Sha1),
|
|
142
|
-
privateKey: yield RSA.importKey('pkcs8', (0, icc_x_api_1.hex2ua)(details.privateKey), ['decrypt'], icc_x_api_1.ShaVersion.Sha1),
|
|
141
|
+
publicKey: yield RSA.importKey('spki', (0, icc_x_api_1.ua2ab)((0, icc_x_api_1.hex2ua)(details.publicKey)), ['encrypt'], icc_x_api_1.ShaVersion.Sha1),
|
|
142
|
+
privateKey: yield RSA.importKey('pkcs8', (0, icc_x_api_1.ua2ab)((0, icc_x_api_1.hex2ua)(details.privateKey)), ['decrypt'], icc_x_api_1.ShaVersion.Sha1),
|
|
143
143
|
};
|
|
144
144
|
return yield (0, TestApi_1.TestApi)(iCureUrl, details.user, details.password, crypto_1.webcrypto, keys, options);
|
|
145
145
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_utils.js","sourceRoot":"","sources":["../../../test/utils/test_utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BasicAuthenticationProvider,\n CryptoPrimitives,\n CryptoStrategies,\n EncryptedFieldsConfig,\n hex2ua,\n IcureApi,\n IcureApiOptions,\n IcureBasicApi,\n KeyPair,\n retry,\n RSAUtilsImpl,\n ShaVersion,\n ua2hex,\n WebCryptoPrimitives,\n} from '../../icc-x-api'\nimport { tmpdir } from 'os'\nimport { TextDecoder, TextEncoder } from 'util'\nimport { v4 as uuid } from 'uuid'\nimport { randomUUID, webcrypto } from 'crypto'\nimport { TestApi } from './TestApi'\nimport { IcureApi as TestSetupApi } from '@icure/apiV7'\nimport { testStorageWithKeys } from './TestStorage'\nimport { TestCryptoStrategies } from './TestCryptoStrategies'\nimport { User } from '../../icc-api/model/User'\nimport { TestEnvironmentBuilder } from '@icure/test-setup/builder'\nimport { getEnvVariables, TestVars, UserDetails } from '@icure/test-setup/types'\nimport { EnvInitializer } from '@icure/test-setup/decorators'\nimport 'isomorphic-fetch'\nimport { createPatientUser } from '@icure/test-setup/creation'\nimport { IccUserApi } from '../../icc-api'\nimport { Context, describe, Suite, Test } from 'mocha'\nimport { Group } from '../../icc-api/model/Group'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { CryptoActorStubWithType } from '../../icc-api/model/CryptoActorStub'\nimport { DataOwnerTypeEnum } from '../../icc-api/model/DataOwnerTypeEnum'\nimport { DataOwnerWithType } from '../../icc-api/model/DataOwnerWithType'\nimport { KeyPairRecoverer } from '../../icc-x-api/crypto/KeyPairRecoverer'\nimport { KeylessCryptoStrategies } from './KeylessCryptoStrategies'\nimport { XHR } from '../../icc-api/api/XHR'\nimport { defaultRoles } from './roles'\n\nexport function getTempEmail(): string {\n return `${uuid().substring(0, 8)}@icure.com`\n}\n\nexport function setLocalStorage(fetch: (input: RequestInfo, init?: RequestInit) => Promise<Response>) {\n ;(global as any).localStorage = new (require('node-localstorage').LocalStorage)(tmpdir(), 5 * 1024 ** 3)\n ;(global as any).fetch = fetch\n ;(global as any).Storage = ''\n ;(global as any).TextDecoder = TextDecoder\n ;(global as any).TextEncoder = TextEncoder\n ;(global as any).headers = Headers\n}\n\nexport const hcp1Username = process.env.ICURE_TS_TEST_HCP_USER ?? getTempEmail()\nexport const hcp2Username = process.env.ICURE_TS_TEST_HCP_2_USER ?? getTempEmail()\nexport const hcp3Username = process.env.ICURE_TS_TEST_HCP_3_USER ?? getTempEmail()\nexport const patUsername = process.env.ICURE_TS_TEST_PAT_USER ?? getTempEmail()\n\nexport const deviceUsername = getTempEmail()\n\nlet cachedInitializer: EnvInitializer | undefined\n\nexport async function getEnvironmentInitializer(): Promise<EnvInitializer> {\n if (!cachedInitializer) {\n const env = getEnvVariables()\n const scratchDir = 'test/scratch'\n if (env.testEnvironment == 'docker') {\n const defaultRolesRequestBody = {\n docs: Object.entries(defaultRoles).map(([roleName, permissions]) => {\n return {\n _id: roleName,\n name: roleName,\n permissions: permissions,\n java_type: 'org.taktik.icure.entities.Role',\n }\n }),\n }\n try {\n const res = await XHR.sendCommand(\n 'POST',\n `${env.couchDbUrl}/icure-__-config/_bulk_docs`,\n [new XHR.Header('Authorization', 'Basic aWN1cmU6aWN1cmU='), new XHR.Header('Content-Type', 'application/json')],\n defaultRolesRequestBody,\n fetch\n )\n if (res.statusCode < 200 || res.statusCode > 299) throw new Error(`Failed to setup initial roles ${res.body}`)\n } catch (e) {\n throw new Error(\n 'TODO: this request will fail if docker not yet initialised, env initialization fails if this is not done; current workaround: restart without this request to setup docker, then after restart with this request and it will work'\n )\n }\n }\n\n const baseEnvironment =\n env.testEnvironment === 'docker' || env.testEnvironment === 'oss'\n ? new TestEnvironmentBuilder().setUpDockerEnvironment(scratchDir, ['mock'])\n : new TestEnvironmentBuilder()\n cachedInitializer = await baseEnvironment\n .withGroup(fetch, {\n patient: ['BASIC_USER', 'BASIC_DATA_OWNER'],\n hcp: [\n 'BASIC_USER',\n 'BASIC_DATA_OWNER',\n 'PATIENT_USER_MANAGER',\n 'HIERARCHICAL_DATA_OWNER',\n 'TOPIC_MANAGER',\n 'TOPIC_PARTICIPANT',\n 'LEGACY_MESSAGE_MANAGER',\n ],\n device: ['BASIC_USER', 'BASIC_DATA_OWNER'],\n user: ['BASIC_USER'],\n })\n .withMasterUser(fetch)\n .addHcp({ login: hcp1Username })\n .addHcp({ login: hcp2Username })\n .addHcp({ login: hcp3Username })\n .addPatient({ login: patUsername })\n .addDevice({ login: deviceUsername })\n .withSafeguard()\n .withEnvironmentSummary()\n .build()\n }\n return cachedInitializer\n}\n\nexport namespace TestUtils {\n export async function initApi(envVars: TestVars, userName: string = hcp1Username, options?: IcureApiOptions): Promise<IcureApi> {\n return await getApiAndAddPrivateKeysForUser(envVars.iCureUrl, envVars.dataOwnerDetails[userName], options)\n }\n\n export async function initMasterApi(envVars: TestVars, options?: IcureApiOptions): Promise<IcureApi> {\n return await getApiAndAddPrivateKeysForUser(envVars.iCureUrl, envVars.masterHcp!, options)\n }\n}\n\nexport async function getApiAndAddPrivateKeysForUser(iCureUrl: string, details: UserDetails, options?: IcureApiOptions) {\n const RSA = new RSAUtilsImpl(webcrypto as any)\n const keys = {\n publicKey: await RSA.importKey('spki', hex2ua(details.publicKey), ['encrypt'], ShaVersion.Sha1),\n privateKey: await RSA.importKey('pkcs8', hex2ua(details.privateKey), ['decrypt'], ShaVersion.Sha1),\n }\n return await TestApi(iCureUrl, details.user, details.password, webcrypto as any, keys, options)\n}\n\nasync function createHealthcarePartyUser(\n api: TestSetupApi,\n userLogin: string,\n userToken: string,\n publicKey?: string,\n privateKey?: string\n): Promise<UserDetails> {\n const { publicKey: newPublicKey, privateKey: newPrivateKey } = await api.cryptoApi.RSA.generateKeyPair()\n\n const publicKeyHex = !!publicKey && !!privateKey ? publicKey : ua2hex(await api.cryptoApi.RSA.exportKey(newPublicKey, 'spki'))\n const privateKeyHex = !!publicKey && !!privateKey ? privateKey : ua2hex(await api.cryptoApi.RSA.exportKey(newPrivateKey, 'pkcs8'))\n\n const hcp = await api.healthcarePartyApi.createHealthcareParty({\n id: uuid(),\n firstName: uuid().substring(0, 6),\n lastName: uuid().substring(0, 6),\n publicKey: publicKeyHex,\n })\n const hcpUser = await api.userApi.createUser(\n new User({\n id: uuid(),\n name: userLogin,\n login: userLogin,\n email: userLogin,\n healthcarePartyId: hcp.id,\n })\n )\n const token = await api.userApi.getToken(hcpUser.id!, uuid(), 24 * 60 * 60, userToken)\n return {\n user: hcpUser.login!,\n dataOwnerId: hcp.id!,\n password: token,\n publicKey: publicKeyHex,\n privateKey: privateKeyHex,\n }\n}\n\nexport async function createNewHcpApi(\n env: TestVars,\n options: {\n encryptedFieldsConfig?: EncryptedFieldsConfig\n } = {}\n): Promise<{\n api: IcureApi\n credentials: UserDetails\n user: User\n}> {\n const initialisationApi = await testSetupMasterApi(env)\n const primitives = new WebCryptoPrimitives(webcrypto as any)\n const credentials = await createHealthcarePartyUser(initialisationApi, `user-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const storage = await testStorageWithKeys([\n {\n dataOwnerId: credentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: credentials.privateKey, publicKey: credentials.publicKey }, shaVersion: ShaVersion.Sha1 }],\n },\n ])\n const api = await IcureApi.initialise(\n env.iCureUrl,\n { username: credentials.user, password: credentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: storage.storage,\n keyStorage: storage.keyStorage,\n entryKeysFactory: storage.keyFactory,\n encryptedFieldsConfig: options.encryptedFieldsConfig,\n }\n )\n return { api, credentials, user: await api.userApi.getCurrentUser() }\n}\n\nexport async function createNewPatientApi(env: TestVars): Promise<{\n api: IcureApi\n credentials: UserDetails\n user: User\n}> {\n const initialisationApi = await testSetupMasterApi(env)\n const primitives = new WebCryptoPrimitives(webcrypto as any)\n const credentials = await createPatientUser(initialisationApi, `user-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const storage = await testStorageWithKeys([\n {\n dataOwnerId: credentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: credentials.privateKey, publicKey: credentials.publicKey }, shaVersion: ShaVersion.Sha1 }],\n },\n ])\n const api = await IcureApi.initialise(\n env.iCureUrl,\n { username: credentials.user, password: credentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: storage.storage,\n keyStorage: storage.keyStorage,\n entryKeysFactory: storage.keyFactory,\n }\n )\n return { api, credentials, user: await api.userApi.getCurrentUser() }\n}\n\nexport async function createNewKeylessApi(env: TestVars): Promise<{\n api: IcureApi\n credentials: { username: string; password: string }\n}> {\n const initialisationApi = await IcureBasicApi.initialise(env.iCureUrl, { username: env.masterHcp!.user, password: env.masterHcp!.password }, fetch)\n const login = `${randomUUID()}@test.icure.com`\n const password = randomUUID()\n const patient = new Patient({\n id: randomUUID(),\n firstName: 'Gino',\n lastName: 'Pino',\n })\n const user = new User({\n id: randomUUID(),\n login,\n passwordHash: password,\n patientId: patient.id,\n })\n await initialisationApi.userApi.createUser(user)\n await initialisationApi.patientApi.createPatient(patient)\n const credentials = { username: login, password }\n const cryptoStrategies = new KeylessCryptoStrategies()\n const api = await IcureApi.initialise(env.iCureUrl, credentials, cryptoStrategies, webcrypto as any, fetch, {})\n if (!cryptoStrategies.requestedKey) throw new Error('Illegal state: did not request key')\n return { api, credentials }\n}\n\n/**\n * Creates a hierarchy of HCPs with the following structure:\n * grand HCP -+-> parent HCP ---> child HCP\n * |\n * +-> child2 HCP\n */\nexport async function createHcpHierarchyApis(\n env: TestVars,\n setupAutodelegations: boolean = true,\n disableParentKeysInitialisation: boolean = false\n): Promise<{\n grandApi: IcureApi\n grandUser: User\n grandCredentials: UserDetails\n parentApi: IcureApi\n parentUser: User\n parentCredentials: UserDetails\n childApi: IcureApi\n childUser: User\n childCredentials: UserDetails\n child2Api: IcureApi\n child2User: User\n child2Credentials: UserDetails\n}> {\n const shaVersion = ShaVersion.Sha1\n const initialisationApi = await testSetupMasterApi(env)\n const primitives = new WebCryptoPrimitives(webcrypto as any)\n const grandCredentials = await createHealthcarePartyUser(initialisationApi, `grand-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const parentCredentials = await createHealthcarePartyUser(initialisationApi, `parent-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const childCredentials = await createHealthcarePartyUser(initialisationApi, `child-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const child2Credentials = await createHealthcarePartyUser(initialisationApi, `child2-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n await initialisationApi.healthcarePartyApi.modifyHealthcareParty({\n ...(await initialisationApi.healthcarePartyApi.getHealthcareParty(parentCredentials.dataOwnerId)),\n parentId: grandCredentials.dataOwnerId,\n })\n await initialisationApi.healthcarePartyApi.modifyHealthcareParty({\n ...(await initialisationApi.healthcarePartyApi.getHealthcareParty(childCredentials.dataOwnerId)),\n parentId: parentCredentials.dataOwnerId,\n })\n await initialisationApi.healthcarePartyApi.modifyHealthcareParty({\n ...(await initialisationApi.healthcarePartyApi.getHealthcareParty(child2Credentials.dataOwnerId)),\n parentId: grandCredentials.dataOwnerId,\n })\n const grandStorage = await testStorageWithKeys([\n {\n dataOwnerId: grandCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: grandCredentials.privateKey, publicKey: grandCredentials.publicKey }, shaVersion: shaVersion }],\n },\n ])\n const grandApi = await IcureApi.initialise(\n env.iCureUrl,\n { username: grandCredentials.user, password: grandCredentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: grandStorage.storage,\n keyStorage: grandStorage.keyStorage,\n entryKeysFactory: grandStorage.keyFactory,\n disableParentKeysInitialisation,\n }\n )\n const parentStorage = await testStorageWithKeys([\n {\n dataOwnerId: grandCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: grandCredentials.privateKey, publicKey: grandCredentials.publicKey }, shaVersion: shaVersion }],\n },\n {\n dataOwnerId: parentCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: parentCredentials.privateKey, publicKey: parentCredentials.publicKey }, shaVersion: shaVersion }],\n },\n ])\n const parentApi = await IcureApi.initialise(\n env.iCureUrl,\n { username: parentCredentials.user, password: parentCredentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: parentStorage.storage,\n keyStorage: parentStorage.keyStorage,\n entryKeysFactory: parentStorage.keyFactory,\n disableParentKeysInitialisation,\n }\n )\n const parentUser = setupAutodelegations\n ? await parentApi.userApi.modifyUser({\n ...(await parentApi.userApi.getCurrentUser()),\n autoDelegations: { all: [grandCredentials.dataOwnerId] },\n })\n : await parentApi.userApi.getCurrentUser()\n const childStorage = await testStorageWithKeys([\n {\n dataOwnerId: grandCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: grandCredentials.privateKey, publicKey: grandCredentials.publicKey }, shaVersion: shaVersion }],\n },\n {\n dataOwnerId: parentCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: parentCredentials.privateKey, publicKey: parentCredentials.publicKey }, shaVersion: shaVersion }],\n },\n {\n dataOwnerId: childCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: childCredentials.privateKey, publicKey: childCredentials.publicKey }, shaVersion: shaVersion }],\n },\n ])\n const childApi = await IcureApi.initialise(\n env.iCureUrl,\n { username: childCredentials.user, password: childCredentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: childStorage.storage,\n keyStorage: childStorage.keyStorage,\n entryKeysFactory: childStorage.keyFactory,\n disableParentKeysInitialisation,\n }\n )\n const childUser = setupAutodelegations\n ? await childApi.userApi.modifyUser({\n ...(await childApi.userApi.getCurrentUser()),\n autoDelegations: { all: [grandCredentials.dataOwnerId, parentCredentials.dataOwnerId] },\n })\n : await childApi.userApi.getCurrentUser()\n const child2Storage = await testStorageWithKeys([\n {\n dataOwnerId: grandCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: grandCredentials.privateKey, publicKey: grandCredentials.publicKey }, shaVersion: shaVersion }],\n },\n {\n dataOwnerId: child2Credentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: child2Credentials.privateKey, publicKey: child2Credentials.publicKey }, shaVersion: shaVersion }],\n },\n ])\n const child2Api = await IcureApi.initialise(\n env.iCureUrl,\n { username: child2Credentials.user, password: child2Credentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: child2Storage.storage,\n keyStorage: child2Storage.keyStorage,\n entryKeysFactory: child2Storage.keyFactory,\n disableParentKeysInitialisation,\n }\n )\n const child2User = setupAutodelegations\n ? await child2Api.userApi.modifyUser({\n ...(await child2Api.userApi.getCurrentUser()),\n autoDelegations: { all: [grandCredentials.dataOwnerId] },\n })\n : await child2Api.userApi.getCurrentUser()\n return {\n grandApi,\n grandUser: await grandApi.userApi.getCurrentUser(),\n grandCredentials,\n parentApi,\n parentUser,\n parentCredentials,\n childApi,\n childUser,\n childCredentials,\n child2Api,\n child2User,\n child2Credentials,\n }\n}\n\n/**\n * Create a parent HCP with a key and a child HCP without any initialised key\n */\nexport async function createNewHcpWithoutKeyAndParentWithKey(\n env: TestVars,\n props: {\n initialiseEmptyKeyForChild?: boolean\n } = {}\n): Promise<{\n parentCredentials: UserDetails\n childUser: string\n childDataOwnerId: string\n childPassword: string\n}> {\n const initialisationApi = await testSetupMasterApi(env)\n const primitives = new WebCryptoPrimitives(webcrypto as any)\n const parentCredentials = await createHealthcarePartyUser(initialisationApi, `parent-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const childUser = uuid() + '@email.com'\n const childPassword = uuid()\n const childHcp = {\n id: uuid(),\n firstName: uuid().substring(0, 6),\n lastName: uuid().substring(0, 6),\n parentId: parentCredentials.dataOwnerId,\n publicKey: undefined as string | undefined,\n }\n if (props.initialiseEmptyKeyForChild) {\n childHcp.publicKey = ''\n }\n await initialisationApi.healthcarePartyApi.createHealthcareParty(childHcp)\n await initialisationApi.userApi.createUser(\n new User({\n id: uuid(),\n name: childUser,\n login: childUser,\n email: childUser,\n passwordHash: childPassword,\n healthcarePartyId: childHcp.id,\n })\n )\n return {\n parentCredentials,\n childUser,\n childPassword,\n childDataOwnerId: childHcp.id!,\n }\n}\n\nexport function testSetupMasterApi(env: TestVars): Promise<TestSetupApi> {\n return TestSetupApi.initialise(\n env.iCureUrl,\n { username: env.masterHcp!.user, password: env.masterHcp!.password },\n {\n generateNewKeyForDataOwner(): Promise<boolean> {\n return Promise.resolve(true)\n },\n recoverAndVerifySelfHierarchyKeys(): never {\n throw new Error('Unsupported')\n },\n verifyDelegatePublicKeys(delegate: any, publicKeys: string[]): Promise<string[]> {\n return Promise.resolve(publicKeys)\n },\n },\n webcrypto as any,\n fetch\n )\n}\n\nexport type UserInManyGroupsDetails = {\n user1: User\n user2: User\n group3: Group\n userPw3: string\n user3: User\n group2: Group\n group1: Group\n userPw12: string\n userLogin: string\n}\nexport async function createUserInMultipleGroups(env: TestVars): Promise<UserInManyGroupsDetails> {\n const primitives = new WebCryptoPrimitives(webcrypto as any)\n const userGroup1Id: string = primitives.randomUuid() // Same username-pw as group 2\n const userGroup2Id: string = primitives.randomUuid() // Same username-pw as group 1\n const userGroup3Id: string = primitives.randomUuid() // Same username as group 1/2, different pw\n const userLogin: string = `maria-${primitives.randomUuid()}@pompei.it`\n const userPw12: string = `geppetto-${primitives.randomUuid()}`\n const userPw3: string = `pinocchio-${primitives.randomUuid()}`\n const user1Id: string = primitives.randomUuid()\n const user2Id: string = primitives.randomUuid()\n const user3Id: string = primitives.randomUuid()\n const api = await IcureBasicApi.initialise(env.iCureUrl, { username: 'john', password: 'LetMeIn' }, fetch) // pragma: allowlist secret\n const group1 = await api.groupApi.createGroup(\n userGroup1Id,\n `test-group-1-${primitives.randomUuid()}`,\n primitives.randomUuid(),\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n {}\n )\n const group2 = await api.groupApi.createGroup(\n userGroup2Id,\n `test-group-2-${primitives.randomUuid()}`,\n primitives.randomUuid(),\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n {}\n )\n const group3 = await api.groupApi.createGroup(\n userGroup3Id,\n `test-group-3-${primitives.randomUuid()}`,\n primitives.randomUuid(),\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n {}\n )\n const user1 = await api.userApi.createUserInGroup(userGroup1Id, {\n id: user1Id,\n name: userLogin,\n login: userLogin,\n email: userLogin,\n passwordHash: userPw12,\n })\n const user2 = await api.userApi.createUserInGroup(userGroup2Id, {\n id: user2Id,\n name: userLogin,\n login: userLogin,\n email: userLogin,\n passwordHash: userPw12,\n })\n const user3 = await api.userApi.createUserInGroup(userGroup3Id, {\n id: user3Id,\n name: userLogin,\n login: userLogin,\n email: userLogin,\n passwordHash: userPw3,\n })\n console.log(`Waiting for user to be created - ${userLogin}`)\n await retry(\n async () => {\n await new IccUserApi(env.iCureUrl, {}, new BasicAuthenticationProvider(`${userGroup1Id}/${user1Id}`, userPw12), fetch).getCurrentUser()\n await new IccUserApi(env.iCureUrl, {}, new BasicAuthenticationProvider(`${userGroup2Id}/${user2Id}`, userPw12), fetch).getCurrentUser()\n await new IccUserApi(env.iCureUrl, {}, new BasicAuthenticationProvider(`${userGroup3Id}/${user3Id}`, userPw3), fetch).getCurrentUser()\n },\n 10,\n 5_000,\n 1\n )\n return {\n user1,\n user2,\n user3,\n group1,\n group2,\n group3,\n userPw12,\n userPw3,\n userLogin,\n }\n}\n\nexport function isLiteTest() {\n return getEnvVariables().testEnvironment == 'oss'\n}\n\nexport function describeNoLite(title: string, fn: (this: Suite) => void): Suite | void {\n if (isLiteTest()) {\n return describe.skip(title, fn)\n } else {\n return describe(title, fn)\n }\n}\n\nexport function itNoLite(title: string, fn: (this: Context) => PromiseLike<any>): Test {\n if (isLiteTest()) {\n return it.skip(title, fn)\n } else {\n return it(title, fn)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"test_utils.js","sourceRoot":"","sources":["../../../test/utils/test_utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BasicAuthenticationProvider,\n EncryptedFieldsConfig,\n hex2ua,\n IcureApi,\n IcureApiOptions,\n IcureBasicApi,\n retry,\n RSAUtilsImpl,\n ShaVersion,\n ua2ab,\n ua2hex,\n WebCryptoPrimitives,\n} from '../../icc-x-api'\nimport { tmpdir } from 'os'\nimport { TextDecoder, TextEncoder } from 'util'\nimport { v4 as uuid } from 'uuid'\nimport { randomUUID, webcrypto } from 'crypto'\nimport { TestApi } from './TestApi'\nimport { IcureApi as TestSetupApi } from '@icure/apiV7'\nimport { testStorageWithKeys } from './TestStorage'\nimport { TestCryptoStrategies } from './TestCryptoStrategies'\nimport { User } from '../../icc-api/model/User'\nimport { TestEnvironmentBuilder } from '@icure/test-setup/builder'\nimport { getEnvVariables, TestVars, UserDetails } from '@icure/test-setup/types'\nimport { EnvInitializer } from '@icure/test-setup/decorators'\nimport 'isomorphic-fetch'\nimport { createPatientUser } from '@icure/test-setup/creation'\nimport { IccUserApi } from '../../icc-api'\nimport { Context, describe, Suite, Test } from 'mocha'\nimport { Group } from '../../icc-api/model/Group'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { CryptoActorStubWithType } from '../../icc-api/model/CryptoActorStub'\nimport { DataOwnerTypeEnum } from '../../icc-api/model/DataOwnerTypeEnum'\nimport { DataOwnerWithType } from '../../icc-api/model/DataOwnerWithType'\nimport { KeyPairRecoverer } from '../../icc-x-api/crypto/KeyPairRecoverer'\nimport { KeylessCryptoStrategies } from './KeylessCryptoStrategies'\nimport { XHR } from '../../icc-api/api/XHR'\nimport { defaultRoles } from './roles'\n\nexport function getTempEmail(): string {\n return `${uuid().substring(0, 8)}@icure.com`\n}\n\nexport function setLocalStorage(fetch: (input: RequestInfo, init?: RequestInit) => Promise<Response>) {\n ;(global as any).localStorage = new (require('node-localstorage').LocalStorage)(tmpdir(), 5 * 1024 ** 3)\n ;(global as any).fetch = fetch\n ;(global as any).Storage = ''\n ;(global as any).TextDecoder = TextDecoder\n ;(global as any).TextEncoder = TextEncoder\n ;(global as any).headers = Headers\n}\n\nexport const hcp1Username = process.env.ICURE_TS_TEST_HCP_USER ?? getTempEmail()\nexport const hcp2Username = process.env.ICURE_TS_TEST_HCP_2_USER ?? getTempEmail()\nexport const hcp3Username = process.env.ICURE_TS_TEST_HCP_3_USER ?? getTempEmail()\nexport const patUsername = process.env.ICURE_TS_TEST_PAT_USER ?? getTempEmail()\n\nexport const deviceUsername = getTempEmail()\n\nlet cachedInitializer: EnvInitializer | undefined\n\nexport async function getEnvironmentInitializer(): Promise<EnvInitializer> {\n if (!cachedInitializer) {\n const env = getEnvVariables()\n const scratchDir = 'test/scratch'\n if (env.testEnvironment == 'docker') {\n const defaultRolesRequestBody = {\n docs: Object.entries(defaultRoles).map(([roleName, permissions]) => {\n return {\n _id: roleName,\n name: roleName,\n permissions: permissions,\n java_type: 'org.taktik.icure.entities.Role',\n }\n }),\n }\n try {\n const res = await XHR.sendCommand(\n 'POST',\n `${env.couchDbUrl}/icure-__-config/_bulk_docs`,\n [new XHR.Header('Authorization', 'Basic aWN1cmU6aWN1cmU='), new XHR.Header('Content-Type', 'application/json')],\n defaultRolesRequestBody,\n fetch\n )\n if (res.statusCode < 200 || res.statusCode > 299) throw new Error(`Failed to setup initial roles ${res.body}`)\n } catch (e) {\n throw new Error(\n 'TODO: this request will fail if docker not yet initialised, env initialization fails if this is not done; current workaround: restart without this request to setup docker, then after restart with this request and it will work'\n )\n }\n }\n\n const baseEnvironment =\n env.testEnvironment === 'docker' || env.testEnvironment === 'oss'\n ? new TestEnvironmentBuilder().setUpDockerEnvironment(scratchDir, ['mock'])\n : new TestEnvironmentBuilder()\n cachedInitializer = await baseEnvironment\n .withGroup(fetch, {\n patient: ['BASIC_USER', 'BASIC_DATA_OWNER'],\n hcp: [\n 'BASIC_USER',\n 'BASIC_DATA_OWNER',\n 'PATIENT_USER_MANAGER',\n 'HIERARCHICAL_DATA_OWNER',\n 'TOPIC_MANAGER',\n 'TOPIC_PARTICIPANT',\n 'LEGACY_MESSAGE_MANAGER',\n ],\n device: ['BASIC_USER', 'BASIC_DATA_OWNER'],\n user: ['BASIC_USER'],\n })\n .withMasterUser(fetch)\n .addHcp({ login: hcp1Username })\n .addHcp({ login: hcp2Username })\n .addHcp({ login: hcp3Username })\n .addPatient({ login: patUsername })\n .addDevice({ login: deviceUsername })\n .withSafeguard()\n .withEnvironmentSummary()\n .build()\n }\n return cachedInitializer\n}\n\nexport namespace TestUtils {\n export async function initApi(envVars: TestVars, userName: string = hcp1Username, options?: IcureApiOptions): Promise<IcureApi> {\n return await getApiAndAddPrivateKeysForUser(envVars.iCureUrl, envVars.dataOwnerDetails[userName], options)\n }\n\n export async function initMasterApi(envVars: TestVars, options?: IcureApiOptions): Promise<IcureApi> {\n return await getApiAndAddPrivateKeysForUser(envVars.iCureUrl, envVars.masterHcp!, options)\n }\n}\n\nexport async function getApiAndAddPrivateKeysForUser(iCureUrl: string, details: UserDetails, options?: IcureApiOptions) {\n const RSA = new RSAUtilsImpl(webcrypto as any)\n const keys = {\n publicKey: await RSA.importKey('spki', ua2ab(hex2ua(details.publicKey)), ['encrypt'], ShaVersion.Sha1),\n privateKey: await RSA.importKey('pkcs8', ua2ab(hex2ua(details.privateKey)), ['decrypt'], ShaVersion.Sha1),\n }\n return await TestApi(iCureUrl, details.user, details.password, webcrypto as any, keys, options)\n}\n\nasync function createHealthcarePartyUser(\n api: TestSetupApi,\n userLogin: string,\n userToken: string,\n publicKey?: string,\n privateKey?: string\n): Promise<UserDetails> {\n const { publicKey: newPublicKey, privateKey: newPrivateKey } = await api.cryptoApi.RSA.generateKeyPair()\n\n const publicKeyHex = !!publicKey && !!privateKey ? publicKey : ua2hex(await api.cryptoApi.RSA.exportKey(newPublicKey, 'spki'))\n const privateKeyHex = !!publicKey && !!privateKey ? privateKey : ua2hex(await api.cryptoApi.RSA.exportKey(newPrivateKey, 'pkcs8'))\n\n const hcp = await api.healthcarePartyApi.createHealthcareParty({\n id: uuid(),\n firstName: uuid().substring(0, 6),\n lastName: uuid().substring(0, 6),\n publicKey: publicKeyHex,\n })\n const hcpUser = await api.userApi.createUser(\n new User({\n id: uuid(),\n name: userLogin,\n login: userLogin,\n email: userLogin,\n healthcarePartyId: hcp.id,\n })\n )\n const token = await api.userApi.getToken(hcpUser.id!, uuid(), 24 * 60 * 60, userToken)\n return {\n user: hcpUser.login!,\n dataOwnerId: hcp.id!,\n password: token,\n publicKey: publicKeyHex,\n privateKey: privateKeyHex,\n }\n}\n\nexport async function createNewHcpApi(\n env: TestVars,\n options: {\n encryptedFieldsConfig?: EncryptedFieldsConfig\n } = {}\n): Promise<{\n api: IcureApi\n credentials: UserDetails\n user: User\n}> {\n const initialisationApi = await testSetupMasterApi(env)\n const primitives = new WebCryptoPrimitives(webcrypto as any)\n const credentials = await createHealthcarePartyUser(initialisationApi, `user-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const storage = await testStorageWithKeys([\n {\n dataOwnerId: credentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: credentials.privateKey, publicKey: credentials.publicKey }, shaVersion: ShaVersion.Sha1 }],\n },\n ])\n const api = await IcureApi.initialise(\n env.iCureUrl,\n { username: credentials.user, password: credentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: storage.storage,\n keyStorage: storage.keyStorage,\n entryKeysFactory: storage.keyFactory,\n encryptedFieldsConfig: options.encryptedFieldsConfig,\n }\n )\n return { api, credentials, user: await api.userApi.getCurrentUser() }\n}\n\nexport async function createNewPatientApi(env: TestVars): Promise<{\n api: IcureApi\n credentials: UserDetails\n user: User\n}> {\n const initialisationApi = await testSetupMasterApi(env)\n const primitives = new WebCryptoPrimitives(webcrypto as any)\n const credentials = await createPatientUser(initialisationApi, `user-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const storage = await testStorageWithKeys([\n {\n dataOwnerId: credentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: credentials.privateKey, publicKey: credentials.publicKey }, shaVersion: ShaVersion.Sha1 }],\n },\n ])\n const api = await IcureApi.initialise(\n env.iCureUrl,\n { username: credentials.user, password: credentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: storage.storage,\n keyStorage: storage.keyStorage,\n entryKeysFactory: storage.keyFactory,\n }\n )\n return { api, credentials, user: await api.userApi.getCurrentUser() }\n}\n\nexport async function createNewKeylessApi(env: TestVars): Promise<{\n api: IcureApi\n credentials: { username: string; password: string }\n}> {\n const initialisationApi = await IcureBasicApi.initialise(env.iCureUrl, { username: env.masterHcp!.user, password: env.masterHcp!.password }, fetch)\n const login = `${randomUUID()}@test.icure.com`\n const password = randomUUID()\n const patient = new Patient({\n id: randomUUID(),\n firstName: 'Gino',\n lastName: 'Pino',\n })\n const user = new User({\n id: randomUUID(),\n login,\n passwordHash: password,\n patientId: patient.id,\n })\n await initialisationApi.userApi.createUser(user)\n await initialisationApi.patientApi.createPatient(patient)\n const credentials = { username: login, password }\n const cryptoStrategies = new KeylessCryptoStrategies()\n const api = await IcureApi.initialise(env.iCureUrl, credentials, cryptoStrategies, webcrypto as any, fetch, {})\n if (!cryptoStrategies.requestedKey) throw new Error('Illegal state: did not request key')\n return { api, credentials }\n}\n\n/**\n * Creates a hierarchy of HCPs with the following structure:\n * grand HCP -+-> parent HCP ---> child HCP\n * |\n * +-> child2 HCP\n */\nexport async function createHcpHierarchyApis(\n env: TestVars,\n setupAutodelegations: boolean = true,\n disableParentKeysInitialisation: boolean = false\n): Promise<{\n grandApi: IcureApi\n grandUser: User\n grandCredentials: UserDetails\n parentApi: IcureApi\n parentUser: User\n parentCredentials: UserDetails\n childApi: IcureApi\n childUser: User\n childCredentials: UserDetails\n child2Api: IcureApi\n child2User: User\n child2Credentials: UserDetails\n}> {\n const shaVersion = ShaVersion.Sha1\n const initialisationApi = await testSetupMasterApi(env)\n const primitives = new WebCryptoPrimitives(webcrypto as any)\n const grandCredentials = await createHealthcarePartyUser(initialisationApi, `grand-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const parentCredentials = await createHealthcarePartyUser(initialisationApi, `parent-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const childCredentials = await createHealthcarePartyUser(initialisationApi, `child-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const child2Credentials = await createHealthcarePartyUser(initialisationApi, `child2-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n await initialisationApi.healthcarePartyApi.modifyHealthcareParty({\n ...(await initialisationApi.healthcarePartyApi.getHealthcareParty(parentCredentials.dataOwnerId)),\n parentId: grandCredentials.dataOwnerId,\n })\n await initialisationApi.healthcarePartyApi.modifyHealthcareParty({\n ...(await initialisationApi.healthcarePartyApi.getHealthcareParty(childCredentials.dataOwnerId)),\n parentId: parentCredentials.dataOwnerId,\n })\n await initialisationApi.healthcarePartyApi.modifyHealthcareParty({\n ...(await initialisationApi.healthcarePartyApi.getHealthcareParty(child2Credentials.dataOwnerId)),\n parentId: grandCredentials.dataOwnerId,\n })\n const grandStorage = await testStorageWithKeys([\n {\n dataOwnerId: grandCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: grandCredentials.privateKey, publicKey: grandCredentials.publicKey }, shaVersion: shaVersion }],\n },\n ])\n const grandApi = await IcureApi.initialise(\n env.iCureUrl,\n { username: grandCredentials.user, password: grandCredentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: grandStorage.storage,\n keyStorage: grandStorage.keyStorage,\n entryKeysFactory: grandStorage.keyFactory,\n disableParentKeysInitialisation,\n }\n )\n const parentStorage = await testStorageWithKeys([\n {\n dataOwnerId: grandCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: grandCredentials.privateKey, publicKey: grandCredentials.publicKey }, shaVersion: shaVersion }],\n },\n {\n dataOwnerId: parentCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: parentCredentials.privateKey, publicKey: parentCredentials.publicKey }, shaVersion: shaVersion }],\n },\n ])\n const parentApi = await IcureApi.initialise(\n env.iCureUrl,\n { username: parentCredentials.user, password: parentCredentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: parentStorage.storage,\n keyStorage: parentStorage.keyStorage,\n entryKeysFactory: parentStorage.keyFactory,\n disableParentKeysInitialisation,\n }\n )\n const parentUser = setupAutodelegations\n ? await parentApi.userApi.modifyUser({\n ...(await parentApi.userApi.getCurrentUser()),\n autoDelegations: { all: [grandCredentials.dataOwnerId] },\n })\n : await parentApi.userApi.getCurrentUser()\n const childStorage = await testStorageWithKeys([\n {\n dataOwnerId: grandCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: grandCredentials.privateKey, publicKey: grandCredentials.publicKey }, shaVersion: shaVersion }],\n },\n {\n dataOwnerId: parentCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: parentCredentials.privateKey, publicKey: parentCredentials.publicKey }, shaVersion: shaVersion }],\n },\n {\n dataOwnerId: childCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: childCredentials.privateKey, publicKey: childCredentials.publicKey }, shaVersion: shaVersion }],\n },\n ])\n const childApi = await IcureApi.initialise(\n env.iCureUrl,\n { username: childCredentials.user, password: childCredentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: childStorage.storage,\n keyStorage: childStorage.keyStorage,\n entryKeysFactory: childStorage.keyFactory,\n disableParentKeysInitialisation,\n }\n )\n const childUser = setupAutodelegations\n ? await childApi.userApi.modifyUser({\n ...(await childApi.userApi.getCurrentUser()),\n autoDelegations: { all: [grandCredentials.dataOwnerId, parentCredentials.dataOwnerId] },\n })\n : await childApi.userApi.getCurrentUser()\n const child2Storage = await testStorageWithKeys([\n {\n dataOwnerId: grandCredentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: grandCredentials.privateKey, publicKey: grandCredentials.publicKey }, shaVersion: shaVersion }],\n },\n {\n dataOwnerId: child2Credentials.dataOwnerId,\n pairs: [{ keyPair: { privateKey: child2Credentials.privateKey, publicKey: child2Credentials.publicKey }, shaVersion: shaVersion }],\n },\n ])\n const child2Api = await IcureApi.initialise(\n env.iCureUrl,\n { username: child2Credentials.user, password: child2Credentials.password },\n new TestCryptoStrategies(),\n webcrypto as any,\n fetch,\n {\n storage: child2Storage.storage,\n keyStorage: child2Storage.keyStorage,\n entryKeysFactory: child2Storage.keyFactory,\n disableParentKeysInitialisation,\n }\n )\n const child2User = setupAutodelegations\n ? await child2Api.userApi.modifyUser({\n ...(await child2Api.userApi.getCurrentUser()),\n autoDelegations: { all: [grandCredentials.dataOwnerId] },\n })\n : await child2Api.userApi.getCurrentUser()\n return {\n grandApi,\n grandUser: await grandApi.userApi.getCurrentUser(),\n grandCredentials,\n parentApi,\n parentUser,\n parentCredentials,\n childApi,\n childUser,\n childCredentials,\n child2Api,\n child2User,\n child2Credentials,\n }\n}\n\n/**\n * Create a parent HCP with a key and a child HCP without any initialised key\n */\nexport async function createNewHcpWithoutKeyAndParentWithKey(\n env: TestVars,\n props: {\n initialiseEmptyKeyForChild?: boolean\n } = {}\n): Promise<{\n parentCredentials: UserDetails\n childUser: string\n childDataOwnerId: string\n childPassword: string\n}> {\n const initialisationApi = await testSetupMasterApi(env)\n const primitives = new WebCryptoPrimitives(webcrypto as any)\n const parentCredentials = await createHealthcarePartyUser(initialisationApi, `parent-${primitives.randomUuid()}@icure.com`, primitives.randomUuid())\n const childUser = uuid() + '@email.com'\n const childPassword = uuid()\n const childHcp = {\n id: uuid(),\n firstName: uuid().substring(0, 6),\n lastName: uuid().substring(0, 6),\n parentId: parentCredentials.dataOwnerId,\n publicKey: undefined as string | undefined,\n }\n if (props.initialiseEmptyKeyForChild) {\n childHcp.publicKey = ''\n }\n await initialisationApi.healthcarePartyApi.createHealthcareParty(childHcp)\n await initialisationApi.userApi.createUser(\n new User({\n id: uuid(),\n name: childUser,\n login: childUser,\n email: childUser,\n passwordHash: childPassword,\n healthcarePartyId: childHcp.id,\n })\n )\n return {\n parentCredentials,\n childUser,\n childPassword,\n childDataOwnerId: childHcp.id!,\n }\n}\n\nexport function testSetupMasterApi(env: TestVars): Promise<TestSetupApi> {\n return TestSetupApi.initialise(\n env.iCureUrl,\n { username: env.masterHcp!.user, password: env.masterHcp!.password },\n {\n generateNewKeyForDataOwner(): Promise<boolean> {\n return Promise.resolve(true)\n },\n recoverAndVerifySelfHierarchyKeys(): never {\n throw new Error('Unsupported')\n },\n verifyDelegatePublicKeys(delegate: any, publicKeys: string[]): Promise<string[]> {\n return Promise.resolve(publicKeys)\n },\n },\n webcrypto as any,\n fetch\n )\n}\n\nexport type UserInManyGroupsDetails = {\n user1: User\n user2: User\n group3: Group\n userPw3: string\n user3: User\n group2: Group\n group1: Group\n userPw12: string\n userLogin: string\n}\nexport async function createUserInMultipleGroups(env: TestVars): Promise<UserInManyGroupsDetails> {\n const primitives = new WebCryptoPrimitives(webcrypto as any)\n const userGroup1Id: string = primitives.randomUuid() // Same username-pw as group 2\n const userGroup2Id: string = primitives.randomUuid() // Same username-pw as group 1\n const userGroup3Id: string = primitives.randomUuid() // Same username as group 1/2, different pw\n const userLogin: string = `maria-${primitives.randomUuid()}@pompei.it`\n const userPw12: string = `geppetto-${primitives.randomUuid()}`\n const userPw3: string = `pinocchio-${primitives.randomUuid()}`\n const user1Id: string = primitives.randomUuid()\n const user2Id: string = primitives.randomUuid()\n const user3Id: string = primitives.randomUuid()\n const api = await IcureBasicApi.initialise(env.iCureUrl, { username: 'john', password: 'LetMeIn' }, fetch) // pragma: allowlist secret\n const group1 = await api.groupApi.createGroup(\n userGroup1Id,\n `test-group-1-${primitives.randomUuid()}`,\n primitives.randomUuid(),\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n {}\n )\n const group2 = await api.groupApi.createGroup(\n userGroup2Id,\n `test-group-2-${primitives.randomUuid()}`,\n primitives.randomUuid(),\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n {}\n )\n const group3 = await api.groupApi.createGroup(\n userGroup3Id,\n `test-group-3-${primitives.randomUuid()}`,\n primitives.randomUuid(),\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n {}\n )\n const user1 = await api.userApi.createUserInGroup(userGroup1Id, {\n id: user1Id,\n name: userLogin,\n login: userLogin,\n email: userLogin,\n passwordHash: userPw12,\n })\n const user2 = await api.userApi.createUserInGroup(userGroup2Id, {\n id: user2Id,\n name: userLogin,\n login: userLogin,\n email: userLogin,\n passwordHash: userPw12,\n })\n const user3 = await api.userApi.createUserInGroup(userGroup3Id, {\n id: user3Id,\n name: userLogin,\n login: userLogin,\n email: userLogin,\n passwordHash: userPw3,\n })\n console.log(`Waiting for user to be created - ${userLogin}`)\n await retry(\n async () => {\n await new IccUserApi(env.iCureUrl, {}, new BasicAuthenticationProvider(`${userGroup1Id}/${user1Id}`, userPw12), fetch).getCurrentUser()\n await new IccUserApi(env.iCureUrl, {}, new BasicAuthenticationProvider(`${userGroup2Id}/${user2Id}`, userPw12), fetch).getCurrentUser()\n await new IccUserApi(env.iCureUrl, {}, new BasicAuthenticationProvider(`${userGroup3Id}/${user3Id}`, userPw3), fetch).getCurrentUser()\n },\n 10,\n 5_000,\n 1\n )\n return {\n user1,\n user2,\n user3,\n group1,\n group2,\n group3,\n userPw12,\n userPw3,\n userLogin,\n }\n}\n\nexport function isLiteTest() {\n return getEnvVariables().testEnvironment == 'oss'\n}\n\nexport function describeNoLite(title: string, fn: (this: Suite) => void): Suite | void {\n if (isLiteTest()) {\n return describe.skip(title, fn)\n } else {\n return describe(title, fn)\n }\n}\n\nexport function itNoLite(title: string, fn: (this: Context) => PromiseLike<any>): Test {\n if (isLiteTest()) {\n return it.skip(title, fn)\n } else {\n return it(title, fn)\n }\n}\n"]}
|