@nmshd/consumption 3.12.0 → 3.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/buildInformation.js +4 -4
- package/dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.d.ts +1 -1
- package/dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.d.ts.map +1 -1
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts.map +1 -1
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js +30 -20
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts.map +1 -1
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +36 -26
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
- package/package.json +1 -1
package/dist/buildInformation.js
CHANGED
|
@@ -6,10 +6,10 @@ const content_1 = require("@nmshd/content");
|
|
|
6
6
|
const crypto_1 = require("@nmshd/crypto");
|
|
7
7
|
const transport_1 = require("@nmshd/transport");
|
|
8
8
|
exports.buildInformation = {
|
|
9
|
-
version: "3.12.
|
|
10
|
-
build: "
|
|
11
|
-
date: "2024-06-
|
|
12
|
-
commit: "
|
|
9
|
+
version: "3.12.1",
|
|
10
|
+
build: "111",
|
|
11
|
+
date: "2024-06-17T11:31:32+00:00",
|
|
12
|
+
commit: "6d49c13a44b9c311083cd05122b714db0caba917",
|
|
13
13
|
dependencies: {"@js-soft/docdb-querytranslator":"^1.1.4","@nmshd/iql":"^1.0.2","ts-simple-nameof":"^1.3.1"},
|
|
14
14
|
libraries: {
|
|
15
15
|
transport: transport_1.buildInformation,
|
|
@@ -2,7 +2,7 @@ import { ISerializable, Serializable } from "@js-soft/ts-serval";
|
|
|
2
2
|
import { CoreAddress, CoreId, ICoreAddress, ICoreId } from "@nmshd/transport";
|
|
3
3
|
export interface CreateSharedLocalAttributeCopyParamsJSON {
|
|
4
4
|
attributeId?: string;
|
|
5
|
-
sourceAttributeId
|
|
5
|
+
sourceAttributeId: string;
|
|
6
6
|
peer: string;
|
|
7
7
|
requestReference: string;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateSharedLocalAttributeCopyParams.d.ts","sourceRoot":"","sources":["../../../../src/modules/attributes/local/CreateSharedLocalAttributeCopyParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE9E,MAAM,WAAW,wCAAwC;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"CreateSharedLocalAttributeCopyParams.d.ts","sourceRoot":"","sources":["../../../../src/modules/attributes/local/CreateSharedLocalAttributeCopyParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE9E,MAAM,WAAW,wCAAwC;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qCAAsC,SAAQ,aAAa;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,oCAAqC,SAAQ,YAAa,YAAW,qCAAqC;IAG5G,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,iBAAiB,EAAE,MAAM,CAAC;IAI1B,IAAI,EAAE,WAAW,CAAC;IAIlB,gBAAgB,EAAE,MAAM,CAAC;WAElB,IAAI,CAAC,KAAK,EAAE,qCAAqC,GAAG,wCAAwC,GAAG,oCAAoC;CAGpJ"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,EAAqE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAE3I,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;IAsCN,MAAM,CACxB,YAAY,EAAE,2BAA2B,EACzC,MAAM,EAAE,+CAA+C,EACvD,WAAW,EAAE,gBAAgB,GAC9B,OAAO,CAAC,kCAAkC,GAAG,qCAAqC,GAAG,wCAAwC,CAAC;YA6EnH,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"}
|
|
@@ -47,7 +47,7 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
|
|
|
47
47
|
if (parsedParams.isWithExistingAttribute()) {
|
|
48
48
|
const foundAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.attributeId);
|
|
49
49
|
if (!foundAttribute)
|
|
50
|
-
return ValidationResult_1.ValidationResult.error(transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute,
|
|
50
|
+
return ValidationResult_1.ValidationResult.error(transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, parsedParams.attributeId.toString()));
|
|
51
51
|
const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.attributeId, [requestInfo.peer], true);
|
|
52
52
|
if (latestSharedVersion.length > 0) {
|
|
53
53
|
if (!latestSharedVersion[0].shareInfo?.sourceAttribute) {
|
|
@@ -77,7 +77,12 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
|
|
|
77
77
|
if (!existingSourceAttribute)
|
|
78
78
|
throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, parsedParams.attributeId.toString());
|
|
79
79
|
const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.attributeId, [requestInfo.peer], true);
|
|
80
|
-
|
|
80
|
+
const wasSharedBefore = latestSharedVersion.length > 0;
|
|
81
|
+
const wasDeletedByPeerOrOwner = latestSharedVersion[0]?.deletionInfo?.deletionStatus === attributes_1.DeletionStatus.DeletedByPeer ||
|
|
82
|
+
latestSharedVersion[0]?.deletionInfo?.deletionStatus === attributes_1.DeletionStatus.DeletedByOwner;
|
|
83
|
+
const isLatestSharedVersion = latestSharedVersion[0]?.shareInfo?.sourceAttribute?.toString() === existingSourceAttribute.id.toString();
|
|
84
|
+
const predecessorWasSharedBefore = wasSharedBefore && !isLatestSharedVersion;
|
|
85
|
+
if (!wasSharedBefore || wasDeletedByPeerOrOwner) {
|
|
81
86
|
sharedLocalAttribute = await this.consumptionController.attributes.createSharedLocalAttributeCopy({
|
|
82
87
|
sourceAttributeId: transport_1.CoreId.from(existingSourceAttribute.id),
|
|
83
88
|
peer: transport_1.CoreAddress.from(requestInfo.peer),
|
|
@@ -89,31 +94,36 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
|
|
|
89
94
|
attribute: sharedLocalAttribute.content
|
|
90
95
|
});
|
|
91
96
|
}
|
|
92
|
-
|
|
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
|
+
if (isLatestSharedVersion) {
|
|
97
98
|
return content_1.AttributeAlreadySharedAcceptResponseItem.from({
|
|
98
99
|
result: content_1.ResponseItemResult.Accepted,
|
|
99
|
-
attributeId:
|
|
100
|
+
attributeId: latestSharedVersion[0].id
|
|
100
101
|
});
|
|
101
102
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
103
|
+
if (predecessorWasSharedBefore) {
|
|
104
|
+
const sharedPredecessor = latestSharedVersion[0];
|
|
105
|
+
if (!sharedPredecessor.shareInfo?.sourceAttribute) {
|
|
106
|
+
throw new Error(`The Attribute ${sharedPredecessor.id} doesn't have a 'shareInfo.sourceAttribute', even though it was found as shared version of an Attribute.`);
|
|
107
|
+
}
|
|
108
|
+
const predecessorSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(sharedPredecessor.shareInfo.sourceAttribute);
|
|
109
|
+
if (!predecessorSourceAttribute)
|
|
110
|
+
throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, sharedPredecessor.shareInfo.sourceAttribute.toString());
|
|
111
|
+
if (await this.consumptionController.attributes.isSubsequentInSuccession(predecessorSourceAttribute, existingSourceAttribute)) {
|
|
112
|
+
if (existingSourceAttribute.isRepositoryAttribute(this.currentIdentityAddress)) {
|
|
113
|
+
const successorSharedAttribute = await this.performOwnSharedIdentityAttributeSuccession(sharedPredecessor.id, existingSourceAttribute, requestInfo);
|
|
114
|
+
return content_1.AttributeSuccessionAcceptResponseItem.from({
|
|
115
|
+
result: content_1.ResponseItemResult.Accepted,
|
|
116
|
+
successorId: successorSharedAttribute.id,
|
|
117
|
+
successorContent: successorSharedAttribute.content,
|
|
118
|
+
predecessorId: sharedPredecessor.id
|
|
119
|
+
});
|
|
120
|
+
}
|
|
114
121
|
}
|
|
115
122
|
}
|
|
116
123
|
}
|
|
124
|
+
if (!parsedParams.attribute) {
|
|
125
|
+
throw new Error("The ProposeAttributeRequestItem wasn't answered with a new Attribute, but it wasn't handled as having been answered with an existing Attribute, either.");
|
|
126
|
+
}
|
|
117
127
|
sharedLocalAttribute = await this.createNewAttribute(parsedParams.attribute, requestInfo);
|
|
118
128
|
return content_1.ProposeAttributeAcceptResponseItem.from({
|
|
119
129
|
result: content_1.ResponseItemResult.Accepted,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProposeAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.ts"],"names":[],"mappings":";;;;;;AAAA,4CAWwB;AACxB,gDAA0F;AAC1F,mEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"ProposeAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,EAAqE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAE3I,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;YAkFhH,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"}
|
package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js
CHANGED
|
@@ -26,7 +26,7 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
|
|
|
26
26
|
if (parsedParams.isWithExistingAttribute()) {
|
|
27
27
|
const foundAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.existingAttributeId);
|
|
28
28
|
if (!foundAttribute)
|
|
29
|
-
return ValidationResult_1.ValidationResult.error(transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute,
|
|
29
|
+
return ValidationResult_1.ValidationResult.error(transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, parsedParams.existingAttributeId.toString()));
|
|
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."));
|
|
@@ -55,7 +55,12 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
|
|
|
55
55
|
throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, parsedParams.existingAttributeId.toString());
|
|
56
56
|
}
|
|
57
57
|
const latestSharedVersion = await this.consumptionController.attributes.getSharedVersionsOfAttribute(parsedParams.existingAttributeId, [requestInfo.peer], true);
|
|
58
|
-
|
|
58
|
+
const wasSharedBefore = latestSharedVersion.length > 0;
|
|
59
|
+
const wasDeletedByPeerOrOwner = latestSharedVersion[0]?.deletionInfo?.deletionStatus === attributes_1.DeletionStatus.DeletedByPeer ||
|
|
60
|
+
latestSharedVersion[0]?.deletionInfo?.deletionStatus === attributes_1.DeletionStatus.DeletedByOwner;
|
|
61
|
+
const isLatestSharedVersion = latestSharedVersion[0]?.shareInfo?.sourceAttribute?.toString() === existingSourceAttribute.id.toString();
|
|
62
|
+
const predecessorWasSharedBefore = wasSharedBefore && !isLatestSharedVersion;
|
|
63
|
+
if (!wasSharedBefore || wasDeletedByPeerOrOwner) {
|
|
59
64
|
sharedLocalAttribute = await this.consumptionController.attributes.createSharedLocalAttributeCopy({
|
|
60
65
|
sourceAttributeId: transport_1.CoreId.from(existingSourceAttribute.id),
|
|
61
66
|
peer: transport_1.CoreAddress.from(requestInfo.peer),
|
|
@@ -67,38 +72,43 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
|
|
|
67
72
|
attribute: sharedLocalAttribute.content
|
|
68
73
|
});
|
|
69
74
|
}
|
|
70
|
-
|
|
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
|
+
if (isLatestSharedVersion) {
|
|
75
76
|
return content_1.AttributeAlreadySharedAcceptResponseItem.from({
|
|
76
77
|
result: content_1.ResponseItemResult.Accepted,
|
|
77
|
-
attributeId:
|
|
78
|
+
attributeId: latestSharedVersion[0].id
|
|
78
79
|
});
|
|
79
80
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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);
|
|
81
|
+
if (predecessorWasSharedBefore) {
|
|
82
|
+
const sharedPredecessor = latestSharedVersion[0];
|
|
83
|
+
if (!sharedPredecessor.shareInfo?.sourceAttribute) {
|
|
84
|
+
throw new Error(`The Attribute ${sharedPredecessor.id} doesn't have a 'shareInfo.sourceAttribute', even though it was found as shared version of an Attribute.`);
|
|
90
85
|
}
|
|
91
|
-
|
|
92
|
-
|
|
86
|
+
const predecessorSourceAttribute = await this.consumptionController.attributes.getLocalAttribute(sharedPredecessor.shareInfo.sourceAttribute);
|
|
87
|
+
if (!predecessorSourceAttribute)
|
|
88
|
+
throw transport_1.CoreErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, sharedPredecessor.shareInfo.sourceAttribute.toString());
|
|
89
|
+
if (await this.consumptionController.attributes.isSubsequentInSuccession(predecessorSourceAttribute, existingSourceAttribute)) {
|
|
90
|
+
let successorSharedAttribute;
|
|
91
|
+
if (existingSourceAttribute.isRepositoryAttribute(this.currentIdentityAddress)) {
|
|
92
|
+
successorSharedAttribute = await this.performOwnSharedIdentityAttributeSuccession(sharedPredecessor.id, existingSourceAttribute, requestInfo);
|
|
93
|
+
}
|
|
94
|
+
else if (existingSourceAttribute.isOwnedBy(this.accountController.identity.address)) {
|
|
95
|
+
successorSharedAttribute = await this.performOwnSharedThirdPartyRelationshipAttributeSuccession(sharedPredecessor.id, existingSourceAttribute, requestInfo);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
successorSharedAttribute = await this.performThirdPartyOwnedRelationshipAttributeSuccession(sharedPredecessor.id, existingSourceAttribute, requestInfo);
|
|
99
|
+
}
|
|
100
|
+
return content_1.AttributeSuccessionAcceptResponseItem.from({
|
|
101
|
+
result: content_1.ResponseItemResult.Accepted,
|
|
102
|
+
successorId: successorSharedAttribute.id,
|
|
103
|
+
successorContent: successorSharedAttribute.content,
|
|
104
|
+
predecessorId: sharedPredecessor.id
|
|
105
|
+
});
|
|
93
106
|
}
|
|
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
107
|
}
|
|
101
108
|
}
|
|
109
|
+
if (!parsedParams.newAttribute) {
|
|
110
|
+
throw new Error("The ReadAttributeRequestItem wasn't answered with a new Attribute, but it wasn't handled as having been answered with an existing Attribute, either.");
|
|
111
|
+
}
|
|
102
112
|
sharedLocalAttribute = await this.createNewAttribute(parsedParams.newAttribute, requestInfo);
|
|
103
113
|
return content_1.ReadAttributeAcceptResponseItem.from({
|
|
104
114
|
result: content_1.ResponseItemResult.Accepted,
|
package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.ts"],"names":[],"mappings":";;;;;;AAAA,4CAUwB;AACxB,gDAA0F;AAC1F,mEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"ReadAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.ts"],"names":[],"mappings":";;;;;;AAAA,4CAUwB;AACxB,gDAA0F;AAC1F,mEAAgE;AAChE,oDAA2I;AAC3I,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,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAE5J,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,MAAM,eAAe,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;YACvD,MAAM,uBAAuB,GACzB,mBAAmB,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,cAAc,KAAK,2BAAc,CAAC,aAAa;gBACrF,mBAAmB,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,cAAc,KAAK,2BAAc,CAAC,cAAc,CAAC;YAC3F,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,uBAAuB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YACvI,MAAM,0BAA0B,GAAG,eAAe,IAAI,CAAC,qBAAqB,CAAC;YAE7E,IAAI,CAAC,eAAe,IAAI,uBAAuB,EAAE,CAAC;gBAC9C,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,IAAI,qBAAqB,EAAE,CAAC;gBACxB,OAAO,kDAAwC,CAAC,IAAI,CAAC;oBACjD,MAAM,EAAE,4BAAkB,CAAC,QAAQ;oBACnC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE;iBACzC,CAAC,CAAC;YACP,CAAC;YAED,IAAI,0BAA0B,EAAE,CAAC;gBAC7B,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACX,iBAAiB,iBAAiB,CAAC,EAAE,0GAA0G,CAClJ,CAAC;gBACN,CAAC;gBAED,MAAM,0BAA0B,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;gBAC9I,IAAI,CAAC,0BAA0B;oBAAE,MAAM,sBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,+BAAc,EAAE,iBAAiB,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAE1J,IAAI,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,wBAAwB,CAAC,0BAA0B,EAAE,uBAAuB,CAAC,EAAE,CAAC;oBAC5H,IAAI,wBAAwC,CAAC;oBAC7C,IAAI,uBAAuB,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;wBAC7E,wBAAwB,GAAG,MAAM,IAAI,CAAC,2CAA2C,CAAC,iBAAiB,CAAC,EAAE,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;oBAClJ,CAAC;yBAAM,IAAI,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBACpF,wBAAwB,GAAG,MAAM,IAAI,CAAC,yDAAyD,CAAC,iBAAiB,CAAC,EAAE,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;oBAChK,CAAC;yBAAM,CAAC;wBACJ,wBAAwB,GAAG,MAAM,IAAI,CAAC,qDAAqD,CAAC,iBAAiB,CAAC,EAAE,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;oBAC5J,CAAC;oBAED,OAAO,+CAAqC,CAAC,IAAI,CAAC;wBAC9C,MAAM,EAAE,4BAAkB,CAAC,QAAQ;wBACnC,WAAW,EAAE,wBAAwB,CAAC,EAAE;wBACxC,gBAAgB,EAAE,wBAAwB,CAAC,OAAO;wBAClD,aAAa,EAAE,iBAAiB,CAAC,EAAE;qBACtC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,sJAAsJ,CAAC,CAAC;QAC5K,CAAC;QAED,oBAAoB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC7F,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;AAnOD,8EAmOC"}
|