@nmshd/consumption 2.0.0-beta.5 → 2.0.0-beta.8
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/consumption/ConsumptionController.js +4 -2
- package/dist/consumption/ConsumptionController.js.map +1 -1
- package/dist/modules/index.d.ts +2 -2
- package/dist/modules/index.js +2 -2
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.d.ts +7 -0
- package/dist/modules/requests/itemProcessors/{createAttribute/AcceptCreateAttributeRequestItemParameters.js → createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js} +7 -7
- package/dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js.map +1 -0
- package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.d.ts +11 -0
- package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js +44 -0
- package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js.map +1 -0
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +2 -1
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.d.ts +6 -8
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js +34 -72
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js.map +1 -1
- package/lib-web/nmshd.consumption.js +78 -129
- package/lib-web/nmshd.consumption.js.map +1 -1
- package/lib-web/nmshd.consumption.min.js +1 -1
- package/lib-web/nmshd.consumption.min.js.map +1 -1
- package/package.json +5 -5
- package/dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.d.ts +0 -7
- package/dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.js.map +0 -1
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.d.ts +0 -12
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js +0 -60
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js.map +0 -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: "2.0.0-beta.
|
|
10
|
-
build: "
|
|
11
|
-
date: "2022-08-
|
|
12
|
-
commit: "
|
|
9
|
+
version: "2.0.0-beta.8",
|
|
10
|
+
build: "58",
|
|
11
|
+
date: "2022-08-05T15:16:19+00:00",
|
|
12
|
+
commit: "e415cd06c69fd35f17d74f93d50a47c88f145137",
|
|
13
13
|
dependencies: {"@js-soft/docdb-querytranslator":"^1.1.0","ts-simple-nameof":"^1.3.1"},
|
|
14
14
|
libraries: {
|
|
15
15
|
transport: transport_1.buildInformation,
|
|
@@ -43,10 +43,12 @@ class ConsumptionController {
|
|
|
43
43
|
}
|
|
44
44
|
getDefaultProcessors() {
|
|
45
45
|
return new Map([
|
|
46
|
-
[content_1.
|
|
46
|
+
[content_1.ShareAttributeRequestItem, modules_1.ShareAttributeRequestItemProcessor],
|
|
47
|
+
[content_1.CreateRelationshipAttributeRequestItem, modules_1.CreateRelationshipAttributeRequestItemProcessor],
|
|
47
48
|
[content_1.ReadAttributeRequestItem, modules_1.ReadAttributeRequestItemProcessor],
|
|
48
49
|
[content_1.ProposeAttributeRequestItem, modules_1.ProposeAttributeRequestItemProcessor],
|
|
49
|
-
[content_1.
|
|
50
|
+
[content_1.ConsentRequestItem, modules_1.GenericRequestItemProcessor],
|
|
51
|
+
[content_1.AuthenticationRequestItem, modules_1.GenericRequestItemProcessor]
|
|
50
52
|
]);
|
|
51
53
|
}
|
|
52
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsumptionController.js","sourceRoot":"","sources":["../../src/consumption/ConsumptionController.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ConsumptionController.js","sourceRoot":"","sources":["../../src/consumption/ConsumptionController.ts"],"names":[],"mappings":";;;AAAA,4CAOuB;AAEvB,wCAMmB;AACnB,+FAA2F;AAC3F,yEAAqE;AACrE,wGAAoG;AAGpG,kHAA8G;AAC9G,wGAAoG;AACpG,+EAA2E;AAE3E,MAAa,qBAAqB;IAC9B,YAAmC,SAAoB,EAAkB,iBAAoC;QAA1E,cAAS,GAAT,SAAS,CAAW;QAAkB,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAGjH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;IAGD,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAGD,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IACjC,CAAC;IAGD,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IACjC,CAAC;IAGD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAA;IACzB,CAAC;IAEM,KAAK,CAAC,IAAI,CACb,gCAAgC,IAAI,GAAG,EAAgD;QAEvF,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,qDAAyB,CAClD,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,QAAQ,EACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAClC,CAAC,IAAI,EAAE,CAAA;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,mCAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QAEtD,MAAM,iBAAiB,GAAG,IAAI,2DAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;QAE7F,KAAK,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC,IAAI,6BAA6B,EAAE;YACjF,iBAAiB,CAAC,0BAA0B,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAI,uDAA0B,CACzD,MAAM,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAClE,iBAAiB,EACjB,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,QAAQ,EACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAClC,CAAC,IAAI,EAAE,CAAA;QACR,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAI,uDAA0B,CACzD,MAAM,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAClE,iBAAiB,EACjB,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,QAAQ,EACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAClC,CAAC,IAAI,EAAE,CAAA;QACR,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1D,OAAO,IAAI,CAAA;IACf,CAAC;IAEO,oBAAoB;QACxB,OAAO,IAAI,GAAG,CAA+C;YACzD,CAAC,mCAAyB,EAAE,4CAAkC,CAAC;YAC/D,CAAC,gDAAsC,EAAE,yDAA+C,CAAC;YACzF,CAAC,kCAAwB,EAAE,2CAAiC,CAAC;YAC7D,CAAC,qCAA2B,EAAE,8CAAoC,CAAC;YACnE,CAAC,4BAAkB,EAAE,qCAA2B,CAAC;YACjD,CAAC,mCAAyB,EAAE,qCAA2B,CAAC;SAC3D,CAAC,CAAA;IACN,CAAC;CACJ;AAxED,sDAwEC"}
|
package/dist/modules/index.d.ts
CHANGED
|
@@ -22,8 +22,8 @@ export * from "./requests/incoming/IncomingRequestsController";
|
|
|
22
22
|
export * from "./requests/incoming/received/ReceivedIncomingRequestParameters";
|
|
23
23
|
export * from "./requests/incoming/requireManualDecision/RequireManualDecisionOfIncomingRequestParameters";
|
|
24
24
|
export * from "./requests/itemProcessors/AbstractRequestItemProcessor";
|
|
25
|
-
export * from "./requests/itemProcessors/
|
|
26
|
-
export * from "./requests/itemProcessors/
|
|
25
|
+
export * from "./requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters";
|
|
26
|
+
export * from "./requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor";
|
|
27
27
|
export * from "./requests/itemProcessors/GenericRequestItemProcessor";
|
|
28
28
|
export * from "./requests/itemProcessors/IRequestItemProcessor";
|
|
29
29
|
export * from "./requests/itemProcessors/ProcessorConstructor";
|
package/dist/modules/index.js
CHANGED
|
@@ -38,8 +38,8 @@ __exportStar(require("./requests/incoming/IncomingRequestsController"), exports)
|
|
|
38
38
|
__exportStar(require("./requests/incoming/received/ReceivedIncomingRequestParameters"), exports);
|
|
39
39
|
__exportStar(require("./requests/incoming/requireManualDecision/RequireManualDecisionOfIncomingRequestParameters"), exports);
|
|
40
40
|
__exportStar(require("./requests/itemProcessors/AbstractRequestItemProcessor"), exports);
|
|
41
|
-
__exportStar(require("./requests/itemProcessors/
|
|
42
|
-
__exportStar(require("./requests/itemProcessors/
|
|
41
|
+
__exportStar(require("./requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters"), exports);
|
|
42
|
+
__exportStar(require("./requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor"), exports);
|
|
43
43
|
__exportStar(require("./requests/itemProcessors/GenericRequestItemProcessor"), exports);
|
|
44
44
|
__exportStar(require("./requests/itemProcessors/IRequestItemProcessor"), exports);
|
|
45
45
|
__exportStar(require("./requests/itemProcessors/ProcessorConstructor"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,gFAA6D;AAC7D,oFAAiE;AACjE,0FAAuE;AACvE,oEAAiD;AACjD,6EAA0D;AAC1D,iFAA8D;AAC9D,gFAA6D;AAC7D,yEAAsD;AACtD,4DAAyC;AACzC,uDAAoC;AACpC,oDAAiC;AACjC,uHAAoG;AACpG,iGAA8E;AAC9E,yFAAsE;AACtE,8FAA2E;AAC3E,yFAAsE;AACtE,qFAAkE;AAClE,yFAAsE;AACtE,uFAAoE;AACpE,iFAA8D;AAC9D,iGAA8E;AAC9E,6HAA0G;AAC1G,yFAAsE;AACtE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,gFAA6D;AAC7D,oFAAiE;AACjE,0FAAuE;AACvE,oEAAiD;AACjD,6EAA0D;AAC1D,iFAA8D;AAC9D,gFAA6D;AAC7D,yEAAsD;AACtD,4DAAyC;AACzC,uDAAoC;AACpC,oDAAiC;AACjC,uHAAoG;AACpG,iGAA8E;AAC9E,yFAAsE;AACtE,8FAA2E;AAC3E,yFAAsE;AACtE,qFAAkE;AAClE,yFAAsE;AACtE,uFAAoE;AACpE,iFAA8D;AAC9D,iGAA8E;AAC9E,6HAA0G;AAC1G,yFAAsE;AACtE,+IAA4H;AAC5H,wIAAqH;AACrH,wFAAqE;AACrE,kFAA+D;AAC/D,iFAA8D;AAC9D,yHAAsG;AACtG,kHAA+F;AAM/F,4GAAyF;AACzF,mFAAgE;AAChE,yFAAsE;AACtE,qHAAkG;AAClG,8GAA2F;AAC3F,6EAA0D;AAC1D,gEAA6C;AAC7C,sEAAmD;AACnD,8EAA2D;AAC3D,iEAA8C;AAC9C,gHAA6F;AAC7F,yJAAsI;AACtI,4GAAyF;AACzF,iFAA8D;AAC9D,wGAAqF;AACrF,0EAAuD;AACvD,2DAAwC;AACxC,gEAA6C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Serializable } from "@js-soft/ts-serval";
|
|
2
|
+
import { AcceptRequestItemParametersJSON } from "../../incoming/decide/AcceptRequestItemParameters";
|
|
3
|
+
export interface AcceptCreateRelationshipAttributeRequestItemParametersJSON extends AcceptRequestItemParametersJSON {
|
|
4
|
+
}
|
|
5
|
+
export declare class AcceptCreateRelationshipAttributeRequestItemParameters extends Serializable {
|
|
6
|
+
static from(value: AcceptCreateRelationshipAttributeRequestItemParametersJSON): AcceptCreateRelationshipAttributeRequestItemParameters;
|
|
7
|
+
}
|
|
@@ -6,15 +6,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.AcceptCreateRelationshipAttributeRequestItemParameters = void 0;
|
|
10
10
|
const ts_serval_1 = require("@js-soft/ts-serval");
|
|
11
|
-
let
|
|
11
|
+
let AcceptCreateRelationshipAttributeRequestItemParameters = class AcceptCreateRelationshipAttributeRequestItemParameters extends ts_serval_1.Serializable {
|
|
12
12
|
static from(value) {
|
|
13
13
|
return this.fromAny(value);
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
|
-
|
|
17
|
-
(0, ts_serval_1.type)("
|
|
18
|
-
],
|
|
19
|
-
exports.
|
|
20
|
-
//# sourceMappingURL=
|
|
16
|
+
AcceptCreateRelationshipAttributeRequestItemParameters = __decorate([
|
|
17
|
+
(0, ts_serval_1.type)("AcceptCreateRelationshipAttributeRequestItemParameters")
|
|
18
|
+
], AcceptCreateRelationshipAttributeRequestItemParameters);
|
|
19
|
+
exports.AcceptCreateRelationshipAttributeRequestItemParameters = AcceptCreateRelationshipAttributeRequestItemParameters;
|
|
20
|
+
//# sourceMappingURL=AcceptCreateRelationshipAttributeRequestItemParameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcceptCreateRelationshipAttributeRequestItemParameters.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kDAAuD;AAMvD,IAAa,sDAAsD,GAAnE,MAAa,sDAAuD,SAAQ,wBAAY;IAC7E,MAAM,CAAC,IAAI,CACd,KAAiE;QAEjE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;CACJ,CAAA;AANY,sDAAsD;IADlE,IAAA,gBAAI,EAAC,wDAAwD,CAAC;GAClD,sDAAsD,CAMlE;AANY,wHAAsD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CreateRelationshipAttributeAcceptResponseItem, CreateRelationshipAttributeRequestItem, RejectResponseItem, Request } from "@nmshd/content";
|
|
2
|
+
import { CoreAddress } from "@nmshd/transport";
|
|
3
|
+
import { GenericRequestItemProcessor } from "../GenericRequestItemProcessor";
|
|
4
|
+
import { LocalRequestInfo } from "../IRequestItemProcessor";
|
|
5
|
+
import { ValidationResult } from "../ValidationResult";
|
|
6
|
+
import { AcceptCreateRelationshipAttributeRequestItemParametersJSON } from "./AcceptCreateRelationshipAttributeRequestItemParameters";
|
|
7
|
+
export declare class CreateRelationshipAttributeRequestItemProcessor extends GenericRequestItemProcessor<CreateRelationshipAttributeRequestItem, AcceptCreateRelationshipAttributeRequestItemParametersJSON> {
|
|
8
|
+
canCreateOutgoingRequestItem(requestItem: CreateRelationshipAttributeRequestItem, _request: Request, _recipient: CoreAddress): ValidationResult | Promise<ValidationResult>;
|
|
9
|
+
accept(requestItem: CreateRelationshipAttributeRequestItem, _params: AcceptCreateRelationshipAttributeRequestItemParametersJSON, requestInfo: LocalRequestInfo): Promise<CreateRelationshipAttributeAcceptResponseItem>;
|
|
10
|
+
applyIncomingResponseItem(responseItem: CreateRelationshipAttributeAcceptResponseItem | RejectResponseItem, requestItem: CreateRelationshipAttributeRequestItem, requestInfo: LocalRequestInfo): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateRelationshipAttributeRequestItemProcessor = void 0;
|
|
4
|
+
const content_1 = require("@nmshd/content");
|
|
5
|
+
const consumption_1 = require("../../../../consumption");
|
|
6
|
+
const GenericRequestItemProcessor_1 = require("../GenericRequestItemProcessor");
|
|
7
|
+
const ValidationResult_1 = require("../ValidationResult");
|
|
8
|
+
class CreateRelationshipAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
9
|
+
canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
|
|
10
|
+
if (requestItem.attribute.owner.toString() !== "" &&
|
|
11
|
+
!requestItem.attribute.owner.equals(this.currentIdentityAddress)) {
|
|
12
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The owner of the given `attribute` can only be an empty string. This is because you can only send Attributes where the recipient of the Request is the owner anyway. And in order to avoid mistakes, the owner will be automatically filled for you."));
|
|
13
|
+
}
|
|
14
|
+
return ValidationResult_1.ValidationResult.success();
|
|
15
|
+
}
|
|
16
|
+
async accept(requestItem, _params, requestInfo) {
|
|
17
|
+
requestItem.attribute.owner ??= requestInfo.peer;
|
|
18
|
+
const peerLocalAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
19
|
+
content: requestItem.attribute,
|
|
20
|
+
peer: requestInfo.peer,
|
|
21
|
+
requestReference: requestInfo.id
|
|
22
|
+
});
|
|
23
|
+
return content_1.CreateRelationshipAttributeAcceptResponseItem.from({
|
|
24
|
+
result: content_1.ResponseItemResult.Accepted,
|
|
25
|
+
attributeId: peerLocalAttribute.id
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
|
|
29
|
+
if (!(responseItem instanceof content_1.CreateRelationshipAttributeAcceptResponseItem)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (requestItem.attribute.owner.toString() === "") {
|
|
33
|
+
requestItem.attribute.owner = this.currentIdentityAddress;
|
|
34
|
+
}
|
|
35
|
+
await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
36
|
+
id: responseItem.attributeId,
|
|
37
|
+
content: requestItem.attribute,
|
|
38
|
+
peer: requestInfo.peer,
|
|
39
|
+
requestReference: requestInfo.id
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.CreateRelationshipAttributeRequestItemProcessor = CreateRelationshipAttributeRequestItemProcessor;
|
|
44
|
+
//# sourceMappingURL=CreateRelationshipAttributeRequestItemProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateRelationshipAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.ts"],"names":[],"mappings":";;;AAAA,4CAMuB;AAEvB,yDAA2D;AAC3D,gFAA4E;AAE5E,0DAAsD;AAGtD,MAAa,+CAAgD,SAAQ,yDAGpE;IACmB,4BAA4B,CACxC,WAAmD,EACnD,QAAiB,EACjB,UAAuB;QAEvB,IACI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE;YAC7C,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAClE;YACE,OAAO,mCAAgB,CAAC,KAAK,CACzB,+BAAiB,CAAC,QAAQ,CAAC,kBAAkB,CACzC,sPAAsP,CACzP,CACJ,CAAA;SACJ;QAED,OAAO,mCAAgB,CAAC,OAAO,EAAE,CAAA;IACrC,CAAC;IAEe,KAAK,CAAC,MAAM,CACxB,WAAmD,EACnD,OAAmE,EACnE,WAA6B;QAE7B,WAAW,CAAC,SAAS,CAAC,KAAK,KAAK,WAAW,CAAC,IAAI,CAAA;QAEhD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,wBAAwB,CAAC;YAC5F,OAAO,EAAE,WAAW,CAAC,SAAS;YAC9B,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,gBAAgB,EAAE,WAAW,CAAC,EAAE;SACnC,CAAC,CAAA;QAEF,OAAO,uDAA6C,CAAC,IAAI,CAAC;YACtD,MAAM,EAAE,4BAAkB,CAAC,QAAQ;YACnC,WAAW,EAAE,kBAAkB,CAAC,EAAE;SACrC,CAAC,CAAA;IACN,CAAC;IAEe,KAAK,CAAC,yBAAyB,CAC3C,YAAgF,EAChF,WAAmD,EACnD,WAA6B;QAE7B,IAAI,CAAC,CAAC,YAAY,YAAY,uDAA6C,CAAC,EAAE;YAC1E,OAAM;SACT;QAED,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YAC/C,WAAW,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAA;SAC5D;QAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACjE,EAAE,EAAE,YAAY,CAAC,WAAW;YAC5B,OAAO,EAAE,WAAW,CAAC,SAAS;YAC9B,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,gBAAgB,EAAE,WAAW,CAAC,EAAE;SACnC,CAAC,CAAA;IACN,CAAC;CACJ;AA9DD,0GA8DC"}
|
package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js
CHANGED
|
@@ -27,7 +27,8 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
|
|
|
27
27
|
if (!foundAttribute) {
|
|
28
28
|
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
const ownerIsCurrentIdentity = this.accountController.identity.isMe(foundAttribute.content.owner);
|
|
31
|
+
if (!ownerIsCurrentIdentity) {
|
|
31
32
|
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
|
|
32
33
|
}
|
|
33
34
|
}
|
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,4CAQuB;AACvB,gDAAuE;AACvE,yDAA2D;AAC3D,6EAAyE;AACzE,gFAA4E;AAE5E,6EAAoD;AACpD,0DAAsD;AACtD,yGAGmD;AAEnD,MAAa,iCAAkC,SAAQ,yDAGtD;IACmB,4BAA4B,CACxC,WAAqC,EACrC,QAAiB,EACjB,SAAsB;QAEtB,MAAM,qBAAqB,GAAG,IAAA,uBAAa,EAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;QACtG,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE;YACjC,OAAO,qBAAqB,CAAA;SAC/B;QAED,OAAO,mCAAgB,CAAC,OAAO,EAAE,CAAA;IACrC,CAAC;IAEe,KAAK,CAAC,SAAS,CAC3B,YAAsC,EACtC,MAAoD,EACpD,WAA6B;QAE7B,MAAM,YAAY,GAAG,mFAAwC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE1E,IAAI,YAAY,CAAC,uBAAuB,EAAE,EAAE;YACxC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,iBAAiB,CAChF,YAAY,CAAC,mBAAmB,CACnC,CAAA;YAED,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,mCAAgB,CAAC,KAAK,CACzB,2BAAe,CAAC,OAAO,CAAC,cAAc,CAAC,+BAAc,EAAE,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CACpF,CAAA;aACJ;YAED,
|
|
1
|
+
{"version":3,"file":"ReadAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RejectResponseItem, Request, ShareAttributeAcceptResponseItem, ShareAttributeRequestItem } from "@nmshd/content";
|
|
2
2
|
import { CoreAddress } from "@nmshd/transport";
|
|
3
3
|
import { GenericRequestItemProcessor } from "../GenericRequestItemProcessor";
|
|
4
4
|
import { LocalRequestInfo } from "../IRequestItemProcessor";
|
|
5
5
|
import { ValidationResult } from "../ValidationResult";
|
|
6
6
|
import { AcceptShareAttributeRequestItemParametersJSON } from "./AcceptShareAttributeRequestItemParameters";
|
|
7
7
|
export declare class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor<ShareAttributeRequestItem, AcceptShareAttributeRequestItemParametersJSON> {
|
|
8
|
-
canCreateOutgoingRequestItem(requestItem: ShareAttributeRequestItem, _request: Request,
|
|
9
|
-
|
|
10
|
-
private
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
private isAttributeAlreadyShared;
|
|
14
|
-
private shareAttribute;
|
|
8
|
+
canCreateOutgoingRequestItem(requestItem: ShareAttributeRequestItem, _request: Request, _recipient: CoreAddress): ValidationResult | Promise<ValidationResult>;
|
|
9
|
+
private canCreateWithIdentityAttribute;
|
|
10
|
+
private canCreateWithRelationshipAttribute;
|
|
11
|
+
accept(requestItem: ShareAttributeRequestItem, _params: AcceptShareAttributeRequestItemParametersJSON, requestInfo: LocalRequestInfo): Promise<ShareAttributeAcceptResponseItem>;
|
|
12
|
+
applyIncomingResponseItem(responseItem: ShareAttributeAcceptResponseItem | RejectResponseItem, requestItem: ShareAttributeRequestItem, requestInfo: LocalRequestInfo): Promise<void>;
|
|
15
13
|
}
|
package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js
CHANGED
|
@@ -2,91 +2,53 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ShareAttributeRequestItemProcessor = void 0;
|
|
4
4
|
const content_1 = require("@nmshd/content");
|
|
5
|
-
const transport_1 = require("@nmshd/transport");
|
|
6
5
|
const consumption_1 = require("../../../../consumption");
|
|
7
6
|
const GenericRequestItemProcessor_1 = require("../GenericRequestItemProcessor");
|
|
8
7
|
const ValidationResult_1 = require("../ValidationResult");
|
|
9
8
|
class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(content_1.Attribute, requestItem.attributeId.toString()));
|
|
9
|
+
canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
|
|
10
|
+
if (requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
11
|
+
return this.canCreateWithIdentityAttribute(requestItem);
|
|
14
12
|
}
|
|
15
|
-
|
|
16
|
-
if (attributeOwnerValidationResult.isError()) {
|
|
17
|
-
return attributeOwnerValidationResult;
|
|
18
|
-
}
|
|
19
|
-
return ValidationResult_1.ValidationResult.success();
|
|
13
|
+
return this.canCreateWithRelationshipAttribute(requestItem.attribute);
|
|
20
14
|
}
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const attribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
|
|
27
|
-
if (!attribute) {
|
|
28
|
-
return false; // Should the containing Request move to Error state?
|
|
29
|
-
}
|
|
30
|
-
if (this.validateAttributeOwner(attribute.content, requestInfo.peer, this.currentIdentityAddress).isError()) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
validateAttributeOwner(attribute, sender, recipient) {
|
|
36
|
-
const attributeOwner = attribute.owner;
|
|
37
|
-
if (attribute instanceof content_1.IdentityAttribute) {
|
|
38
|
-
if (!attributeOwner.equals(recipient)) {
|
|
39
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Can only request sharing of identity attributes owned by the recipient."));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
if (attribute instanceof content_1.RelationshipAttribute) {
|
|
43
|
-
if (!attributeOwner.equals(recipient) && !attributeOwner.equals(sender)) {
|
|
44
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot request sharing of relationship attributes not owned by recipient or sender."));
|
|
45
|
-
}
|
|
15
|
+
canCreateWithIdentityAttribute(requestItem) {
|
|
16
|
+
const ownerIsEmpty = requestItem.attribute.owner.toString() === "";
|
|
17
|
+
const ownerIsCurrentIdentity = requestItem.attribute.owner.equals(this.currentIdentityAddress);
|
|
18
|
+
if (!ownerIsEmpty && !ownerIsCurrentIdentity) {
|
|
19
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The owner of the given `attribute` can only be an empty string. This is because you can only send Attributes where the recipient of the Request is the owner anyway. And in order to avoid mistakes, the owner will be automatically filled for you."));
|
|
46
20
|
}
|
|
47
21
|
return ValidationResult_1.ValidationResult.success();
|
|
48
22
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
async accept(requestItem, _params, _requestInfo) {
|
|
53
|
-
const attribute = (await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId));
|
|
54
|
-
if (!(await this.isAttributeAlreadyShared(attribute, requestItem.shareWith))) {
|
|
55
|
-
await this.shareAttribute(attribute, requestItem.shareWith);
|
|
56
|
-
}
|
|
57
|
-
return content_1.AcceptResponseItem.from({ result: content_1.ResponseItemResult.Accepted });
|
|
58
|
-
}
|
|
59
|
-
async isAttributeAlreadyShared(attribute, shareWith) {
|
|
60
|
-
if (attribute.content instanceof content_1.IdentityAttribute) {
|
|
61
|
-
return ((await this.consumptionController.attributes.getLocalAttributes({
|
|
62
|
-
"shareInfo.sourceAttribute": attribute.shareInfo.sourceAttribute.toString(),
|
|
63
|
-
"shareInfo.peer": shareWith.toString()
|
|
64
|
-
})).length > 0);
|
|
23
|
+
canCreateWithRelationshipAttribute(attribute) {
|
|
24
|
+
if (attribute.confidentiality === content_1.RelationshipAttributeConfidentiality.Private) {
|
|
25
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The confidentiality of the given `attribute` is private. Therefore you are not allowed to share it."));
|
|
65
26
|
}
|
|
66
|
-
return
|
|
67
|
-
"shareInfo.sourceAttribute": attribute.id.toString(),
|
|
68
|
-
"shareInfo.peer": shareWith.toString()
|
|
69
|
-
})).length > 0);
|
|
27
|
+
return ValidationResult_1.ValidationResult.success();
|
|
70
28
|
}
|
|
71
|
-
async
|
|
72
|
-
|
|
73
|
-
attribute
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
content: content_1.Request.from({
|
|
80
|
-
items: [createAttributeRequestItem]
|
|
81
|
-
})
|
|
29
|
+
async accept(requestItem, _params, requestInfo) {
|
|
30
|
+
if (requestItem.attribute.owner.toString() === "") {
|
|
31
|
+
requestItem.attribute.owner = requestInfo.peer;
|
|
32
|
+
}
|
|
33
|
+
const localAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
34
|
+
content: requestItem.attribute,
|
|
35
|
+
peer: requestInfo.peer,
|
|
36
|
+
requestReference: requestInfo.id
|
|
82
37
|
});
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
38
|
+
return content_1.ShareAttributeAcceptResponseItem.from({
|
|
39
|
+
attributeId: localAttribute.id,
|
|
40
|
+
result: content_1.ResponseItemResult.Accepted
|
|
86
41
|
});
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
42
|
+
}
|
|
43
|
+
async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
|
|
44
|
+
if (!(responseItem instanceof content_1.ShareAttributeAcceptResponseItem)) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
await this.consumptionController.attributes.createSharedLocalAttributeCopy({
|
|
48
|
+
attributeId: responseItem.attributeId,
|
|
49
|
+
sourceAttributeId: requestItem.sourceAttributeId,
|
|
50
|
+
peer: requestInfo.peer,
|
|
51
|
+
requestReference: requestInfo.id
|
|
90
52
|
});
|
|
91
53
|
}
|
|
92
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.ts"],"names":[],"mappings":";;;AAAA,4CASuB;
|
|
1
|
+
{"version":3,"file":"ShareAttributeRequestItemProcessor.js","sourceRoot":"","sources":["../../../../../src/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.ts"],"names":[],"mappings":";;;AAAA,4CASuB;AAEvB,yDAA2D;AAC3D,gFAA4E;AAE5E,0DAAsD;AAGtD,MAAa,kCAAmC,SAAQ,yDAGvD;IACmB,4BAA4B,CACxC,WAAsC,EACtC,QAAiB,EACjB,UAAuB;QAEvB,IAAI,WAAW,CAAC,SAAS,YAAY,2BAAiB,EAAE;YACpD,OAAO,IAAI,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAA;SAC1D;QAED,OAAO,IAAI,CAAC,kCAAkC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IACzE,CAAC;IAEO,8BAA8B,CAAC,WAAsC;QACzE,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;QAClE,MAAM,sBAAsB,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAC9F,IAAI,CAAC,YAAY,IAAI,CAAC,sBAAsB,EAAE;YAC1C,OAAO,mCAAgB,CAAC,KAAK,CACzB,+BAAiB,CAAC,QAAQ,CAAC,kBAAkB,CACzC,sPAAsP,CACzP,CACJ,CAAA;SACJ;QAED,OAAO,mCAAgB,CAAC,OAAO,EAAE,CAAA;IACrC,CAAC;IAEO,kCAAkC,CAAC,SAAgC;QACvE,IAAI,SAAS,CAAC,eAAe,KAAK,8CAAoC,CAAC,OAAO,EAAE;YAC5E,OAAO,mCAAgB,CAAC,KAAK,CACzB,+BAAiB,CAAC,QAAQ,CAAC,kBAAkB,CACzC,qGAAqG,CACxG,CACJ,CAAA;SACJ;QAED,OAAO,mCAAgB,CAAC,OAAO,EAAE,CAAA;IACrC,CAAC;IAEe,KAAK,CAAC,MAAM,CACxB,WAAsC,EACtC,OAAsD,EACtD,WAA6B;QAE7B,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YAC/C,WAAW,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAA;SACjD;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACxF,OAAO,EAAE,WAAW,CAAC,SAAS;YAC9B,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,gBAAgB,EAAE,WAAW,CAAC,EAAE;SACnC,CAAC,CAAA;QAEF,OAAO,0CAAgC,CAAC,IAAI,CAAC;YACzC,WAAW,EAAE,cAAc,CAAC,EAAE;YAC9B,MAAM,EAAE,4BAAkB,CAAC,QAAQ;SACtC,CAAC,CAAA;IACN,CAAC;IAEe,KAAK,CAAC,yBAAyB,CAC3C,YAAmE,EACnE,WAAsC,EACtC,WAA6B;QAE7B,IAAI,CAAC,CAAC,YAAY,YAAY,0CAAgC,CAAC,EAAE;YAC7D,OAAM;SACT;QAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,8BAA8B,CAAC;YACvE,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;YAChD,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,gBAAgB,EAAE,WAAW,CAAC,EAAE;SACnC,CAAC,CAAA;IACN,CAAC;CACJ;AA/ED,gFA+EC"}
|