@nmshd/consumption 2.0.0-beta.6 → 2.0.0-beta.9
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 -3
- 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/GenericRequestItemProcessor.d.ts +1 -1
- package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/IRequestItemProcessor.d.ts +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/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts +1 -1
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts +1 -1
- 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/dist/modules/requests/itemProcessors/utility/validateQuery.d.ts +1 -1
- package/dist/modules/requests/itemProcessors/utility/validateQuery.js.map +1 -1
- package/dist/modules/requests/outgoing/OutgoingRequestsController.d.ts +2 -1
- package/dist/modules/requests/outgoing/OutgoingRequestsController.js +2 -1
- package/dist/modules/requests/outgoing/OutgoingRequestsController.js.map +1 -1
- package/dist/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.d.ts +13 -0
- package/dist/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.js +35 -0
- package/dist/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.js.map +1 -0
- package/lib-web/nmshd.consumption.js +124 -130
- 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 +8 -8
- 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/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CanCreateOutgoingRequestParameters = void 0;
|
|
13
|
+
const ts_serval_1 = require("@js-soft/ts-serval");
|
|
14
|
+
const content_1 = require("@nmshd/content");
|
|
15
|
+
const transport_1 = require("@nmshd/transport");
|
|
16
|
+
let CanCreateOutgoingRequestParameters = class CanCreateOutgoingRequestParameters extends ts_serval_1.Serializable {
|
|
17
|
+
static from(value) {
|
|
18
|
+
return this.fromAny(value);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, ts_serval_1.serialize)(),
|
|
23
|
+
(0, ts_serval_1.validate)(),
|
|
24
|
+
__metadata("design:type", content_1.Request)
|
|
25
|
+
], CanCreateOutgoingRequestParameters.prototype, "content", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, ts_serval_1.serialize)(),
|
|
28
|
+
(0, ts_serval_1.validate)({ nullable: true }),
|
|
29
|
+
__metadata("design:type", transport_1.CoreAddress)
|
|
30
|
+
], CanCreateOutgoingRequestParameters.prototype, "peer", void 0);
|
|
31
|
+
CanCreateOutgoingRequestParameters = __decorate([
|
|
32
|
+
(0, ts_serval_1.type)("CanCreateOutgoingRequestParameters")
|
|
33
|
+
], CanCreateOutgoingRequestParameters);
|
|
34
|
+
exports.CanCreateOutgoingRequestParameters = CanCreateOutgoingRequestParameters;
|
|
35
|
+
//# sourceMappingURL=CanCreateOutgoingRequestParameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanCreateOutgoingRequestParameters.js","sourceRoot":"","sources":["../../../../../src/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA2F;AAC3F,4CAAwC;AACxC,gDAA4D;AAS5D,IAAa,kCAAkC,GAA/C,MAAa,kCAAmC,SAAQ,wBAAY;IASzD,MAAM,CAAC,IAAI,CAAC,KAA0C;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;CACJ,CAAA;AATG;IAFC,IAAA,qBAAS,GAAE;IACX,IAAA,oBAAQ,GAAE;8BACK,iBAAO;mEAAA;AAIvB;IAFC,IAAA,qBAAS,GAAE;IACX,IAAA,oBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACf,uBAAW;gEAAA;AAPhB,kCAAkC;IAD9C,IAAA,gBAAI,EAAC,oCAAoC,CAAC;GAC9B,kCAAkC,CAY9C;AAZY,gFAAkC"}
|
|
@@ -17,10 +17,10 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
|
17
17
|
const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
|
|
18
18
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
19
19
|
exports.buildInformation = {
|
|
20
|
-
version: "2.0.0-beta.
|
|
21
|
-
build: "
|
|
22
|
-
date: "2022-08-
|
|
23
|
-
commit: "
|
|
20
|
+
version: "2.0.0-beta.9",
|
|
21
|
+
build: "59",
|
|
22
|
+
date: "2022-08-24T11:52:09+00:00",
|
|
23
|
+
commit: "22ab42d566e3d72aa8a0a98d78bd4d9900d6efdc",
|
|
24
24
|
dependencies: {"@js-soft/docdb-querytranslator":"^1.1.0","ts-simple-nameof":"^1.3.1"},
|
|
25
25
|
libraries: {
|
|
26
26
|
transport: transport_1.buildInformation,
|
|
@@ -120,11 +120,12 @@ class ConsumptionController {
|
|
|
120
120
|
}
|
|
121
121
|
getDefaultProcessors() {
|
|
122
122
|
return new Map([
|
|
123
|
-
[content_1.
|
|
123
|
+
[content_1.ShareAttributeRequestItem, modules_1.ShareAttributeRequestItemProcessor],
|
|
124
|
+
[content_1.CreateRelationshipAttributeRequestItem, modules_1.CreateRelationshipAttributeRequestItemProcessor],
|
|
124
125
|
[content_1.ReadAttributeRequestItem, modules_1.ReadAttributeRequestItemProcessor],
|
|
125
126
|
[content_1.ProposeAttributeRequestItem, modules_1.ProposeAttributeRequestItemProcessor],
|
|
126
|
-
[content_1.
|
|
127
|
-
[content_1.
|
|
127
|
+
[content_1.ConsentRequestItem, modules_1.GenericRequestItemProcessor],
|
|
128
|
+
[content_1.AuthenticationRequestItem, modules_1.GenericRequestItemProcessor]
|
|
128
129
|
]);
|
|
129
130
|
}
|
|
130
131
|
}
|
|
@@ -1335,8 +1336,8 @@ __exportStar(__webpack_require__(/*! ./requests/incoming/IncomingRequestsControl
|
|
|
1335
1336
|
__exportStar(__webpack_require__(/*! ./requests/incoming/received/ReceivedIncomingRequestParameters */ "./dist/modules/requests/incoming/received/ReceivedIncomingRequestParameters.js"), exports);
|
|
1336
1337
|
__exportStar(__webpack_require__(/*! ./requests/incoming/requireManualDecision/RequireManualDecisionOfIncomingRequestParameters */ "./dist/modules/requests/incoming/requireManualDecision/RequireManualDecisionOfIncomingRequestParameters.js"), exports);
|
|
1337
1338
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/AbstractRequestItemProcessor */ "./dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js"), exports);
|
|
1338
|
-
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/
|
|
1339
|
-
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/
|
|
1339
|
+
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters */ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js"), exports);
|
|
1340
|
+
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor */ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js"), exports);
|
|
1340
1341
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js"), exports);
|
|
1341
1342
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/IRequestItemProcessor */ "./dist/modules/requests/itemProcessors/IRequestItemProcessor.js"), exports);
|
|
1342
1343
|
__exportStar(__webpack_require__(/*! ./requests/itemProcessors/ProcessorConstructor */ "./dist/modules/requests/itemProcessors/ProcessorConstructor.js"), exports);
|
|
@@ -2379,10 +2380,10 @@ exports.ErrorValidationResult = ErrorValidationResult;
|
|
|
2379
2380
|
|
|
2380
2381
|
/***/ }),
|
|
2381
2382
|
|
|
2382
|
-
/***/ "./dist/modules/requests/itemProcessors/
|
|
2383
|
-
|
|
2384
|
-
!*** ./dist/modules/requests/itemProcessors/
|
|
2385
|
-
|
|
2383
|
+
/***/ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js":
|
|
2384
|
+
/*!************************************************************************************************************************************!*\
|
|
2385
|
+
!*** ./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js ***!
|
|
2386
|
+
\************************************************************************************************************************************/
|
|
2386
2387
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
2387
2388
|
|
|
2388
2389
|
"use strict";
|
|
@@ -2394,88 +2395,72 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
2394
2395
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2395
2396
|
};
|
|
2396
2397
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2397
|
-
exports.
|
|
2398
|
+
exports.AcceptCreateRelationshipAttributeRequestItemParameters = void 0;
|
|
2398
2399
|
const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
|
|
2399
|
-
let
|
|
2400
|
+
let AcceptCreateRelationshipAttributeRequestItemParameters = class AcceptCreateRelationshipAttributeRequestItemParameters extends ts_serval_1.Serializable {
|
|
2400
2401
|
static from(value) {
|
|
2401
2402
|
return this.fromAny(value);
|
|
2402
2403
|
}
|
|
2403
2404
|
};
|
|
2404
|
-
|
|
2405
|
-
(0, ts_serval_1.type)("
|
|
2406
|
-
],
|
|
2407
|
-
exports.
|
|
2408
|
-
//# sourceMappingURL=
|
|
2405
|
+
AcceptCreateRelationshipAttributeRequestItemParameters = __decorate([
|
|
2406
|
+
(0, ts_serval_1.type)("AcceptCreateRelationshipAttributeRequestItemParameters")
|
|
2407
|
+
], AcceptCreateRelationshipAttributeRequestItemParameters);
|
|
2408
|
+
exports.AcceptCreateRelationshipAttributeRequestItemParameters = AcceptCreateRelationshipAttributeRequestItemParameters;
|
|
2409
|
+
//# sourceMappingURL=AcceptCreateRelationshipAttributeRequestItemParameters.js.map
|
|
2409
2410
|
|
|
2410
2411
|
/***/ }),
|
|
2411
2412
|
|
|
2412
|
-
/***/ "./dist/modules/requests/itemProcessors/
|
|
2413
|
-
|
|
2414
|
-
!*** ./dist/modules/requests/itemProcessors/
|
|
2415
|
-
|
|
2413
|
+
/***/ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js":
|
|
2414
|
+
/*!*****************************************************************************************************************************!*\
|
|
2415
|
+
!*** ./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js ***!
|
|
2416
|
+
\*****************************************************************************************************************************/
|
|
2416
2417
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2417
2418
|
|
|
2418
2419
|
"use strict";
|
|
2419
2420
|
|
|
2420
2421
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2421
|
-
exports.
|
|
2422
|
+
exports.CreateRelationshipAttributeRequestItemProcessor = void 0;
|
|
2422
2423
|
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
2423
2424
|
const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
|
|
2424
2425
|
const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
|
|
2425
2426
|
const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
|
|
2426
|
-
class
|
|
2427
|
+
class CreateRelationshipAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
2427
2428
|
canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
|
|
2428
2429
|
if (requestItem.attribute.owner.toString() !== "" &&
|
|
2429
2430
|
!requestItem.attribute.owner.equals(this.currentIdentityAddress)) {
|
|
2430
2431
|
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."));
|
|
2431
2432
|
}
|
|
2432
|
-
if (requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
2433
|
-
return this.canCreateRequestItemWithIdentityAttribute(requestItem);
|
|
2434
|
-
}
|
|
2435
|
-
return ValidationResult_1.ValidationResult.success();
|
|
2436
|
-
}
|
|
2437
|
-
canCreateRequestItemWithIdentityAttribute(requestItem) {
|
|
2438
|
-
if (!requestItem.sourceAttributeId) {
|
|
2439
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("'sourceAttributeId' cannot be undefined when sending an Identity Attribute."));
|
|
2440
|
-
}
|
|
2441
2433
|
return ValidationResult_1.ValidationResult.success();
|
|
2442
2434
|
}
|
|
2443
2435
|
async accept(requestItem, _params, requestInfo) {
|
|
2436
|
+
requestItem.attribute.owner ??= requestInfo.peer;
|
|
2444
2437
|
const peerLocalAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2445
2438
|
content: requestItem.attribute,
|
|
2446
2439
|
peer: requestInfo.peer,
|
|
2447
2440
|
requestReference: requestInfo.id
|
|
2448
2441
|
});
|
|
2449
|
-
return content_1.
|
|
2450
|
-
|
|
2451
|
-
|
|
2442
|
+
return content_1.CreateRelationshipAttributeAcceptResponseItem.from({
|
|
2443
|
+
result: content_1.ResponseItemResult.Accepted,
|
|
2444
|
+
attributeId: peerLocalAttribute.id
|
|
2452
2445
|
});
|
|
2453
2446
|
}
|
|
2454
2447
|
async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
|
|
2455
|
-
if (!(responseItem instanceof content_1.
|
|
2448
|
+
if (!(responseItem instanceof content_1.CreateRelationshipAttributeAcceptResponseItem)) {
|
|
2456
2449
|
return;
|
|
2457
2450
|
}
|
|
2458
|
-
if (requestItem.
|
|
2459
|
-
|
|
2460
|
-
await this.consumptionController.attributes.createSharedLocalAttributeCopy({
|
|
2461
|
-
attributeId: responseItem.attributeId,
|
|
2462
|
-
sourceAttributeId: sourceAttribute.id,
|
|
2463
|
-
peer: requestInfo.peer,
|
|
2464
|
-
requestReference: requestInfo.id
|
|
2465
|
-
});
|
|
2466
|
-
}
|
|
2467
|
-
else {
|
|
2468
|
-
await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2469
|
-
id: responseItem.attributeId,
|
|
2470
|
-
content: requestItem.attribute,
|
|
2471
|
-
peer: requestInfo.peer,
|
|
2472
|
-
requestReference: requestInfo.id
|
|
2473
|
-
});
|
|
2451
|
+
if (requestItem.attribute.owner.toString() === "") {
|
|
2452
|
+
requestItem.attribute.owner = this.currentIdentityAddress;
|
|
2474
2453
|
}
|
|
2454
|
+
await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2455
|
+
id: responseItem.attributeId,
|
|
2456
|
+
content: requestItem.attribute,
|
|
2457
|
+
peer: requestInfo.peer,
|
|
2458
|
+
requestReference: requestInfo.id
|
|
2459
|
+
});
|
|
2475
2460
|
}
|
|
2476
2461
|
}
|
|
2477
|
-
exports.
|
|
2478
|
-
//# sourceMappingURL=
|
|
2462
|
+
exports.CreateRelationshipAttributeRequestItemProcessor = CreateRelationshipAttributeRequestItemProcessor;
|
|
2463
|
+
//# sourceMappingURL=CreateRelationshipAttributeRequestItemProcessor.js.map
|
|
2479
2464
|
|
|
2480
2465
|
/***/ }),
|
|
2481
2466
|
|
|
@@ -2756,7 +2741,8 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
|
|
|
2756
2741
|
if (!foundAttribute) {
|
|
2757
2742
|
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
|
|
2758
2743
|
}
|
|
2759
|
-
|
|
2744
|
+
const ownerIsCurrentIdentity = this.accountController.identity.isMe(foundAttribute.content.owner);
|
|
2745
|
+
if (!ownerIsCurrentIdentity) {
|
|
2760
2746
|
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
|
|
2761
2747
|
}
|
|
2762
2748
|
}
|
|
@@ -2859,91 +2845,53 @@ exports.AcceptShareAttributeRequestItemParameters = AcceptShareAttributeRequestI
|
|
|
2859
2845
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2860
2846
|
exports.ShareAttributeRequestItemProcessor = void 0;
|
|
2861
2847
|
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
2862
|
-
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
2863
2848
|
const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
|
|
2864
2849
|
const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
|
|
2865
2850
|
const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
|
|
2866
2851
|
class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(content_1.Attribute, requestItem.attributeId.toString()));
|
|
2871
|
-
}
|
|
2872
|
-
const attributeOwnerValidationResult = this.validateAttributeOwner(attribute.content, this.currentIdentityAddress, recipient);
|
|
2873
|
-
if (attributeOwnerValidationResult.isError()) {
|
|
2874
|
-
return attributeOwnerValidationResult;
|
|
2875
|
-
}
|
|
2876
|
-
return ValidationResult_1.ValidationResult.success();
|
|
2877
|
-
}
|
|
2878
|
-
async checkPrerequisitesOfIncomingRequestItem(requestItem, requestInfo) {
|
|
2879
|
-
const relationshipToShareWith = await this.accountController.relationships.getRelationshipToIdentity(requestItem.shareWith);
|
|
2880
|
-
if (!relationshipToShareWith) {
|
|
2881
|
-
return false; // Should the containing Request move to Error state?
|
|
2882
|
-
}
|
|
2883
|
-
const attribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
|
|
2884
|
-
if (!attribute) {
|
|
2885
|
-
return false; // Should the containing Request move to Error state?
|
|
2886
|
-
}
|
|
2887
|
-
if (this.validateAttributeOwner(attribute.content, requestInfo.peer, this.currentIdentityAddress).isError()) {
|
|
2888
|
-
return false;
|
|
2852
|
+
canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
|
|
2853
|
+
if (requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
2854
|
+
return this.canCreateWithIdentityAttribute(requestItem);
|
|
2889
2855
|
}
|
|
2890
|
-
return
|
|
2856
|
+
return this.canCreateWithRelationshipAttribute(requestItem.attribute);
|
|
2891
2857
|
}
|
|
2892
|
-
|
|
2893
|
-
const
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
}
|
|
2898
|
-
}
|
|
2899
|
-
if (attribute instanceof content_1.RelationshipAttribute) {
|
|
2900
|
-
if (!attributeOwner.equals(recipient) && !attributeOwner.equals(sender)) {
|
|
2901
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot request sharing of relationship attributes not owned by recipient or sender."));
|
|
2902
|
-
}
|
|
2858
|
+
canCreateWithIdentityAttribute(requestItem) {
|
|
2859
|
+
const ownerIsEmpty = requestItem.attribute.owner.toString() === "";
|
|
2860
|
+
const ownerIsCurrentIdentity = requestItem.attribute.owner.equals(this.currentIdentityAddress);
|
|
2861
|
+
if (!ownerIsEmpty && !ownerIsCurrentIdentity) {
|
|
2862
|
+
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."));
|
|
2903
2863
|
}
|
|
2904
2864
|
return ValidationResult_1.ValidationResult.success();
|
|
2905
2865
|
}
|
|
2906
|
-
|
|
2866
|
+
canCreateWithRelationshipAttribute(attribute) {
|
|
2867
|
+
if (attribute.confidentiality === content_1.RelationshipAttributeConfidentiality.Private) {
|
|
2868
|
+
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."));
|
|
2869
|
+
}
|
|
2907
2870
|
return ValidationResult_1.ValidationResult.success();
|
|
2908
2871
|
}
|
|
2909
|
-
async accept(requestItem, _params,
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
await this.shareAttribute(attribute, requestItem.shareWith);
|
|
2872
|
+
async accept(requestItem, _params, requestInfo) {
|
|
2873
|
+
if (requestItem.attribute.owner.toString() === "") {
|
|
2874
|
+
requestItem.attribute.owner = requestInfo.peer;
|
|
2913
2875
|
}
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
return ((await this.consumptionController.attributes.getLocalAttributes({
|
|
2919
|
-
"shareInfo.sourceAttribute": attribute.shareInfo.sourceAttribute.toString(),
|
|
2920
|
-
"shareInfo.peer": shareWith.toString()
|
|
2921
|
-
})).length > 0);
|
|
2922
|
-
}
|
|
2923
|
-
return ((await this.consumptionController.attributes.getLocalAttributes({
|
|
2924
|
-
"shareInfo.sourceAttribute": attribute.id.toString(),
|
|
2925
|
-
"shareInfo.peer": shareWith.toString()
|
|
2926
|
-
})).length > 0);
|
|
2927
|
-
}
|
|
2928
|
-
async shareAttribute(attribute, shareWith) {
|
|
2929
|
-
const createAttributeRequestItem = content_1.CreateAttributeRequestItem.from({
|
|
2930
|
-
attribute: attribute.content,
|
|
2931
|
-
mustBeAccepted: true,
|
|
2932
|
-
sourceAttributeId: attribute.id
|
|
2933
|
-
});
|
|
2934
|
-
const createAttributeRequest = await this.consumptionController.outgoingRequests.create({
|
|
2935
|
-
peer: shareWith,
|
|
2936
|
-
content: content_1.Request.from({
|
|
2937
|
-
items: [createAttributeRequestItem]
|
|
2938
|
-
})
|
|
2876
|
+
const localAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
|
|
2877
|
+
content: requestItem.attribute,
|
|
2878
|
+
peer: requestInfo.peer,
|
|
2879
|
+
requestReference: requestInfo.id
|
|
2939
2880
|
});
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2881
|
+
return content_1.ShareAttributeAcceptResponseItem.from({
|
|
2882
|
+
attributeId: localAttribute.id,
|
|
2883
|
+
result: content_1.ResponseItemResult.Accepted
|
|
2943
2884
|
});
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2885
|
+
}
|
|
2886
|
+
async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
|
|
2887
|
+
if (!(responseItem instanceof content_1.ShareAttributeAcceptResponseItem)) {
|
|
2888
|
+
return;
|
|
2889
|
+
}
|
|
2890
|
+
await this.consumptionController.attributes.createSharedLocalAttributeCopy({
|
|
2891
|
+
attributeId: responseItem.attributeId,
|
|
2892
|
+
sourceAttributeId: requestItem.sourceAttributeId,
|
|
2893
|
+
peer: requestInfo.peer,
|
|
2894
|
+
requestReference: requestInfo.id
|
|
2947
2895
|
});
|
|
2948
2896
|
}
|
|
2949
2897
|
}
|
|
@@ -3268,6 +3216,7 @@ const LocalRequestStatus_1 = __webpack_require__(/*! ../local/LocalRequestStatus
|
|
|
3268
3216
|
const LocalResponse_1 = __webpack_require__(/*! ../local/LocalResponse */ "./dist/modules/requests/local/LocalResponse.js");
|
|
3269
3217
|
const CompleteOutgoingRequestParameters_1 = __webpack_require__(/*! ./completeOutgoingRequest/CompleteOutgoingRequestParameters */ "./dist/modules/requests/outgoing/completeOutgoingRequest/CompleteOutgoingRequestParameters.js");
|
|
3270
3218
|
const CreateOutgoingRequestFromRelationshipCreationChangeParameters_1 = __webpack_require__(/*! ./createFromRelationshipCreationChange/CreateOutgoingRequestFromRelationshipCreationChangeParameters */ "./dist/modules/requests/outgoing/createFromRelationshipCreationChange/CreateOutgoingRequestFromRelationshipCreationChangeParameters.js");
|
|
3219
|
+
const CanCreateOutgoingRequestParameters_1 = __webpack_require__(/*! ./createOutgoingRequest/CanCreateOutgoingRequestParameters */ "./dist/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.js");
|
|
3271
3220
|
const CreateOutgoingRequestParameters_1 = __webpack_require__(/*! ./createOutgoingRequest/CreateOutgoingRequestParameters */ "./dist/modules/requests/outgoing/createOutgoingRequest/CreateOutgoingRequestParameters.js");
|
|
3272
3221
|
const SentOutgoingRequestParameters_1 = __webpack_require__(/*! ./sentOutgoingRequest/SentOutgoingRequestParameters */ "./dist/modules/requests/outgoing/sentOutgoingRequest/SentOutgoingRequestParameters.js");
|
|
3273
3222
|
class OutgoingRequestsController extends consumption_1.ConsumptionBaseController {
|
|
@@ -3279,7 +3228,7 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
3279
3228
|
this.identity = identity;
|
|
3280
3229
|
}
|
|
3281
3230
|
async canCreate(params) {
|
|
3282
|
-
const parsedParams =
|
|
3231
|
+
const parsedParams = CanCreateOutgoingRequestParameters_1.CanCreateOutgoingRequestParameters.from(params);
|
|
3283
3232
|
const innerResults = await this.canCreateItems(parsedParams.content, parsedParams.peer);
|
|
3284
3233
|
const result = ValidationResult_1.ValidationResult.fromItems(innerResults);
|
|
3285
3234
|
return result;
|
|
@@ -3607,6 +3556,51 @@ exports.CreateOutgoingRequestFromRelationshipCreationChangeParameters = CreateOu
|
|
|
3607
3556
|
|
|
3608
3557
|
/***/ }),
|
|
3609
3558
|
|
|
3559
|
+
/***/ "./dist/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.js":
|
|
3560
|
+
/*!****************************************************************************************************!*\
|
|
3561
|
+
!*** ./dist/modules/requests/outgoing/createOutgoingRequest/CanCreateOutgoingRequestParameters.js ***!
|
|
3562
|
+
\****************************************************************************************************/
|
|
3563
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
3564
|
+
|
|
3565
|
+
"use strict";
|
|
3566
|
+
|
|
3567
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3568
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3569
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
3570
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
3571
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
3572
|
+
};
|
|
3573
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
3574
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
3575
|
+
};
|
|
3576
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
3577
|
+
exports.CanCreateOutgoingRequestParameters = void 0;
|
|
3578
|
+
const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
|
|
3579
|
+
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
3580
|
+
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
3581
|
+
let CanCreateOutgoingRequestParameters = class CanCreateOutgoingRequestParameters extends ts_serval_1.Serializable {
|
|
3582
|
+
static from(value) {
|
|
3583
|
+
return this.fromAny(value);
|
|
3584
|
+
}
|
|
3585
|
+
};
|
|
3586
|
+
__decorate([
|
|
3587
|
+
(0, ts_serval_1.serialize)(),
|
|
3588
|
+
(0, ts_serval_1.validate)(),
|
|
3589
|
+
__metadata("design:type", content_1.Request)
|
|
3590
|
+
], CanCreateOutgoingRequestParameters.prototype, "content", void 0);
|
|
3591
|
+
__decorate([
|
|
3592
|
+
(0, ts_serval_1.serialize)(),
|
|
3593
|
+
(0, ts_serval_1.validate)({ nullable: true }),
|
|
3594
|
+
__metadata("design:type", transport_1.CoreAddress)
|
|
3595
|
+
], CanCreateOutgoingRequestParameters.prototype, "peer", void 0);
|
|
3596
|
+
CanCreateOutgoingRequestParameters = __decorate([
|
|
3597
|
+
(0, ts_serval_1.type)("CanCreateOutgoingRequestParameters")
|
|
3598
|
+
], CanCreateOutgoingRequestParameters);
|
|
3599
|
+
exports.CanCreateOutgoingRequestParameters = CanCreateOutgoingRequestParameters;
|
|
3600
|
+
//# sourceMappingURL=CanCreateOutgoingRequestParameters.js.map
|
|
3601
|
+
|
|
3602
|
+
/***/ }),
|
|
3603
|
+
|
|
3610
3604
|
/***/ "./dist/modules/requests/outgoing/createOutgoingRequest/CreateOutgoingRequestParameters.js":
|
|
3611
3605
|
/*!*************************************************************************************************!*\
|
|
3612
3606
|
!*** ./dist/modules/requests/outgoing/createOutgoingRequest/CreateOutgoingRequestParameters.js ***!
|