@icure/api 8.0.0-RC.1 → 8.0.0-RC.3
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/api/IccAccesslogApi.d.ts +12 -4
- package/icc-api/api/IccAccesslogApi.js +23 -18
- package/icc-api/api/IccAccesslogApi.js.map +1 -1
- package/icc-api/api/IccAgendaApi.d.ts +13 -4
- package/icc-api/api/IccAgendaApi.js +42 -19
- package/icc-api/api/IccAgendaApi.js.map +1 -1
- package/icc-api/api/IccApplicationsettingsApi.d.ts +1 -1
- package/icc-api/api/IccApplicationsettingsApi.js +2 -2
- package/icc-api/api/IccApplicationsettingsApi.js.map +1 -1
- package/icc-api/api/IccArticleApi.d.ts +13 -4
- package/icc-api/api/IccArticleApi.js +50 -26
- package/icc-api/api/IccArticleApi.js.map +1 -1
- package/icc-api/api/IccAuthApi.d.ts +1 -1
- package/icc-api/api/IccAuthApi.js +2 -2
- package/icc-api/api/IccAuthApi.js.map +1 -1
- package/icc-api/api/IccCalendarItemApi.d.ts +8 -4
- package/icc-api/api/IccCalendarItemApi.js +15 -22
- package/icc-api/api/IccCalendarItemApi.js.map +1 -1
- package/icc-api/api/IccCalendarItemTypeApi.d.ts +6 -4
- package/icc-api/api/IccCalendarItemTypeApi.js +60 -45
- package/icc-api/api/IccCalendarItemTypeApi.js.map +1 -1
- package/icc-api/api/IccClassificationApi.d.ts +14 -5
- package/icc-api/api/IccClassificationApi.js +22 -12
- package/icc-api/api/IccClassificationApi.js.map +1 -1
- package/icc-api/api/IccClassificationTemplateApi.d.ts +14 -5
- package/icc-api/api/IccClassificationTemplateApi.js +102 -70
- package/icc-api/api/IccClassificationTemplateApi.js.map +1 -1
- package/icc-api/api/IccCodeApi.d.ts +1 -1
- package/icc-api/api/IccCodeApi.js +2 -2
- package/icc-api/api/IccCodeApi.js.map +1 -1
- package/icc-api/api/IccContactApi.d.ts +11 -4
- package/icc-api/api/IccContactApi.js +20 -13
- package/icc-api/api/IccContactApi.js.map +1 -1
- package/icc-api/api/IccDataownerApi.d.ts +1 -1
- package/icc-api/api/IccDataownerApi.js +44 -27
- package/icc-api/api/IccDataownerApi.js.map +1 -1
- package/icc-api/api/IccDeviceApi.d.ts +1 -1
- package/icc-api/api/IccDeviceApi.js +43 -32
- package/icc-api/api/IccDeviceApi.js.map +1 -1
- package/icc-api/api/IccDoctemplateApi.d.ts +10 -8
- package/icc-api/api/IccDoctemplateApi.js +121 -101
- package/icc-api/api/IccDoctemplateApi.js.map +1 -1
- package/icc-api/api/IccDocumentApi.d.ts +19 -5
- package/icc-api/api/IccDocumentApi.js +38 -13
- package/icc-api/api/IccDocumentApi.js.map +1 -1
- package/icc-api/api/IccEntityrefApi.d.ts +1 -1
- package/icc-api/api/IccEntityrefApi.js +27 -16
- package/icc-api/api/IccEntityrefApi.js.map +1 -1
- package/icc-api/api/IccEntitytemplateApi.d.ts +6 -4
- package/icc-api/api/IccEntitytemplateApi.js +118 -97
- package/icc-api/api/IccEntitytemplateApi.js.map +1 -1
- package/icc-api/api/IccExchangeDataApi.d.ts +2 -2
- package/icc-api/api/IccExchangeDataApi.js +73 -52
- package/icc-api/api/IccExchangeDataApi.js.map +1 -1
- package/icc-api/api/IccExchangeDataMapApi.d.ts +2 -2
- package/icc-api/api/IccExchangeDataMapApi.js +53 -34
- package/icc-api/api/IccExchangeDataMapApi.js.map +1 -1
- package/icc-api/api/IccFormApi.d.ts +13 -5
- package/icc-api/api/IccFormApi.js +24 -18
- package/icc-api/api/IccFormApi.js.map +1 -1
- package/icc-api/api/IccFrontendmigrationApi.d.ts +1 -1
- package/icc-api/api/IccFrontendmigrationApi.js +19 -10
- package/icc-api/api/IccFrontendmigrationApi.js.map +1 -1
- package/icc-api/api/IccGroupApi.d.ts +16 -2
- package/icc-api/api/IccGroupApi.js +29 -3
- package/icc-api/api/IccGroupApi.js.map +1 -1
- package/icc-api/api/IccHcpartyApi.d.ts +25 -10
- package/icc-api/api/IccHcpartyApi.js +84 -53
- package/icc-api/api/IccHcpartyApi.js.map +1 -1
- package/icc-api/api/IccHelementApi.d.ts +13 -5
- package/icc-api/api/IccHelementApi.js +25 -21
- package/icc-api/api/IccHelementApi.js.map +1 -1
- package/icc-api/api/IccIcureApi.d.ts +1 -1
- package/icc-api/api/IccIcureApi.js +2 -2
- package/icc-api/api/IccIcureApi.js.map +1 -1
- package/icc-api/api/IccInsuranceApi.d.ts +1 -1
- package/icc-api/api/IccInsuranceApi.js +67 -50
- package/icc-api/api/IccInsuranceApi.js.map +1 -1
- package/icc-api/api/IccInvoiceApi.d.ts +1 -1
- package/icc-api/api/IccInvoiceApi.js +5 -11
- package/icc-api/api/IccInvoiceApi.js.map +1 -1
- package/icc-api/api/IccKeywordApi.d.ts +6 -5
- package/icc-api/api/IccKeywordApi.js +59 -45
- package/icc-api/api/IccKeywordApi.js.map +1 -1
- package/icc-api/api/IccMaintenanceTaskApi.d.ts +13 -4
- package/icc-api/api/IccMaintenanceTaskApi.js +22 -12
- package/icc-api/api/IccMaintenanceTaskApi.js.map +1 -1
- package/icc-api/api/IccMedexApi.d.ts +1 -1
- package/icc-api/api/IccMedexApi.js +19 -10
- package/icc-api/api/IccMedexApi.js.map +1 -1
- package/icc-api/api/IccMedicallocationApi.d.ts +6 -4
- package/icc-api/api/IccMedicallocationApi.js +52 -39
- package/icc-api/api/IccMedicallocationApi.js.map +1 -1
- package/icc-api/api/IccMessageApi.d.ts +25 -7
- package/icc-api/api/IccMessageApi.js +52 -22
- package/icc-api/api/IccMessageApi.js.map +1 -1
- package/icc-api/api/IccPatientApi.d.ts +13 -5
- package/icc-api/api/IccPatientApi.js +23 -13
- package/icc-api/api/IccPatientApi.js.map +1 -1
- package/icc-api/api/IccPermissionApi.d.ts +1 -1
- package/icc-api/api/IccPermissionApi.js +19 -10
- package/icc-api/api/IccPermissionApi.js.map +1 -1
- package/icc-api/api/IccPlaceApi.d.ts +7 -5
- package/icc-api/api/IccPlaceApi.js +53 -40
- package/icc-api/api/IccPlaceApi.js.map +1 -1
- package/icc-api/api/IccReceiptApi.d.ts +13 -4
- package/icc-api/api/IccReceiptApi.js +23 -13
- package/icc-api/api/IccReceiptApi.js.map +1 -1
- package/icc-api/api/IccReplicationApi.d.ts +1 -1
- package/icc-api/api/IccReplicationApi.js +3 -5
- package/icc-api/api/IccReplicationApi.js.map +1 -1
- package/icc-api/api/IccRoleApi.d.ts +16 -0
- package/icc-api/api/IccRoleApi.js +42 -0
- package/icc-api/api/IccRoleApi.js.map +1 -0
- package/icc-api/api/IccSecureDelegationKeyMapApi.d.ts +26 -0
- package/icc-api/api/IccSecureDelegationKeyMapApi.js +71 -0
- package/icc-api/api/IccSecureDelegationKeyMapApi.js.map +1 -0
- package/icc-api/api/IccTarificationApi.d.ts +1 -1
- package/icc-api/api/IccTarificationApi.js +19 -10
- package/icc-api/api/IccTarificationApi.js.map +1 -1
- package/icc-api/api/IccTimeTableApi.d.ts +13 -4
- package/icc-api/api/IccTimeTableApi.js +21 -9
- package/icc-api/api/IccTimeTableApi.js.map +1 -1
- package/icc-api/api/IccTopicApi.d.ts +97 -0
- package/icc-api/api/IccTopicApi.js +208 -0
- package/icc-api/api/IccTopicApi.js.map +1 -0
- package/icc-api/api/IccUserApi.d.ts +31 -1
- package/icc-api/api/IccUserApi.js +65 -2
- package/icc-api/api/IccUserApi.js.map +1 -1
- package/icc-api/index.d.ts +1 -0
- package/icc-api/index.js +1 -0
- package/icc-api/index.js.map +1 -1
- package/icc-api/model/AbstractFilterMessage.d.ts +15 -0
- package/icc-api/model/AbstractFilterMessage.js +21 -0
- package/icc-api/model/AbstractFilterMessage.js.map +1 -0
- package/icc-api/model/AbstractFilterTopic.d.ts +15 -0
- package/icc-api/model/AbstractFilterTopic.js +21 -0
- package/icc-api/model/AbstractFilterTopic.js.map +1 -0
- package/icc-api/model/AccessLog.d.ts +0 -2
- package/icc-api/model/AccessLog.js +0 -1
- package/icc-api/model/AccessLog.js.map +1 -1
- package/icc-api/model/Article.d.ts +0 -2
- package/icc-api/model/Article.js +0 -1
- package/icc-api/model/Article.js.map +1 -1
- package/icc-api/model/CalendarItem.d.ts +0 -2
- package/icc-api/model/CalendarItem.js +0 -1
- package/icc-api/model/CalendarItem.js.map +1 -1
- package/icc-api/model/Classification.d.ts +0 -2
- package/icc-api/model/Classification.js +0 -1
- package/icc-api/model/Classification.js.map +1 -1
- package/icc-api/model/Connection.d.ts +1 -1
- package/icc-api/model/Connection.js.map +1 -1
- package/icc-api/model/Contact.d.ts +0 -2
- package/icc-api/model/Contact.js +0 -1
- package/icc-api/model/Contact.js.map +1 -1
- package/icc-api/model/Document.d.ts +0 -2
- package/icc-api/model/Document.js +0 -1
- package/icc-api/model/Document.js.map +1 -1
- package/icc-api/model/FilterChainMessage.d.ts +19 -0
- package/icc-api/model/FilterChainMessage.js +11 -0
- package/icc-api/model/FilterChainMessage.js.map +1 -0
- package/icc-api/model/FilterChainTopic.d.ts +19 -0
- package/icc-api/model/FilterChainTopic.js +11 -0
- package/icc-api/model/FilterChainTopic.js.map +1 -0
- package/icc-api/model/Form.d.ts +0 -2
- package/icc-api/model/Form.js +0 -1
- package/icc-api/model/Form.js.map +1 -1
- package/icc-api/model/Group.d.ts +4 -0
- package/icc-api/model/Group.js.map +1 -1
- package/icc-api/model/HealthElement.d.ts +0 -2
- package/icc-api/model/HealthElement.js +0 -1
- package/icc-api/model/HealthElement.js.map +1 -1
- package/icc-api/model/HealthcareParty.js +13 -1
- package/icc-api/model/HealthcareParty.js.map +1 -1
- package/icc-api/model/Invoice.d.ts +0 -2
- package/icc-api/model/Invoice.js +0 -1
- package/icc-api/model/Invoice.js.map +1 -1
- package/icc-api/model/MaintenanceTask.d.ts +11 -10
- package/icc-api/model/MaintenanceTask.js +13 -12
- package/icc-api/model/MaintenanceTask.js.map +1 -1
- package/icc-api/model/Message.d.ts +5 -2
- package/icc-api/model/Message.js +0 -1
- package/icc-api/model/Message.js.map +1 -1
- package/icc-api/model/MessageAttachment.d.ts +10 -0
- package/icc-api/model/MessageAttachment.js +10 -0
- package/icc-api/model/MessageAttachment.js.map +1 -0
- package/icc-api/model/PaginatedListExchangeData.d.ts +1 -1
- package/icc-api/model/PaginatedListExchangeData.js.map +1 -1
- package/icc-api/model/PaginatedListTopic.d.ts +20 -0
- package/icc-api/model/PaginatedListTopic.js +10 -0
- package/icc-api/model/PaginatedListTopic.js.map +1 -0
- package/icc-api/model/Patient.d.ts +0 -2
- package/icc-api/model/Patient.js +0 -1
- package/icc-api/model/Patient.js.map +1 -1
- package/icc-api/model/Receipt.d.ts +0 -2
- package/icc-api/model/Receipt.js +0 -1
- package/icc-api/model/Receipt.js.map +1 -1
- package/icc-api/model/Role.d.ts +11 -0
- package/icc-api/model/Role.js +10 -0
- package/icc-api/model/Role.js.map +1 -0
- package/icc-api/model/RoleConfiguration.d.ts +6 -0
- package/icc-api/model/RoleConfiguration.js +10 -0
- package/icc-api/model/RoleConfiguration.js.map +1 -0
- package/icc-api/model/RoleSourceEnum.d.ts +11 -0
- package/icc-api/model/RoleSourceEnum.js +16 -0
- package/icc-api/model/RoleSourceEnum.js.map +1 -0
- package/icc-api/model/TimeTable.d.ts +0 -2
- package/icc-api/model/TimeTable.js +0 -1
- package/icc-api/model/TimeTable.js.map +1 -1
- package/icc-api/model/Topic.d.ts +95 -0
- package/icc-api/model/Topic.js +16 -0
- package/icc-api/model/Topic.js.map +1 -0
- package/icc-api/model/UserTypeEnum.d.ts +9 -0
- package/icc-api/model/UserTypeEnum.js +14 -0
- package/icc-api/model/UserTypeEnum.js.map +1 -0
- package/icc-api/model/{ExchangeData.d.ts → internal/ExchangeData.d.ts} +3 -0
- package/icc-api/model/{ExchangeData.js → internal/ExchangeData.js} +3 -0
- package/icc-api/model/internal/ExchangeData.js.map +1 -0
- package/icc-api/model/{ExchangeDataMap.d.ts → internal/ExchangeDataMap.d.ts} +3 -0
- package/icc-api/model/{ExchangeDataMap.js → internal/ExchangeDataMap.js} +3 -0
- package/icc-api/model/internal/ExchangeDataMap.js.map +1 -0
- package/icc-api/model/internal/SecureDelegationKeyMap.d.ts +14 -0
- package/icc-api/model/internal/SecureDelegationKeyMap.js +13 -0
- package/icc-api/model/internal/SecureDelegationKeyMap.js.map +1 -0
- package/icc-api/model/models.d.ts +11 -1
- package/icc-api/model/models.js +9 -0
- package/icc-api/model/models.js.map +1 -1
- package/icc-x-api/basexapi/EncryptedEntityXApi.d.ts +52 -4
- package/icc-x-api/basexapi/EncryptedEntityXApi.js.map +1 -1
- package/icc-x-api/crypto/AccessControlKeysHeadersProvider.d.ts +2 -0
- package/icc-x-api/crypto/AccessControlKeysHeadersProvider.js +13 -4
- package/icc-x-api/crypto/AccessControlKeysHeadersProvider.js.map +1 -1
- package/icc-x-api/crypto/AccessControlSecretUtils.d.ts +1 -0
- package/icc-x-api/crypto/AccessControlSecretUtils.js +11 -0
- package/icc-x-api/crypto/AccessControlSecretUtils.js.map +1 -1
- package/icc-x-api/crypto/BaseExchangeDataManager.d.ts +1 -1
- package/icc-x-api/crypto/BaseExchangeDataManager.js +1 -1
- package/icc-x-api/crypto/BaseExchangeDataManager.js.map +1 -1
- package/icc-x-api/crypto/DelegationsDeAnonymization.d.ts +44 -0
- package/icc-x-api/crypto/DelegationsDeAnonymization.js +235 -0
- package/icc-x-api/crypto/DelegationsDeAnonymization.js.map +1 -0
- package/icc-x-api/crypto/ExchangeDataManager.d.ts +3 -1
- package/icc-x-api/crypto/ExchangeDataManager.js +27 -19
- package/icc-x-api/crypto/ExchangeDataManager.js.map +1 -1
- package/icc-x-api/crypto/ExchangeDataMapManager.d.ts +1 -1
- package/icc-x-api/crypto/ExchangeDataMapManager.js.map +1 -1
- package/icc-x-api/crypto/ExtendedApisUtils.d.ts +0 -10
- package/icc-x-api/crypto/ExtendedApisUtils.js.map +1 -1
- package/icc-x-api/crypto/ExtendedApisUtilsImpl.d.ts +0 -7
- package/icc-x-api/crypto/ExtendedApisUtilsImpl.js +4 -7
- package/icc-x-api/crypto/ExtendedApisUtilsImpl.js.map +1 -1
- package/icc-x-api/crypto/LegacyDelegationSecurityMetadataDecryptor.d.ts +0 -6
- package/icc-x-api/crypto/LegacyDelegationSecurityMetadataDecryptor.js +0 -9
- package/icc-x-api/crypto/LegacyDelegationSecurityMetadataDecryptor.js.map +1 -1
- package/icc-x-api/crypto/SecureDelegationsManager.js.map +1 -1
- package/icc-x-api/crypto/SecureDelegationsSecurityMetadataDecryptor.d.ts +14 -5
- package/icc-x-api/crypto/SecureDelegationsSecurityMetadataDecryptor.js +44 -26
- package/icc-x-api/crypto/SecureDelegationsSecurityMetadataDecryptor.js.map +1 -1
- package/icc-x-api/crypto/SecurityMetadataDecryptor.d.ts +1 -18
- package/icc-x-api/crypto/SecurityMetadataDecryptor.js +4 -23
- package/icc-x-api/crypto/SecurityMetadataDecryptor.js.map +1 -1
- package/icc-x-api/crypto/UserSignatureKeysManager.d.ts +1 -1
- package/icc-x-api/crypto/UserSignatureKeysManager.js +2 -2
- package/icc-x-api/crypto/UserSignatureKeysManager.js.map +1 -1
- package/icc-x-api/filters/LatestMessageByHcPartyTransportGuidFilter.d.ts +8 -0
- package/icc-x-api/filters/LatestMessageByHcPartyTransportGuidFilter.js +13 -0
- package/icc-x-api/filters/LatestMessageByHcPartyTransportGuidFilter.js.map +1 -0
- package/icc-x-api/filters/MessageByHcPartyFilter.d.ts +7 -0
- package/icc-x-api/filters/MessageByHcPartyFilter.js +13 -0
- package/icc-x-api/filters/MessageByHcPartyFilter.js.map +1 -0
- package/icc-x-api/filters/MessageByHcPartyTransportGuidFilter.d.ts +8 -0
- package/icc-x-api/filters/MessageByHcPartyTransportGuidFilter.js +13 -0
- package/icc-x-api/filters/MessageByHcPartyTransportGuidFilter.js.map +1 -0
- package/icc-x-api/filters/TopicByHcPartyFilter.d.ts +7 -0
- package/icc-x-api/filters/TopicByHcPartyFilter.js +13 -0
- package/icc-x-api/filters/TopicByHcPartyFilter.js.map +1 -0
- package/icc-x-api/filters/TopicByParticipantFilter.d.ts +7 -0
- package/icc-x-api/filters/TopicByParticipantFilter.js +13 -0
- package/icc-x-api/filters/TopicByParticipantFilter.js.map +1 -0
- package/icc-x-api/filters/filters.d.ts +5 -0
- package/icc-x-api/filters/filters.js +5 -0
- package/icc-x-api/filters/filters.js.map +1 -1
- package/icc-x-api/icc-accesslog-x-api.d.ts +3 -1
- package/icc-x-api/icc-accesslog-x-api.js +7 -3
- package/icc-x-api/icc-accesslog-x-api.js.map +1 -1
- package/icc-x-api/icc-calendar-item-x-api.d.ts +3 -1
- package/icc-x-api/icc-calendar-item-x-api.js +7 -3
- package/icc-x-api/icc-calendar-item-x-api.js.map +1 -1
- package/icc-x-api/icc-classification-x-api.d.ts +3 -1
- package/icc-x-api/icc-classification-x-api.js +7 -3
- package/icc-x-api/icc-classification-x-api.js.map +1 -1
- package/icc-x-api/icc-contact-x-api.d.ts +3 -1
- package/icc-x-api/icc-contact-x-api.js +8 -4
- package/icc-x-api/icc-contact-x-api.js.map +1 -1
- package/icc-x-api/icc-crypto-x-api.d.ts +7 -1
- package/icc-x-api/icc-crypto-x-api.js +8 -1
- package/icc-x-api/icc-crypto-x-api.js.map +1 -1
- package/icc-x-api/icc-document-x-api.d.ts +3 -1
- package/icc-x-api/icc-document-x-api.js +8 -4
- package/icc-x-api/icc-document-x-api.js.map +1 -1
- package/icc-x-api/icc-form-x-api.d.ts +3 -1
- package/icc-x-api/icc-form-x-api.js +7 -3
- package/icc-x-api/icc-form-x-api.js.map +1 -1
- package/icc-x-api/icc-helement-x-api.d.ts +4 -2
- package/icc-x-api/icc-helement-x-api.js +8 -8
- package/icc-x-api/icc-helement-x-api.js.map +1 -1
- package/icc-x-api/icc-invoice-x-api.d.ts +3 -1
- package/icc-x-api/icc-invoice-x-api.js +7 -3
- package/icc-x-api/icc-invoice-x-api.js.map +1 -1
- package/icc-x-api/icc-maintenance-task-x-api.d.ts +8 -4
- package/icc-x-api/icc-maintenance-task-x-api.js +14 -4
- package/icc-x-api/icc-maintenance-task-x-api.js.map +1 -1
- package/icc-x-api/icc-message-x-api.d.ts +24 -6
- package/icc-x-api/icc-message-x-api.js +66 -6
- package/icc-x-api/icc-message-x-api.js.map +1 -1
- package/icc-x-api/icc-patient-x-api.d.ts +3 -1
- package/icc-x-api/icc-patient-x-api.js +7 -3
- package/icc-x-api/icc-patient-x-api.js.map +1 -1
- package/icc-x-api/icc-receipt-x-api.d.ts +3 -1
- package/icc-x-api/icc-receipt-x-api.js +7 -3
- package/icc-x-api/icc-receipt-x-api.js.map +1 -1
- package/icc-x-api/icc-time-table-x-api.d.ts +3 -1
- package/icc-x-api/icc-time-table-x-api.js +7 -3
- package/icc-x-api/icc-time-table-x-api.js.map +1 -1
- package/icc-x-api/icc-topic-x-api.d.ts +191 -0
- package/icc-x-api/icc-topic-x-api.js +307 -0
- package/icc-x-api/icc-topic-x-api.js.map +1 -0
- package/icc-x-api/index.d.ts +17 -0
- package/icc-x-api/index.js +104 -70
- package/icc-x-api/index.js.map +1 -1
- package/icc-x-api/maintenance/KeyPairUpdateRequest.d.ts +1 -1
- package/icc-x-api/storage/KeyStorageImpl.d.ts +1 -0
- package/icc-x-api/storage/KeyStorageImpl.js +20 -12
- package/icc-x-api/storage/KeyStorageImpl.js.map +1 -1
- package/icc-x-api/utils/EntityWithDelegationTypeName.d.ts +1 -1
- package/icc-x-api/utils/EntityWithDelegationTypeName.js.map +1 -1
- package/icc-x-api/utils/websocket.d.ts +4 -0
- package/icc-x-api/utils/websocket.js +8 -0
- package/icc-x-api/utils/websocket.js.map +1 -1
- package/package.json +1 -1
- package/icc-api/api/IccDocumentTemplateApi.d.ts +0 -106
- package/icc-api/api/IccDocumentTemplateApi.js +0 -223
- package/icc-api/api/IccDocumentTemplateApi.js.map +0 -1
- package/icc-api/model/ExchangeData.js.map +0 -1
- package/icc-api/model/ExchangeDataMap.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../icc-x-api/utils/websocket.ts"],"names":[],"mappings":"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","sourcesContent":["import * as WebSocketNode from 'ws'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { AbstractFilter } from '../filters/filters'\nimport { User } from '../../icc-api/model/User'\nimport { isNode } from 'browser-or-node'\nimport { IccAuthApi } from '../../icc-api'\nimport { Service } from '../../icc-api/model/Service'\nimport { HealthElement } from '../../icc-api/model/HealthElement'\nimport { MaintenanceTask } from '../../icc-api/model/MaintenanceTask'\nimport { HealthcareParty } from '../../icc-api/model/HealthcareParty'\nimport { Device } from '../../icc-api/model/Device'\nimport { Contact } from '../../icc-api/model/Contact'\n\nexport type EventTypes = 'CREATE' | 'UPDATE' | 'DELETE'\ntype Subscribable = 'Patient' | 'Service' | 'User' | 'HealthElement' | 'MaintenanceTask' | 'HealthcareParty' | 'Device' | 'Contact'\ntype SubscribableEntity = Patient | Service | User | HealthElement | MaintenanceTask | HealthcareParty | Device | Contact\nexport type SubscriptionOptions = {\n connectionMaxRetry?: number\n connectionRetryIntervalMs?: number\n debug?: boolean\n}\n\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'Patient',\n eventTypes: EventTypes[],\n filter: AbstractFilter<Patient> | undefined,\n eventFired: (entity: Patient) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: Patient) => Promise<Patient>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'Service',\n eventTypes: EventTypes[],\n filter: AbstractFilter<Service> | undefined,\n eventFired: (entity: Service) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: Service) => Promise<Service>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'Contact',\n eventTypes: EventTypes[],\n filter: AbstractFilter<Contact> | undefined,\n eventFired: (entity: Contact) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: Contact) => Promise<Contact>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'HealthElement',\n eventTypes: EventTypes[],\n filter: AbstractFilter<HealthElement> | undefined,\n eventFired: (entity: HealthElement) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: HealthElement) => Promise<HealthElement>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'User',\n eventTypes: EventTypes[],\n filter: AbstractFilter<User> | undefined,\n eventFired: (entity: User) => Promise<void>,\n options: SubscriptionOptions\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'MaintenanceTask',\n eventTypes: EventTypes[],\n filter: AbstractFilter<MaintenanceTask> | undefined,\n eventFired: (entity: MaintenanceTask) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: MaintenanceTask) => Promise<MaintenanceTask>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'HealthcareParty',\n eventTypes: EventTypes[],\n filter: AbstractFilter<HealthcareParty> | undefined,\n eventFired: (entity: HealthcareParty) => Promise<void>,\n options: SubscriptionOptions\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'Device',\n eventTypes: EventTypes[],\n filter: AbstractFilter<Device> | undefined,\n eventFired: (entity: Device) => Promise<void>,\n options: SubscriptionOptions\n): Promise<WebSocketWrapper>\n\nexport function subscribeToEntityEvents<T extends SubscribableEntity>(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: Subscribable,\n eventTypes: EventTypes[],\n filter: AbstractFilter<T> | undefined,\n eventFired: (entity: T) => Promise<void>,\n options: SubscriptionOptions = {},\n decryptor?: (encrypted: T) => Promise<T>\n): Promise<WebSocketWrapper> {\n const config = {\n User: {\n qualifiedName: 'org.taktik.icure.entities.User',\n decryptor: (data: User) => Promise.resolve(new User({ ...data }) as T),\n },\n Patient: {\n qualifiedName: 'org.taktik.icure.entities.Patient',\n decryptor: (data: Patient) => decryptor!(data as Patient as T),\n },\n Service: {\n qualifiedName: 'org.taktik.icure.entities.embed.Service',\n decryptor: (data: Service) => decryptor!(data as Service as T),\n },\n HealthElement: {\n qualifiedName: 'org.taktik.icure.entities.HealthElement',\n decryptor: (data: HealthElement) => decryptor!(data as HealthElement as T),\n },\n MaintenanceTask: {\n qualifiedName: 'org.taktik.icure.entities.MaintenanceTask',\n decryptor: (data: MaintenanceTask) => decryptor!(data as MaintenanceTask as T),\n },\n HealthcareParty: {\n qualifiedName: 'org.taktik.icure.entities.HealthcareParty',\n decryptor: (data: HealthcareParty) => Promise.resolve(new HealthcareParty({ ...data }) as HealthcareParty as T),\n },\n Device: {\n qualifiedName: 'org.taktik.icure.entities.Device',\n decryptor: (data: Device) => Promise.resolve(new Device({ ...data }) as Device as T),\n },\n Contact: {\n qualifiedName: 'org.taktik.icure.entities.Contact',\n decryptor: (data: Contact) => decryptor!(data as Contact as T),\n },\n }\n\n return WebSocketWrapper.create(\n basePath.replace('http', 'ws').replace('rest', 'ws') + '/notification/subscribe',\n new WebSocketAuthProviderImpl(authApi),\n options.connectionMaxRetry ?? 5,\n options.connectionRetryIntervalMs ?? 1_000,\n {\n CONNECTED: [\n async (ws: WebSocketWrapper) => {\n const subscription = {\n eventTypes,\n entityClass: config[entityClass].qualifiedName,\n filter: { filter },\n }\n\n ws.send(JSON.stringify(subscription))\n },\n ],\n },\n async (data: any) => {\n try {\n await config[entityClass].decryptor(data).then((o) => eventFired(o))\n } catch (e) {\n console.error(e)\n }\n },\n options.debug\n )\n}\n\nexport type ConnectionStatus = 'NOT_CONNECTED' | 'CONNECTED' | 'CLOSED' | 'ERROR'\nexport type StatusCallback = (ws: WebSocketWrapper) => void\nexport type ErrorStatusCallback = (ws: WebSocketWrapper, error?: Error) => void\nexport type ConnectionStatusFunction = {\n [K in ConnectionStatus]: K extends 'ERROR' ? ErrorStatusCallback : StatusCallback\n}\nexport type ConnectionStatusFunctions = {\n [K in ConnectionStatus]?: K extends 'ERROR' ? Array<ErrorStatusCallback> : Array<StatusCallback>\n}\nexport type WebSocketWrapperMessageCallback = (data: any) => void\n\nexport class WebSocketWrapper {\n private readonly pingLifetime: number = 20_000\n private socket: WebsocketAdapter | null = null\n private retries = 0\n private closed = false\n private lastPingReceived = Date.now()\n private intervalIds: (NodeJS.Timeout | number)[] = []\n private readonly methodPath: string\n\n private constructor(\n private readonly url: string,\n private readonly authProvider: WebSocketAuthProvider,\n private readonly maxRetries = 3,\n private readonly retryDelay = 1000,\n private readonly statusCallbacks: ConnectionStatusFunctions = {},\n private readonly messageCallback: WebSocketWrapperMessageCallback = () => {},\n private readonly debug: boolean = false\n ) {\n this.methodPath = new URL(url).pathname\n }\n\n public static async create(\n url: string,\n authProvider: WebSocketAuthProvider,\n maxRetries?: number,\n retryDelay?: number,\n statusCallbacks?: ConnectionStatusFunctions,\n messageCallback?: WebSocketWrapperMessageCallback,\n debug?: boolean\n ): Promise<WebSocketWrapper> {\n const ws = new WebSocketWrapper(url, authProvider, maxRetries, retryDelay, statusCallbacks, messageCallback, debug)\n await ws.connect()\n return ws\n }\n\n public send(data: Buffer | ArrayBuffer | string) {\n if (this.socket && this.socket.readyState === ReadyState.OPEN) {\n this.socket.send(data)\n }\n }\n\n public close() {\n if (this.socket) {\n this.closed = true\n this.socket.close(1000, 'Client closed connection')\n }\n }\n\n public addStatusCallback(status: ConnectionStatus, callback: ConnectionStatusFunction[ConnectionStatus]) {\n switch (status) {\n case 'CONNECTED':\n case 'CLOSED':\n if (!this.statusCallbacks[status]) this.statusCallbacks[status] = []\n this.statusCallbacks?.[status]?.push(callback)\n break\n case 'ERROR':\n this.statusCallbacks?.ERROR?.push(callback)\n break\n }\n }\n\n private async connect() {\n if (this.retries >= this.maxRetries) {\n throw new Error('WebSocket connection failed after ' + this.maxRetries + ' retries')\n }\n\n const bearerToken = await this.authProvider.getBearerToken()\n\n const socket =\n isNode && !!bearerToken\n ? new WebSocketNode(this.url, {\n headers: {\n Authorization: bearerToken,\n },\n })\n : await this.authProvider.getIcureOtt(this.methodPath).then((icureOttToken) => {\n const address = `${this.url};tokenid=${icureOttToken}`\n return isNode ? new WebSocketNode(address) : new WebSocket(address)\n })\n\n this.socket = new WebsocketAdapter(socket)\n\n this.socket.on('open', async () => {\n if (this.debug) console.debug('WebSocket connection opened')\n\n this.intervalIds.push(\n setTimeout(() => {\n this.retries = 0\n }, (this.maxRetries + 1) * this.retryDelay)\n )\n\n this.callStatusCallbacks('CONNECTED')\n })\n\n this.socket.on('message', (event: string) => {\n if (this.debug) console.debug('WebSocket message received', event)\n\n // Handle ping messages\n if (event === 'ping') {\n if (this.debug) console.debug('Received ping, sending pong')\n\n this.send('pong')\n this.lastPingReceived = Date.now()\n\n this.intervalIds.push(\n setTimeout(() => {\n if (Date.now() - this.lastPingReceived > this.pingLifetime) {\n console.error(`No ping received in the last ${this.pingLifetime} ms`)\n this.socket?.close()\n }\n }, this.pingLifetime)\n )\n\n return\n }\n\n // Call the message callback for other messages\n try {\n const data = JSON.parse(event)\n this.messageCallback(data)\n } catch (error) {\n console.error('Failed to parse WebSocket message', error)\n }\n })\n\n this.socket.on('close', ({ code, reason }) => {\n if (this.debug) console.debug('WebSocket connection closed', code, reason?.toString())\n\n this.callStatusCallbacks('CLOSED')\n\n this.intervalIds.forEach((id) => clearTimeout(id as number))\n this.intervalIds = []\n\n if (this.closed) {\n return\n }\n\n setTimeout(async () => {\n ++this.retries\n return await this.connect()\n }, this.retryDelay)\n })\n\n this.socket.on('error', async (err) => {\n console.error('WebSocket error', err)\n\n this.callStatusCallbacks('ERROR', err)\n\n if (this.socket) {\n this.socket.close()\n }\n })\n }\n\n private callStatusCallbacks(event: ConnectionStatus, error?: Error) {\n switch (event) {\n case 'CONNECTED':\n case 'CLOSED':\n this.statusCallbacks?.[event]?.forEach((callback) => callback(this))\n break\n case 'ERROR':\n this.statusCallbacks?.ERROR?.forEach((callback) => callback(this, error))\n break\n }\n }\n}\n\ninterface WebSocketAuthProvider {\n getBearerToken(): Promise<string | undefined>\n\n getIcureOtt(icureMethodPath: string): Promise<string>\n}\n\nclass WebSocketAuthProviderImpl {\n constructor(private readonly authApi: IccAuthApi) {}\n\n async getBearerToken(): Promise<string | undefined> {\n const headers = await this.authApi.authenticationProvider.getAuthService().getAuthHeaders()\n return headers.find((header) => header.header === 'Authorization' && header.data.startsWith('Bearer '))?.data\n }\n\n async getIcureOtt(icureMethodPath: string): Promise<string> {\n return await this.authApi.token('GET', icureMethodPath)\n }\n}\n\ntype EventCallback = {\n open: (event: any) => void\n message: (event: string) => void\n close: (event: { code: number; reason: string }) => void\n error: (error: any) => void\n}\n\nenum ReadyState {\n CONNECTING = 0,\n OPEN = 1,\n CLOSING = 2,\n CLOSED = 3,\n}\n\nclass WebsocketAdapter {\n constructor(private readonly websocket: WebSocketNode | WebSocket) {}\n\n public get readyState(): number {\n if (this.websocket) {\n if (isNode) {\n switch ((this.websocket as WebSocketNode).readyState) {\n case WebSocketNode.CONNECTING:\n return ReadyState.CONNECTING\n case WebSocketNode.OPEN:\n return ReadyState.OPEN\n case WebSocketNode.CLOSING:\n return ReadyState.CLOSING\n case WebSocketNode.CLOSED:\n return ReadyState.CLOSED\n }\n } else {\n switch ((this.websocket as WebSocket).readyState) {\n case WebSocket.CONNECTING:\n return ReadyState.CONNECTING\n case WebSocket.OPEN:\n return ReadyState.OPEN\n case WebSocket.CLOSING:\n return ReadyState.CLOSING\n case WebSocket.CLOSED:\n return ReadyState.CLOSED\n }\n }\n }\n return ReadyState.CLOSED\n }\n\n /**\n * This is not throwing an error if the websocket is not open, because the purpose of the websocket wrapper is custom to notifications needs (subscribe and ping pong only)\n * If in the future we need to use it for other purposes, we will have to throw an error and update the implementation of ping pong in the notification\n * @param data the data to send\n */\n public send(data: Buffer | ArrayBuffer | string) {\n if (this.websocket && this.readyState === ReadyState.OPEN) {\n this.websocket.send(data)\n }\n }\n\n public close(code?: number, reason?: string) {\n if (this.websocket) {\n this.websocket.close(code, reason)\n }\n }\n\n private onMessage(callback: (event: string) => void) {\n if (this.websocket) {\n if (isNode) {\n ;(this.websocket as WebSocketNode).on('message', (x) => callback(x.toString('utf8')))\n } else {\n ;(this.websocket as WebSocket).addEventListener('message', async (event) => {\n let dataAsString: string | undefined\n if (event.type === 'message') {\n dataAsString = event.data\n } else console.error('Unexpected event type: ' + event.type)\n if (!dataAsString) {\n console.error('Failed to parse WebSocket message')\n return\n }\n\n callback(dataAsString)\n })\n }\n } else {\n console.error('Websocket is not defined')\n throw new Error('Websocket is not defined')\n }\n }\n\n private onOpen(callback: (event: any) => void) {\n if (this.websocket) {\n if (isNode) {\n ;(this.websocket as WebSocketNode).on('open', callback)\n } else {\n ;(this.websocket as WebSocket).addEventListener('open', callback)\n }\n }\n }\n\n private onClose(callback: (event: { code: number; reason: string }) => void) {\n if (this.websocket) {\n if (isNode) {\n ;(this.websocket as WebSocketNode).on('close', callback)\n } else {\n ;(this.websocket as WebSocket).addEventListener('close', callback)\n }\n }\n }\n\n private onError(callback: (error: any) => void) {\n if (this.websocket) {\n if (isNode) {\n ;(this.websocket as WebSocketNode).on('error', callback)\n } else {\n ;(this.websocket as WebSocket).addEventListener('error', callback)\n }\n }\n }\n\n public on<K extends keyof EventCallback>(event: K, callback: EventCallback[K]) {\n if (this.websocket) {\n switch (event) {\n case 'message':\n return this.onMessage(callback as EventCallback['message'])\n case 'open':\n return this.onOpen(callback as EventCallback['open'])\n case 'close':\n return this.onClose(callback as EventCallback['close'])\n case 'error':\n return this.onError(callback as EventCallback['error'])\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../icc-x-api/utils/websocket.ts"],"names":[],"mappings":"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","sourcesContent":["import * as WebSocketNode from 'ws'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { AbstractFilter } from '../filters/filters'\nimport { User } from '../../icc-api/model/User'\nimport { isNode } from 'browser-or-node'\nimport { IccAuthApi } from '../../icc-api'\nimport { Service } from '../../icc-api/model/Service'\nimport { HealthElement } from '../../icc-api/model/HealthElement'\nimport { MaintenanceTask } from '../../icc-api/model/MaintenanceTask'\nimport { HealthcareParty } from '../../icc-api/model/HealthcareParty'\nimport { Device } from '../../icc-api/model/Device'\nimport { Contact } from '../../icc-api/model/Contact'\nimport { Message } from '../../icc-api/model/Message'\nimport { Topic } from '../../icc-api/model/Topic'\n\nexport type EventTypes = 'CREATE' | 'UPDATE' | 'DELETE'\ntype Subscribable =\n | 'Patient'\n | 'Service'\n | 'User'\n | 'HealthElement'\n | 'MaintenanceTask'\n | 'HealthcareParty'\n | 'Device'\n | 'Contact'\n | 'Message'\n | 'Topic'\ntype SubscribableEntity = Patient | Service | User | HealthElement | MaintenanceTask | HealthcareParty | Device | Contact | Message | Topic\nexport type SubscriptionOptions = {\n connectionMaxRetry?: number\n connectionRetryIntervalMs?: number\n debug?: boolean\n}\n\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'Patient',\n eventTypes: EventTypes[],\n filter: AbstractFilter<Patient> | undefined,\n eventFired: (entity: Patient) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: Patient) => Promise<Patient>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'Service',\n eventTypes: EventTypes[],\n filter: AbstractFilter<Service> | undefined,\n eventFired: (entity: Service) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: Service) => Promise<Service>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'Contact',\n eventTypes: EventTypes[],\n filter: AbstractFilter<Contact> | undefined,\n eventFired: (entity: Contact) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: Contact) => Promise<Contact>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'HealthElement',\n eventTypes: EventTypes[],\n filter: AbstractFilter<HealthElement> | undefined,\n eventFired: (entity: HealthElement) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: HealthElement) => Promise<HealthElement>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'Message',\n eventTypes: EventTypes[],\n filter: AbstractFilter<Message> | undefined,\n eventFired: (entity: Message) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: Message) => Promise<Message>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'Topic',\n eventTypes: EventTypes[],\n filter: AbstractFilter<Topic> | undefined,\n eventFired: (entity: Topic) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: Topic) => Promise<Topic>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'User',\n eventTypes: EventTypes[],\n filter: AbstractFilter<User> | undefined,\n eventFired: (entity: User) => Promise<void>,\n options: SubscriptionOptions\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'MaintenanceTask',\n eventTypes: EventTypes[],\n filter: AbstractFilter<MaintenanceTask> | undefined,\n eventFired: (entity: MaintenanceTask) => Promise<void>,\n options: SubscriptionOptions,\n decryptor: (encrypted: MaintenanceTask) => Promise<MaintenanceTask>\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'HealthcareParty',\n eventTypes: EventTypes[],\n filter: AbstractFilter<HealthcareParty> | undefined,\n eventFired: (entity: HealthcareParty) => Promise<void>,\n options: SubscriptionOptions\n): Promise<WebSocketWrapper>\nexport function subscribeToEntityEvents(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: 'Device',\n eventTypes: EventTypes[],\n filter: AbstractFilter<Device> | undefined,\n eventFired: (entity: Device) => Promise<void>,\n options: SubscriptionOptions\n): Promise<WebSocketWrapper>\n\nexport function subscribeToEntityEvents<T extends SubscribableEntity>(\n basePath: string,\n authApi: IccAuthApi,\n entityClass: Subscribable,\n eventTypes: EventTypes[],\n filter: AbstractFilter<T> | undefined,\n eventFired: (entity: T) => Promise<void>,\n options: SubscriptionOptions = {},\n decryptor?: (encrypted: T) => Promise<T>\n): Promise<WebSocketWrapper> {\n const config = {\n User: {\n qualifiedName: 'org.taktik.icure.entities.User',\n decryptor: (data: User) => Promise.resolve(new User({ ...data }) as T),\n },\n Patient: {\n qualifiedName: 'org.taktik.icure.entities.Patient',\n decryptor: (data: Patient) => decryptor!(data as Patient as T),\n },\n Service: {\n qualifiedName: 'org.taktik.icure.entities.embed.Service',\n decryptor: (data: Service) => decryptor!(data as Service as T),\n },\n HealthElement: {\n qualifiedName: 'org.taktik.icure.entities.HealthElement',\n decryptor: (data: HealthElement) => decryptor!(data as HealthElement as T),\n },\n Message: {\n qualifiedName: 'org.taktik.icure.entities.Message',\n decryptor: (data: Message) => decryptor!(data as Message as T),\n },\n Topic: {\n qualifiedName: 'org.taktik.icure.entities.Topic',\n decryptor: (data: Topic) => decryptor!(data as Topic as T),\n },\n MaintenanceTask: {\n qualifiedName: 'org.taktik.icure.entities.MaintenanceTask',\n decryptor: (data: MaintenanceTask) => decryptor!(data as MaintenanceTask as T),\n },\n HealthcareParty: {\n qualifiedName: 'org.taktik.icure.entities.HealthcareParty',\n decryptor: (data: HealthcareParty) => Promise.resolve(new HealthcareParty({ ...data }) as HealthcareParty as T),\n },\n Device: {\n qualifiedName: 'org.taktik.icure.entities.Device',\n decryptor: (data: Device) => Promise.resolve(new Device({ ...data }) as Device as T),\n },\n Contact: {\n qualifiedName: 'org.taktik.icure.entities.Contact',\n decryptor: (data: Contact) => decryptor!(data as Contact as T),\n },\n }\n\n return WebSocketWrapper.create(\n basePath.replace('http', 'ws').replace('rest', 'ws') + '/notification/subscribe',\n new WebSocketAuthProviderImpl(authApi),\n options.connectionMaxRetry ?? 5,\n options.connectionRetryIntervalMs ?? 1_000,\n {\n CONNECTED: [\n async (ws: WebSocketWrapper) => {\n const subscription = {\n eventTypes,\n entityClass: config[entityClass].qualifiedName,\n filter: { filter },\n }\n\n ws.send(JSON.stringify(subscription))\n },\n ],\n },\n async (data: any) => {\n try {\n await config[entityClass].decryptor(data).then((o) => eventFired(o))\n } catch (e) {\n console.error(e)\n }\n },\n options.debug\n )\n}\n\nexport type ConnectionStatus = 'NOT_CONNECTED' | 'CONNECTED' | 'CLOSED' | 'ERROR'\nexport type StatusCallback = (ws: WebSocketWrapper) => void\nexport type ErrorStatusCallback = (ws: WebSocketWrapper, error?: Error) => void\nexport type ConnectionStatusFunction = {\n [K in ConnectionStatus]: K extends 'ERROR' ? ErrorStatusCallback : StatusCallback\n}\nexport type ConnectionStatusFunctions = {\n [K in ConnectionStatus]?: K extends 'ERROR' ? Array<ErrorStatusCallback> : Array<StatusCallback>\n}\nexport type WebSocketWrapperMessageCallback = (data: any) => void\n\nexport class WebSocketWrapper {\n private readonly pingLifetime: number = 20_000\n private socket: WebsocketAdapter | null = null\n private retries = 0\n private closed = false\n private lastPingReceived = Date.now()\n private intervalIds: (NodeJS.Timeout | number)[] = []\n private readonly methodPath: string\n\n private constructor(\n private readonly url: string,\n private readonly authProvider: WebSocketAuthProvider,\n private readonly maxRetries = 3,\n private readonly retryDelay = 1000,\n private readonly statusCallbacks: ConnectionStatusFunctions = {},\n private readonly messageCallback: WebSocketWrapperMessageCallback = () => {},\n private readonly debug: boolean = false\n ) {\n this.methodPath = new URL(url).pathname\n }\n\n public static async create(\n url: string,\n authProvider: WebSocketAuthProvider,\n maxRetries?: number,\n retryDelay?: number,\n statusCallbacks?: ConnectionStatusFunctions,\n messageCallback?: WebSocketWrapperMessageCallback,\n debug?: boolean\n ): Promise<WebSocketWrapper> {\n const ws = new WebSocketWrapper(url, authProvider, maxRetries, retryDelay, statusCallbacks, messageCallback, debug)\n await ws.connect()\n return ws\n }\n\n public send(data: Buffer | ArrayBuffer | string) {\n if (this.socket && this.socket.readyState === ReadyState.OPEN) {\n this.socket.send(data)\n }\n }\n\n public close() {\n if (this.socket) {\n this.closed = true\n this.socket.close(1000, 'Client closed connection')\n }\n }\n\n public addStatusCallback(status: ConnectionStatus, callback: ConnectionStatusFunction[ConnectionStatus]) {\n switch (status) {\n case 'CONNECTED':\n case 'CLOSED':\n if (!this.statusCallbacks[status]) this.statusCallbacks[status] = []\n this.statusCallbacks?.[status]?.push(callback)\n break\n case 'ERROR':\n this.statusCallbacks?.ERROR?.push(callback)\n break\n }\n }\n\n private async connect() {\n if (this.retries >= this.maxRetries) {\n throw new Error('WebSocket connection failed after ' + this.maxRetries + ' retries')\n }\n\n const bearerToken = await this.authProvider.getBearerToken()\n\n const socket =\n isNode && !!bearerToken\n ? new WebSocketNode(this.url, {\n headers: {\n Authorization: bearerToken,\n },\n })\n : await this.authProvider.getIcureOtt(this.methodPath).then((icureOttToken) => {\n const address = `${this.url};tokenid=${icureOttToken}`\n return isNode ? new WebSocketNode(address) : new WebSocket(address)\n })\n\n this.socket = new WebsocketAdapter(socket)\n\n this.socket.on('open', async () => {\n if (this.debug) console.debug('WebSocket connection opened')\n\n this.intervalIds.push(\n setTimeout(() => {\n this.retries = 0\n }, (this.maxRetries + 1) * this.retryDelay)\n )\n\n this.callStatusCallbacks('CONNECTED')\n })\n\n this.socket.on('message', (event: string) => {\n if (this.debug) console.debug('WebSocket message received', event)\n\n // Handle ping messages\n if (event === 'ping') {\n if (this.debug) console.debug('Received ping, sending pong')\n\n this.send('pong')\n this.lastPingReceived = Date.now()\n\n this.intervalIds.push(\n setTimeout(() => {\n if (Date.now() - this.lastPingReceived > this.pingLifetime) {\n console.error(`No ping received in the last ${this.pingLifetime} ms`)\n this.socket?.close()\n }\n }, this.pingLifetime)\n )\n\n return\n }\n\n // Call the message callback for other messages\n try {\n const data = JSON.parse(event)\n this.messageCallback(data)\n } catch (error) {\n console.error('Failed to parse WebSocket message', error)\n }\n })\n\n this.socket.on('close', ({ code, reason }) => {\n if (this.debug) console.debug('WebSocket connection closed', code, reason?.toString())\n\n this.callStatusCallbacks('CLOSED')\n\n this.intervalIds.forEach((id) => clearTimeout(id as number))\n this.intervalIds = []\n\n if (this.closed) {\n return\n }\n\n setTimeout(async () => {\n ++this.retries\n return await this.connect()\n }, this.retryDelay)\n })\n\n this.socket.on('error', async (err) => {\n console.error('WebSocket error', err)\n\n this.callStatusCallbacks('ERROR', err)\n\n if (this.socket) {\n this.socket.close()\n }\n })\n }\n\n private callStatusCallbacks(event: ConnectionStatus, error?: Error) {\n switch (event) {\n case 'CONNECTED':\n case 'CLOSED':\n this.statusCallbacks?.[event]?.forEach((callback) => callback(this))\n break\n case 'ERROR':\n this.statusCallbacks?.ERROR?.forEach((callback) => callback(this, error))\n break\n }\n }\n}\n\ninterface WebSocketAuthProvider {\n getBearerToken(): Promise<string | undefined>\n\n getIcureOtt(icureMethodPath: string): Promise<string>\n}\n\nclass WebSocketAuthProviderImpl {\n constructor(private readonly authApi: IccAuthApi) {}\n\n async getBearerToken(): Promise<string | undefined> {\n const headers = await this.authApi.authenticationProvider.getAuthService().getAuthHeaders()\n return headers.find((header) => header.header === 'Authorization' && header.data.startsWith('Bearer '))?.data\n }\n\n async getIcureOtt(icureMethodPath: string): Promise<string> {\n return await this.authApi.token('GET', icureMethodPath)\n }\n}\n\ntype EventCallback = {\n open: (event: any) => void\n message: (event: string) => void\n close: (event: { code: number; reason: string }) => void\n error: (error: any) => void\n}\n\nenum ReadyState {\n CONNECTING = 0,\n OPEN = 1,\n CLOSING = 2,\n CLOSED = 3,\n}\n\nclass WebsocketAdapter {\n constructor(private readonly websocket: WebSocketNode | WebSocket) {}\n\n public get readyState(): number {\n if (this.websocket) {\n if (isNode) {\n switch ((this.websocket as WebSocketNode).readyState) {\n case WebSocketNode.CONNECTING:\n return ReadyState.CONNECTING\n case WebSocketNode.OPEN:\n return ReadyState.OPEN\n case WebSocketNode.CLOSING:\n return ReadyState.CLOSING\n case WebSocketNode.CLOSED:\n return ReadyState.CLOSED\n }\n } else {\n switch ((this.websocket as WebSocket).readyState) {\n case WebSocket.CONNECTING:\n return ReadyState.CONNECTING\n case WebSocket.OPEN:\n return ReadyState.OPEN\n case WebSocket.CLOSING:\n return ReadyState.CLOSING\n case WebSocket.CLOSED:\n return ReadyState.CLOSED\n }\n }\n }\n return ReadyState.CLOSED\n }\n\n /**\n * This is not throwing an error if the websocket is not open, because the purpose of the websocket wrapper is custom to notifications needs (subscribe and ping pong only)\n * If in the future we need to use it for other purposes, we will have to throw an error and update the implementation of ping pong in the notification\n * @param data the data to send\n */\n public send(data: Buffer | ArrayBuffer | string) {\n if (this.websocket && this.readyState === ReadyState.OPEN) {\n this.websocket.send(data)\n }\n }\n\n public close(code?: number, reason?: string) {\n if (this.websocket) {\n this.websocket.close(code, reason)\n }\n }\n\n private onMessage(callback: (event: string) => void) {\n if (this.websocket) {\n if (isNode) {\n ;(this.websocket as WebSocketNode).on('message', (x) => callback(x.toString('utf8')))\n } else {\n ;(this.websocket as WebSocket).addEventListener('message', async (event) => {\n let dataAsString: string | undefined\n if (event.type === 'message') {\n dataAsString = event.data\n } else console.error('Unexpected event type: ' + event.type)\n if (!dataAsString) {\n console.error('Failed to parse WebSocket message')\n return\n }\n\n callback(dataAsString)\n })\n }\n } else {\n console.error('Websocket is not defined')\n throw new Error('Websocket is not defined')\n }\n }\n\n private onOpen(callback: (event: any) => void) {\n if (this.websocket) {\n if (isNode) {\n ;(this.websocket as WebSocketNode).on('open', callback)\n } else {\n ;(this.websocket as WebSocket).addEventListener('open', callback)\n }\n }\n }\n\n private onClose(callback: (event: { code: number; reason: string }) => void) {\n if (this.websocket) {\n if (isNode) {\n ;(this.websocket as WebSocketNode).on('close', callback)\n } else {\n ;(this.websocket as WebSocket).addEventListener('close', callback)\n }\n }\n }\n\n private onError(callback: (error: any) => void) {\n if (this.websocket) {\n if (isNode) {\n ;(this.websocket as WebSocketNode).on('error', callback)\n } else {\n ;(this.websocket as WebSocket).addEventListener('error', callback)\n }\n }\n }\n\n public on<K extends keyof EventCallback>(event: K, callback: EventCallback[K]) {\n if (this.websocket) {\n switch (event) {\n case 'message':\n return this.onMessage(callback as EventCallback['message'])\n case 'open':\n return this.onOpen(callback as EventCallback['open'])\n case 'close':\n return this.onClose(callback as EventCallback['close'])\n case 'error':\n return this.onError(callback as EventCallback['error'])\n }\n }\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* iCure Data Stack API Documentation
|
|
3
|
-
* The iCure Data Stack Application API is the native interface to iCure.
|
|
4
|
-
*
|
|
5
|
-
* OpenAPI spec version: v0
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by the swagger code generator program.
|
|
9
|
-
* https://github.com/swagger-api/swagger-codegen.git
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
import { XHR } from './XHR';
|
|
13
|
-
import { DocIdentifier } from '../model/DocIdentifier';
|
|
14
|
-
import { DocumentTemplate } from '../model/DocumentTemplate';
|
|
15
|
-
import { ListOfIds } from '../model/ListOfIds';
|
|
16
|
-
import { AuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider';
|
|
17
|
-
export declare class IccDocumentTemplateApi {
|
|
18
|
-
host: string;
|
|
19
|
-
headers: Array<XHR.Header>;
|
|
20
|
-
authenticationProvider: AuthenticationProvider;
|
|
21
|
-
fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
|
|
22
|
-
constructor(host: string, headers: any, authenticationProvider?: AuthenticationProvider, fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>);
|
|
23
|
-
setHeaders(h: Array<XHR.Header>): void;
|
|
24
|
-
handleError(e: XHR.XHRError): never;
|
|
25
|
-
/**
|
|
26
|
-
* Returns an instance of created document template.
|
|
27
|
-
* @summary Create a document template with the current user
|
|
28
|
-
* @param body
|
|
29
|
-
*/
|
|
30
|
-
createDocumentTemplate(body?: DocumentTemplate): Promise<DocumentTemplate>;
|
|
31
|
-
/**
|
|
32
|
-
*
|
|
33
|
-
* @summary Deletes document templates
|
|
34
|
-
* @param body
|
|
35
|
-
*/
|
|
36
|
-
deleteDocumentTemplates(body?: ListOfIds): Promise<Array<DocIdentifier>>;
|
|
37
|
-
/**
|
|
38
|
-
*
|
|
39
|
-
* @summary Download a the document template attachment
|
|
40
|
-
* @param documentTemplateId
|
|
41
|
-
* @param attachmentId
|
|
42
|
-
*/
|
|
43
|
-
getAttachmentText(documentTemplateId: string, attachmentId: string): Promise<ArrayBuffer>;
|
|
44
|
-
/**
|
|
45
|
-
*
|
|
46
|
-
* @summary Gets a document template
|
|
47
|
-
* @param documentTemplateId
|
|
48
|
-
*/
|
|
49
|
-
getDocumentTemplate(documentTemplateId: string): Promise<DocumentTemplate>;
|
|
50
|
-
/**
|
|
51
|
-
*
|
|
52
|
-
* @summary Download a the document template attachment
|
|
53
|
-
* @param documentTemplateId
|
|
54
|
-
* @param attachmentId
|
|
55
|
-
*/
|
|
56
|
-
getDocumentTemplateAttachment(documentTemplateId: string, attachmentId: string): Promise<ArrayBuffer>;
|
|
57
|
-
/**
|
|
58
|
-
*
|
|
59
|
-
* @summary Gets all document templates for all users
|
|
60
|
-
*/
|
|
61
|
-
listAllDocumentTemplates(): Promise<Array<DocumentTemplate>>;
|
|
62
|
-
/**
|
|
63
|
-
*
|
|
64
|
-
* @summary Gets all document templates for current user
|
|
65
|
-
*/
|
|
66
|
-
listDocumentTemplates(): Promise<Array<DocumentTemplate>>;
|
|
67
|
-
/**
|
|
68
|
-
*
|
|
69
|
-
* @summary Gets all document templates by Type
|
|
70
|
-
* @param documentTypeCode
|
|
71
|
-
*/
|
|
72
|
-
listDocumentTemplatesByDocumentType(documentTypeCode: string): Promise<Array<DocumentTemplate>>;
|
|
73
|
-
/**
|
|
74
|
-
*
|
|
75
|
-
* @summary Gets all document templates by Type For currentUser
|
|
76
|
-
* @param documentTypeCode
|
|
77
|
-
*/
|
|
78
|
-
listDocumentTemplatesByDocumentTypeForCurrentUser(documentTypeCode: string): Promise<Array<DocumentTemplate>>;
|
|
79
|
-
/**
|
|
80
|
-
*
|
|
81
|
-
* @summary Gets all document templates
|
|
82
|
-
* @param specialityCode
|
|
83
|
-
*/
|
|
84
|
-
listDocumentTemplatesBySpeciality(specialityCode: string): Promise<Array<DocumentTemplate>>;
|
|
85
|
-
/**
|
|
86
|
-
* Returns an instance of created document template.
|
|
87
|
-
* @summary Modify a document template with the current user
|
|
88
|
-
* @param body
|
|
89
|
-
* @param documentTemplateId
|
|
90
|
-
*/
|
|
91
|
-
modifyDocumentTemplate(documentTemplateId: string, body?: DocumentTemplate): Promise<DocumentTemplate>;
|
|
92
|
-
/**
|
|
93
|
-
*
|
|
94
|
-
* @summary Creates a document's attachment
|
|
95
|
-
* @param body
|
|
96
|
-
* @param documentTemplateId
|
|
97
|
-
*/
|
|
98
|
-
setDocumentTemplateAttachment(documentTemplateId: string, body?: ArrayBuffer): Promise<DocumentTemplate>;
|
|
99
|
-
/**
|
|
100
|
-
*
|
|
101
|
-
* @summary Creates a document's attachment
|
|
102
|
-
* @param body
|
|
103
|
-
* @param documentTemplateId
|
|
104
|
-
*/
|
|
105
|
-
setDocumentTemplateAttachmentJson(documentTemplateId: string, body?: string): Promise<DocumentTemplate>;
|
|
106
|
-
}
|
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IccDocumentTemplateApi = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* iCure Data Stack API Documentation
|
|
6
|
-
* The iCure Data Stack Application API is the native interface to iCure.
|
|
7
|
-
*
|
|
8
|
-
* OpenAPI spec version: v0
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* NOTE: This class is auto generated by the swagger code generator program.
|
|
12
|
-
* https://github.com/swagger-api/swagger-codegen.git
|
|
13
|
-
* Do not edit the class manually.
|
|
14
|
-
*/
|
|
15
|
-
const XHR_1 = require("./XHR");
|
|
16
|
-
const DocIdentifier_1 = require("../model/DocIdentifier");
|
|
17
|
-
const DocumentTemplate_1 = require("../model/DocumentTemplate");
|
|
18
|
-
const AuthenticationProvider_1 = require("../../icc-x-api/auth/AuthenticationProvider");
|
|
19
|
-
const IccRestApiPath_1 = require("./IccRestApiPath");
|
|
20
|
-
class IccDocumentTemplateApi {
|
|
21
|
-
constructor(host, headers, authenticationProvider, fetchImpl) {
|
|
22
|
-
this.host = (0, IccRestApiPath_1.iccRestApiPath)(host);
|
|
23
|
-
this.headers = Object.keys(headers).map((k) => new XHR_1.XHR.Header(k, headers[k]));
|
|
24
|
-
this.authenticationProvider = !!authenticationProvider ? authenticationProvider : new AuthenticationProvider_1.NoAuthenticationProvider();
|
|
25
|
-
this.fetchImpl = fetchImpl;
|
|
26
|
-
}
|
|
27
|
-
setHeaders(h) {
|
|
28
|
-
this.headers = h;
|
|
29
|
-
}
|
|
30
|
-
handleError(e) {
|
|
31
|
-
throw e;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Returns an instance of created document template.
|
|
35
|
-
* @summary Create a document template with the current user
|
|
36
|
-
* @param body
|
|
37
|
-
*/
|
|
38
|
-
createDocumentTemplate(body) {
|
|
39
|
-
let _body = null;
|
|
40
|
-
_body = body;
|
|
41
|
-
const _url = this.host + `/rest/v2/doctemplate` + '?ts=' + new Date().getTime();
|
|
42
|
-
let headers = this.headers;
|
|
43
|
-
headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR_1.XHR.Header('Content-Type', 'application/json'));
|
|
44
|
-
return XHR_1.XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
45
|
-
.then((doc) => new DocumentTemplate_1.DocumentTemplate(doc.body))
|
|
46
|
-
.catch((err) => this.handleError(err));
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
*
|
|
50
|
-
* @summary Deletes document templates
|
|
51
|
-
* @param body
|
|
52
|
-
*/
|
|
53
|
-
deleteDocumentTemplates(body) {
|
|
54
|
-
let _body = null;
|
|
55
|
-
_body = body;
|
|
56
|
-
const _url = this.host + `/rest/v2/doctemplate/delete/batch` + '?ts=' + new Date().getTime();
|
|
57
|
-
let headers = this.headers;
|
|
58
|
-
headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR_1.XHR.Header('Content-Type', 'application/json'));
|
|
59
|
-
return XHR_1.XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
60
|
-
.then((doc) => doc.body.map((it) => new DocIdentifier_1.DocIdentifier(it)))
|
|
61
|
-
.catch((err) => this.handleError(err));
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
*
|
|
65
|
-
* @summary Download a the document template attachment
|
|
66
|
-
* @param documentTemplateId
|
|
67
|
-
* @param attachmentId
|
|
68
|
-
*/
|
|
69
|
-
getAttachmentText(documentTemplateId, attachmentId) {
|
|
70
|
-
const _body = null;
|
|
71
|
-
const _url = this.host +
|
|
72
|
-
`/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}/attachmentText/${encodeURIComponent(String(attachmentId))}` +
|
|
73
|
-
'?ts=' +
|
|
74
|
-
new Date().getTime();
|
|
75
|
-
const headers = this.headers;
|
|
76
|
-
return XHR_1.XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
77
|
-
.then((doc) => doc.body)
|
|
78
|
-
.catch((err) => this.handleError(err));
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
*
|
|
82
|
-
* @summary Gets a document template
|
|
83
|
-
* @param documentTemplateId
|
|
84
|
-
*/
|
|
85
|
-
getDocumentTemplate(documentTemplateId) {
|
|
86
|
-
const _body = null;
|
|
87
|
-
const _url = this.host + `/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}` + '?ts=' + new Date().getTime();
|
|
88
|
-
const headers = this.headers;
|
|
89
|
-
return XHR_1.XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
90
|
-
.then((doc) => new DocumentTemplate_1.DocumentTemplate(doc.body))
|
|
91
|
-
.catch((err) => this.handleError(err));
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
*
|
|
95
|
-
* @summary Download a the document template attachment
|
|
96
|
-
* @param documentTemplateId
|
|
97
|
-
* @param attachmentId
|
|
98
|
-
*/
|
|
99
|
-
getDocumentTemplateAttachment(documentTemplateId, attachmentId) {
|
|
100
|
-
const _body = null;
|
|
101
|
-
const _url = this.host +
|
|
102
|
-
`/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}/attachment/${encodeURIComponent(String(attachmentId))}` +
|
|
103
|
-
'?ts=' +
|
|
104
|
-
new Date().getTime();
|
|
105
|
-
const headers = this.headers;
|
|
106
|
-
return XHR_1.XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
107
|
-
.then((doc) => doc.body)
|
|
108
|
-
.catch((err) => this.handleError(err));
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
*
|
|
112
|
-
* @summary Gets all document templates for all users
|
|
113
|
-
*/
|
|
114
|
-
listAllDocumentTemplates() {
|
|
115
|
-
const _body = null;
|
|
116
|
-
const _url = this.host + `/rest/v2/doctemplate/find/all` + '?ts=' + new Date().getTime();
|
|
117
|
-
const headers = this.headers;
|
|
118
|
-
return XHR_1.XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
119
|
-
.then((doc) => doc.body.map((it) => new DocumentTemplate_1.DocumentTemplate(it)))
|
|
120
|
-
.catch((err) => this.handleError(err));
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
*
|
|
124
|
-
* @summary Gets all document templates for current user
|
|
125
|
-
*/
|
|
126
|
-
listDocumentTemplates() {
|
|
127
|
-
const _body = null;
|
|
128
|
-
const _url = this.host + `/rest/v2/doctemplate` + '?ts=' + new Date().getTime();
|
|
129
|
-
const headers = this.headers;
|
|
130
|
-
return XHR_1.XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
131
|
-
.then((doc) => doc.body.map((it) => new DocumentTemplate_1.DocumentTemplate(it)))
|
|
132
|
-
.catch((err) => this.handleError(err));
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
*
|
|
136
|
-
* @summary Gets all document templates by Type
|
|
137
|
-
* @param documentTypeCode
|
|
138
|
-
*/
|
|
139
|
-
listDocumentTemplatesByDocumentType(documentTypeCode) {
|
|
140
|
-
const _body = null;
|
|
141
|
-
const _url = this.host + `/rest/v2/doctemplate/byDocumentType/${encodeURIComponent(String(documentTypeCode))}` + '?ts=' + new Date().getTime();
|
|
142
|
-
const headers = this.headers;
|
|
143
|
-
return XHR_1.XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
144
|
-
.then((doc) => doc.body.map((it) => new DocumentTemplate_1.DocumentTemplate(it)))
|
|
145
|
-
.catch((err) => this.handleError(err));
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
*
|
|
149
|
-
* @summary Gets all document templates by Type For currentUser
|
|
150
|
-
* @param documentTypeCode
|
|
151
|
-
*/
|
|
152
|
-
listDocumentTemplatesByDocumentTypeForCurrentUser(documentTypeCode) {
|
|
153
|
-
const _body = null;
|
|
154
|
-
const _url = this.host + `/rest/v2/doctemplate/byDocumentTypeForCurrentUser/${encodeURIComponent(String(documentTypeCode))}` + '?ts=' + new Date().getTime();
|
|
155
|
-
const headers = this.headers;
|
|
156
|
-
return XHR_1.XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
157
|
-
.then((doc) => doc.body.map((it) => new DocumentTemplate_1.DocumentTemplate(it)))
|
|
158
|
-
.catch((err) => this.handleError(err));
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
*
|
|
162
|
-
* @summary Gets all document templates
|
|
163
|
-
* @param specialityCode
|
|
164
|
-
*/
|
|
165
|
-
listDocumentTemplatesBySpeciality(specialityCode) {
|
|
166
|
-
const _body = null;
|
|
167
|
-
const _url = this.host + `/rest/v2/doctemplate/bySpecialty/${encodeURIComponent(String(specialityCode))}` + '?ts=' + new Date().getTime();
|
|
168
|
-
const headers = this.headers;
|
|
169
|
-
return XHR_1.XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
170
|
-
.then((doc) => doc.body.map((it) => new DocumentTemplate_1.DocumentTemplate(it)))
|
|
171
|
-
.catch((err) => this.handleError(err));
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Returns an instance of created document template.
|
|
175
|
-
* @summary Modify a document template with the current user
|
|
176
|
-
* @param body
|
|
177
|
-
* @param documentTemplateId
|
|
178
|
-
*/
|
|
179
|
-
modifyDocumentTemplate(documentTemplateId, body) {
|
|
180
|
-
let _body = null;
|
|
181
|
-
_body = body;
|
|
182
|
-
const _url = this.host + `/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}` + '?ts=' + new Date().getTime();
|
|
183
|
-
let headers = this.headers;
|
|
184
|
-
headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR_1.XHR.Header('Content-Type', 'application/json'));
|
|
185
|
-
return XHR_1.XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
186
|
-
.then((doc) => new DocumentTemplate_1.DocumentTemplate(doc.body))
|
|
187
|
-
.catch((err) => this.handleError(err));
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
*
|
|
191
|
-
* @summary Creates a document's attachment
|
|
192
|
-
* @param body
|
|
193
|
-
* @param documentTemplateId
|
|
194
|
-
*/
|
|
195
|
-
setDocumentTemplateAttachment(documentTemplateId, body) {
|
|
196
|
-
let _body = null;
|
|
197
|
-
_body = body;
|
|
198
|
-
const _url = this.host + `/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}/attachment` + '?ts=' + new Date().getTime();
|
|
199
|
-
let headers = this.headers;
|
|
200
|
-
headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR_1.XHR.Header('Content-Type', 'application/octet-stream'));
|
|
201
|
-
return XHR_1.XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
202
|
-
.then((doc) => new DocumentTemplate_1.DocumentTemplate(doc.body))
|
|
203
|
-
.catch((err) => this.handleError(err));
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
*
|
|
207
|
-
* @summary Creates a document's attachment
|
|
208
|
-
* @param body
|
|
209
|
-
* @param documentTemplateId
|
|
210
|
-
*/
|
|
211
|
-
setDocumentTemplateAttachmentJson(documentTemplateId, body) {
|
|
212
|
-
let _body = null;
|
|
213
|
-
_body = body;
|
|
214
|
-
const _url = this.host + `/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}/attachmentJson` + '?ts=' + new Date().getTime();
|
|
215
|
-
let headers = this.headers;
|
|
216
|
-
headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR_1.XHR.Header('Content-Type', 'application/octet-stream'));
|
|
217
|
-
return XHR_1.XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())
|
|
218
|
-
.then((doc) => new DocumentTemplate_1.DocumentTemplate(doc.body))
|
|
219
|
-
.catch((err) => this.handleError(err));
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
exports.IccDocumentTemplateApi = IccDocumentTemplateApi;
|
|
223
|
-
//# sourceMappingURL=IccDocumentTemplateApi.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IccDocumentTemplateApi.js","sourceRoot":"","sources":["../../../icc-api/api/IccDocumentTemplateApi.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure.\n *\n * OpenAPI spec version: v0\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { XHR } from './XHR'\nimport { DocIdentifier } from '../model/DocIdentifier'\nimport { DocumentTemplate } from '../model/DocumentTemplate'\nimport { ListOfIds } from '../model/ListOfIds'\nimport { AuthenticationProvider, NoAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\nimport { iccRestApiPath } from './IccRestApiPath'\n\nexport class IccDocumentTemplateApi {\n host: string\n headers: Array<XHR.Header>\n authenticationProvider: AuthenticationProvider\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n constructor(\n host: string,\n headers: any,\n authenticationProvider?: AuthenticationProvider,\n fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n ) {\n this.host = iccRestApiPath(host)\n this.headers = Object.keys(headers).map((k) => new XHR.Header(k, headers[k]))\n this.authenticationProvider = !!authenticationProvider ? authenticationProvider : new NoAuthenticationProvider()\n this.fetchImpl = fetchImpl\n }\n\n setHeaders(h: Array<XHR.Header>) {\n this.headers = h\n }\n\n handleError(e: XHR.XHRError): never {\n throw e\n }\n\n /**\n * Returns an instance of created document template.\n * @summary Create a document template with the current user\n * @param body\n */\n createDocumentTemplate(body?: DocumentTemplate): Promise<DocumentTemplate> {\n let _body = null\n _body = body\n\n const _url = this.host + `/rest/v2/doctemplate` + '?ts=' + new Date().getTime()\n let headers = this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new DocumentTemplate(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Deletes document templates\n * @param body\n */\n deleteDocumentTemplates(body?: ListOfIds): Promise<Array<DocIdentifier>> {\n let _body = null\n _body = body\n\n const _url = this.host + `/rest/v2/doctemplate/delete/batch` + '?ts=' + new Date().getTime()\n let headers = this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('POST', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new DocIdentifier(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Download a the document template attachment\n * @param documentTemplateId\n * @param attachmentId\n */\n getAttachmentText(documentTemplateId: string, attachmentId: string): Promise<ArrayBuffer> {\n const _body = null\n\n const _url =\n this.host +\n `/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}/attachmentText/${encodeURIComponent(String(attachmentId))}` +\n '?ts=' +\n new Date().getTime()\n const headers = this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Gets a document template\n * @param documentTemplateId\n */\n getDocumentTemplate(documentTemplateId: string): Promise<DocumentTemplate> {\n const _body = null\n\n const _url = this.host + `/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}` + '?ts=' + new Date().getTime()\n const headers = this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new DocumentTemplate(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Download a the document template attachment\n * @param documentTemplateId\n * @param attachmentId\n */\n getDocumentTemplateAttachment(documentTemplateId: string, attachmentId: string): Promise<ArrayBuffer> {\n const _body = null\n\n const _url =\n this.host +\n `/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}/attachment/${encodeURIComponent(String(attachmentId))}` +\n '?ts=' +\n new Date().getTime()\n const headers = this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Gets all document templates for all users\n */\n listAllDocumentTemplates(): Promise<Array<DocumentTemplate>> {\n const _body = null\n\n const _url = this.host + `/rest/v2/doctemplate/find/all` + '?ts=' + new Date().getTime()\n const headers = this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new DocumentTemplate(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Gets all document templates for current user\n */\n listDocumentTemplates(): Promise<Array<DocumentTemplate>> {\n const _body = null\n\n const _url = this.host + `/rest/v2/doctemplate` + '?ts=' + new Date().getTime()\n const headers = this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new DocumentTemplate(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Gets all document templates by Type\n * @param documentTypeCode\n */\n listDocumentTemplatesByDocumentType(documentTypeCode: string): Promise<Array<DocumentTemplate>> {\n const _body = null\n\n const _url = this.host + `/rest/v2/doctemplate/byDocumentType/${encodeURIComponent(String(documentTypeCode))}` + '?ts=' + new Date().getTime()\n const headers = this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new DocumentTemplate(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Gets all document templates by Type For currentUser\n * @param documentTypeCode\n */\n listDocumentTemplatesByDocumentTypeForCurrentUser(documentTypeCode: string): Promise<Array<DocumentTemplate>> {\n const _body = null\n\n const _url =\n this.host + `/rest/v2/doctemplate/byDocumentTypeForCurrentUser/${encodeURIComponent(String(documentTypeCode))}` + '?ts=' + new Date().getTime()\n const headers = this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new DocumentTemplate(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Gets all document templates\n * @param specialityCode\n */\n listDocumentTemplatesBySpeciality(specialityCode: string): Promise<Array<DocumentTemplate>> {\n const _body = null\n\n const _url = this.host + `/rest/v2/doctemplate/bySpecialty/${encodeURIComponent(String(specialityCode))}` + '?ts=' + new Date().getTime()\n const headers = this.headers\n return XHR.sendCommand('GET', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => (doc.body as Array<JSON>).map((it) => new DocumentTemplate(it)))\n .catch((err) => this.handleError(err))\n }\n\n /**\n * Returns an instance of created document template.\n * @summary Modify a document template with the current user\n * @param body\n * @param documentTemplateId\n */\n modifyDocumentTemplate(documentTemplateId: string, body?: DocumentTemplate): Promise<DocumentTemplate> {\n let _body = null\n _body = body\n\n const _url = this.host + `/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}` + '?ts=' + new Date().getTime()\n let headers = this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/json'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new DocumentTemplate(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Creates a document's attachment\n * @param body\n * @param documentTemplateId\n */\n setDocumentTemplateAttachment(documentTemplateId: string, body?: ArrayBuffer): Promise<DocumentTemplate> {\n let _body = null\n _body = body\n\n const _url = this.host + `/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}/attachment` + '?ts=' + new Date().getTime()\n let headers = this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/octet-stream'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new DocumentTemplate(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n\n /**\n *\n * @summary Creates a document's attachment\n * @param body\n * @param documentTemplateId\n */\n setDocumentTemplateAttachmentJson(documentTemplateId: string, body?: string): Promise<DocumentTemplate> {\n let _body = null\n _body = body\n\n const _url = this.host + `/rest/v2/doctemplate/${encodeURIComponent(String(documentTemplateId))}/attachmentJson` + '?ts=' + new Date().getTime()\n let headers = this.headers\n headers = headers.filter((h) => h.header !== 'Content-Type').concat(new XHR.Header('Content-Type', 'application/octet-stream'))\n return XHR.sendCommand('PUT', _url, headers, _body, this.fetchImpl, undefined, this.authenticationProvider.getAuthService())\n .then((doc) => new DocumentTemplate(doc.body as JSON))\n .catch((err) => this.handleError(err))\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExchangeData.js","sourceRoot":"","sources":["../../../icc-api/model/ExchangeData.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAY;IACvB,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,SAAS;YACxG,MAAM,IAAI,KAAK,CAAC,uDAAuD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChG,MAAM,CAAC,MAAM,CAAC,IAAoB,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;CAsDF;AA3DD,oCA2DC","sourcesContent":["export class ExchangeData {\n constructor(json: JSON | any) {\n if (!json.delegator || !json.delegate || !json.exchangeKey || !json.accessControlSecret || !json.signature)\n throw new Error(`Exchange data json is missing required properties.\\n${JSON.stringify(json)}`)\n Object.assign(this as ExchangeData, json)\n }\n\n /**\n * the Id of the exchange data. We encourage using either a v4 UUID or a HL7 Id.\n */\n id?: string\n /**\n * the revision of the exchange data in the database, used for conflict management / optimistic locking.\n */\n rev?: string\n /**\n * ID of the data owner which created this exchange data, in order to share some data with the [delegate].\n */\n delegator!: string\n /**\n * ID of a data owner which can use this exchange data to access data shared with him by [delegator].\n */\n delegate!: string\n /**\n * Aes key to use for sharing data from the delegator to the delegate, encrypted with the public keys of both delegate\n * and delegator. This key should never be sent decrypted to the server, as it allows to read medical data.\n */\n exchangeKey!: { [keyPairFingerprint: string]: string }\n /**\n * Key used for access control to data shared from the delegator to the delegate, encrypted with the public keys of both\n * delegate and delegator.\n *\n * This key will be used by the client to calculate the keys of [HasSecureDelegationsAccessControl.securityMetadata] which\n * allows to implement a form of access control where the identity of data owners with access to a specific entity can't be\n * deduced from the database alone. This is useful for example to allow patients to access their medical data without creating\n * a deducible link between the patient and the medical data in the database.\n *\n * There are no strict requirements on how the client should use this secret to create the security metadata key, but for\n * authentication the client must be able to provide a 128 bit long access control key (see [DataOwnerAuthenticationDetails.accessControlKeys])\n * which once hashed using sha256 will give the key of the security metadata.\n * However, in order to avoid introducing undesired links between entities which could be detrimental to the patients privacy\n * the access control keys should be created also using information on the entity class and confidentiality level of information\n * in applications where hcps share information using a hierarchical structure.\n * ```\n * accessControlKey = sha256Bytes(accessControlSecret + entityClass + confidentialityLevel).take(16)\n * securityMetadataKey = sha256Hex(accessControlKey)\n * ```\n */\n accessControlSecret!: { [keyPairFingerprint: string]: string }\n /**\n * Signature to ensure the key data has not been tampered with: when creating new exchange data the delegator will hash\n * the content of [exchangeKey] and [accessControlSecret] then use his trusted private keys to sign this hash. This field\n * will contain the signature by fingerprint of the public key to use for verification.\n */\n signature!: { [keyPairFingerprint: string]: string }\n /**\n * hard delete (unix epoch in ms) timestamp of the object. Filled automatically when the delete method is called.\n */\n deletionDate?: number\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExchangeDataMap.js","sourceRoot":"","sources":["../../../icc-api/model/ExchangeDataMap.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IAC1B,YAAY,IAAgB;QAC1B,MAAM,CAAC,MAAM,CAAC,IAAuB,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;CAkBF;AArBD,0CAqBC","sourcesContent":["export class ExchangeDataMap {\n constructor(json: JSON | any) {\n Object.assign(this as ExchangeDataMap, json)\n }\n\n /**\n * the Id of the exchange data. It is the hex-encoded string of the hashed version of the access control key\n */\n id!: string\n /**\n * the revision of the exchange data in the database, used for conflict management / optimistic locking.\n */\n rev?: string\n /**\n * a map where each key is the fingerprint of a public key and the value is an exchange data id, encrypted with the private key corresponding to that public key.\n */\n encryptedExchangeDataIds!: { [keyPairFingerprint: string]: string }\n /**\n * hard delete (unix epoch in ms) timestamp of the object. Filled automatically when the delete method is called.\n */\n deletionDate?: number\n}\n"]}
|