@nmshd/consumption 7.0.0-alpha.7 → 7.0.0-alpha.71
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/dist/buildInformation.js +5 -5
- package/dist/consumption/ConsumptionBaseController.d.ts.map +1 -1
- package/dist/consumption/ConsumptionBaseController.js +6 -1
- package/dist/consumption/ConsumptionBaseController.js.map +1 -1
- package/dist/consumption/ConsumptionConfig.d.ts +1 -1
- package/dist/consumption/ConsumptionConfig.d.ts.map +1 -1
- package/dist/consumption/ConsumptionController.d.ts +1 -3
- package/dist/consumption/ConsumptionController.d.ts.map +1 -1
- package/dist/consumption/ConsumptionController.js +6 -12
- package/dist/consumption/ConsumptionController.js.map +1 -1
- package/dist/consumption/ConsumptionControllerName.d.ts +0 -1
- package/dist/consumption/ConsumptionControllerName.d.ts.map +1 -1
- package/dist/consumption/ConsumptionControllerName.js +0 -1
- package/dist/consumption/ConsumptionControllerName.js.map +1 -1
- package/dist/consumption/ConsumptionCoreErrors.d.ts +10 -37
- package/dist/consumption/ConsumptionCoreErrors.d.ts.map +1 -1
- package/dist/consumption/ConsumptionCoreErrors.js +26 -113
- package/dist/consumption/ConsumptionCoreErrors.js.map +1 -1
- package/dist/consumption/ConsumptionIds.d.ts +1 -1
- package/dist/consumption/ConsumptionIds.d.ts.map +1 -1
- package/dist/consumption/ConsumptionIds.js +1 -1
- package/dist/consumption/ConsumptionIds.js.map +1 -1
- package/dist/modules/attributes/AttributesController.d.ts +124 -68
- package/dist/modules/attributes/AttributesController.d.ts.map +1 -1
- package/dist/modules/attributes/AttributesController.js +761 -709
- package/dist/modules/attributes/AttributesController.js.map +1 -1
- package/dist/modules/attributes/events/AttributeCreatedEvent.d.ts +1 -1
- package/dist/modules/attributes/events/AttributeCreatedEvent.d.ts.map +1 -1
- package/dist/modules/attributes/events/AttributeDeletedEvent.d.ts +1 -1
- package/dist/modules/attributes/events/AttributeDeletedEvent.d.ts.map +1 -1
- package/dist/modules/attributes/events/AttributeForwardingDetailsChangedEvent.d.ts +9 -0
- package/dist/modules/attributes/events/AttributeForwardingDetailsChangedEvent.d.ts.map +1 -0
- package/dist/modules/attributes/events/AttributeForwardingDetailsChangedEvent.js +12 -0
- package/dist/modules/attributes/events/AttributeForwardingDetailsChangedEvent.js.map +1 -0
- package/dist/modules/attributes/events/AttributeSucceededEvent.d.ts +11 -0
- package/dist/modules/attributes/events/AttributeSucceededEvent.d.ts.map +1 -0
- package/dist/modules/attributes/events/AttributeSucceededEvent.js +12 -0
- package/dist/modules/attributes/events/AttributeSucceededEvent.js.map +1 -0
- package/dist/modules/attributes/events/AttributeWasViewedAtChangedEvent.d.ts +7 -0
- package/dist/modules/attributes/events/AttributeWasViewedAtChangedEvent.d.ts.map +1 -0
- package/dist/modules/attributes/events/AttributeWasViewedAtChangedEvent.js +12 -0
- package/dist/modules/attributes/events/AttributeWasViewedAtChangedEvent.js.map +1 -0
- package/dist/modules/attributes/events/ForwardedAttributeDeletedByPeerEvent.d.ts +7 -0
- package/dist/modules/attributes/events/ForwardedAttributeDeletedByPeerEvent.d.ts.map +1 -0
- package/dist/modules/attributes/events/ForwardedAttributeDeletedByPeerEvent.js +12 -0
- package/dist/modules/attributes/events/ForwardedAttributeDeletedByPeerEvent.js.map +1 -0
- package/dist/modules/attributes/events/OwnAttributeDeletedByOwnerEvent.d.ts +7 -0
- package/dist/modules/attributes/events/OwnAttributeDeletedByOwnerEvent.d.ts.map +1 -0
- package/dist/modules/attributes/events/OwnAttributeDeletedByOwnerEvent.js +12 -0
- package/dist/modules/attributes/events/OwnAttributeDeletedByOwnerEvent.js.map +1 -0
- package/dist/modules/attributes/events/PeerRelationshipAttributeDeletedByPeerEvent.d.ts +7 -0
- package/dist/modules/attributes/events/PeerRelationshipAttributeDeletedByPeerEvent.d.ts.map +1 -0
- package/dist/modules/attributes/events/PeerRelationshipAttributeDeletedByPeerEvent.js +12 -0
- package/dist/modules/attributes/events/PeerRelationshipAttributeDeletedByPeerEvent.js.map +1 -0
- package/dist/modules/attributes/events/index.d.ts +6 -9
- package/dist/modules/attributes/events/index.d.ts.map +1 -1
- package/dist/modules/attributes/events/index.js +6 -9
- package/dist/modules/attributes/events/index.js.map +1 -1
- package/dist/modules/attributes/index.d.ts +9 -7
- package/dist/modules/attributes/index.d.ts.map +1 -1
- package/dist/modules/attributes/index.js +9 -7
- package/dist/modules/attributes/index.js.map +1 -1
- package/dist/modules/attributes/local/AttributeForwardingDetails.d.ts +28 -0
- package/dist/modules/attributes/local/AttributeForwardingDetails.d.ts.map +1 -0
- package/dist/modules/attributes/local/AttributeForwardingDetails.js +62 -0
- package/dist/modules/attributes/local/AttributeForwardingDetails.js.map +1 -0
- package/dist/modules/attributes/local/QueryTranslator.d.ts.map +1 -1
- package/dist/modules/attributes/local/QueryTranslator.js +1 -1
- package/dist/modules/attributes/local/QueryTranslator.js.map +1 -1
- package/dist/modules/attributes/local/attributeTypes/LocalAttribute.d.ts +29 -0
- package/dist/modules/attributes/local/attributeTypes/LocalAttribute.d.ts.map +1 -0
- package/dist/modules/attributes/local/{AttributeSuccessorParams.js → attributeTypes/LocalAttribute.js} +34 -26
- package/dist/modules/attributes/local/attributeTypes/LocalAttribute.js.map +1 -0
- package/dist/modules/attributes/local/attributeTypes/OwnIdentityAttribute.d.ts +19 -0
- package/dist/modules/attributes/local/attributeTypes/OwnIdentityAttribute.d.ts.map +1 -0
- package/dist/modules/{attributeListeners/local/LocalAttributeListener.js → attributes/local/attributeTypes/OwnIdentityAttribute.js} +16 -20
- package/dist/modules/attributes/local/attributeTypes/OwnIdentityAttribute.js.map +1 -0
- package/dist/modules/attributes/local/attributeTypes/OwnRelationshipAttribute.d.ts +29 -0
- package/dist/modules/attributes/local/attributeTypes/OwnRelationshipAttribute.d.ts.map +1 -0
- package/dist/modules/attributes/local/attributeTypes/OwnRelationshipAttribute.js +73 -0
- package/dist/modules/attributes/local/attributeTypes/OwnRelationshipAttribute.js.map +1 -0
- package/dist/modules/attributes/local/attributeTypes/PeerIdentityAttribute.d.ts +29 -0
- package/dist/modules/attributes/local/attributeTypes/PeerIdentityAttribute.d.ts.map +1 -0
- package/dist/modules/attributes/local/attributeTypes/PeerIdentityAttribute.js +76 -0
- package/dist/modules/attributes/local/attributeTypes/PeerIdentityAttribute.js.map +1 -0
- package/dist/modules/attributes/local/attributeTypes/PeerRelationshipAttribute.d.ts +30 -0
- package/dist/modules/attributes/local/attributeTypes/PeerRelationshipAttribute.d.ts.map +1 -0
- package/dist/modules/attributes/local/attributeTypes/PeerRelationshipAttribute.js +76 -0
- package/dist/modules/attributes/local/attributeTypes/PeerRelationshipAttribute.js.map +1 -0
- package/dist/modules/attributes/local/attributeTypes/ThirdPartyRelationshipAttribute.d.ts +33 -0
- package/dist/modules/attributes/local/attributeTypes/ThirdPartyRelationshipAttribute.d.ts.map +1 -0
- package/dist/modules/attributes/local/attributeTypes/ThirdPartyRelationshipAttribute.js +85 -0
- package/dist/modules/attributes/local/attributeTypes/ThirdPartyRelationshipAttribute.js.map +1 -0
- package/dist/modules/attributes/local/deletionInfos/AbstractAttributeDeletionInfo.d.ts +15 -0
- package/dist/modules/attributes/local/deletionInfos/AbstractAttributeDeletionInfo.d.ts.map +1 -0
- package/dist/modules/{requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.js → attributes/local/deletionInfos/AbstractAttributeDeletionInfo.js} +12 -12
- package/dist/modules/attributes/local/deletionInfos/AbstractAttributeDeletionInfo.js.map +1 -0
- package/dist/modules/attributes/local/deletionInfos/EmittedAttributeDeletionInfo.d.ts +18 -0
- package/dist/modules/attributes/local/deletionInfos/EmittedAttributeDeletionInfo.d.ts.map +1 -0
- package/dist/modules/attributes/local/deletionInfos/EmittedAttributeDeletionInfo.js +38 -0
- package/dist/modules/attributes/local/deletionInfos/EmittedAttributeDeletionInfo.js.map +1 -0
- package/dist/modules/attributes/local/deletionInfos/ReceivedAttributeDeletionInfo.d.ts +16 -0
- package/dist/modules/attributes/local/deletionInfos/ReceivedAttributeDeletionInfo.d.ts.map +1 -0
- package/dist/modules/attributes/local/deletionInfos/ReceivedAttributeDeletionInfo.js +36 -0
- package/dist/modules/attributes/local/deletionInfos/ReceivedAttributeDeletionInfo.js.map +1 -0
- package/dist/modules/attributes/local/deletionInfos/index.d.ts +4 -0
- package/dist/modules/attributes/local/deletionInfos/index.d.ts.map +1 -0
- package/dist/modules/{attributeListeners/events → attributes/local/deletionInfos}/index.js +3 -1
- package/dist/modules/attributes/local/deletionInfos/index.js.map +1 -0
- package/dist/modules/attributes/local/successorParams/OwnIdentityAttributeSuccessorParams.d.ts +13 -0
- package/dist/modules/attributes/local/successorParams/OwnIdentityAttributeSuccessorParams.d.ts.map +1 -0
- package/dist/modules/{attributeListeners/local/CreateLocalAttributeListenerParams.js → attributes/local/successorParams/OwnIdentityAttributeSuccessorParams.js} +9 -15
- package/dist/modules/attributes/local/successorParams/OwnIdentityAttributeSuccessorParams.js.map +1 -0
- package/dist/modules/attributes/local/successorParams/OwnRelationshipAttributeSuccessorParams.d.ts +17 -0
- package/dist/modules/attributes/local/successorParams/OwnRelationshipAttributeSuccessorParams.d.ts.map +1 -0
- package/dist/modules/attributes/local/{CreateAttributeParams.js → successorParams/OwnRelationshipAttributeSuccessorParams.js} +10 -15
- package/dist/modules/attributes/local/successorParams/OwnRelationshipAttributeSuccessorParams.js.map +1 -0
- package/dist/modules/attributes/local/successorParams/PeerIdentityAttributeSuccessorParams.d.ts +20 -0
- package/dist/modules/attributes/local/successorParams/PeerIdentityAttributeSuccessorParams.d.ts.map +1 -0
- package/dist/modules/attributes/local/{CreateRepositoryAttributeParams.js → successorParams/PeerIdentityAttributeSuccessorParams.js} +16 -13
- package/dist/modules/attributes/local/successorParams/PeerIdentityAttributeSuccessorParams.js.map +1 -0
- package/dist/modules/attributes/local/successorParams/PeerRelationshipAttributeSuccessorParams.d.ts +20 -0
- package/dist/modules/attributes/local/successorParams/PeerRelationshipAttributeSuccessorParams.d.ts.map +1 -0
- package/dist/modules/attributes/local/{CreateSharedLocalAttributeCopyParams.js → successorParams/PeerRelationshipAttributeSuccessorParams.js} +15 -16
- package/dist/modules/attributes/local/successorParams/PeerRelationshipAttributeSuccessorParams.js.map +1 -0
- package/dist/modules/attributes/local/successorParams/ThirdPartyRelationshipAttributeSuccessorParams.d.ts +20 -0
- package/dist/modules/attributes/local/successorParams/ThirdPartyRelationshipAttributeSuccessorParams.d.ts.map +1 -0
- package/dist/modules/attributes/local/{CreateSharedLocalAttributeParams.js → successorParams/ThirdPartyRelationshipAttributeSuccessorParams.js} +15 -22
- package/dist/modules/attributes/local/successorParams/ThirdPartyRelationshipAttributeSuccessorParams.js.map +1 -0
- package/dist/modules/attributes/local/successorParams/index.d.ts +6 -0
- package/dist/modules/attributes/local/successorParams/index.d.ts.map +1 -0
- package/dist/modules/{attributeListeners → attributes/local/successorParams}/index.js +5 -4
- package/dist/modules/attributes/local/successorParams/index.js.map +1 -0
- package/dist/modules/index.d.ts +0 -1
- package/dist/modules/index.d.ts.map +1 -1
- package/dist/modules/index.js +0 -1
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/notifications/NotificationsController.js +6 -6
- package/dist/modules/notifications/NotificationsController.js.map +1 -1
- package/dist/modules/notifications/index.d.ts +4 -4
- package/dist/modules/notifications/index.d.ts.map +1 -1
- package/dist/modules/notifications/index.js +4 -4
- package/dist/modules/notifications/index.js.map +1 -1
- package/dist/modules/notifications/itemProcessors/attributeDeleted/ForwardedAttributeDeletedByPeerNotificationItemProcessor.d.ts +14 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/ForwardedAttributeDeletedByPeerNotificationItemProcessor.d.ts.map +1 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/ForwardedAttributeDeletedByPeerNotificationItemProcessor.js +53 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/ForwardedAttributeDeletedByPeerNotificationItemProcessor.js.map +1 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnAttributeDeletedByOwnerNotificationItemProcessor.d.ts +14 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnAttributeDeletedByOwnerNotificationItemProcessor.d.ts.map +1 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnAttributeDeletedByOwnerNotificationItemProcessor.js +59 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnAttributeDeletedByOwnerNotificationItemProcessor.js.map +1 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerRelationshipAttributeDeletedByPeerNotificationItemProcessor.d.ts +14 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerRelationshipAttributeDeletedByPeerNotificationItemProcessor.d.ts.map +1 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerRelationshipAttributeDeletedByPeerNotificationItemProcessor.js +63 -0
- package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerRelationshipAttributeDeletedByPeerNotificationItemProcessor.js.map +1 -0
- package/dist/modules/notifications/itemProcessors/attributeSucceeded/PeerAttributeSucceededNotificationItemProcessor.d.ts +15 -0
- package/dist/modules/notifications/itemProcessors/attributeSucceeded/PeerAttributeSucceededNotificationItemProcessor.d.ts.map +1 -0
- package/dist/modules/notifications/itemProcessors/attributeSucceeded/PeerAttributeSucceededNotificationItemProcessor.js +102 -0
- package/dist/modules/notifications/itemProcessors/attributeSucceeded/PeerAttributeSucceededNotificationItemProcessor.js.map +1 -0
- package/dist/modules/requests/incoming/IncomingRequestsController.d.ts +1 -0
- package/dist/modules/requests/incoming/IncomingRequestsController.d.ts.map +1 -1
- package/dist/modules/requests/incoming/IncomingRequestsController.js +21 -8
- package/dist/modules/requests/incoming/IncomingRequestsController.js.map +1 -1
- package/dist/modules/requests/incoming/decide/DecideRequestParameters.d.ts +1 -0
- package/dist/modules/requests/incoming/decide/DecideRequestParameters.d.ts.map +1 -1
- package/dist/modules/requests/incoming/decide/InternalDecideRequestParameters.d.ts +2 -0
- package/dist/modules/requests/incoming/decide/InternalDecideRequestParameters.d.ts.map +1 -1
- package/dist/modules/requests/incoming/decide/InternalDecideRequestParameters.js +5 -0
- package/dist/modules/requests/incoming/decide/InternalDecideRequestParameters.js.map +1 -1
- package/dist/modules/requests/index.d.ts +2 -3
- package/dist/modules/requests/index.d.ts.map +1 -1
- package/dist/modules/requests/index.js +2 -3
- package/dist/modules/requests/index.js.map +1 -1
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.d.ts +2 -2
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.d.ts.map +1 -1
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js +62 -22
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.d.ts +4 -2
- package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.d.ts.map +1 -1
- package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.js +50 -43
- package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/formField/AcceptFormFieldRequestItemParameters.d.ts +10 -0
- package/dist/modules/requests/itemProcessors/formField/AcceptFormFieldRequestItemParameters.d.ts.map +1 -0
- package/dist/modules/requests/itemProcessors/formField/AcceptFormFieldRequestItemParameters.js +31 -0
- package/dist/modules/requests/itemProcessors/formField/AcceptFormFieldRequestItemParameters.js.map +1 -0
- package/dist/modules/requests/itemProcessors/formField/FormFieldRequestItemProcessor.d.ts +10 -0
- package/dist/modules/requests/itemProcessors/formField/FormFieldRequestItemProcessor.d.ts.map +1 -0
- package/dist/modules/requests/itemProcessors/formField/FormFieldRequestItemProcessor.js +34 -0
- package/dist/modules/requests/itemProcessors/formField/FormFieldRequestItemProcessor.js.map +1 -0
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts +2 -2
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts.map +1 -1
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js +93 -101
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts +2 -2
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts.map +1 -1
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +142 -136
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.d.ts +3 -5
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.d.ts.map +1 -1
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js +96 -92
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/transferFileOwnership/TransferFileOwnershipRequestItemProcessor.d.ts +2 -2
- package/dist/modules/requests/itemProcessors/transferFileOwnership/TransferFileOwnershipRequestItemProcessor.d.ts.map +1 -1
- package/dist/modules/requests/itemProcessors/transferFileOwnership/TransferFileOwnershipRequestItemProcessor.js +40 -33
- package/dist/modules/requests/itemProcessors/transferFileOwnership/TransferFileOwnershipRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/utility/createAppropriateResponseItem.d.ts.map +1 -1
- package/dist/modules/requests/itemProcessors/utility/createAppropriateResponseItem.js +31 -53
- package/dist/modules/requests/itemProcessors/utility/createAppropriateResponseItem.js.map +1 -1
- package/dist/modules/requests/itemProcessors/utility/validateAttributeMatchesWithQuery.js +3 -3
- package/dist/modules/requests/itemProcessors/utility/validateAttributeMatchesWithQuery.js.map +1 -1
- package/dist/modules/requests/local/LocalRequest.d.ts +2 -0
- package/dist/modules/requests/local/LocalRequest.d.ts.map +1 -1
- package/dist/modules/requests/local/LocalRequest.js +8 -2
- package/dist/modules/requests/local/LocalRequest.js.map +1 -1
- package/dist/modules/requests/local/LocalResponse.js +1 -1
- package/dist/modules/requests/local/LocalResponse.js.map +1 -1
- package/dist/modules/requests/outgoing/OutgoingRequestsController.d.ts +1 -1
- package/dist/modules/requests/outgoing/OutgoingRequestsController.d.ts.map +1 -1
- package/dist/modules/requests/outgoing/OutgoingRequestsController.js +29 -25
- package/dist/modules/requests/outgoing/OutgoingRequestsController.js.map +1 -1
- package/package.json +14 -14
- package/dist/modules/attributeListeners/AttributeListenersController.d.ts +0 -20
- package/dist/modules/attributeListeners/AttributeListenersController.d.ts.map +0 -1
- package/dist/modules/attributeListeners/AttributeListenersController.js +0 -51
- package/dist/modules/attributeListeners/AttributeListenersController.js.map +0 -1
- package/dist/modules/attributeListeners/events/AttributeListenerCreatedEvent.d.ts +0 -7
- package/dist/modules/attributeListeners/events/AttributeListenerCreatedEvent.d.ts.map +0 -1
- package/dist/modules/attributeListeners/events/AttributeListenerCreatedEvent.js +0 -12
- package/dist/modules/attributeListeners/events/AttributeListenerCreatedEvent.js.map +0 -1
- package/dist/modules/attributeListeners/events/index.d.ts +0 -2
- package/dist/modules/attributeListeners/events/index.d.ts.map +0 -1
- package/dist/modules/attributeListeners/events/index.js.map +0 -1
- package/dist/modules/attributeListeners/index.d.ts +0 -5
- package/dist/modules/attributeListeners/index.d.ts.map +0 -1
- package/dist/modules/attributeListeners/index.js.map +0 -1
- package/dist/modules/attributeListeners/local/CreateLocalAttributeListenerParams.d.ts +0 -13
- package/dist/modules/attributeListeners/local/CreateLocalAttributeListenerParams.d.ts.map +0 -1
- package/dist/modules/attributeListeners/local/CreateLocalAttributeListenerParams.js.map +0 -1
- package/dist/modules/attributeListeners/local/LocalAttributeListener.d.ts +0 -21
- package/dist/modules/attributeListeners/local/LocalAttributeListener.d.ts.map +0 -1
- package/dist/modules/attributeListeners/local/LocalAttributeListener.js.map +0 -1
- package/dist/modules/attributes/events/AttributeSucceededEventData.d.ts +0 -6
- package/dist/modules/attributes/events/AttributeSucceededEventData.d.ts.map +0 -1
- package/dist/modules/attributes/events/AttributeSucceededEventData.js +0 -3
- package/dist/modules/attributes/events/AttributeSucceededEventData.js.map +0 -1
- package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.d.ts +0 -7
- package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.d.ts.map +0 -1
- package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.js +0 -12
- package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.js.map +0 -1
- package/dist/modules/attributes/events/OwnSharedAttributeSucceededEvent.d.ts +0 -8
- package/dist/modules/attributes/events/OwnSharedAttributeSucceededEvent.d.ts.map +0 -1
- package/dist/modules/attributes/events/OwnSharedAttributeSucceededEvent.js +0 -12
- package/dist/modules/attributes/events/OwnSharedAttributeSucceededEvent.js.map +0 -1
- package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.d.ts +0 -7
- package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.d.ts.map +0 -1
- package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.js +0 -12
- package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.js.map +0 -1
- package/dist/modules/attributes/events/PeerSharedAttributeSucceededEvent.d.ts +0 -8
- package/dist/modules/attributes/events/PeerSharedAttributeSucceededEvent.d.ts.map +0 -1
- package/dist/modules/attributes/events/PeerSharedAttributeSucceededEvent.js +0 -12
- package/dist/modules/attributes/events/PeerSharedAttributeSucceededEvent.js.map +0 -1
- package/dist/modules/attributes/events/RepositoryAttributeSucceededEvent.d.ts +0 -8
- package/dist/modules/attributes/events/RepositoryAttributeSucceededEvent.d.ts.map +0 -1
- package/dist/modules/attributes/events/RepositoryAttributeSucceededEvent.js +0 -12
- package/dist/modules/attributes/events/RepositoryAttributeSucceededEvent.js.map +0 -1
- package/dist/modules/attributes/events/SharedAttributeCopyCreatedEvent.d.ts +0 -7
- package/dist/modules/attributes/events/SharedAttributeCopyCreatedEvent.d.ts.map +0 -1
- package/dist/modules/attributes/events/SharedAttributeCopyCreatedEvent.js +0 -12
- package/dist/modules/attributes/events/SharedAttributeCopyCreatedEvent.js.map +0 -1
- package/dist/modules/attributes/events/ThirdPartyRelationshipAttributeDeletedByPeerEvent.d.ts +0 -7
- package/dist/modules/attributes/events/ThirdPartyRelationshipAttributeDeletedByPeerEvent.d.ts.map +0 -1
- package/dist/modules/attributes/events/ThirdPartyRelationshipAttributeDeletedByPeerEvent.js +0 -12
- package/dist/modules/attributes/events/ThirdPartyRelationshipAttributeDeletedByPeerEvent.js.map +0 -1
- package/dist/modules/attributes/events/ThirdPartyRelationshipAttributeSucceededEvent.d.ts +0 -8
- package/dist/modules/attributes/events/ThirdPartyRelationshipAttributeSucceededEvent.d.ts.map +0 -1
- package/dist/modules/attributes/events/ThirdPartyRelationshipAttributeSucceededEvent.js +0 -12
- package/dist/modules/attributes/events/ThirdPartyRelationshipAttributeSucceededEvent.js.map +0 -1
- package/dist/modules/attributes/local/AttributeSuccessorParams.d.ts +0 -24
- package/dist/modules/attributes/local/AttributeSuccessorParams.d.ts.map +0 -1
- package/dist/modules/attributes/local/AttributeSuccessorParams.js.map +0 -1
- package/dist/modules/attributes/local/CreateAttributeParams.d.ts +0 -15
- package/dist/modules/attributes/local/CreateAttributeParams.d.ts.map +0 -1
- package/dist/modules/attributes/local/CreateAttributeParams.js.map +0 -1
- package/dist/modules/attributes/local/CreateRepositoryAttributeParams.d.ts +0 -20
- package/dist/modules/attributes/local/CreateRepositoryAttributeParams.d.ts.map +0 -1
- package/dist/modules/attributes/local/CreateRepositoryAttributeParams.js.map +0 -1
- package/dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.d.ts +0 -22
- package/dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.d.ts.map +0 -1
- package/dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.js.map +0 -1
- package/dist/modules/attributes/local/CreateSharedLocalAttributeParams.d.ts +0 -26
- package/dist/modules/attributes/local/CreateSharedLocalAttributeParams.d.ts.map +0 -1
- package/dist/modules/attributes/local/CreateSharedLocalAttributeParams.js.map +0 -1
- package/dist/modules/attributes/local/LocalAttribute.d.ts +0 -109
- package/dist/modules/attributes/local/LocalAttribute.d.ts.map +0 -1
- package/dist/modules/attributes/local/LocalAttribute.js +0 -180
- package/dist/modules/attributes/local/LocalAttribute.js.map +0 -1
- package/dist/modules/attributes/local/LocalAttributeDeletionInfo.d.ts +0 -24
- package/dist/modules/attributes/local/LocalAttributeDeletionInfo.d.ts.map +0 -1
- package/dist/modules/attributes/local/LocalAttributeDeletionInfo.js +0 -42
- package/dist/modules/attributes/local/LocalAttributeDeletionInfo.js.map +0 -1
- package/dist/modules/attributes/local/LocalAttributeShareInfo.d.ts +0 -26
- package/dist/modules/attributes/local/LocalAttributeShareInfo.d.ts.map +0 -1
- package/dist/modules/attributes/local/LocalAttributeShareInfo.js +0 -59
- package/dist/modules/attributes/local/LocalAttributeShareInfo.js.map +0 -1
- package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.d.ts +0 -14
- package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.d.ts.map +0 -1
- package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.js +0 -56
- package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.js.map +0 -1
- package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.d.ts +0 -14
- package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.d.ts.map +0 -1
- package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.js +0 -57
- package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.js.map +0 -1
- package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyRelationshipAttributeDeletedByPeerNotificationItemProcessor.d.ts +0 -14
- package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyRelationshipAttributeDeletedByPeerNotificationItemProcessor.d.ts.map +0 -1
- package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyRelationshipAttributeDeletedByPeerNotificationItemProcessor.js +0 -57
- package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyRelationshipAttributeDeletedByPeerNotificationItemProcessor.js.map +0 -1
- package/dist/modules/notifications/itemProcessors/attributeSucceeded/PeerSharedAttributeSucceededNotificationItemProcessor.d.ts +0 -15
- package/dist/modules/notifications/itemProcessors/attributeSucceeded/PeerSharedAttributeSucceededNotificationItemProcessor.d.ts.map +0 -1
- package/dist/modules/notifications/itemProcessors/attributeSucceeded/PeerSharedAttributeSucceededNotificationItemProcessor.js +0 -74
- package/dist/modules/notifications/itemProcessors/attributeSucceeded/PeerSharedAttributeSucceededNotificationItemProcessor.js.map +0 -1
- package/dist/modules/requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.d.ts +0 -10
- package/dist/modules/requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.d.ts.map +0 -1
- package/dist/modules/requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.js.map +0 -1
- package/dist/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.d.ts +0 -9
- package/dist/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.d.ts.map +0 -1
- package/dist/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.js +0 -31
- package/dist/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.js.map +0 -1
- package/dist/modules/requests/itemProcessors/registerAttributeListener/RegisterAttributeListenerRequestItemProcessor.d.ts +0 -8
- package/dist/modules/requests/itemProcessors/registerAttributeListener/RegisterAttributeListenerRequestItemProcessor.d.ts.map +0 -1
- package/dist/modules/requests/itemProcessors/registerAttributeListener/RegisterAttributeListenerRequestItemProcessor.js +0 -19
- package/dist/modules/requests/itemProcessors/registerAttributeListener/RegisterAttributeListenerRequestItemProcessor.js.map +0 -1
package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js
CHANGED
|
@@ -13,137 +13,141 @@ const ValidationResult_1 = require("../../../common/ValidationResult");
|
|
|
13
13
|
const GenericRequestItemProcessor_1 = require("../GenericRequestItemProcessor");
|
|
14
14
|
class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
15
15
|
async canCreateOutgoingRequestItem(requestItem, _request, recipient) {
|
|
16
|
-
const foundAttribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.
|
|
17
|
-
if (
|
|
18
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The Attribute with the given
|
|
16
|
+
const foundAttribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
|
|
17
|
+
if (!foundAttribute) {
|
|
18
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The Attribute with the given attributeId '${requestItem.attributeId.toString()}' could not be found.`));
|
|
19
|
+
}
|
|
20
|
+
if (!(foundAttribute instanceof attributes_1.OwnIdentityAttribute || foundAttribute instanceof attributes_1.OwnRelationshipAttribute || foundAttribute instanceof attributes_1.PeerRelationshipAttribute)) {
|
|
21
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The Attribute with the given attributeId '${requestItem.attributeId.toString()}' is not an OwnIdentityAttribute, an OwnRelationshipAttribute or a PeerRelationshipAttribute.`));
|
|
19
22
|
}
|
|
20
23
|
const requestItemAttributeJSON = requestItem.attribute.toJSON();
|
|
21
24
|
if (!lodash_1.default.isEqual(foundAttribute.content.toJSON(), requestItemAttributeJSON)) {
|
|
22
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The Attribute with the given
|
|
25
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The Attribute with the given attributeId '${requestItem.attributeId.toString()}' does not match the given Attribute.`));
|
|
23
26
|
}
|
|
24
|
-
if (
|
|
25
|
-
if (
|
|
26
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(
|
|
27
|
+
if (recipient) {
|
|
28
|
+
if (await this.consumptionController.attributes.isAttributeForwardedToPeer(foundAttribute, recipient, true)) {
|
|
29
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The Attribute with the given attributeId '${requestItem.attributeId.toString()}' is already shared with the peer.`));
|
|
27
30
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"shareInfo.peer": recipient.toString(),
|
|
32
|
-
"deletionInfo.deletionStatus": { $nin: [attributes_1.LocalAttributeDeletionStatus.DeletedByPeer, attributes_1.LocalAttributeDeletionStatus.ToBeDeletedByPeer] }
|
|
33
|
-
};
|
|
34
|
-
if ((await this.consumptionController.attributes.getLocalAttributes(query)).length > 0) {
|
|
35
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The IdentityAttribute with the given sourceAttributeId '${requestItem.sourceAttributeId.toString()}' is already shared with the peer.`));
|
|
36
|
-
}
|
|
37
|
-
const ownSharedIdentityAttributeSuccessors = await this.consumptionController.attributes.getSharedSuccessorsOfAttribute(foundAttribute, {
|
|
38
|
-
"shareInfo.peer": recipient.toString(),
|
|
39
|
-
"deletionInfo.deletionStatus": { $nin: [attributes_1.LocalAttributeDeletionStatus.DeletedByPeer, attributes_1.LocalAttributeDeletionStatus.ToBeDeletedByPeer] }
|
|
40
|
-
});
|
|
41
|
-
if (ownSharedIdentityAttributeSuccessors.length > 0) {
|
|
42
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The provided IdentityAttribute is outdated. Its successor '${ownSharedIdentityAttributeSuccessors[0].shareInfo?.sourceAttribute}' is already shared with the peer.`));
|
|
43
|
-
}
|
|
44
|
-
const ownSharedIdentityAttributePredecessors = await this.consumptionController.attributes.getSharedPredecessorsOfAttribute(foundAttribute, {
|
|
45
|
-
"shareInfo.peer": recipient.toString(),
|
|
46
|
-
"deletionInfo.deletionStatus": { $nin: [attributes_1.LocalAttributeDeletionStatus.DeletedByPeer, attributes_1.LocalAttributeDeletionStatus.ToBeDeletedByPeer] }
|
|
47
|
-
});
|
|
48
|
-
if (ownSharedIdentityAttributePredecessors.length > 0) {
|
|
49
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The predecessor '${ownSharedIdentityAttributePredecessors[0].shareInfo?.sourceAttribute}' of the IdentityAttribute is already shared with the peer. Instead of sharing it, you should notify the peer about the Attribute succession.`));
|
|
50
|
-
}
|
|
31
|
+
const sharedSuccessors = await this.consumptionController.attributes.getSuccessorsOfAttributeSharedWithPeer(foundAttribute, recipient);
|
|
32
|
+
if (sharedSuccessors.length > 0) {
|
|
33
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The provided Attribute is outdated. Its successor '${sharedSuccessors[0].id}' is already shared with the peer.`));
|
|
51
34
|
}
|
|
52
|
-
|
|
53
|
-
|
|
35
|
+
const sharedPredecessors = await this.consumptionController.attributes.getPredecessorsOfAttributeSharedWithPeer(foundAttribute, recipient);
|
|
36
|
+
if (sharedPredecessors.length > 0) {
|
|
37
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The predecessor '${sharedPredecessors[0].id}' of the Attribute is already shared with the peer. Instead of sharing it, you should notify the peer about the Attribute succession.`));
|
|
54
38
|
}
|
|
55
39
|
}
|
|
56
|
-
if (requestItem.attribute instanceof content_1.
|
|
57
|
-
if (!foundAttribute.
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
if (typeof foundAttribute.shareInfo.sourceAttribute !== "undefined") {
|
|
61
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("You can only share RelationshipAttributes that are not a copy of a sourceAttribute."));
|
|
62
|
-
}
|
|
63
|
-
if (typeof recipient !== "undefined") {
|
|
64
|
-
const query = {
|
|
65
|
-
"shareInfo.sourceAttribute": requestItem.sourceAttributeId.toString(),
|
|
66
|
-
"shareInfo.peer": recipient.toString(),
|
|
67
|
-
"deletionInfo.deletionStatus": { $nin: [attributes_1.LocalAttributeDeletionStatus.DeletedByPeer, attributes_1.LocalAttributeDeletionStatus.ToBeDeletedByPeer] }
|
|
68
|
-
};
|
|
69
|
-
const thirdPartyRelationshipAttribute = await this.consumptionController.attributes.getLocalAttributes(query);
|
|
70
|
-
if (foundAttribute.shareInfo.peer.equals(recipient) || thirdPartyRelationshipAttribute.length > 0) {
|
|
71
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("The provided RelationshipAttribute already exists in the context of the Relationship with the peer."));
|
|
72
|
-
}
|
|
40
|
+
if (requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
41
|
+
if (!(foundAttribute instanceof attributes_1.OwnIdentityAttribute)) {
|
|
42
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("The provided IdentityAttribute belongs to someone else. You can only share OwnIdentityAttributes."));
|
|
73
43
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
status: { $in: [transport_1.RelationshipStatus.Active, transport_1.RelationshipStatus.Terminated, transport_1.RelationshipStatus.DeletionProposed] }
|
|
77
|
-
};
|
|
78
|
-
const nonPendingRelationshipsToPeer = await this.accountController.relationships.getRelationships(queryForNonPendingRelationships);
|
|
79
|
-
if (nonPendingRelationshipsToPeer.length === 0) {
|
|
80
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.cannotShareRelationshipAttributeOfPendingRelationship());
|
|
44
|
+
if (requestItem.thirdPartyAddress) {
|
|
45
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("When sharing an OwnIdentityAttribute, no thirdPartyAddress may be specified."));
|
|
81
46
|
}
|
|
82
|
-
|
|
83
|
-
|
|
47
|
+
const tagValidationResult = await this.consumptionController.attributes.validateTagsOfAttribute(requestItem.attribute);
|
|
48
|
+
if (tagValidationResult.isError()) {
|
|
49
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(tagValidationResult.error.message));
|
|
84
50
|
}
|
|
51
|
+
return ValidationResult_1.ValidationResult.success();
|
|
85
52
|
}
|
|
86
|
-
if (
|
|
87
|
-
return
|
|
53
|
+
if (!(foundAttribute instanceof attributes_1.OwnRelationshipAttribute || foundAttribute instanceof attributes_1.PeerRelationshipAttribute)) {
|
|
54
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("You cannot share ThirdPartyRelationshipAttributes."));
|
|
88
55
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
async canCreateWithIdentityAttribute(requestItem) {
|
|
92
|
-
const ownerIsCurrentIdentity = requestItem.attribute.owner.equals(this.currentIdentityAddress);
|
|
93
|
-
if (!ownerIsCurrentIdentity) {
|
|
94
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("The provided IdentityAttribute belongs to someone else. You can only share own IdentityAttributes."));
|
|
56
|
+
if (recipient && foundAttribute.peer.equals(recipient)) {
|
|
57
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("The provided RelationshipAttribute already exists in the context of the Relationship with the peer."));
|
|
95
58
|
}
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
59
|
+
const initialPeer = foundAttribute.peer;
|
|
60
|
+
const queryForNonPendingRelationships = {
|
|
61
|
+
"peer.address": initialPeer.toString(),
|
|
62
|
+
status: { $in: [transport_1.RelationshipStatus.Active, transport_1.RelationshipStatus.Terminated, transport_1.RelationshipStatus.DeletionProposed] }
|
|
63
|
+
};
|
|
64
|
+
const nonPendingRelationshipsToPeer = await this.accountController.relationships.getRelationships(queryForNonPendingRelationships);
|
|
65
|
+
if (nonPendingRelationshipsToPeer.length === 0) {
|
|
66
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.cannotShareRelationshipAttributeOfPendingRelationship());
|
|
99
67
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (attribute.owner.equals(recipient)) {
|
|
68
|
+
if (!requestItem.thirdPartyAddress?.equals(initialPeer)) {
|
|
69
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("When sharing a RelationshipAttribute with another Identity, the address of the peer of the Relationship in which the RelationshipAttribute exists must be specified as thirdPartyAddress."));
|
|
70
|
+
}
|
|
71
|
+
if (requestItem.attribute.owner.equals(recipient)) {
|
|
104
72
|
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("It doesn't make sense to share a RelationshipAttribute with its owner."));
|
|
105
73
|
}
|
|
106
|
-
if (attribute.confidentiality === content_1.RelationshipAttributeConfidentiality.Private) {
|
|
74
|
+
if (requestItem.attribute.confidentiality === content_1.RelationshipAttributeConfidentiality.Private) {
|
|
107
75
|
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("The confidentiality of the given `attribute` is private. Therefore you are not allowed to share it."));
|
|
108
76
|
}
|
|
109
77
|
return ValidationResult_1.ValidationResult.success();
|
|
110
78
|
}
|
|
111
79
|
async canAccept(requestItem, _params, _requestInfo) {
|
|
112
|
-
const tagValidationResult = await this.consumptionController.attributes.
|
|
80
|
+
const tagValidationResult = await this.consumptionController.attributes.validateTagsOfAttribute(requestItem.attribute);
|
|
113
81
|
if (tagValidationResult.isError()) {
|
|
114
82
|
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(tagValidationResult.error.message));
|
|
115
83
|
}
|
|
84
|
+
if (requestItem.thirdPartyAddress && requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
85
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("The RequestItem is invalid, since it must contain a RelationshipAttribute if thirdPartyAddress is defined."));
|
|
86
|
+
}
|
|
87
|
+
if (!requestItem.thirdPartyAddress && requestItem.attribute instanceof content_1.RelationshipAttribute) {
|
|
88
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem("The RequestItem is invalid, since it must contain an IdentityAttribute if thirdPartyAddress is undefined."));
|
|
89
|
+
}
|
|
116
90
|
return ValidationResult_1.ValidationResult.success();
|
|
117
91
|
}
|
|
118
92
|
async accept(requestItem, _params, requestInfo) {
|
|
119
|
-
const
|
|
120
|
-
if (
|
|
93
|
+
const isThirdPartyRelationshipAttribute = !!requestItem.thirdPartyAddress;
|
|
94
|
+
if (isThirdPartyRelationshipAttribute) {
|
|
95
|
+
const attribute = requestItem.attribute;
|
|
96
|
+
const existingThirdPartyRelationshipAttribute = await this.consumptionController.attributes.getThirdPartyRelationshipAttributeWithSameValue(attribute.value.toJSON(), requestInfo.peer.toString(), attribute.owner.toString(), attribute.key);
|
|
97
|
+
if (existingThirdPartyRelationshipAttribute) {
|
|
98
|
+
if (existingThirdPartyRelationshipAttribute.deletionInfo?.deletionStatus === attributes_1.ReceivedAttributeDeletionStatus.ToBeDeleted) {
|
|
99
|
+
await this.consumptionController.attributes.setPeerDeletionInfoOfReceivedAttribute(existingThirdPartyRelationshipAttribute, undefined, true);
|
|
100
|
+
}
|
|
101
|
+
return content_1.AttributeAlreadySharedAcceptResponseItem.from({
|
|
102
|
+
result: content_1.ResponseItemResult.Accepted,
|
|
103
|
+
attributeId: existingThirdPartyRelationshipAttribute.id
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
await this.consumptionController.attributes.createThirdPartyRelationshipAttribute({
|
|
107
|
+
id: requestItem.attributeId,
|
|
108
|
+
content: requestItem.attribute,
|
|
109
|
+
peer: requestInfo.peer,
|
|
110
|
+
sourceReference: requestInfo.id,
|
|
111
|
+
initialAttributePeer: requestItem.thirdPartyAddress
|
|
112
|
+
});
|
|
113
|
+
return content_1.AcceptResponseItem.from({ result: content_1.ResponseItemResult.Accepted });
|
|
114
|
+
}
|
|
115
|
+
const existingPeerIdentityAttribute = await this.consumptionController.attributes.getPeerIdentityAttributeWithSameValue(requestItem.attribute.value.toJSON(), requestInfo.peer.toString());
|
|
116
|
+
if (existingPeerIdentityAttribute) {
|
|
117
|
+
if (existingPeerIdentityAttribute.deletionInfo?.deletionStatus === attributes_1.ReceivedAttributeDeletionStatus.ToBeDeleted) {
|
|
118
|
+
await this.consumptionController.attributes.setPeerDeletionInfoOfReceivedAttribute(existingPeerIdentityAttribute, undefined, true);
|
|
119
|
+
}
|
|
121
120
|
return content_1.AttributeAlreadySharedAcceptResponseItem.from({
|
|
122
121
|
result: content_1.ResponseItemResult.Accepted,
|
|
123
|
-
attributeId:
|
|
122
|
+
attributeId: existingPeerIdentityAttribute.id
|
|
124
123
|
});
|
|
125
124
|
}
|
|
126
|
-
|
|
125
|
+
await this.consumptionController.attributes.createPeerIdentityAttribute({
|
|
127
126
|
content: requestItem.attribute,
|
|
128
127
|
peer: requestInfo.peer,
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
});
|
|
132
|
-
return content_1.ShareAttributeAcceptResponseItem.from({
|
|
133
|
-
attributeId: localAttribute.id,
|
|
134
|
-
result: content_1.ResponseItemResult.Accepted
|
|
128
|
+
sourceReference: requestInfo.id,
|
|
129
|
+
id: requestItem.attributeId
|
|
135
130
|
});
|
|
131
|
+
return content_1.AcceptResponseItem.from({ result: content_1.ResponseItemResult.Accepted });
|
|
136
132
|
}
|
|
137
133
|
async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
|
|
138
|
-
if (
|
|
134
|
+
if (responseItem instanceof content_1.RejectResponseItem)
|
|
135
|
+
return;
|
|
136
|
+
const sharedAttribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
|
|
137
|
+
if (!sharedAttribute ||
|
|
138
|
+
!(sharedAttribute instanceof attributes_1.OwnIdentityAttribute || sharedAttribute instanceof attributes_1.OwnRelationshipAttribute || sharedAttribute instanceof attributes_1.PeerRelationshipAttribute)) {
|
|
139
139
|
return;
|
|
140
140
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
141
|
+
if (!(responseItem instanceof content_1.AttributeAlreadySharedAcceptResponseItem)) {
|
|
142
|
+
await this.consumptionController.attributes.addForwardingDetailsToAttribute(sharedAttribute, requestInfo.peer, requestInfo.id);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const forwardingDetails = await this.consumptionController.attributes.getForwardingDetailsForPeer(sharedAttribute, requestInfo.peer, true);
|
|
146
|
+
if (forwardingDetails) {
|
|
147
|
+
await this.consumptionController.attributes.setForwardedDeletionInfoOfAttribute(sharedAttribute, undefined, requestInfo.peer, true);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
await this.consumptionController.attributes.addForwardingDetailsToAttribute(sharedAttribute, requestInfo.peer, requestInfo.id);
|
|
147
151
|
}
|
|
148
152
|
}
|
|
149
153
|
exports.ShareAttributeRequestItemProcessor = ShareAttributeRequestItemProcessor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.ts"],"names":[],"mappings":";;;;;;AAAA,4CAUwB;AAExB,gDAAsD;AACtD,oDAAuB;AACvB,yFAAsF;AACtF,
|
|
1
|
+
{"version":3,"file":"ShareAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RejectResponseItem, Request, TransferFileOwnershipAcceptResponseItem, TransferFileOwnershipRequestItem } from "@nmshd/content";
|
|
2
2
|
import { CoreAddress } from "@nmshd/core-types";
|
|
3
3
|
import { ValidationResult } from "../../../common/ValidationResult";
|
|
4
4
|
import { AcceptRequestItemParametersJSON } from "../../incoming/decide/AcceptRequestItemParameters";
|
|
@@ -8,6 +8,6 @@ export declare class TransferFileOwnershipRequestItemProcessor extends GenericRe
|
|
|
8
8
|
canCreateOutgoingRequestItem(requestItem: TransferFileOwnershipRequestItem, _request: Request, _recipient?: CoreAddress): Promise<ValidationResult>;
|
|
9
9
|
canAccept(requestItem: TransferFileOwnershipRequestItem, _params: AcceptRequestItemParametersJSON, requestInfo: LocalRequestInfo): Promise<ValidationResult>;
|
|
10
10
|
accept(requestItem: TransferFileOwnershipRequestItem, _params: AcceptRequestItemParametersJSON, requestInfo: LocalRequestInfo): Promise<TransferFileOwnershipAcceptResponseItem>;
|
|
11
|
-
applyIncomingResponseItem(responseItem: TransferFileOwnershipAcceptResponseItem |
|
|
11
|
+
applyIncomingResponseItem(responseItem: TransferFileOwnershipAcceptResponseItem | RejectResponseItem, _requestItem: TransferFileOwnershipRequestItem, requestInfo: LocalRequestInfo): Promise<void>;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=TransferFileOwnershipRequestItemProcessor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransferFileOwnershipRequestItemProcessor.d.ts","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/transferFileOwnership/TransferFileOwnershipRequestItemProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"TransferFileOwnershipRequestItemProcessor.d.ts","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/transferFileOwnership/TransferFileOwnershipRequestItemProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,kBAAkB,EAClB,OAAO,EAEP,uCAAuC,EACvC,gCAAgC,EACnC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAU,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AACpG,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,yCAA0C,SAAQ,2BAA2B,CAAC,gCAAgC,CAAC;IAClG,4BAA4B,CAAC,WAAW,EAAE,gCAAgC,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8CnJ,SAAS,CAC3B,WAAW,EAAE,gCAAgC,EAC7C,OAAO,EAAE,+BAA+B,EACxC,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IA2DN,MAAM,CACxB,WAAW,EAAE,gCAAgC,EAC7C,OAAO,EAAE,+BAA+B,EACxC,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,uCAAuC,CAAC;IAwB7B,yBAAyB,CAC3C,YAAY,EAAE,uCAAuC,GAAG,kBAAkB,EAC1E,YAAY,EAAE,gCAAgC,EAC9C,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,IAAI,CAAC;CAYnB"}
|
|
@@ -9,77 +9,84 @@ const GenericRequestItemProcessor_1 = require("../GenericRequestItemProcessor");
|
|
|
9
9
|
class TransferFileOwnershipRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
10
10
|
async canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
|
|
11
11
|
const foundFile = await this.accountController.files.getFile(core_types_1.CoreId.from(requestItem.fileReference.id));
|
|
12
|
-
if (
|
|
12
|
+
if (!foundFile) {
|
|
13
13
|
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The File with the given ID '${requestItem.fileReference.id.toString()}' could not be found.`));
|
|
14
14
|
}
|
|
15
15
|
if (!foundFile.isOwn) {
|
|
16
16
|
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`You cannot request the transfer of ownership of the File with ID '${requestItem.fileReference.id.toString()}' since it is not owned by you.`));
|
|
17
17
|
}
|
|
18
|
-
if (foundFile.
|
|
18
|
+
if (foundFile.expiresAt.isExpired()) {
|
|
19
19
|
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`You cannot request the transfer of ownership of the File with ID '${requestItem.fileReference.id.toString()}' since it is already expired.`));
|
|
20
20
|
}
|
|
21
|
+
if (foundFile.tags && foundFile.tags.length > 0) {
|
|
22
|
+
const tagValidationResult = await this.consumptionController.attributes.validateTagsForType(foundFile.tags, "IdentityFileReference");
|
|
23
|
+
if (tagValidationResult.isError()) {
|
|
24
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`You cannot request the transfer of ownership of the File with ID '${requestItem.fileReference.id.toString()}' since it has invalid tags. ${tagValidationResult.error.message}`));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const validationResult = await this.accountController.files.validateFileOwnershipToken(foundFile.id, requestItem.ownershipToken);
|
|
28
|
+
if (!validationResult.isValid) {
|
|
29
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`The specified ownershipToken is not valid for the File with ID '${requestItem.fileReference.id.toString()}'.`));
|
|
30
|
+
}
|
|
21
31
|
return ValidationResult_1.ValidationResult.success();
|
|
22
32
|
}
|
|
23
33
|
async canAccept(requestItem, _params, requestInfo) {
|
|
24
34
|
let file;
|
|
25
35
|
try {
|
|
26
|
-
file = await this.accountController.files.
|
|
36
|
+
file = await this.accountController.files.getOrLoadFileByReference(requestItem.fileReference);
|
|
27
37
|
}
|
|
28
38
|
catch (_) {
|
|
29
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.
|
|
39
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`You cannot accept this RequestItem since the File with the given ID '${requestItem.fileReference.id.toString()}' could not be found.`));
|
|
30
40
|
}
|
|
31
|
-
if (file.
|
|
32
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.
|
|
41
|
+
if (file.expiresAt.isExpired()) {
|
|
42
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`You cannot accept this RequestItem since the File with the given ID '${requestItem.fileReference.id.toString()}' is already expired.`));
|
|
33
43
|
}
|
|
34
44
|
if (file.isOwn) {
|
|
35
|
-
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.
|
|
45
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`You cannot accept this RequestItem since the File with the given fileReference '${requestItem.fileReference.id.toString()}' is already owned by you.`));
|
|
46
|
+
}
|
|
47
|
+
if (file.owner.toString() !== requestInfo.peer.toString()) {
|
|
48
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`You cannot accept this RequestItem since the File with the given fileReference '${requestItem.fileReference.id.toString()}' is not owned by the peer.`));
|
|
49
|
+
}
|
|
50
|
+
if (file.tags && file.tags.length > 0) {
|
|
51
|
+
const tagValidationResult = await this.consumptionController.attributes.validateTagsForType(file.tags, "IdentityFileReference");
|
|
52
|
+
if (tagValidationResult.isError()) {
|
|
53
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`You cannot accept this RequestItem since the File with the given fileReference '${requestItem.fileReference.id.toString()}' has invalid tags. ${tagValidationResult.error.message}`));
|
|
54
|
+
}
|
|
36
55
|
}
|
|
37
|
-
|
|
38
|
-
|
|
56
|
+
const validationResult = await this.accountController.files.validateFileOwnershipToken(file.id, requestItem.ownershipToken);
|
|
57
|
+
if (!validationResult.isValid) {
|
|
58
|
+
return ValidationResult_1.ValidationResult.error(ConsumptionCoreErrors_1.ConsumptionCoreErrors.requests.invalidRequestItem(`You cannot accept this RequestItem since the specified ownershipToken is not valid for the File with ID '${requestItem.fileReference.id.toString()}'.`));
|
|
39
59
|
}
|
|
40
60
|
return ValidationResult_1.ValidationResult.success();
|
|
41
61
|
}
|
|
42
62
|
async accept(requestItem, _params, requestInfo) {
|
|
43
|
-
const peerFile = await this.accountController.files.
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
buffer: fileContent,
|
|
47
|
-
title: peerFile.cache.title,
|
|
48
|
-
description: peerFile.cache.description,
|
|
49
|
-
filename: peerFile.cache.filename,
|
|
50
|
-
mimetype: peerFile.cache.mimetype,
|
|
51
|
-
expiresAt: core_types_1.CoreDate.from("9999-12-31T00:00:00.000Z"),
|
|
52
|
-
tags: peerFile.cache.tags
|
|
53
|
-
});
|
|
54
|
-
const repositoryAttribute = await this.consumptionController.attributes.createRepositoryAttribute({
|
|
63
|
+
const peerFile = await this.accountController.files.getOrLoadFileByReference(requestItem.fileReference);
|
|
64
|
+
const ownFile = await this.accountController.files.claimFileOwnership(peerFile.id, requestItem.ownershipToken);
|
|
65
|
+
const ownIdentityAttribute = await this.consumptionController.attributes.createOwnIdentityAttribute({
|
|
55
66
|
content: content_1.IdentityAttribute.from({
|
|
56
67
|
value: content_1.IdentityFileReference.from({
|
|
57
|
-
value: ownFile.truncate()
|
|
68
|
+
value: ownFile.toFileReference(this.accountController.config.baseUrl).truncate()
|
|
58
69
|
}),
|
|
59
70
|
owner: this.accountController.identity.address,
|
|
60
|
-
tags:
|
|
71
|
+
tags: ownFile.tags
|
|
61
72
|
})
|
|
62
73
|
});
|
|
63
|
-
const
|
|
64
|
-
sourceAttributeId: repositoryAttribute.id,
|
|
65
|
-
peer: requestInfo.peer,
|
|
66
|
-
requestReference: requestInfo.id
|
|
67
|
-
});
|
|
74
|
+
const updatedAttribute = await this.consumptionController.attributes.addForwardingDetailsToAttribute(ownIdentityAttribute, requestInfo.peer, requestInfo.id);
|
|
68
75
|
return content_1.TransferFileOwnershipAcceptResponseItem.from({
|
|
69
76
|
result: content_1.ResponseItemResult.Accepted,
|
|
70
|
-
attributeId:
|
|
71
|
-
attribute:
|
|
77
|
+
attributeId: updatedAttribute.id,
|
|
78
|
+
attribute: updatedAttribute.content
|
|
72
79
|
});
|
|
73
80
|
}
|
|
74
81
|
async applyIncomingResponseItem(responseItem, _requestItem, requestInfo) {
|
|
75
82
|
if (!(responseItem instanceof content_1.TransferFileOwnershipAcceptResponseItem)) {
|
|
76
83
|
return;
|
|
77
84
|
}
|
|
78
|
-
await this.consumptionController.attributes.
|
|
85
|
+
await this.consumptionController.attributes.createPeerIdentityAttribute({
|
|
79
86
|
id: responseItem.attributeId,
|
|
80
87
|
content: responseItem.attribute,
|
|
81
|
-
|
|
82
|
-
|
|
88
|
+
peer: requestInfo.peer,
|
|
89
|
+
sourceReference: requestInfo.id
|
|
83
90
|
});
|
|
84
91
|
}
|
|
85
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransferFileOwnershipRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/transferFileOwnership/TransferFileOwnershipRequestItemProcessor.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"TransferFileOwnershipRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/transferFileOwnership/TransferFileOwnershipRequestItemProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAppropriateResponseItem.d.ts","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/utility/createAppropriateResponseItem.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wCAAwC,EACxC,qCAAqC,EACrC,iCAAiC,EACjC,iBAAiB,EACjB,kCAAkC,EAClC,+BAA+B,EAElC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"createAppropriateResponseItem.d.ts","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/utility/createAppropriateResponseItem.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wCAAwC,EACxC,qCAAqC,EACrC,iCAAiC,EACjC,iBAAiB,EACjB,kCAAkC,EAClC,+BAA+B,EAElC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAwB,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,wBAA8B,6BAA6B,CACvD,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,gBAAgB,EAC7B,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,iCAAiC,GAAG,wCAAwC,GAAG,qCAAqC,CAAC,CAAC;AACjI,wBAA8B,6BAA6B,CACvD,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,gBAAgB,EAC7B,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,+BAA+B,GAAG,wCAAwC,GAAG,qCAAqC,CAAC,CAAC;AAC/H,wBAA8B,6BAA6B,CACvD,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,gBAAgB,EAC7B,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EAAE,SAAS,GACpB,OAAO,CAAC,kCAAkC,GAAG,wCAAwC,GAAG,qCAAqC,CAAC,CAAC"}
|
|
@@ -2,92 +2,70 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = createAppropriateResponseItem;
|
|
4
4
|
const content_1 = require("@nmshd/content");
|
|
5
|
-
const attributes_1 = require("../../../attributes");
|
|
6
5
|
async function createAppropriateResponseItem(identityAttribute, requestInfo, attributesController, itemType) {
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
"deletionInfo.deletionStatus": {
|
|
10
|
-
$nin: [
|
|
11
|
-
attributes_1.LocalAttributeDeletionStatus.DeletedByPeer,
|
|
12
|
-
attributes_1.LocalAttributeDeletionStatus.DeletedByOwner,
|
|
13
|
-
attributes_1.LocalAttributeDeletionStatus.ToBeDeletedByPeer,
|
|
14
|
-
attributes_1.LocalAttributeDeletionStatus.ToBeDeleted
|
|
15
|
-
]
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
const latestSharedVersions = await attributesController.getSharedVersionsOfAttribute(repositoryAttribute.id, [requestInfo.peer], true, query);
|
|
6
|
+
const ownIdentityAttribute = await getOwnIdentityAttribute(identityAttribute, attributesController);
|
|
7
|
+
const latestSharedVersions = await attributesController.getVersionsOfAttributeSharedWithPeer(ownIdentityAttribute, requestInfo.peer);
|
|
19
8
|
const latestSharedVersion = latestSharedVersions.length > 0 ? latestSharedVersions[0] : undefined;
|
|
20
9
|
if (!latestSharedVersion) {
|
|
21
|
-
const
|
|
22
|
-
peer: requestInfo.peer,
|
|
23
|
-
requestReference: requestInfo.id,
|
|
24
|
-
sourceAttributeId: repositoryAttribute.id
|
|
25
|
-
});
|
|
10
|
+
const updatedAttribute = await attributesController.addForwardingDetailsToAttribute(ownIdentityAttribute, requestInfo.peer, requestInfo.id);
|
|
26
11
|
switch (itemType) {
|
|
27
12
|
case "Create":
|
|
28
13
|
return content_1.CreateAttributeAcceptResponseItem.from({
|
|
29
14
|
result: content_1.ResponseItemResult.Accepted,
|
|
30
|
-
attributeId:
|
|
15
|
+
attributeId: updatedAttribute.id
|
|
31
16
|
});
|
|
32
17
|
case "Read":
|
|
33
18
|
return content_1.ReadAttributeAcceptResponseItem.from({
|
|
34
19
|
result: content_1.ResponseItemResult.Accepted,
|
|
35
|
-
attributeId:
|
|
36
|
-
attribute:
|
|
20
|
+
attributeId: ownIdentityAttribute.id,
|
|
21
|
+
attribute: updatedAttribute.content
|
|
37
22
|
});
|
|
38
23
|
case "Propose":
|
|
39
24
|
return content_1.ProposeAttributeAcceptResponseItem.from({
|
|
40
25
|
result: content_1.ResponseItemResult.Accepted,
|
|
41
|
-
attributeId:
|
|
42
|
-
attribute:
|
|
26
|
+
attributeId: ownIdentityAttribute.id,
|
|
27
|
+
attribute: updatedAttribute.content
|
|
43
28
|
});
|
|
44
29
|
}
|
|
45
30
|
}
|
|
46
|
-
if (latestSharedVersion.
|
|
31
|
+
if (latestSharedVersion.id.equals(ownIdentityAttribute.id)) {
|
|
32
|
+
const forwardingDetails = await attributesController.getForwardingDetailsForPeer(latestSharedVersion, requestInfo.peer, true);
|
|
33
|
+
if (forwardingDetails) {
|
|
34
|
+
await attributesController.setForwardedDeletionInfoOfAttribute(latestSharedVersion, undefined, requestInfo.peer, true);
|
|
35
|
+
}
|
|
47
36
|
return content_1.AttributeAlreadySharedAcceptResponseItem.from({
|
|
48
37
|
result: content_1.ResponseItemResult.Accepted,
|
|
49
38
|
attributeId: latestSharedVersion.id
|
|
50
39
|
});
|
|
51
40
|
}
|
|
52
|
-
const
|
|
53
|
-
content: repositoryAttribute.content,
|
|
54
|
-
shareInfo: attributes_1.LocalAttributeShareInfo.from({
|
|
55
|
-
peer: requestInfo.peer,
|
|
56
|
-
requestReference: requestInfo.id,
|
|
57
|
-
sourceAttribute: repositoryAttribute.id
|
|
58
|
-
})
|
|
59
|
-
};
|
|
60
|
-
const ownSharedIdentityAttributesAfterSuccession = await attributesController.succeedOwnSharedIdentityAttribute(latestSharedVersion.id, ownSharedIdentityAttributeSuccessorParams);
|
|
61
|
-
const succeededOwnSharedIdentityAttribute = ownSharedIdentityAttributesAfterSuccession.successor;
|
|
41
|
+
const updatedAttribute = await attributesController.addForwardingDetailsToAttribute(ownIdentityAttribute, requestInfo.peer, requestInfo.id);
|
|
62
42
|
return content_1.AttributeSuccessionAcceptResponseItem.from({
|
|
63
43
|
result: content_1.ResponseItemResult.Accepted,
|
|
64
|
-
successorId:
|
|
65
|
-
successorContent:
|
|
44
|
+
successorId: updatedAttribute.id,
|
|
45
|
+
successorContent: updatedAttribute.content,
|
|
66
46
|
predecessorId: latestSharedVersion.id
|
|
67
47
|
});
|
|
68
48
|
}
|
|
69
|
-
async function
|
|
70
|
-
const
|
|
71
|
-
if (!
|
|
72
|
-
return await attributesController.
|
|
73
|
-
content: attribute
|
|
74
|
-
});
|
|
49
|
+
async function getOwnIdentityAttribute(attribute, attributesController) {
|
|
50
|
+
const existingOwnIdentityAttribute = await attributesController.getOwnIdentityAttributeWithSameValue(attribute.value.toJSON());
|
|
51
|
+
if (!existingOwnIdentityAttribute) {
|
|
52
|
+
return await attributesController.createOwnIdentityAttribute({ content: attribute });
|
|
75
53
|
}
|
|
76
|
-
const newTags = attribute.tags?.filter((tag) => !
|
|
54
|
+
const newTags = attribute.tags?.filter((tag) => !existingOwnIdentityAttribute.content.tags?.includes(tag));
|
|
77
55
|
if (!newTags || newTags.length === 0)
|
|
78
|
-
return
|
|
79
|
-
const
|
|
80
|
-
return
|
|
56
|
+
return existingOwnIdentityAttribute;
|
|
57
|
+
const succeededOwnIdentityAttribute = await mergeTagsOfOwnIdentityAttribute(existingOwnIdentityAttribute, newTags, attributesController);
|
|
58
|
+
return succeededOwnIdentityAttribute;
|
|
81
59
|
}
|
|
82
|
-
async function
|
|
83
|
-
const
|
|
60
|
+
async function mergeTagsOfOwnIdentityAttribute(ownIdentityAttribute, newTags, attributesController) {
|
|
61
|
+
const ownIdentityAttributeSuccessorParams = {
|
|
84
62
|
content: {
|
|
85
|
-
...
|
|
86
|
-
tags: [...(
|
|
63
|
+
...ownIdentityAttribute.content.toJSON(),
|
|
64
|
+
tags: [...(ownIdentityAttribute.content.tags ?? []), ...newTags]
|
|
87
65
|
},
|
|
88
|
-
succeeds:
|
|
66
|
+
succeeds: ownIdentityAttribute.id.toString()
|
|
89
67
|
};
|
|
90
|
-
const
|
|
91
|
-
return
|
|
68
|
+
const ownIdentityAttributesAfterSuccession = await attributesController.succeedOwnIdentityAttribute(ownIdentityAttribute, ownIdentityAttributeSuccessorParams);
|
|
69
|
+
return ownIdentityAttributesAfterSuccession.successor;
|
|
92
70
|
}
|
|
93
71
|
//# sourceMappingURL=createAppropriateResponseItem.js.map
|