@nmshd/consumption 3.9.7 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/buildInformation.js +4 -4
  2. package/dist/consumption/ConsumptionController.d.ts.map +1 -1
  3. package/dist/consumption/ConsumptionController.js +5 -1
  4. package/dist/consumption/ConsumptionController.js.map +1 -1
  5. package/dist/consumption/CoreErrors.d.ts +19 -3
  6. package/dist/consumption/CoreErrors.d.ts.map +1 -1
  7. package/dist/consumption/CoreErrors.js +52 -4
  8. package/dist/consumption/CoreErrors.js.map +1 -1
  9. package/dist/modules/attributes/AttributesController.d.ts +19 -1
  10. package/dist/modules/attributes/AttributesController.d.ts.map +1 -1
  11. package/dist/modules/attributes/AttributesController.js +238 -59
  12. package/dist/modules/attributes/AttributesController.js.map +1 -1
  13. package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.d.ts +7 -0
  14. package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.d.ts.map +1 -0
  15. package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.js +12 -0
  16. package/dist/modules/attributes/events/OwnSharedAttributeDeletedByOwnerEvent.js.map +1 -0
  17. package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.d.ts +7 -0
  18. package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.d.ts.map +1 -0
  19. package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.js +12 -0
  20. package/dist/modules/attributes/events/PeerSharedAttributeDeletedByPeerEvent.js.map +1 -0
  21. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeDeletedByPeerEvent.d.ts +7 -0
  22. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeDeletedByPeerEvent.d.ts.map +1 -0
  23. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeDeletedByPeerEvent.js +12 -0
  24. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeDeletedByPeerEvent.js.map +1 -0
  25. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeSucceededEvent.d.ts +8 -0
  26. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeSucceededEvent.d.ts.map +1 -0
  27. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeSucceededEvent.js +12 -0
  28. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeSucceededEvent.js.map +1 -0
  29. package/dist/modules/attributes/events/index.d.ts +4 -0
  30. package/dist/modules/attributes/events/index.d.ts.map +1 -1
  31. package/dist/modules/attributes/events/index.js +4 -0
  32. package/dist/modules/attributes/events/index.js.map +1 -1
  33. package/dist/modules/attributes/index.d.ts +1 -0
  34. package/dist/modules/attributes/index.d.ts.map +1 -1
  35. package/dist/modules/attributes/index.js +1 -0
  36. package/dist/modules/attributes/index.js.map +1 -1
  37. package/dist/modules/attributes/local/LocalAttribute.d.ts +20 -9
  38. package/dist/modules/attributes/local/LocalAttribute.d.ts.map +1 -1
  39. package/dist/modules/attributes/local/LocalAttribute.js +48 -13
  40. package/dist/modules/attributes/local/LocalAttribute.js.map +1 -1
  41. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.d.ts +21 -0
  42. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.d.ts.map +1 -0
  43. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.js +40 -0
  44. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.js.map +1 -0
  45. package/dist/modules/notifications/index.d.ts +3 -0
  46. package/dist/modules/notifications/index.d.ts.map +1 -1
  47. package/dist/modules/notifications/index.js +3 -0
  48. package/dist/modules/notifications/index.js.map +1 -1
  49. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.d.ts +14 -0
  50. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.d.ts.map +1 -0
  51. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.js +56 -0
  52. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.js.map +1 -0
  53. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.d.ts +14 -0
  54. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.d.ts.map +1 -0
  55. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.js +57 -0
  56. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.js.map +1 -0
  57. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.d.ts +14 -0
  58. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.d.ts.map +1 -0
  59. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.js +57 -0
  60. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.js.map +1 -0
  61. package/dist/modules/requests/incoming/IncomingRequestsController.d.ts.map +1 -1
  62. package/dist/modules/requests/incoming/IncomingRequestsController.js +1 -1
  63. package/dist/modules/requests/incoming/IncomingRequestsController.js.map +1 -1
  64. package/dist/modules/requests/index.d.ts +2 -0
  65. package/dist/modules/requests/index.d.ts.map +1 -1
  66. package/dist/modules/requests/index.js +2 -0
  67. package/dist/modules/requests/index.js.map +1 -1
  68. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.d.ts +2 -1
  69. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.d.ts.map +1 -1
  70. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js.map +1 -1
  71. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.d.ts +2 -1
  72. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.d.ts.map +1 -1
  73. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js +0 -1
  74. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js.map +1 -1
  75. package/dist/modules/requests/itemProcessors/IRequestItemProcessor.d.ts +2 -1
  76. package/dist/modules/requests/itemProcessors/IRequestItemProcessor.d.ts.map +1 -1
  77. package/dist/modules/requests/itemProcessors/deleteAttribute/AcceptDeleteAttributeRequestItemParameters.d.ts +11 -0
  78. package/dist/modules/requests/itemProcessors/deleteAttribute/AcceptDeleteAttributeRequestItemParameters.d.ts.map +1 -0
  79. package/dist/modules/requests/itemProcessors/deleteAttribute/AcceptDeleteAttributeRequestItemParameters.js +29 -0
  80. package/dist/modules/requests/itemProcessors/deleteAttribute/AcceptDeleteAttributeRequestItemParameters.js.map +1 -0
  81. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.d.ts +13 -0
  82. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.d.ts.map +1 -0
  83. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.js +87 -0
  84. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.js.map +1 -0
  85. package/dist/modules/requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.js +1 -1
  86. package/dist/modules/requests/itemProcessors/freeText/AcceptFreeTextRequestItemParameters.js.map +1 -1
  87. package/dist/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.js +1 -1
  88. package/dist/modules/requests/itemProcessors/freeText/FreeTextRequestItemProcessor.js.map +1 -1
  89. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts +5 -4
  90. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts.map +1 -1
  91. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js +92 -22
  92. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -1
  93. package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.d.ts +1 -1
  94. package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.d.ts.map +1 -1
  95. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts +7 -4
  96. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts.map +1 -1
  97. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +129 -20
  98. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
  99. package/package.json +6 -15
  100. package/lib-web/nmshd.consumption.js +0 -35727
  101. package/lib-web/nmshd.consumption.js.map +0 -1
  102. package/lib-web/nmshd.consumption.min.js +0 -3
  103. package/lib-web/nmshd.consumption.min.js.map +0 -1
  104. package/ui5.yaml +0 -9
@@ -1,5 +1,6 @@
1
- import { ProposeAttributeAcceptResponseItem, ProposeAttributeRequestItem, RejectResponseItem, Request } from "@nmshd/content";
1
+ import { AttributeAlreadySharedAcceptResponseItem, AttributeSuccessionAcceptResponseItem, ProposeAttributeAcceptResponseItem, ProposeAttributeRequestItem, RejectResponseItem, Request } from "@nmshd/content";
2
2
  import { CoreAddress } from "@nmshd/transport";
3
+ import { PeerSharedAttributeSucceededEvent } from "../../../attributes";
3
4
  import { ValidationResult } from "../../../common/ValidationResult";
4
5
  import { GenericRequestItemProcessor } from "../GenericRequestItemProcessor";
5
6
  import { LocalRequestInfo } from "../IRequestItemProcessor";
@@ -9,9 +10,9 @@ export declare class ProposeAttributeRequestItemProcessor extends GenericRequest
9
10
  private validateAttribute;
10
11
  private validateQuery;
11
12
  canAccept(_requestItem: ProposeAttributeRequestItem, params: AcceptProposeAttributeRequestItemParametersJSON, requestInfo: LocalRequestInfo): Promise<ValidationResult>;
12
- accept(_requestItem: ProposeAttributeRequestItem, params: AcceptProposeAttributeRequestItemParametersJSON, requestInfo: LocalRequestInfo): Promise<ProposeAttributeAcceptResponseItem>;
13
- private copyExistingAttribute;
13
+ accept(_requestItem: ProposeAttributeRequestItem, params: AcceptProposeAttributeRequestItemParametersJSON, requestInfo: LocalRequestInfo): Promise<ProposeAttributeAcceptResponseItem | AttributeSuccessionAcceptResponseItem | AttributeAlreadySharedAcceptResponseItem>;
14
+ private performOwnSharedIdentityAttributeSuccession;
14
15
  private createNewAttribute;
15
- applyIncomingResponseItem(responseItem: ProposeAttributeAcceptResponseItem | RejectResponseItem, _requestItem: ProposeAttributeRequestItem, requestInfo: LocalRequestInfo): Promise<void>;
16
+ applyIncomingResponseItem(responseItem: ProposeAttributeAcceptResponseItem | AttributeSuccessionAcceptResponseItem | AttributeAlreadySharedAcceptResponseItem | RejectResponseItem, _requestItem: ProposeAttributeRequestItem, requestInfo: LocalRequestInfo): Promise<PeerSharedAttributeSucceededEvent | void>;
16
17
  }
17
18
  //# sourceMappingURL=ProposeAttributeRequestItemProcessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProposeAttributeRequestItemProcessor.d.ts","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,kCAAkC,EAClC,2BAA2B,EAC3B,kBAAkB,EAGlB,OAAO,EAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAA6C,MAAM,kBAAkB,CAAC;AAG1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAA+C,+CAA+C,EAAE,MAAM,+CAA+C,CAAC;AAE7J,qBAAa,oCAAqC,SAAQ,2BAA2B,CAAC,2BAA2B,EAAE,+CAA+C,CAAC;IAC/I,4BAA4B,CAAC,WAAW,EAAE,2BAA2B,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,gBAAgB;IAcpJ,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,aAAa;IAiBC,SAAS,CAC3B,YAAY,EAAE,2BAA2B,EACzC,MAAM,EAAE,+CAA+C,EACvD,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAwBN,MAAM,CACxB,YAAY,EAAE,2BAA2B,EACzC,MAAM,EAAE,+CAA+C,EACvD,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,kCAAkC,CAAC;YAiBhC,qBAAqB;YAQrB,kBAAkB;IAoBV,yBAAyB,CAC3C,YAAY,EAAE,kCAAkC,GAAG,kBAAkB,EACrE,YAAY,EAAE,2BAA2B,EACzC,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,IAAI,CAAC;CAYnB"}
1
+ {"version":3,"file":"ProposeAttributeRequestItemProcessor.d.ts","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wCAAwC,EACxC,qCAAqC,EAErC,kCAAkC,EAClC,2BAA2B,EAC3B,kBAAkB,EAGlB,OAAO,EAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAA6C,MAAM,kBAAkB,CAAC;AAE1F,OAAO,EAAqD,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAE3H,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAA+C,+CAA+C,EAAE,MAAM,+CAA+C,CAAC;AAE7J,qBAAa,oCAAqC,SAAQ,2BAA2B,CAAC,2BAA2B,EAAE,+CAA+C,CAAC;IAC/I,4BAA4B,CAAC,WAAW,EAAE,2BAA2B,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,gBAAgB;IAcpJ,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,aAAa;IAiBC,SAAS,CAC3B,YAAY,EAAE,2BAA2B,EACzC,MAAM,EAAE,+CAA+C,EACvD,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IA0CN,MAAM,CACxB,YAAY,EAAE,2BAA2B,EACzC,MAAM,EAAE,+CAA+C,EACvD,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,kCAAkC,GAAG,qCAAqC,GAAG,wCAAwC,CAAC;YAiEnH,2CAA2C;YAa3C,kBAAkB;IAoBV,yBAAyB,CAC3C,YAAY,EAAE,kCAAkC,GAAG,qCAAqC,GAAG,wCAAwC,GAAG,kBAAkB,EACxJ,YAAY,EAAE,2BAA2B,EACzC,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,iCAAiC,GAAG,IAAI,CAAC;CAwBvD"}
@@ -7,6 +7,7 @@ exports.ProposeAttributeRequestItemProcessor = void 0;
7
7
  const content_1 = require("@nmshd/content");
8
8
  const transport_1 = require("@nmshd/transport");
9
9
  const CoreErrors_1 = require("../../../../consumption/CoreErrors");
10
+ const attributes_1 = require("../../../attributes");
10
11
  const LocalAttribute_1 = require("../../../attributes/local/LocalAttribute");
11
12
  const ValidationResult_1 = require("../../../common/ValidationResult");
12
13
  const GenericRequestItemProcessor_1 = require("../GenericRequestItemProcessor");
@@ -44,16 +45,29 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
44
45
  const parsedParams = AcceptProposeAttributeRequestItemParameters_1.AcceptProposeAttributeRequestItemParameters.from(params);
45
46
  let attribute = parsedParams.attribute;
46
47
  if (parsedParams.isWithExistingAttribute()) {
47
- const localAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.attributeId);
48
- if (!localAttribute) {
48
+ const foundAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.attributeId);
49
+ if (typeof foundAttribute === "undefined") {
49
50
  return ValidationResult_1.ValidationResult.error(transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
50
51
  }
51
- attribute = localAttribute.content;
52
+ const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.attributeId, [requestInfo.peer], true);
53
+ if (latestSharedVersion.length > 0) {
54
+ if (typeof latestSharedVersion[0].shareInfo?.sourceAttribute === "undefined") {
55
+ throw new Error(`The Attribute ${latestSharedVersion[0].id} doesn't have a 'shareInfo.sourceAttribute', even though it was found as shared version of an Attribute.`);
56
+ }
57
+ const latestSharedVersionSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(latestSharedVersion[0].shareInfo.sourceAttribute);
58
+ if (typeof latestSharedVersionSourceAttribute === "undefined") {
59
+ throw new Error(`The Attribute ${latestSharedVersion[0].shareInfo.sourceAttribute} was not found.`);
60
+ }
61
+ if (await this.consumptionController.attributes.isSubsequentInSuccession(foundAttribute, latestSharedVersionSourceAttribute)) {
62
+ return ValidationResult_1.ValidationResult.error(CoreErrors_1.CoreErrors.requests.invalidAcceptParameters("You cannot share the predecessor of an already shared Attribute version."));
63
+ }
64
+ }
65
+ attribute = foundAttribute.content;
52
66
  }
53
67
  const ownerIsEmpty = attribute.owner.equals("");
54
68
  const ownerIsCurrentIdentity = attribute.owner.equals(this.currentIdentityAddress);
55
69
  if (!ownerIsEmpty && !ownerIsCurrentIdentity) {
56
- return ValidationResult_1.ValidationResult.error(CoreErrors_1.CoreErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
70
+ return ValidationResult_1.ValidationResult.error(CoreErrors_1.CoreErrors.requests.invalidAcceptParameters("The given Attribute belongs to someone else. You can only share own Attributes."));
57
71
  }
58
72
  return ValidationResult_1.ValidationResult.success();
59
73
  }
@@ -61,23 +75,67 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
61
75
  const parsedParams = AcceptProposeAttributeRequestItemParameters_1.AcceptProposeAttributeRequestItemParameters.from(params);
62
76
  let sharedLocalAttribute;
63
77
  if (parsedParams.isWithExistingAttribute()) {
64
- sharedLocalAttribute = await this.copyExistingAttribute(parsedParams.attributeId, requestInfo);
65
- }
66
- else {
67
- sharedLocalAttribute = await this.createNewAttribute(parsedParams.attribute, requestInfo);
78
+ const existingSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.attributeId);
79
+ if (typeof existingSourceAttribute === "undefined") {
80
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, parsedParams.attributeId.toString());
81
+ }
82
+ const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.attributeId, [requestInfo.peer], true);
83
+ if (latestSharedVersion.length === 0) {
84
+ sharedLocalAttribute = await this.consumptionController.attributes.createSharedLocalAttributeCopy({
85
+ sourceAttributeId: transport_1.CoreId.from(existingSourceAttribute.id),
86
+ peer: transport_1.CoreAddress.from(requestInfo.peer),
87
+ requestReference: transport_1.CoreId.from(requestInfo.id)
88
+ });
89
+ return content_1.ProposeAttributeAcceptResponseItem.from({
90
+ result: content_1.ResponseItemResult.Accepted,
91
+ attributeId: sharedLocalAttribute.id,
92
+ attribute: sharedLocalAttribute.content
93
+ });
94
+ }
95
+ const latestSharedAttribute = latestSharedVersion[0];
96
+ if (typeof latestSharedAttribute.shareInfo?.sourceAttribute === "undefined") {
97
+ throw new Error(`The Attribute ${latestSharedAttribute.id} doesn't have a 'shareInfo.sourceAttribute', even though it was found as shared version of an Attribute.`);
98
+ }
99
+ if (latestSharedAttribute.shareInfo.sourceAttribute.toString() === existingSourceAttribute.id.toString()) {
100
+ return content_1.AttributeAlreadySharedAcceptResponseItem.from({
101
+ result: content_1.ResponseItemResult.Accepted,
102
+ attributeId: latestSharedAttribute.id
103
+ });
104
+ }
105
+ const predecessorSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(latestSharedAttribute.shareInfo.sourceAttribute);
106
+ if (typeof predecessorSourceAttribute === "undefined") {
107
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, latestSharedAttribute.shareInfo.sourceAttribute.toString());
108
+ }
109
+ if (await this.consumptionController.attributes.isSubsequentInSuccession(predecessorSourceAttribute, existingSourceAttribute)) {
110
+ if (existingSourceAttribute.isRepositoryAttribute(this.currentIdentityAddress)) {
111
+ const successorSharedAttribute = await this.performOwnSharedIdentityAttributeSuccession(latestSharedAttribute.id, existingSourceAttribute, requestInfo);
112
+ return content_1.AttributeSuccessionAcceptResponseItem.from({
113
+ result: content_1.ResponseItemResult.Accepted,
114
+ successorId: successorSharedAttribute.id,
115
+ successorContent: successorSharedAttribute.content,
116
+ predecessorId: latestSharedAttribute.id
117
+ });
118
+ }
119
+ }
68
120
  }
121
+ sharedLocalAttribute = await this.createNewAttribute(parsedParams.attribute, requestInfo);
69
122
  return content_1.ProposeAttributeAcceptResponseItem.from({
70
123
  result: content_1.ResponseItemResult.Accepted,
71
124
  attributeId: sharedLocalAttribute.id,
72
125
  attribute: sharedLocalAttribute.content
73
126
  });
74
127
  }
75
- async copyExistingAttribute(attributeId, requestInfo) {
76
- return await this.consumptionController.attributes.createSharedLocalAttributeCopy({
77
- sourceAttributeId: transport_1.CoreId.from(attributeId),
78
- peer: transport_1.CoreAddress.from(requestInfo.peer),
79
- requestReference: transport_1.CoreId.from(requestInfo.id)
80
- });
128
+ async performOwnSharedIdentityAttributeSuccession(sharedPredecessorId, sourceSuccessor, requestInfo) {
129
+ const successorParams = {
130
+ content: sourceSuccessor.content,
131
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
132
+ peer: requestInfo.peer,
133
+ requestReference: requestInfo.id,
134
+ sourceAttribute: sourceSuccessor.id
135
+ })
136
+ };
137
+ const { successor } = await this.consumptionController.attributes.succeedOwnSharedIdentityAttribute(sharedPredecessorId, successorParams);
138
+ return successor;
81
139
  }
82
140
  async createNewAttribute(attribute, requestInfo) {
83
141
  if (attribute instanceof content_1.IdentityAttribute) {
@@ -97,15 +155,27 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
97
155
  });
98
156
  }
99
157
  async applyIncomingResponseItem(responseItem, _requestItem, requestInfo) {
100
- if (!(responseItem instanceof content_1.ProposeAttributeAcceptResponseItem)) {
101
- return;
158
+ if (responseItem instanceof content_1.ProposeAttributeAcceptResponseItem) {
159
+ await this.consumptionController.attributes.createPeerLocalAttribute({
160
+ id: responseItem.attributeId,
161
+ content: responseItem.attribute,
162
+ peer: requestInfo.peer,
163
+ requestReference: requestInfo.id
164
+ });
102
165
  }
103
- await this.consumptionController.attributes.createPeerLocalAttribute({
104
- id: responseItem.attributeId,
105
- content: responseItem.attribute,
106
- peer: requestInfo.peer,
107
- requestReference: requestInfo.id
108
- });
166
+ if (responseItem instanceof content_1.AttributeSuccessionAcceptResponseItem && responseItem.successorContent instanceof content_1.IdentityAttribute) {
167
+ const successorParams = attributes_1.AttributeSuccessorParams.from({
168
+ id: responseItem.successorId,
169
+ content: responseItem.successorContent,
170
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
171
+ peer: requestInfo.peer,
172
+ requestReference: requestInfo.id
173
+ })
174
+ });
175
+ const { predecessor, successor } = await this.consumptionController.attributes.succeedPeerSharedIdentityAttribute(responseItem.predecessorId, successorParams);
176
+ return new attributes_1.PeerSharedAttributeSucceededEvent(this.currentIdentityAddress.toString(), predecessor, successor);
177
+ }
178
+ return;
109
179
  }
110
180
  }
111
181
  exports.ProposeAttributeRequestItemProcessor = ProposeAttributeRequestItemProcessor;
@@ -1 +1 @@
1
- {"version":3,"file":"ProposeAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProposeAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export declare class AcceptReadAttributeRequestItemParameters extends Serializab
16
16
  existingAttributeId: CoreId;
17
17
  };
18
18
  isWithNewAttribute(): this is {
19
- newAttributeValue: IdentityAttribute | RelationshipAttribute;
19
+ newAttribute: IdentityAttribute | RelationshipAttribute;
20
20
  };
21
21
  static from(value: AcceptReadAttributeRequestItemParametersJSON): AcceptReadAttributeRequestItemParameters;
22
22
  protected static postFrom<T extends Serializable>(value: T): T;
@@ -1 +1 @@
1
- {"version":3,"file":"AcceptReadAttributeRequestItemParameters.d.ts","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8C,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC5H,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AAEpG,MAAM,WAAW,iEAAkE,SAAQ,+BAA+B;IACtH,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,4DAA6D,SAAQ,+BAA+B;IACjH,YAAY,EAAE,qBAAqB,GAAG,yBAAyB,CAAC;CACnE;AAED,MAAM,MAAM,4CAA4C,GAClD,iEAAiE,GACjE,4DAA4D,CAAC;AAEnE,qBACa,wCAAyC,SAAQ,YAAY;IAG/D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAI7B,YAAY,CAAC,EAAE,iBAAiB,GAAG,qBAAqB,CAAC;IAEzD,uBAAuB,IAAI,IAAI,IAAI;QAAE,mBAAmB,EAAE,MAAM,CAAA;KAAE;IAIlE,kBAAkB,IAAI,IAAI,IAAI;QAAE,iBAAiB,EAAE,iBAAiB,GAAG,qBAAqB,CAAA;KAAE;WAIvF,IAAI,CAAC,KAAK,EAAE,4CAA4C,GAAG,wCAAwC;qBAIvF,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;CA2B1E"}
1
+ {"version":3,"file":"AcceptReadAttributeRequestItemParameters.d.ts","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8C,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC5H,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AAEpG,MAAM,WAAW,iEAAkE,SAAQ,+BAA+B;IACtH,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,4DAA6D,SAAQ,+BAA+B;IACjH,YAAY,EAAE,qBAAqB,GAAG,yBAAyB,CAAC;CACnE;AAED,MAAM,MAAM,4CAA4C,GAClD,iEAAiE,GACjE,4DAA4D,CAAC;AAEnE,qBACa,wCAAyC,SAAQ,YAAY;IAG/D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAI7B,YAAY,CAAC,EAAE,iBAAiB,GAAG,qBAAqB,CAAC;IAEzD,uBAAuB,IAAI,IAAI,IAAI;QAAE,mBAAmB,EAAE,MAAM,CAAA;KAAE;IAIlE,kBAAkB,IAAI,IAAI,IAAI;QAAE,YAAY,EAAE,iBAAiB,GAAG,qBAAqB,CAAA;KAAE;WAIlF,IAAI,CAAC,KAAK,EAAE,4CAA4C,GAAG,wCAAwC;qBAIvF,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;CA2B1E"}
@@ -1,5 +1,6 @@
1
- import { ReadAttributeAcceptResponseItem, ReadAttributeRequestItem, RejectResponseItem, Request } from "@nmshd/content";
1
+ import { AttributeAlreadySharedAcceptResponseItem, AttributeSuccessionAcceptResponseItem, ReadAttributeAcceptResponseItem, ReadAttributeRequestItem, RejectResponseItem, Request } from "@nmshd/content";
2
2
  import { CoreAddress } from "@nmshd/transport";
3
+ import { PeerSharedAttributeSucceededEvent } from "../../../attributes";
3
4
  import { ValidationResult } from "../../../common/ValidationResult";
4
5
  import { GenericRequestItemProcessor } from "../GenericRequestItemProcessor";
5
6
  import { LocalRequestInfo } from "../IRequestItemProcessor";
@@ -7,9 +8,11 @@ import { AcceptReadAttributeRequestItemParametersJSON } from "./AcceptReadAttrib
7
8
  export declare class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor<ReadAttributeRequestItem, AcceptReadAttributeRequestItemParametersJSON> {
8
9
  canCreateOutgoingRequestItem(requestItem: ReadAttributeRequestItem, _request: Request, recipient?: CoreAddress): ValidationResult;
9
10
  canAccept(_requestItem: ReadAttributeRequestItem, params: AcceptReadAttributeRequestItemParametersJSON, requestInfo: LocalRequestInfo): Promise<ValidationResult>;
10
- accept(_requestItem: ReadAttributeRequestItem, params: AcceptReadAttributeRequestItemParametersJSON, requestInfo: LocalRequestInfo): Promise<ReadAttributeAcceptResponseItem>;
11
- private copyExistingAttribute;
11
+ accept(_requestItem: ReadAttributeRequestItem, params: AcceptReadAttributeRequestItemParametersJSON, requestInfo: LocalRequestInfo): Promise<ReadAttributeAcceptResponseItem | AttributeSuccessionAcceptResponseItem | AttributeAlreadySharedAcceptResponseItem>;
12
+ private performOwnSharedIdentityAttributeSuccession;
13
+ private performOwnSharedThirdPartyRelationshipAttributeSuccession;
14
+ private performThirdPartyOwnedRelationshipAttributeSuccession;
12
15
  private createNewAttribute;
13
- applyIncomingResponseItem(responseItem: ReadAttributeAcceptResponseItem | RejectResponseItem, _requestItem: ReadAttributeRequestItem, requestInfo: LocalRequestInfo): Promise<void>;
16
+ applyIncomingResponseItem(responseItem: ReadAttributeAcceptResponseItem | AttributeSuccessionAcceptResponseItem | AttributeAlreadySharedAcceptResponseItem | RejectResponseItem, _requestItem: ReadAttributeRequestItem, requestInfo: LocalRequestInfo): Promise<PeerSharedAttributeSucceededEvent | void>;
14
17
  }
15
18
  //# sourceMappingURL=ReadAttributeRequestItemProcessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReadAttributeRequestItemProcessor.d.ts","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,+BAA+B,EAC/B,wBAAwB,EACxB,kBAAkB,EAElB,OAAO,EAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAA6C,MAAM,kBAAkB,CAAC;AAG1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAA4C,4CAA4C,EAAE,MAAM,4CAA4C,CAAC;AAEpJ,qBAAa,iCAAkC,SAAQ,2BAA2B,CAAC,wBAAwB,EAAE,4CAA4C,CAAC;IACtI,4BAA4B,CAAC,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,gBAAgB;IAS3H,SAAS,CAC3B,YAAY,EAAE,wBAAwB,EACtC,MAAM,EAAE,4CAA4C,EACpD,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAmBN,MAAM,CACxB,YAAY,EAAE,wBAAwB,EACtC,MAAM,EAAE,4CAA4C,EACpD,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,+BAA+B,CAAC;YAiB7B,qBAAqB;YAQrB,kBAAkB;IAoBV,yBAAyB,CAC3C,YAAY,EAAE,+BAA+B,GAAG,kBAAkB,EAClE,YAAY,EAAE,wBAAwB,EACtC,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,IAAI,CAAC;CAYnB"}
1
+ {"version":3,"file":"ReadAttributeRequestItemProcessor.d.ts","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wCAAwC,EACxC,qCAAqC,EAErC,+BAA+B,EAC/B,wBAAwB,EACxB,kBAAkB,EAElB,OAAO,EAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAA6C,MAAM,kBAAkB,CAAC;AAE1F,OAAO,EAAqD,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAE3H,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAA4C,4CAA4C,EAAE,MAAM,4CAA4C,CAAC;AAEpJ,qBAAa,iCAAkC,SAAQ,2BAA2B,CAAC,wBAAwB,EAAE,4CAA4C,CAAC;IACtI,4BAA4B,CAAC,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,gBAAgB;IAS3H,SAAS,CAC3B,YAAY,EAAE,wBAAwB,EACtC,MAAM,EAAE,4CAA4C,EACpD,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAqCN,MAAM,CACxB,YAAY,EAAE,wBAAwB,EACtC,MAAM,EAAE,4CAA4C,EACpD,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,+BAA+B,GAAG,qCAAqC,GAAG,wCAAwC,CAAC;YAsEhH,2CAA2C;YAa3C,yDAAyD;YAazD,qDAAqD;YAarD,kBAAkB;IAoBV,yBAAyB,CAC3C,YAAY,EAAE,+BAA+B,GAAG,qCAAqC,GAAG,wCAAwC,GAAG,kBAAkB,EACrJ,YAAY,EAAE,wBAAwB,EACtC,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,iCAAiC,GAAG,IAAI,CAAC;CAgCvD"}
@@ -7,6 +7,7 @@ exports.ReadAttributeRequestItemProcessor = void 0;
7
7
  const content_1 = require("@nmshd/content");
8
8
  const transport_1 = require("@nmshd/transport");
9
9
  const CoreErrors_1 = require("../../../../consumption/CoreErrors");
10
+ const attributes_1 = require("../../../attributes");
10
11
  const LocalAttribute_1 = require("../../../attributes/local/LocalAttribute");
11
12
  const ValidationResult_1 = require("../../../common/ValidationResult");
12
13
  const GenericRequestItemProcessor_1 = require("../GenericRequestItemProcessor");
@@ -24,12 +25,25 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
24
25
  const parsedParams = AcceptReadAttributeRequestItemParameters_1.AcceptReadAttributeRequestItemParameters.from(params);
25
26
  if (parsedParams.isWithExistingAttribute()) {
26
27
  const foundAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.existingAttributeId);
27
- if (!foundAttribute) {
28
+ if (typeof foundAttribute === "undefined") {
28
29
  return ValidationResult_1.ValidationResult.error(transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
29
30
  }
30
31
  const ownerIsCurrentIdentity = this.accountController.identity.isMe(foundAttribute.content.owner);
31
32
  if (!ownerIsCurrentIdentity && foundAttribute.content instanceof content_1.IdentityAttribute) {
32
- return ValidationResult_1.ValidationResult.error(CoreErrors_1.CoreErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
33
+ return ValidationResult_1.ValidationResult.error(CoreErrors_1.CoreErrors.requests.invalidAcceptParameters("The given Attribute belongs to someone else. You can only share own Attributes."));
34
+ }
35
+ const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.existingAttributeId, [requestInfo.peer], true);
36
+ if (latestSharedVersion.length > 0) {
37
+ if (typeof latestSharedVersion[0].shareInfo?.sourceAttribute === "undefined") {
38
+ throw new Error(`The Attribute ${latestSharedVersion[0].id} doesn't have a 'shareInfo.sourceAttribute', even though it was found as shared version of an Attribute.`);
39
+ }
40
+ const latestSharedVersionSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(latestSharedVersion[0].shareInfo.sourceAttribute);
41
+ if (typeof latestSharedVersionSourceAttribute === "undefined") {
42
+ throw new Error(`The Attribute ${latestSharedVersion[0].shareInfo.sourceAttribute} was not found.`);
43
+ }
44
+ if (await this.consumptionController.attributes.isSubsequentInSuccession(foundAttribute, latestSharedVersionSourceAttribute)) {
45
+ return ValidationResult_1.ValidationResult.error(CoreErrors_1.CoreErrors.requests.invalidAcceptParameters("You cannot share the predecessor of an already shared Attribute version."));
46
+ }
33
47
  }
34
48
  }
35
49
  return ValidationResult_1.ValidationResult.success();
@@ -38,23 +52,98 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
38
52
  const parsedParams = AcceptReadAttributeRequestItemParameters_1.AcceptReadAttributeRequestItemParameters.from(params);
39
53
  let sharedLocalAttribute;
40
54
  if (parsedParams.isWithExistingAttribute()) {
41
- sharedLocalAttribute = await this.copyExistingAttribute(parsedParams.existingAttributeId, requestInfo);
42
- }
43
- else {
44
- sharedLocalAttribute = await this.createNewAttribute(parsedParams.newAttribute, requestInfo);
55
+ const existingSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.existingAttributeId);
56
+ if (typeof existingSourceAttribute === "undefined") {
57
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, parsedParams.existingAttributeId.toString());
58
+ }
59
+ const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.existingAttributeId, [requestInfo.peer], true);
60
+ if (latestSharedVersion.length === 0) {
61
+ sharedLocalAttribute = await this.consumptionController.attributes.createSharedLocalAttributeCopy({
62
+ sourceAttributeId: transport_1.CoreId.from(existingSourceAttribute.id),
63
+ peer: transport_1.CoreAddress.from(requestInfo.peer),
64
+ requestReference: transport_1.CoreId.from(requestInfo.id)
65
+ });
66
+ return content_1.ReadAttributeAcceptResponseItem.from({
67
+ result: content_1.ResponseItemResult.Accepted,
68
+ attributeId: sharedLocalAttribute.id,
69
+ attribute: sharedLocalAttribute.content
70
+ });
71
+ }
72
+ const latestSharedAttribute = latestSharedVersion[0];
73
+ if (typeof latestSharedAttribute.shareInfo?.sourceAttribute === "undefined") {
74
+ throw new Error(`The Attribute ${latestSharedAttribute.id} doesn't have a 'shareInfo.sourceAttribute', even though it was found as shared version of an Attribute.`);
75
+ }
76
+ if (latestSharedAttribute.shareInfo.sourceAttribute.toString() === existingSourceAttribute.id.toString()) {
77
+ return content_1.AttributeAlreadySharedAcceptResponseItem.from({
78
+ result: content_1.ResponseItemResult.Accepted,
79
+ attributeId: latestSharedAttribute.id
80
+ });
81
+ }
82
+ const predecessorSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(latestSharedAttribute.shareInfo.sourceAttribute);
83
+ if (typeof predecessorSourceAttribute === "undefined") {
84
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, latestSharedAttribute.shareInfo.sourceAttribute.toString());
85
+ }
86
+ if (await this.consumptionController.attributes.isSubsequentInSuccession(predecessorSourceAttribute, existingSourceAttribute)) {
87
+ let successorSharedAttribute;
88
+ if (existingSourceAttribute.isRepositoryAttribute(this.currentIdentityAddress)) {
89
+ successorSharedAttribute = await this.performOwnSharedIdentityAttributeSuccession(latestSharedAttribute.id, existingSourceAttribute, requestInfo);
90
+ }
91
+ else if (existingSourceAttribute.isOwnedBy(this.accountController.identity.address)) {
92
+ successorSharedAttribute = await this.performOwnSharedThirdPartyRelationshipAttributeSuccession(latestSharedAttribute.id, existingSourceAttribute, requestInfo);
93
+ }
94
+ else {
95
+ successorSharedAttribute = await this.performThirdPartyOwnedRelationshipAttributeSuccession(latestSharedAttribute.id, existingSourceAttribute, requestInfo);
96
+ }
97
+ return content_1.AttributeSuccessionAcceptResponseItem.from({
98
+ result: content_1.ResponseItemResult.Accepted,
99
+ successorId: successorSharedAttribute.id,
100
+ successorContent: successorSharedAttribute.content,
101
+ predecessorId: latestSharedAttribute.id
102
+ });
103
+ }
45
104
  }
105
+ sharedLocalAttribute = await this.createNewAttribute(parsedParams.newAttribute, requestInfo);
46
106
  return content_1.ReadAttributeAcceptResponseItem.from({
47
107
  result: content_1.ResponseItemResult.Accepted,
48
108
  attributeId: sharedLocalAttribute.id,
49
109
  attribute: sharedLocalAttribute.content
50
110
  });
51
111
  }
52
- async copyExistingAttribute(attributeId, requestInfo) {
53
- return await this.consumptionController.attributes.createSharedLocalAttributeCopy({
54
- sourceAttributeId: transport_1.CoreId.from(attributeId),
55
- peer: transport_1.CoreAddress.from(requestInfo.peer),
56
- requestReference: transport_1.CoreId.from(requestInfo.id)
57
- });
112
+ async performOwnSharedIdentityAttributeSuccession(sharedPredecessorId, sourceSuccessor, requestInfo) {
113
+ const successorParams = {
114
+ content: sourceSuccessor.content,
115
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
116
+ peer: requestInfo.peer,
117
+ requestReference: requestInfo.id,
118
+ sourceAttribute: sourceSuccessor.id
119
+ })
120
+ };
121
+ const { successor } = await this.consumptionController.attributes.succeedOwnSharedIdentityAttribute(sharedPredecessorId, successorParams);
122
+ return successor;
123
+ }
124
+ async performOwnSharedThirdPartyRelationshipAttributeSuccession(sharedPredecessorId, sourceSuccessor, requestInfo) {
125
+ const successorParams = {
126
+ content: sourceSuccessor.content,
127
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
128
+ peer: requestInfo.peer,
129
+ requestReference: requestInfo.id,
130
+ sourceAttribute: sourceSuccessor.id
131
+ })
132
+ };
133
+ const { successor } = await this.consumptionController.attributes.succeedOwnSharedRelationshipAttribute(sharedPredecessorId, successorParams);
134
+ return successor;
135
+ }
136
+ async performThirdPartyOwnedRelationshipAttributeSuccession(sharedPredecessorId, sourceSuccessor, requestInfo) {
137
+ const successorParams = {
138
+ content: sourceSuccessor.content,
139
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
140
+ peer: requestInfo.peer,
141
+ requestReference: requestInfo.id,
142
+ sourceAttribute: sourceSuccessor.id
143
+ })
144
+ };
145
+ const { successor } = await this.consumptionController.attributes.succeedThirdPartyOwnedRelationshipAttribute(sharedPredecessorId, successorParams);
146
+ return successor;
58
147
  }
59
148
  async createNewAttribute(attribute, requestInfo) {
60
149
  if (attribute instanceof content_1.IdentityAttribute) {
@@ -74,15 +163,35 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
74
163
  });
75
164
  }
76
165
  async applyIncomingResponseItem(responseItem, _requestItem, requestInfo) {
77
- if (!(responseItem instanceof content_1.ReadAttributeAcceptResponseItem)) {
78
- return;
166
+ if (responseItem instanceof content_1.ReadAttributeAcceptResponseItem) {
167
+ await this.consumptionController.attributes.createPeerLocalAttribute({
168
+ id: responseItem.attributeId,
169
+ content: responseItem.attribute,
170
+ peer: requestInfo.peer,
171
+ requestReference: requestInfo.id
172
+ });
79
173
  }
80
- await this.consumptionController.attributes.createPeerLocalAttribute({
81
- id: responseItem.attributeId,
82
- content: responseItem.attribute,
83
- peer: requestInfo.peer,
84
- requestReference: requestInfo.id
85
- });
174
+ if (responseItem instanceof content_1.AttributeSuccessionAcceptResponseItem) {
175
+ const successorParams = attributes_1.AttributeSuccessorParams.from({
176
+ id: responseItem.successorId,
177
+ content: responseItem.successorContent,
178
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
179
+ peer: requestInfo.peer,
180
+ requestReference: requestInfo.id
181
+ })
182
+ });
183
+ if (responseItem.successorContent instanceof content_1.IdentityAttribute) {
184
+ const { predecessor, successor } = await this.consumptionController.attributes.succeedPeerSharedIdentityAttribute(responseItem.predecessorId, successorParams);
185
+ return new attributes_1.PeerSharedAttributeSucceededEvent(this.currentIdentityAddress.toString(), predecessor, successor);
186
+ }
187
+ else if (responseItem.successorContent.owner === requestInfo.peer) {
188
+ await this.consumptionController.attributes.succeedPeerSharedRelationshipAttribute(responseItem.predecessorId, successorParams);
189
+ }
190
+ else {
191
+ await this.consumptionController.attributes.succeedThirdPartyOwnedRelationshipAttribute(responseItem.predecessorId, successorParams);
192
+ }
193
+ }
194
+ return;
86
195
  }
87
196
  }
88
197
  exports.ReadAttributeRequestItemProcessor = ReadAttributeRequestItemProcessor;
@@ -1 +1 @@
1
- {"version":3,"file":"ReadAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReadAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nmshd/consumption",
3
- "version": "3.9.7",
3
+ "version": "3.11.0",
4
4
  "description": "The consumption library extends the transport library.",
5
5
  "homepage": "https://enmeshed.eu",
6
6
  "repository": {
@@ -13,22 +13,13 @@
13
13
  "main": "dist/index.js",
14
14
  "types": "dist/index.d.ts",
15
15
  "files": [
16
- "dist",
17
- "lib-web/nmshd.consumption.js",
18
- "lib-web/nmshd.consumption.min.js",
19
- "lib-web/nmshd.consumption.js.map",
20
- "lib-web/nmshd.consumption.min.js.map",
21
- "ui5.yaml"
16
+ "dist"
22
17
  ],
23
18
  "scripts": {
24
- "build": "npm run build:node && npm run bundle",
25
- "build:ci": "npm run build:node && ../../.ci/writeBuildInformation.sh && npm run bundle",
19
+ "build": "npm run build:node",
20
+ "build:ci": "npm run build:node && ../../.ci/writeBuildInformation.sh",
26
21
  "build:node": "tsc -p tsconfig.json && madge --circular dist",
27
- "build:notest": "npm run build:node && npm run bundle:notest",
28
- "bundle": "npm run bundle:lib && npm run bundle:min",
29
- "bundle:lib": "webpack --stats-all --config webpack.config.js",
30
- "bundle:min": "webpack --stats-all --config webpack.min.config.js",
31
- "bundle:notest": "npm run bundle:lib && npm run bundle:min",
22
+ "build:notest": "npm run build:node",
32
23
  "cdep": "tsc && madge --circular dist",
33
24
  "lint:tsc": "tsc --noEmit && tsc -p test/tsconfig.json --noEmit",
34
25
  "test:ci": "npm run test",
@@ -72,7 +63,7 @@
72
63
  "@js-soft/ts-utils": "2.3.3",
73
64
  "@js-soft/web-logger": "^1.0.4",
74
65
  "@nmshd/crypto": "2.0.6",
75
- "@types/lodash": "^4.17.0",
66
+ "@types/lodash": "^4.17.4",
76
67
  "@types/luxon": "^3.4.2",
77
68
  "leaked-handles": "^5.2.0"
78
69
  },