@nmshd/runtime 3.0.0 → 3.0.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/useCases/common/RuntimeErrors.d.ts +3 -1
- package/dist/useCases/common/RuntimeErrors.js +8 -2
- package/dist/useCases/common/RuntimeErrors.js.map +1 -1
- package/dist/useCases/consumption/attributes/NotifyPeerAboutIdentityAttributeSuccession.js +11 -13
- package/dist/useCases/consumption/attributes/NotifyPeerAboutIdentityAttributeSuccession.js.map +1 -1
- package/dist/useCases/consumption/attributes/ShareIdentityAttribute.js +34 -6
- package/dist/useCases/consumption/attributes/ShareIdentityAttribute.js.map +1 -1
- package/lib-web/nmshd.runtime.js +57 -25
- package/lib-web/nmshd.runtime.js.map +1 -1
- package/lib-web/nmshd.runtime.min.js +1 -1
- package/lib-web/nmshd.runtime.min.js.map +1 -1
- package/package.json +2 -2
package/dist/buildInformation.js
CHANGED
|
@@ -7,10 +7,10 @@ const content_1 = require("@nmshd/content");
|
|
|
7
7
|
const crypto_1 = require("@nmshd/crypto");
|
|
8
8
|
const transport_1 = require("@nmshd/transport");
|
|
9
9
|
exports.buildInformation = {
|
|
10
|
-
version: "3.0.
|
|
11
|
-
build: "
|
|
12
|
-
date: "2023-12-
|
|
13
|
-
commit: "
|
|
10
|
+
version: "3.0.1",
|
|
11
|
+
build: "177",
|
|
12
|
+
date: "2023-12-05T14:35:42+00:00",
|
|
13
|
+
commit: "925dfa548d17ca3b0bb184e99bca28906092ec74",
|
|
14
14
|
dependencies: {"@js-soft/docdb-querytranslator":"1.1.2","@js-soft/logging-abstractions":"1.0.1","@js-soft/ts-serval":"2.0.10","@js-soft/ts-utils":"^2.3.3","@nmshd/consumption":"3.7.4","@nmshd/content":"2.8.1","@nmshd/crypto":"2.0.5","@nmshd/transport":"2.1.4","ajv":"^8.12.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^3.4.4","qrcode":"1.5.3","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
|
|
15
15
|
libraries: {
|
|
16
16
|
serval: ts_serval_1.buildInformation,
|
|
@@ -46,7 +46,9 @@ declare class Notifications {
|
|
|
46
46
|
}
|
|
47
47
|
declare class Attributes {
|
|
48
48
|
isNoIdentityAttribute(attributeId: CoreId | string): ApplicationError;
|
|
49
|
-
identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId: CoreId | string, peer: CoreAddress | string,
|
|
49
|
+
identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId: CoreId | string, peer: CoreAddress | string, ownSharedIdentityAttributeId: CoreId | string): ApplicationError;
|
|
50
|
+
anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId: CoreId | string, peer: CoreAddress | string, ownSharedIdentityAttributeId: CoreId | string): ApplicationError;
|
|
51
|
+
canOnlyNotifyAboutLatestVersionOfIdentityAttribute(repositoryAttributeId: CoreId | string): ApplicationError;
|
|
50
52
|
detectedErroneousAttribute(attributeId: CoreId | string, message?: string): ApplicationError;
|
|
51
53
|
}
|
|
52
54
|
export declare class RuntimeErrors {
|
|
@@ -107,8 +107,14 @@ class Attributes {
|
|
|
107
107
|
isNoIdentityAttribute(attributeId) {
|
|
108
108
|
return new ts_utils_1.ApplicationError("error.runtime.attributes.isNoIdentityAttribute", `Attribute '${attributeId.toString()}' is not an identity attribute.`);
|
|
109
109
|
}
|
|
110
|
-
identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer,
|
|
111
|
-
return new ts_utils_1.ApplicationError("error.runtime.attributes.identityAttributeHasAlreadyBeenSharedWithPeer", `Identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of shared identity attribute: ${
|
|
110
|
+
identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer, ownSharedIdentityAttributeId) {
|
|
111
|
+
return new ts_utils_1.ApplicationError("error.runtime.attributes.identityAttributeHasAlreadyBeenSharedWithPeer", `Identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of shared identity attribute: ${ownSharedIdentityAttributeId.toString()}.`);
|
|
112
|
+
}
|
|
113
|
+
anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer, ownSharedIdentityAttributeId) {
|
|
114
|
+
return new ts_utils_1.ApplicationError("error.runtime.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer", `Another version of identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of previously shared identity attribute: ${ownSharedIdentityAttributeId.toString()}.`);
|
|
115
|
+
}
|
|
116
|
+
canOnlyNotifyAboutLatestVersionOfIdentityAttribute(repositoryAttributeId) {
|
|
117
|
+
return new ts_utils_1.ApplicationError("error.runtime.attributes.canOnlyNotifyAboutLatestVersionOfIdentityAttribute", `Identity attribute '${repositoryAttributeId.toString()}' is not the latest version the attribute. Peers can only be notified about the latest version of an identity attribute.`);
|
|
112
118
|
}
|
|
113
119
|
detectedErroneousAttribute(attributeId, message) {
|
|
114
120
|
let msg = `Detected an error regarding attribute '${attributeId.toString()}'.`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeErrors.js","sourceRoot":"","sources":["../../../src/useCases/common/RuntimeErrors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RuntimeErrors.js","sourceRoot":"","sources":["../../../src/useCases/common/RuntimeErrors.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,24 +39,22 @@ let NotifyPeerAboutIdentityAttributeSuccessionUseCase = class NotifyPeerAboutIde
|
|
|
39
39
|
async executeInternal(request) {
|
|
40
40
|
const repositoryAttributeSuccessorId = transport_1.CoreId.from(request.attributeId);
|
|
41
41
|
const repositoryAttributeSuccessor = await this.attributeController.getLocalAttribute(repositoryAttributeSuccessorId);
|
|
42
|
-
if (typeof repositoryAttributeSuccessor === "undefined")
|
|
43
|
-
return ts_utils_1.Result.fail(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return ts_utils_1.Result.fail(consumption_1.CoreErrors.attributes.invalidSuccessor("Successor attribute is not a valid repository attribute."));
|
|
47
|
-
}
|
|
42
|
+
if (typeof repositoryAttributeSuccessor === "undefined")
|
|
43
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute.name));
|
|
44
|
+
if (!repositoryAttributeSuccessor.isRepositoryAttribute())
|
|
45
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.isNoIdentityAttribute(repositoryAttributeSuccessor.id));
|
|
48
46
|
if (typeof repositoryAttributeSuccessor.succeededBy !== "undefined") {
|
|
49
|
-
return ts_utils_1.Result.fail(
|
|
47
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.canOnlyNotifyAboutLatestVersionOfIdentityAttribute(repositoryAttributeSuccessor.id));
|
|
50
48
|
}
|
|
51
|
-
const
|
|
49
|
+
const query = {
|
|
52
50
|
"content.owner": this.accountController.identity.address.toString(),
|
|
53
51
|
"content.@type": "IdentityAttribute",
|
|
54
|
-
"shareInfo.sourceAttribute":
|
|
52
|
+
"shareInfo.sourceAttribute": repositoryAttributeSuccessorId.toString(),
|
|
55
53
|
"shareInfo.peer": request.peer
|
|
56
54
|
};
|
|
57
|
-
const
|
|
58
|
-
if (
|
|
59
|
-
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer,
|
|
55
|
+
const ownSharedIdentityAttributesOfRepositoryAttributeSuccessor = await this.attributeController.getLocalAttributes(query);
|
|
56
|
+
if (ownSharedIdentityAttributesOfRepositoryAttributeSuccessor.length > 0) {
|
|
57
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeSuccessor[0].id));
|
|
60
58
|
}
|
|
61
59
|
const repositoryAttributeVersions = await this.attributeController.getVersionsOfAttribute(repositoryAttributeSuccessorId);
|
|
62
60
|
const repositoryAttributeVersionIds = repositoryAttributeVersions.map((x) => x.id.toString());
|
|
@@ -67,7 +65,7 @@ let NotifyPeerAboutIdentityAttributeSuccessionUseCase = class NotifyPeerAboutIde
|
|
|
67
65
|
};
|
|
68
66
|
const candidatePredecessors = await this.attributeController.getLocalAttributes(candidatePredecessorsQuery);
|
|
69
67
|
if (candidatePredecessors.length === 0) {
|
|
70
|
-
throw common_1.RuntimeErrors.general.recordNotFoundWithMessage("No shared predecessor found. If this is the fist version you want to share with this peer, use `
|
|
68
|
+
throw common_1.RuntimeErrors.general.recordNotFoundWithMessage("No shared predecessor found. If this is the fist version you want to share with this peer, use `ShareIdentityAttribute`.");
|
|
71
69
|
}
|
|
72
70
|
if (candidatePredecessors.length > 1) {
|
|
73
71
|
throw common_1.RuntimeErrors.attributes.detectedErroneousAttribute(request.attributeId, "The attribute has shared copies of predecessing versions that are not in a succession chain.");
|
package/dist/useCases/consumption/attributes/NotifyPeerAboutIdentityAttributeSuccession.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifyPeerAboutIdentityAttributeSuccession.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/attributes/NotifyPeerAboutIdentityAttributeSuccession.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"NotifyPeerAboutIdentityAttributeSuccession.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/attributes/NotifyPeerAboutIdentityAttributeSuccession.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,19 +39,47 @@ let ShareIdentityAttributeUseCase = class ShareIdentityAttributeUseCase extends
|
|
|
39
39
|
}
|
|
40
40
|
async executeInternal(request) {
|
|
41
41
|
const repositoryAttribute = await this.attributeController.getLocalAttribute(transport_1.CoreId.from(request.attributeId));
|
|
42
|
-
if (
|
|
43
|
-
return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute));
|
|
42
|
+
if (typeof repositoryAttribute === "undefined")
|
|
43
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute.name));
|
|
44
44
|
if (!repositoryAttribute.isRepositoryAttribute())
|
|
45
45
|
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.isNoIdentityAttribute(repositoryAttribute.id));
|
|
46
|
-
const
|
|
46
|
+
const query = {
|
|
47
47
|
"content.owner": this.accountController.identity.address.toString(),
|
|
48
48
|
"content.@type": "IdentityAttribute",
|
|
49
49
|
"shareInfo.sourceAttribute": request.attributeId,
|
|
50
50
|
"shareInfo.peer": request.peer
|
|
51
51
|
};
|
|
52
|
-
const
|
|
53
|
-
if (
|
|
54
|
-
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer,
|
|
52
|
+
const ownSharedIdentityAttributesOfRepositoryAttribute = await this.attributeController.getLocalAttributes(query);
|
|
53
|
+
if (ownSharedIdentityAttributesOfRepositoryAttribute.length > 0) {
|
|
54
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttribute[0].id));
|
|
55
|
+
}
|
|
56
|
+
let repositoryAttributeVersion = repositoryAttribute;
|
|
57
|
+
while (typeof repositoryAttributeVersion.succeededBy !== "undefined") {
|
|
58
|
+
repositoryAttributeVersion = (await this.attributeController.getLocalAttribute(repositoryAttributeVersion.succeededBy));
|
|
59
|
+
const query = {
|
|
60
|
+
"content.owner": this.accountController.identity.address.toString(),
|
|
61
|
+
"content.@type": "IdentityAttribute",
|
|
62
|
+
"shareInfo.sourceAttribute": repositoryAttributeVersion.id.toString(),
|
|
63
|
+
"shareInfo.peer": request.peer
|
|
64
|
+
};
|
|
65
|
+
const ownSharedIdentityAttributesOfRepositoryAttributeVersion = await this.attributeController.getLocalAttributes(query);
|
|
66
|
+
if (ownSharedIdentityAttributesOfRepositoryAttributeVersion.length > 0) {
|
|
67
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeVersion[0].id));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
repositoryAttributeVersion = repositoryAttribute;
|
|
71
|
+
while (typeof repositoryAttributeVersion.succeeds !== "undefined") {
|
|
72
|
+
repositoryAttributeVersion = (await this.attributeController.getLocalAttribute(repositoryAttributeVersion.succeeds));
|
|
73
|
+
const query = {
|
|
74
|
+
"content.owner": this.accountController.identity.address.toString(),
|
|
75
|
+
"content.@type": "IdentityAttribute",
|
|
76
|
+
"shareInfo.sourceAttribute": repositoryAttributeVersion.id.toString(),
|
|
77
|
+
"shareInfo.peer": request.peer
|
|
78
|
+
};
|
|
79
|
+
const ownSharedIdentityAttributesOfRepositoryAttributeVersion = await this.attributeController.getLocalAttributes(query);
|
|
80
|
+
if (ownSharedIdentityAttributesOfRepositoryAttributeVersion.length > 0) {
|
|
81
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeVersion[0].id));
|
|
82
|
+
}
|
|
55
83
|
}
|
|
56
84
|
const requestMetadata = request.requestMetadata ?? {};
|
|
57
85
|
const requestParams = consumption_1.CreateOutgoingRequestParameters.from({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareIdentityAttribute.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/attributes/ShareIdentityAttribute.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAA2C;AAC3C,oDAAuI;AACvI,4CAAoE;AACpE,gDAA6F;AAC7F,mDAAwC;AAExC,yCAAkJ;AAClJ,0CAA4C;AAa5C,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,wBAA8C;IAClE,YAA2B,gBAAkC;QACzD,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACvE,CAAC;CACJ,CAAA;AAJK,SAAS;IACS,WAAA,uBAAM,CAAA;qCAAmB,yBAAgB;GAD3D,SAAS,CAId;AAED,IAAa,6BAA6B,GAA1C,MAAa,6BAA8B,SAAQ,gBAAuD;IACtG,YAC6B,mBAAyC,EACzC,iBAAoC,EACpC,kBAA8C,EAC9C,iBAAoC,EACrD,SAAoB;QAE5B,KAAK,CAAC,SAAS,CAAC,CAAC;QANQ,wBAAmB,GAAnB,mBAAmB,CAAsB;QACzC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,uBAAkB,GAAlB,kBAAkB,CAA4B;QAC9C,sBAAiB,GAAjB,iBAAiB,CAAmB;IAIjE,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAAsC;QAClE,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/G,IAAI,
|
|
1
|
+
{"version":3,"file":"ShareIdentityAttribute.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/attributes/ShareIdentityAttribute.ts"],"names":[],"mappings":"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"}
|
package/lib-web/nmshd.runtime.js
CHANGED
|
@@ -555,10 +555,10 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
|
555
555
|
const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
|
|
556
556
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
557
557
|
exports.buildInformation = {
|
|
558
|
-
version: "3.0.
|
|
559
|
-
build: "
|
|
560
|
-
date: "2023-12-
|
|
561
|
-
commit: "
|
|
558
|
+
version: "3.0.1",
|
|
559
|
+
build: "177",
|
|
560
|
+
date: "2023-12-05T14:35:42+00:00",
|
|
561
|
+
commit: "925dfa548d17ca3b0bb184e99bca28906092ec74",
|
|
562
562
|
dependencies: {"@js-soft/docdb-querytranslator":"1.1.2","@js-soft/logging-abstractions":"1.0.1","@js-soft/ts-serval":"2.0.10","@js-soft/ts-utils":"^2.3.3","@nmshd/consumption":"3.7.4","@nmshd/content":"2.8.1","@nmshd/crypto":"2.0.5","@nmshd/transport":"2.1.4","ajv":"^8.12.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^3.4.4","qrcode":"1.5.3","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
|
|
563
563
|
libraries: {
|
|
564
564
|
serval: ts_serval_1.buildInformation,
|
|
@@ -6516,8 +6516,14 @@ class Attributes {
|
|
|
6516
6516
|
isNoIdentityAttribute(attributeId) {
|
|
6517
6517
|
return new ts_utils_1.ApplicationError("error.runtime.attributes.isNoIdentityAttribute", `Attribute '${attributeId.toString()}' is not an identity attribute.`);
|
|
6518
6518
|
}
|
|
6519
|
-
identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer,
|
|
6520
|
-
return new ts_utils_1.ApplicationError("error.runtime.attributes.identityAttributeHasAlreadyBeenSharedWithPeer", `Identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of shared identity attribute: ${
|
|
6519
|
+
identityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer, ownSharedIdentityAttributeId) {
|
|
6520
|
+
return new ts_utils_1.ApplicationError("error.runtime.attributes.identityAttributeHasAlreadyBeenSharedWithPeer", `Identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of shared identity attribute: ${ownSharedIdentityAttributeId.toString()}.`);
|
|
6521
|
+
}
|
|
6522
|
+
anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(repositoryAttributeId, peer, ownSharedIdentityAttributeId) {
|
|
6523
|
+
return new ts_utils_1.ApplicationError("error.runtime.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer", `Another version of identity attribute '${repositoryAttributeId.toString()}' has already been shared with peer '${peer.toString()}'. Id of previously shared identity attribute: ${ownSharedIdentityAttributeId.toString()}.`);
|
|
6524
|
+
}
|
|
6525
|
+
canOnlyNotifyAboutLatestVersionOfIdentityAttribute(repositoryAttributeId) {
|
|
6526
|
+
return new ts_utils_1.ApplicationError("error.runtime.attributes.canOnlyNotifyAboutLatestVersionOfIdentityAttribute", `Identity attribute '${repositoryAttributeId.toString()}' is not the latest version the attribute. Peers can only be notified about the latest version of an identity attribute.`);
|
|
6521
6527
|
}
|
|
6522
6528
|
detectedErroneousAttribute(attributeId, message) {
|
|
6523
6529
|
let msg = `Detected an error regarding attribute '${attributeId.toString()}'.`;
|
|
@@ -29217,24 +29223,22 @@ let NotifyPeerAboutIdentityAttributeSuccessionUseCase = class NotifyPeerAboutIde
|
|
|
29217
29223
|
async executeInternal(request) {
|
|
29218
29224
|
const repositoryAttributeSuccessorId = transport_1.CoreId.from(request.attributeId);
|
|
29219
29225
|
const repositoryAttributeSuccessor = await this.attributeController.getLocalAttribute(repositoryAttributeSuccessorId);
|
|
29220
|
-
if (typeof repositoryAttributeSuccessor === "undefined")
|
|
29221
|
-
return ts_utils_1.Result.fail(
|
|
29222
|
-
|
|
29223
|
-
|
|
29224
|
-
return ts_utils_1.Result.fail(consumption_1.CoreErrors.attributes.invalidSuccessor("Successor attribute is not a valid repository attribute."));
|
|
29225
|
-
}
|
|
29226
|
+
if (typeof repositoryAttributeSuccessor === "undefined")
|
|
29227
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute.name));
|
|
29228
|
+
if (!repositoryAttributeSuccessor.isRepositoryAttribute())
|
|
29229
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.isNoIdentityAttribute(repositoryAttributeSuccessor.id));
|
|
29226
29230
|
if (typeof repositoryAttributeSuccessor.succeededBy !== "undefined") {
|
|
29227
|
-
return ts_utils_1.Result.fail(
|
|
29231
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.canOnlyNotifyAboutLatestVersionOfIdentityAttribute(repositoryAttributeSuccessor.id));
|
|
29228
29232
|
}
|
|
29229
|
-
const
|
|
29233
|
+
const query = {
|
|
29230
29234
|
"content.owner": this.accountController.identity.address.toString(),
|
|
29231
29235
|
"content.@type": "IdentityAttribute",
|
|
29232
|
-
"shareInfo.sourceAttribute":
|
|
29236
|
+
"shareInfo.sourceAttribute": repositoryAttributeSuccessorId.toString(),
|
|
29233
29237
|
"shareInfo.peer": request.peer
|
|
29234
29238
|
};
|
|
29235
|
-
const
|
|
29236
|
-
if (
|
|
29237
|
-
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer,
|
|
29239
|
+
const ownSharedIdentityAttributesOfRepositoryAttributeSuccessor = await this.attributeController.getLocalAttributes(query);
|
|
29240
|
+
if (ownSharedIdentityAttributesOfRepositoryAttributeSuccessor.length > 0) {
|
|
29241
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeSuccessor[0].id));
|
|
29238
29242
|
}
|
|
29239
29243
|
const repositoryAttributeVersions = await this.attributeController.getVersionsOfAttribute(repositoryAttributeSuccessorId);
|
|
29240
29244
|
const repositoryAttributeVersionIds = repositoryAttributeVersions.map((x) => x.id.toString());
|
|
@@ -29245,7 +29249,7 @@ let NotifyPeerAboutIdentityAttributeSuccessionUseCase = class NotifyPeerAboutIde
|
|
|
29245
29249
|
};
|
|
29246
29250
|
const candidatePredecessors = await this.attributeController.getLocalAttributes(candidatePredecessorsQuery);
|
|
29247
29251
|
if (candidatePredecessors.length === 0) {
|
|
29248
|
-
throw common_1.RuntimeErrors.general.recordNotFoundWithMessage("No shared predecessor found. If this is the fist version you want to share with this peer, use `
|
|
29252
|
+
throw common_1.RuntimeErrors.general.recordNotFoundWithMessage("No shared predecessor found. If this is the fist version you want to share with this peer, use `ShareIdentityAttribute`.");
|
|
29249
29253
|
}
|
|
29250
29254
|
if (candidatePredecessors.length > 1) {
|
|
29251
29255
|
throw common_1.RuntimeErrors.attributes.detectedErroneousAttribute(request.attributeId, "The attribute has shared copies of predecessing versions that are not in a succession chain.");
|
|
@@ -29347,19 +29351,47 @@ let ShareIdentityAttributeUseCase = class ShareIdentityAttributeUseCase extends
|
|
|
29347
29351
|
}
|
|
29348
29352
|
async executeInternal(request) {
|
|
29349
29353
|
const repositoryAttribute = await this.attributeController.getLocalAttribute(transport_1.CoreId.from(request.attributeId));
|
|
29350
|
-
if (
|
|
29351
|
-
return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute));
|
|
29354
|
+
if (typeof repositoryAttribute === "undefined")
|
|
29355
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(consumption_1.LocalAttribute.name));
|
|
29352
29356
|
if (!repositoryAttribute.isRepositoryAttribute())
|
|
29353
29357
|
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.isNoIdentityAttribute(repositoryAttribute.id));
|
|
29354
|
-
const
|
|
29358
|
+
const query = {
|
|
29355
29359
|
"content.owner": this.accountController.identity.address.toString(),
|
|
29356
29360
|
"content.@type": "IdentityAttribute",
|
|
29357
29361
|
"shareInfo.sourceAttribute": request.attributeId,
|
|
29358
29362
|
"shareInfo.peer": request.peer
|
|
29359
29363
|
};
|
|
29360
|
-
const
|
|
29361
|
-
if (
|
|
29362
|
-
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer,
|
|
29364
|
+
const ownSharedIdentityAttributesOfRepositoryAttribute = await this.attributeController.getLocalAttributes(query);
|
|
29365
|
+
if (ownSharedIdentityAttributesOfRepositoryAttribute.length > 0) {
|
|
29366
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.identityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttribute[0].id));
|
|
29367
|
+
}
|
|
29368
|
+
let repositoryAttributeVersion = repositoryAttribute;
|
|
29369
|
+
while (typeof repositoryAttributeVersion.succeededBy !== "undefined") {
|
|
29370
|
+
repositoryAttributeVersion = (await this.attributeController.getLocalAttribute(repositoryAttributeVersion.succeededBy));
|
|
29371
|
+
const query = {
|
|
29372
|
+
"content.owner": this.accountController.identity.address.toString(),
|
|
29373
|
+
"content.@type": "IdentityAttribute",
|
|
29374
|
+
"shareInfo.sourceAttribute": repositoryAttributeVersion.id.toString(),
|
|
29375
|
+
"shareInfo.peer": request.peer
|
|
29376
|
+
};
|
|
29377
|
+
const ownSharedIdentityAttributesOfRepositoryAttributeVersion = await this.attributeController.getLocalAttributes(query);
|
|
29378
|
+
if (ownSharedIdentityAttributesOfRepositoryAttributeVersion.length > 0) {
|
|
29379
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeVersion[0].id));
|
|
29380
|
+
}
|
|
29381
|
+
}
|
|
29382
|
+
repositoryAttributeVersion = repositoryAttribute;
|
|
29383
|
+
while (typeof repositoryAttributeVersion.succeeds !== "undefined") {
|
|
29384
|
+
repositoryAttributeVersion = (await this.attributeController.getLocalAttribute(repositoryAttributeVersion.succeeds));
|
|
29385
|
+
const query = {
|
|
29386
|
+
"content.owner": this.accountController.identity.address.toString(),
|
|
29387
|
+
"content.@type": "IdentityAttribute",
|
|
29388
|
+
"shareInfo.sourceAttribute": repositoryAttributeVersion.id.toString(),
|
|
29389
|
+
"shareInfo.peer": request.peer
|
|
29390
|
+
};
|
|
29391
|
+
const ownSharedIdentityAttributesOfRepositoryAttributeVersion = await this.attributeController.getLocalAttributes(query);
|
|
29392
|
+
if (ownSharedIdentityAttributesOfRepositoryAttributeVersion.length > 0) {
|
|
29393
|
+
return ts_utils_1.Result.fail(common_1.RuntimeErrors.attributes.anotherVersionOfIdentityAttributeHasAlreadyBeenSharedWithPeer(request.attributeId, request.peer, ownSharedIdentityAttributesOfRepositoryAttributeVersion[0].id));
|
|
29394
|
+
}
|
|
29363
29395
|
}
|
|
29364
29396
|
const requestMetadata = request.requestMetadata ?? {};
|
|
29365
29397
|
const requestParams = consumption_1.CreateOutgoingRequestParameters.from({
|