@nmshd/consumption 3.10.0 → 3.12.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 (86) hide show
  1. package/dist/buildInformation.js +4 -4
  2. package/dist/consumption/CoreErrors.d.ts +2 -0
  3. package/dist/consumption/CoreErrors.d.ts.map +1 -1
  4. package/dist/consumption/CoreErrors.js +7 -1
  5. package/dist/consumption/CoreErrors.js.map +1 -1
  6. package/dist/modules/attributes/AttributesController.d.ts +9 -3
  7. package/dist/modules/attributes/AttributesController.d.ts.map +1 -1
  8. package/dist/modules/attributes/AttributesController.js +137 -89
  9. package/dist/modules/attributes/AttributesController.js.map +1 -1
  10. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeSucceededEvent.d.ts +8 -0
  11. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeSucceededEvent.d.ts.map +1 -0
  12. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeSucceededEvent.js +12 -0
  13. package/dist/modules/attributes/events/ThirdPartyOwnedRelationshipAttributeSucceededEvent.js.map +1 -0
  14. package/dist/modules/attributes/events/index.d.ts +1 -0
  15. package/dist/modules/attributes/events/index.d.ts.map +1 -1
  16. package/dist/modules/attributes/events/index.js +1 -0
  17. package/dist/modules/attributes/events/index.js.map +1 -1
  18. package/dist/modules/attributes/local/LocalAttribute.d.ts.map +1 -1
  19. package/dist/modules/attributes/local/LocalAttribute.js +10 -10
  20. package/dist/modules/attributes/local/LocalAttribute.js.map +1 -1
  21. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.d.ts +2 -0
  22. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.d.ts.map +1 -1
  23. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.js +2 -0
  24. package/dist/modules/attributes/local/LocalAttributeDeletionInfo.js.map +1 -1
  25. package/dist/modules/attributes/local/LocalAttributeShareInfo.d.ts.map +1 -1
  26. package/dist/modules/attributes/local/LocalAttributeShareInfo.js +3 -4
  27. package/dist/modules/attributes/local/LocalAttributeShareInfo.js.map +1 -1
  28. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.d.ts.map +1 -1
  29. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.js +4 -5
  30. package/dist/modules/notifications/itemProcessors/attributeDeleted/OwnSharedAttributeDeletedByOwnerNotificationItemProcessor.js.map +1 -1
  31. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.d.ts.map +1 -1
  32. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.js +3 -4
  33. package/dist/modules/notifications/itemProcessors/attributeDeleted/PeerSharedAttributeDeletedByPeerNotificationItemProcessor.js.map +1 -1
  34. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.d.ts.map +1 -1
  35. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.js +3 -4
  36. package/dist/modules/notifications/itemProcessors/attributeDeleted/ThirdPartyOwnedRelationshipAttributeDeletedByPeerNotificationItemProcessor.js.map +1 -1
  37. package/dist/modules/notifications/itemProcessors/attributeSucceeded/PeerSharedAttributeSucceededNotificationItemProcessor.js +2 -2
  38. package/dist/modules/notifications/itemProcessors/attributeSucceeded/PeerSharedAttributeSucceededNotificationItemProcessor.js.map +1 -1
  39. package/dist/modules/notifications/local/LocalNotification.js +2 -2
  40. package/dist/modules/notifications/local/LocalNotification.js.map +1 -1
  41. package/dist/modules/requests/incoming/IncomingRequestsController.d.ts.map +1 -1
  42. package/dist/modules/requests/incoming/IncomingRequestsController.js +1 -1
  43. package/dist/modules/requests/incoming/IncomingRequestsController.js.map +1 -1
  44. package/dist/modules/requests/incoming/decide/DecideRequestItemGroupParameters.js +1 -1
  45. package/dist/modules/requests/incoming/decide/DecideRequestItemGroupParameters.js.map +1 -1
  46. package/dist/modules/requests/incoming/decide/DecideRequestItemParameters.js +1 -1
  47. package/dist/modules/requests/incoming/decide/DecideRequestItemParameters.js.map +1 -1
  48. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.d.ts +2 -1
  49. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.d.ts.map +1 -1
  50. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js.map +1 -1
  51. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.d.ts +2 -1
  52. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.d.ts.map +1 -1
  53. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js +0 -1
  54. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js.map +1 -1
  55. package/dist/modules/requests/itemProcessors/IRequestItemProcessor.d.ts +2 -1
  56. package/dist/modules/requests/itemProcessors/IRequestItemProcessor.d.ts.map +1 -1
  57. package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.d.ts.map +1 -1
  58. package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js +2 -4
  59. package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js.map +1 -1
  60. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.d.ts.map +1 -1
  61. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.js +27 -16
  62. package/dist/modules/requests/itemProcessors/deleteAttribute/DeleteAttributeRequestItemProcessor.js.map +1 -1
  63. package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js +2 -2
  64. package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js.map +1 -1
  65. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts +5 -4
  66. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts.map +1 -1
  67. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js +87 -21
  68. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -1
  69. package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.d.ts +1 -1
  70. package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.d.ts.map +1 -1
  71. package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js +2 -2
  72. package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js.map +1 -1
  73. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts +7 -4
  74. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts.map +1 -1
  75. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +126 -20
  76. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
  77. package/dist/modules/requests/outgoing/OutgoingRequestsController.d.ts +1 -0
  78. package/dist/modules/requests/outgoing/OutgoingRequestsController.d.ts.map +1 -1
  79. package/dist/modules/requests/outgoing/OutgoingRequestsController.js +31 -4
  80. package/dist/modules/requests/outgoing/OutgoingRequestsController.js.map +1 -1
  81. package/package.json +6 -15
  82. package/lib-web/nmshd.consumption.js +0 -36384
  83. package/lib-web/nmshd.consumption.js.map +0 -1
  84. package/lib-web/nmshd.consumption.min.js +0 -3
  85. package/lib-web/nmshd.consumption.min.js.map +0 -1
  86. package/ui5.yaml +0 -9
@@ -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,11 +45,22 @@ 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 (!foundAttribute)
49
50
  return ValidationResult_1.ValidationResult.error(transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
51
+ const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.attributeId, [requestInfo.peer], true);
52
+ if (latestSharedVersion.length > 0) {
53
+ if (!latestSharedVersion[0].shareInfo?.sourceAttribute) {
54
+ 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.`);
55
+ }
56
+ const latestSharedVersionSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(latestSharedVersion[0].shareInfo.sourceAttribute);
57
+ if (!latestSharedVersionSourceAttribute)
58
+ throw new Error(`The Attribute ${latestSharedVersion[0].shareInfo.sourceAttribute} was not found.`);
59
+ if (await this.consumptionController.attributes.isSubsequentInSuccession(foundAttribute, latestSharedVersionSourceAttribute)) {
60
+ return ValidationResult_1.ValidationResult.error(CoreErrors_1.CoreErrors.requests.invalidAcceptParameters("You cannot share the predecessor of an already shared Attribute version."));
61
+ }
50
62
  }
51
- attribute = localAttribute.content;
63
+ attribute = foundAttribute.content;
52
64
  }
53
65
  const ownerIsEmpty = attribute.owner.equals("");
54
66
  const ownerIsCurrentIdentity = attribute.owner.equals(this.currentIdentityAddress);
@@ -61,23 +73,65 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
61
73
  const parsedParams = AcceptProposeAttributeRequestItemParameters_1.AcceptProposeAttributeRequestItemParameters.from(params);
62
74
  let sharedLocalAttribute;
63
75
  if (parsedParams.isWithExistingAttribute()) {
64
- sharedLocalAttribute = await this.copyExistingAttribute(parsedParams.attributeId, requestInfo);
65
- }
66
- else {
67
- sharedLocalAttribute = await this.createNewAttribute(parsedParams.attribute, requestInfo);
76
+ const existingSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.attributeId);
77
+ if (!existingSourceAttribute)
78
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, parsedParams.attributeId.toString());
79
+ const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.attributeId, [requestInfo.peer], true);
80
+ if (latestSharedVersion.length === 0) {
81
+ sharedLocalAttribute = await this.consumptionController.attributes.createSharedLocalAttributeCopy({
82
+ sourceAttributeId: transport_1.CoreId.from(existingSourceAttribute.id),
83
+ peer: transport_1.CoreAddress.from(requestInfo.peer),
84
+ requestReference: transport_1.CoreId.from(requestInfo.id)
85
+ });
86
+ return content_1.ProposeAttributeAcceptResponseItem.from({
87
+ result: content_1.ResponseItemResult.Accepted,
88
+ attributeId: sharedLocalAttribute.id,
89
+ attribute: sharedLocalAttribute.content
90
+ });
91
+ }
92
+ const latestSharedAttribute = latestSharedVersion[0];
93
+ if (!latestSharedAttribute.shareInfo?.sourceAttribute) {
94
+ throw new Error(`The Attribute ${latestSharedAttribute.id} doesn't have a 'shareInfo.sourceAttribute', even though it was found as shared version of an Attribute.`);
95
+ }
96
+ if (latestSharedAttribute.shareInfo.sourceAttribute.toString() === existingSourceAttribute.id.toString()) {
97
+ return content_1.AttributeAlreadySharedAcceptResponseItem.from({
98
+ result: content_1.ResponseItemResult.Accepted,
99
+ attributeId: latestSharedAttribute.id
100
+ });
101
+ }
102
+ const predecessorSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(latestSharedAttribute.shareInfo.sourceAttribute);
103
+ if (!predecessorSourceAttribute)
104
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, latestSharedAttribute.shareInfo.sourceAttribute.toString());
105
+ if (await this.consumptionController.attributes.isSubsequentInSuccession(predecessorSourceAttribute, existingSourceAttribute)) {
106
+ if (existingSourceAttribute.isRepositoryAttribute(this.currentIdentityAddress)) {
107
+ const successorSharedAttribute = await this.performOwnSharedIdentityAttributeSuccession(latestSharedAttribute.id, existingSourceAttribute, requestInfo);
108
+ return content_1.AttributeSuccessionAcceptResponseItem.from({
109
+ result: content_1.ResponseItemResult.Accepted,
110
+ successorId: successorSharedAttribute.id,
111
+ successorContent: successorSharedAttribute.content,
112
+ predecessorId: latestSharedAttribute.id
113
+ });
114
+ }
115
+ }
68
116
  }
117
+ sharedLocalAttribute = await this.createNewAttribute(parsedParams.attribute, requestInfo);
69
118
  return content_1.ProposeAttributeAcceptResponseItem.from({
70
119
  result: content_1.ResponseItemResult.Accepted,
71
120
  attributeId: sharedLocalAttribute.id,
72
121
  attribute: sharedLocalAttribute.content
73
122
  });
74
123
  }
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
- });
124
+ async performOwnSharedIdentityAttributeSuccession(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.succeedOwnSharedIdentityAttribute(sharedPredecessorId, successorParams);
134
+ return successor;
81
135
  }
82
136
  async createNewAttribute(attribute, requestInfo) {
83
137
  if (attribute instanceof content_1.IdentityAttribute) {
@@ -97,15 +151,27 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
97
151
  });
98
152
  }
99
153
  async applyIncomingResponseItem(responseItem, _requestItem, requestInfo) {
100
- if (!(responseItem instanceof content_1.ProposeAttributeAcceptResponseItem)) {
101
- return;
154
+ if (responseItem instanceof content_1.ProposeAttributeAcceptResponseItem) {
155
+ await this.consumptionController.attributes.createPeerLocalAttribute({
156
+ id: responseItem.attributeId,
157
+ content: responseItem.attribute,
158
+ peer: requestInfo.peer,
159
+ requestReference: requestInfo.id
160
+ });
102
161
  }
103
- await this.consumptionController.attributes.createPeerLocalAttribute({
104
- id: responseItem.attributeId,
105
- content: responseItem.attribute,
106
- peer: requestInfo.peer,
107
- requestReference: requestInfo.id
108
- });
162
+ if (responseItem instanceof content_1.AttributeSuccessionAcceptResponseItem && responseItem.successorContent instanceof content_1.IdentityAttribute) {
163
+ const successorParams = attributes_1.AttributeSuccessorParams.from({
164
+ id: responseItem.successorId,
165
+ content: responseItem.successorContent,
166
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
167
+ peer: requestInfo.peer,
168
+ requestReference: requestInfo.id
169
+ })
170
+ });
171
+ const { predecessor, successor } = await this.consumptionController.attributes.succeedPeerSharedIdentityAttribute(responseItem.predecessorId, successorParams);
172
+ return new attributes_1.PeerSharedAttributeSucceededEvent(this.currentIdentityAddress.toString(), predecessor, successor);
173
+ }
174
+ return;
109
175
  }
110
176
  }
111
177
  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"}
@@ -18,10 +18,10 @@ const ts_simple_nameof_1 = require("ts-simple-nameof");
18
18
  const ConsumptionError_1 = require("../../../../consumption/ConsumptionError");
19
19
  let AcceptReadAttributeRequestItemParameters = AcceptReadAttributeRequestItemParameters_1 = class AcceptReadAttributeRequestItemParameters extends ts_serval_1.Serializable {
20
20
  isWithExistingAttribute() {
21
- return typeof this.existingAttributeId !== "undefined";
21
+ return !!this.existingAttributeId;
22
22
  }
23
23
  isWithNewAttribute() {
24
- return typeof this.newAttribute !== "undefined";
24
+ return !!this.newAttribute;
25
25
  }
26
26
  static from(value) {
27
27
  return this.fromAny(value);
@@ -1 +1 @@
1
- {"version":3,"file":"AcceptReadAttributeRequestItemParameters.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,kDAA8F;AAC9F,4CAA4H;AAC5H,gDAA0C;AAC1C,uDAA0C;AAC1C,+EAA4E;AAgBrE,IAAM,wCAAwC,gDAA9C,MAAM,wCAAyC,SAAQ,wBAAY;IAS/D,uBAAuB;QAC1B,OAAO,OAAO,IAAI,CAAC,mBAAmB,KAAK,WAAW,CAAC;IAC3D,CAAC;IAEM,kBAAkB;QACrB,OAAO,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,KAAmD;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,MAAM,CAAU,QAAQ,CAAyB,KAAQ;QAC/D,IAAI,CAAC,CAAC,KAAK,YAAY,0CAAwC,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,mCAAgB,CAAC,0BAA0B,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAClD,MAAM,IAAI,2BAAe,CACrB,0CAAwC,CAAC,IAAI,EAC7C,IAAA,yBAAM,EAA2C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EACvE,2BAA2B,IAAA,yBAAM,EAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CACxB,QAAQ,IAAA,yBAAM,EAA2C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAC7F,CAAC;QACN,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACpD,MAAM,IAAI,2BAAe,CACrB,0CAAwC,CAAC,IAAI,EAC7C,IAAA,yBAAM,EAA2C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EACvE,8BAA8B,IAAA,yBAAM,EAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CACxB,OAAO,IAAA,yBAAM,EAA2C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAC5F,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAA;AAhDY,4FAAwC;AAG1C;IAFN,IAAA,qBAAS,GAAE;IACX,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACA,kBAAM;qFAAC;AAI7B;IAFN,IAAA,qBAAS,EAAC,EAAE,UAAU,EAAE,CAAC,2BAAiB,EAAE,+BAAqB,CAAC,EAAE,CAAC;IACrE,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8EACmC;mDAPvD,wCAAwC;IADpD,IAAA,gBAAI,EAAC,0CAA0C,CAAC;GACpC,wCAAwC,CAgDpD"}
1
+ {"version":3,"file":"AcceptReadAttributeRequestItemParameters.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,kDAA8F;AAC9F,4CAA4H;AAC5H,gDAA0C;AAC1C,uDAA0C;AAC1C,+EAA4E;AAgBrE,IAAM,wCAAwC,gDAA9C,MAAM,wCAAyC,SAAQ,wBAAY;IAS/D,uBAAuB;QAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACtC,CAAC;IAEM,kBAAkB;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,KAAmD;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,MAAM,CAAU,QAAQ,CAAyB,KAAQ;QAC/D,IAAI,CAAC,CAAC,KAAK,YAAY,0CAAwC,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,mCAAgB,CAAC,0BAA0B,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAClD,MAAM,IAAI,2BAAe,CACrB,0CAAwC,CAAC,IAAI,EAC7C,IAAA,yBAAM,EAA2C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EACvE,2BAA2B,IAAA,yBAAM,EAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CACxB,QAAQ,IAAA,yBAAM,EAA2C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAC7F,CAAC;QACN,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACpD,MAAM,IAAI,2BAAe,CACrB,0CAAwC,CAAC,IAAI,EAC7C,IAAA,yBAAM,EAA2C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EACvE,8BAA8B,IAAA,yBAAM,EAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CACxB,OAAO,IAAA,yBAAM,EAA2C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAC5F,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAA;AAhDY,4FAAwC;AAG1C;IAFN,IAAA,qBAAS,GAAE;IACX,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACA,kBAAM;qFAAC;AAI7B;IAFN,IAAA,qBAAS,EAAC,EAAE,UAAU,EAAE,CAAC,2BAAiB,EAAE,+BAAqB,CAAC,EAAE,CAAC;IACrE,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8EACmC;mDAPvD,wCAAwC;IADpD,IAAA,gBAAI,EAAC,0CAA0C,CAAC;GACpC,wCAAwC,CAgDpD"}
@@ -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;IAgCN,MAAM,CACxB,YAAY,EAAE,wBAAwB,EACtC,MAAM,EAAE,4CAA4C,EACpD,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,+BAA+B,GAAG,qCAAqC,GAAG,wCAAwC,CAAC;YAoEhH,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,13 +25,24 @@ 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 (!foundAttribute)
28
29
  return ValidationResult_1.ValidationResult.error(transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
29
- }
30
30
  const ownerIsCurrentIdentity = this.accountController.identity.isMe(foundAttribute.content.owner);
31
31
  if (!ownerIsCurrentIdentity && foundAttribute.content instanceof content_1.IdentityAttribute) {
32
32
  return ValidationResult_1.ValidationResult.error(CoreErrors_1.CoreErrors.requests.invalidAcceptParameters("The given Attribute belongs to someone else. You can only share own Attributes."));
33
33
  }
34
+ const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.existingAttributeId, [requestInfo.peer], true);
35
+ if (latestSharedVersion.length > 0) {
36
+ if (!latestSharedVersion[0].shareInfo?.sourceAttribute) {
37
+ 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.`);
38
+ }
39
+ const latestSharedVersionSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(latestSharedVersion[0].shareInfo.sourceAttribute);
40
+ if (!latestSharedVersionSourceAttribute)
41
+ throw new Error(`The Attribute ${latestSharedVersion[0].shareInfo.sourceAttribute} was not found.`);
42
+ if (await this.consumptionController.attributes.isSubsequentInSuccession(foundAttribute, latestSharedVersionSourceAttribute)) {
43
+ return ValidationResult_1.ValidationResult.error(CoreErrors_1.CoreErrors.requests.invalidAcceptParameters("You cannot share the predecessor of an already shared Attribute version."));
44
+ }
45
+ }
34
46
  }
35
47
  return ValidationResult_1.ValidationResult.success();
36
48
  }
@@ -38,23 +50,97 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
38
50
  const parsedParams = AcceptReadAttributeRequestItemParameters_1.AcceptReadAttributeRequestItemParameters.from(params);
39
51
  let sharedLocalAttribute;
40
52
  if (parsedParams.isWithExistingAttribute()) {
41
- sharedLocalAttribute = await this.copyExistingAttribute(parsedParams.existingAttributeId, requestInfo);
42
- }
43
- else {
44
- sharedLocalAttribute = await this.createNewAttribute(parsedParams.newAttribute, requestInfo);
53
+ const existingSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.existingAttributeId);
54
+ if (!existingSourceAttribute) {
55
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, parsedParams.existingAttributeId.toString());
56
+ }
57
+ const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.existingAttributeId, [requestInfo.peer], true);
58
+ if (latestSharedVersion.length === 0) {
59
+ sharedLocalAttribute = await this.consumptionController.attributes.createSharedLocalAttributeCopy({
60
+ sourceAttributeId: transport_1.CoreId.from(existingSourceAttribute.id),
61
+ peer: transport_1.CoreAddress.from(requestInfo.peer),
62
+ requestReference: transport_1.CoreId.from(requestInfo.id)
63
+ });
64
+ return content_1.ReadAttributeAcceptResponseItem.from({
65
+ result: content_1.ResponseItemResult.Accepted,
66
+ attributeId: sharedLocalAttribute.id,
67
+ attribute: sharedLocalAttribute.content
68
+ });
69
+ }
70
+ const latestSharedAttribute = latestSharedVersion[0];
71
+ if (!latestSharedAttribute.shareInfo?.sourceAttribute) {
72
+ throw new Error(`The Attribute ${latestSharedAttribute.id} doesn't have a 'shareInfo.sourceAttribute', even though it was found as shared version of an Attribute.`);
73
+ }
74
+ if (latestSharedAttribute.shareInfo.sourceAttribute.toString() === existingSourceAttribute.id.toString()) {
75
+ return content_1.AttributeAlreadySharedAcceptResponseItem.from({
76
+ result: content_1.ResponseItemResult.Accepted,
77
+ attributeId: latestSharedAttribute.id
78
+ });
79
+ }
80
+ const predecessorSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(latestSharedAttribute.shareInfo.sourceAttribute);
81
+ if (!predecessorSourceAttribute)
82
+ throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, latestSharedAttribute.shareInfo.sourceAttribute.toString());
83
+ if (await this.consumptionController.attributes.isSubsequentInSuccession(predecessorSourceAttribute, existingSourceAttribute)) {
84
+ let successorSharedAttribute;
85
+ if (existingSourceAttribute.isRepositoryAttribute(this.currentIdentityAddress)) {
86
+ successorSharedAttribute = await this.performOwnSharedIdentityAttributeSuccession(latestSharedAttribute.id, existingSourceAttribute, requestInfo);
87
+ }
88
+ else if (existingSourceAttribute.isOwnedBy(this.accountController.identity.address)) {
89
+ successorSharedAttribute = await this.performOwnSharedThirdPartyRelationshipAttributeSuccession(latestSharedAttribute.id, existingSourceAttribute, requestInfo);
90
+ }
91
+ else {
92
+ successorSharedAttribute = await this.performThirdPartyOwnedRelationshipAttributeSuccession(latestSharedAttribute.id, existingSourceAttribute, requestInfo);
93
+ }
94
+ return content_1.AttributeSuccessionAcceptResponseItem.from({
95
+ result: content_1.ResponseItemResult.Accepted,
96
+ successorId: successorSharedAttribute.id,
97
+ successorContent: successorSharedAttribute.content,
98
+ predecessorId: latestSharedAttribute.id
99
+ });
100
+ }
45
101
  }
102
+ sharedLocalAttribute = await this.createNewAttribute(parsedParams.newAttribute, requestInfo);
46
103
  return content_1.ReadAttributeAcceptResponseItem.from({
47
104
  result: content_1.ResponseItemResult.Accepted,
48
105
  attributeId: sharedLocalAttribute.id,
49
106
  attribute: sharedLocalAttribute.content
50
107
  });
51
108
  }
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
- });
109
+ async performOwnSharedIdentityAttributeSuccession(sharedPredecessorId, sourceSuccessor, requestInfo) {
110
+ const successorParams = {
111
+ content: sourceSuccessor.content,
112
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
113
+ peer: requestInfo.peer,
114
+ requestReference: requestInfo.id,
115
+ sourceAttribute: sourceSuccessor.id
116
+ })
117
+ };
118
+ const { successor } = await this.consumptionController.attributes.succeedOwnSharedIdentityAttribute(sharedPredecessorId, successorParams);
119
+ return successor;
120
+ }
121
+ async performOwnSharedThirdPartyRelationshipAttributeSuccession(sharedPredecessorId, sourceSuccessor, requestInfo) {
122
+ const successorParams = {
123
+ content: sourceSuccessor.content,
124
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
125
+ peer: requestInfo.peer,
126
+ requestReference: requestInfo.id,
127
+ sourceAttribute: sourceSuccessor.id
128
+ })
129
+ };
130
+ const { successor } = await this.consumptionController.attributes.succeedOwnSharedRelationshipAttribute(sharedPredecessorId, successorParams);
131
+ return successor;
132
+ }
133
+ async performThirdPartyOwnedRelationshipAttributeSuccession(sharedPredecessorId, sourceSuccessor, requestInfo) {
134
+ const successorParams = {
135
+ content: sourceSuccessor.content,
136
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
137
+ peer: requestInfo.peer,
138
+ requestReference: requestInfo.id,
139
+ sourceAttribute: sourceSuccessor.id
140
+ })
141
+ };
142
+ const { successor } = await this.consumptionController.attributes.succeedThirdPartyOwnedRelationshipAttribute(sharedPredecessorId, successorParams);
143
+ return successor;
58
144
  }
59
145
  async createNewAttribute(attribute, requestInfo) {
60
146
  if (attribute instanceof content_1.IdentityAttribute) {
@@ -74,15 +160,35 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
74
160
  });
75
161
  }
76
162
  async applyIncomingResponseItem(responseItem, _requestItem, requestInfo) {
77
- if (!(responseItem instanceof content_1.ReadAttributeAcceptResponseItem)) {
78
- return;
163
+ if (responseItem instanceof content_1.ReadAttributeAcceptResponseItem) {
164
+ await this.consumptionController.attributes.createPeerLocalAttribute({
165
+ id: responseItem.attributeId,
166
+ content: responseItem.attribute,
167
+ peer: requestInfo.peer,
168
+ requestReference: requestInfo.id
169
+ });
79
170
  }
80
- await this.consumptionController.attributes.createPeerLocalAttribute({
81
- id: responseItem.attributeId,
82
- content: responseItem.attribute,
83
- peer: requestInfo.peer,
84
- requestReference: requestInfo.id
85
- });
171
+ if (responseItem instanceof content_1.AttributeSuccessionAcceptResponseItem) {
172
+ const successorParams = attributes_1.AttributeSuccessorParams.from({
173
+ id: responseItem.successorId,
174
+ content: responseItem.successorContent,
175
+ shareInfo: attributes_1.LocalAttributeShareInfo.from({
176
+ peer: requestInfo.peer,
177
+ requestReference: requestInfo.id
178
+ })
179
+ });
180
+ if (responseItem.successorContent instanceof content_1.IdentityAttribute) {
181
+ const { predecessor, successor } = await this.consumptionController.attributes.succeedPeerSharedIdentityAttribute(responseItem.predecessorId, successorParams);
182
+ return new attributes_1.PeerSharedAttributeSucceededEvent(this.currentIdentityAddress.toString(), predecessor, successor);
183
+ }
184
+ else if (responseItem.successorContent.owner === requestInfo.peer) {
185
+ await this.consumptionController.attributes.succeedPeerSharedRelationshipAttribute(responseItem.predecessorId, successorParams);
186
+ }
187
+ else {
188
+ await this.consumptionController.attributes.succeedThirdPartyOwnedRelationshipAttribute(responseItem.predecessorId, successorParams);
189
+ }
190
+ }
191
+ return;
86
192
  }
87
193
  }
88
194
  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":";;;;;;AAAA,4CAUwB;AACxB,gDAA0F;AAC1F,mEAAgE;AAChE,oDAA2H;AAC3H,6EAA0E;AAC1E,uEAAoE;AACpE,gFAA6E;AAE7E,6EAAqD;AACrD,yGAAoJ;AAEpJ,MAAa,iCAAkC,SAAQ,yDAAmG;IACtI,4BAA4B,CAAC,WAAqC,EAAE,QAAiB,EAAE,SAAuB;QAC1H,MAAM,qBAAqB,GAAG,IAAA,uBAAa,EAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;QACvG,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC;YAClC,OAAO,qBAAqB,CAAC;QACjC,CAAC;QAED,OAAO,mCAAgB,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEe,KAAK,CAAC,SAAS,CAC3B,YAAsC,EACtC,MAAoD,EACpD,WAA6B;QAE7B,MAAM,YAAY,GAAG,mFAAwC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3E,IAAI,YAAY,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACzC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;YACvH,IAAI,CAAC,cAAc;gBAAE,OAAO,mCAAgB,CAAC,KAAK,CAAC,sBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,+BAAc,EAAE,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAE1I,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClG,IAAI,CAAC,sBAAsB,IAAI,cAAc,CAAC,OAAO,YAAY,2BAAiB,EAAE,CAAC;gBACjF,OAAO,mCAAgB,CAAC,KAAK,CAAC,uBAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,iFAAiF,CAAC,CAAC,CAAC;YAClK,CAAC;YAED,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,4BAA4B,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACjK,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC;oBACrD,MAAM,IAAI,KAAK,CACX,iBAAiB,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,0GAA0G,CACvJ,CAAC;gBACN,CAAC;gBAED,MAAM,kCAAkC,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;gBAC3J,IAAI,CAAC,kCAAkC;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,iBAAiB,CAAC,CAAC;gBAE7I,IAAI,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,wBAAwB,CAAC,cAAc,EAAE,kCAAkC,CAAC,EAAE,CAAC;oBAC3H,OAAO,mCAAgB,CAAC,KAAK,CAAC,uBAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,0EAA0E,CAAC,CAAC,CAAC;gBAC3J,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,mCAAgB,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEe,KAAK,CAAC,MAAM,CACxB,YAAsC,EACtC,MAAoD,EACpD,WAA6B;QAE7B,MAAM,YAAY,GAAG,mFAAwC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3E,IAAI,oBAAoC,CAAC;QACzC,IAAI,YAAY,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACzC,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;YAChI,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC3B,MAAM,sBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,+BAAc,EAAE,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClH,CAAC;YAED,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,4BAA4B,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YAEjK,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,8BAA8B,CAAC;oBAC9F,iBAAiB,EAAE,kBAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;oBAC1D,IAAI,EAAE,uBAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;oBACxC,gBAAgB,EAAE,kBAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;iBAChD,CAAC,CAAC;gBACH,OAAO,yCAA+B,CAAC,IAAI,CAAC;oBACxC,MAAM,EAAE,4BAAkB,CAAC,QAAQ;oBACnC,WAAW,EAAE,oBAAoB,CAAC,EAAE;oBACpC,SAAS,EAAE,oBAAoB,CAAC,OAAO;iBAC1C,CAAC,CAAC;YACP,CAAC;YAED,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CACX,iBAAiB,qBAAqB,CAAC,EAAE,0GAA0G,CACtJ,CAAC;YACN,CAAC;YAED,IAAI,qBAAqB,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,uBAAuB,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACvG,OAAO,kDAAwC,CAAC,IAAI,CAAC;oBACjD,MAAM,EAAE,4BAAkB,CAAC,QAAQ;oBACnC,WAAW,EAAE,qBAAqB,CAAC,EAAE;iBACxC,CAAC,CAAC;YACP,CAAC;YAED,MAAM,0BAA0B,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAClJ,IAAI,CAAC,0BAA0B;gBAAE,MAAM,sBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,+BAAc,EAAE,qBAAqB,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE9J,IAAI,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,wBAAwB,CAAC,0BAA0B,EAAE,uBAAuB,CAAC,EAAE,CAAC;gBAC5H,IAAI,wBAAwC,CAAC;gBAC7C,IAAI,uBAAuB,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;oBAC7E,wBAAwB,GAAG,MAAM,IAAI,CAAC,2CAA2C,CAAC,qBAAqB,CAAC,EAAE,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;gBACtJ,CAAC;qBAAM,IAAI,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpF,wBAAwB,GAAG,MAAM,IAAI,CAAC,yDAAyD,CAAC,qBAAqB,CAAC,EAAE,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;gBACpK,CAAC;qBAAM,CAAC;oBACJ,wBAAwB,GAAG,MAAM,IAAI,CAAC,qDAAqD,CAAC,qBAAqB,CAAC,EAAE,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;gBAChK,CAAC;gBAED,OAAO,+CAAqC,CAAC,IAAI,CAAC;oBAC9C,MAAM,EAAE,4BAAkB,CAAC,QAAQ;oBACnC,WAAW,EAAE,wBAAwB,CAAC,EAAE;oBACxC,gBAAgB,EAAE,wBAAwB,CAAC,OAAO;oBAClD,aAAa,EAAE,qBAAqB,CAAC,EAAE;iBAC1C,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,oBAAoB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,YAAa,EAAE,WAAW,CAAC,CAAC;QAC9F,OAAO,yCAA+B,CAAC,IAAI,CAAC;YACxC,MAAM,EAAE,4BAAkB,CAAC,QAAQ;YACnC,WAAW,EAAE,oBAAoB,CAAC,EAAE;YACpC,SAAS,EAAE,oBAAoB,CAAC,OAAO;SAC1C,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,2CAA2C,CAAC,mBAA2B,EAAE,eAA+B,EAAE,WAA6B;QACjJ,MAAM,eAAe,GAAG;YACpB,OAAO,EAAE,eAAe,CAAC,OAAO;YAChC,SAAS,EAAE,oCAAuB,CAAC,IAAI,CAAC;gBACpC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,gBAAgB,EAAE,WAAW,CAAC,EAAE;gBAChC,eAAe,EAAE,eAAe,CAAC,EAAE;aACtC,CAAC;SACL,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,iCAAiC,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;QAC1I,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,yDAAyD,CAAC,mBAA2B,EAAE,eAA+B,EAAE,WAA6B;QAC/J,MAAM,eAAe,GAAG;YACpB,OAAO,EAAE,eAAe,CAAC,OAAO;YAChC,SAAS,EAAE,oCAAuB,CAAC,IAAI,CAAC;gBACpC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,gBAAgB,EAAE,WAAW,CAAC,EAAE;gBAChC,eAAe,EAAE,eAAe,CAAC,EAAE;aACtC,CAAC;SACL,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,qCAAqC,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;QAC9I,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,qDAAqD,CAAC,mBAA2B,EAAE,eAA+B,EAAE,WAA6B;QAC3J,MAAM,eAAe,GAAG;YACpB,OAAO,EAAE,eAAe,CAAC,OAAO;YAChC,SAAS,EAAE,oCAAuB,CAAC,IAAI,CAAC;gBACpC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,gBAAgB,EAAE,WAAW,CAAC,EAAE;gBAChC,eAAe,EAAE,eAAe,CAAC,EAAE;aACtC,CAAC;SACL,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,2CAA2C,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;QACpJ,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,SAAoD,EAAE,WAA6B;QAChH,IAAI,SAAS,YAAY,2BAAiB,EAAE,CAAC;YACzC,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,oBAAoB,CAAC;gBAC9F,OAAO,EAAE,SAAS;aACrB,CAAC,CAAC;YAEH,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,8BAA8B,CAAC;gBAC9E,iBAAiB,EAAE,kBAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBAC3D,IAAI,EAAE,uBAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACxC,gBAAgB,EAAE,kBAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;aAChD,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACxE,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,gBAAgB,EAAE,kBAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;IACP,CAAC;IAEe,KAAK,CAAC,yBAAyB,CAC3C,YAAqJ,EACrJ,YAAsC,EACtC,WAA6B;QAE7B,IAAI,YAAY,YAAY,yCAA+B,EAAE,CAAC;YAC1D,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,wBAAwB,CAAC;gBACjE,EAAE,EAAE,YAAY,CAAC,WAAW;gBAC5B,OAAO,EAAE,YAAY,CAAC,SAAS;gBAC/B,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,gBAAgB,EAAE,WAAW,CAAC,EAAE;aACnC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,YAAY,YAAY,+CAAqC,EAAE,CAAC;YAChE,MAAM,eAAe,GAAG,qCAAwB,CAAC,IAAI,CAAC;gBAClD,EAAE,EAAE,YAAY,CAAC,WAAW;gBAC5B,OAAO,EAAE,YAAY,CAAC,gBAAgB;gBACtC,SAAS,EAAE,oCAAuB,CAAC,IAAI,CAAC;oBACpC,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,gBAAgB,EAAE,WAAW,CAAC,EAAE;iBACnC,CAAC;aACL,CAAC,CAAC;YAEH,IAAI,YAAY,CAAC,gBAAgB,YAAY,2BAAiB,EAAE,CAAC;gBAC7D,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,kCAAkC,CAAC,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;gBAC/J,OAAO,IAAI,8CAAiC,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YACjH,CAAC;iBAAM,IAAI,YAAY,CAAC,gBAAgB,CAAC,KAAK,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;gBAClE,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,sCAAsC,CAAC,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YACpI,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,2CAA2C,CAAC,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YACzI,CAAC;QACL,CAAC;QAED,OAAO;IACX,CAAC;CACJ;AArND,8EAqNC"}
@@ -30,6 +30,7 @@ export declare class OutgoingRequestsController extends ConsumptionBaseControlle
30
30
  createAndCompleteFromRelationshipTemplateResponse(params: ICreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseParameters): Promise<LocalRequest>;
31
31
  sent(params: ISentOutgoingRequestParameters): Promise<LocalRequest>;
32
32
  private _sent;
33
+ private _setDeletionInfo;
33
34
  private getSourceType;
34
35
  complete(params: ICompleteOutgoingRequestParameters): Promise<LocalRequest>;
35
36
  private _complete;
@@ -1 +1 @@
1
- {"version":3,"file":"OutgoingRequestsController.d.ts","sourceRoot":"","sources":["../../../../src/modules/requests/outgoing/OutgoingRequestsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EACH,WAAW,EAEX,MAAM,EACN,YAAY,EACZ,OAAO,EAEP,YAAY,EAGZ,sBAAsB,EAEzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAInF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAsB,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAAqC,kCAAkC,EAAE,MAAM,6DAA6D,CAAC;AACpJ,OAAO,EAEH,2EAA2E,EAC9E,MAAM,gIAAgI,CAAC;AACxI,OAAO,EAAsC,mCAAmC,EAAE,MAAM,4DAA4D,CAAC;AACrJ,OAAO,EAAmC,gCAAgC,EAAE,MAAM,yDAAyD,CAAC;AAC5I,OAAO,EAAE,8BAA8B,EAAiC,MAAM,qDAAqD,CAAC;AAEpI,qBAAa,0BAA2B,SAAQ,yBAAyB;IAEjE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBALpB,aAAa,EAAE,sBAAsB,EACrC,iBAAiB,EAAE,4BAA4B,EAChE,MAAM,EAAE,qBAAqB,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,EAClC,oBAAoB,EAAE;QACnC,+BAA+B,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;KACxF;IAKQ,SAAS,CAAC,MAAM,EAAE,mCAAmC,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAUhF,cAAc;YAgBd,aAAa;YAKb,kBAAkB;IAanB,MAAM,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,YAAY,CAAC;YAYtE,OAAO;IAqBR,iDAAiD,CAAC,MAAM,EAAE,2EAA2E,GAAG,OAAO,CAAC,YAAY,CAAC;IAgC7J,IAAI,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,YAAY,CAAC;YAelE,KAAK;IAgBnB,OAAO,CAAC,aAAa;IAkBR,QAAQ,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,YAAY,CAAC;YAe1E,SAAS;YA0CT,WAAW;YA+BX,UAAU;YAaV,SAAS;IAKV,mBAAmB,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAUzD,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;YAQjE,UAAU;YAQV,MAAM;IAQpB,OAAO,CAAC,mBAAmB;YAMb,mBAAmB;CAKpC"}
1
+ {"version":3,"file":"OutgoingRequestsController.d.ts","sourceRoot":"","sources":["../../../../src/modules/requests/outgoing/OutgoingRequestsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EACH,WAAW,EAEX,MAAM,EACN,YAAY,EACZ,OAAO,EAEP,YAAY,EAGZ,sBAAsB,EAEzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAKnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAsB,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAAqC,kCAAkC,EAAE,MAAM,6DAA6D,CAAC;AACpJ,OAAO,EAEH,2EAA2E,EAC9E,MAAM,gIAAgI,CAAC;AACxI,OAAO,EAAsC,mCAAmC,EAAE,MAAM,4DAA4D,CAAC;AACrJ,OAAO,EAAmC,gCAAgC,EAAE,MAAM,yDAAyD,CAAC;AAC5I,OAAO,EAAE,8BAA8B,EAAiC,MAAM,qDAAqD,CAAC;AAEpI,qBAAa,0BAA2B,SAAQ,yBAAyB;IAEjE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBALpB,aAAa,EAAE,sBAAsB,EACrC,iBAAiB,EAAE,4BAA4B,EAChE,MAAM,EAAE,qBAAqB,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,EAClC,oBAAoB,EAAE;QACnC,+BAA+B,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;KACxF;IAKQ,SAAS,CAAC,MAAM,EAAE,mCAAmC,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAUhF,cAAc;YAgBd,aAAa;YAKb,kBAAkB;IAanB,MAAM,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,YAAY,CAAC;YAYtE,OAAO;IAmBR,iDAAiD,CAAC,MAAM,EAAE,2EAA2E,GAAG,OAAO,CAAC,YAAY,CAAC;IAgC7J,IAAI,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,YAAY,CAAC;YAiBlE,KAAK;YAgBL,gBAAgB;IA8B9B,OAAO,CAAC,aAAa;IAkBR,QAAQ,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,YAAY,CAAC;YAe1E,SAAS;YAwCT,WAAW;YA+BX,UAAU;YAaV,SAAS;IAKV,mBAAmB,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAUzD,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;YAQjE,UAAU;YAQV,MAAM;IAQpB,OAAO,CAAC,mBAAmB;YAMb,mBAAmB;CAKpC"}
@@ -7,6 +7,7 @@ const ConsumptionBaseController_1 = require("../../../consumption/ConsumptionBas
7
7
  const ConsumptionControllerName_1 = require("../../../consumption/ConsumptionControllerName");
8
8
  const ConsumptionError_1 = require("../../../consumption/ConsumptionError");
9
9
  const ConsumptionIds_1 = require("../../../consumption/ConsumptionIds");
10
+ const attributes_1 = require("../../attributes");
10
11
  const ValidationResult_1 = require("../../common/ValidationResult");
11
12
  const events_1 = require("../events");
12
13
  const LocalRequest_1 = require("../local/LocalRequest");
@@ -69,9 +70,8 @@ class OutgoingRequestsController extends ConsumptionBaseController_1.Consumption
69
70
  }
70
71
  async _create(id, content, peer) {
71
72
  const canCreateResult = await this.canCreate({ content, peer });
72
- if (canCreateResult.isError()) {
73
+ if (canCreateResult.isError())
73
74
  throw canCreateResult.error;
74
- }
75
75
  const request = LocalRequest_1.LocalRequest.from({
76
76
  id: id,
77
77
  content,
@@ -108,6 +108,7 @@ class OutgoingRequestsController extends ConsumptionBaseController_1.Consumption
108
108
  async sent(params) {
109
109
  const parsedParams = SentOutgoingRequestParameters_1.SentOutgoingRequestParameters.from(params);
110
110
  const request = await this._sent(parsedParams.requestId, parsedParams.requestSourceObject);
111
+ await this._setDeletionInfo(request.content);
111
112
  this.eventBus.publish(new events_1.OutgoingRequestStatusChangedEvent(this.identity.address.toString(), {
112
113
  request: request,
113
114
  oldStatus: LocalRequestStatus_1.LocalRequestStatus.Draft,
@@ -126,6 +127,33 @@ class OutgoingRequestsController extends ConsumptionBaseController_1.Consumption
126
127
  await this.update(request);
127
128
  return request;
128
129
  }
130
+ async _setDeletionInfo(request) {
131
+ const requestItemsFromRequest = request.items.filter((item) => item instanceof content_1.RequestItem);
132
+ const requestItemGroupsFromRequest = request.items.filter((item) => item instanceof content_1.RequestItemGroup);
133
+ const requestItemsFromGroups = requestItemGroupsFromRequest.map((group) => group.items).flat();
134
+ const requestItems = [...requestItemsFromRequest, ...requestItemsFromGroups];
135
+ const deleteAttributeRequestItems = requestItems.filter((item) => item instanceof content_1.DeleteAttributeRequestItem);
136
+ if (deleteAttributeRequestItems.length === 0)
137
+ return;
138
+ const ownSharedAttributeIds = deleteAttributeRequestItems.map((item) => item.attributeId);
139
+ for (const ownSharedAttributeId of ownSharedAttributeIds) {
140
+ const ownSharedAttribute = await this.parent.attributes.getLocalAttribute(ownSharedAttributeId);
141
+ if (!ownSharedAttribute) {
142
+ throw new ConsumptionError_1.ConsumptionError(`The own shared Attribute ${ownSharedAttributeId} of a created DeleteAttributeRequestItem was not found.`);
143
+ }
144
+ const deletionInfo = attributes_1.LocalAttributeDeletionInfo.from({
145
+ deletionStatus: attributes_1.DeletionStatus.DeletionRequestSent,
146
+ deletionDate: transport_1.CoreDate.utc()
147
+ });
148
+ const predecessors = await this.parent.attributes.getPredecessorsOfAttribute(ownSharedAttributeId);
149
+ for (const attr of [ownSharedAttribute, ...predecessors]) {
150
+ if (attr.deletionInfo?.deletionStatus !== attributes_1.DeletionStatus.ToBeDeletedByPeer && attr.deletionInfo?.deletionStatus !== attributes_1.DeletionStatus.DeletedByPeer) {
151
+ attr.setDeletionInfo(deletionInfo, this.identity.address);
152
+ await this.parent.attributes.updateAttributeUnsafe(attr);
153
+ }
154
+ }
155
+ }
156
+ }
129
157
  getSourceType(sourceObject) {
130
158
  if (sourceObject instanceof transport_1.Message) {
131
159
  if (!sourceObject.isOwn) {
@@ -159,9 +187,8 @@ class OutgoingRequestsController extends ConsumptionBaseController_1.Consumption
159
187
  throw new ConsumptionError_1.ConsumptionError("Cannot complete an expired request with a response that was created before the expiration date");
160
188
  }
161
189
  const canComplete = await this.canComplete(request, receivedResponse);
162
- if (canComplete.isError()) {
190
+ if (canComplete.isError())
163
191
  throw canComplete.error;
164
- }
165
192
  await this.applyItems(request.content.items, receivedResponse.items, request);
166
193
  let responseSource;
167
194
  if (responseSourceObject instanceof transport_1.Message) {