@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.
Files changed (27) hide show
  1. package/dist/buildInformation.js +4 -4
  2. package/dist/consumption/ConsumptionController.js +4 -2
  3. package/dist/consumption/ConsumptionController.js.map +1 -1
  4. package/dist/modules/index.d.ts +2 -2
  5. package/dist/modules/index.js +2 -2
  6. package/dist/modules/index.js.map +1 -1
  7. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.d.ts +7 -0
  8. package/dist/modules/requests/itemProcessors/{createAttribute/AcceptCreateAttributeRequestItemParameters.js → createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js} +7 -7
  9. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js.map +1 -0
  10. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.d.ts +11 -0
  11. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js +44 -0
  12. package/dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js.map +1 -0
  13. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +2 -1
  14. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
  15. package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.d.ts +6 -8
  16. package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js +34 -72
  17. package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js.map +1 -1
  18. package/lib-web/nmshd.consumption.js +78 -129
  19. package/lib-web/nmshd.consumption.js.map +1 -1
  20. package/lib-web/nmshd.consumption.min.js +1 -1
  21. package/lib-web/nmshd.consumption.min.js.map +1 -1
  22. package/package.json +5 -5
  23. package/dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.d.ts +0 -7
  24. package/dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.js.map +0 -1
  25. package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.d.ts +0 -12
  26. package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js +0 -60
  27. package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js.map +0 -1
@@ -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.5",
21
- build: "55",
22
- date: "2022-08-02T14:10:27+00:00",
23
- commit: "a910348a6c8c7ba541017cbc90d2fba2add16b68",
20
+ version: "2.0.0-beta.8",
21
+ build: "58",
22
+ date: "2022-08-05T15:16:19+00:00",
23
+ commit: "e415cd06c69fd35f17d74f93d50a47c88f145137",
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,10 +120,12 @@ class ConsumptionController {
120
120
  }
121
121
  getDefaultProcessors() {
122
122
  return new Map([
123
- [content_1.CreateAttributeRequestItem, modules_1.CreateAttributeRequestItemProcessor],
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.ShareAttributeRequestItem, modules_1.ShareAttributeRequestItemProcessor]
127
+ [content_1.ConsentRequestItem, modules_1.GenericRequestItemProcessor],
128
+ [content_1.AuthenticationRequestItem, modules_1.GenericRequestItemProcessor]
127
129
  ]);
128
130
  }
129
131
  }
@@ -1334,8 +1336,8 @@ __exportStar(__webpack_require__(/*! ./requests/incoming/IncomingRequestsControl
1334
1336
  __exportStar(__webpack_require__(/*! ./requests/incoming/received/ReceivedIncomingRequestParameters */ "./dist/modules/requests/incoming/received/ReceivedIncomingRequestParameters.js"), exports);
1335
1337
  __exportStar(__webpack_require__(/*! ./requests/incoming/requireManualDecision/RequireManualDecisionOfIncomingRequestParameters */ "./dist/modules/requests/incoming/requireManualDecision/RequireManualDecisionOfIncomingRequestParameters.js"), exports);
1336
1338
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/AbstractRequestItemProcessor */ "./dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js"), exports);
1337
- __exportStar(__webpack_require__(/*! ./requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters */ "./dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.js"), exports);
1338
- __exportStar(__webpack_require__(/*! ./requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor */ "./dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js"), exports);
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);
1339
1341
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js"), exports);
1340
1342
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/IRequestItemProcessor */ "./dist/modules/requests/itemProcessors/IRequestItemProcessor.js"), exports);
1341
1343
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/ProcessorConstructor */ "./dist/modules/requests/itemProcessors/ProcessorConstructor.js"), exports);
@@ -2378,10 +2380,10 @@ exports.ErrorValidationResult = ErrorValidationResult;
2378
2380
 
2379
2381
  /***/ }),
2380
2382
 
2381
- /***/ "./dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.js":
2382
- /*!************************************************************************************************************!*\
2383
- !*** ./dist/modules/requests/itemProcessors/createAttribute/AcceptCreateAttributeRequestItemParameters.js ***!
2384
- \************************************************************************************************************/
2383
+ /***/ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js":
2384
+ /*!************************************************************************************************************************************!*\
2385
+ !*** ./dist/modules/requests/itemProcessors/createRelationshipAttribute/AcceptCreateRelationshipAttributeRequestItemParameters.js ***!
2386
+ \************************************************************************************************************************************/
2385
2387
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2386
2388
 
2387
2389
  "use strict";
@@ -2393,88 +2395,72 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
2393
2395
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2394
2396
  };
2395
2397
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2396
- exports.AcceptCreateAttributeRequestItemParameters = void 0;
2398
+ exports.AcceptCreateRelationshipAttributeRequestItemParameters = void 0;
2397
2399
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
2398
- let AcceptCreateAttributeRequestItemParameters = class AcceptCreateAttributeRequestItemParameters extends ts_serval_1.Serializable {
2400
+ let AcceptCreateRelationshipAttributeRequestItemParameters = class AcceptCreateRelationshipAttributeRequestItemParameters extends ts_serval_1.Serializable {
2399
2401
  static from(value) {
2400
2402
  return this.fromAny(value);
2401
2403
  }
2402
2404
  };
2403
- AcceptCreateAttributeRequestItemParameters = __decorate([
2404
- (0, ts_serval_1.type)("AcceptCreateAttributeRequestItemParameters")
2405
- ], AcceptCreateAttributeRequestItemParameters);
2406
- exports.AcceptCreateAttributeRequestItemParameters = AcceptCreateAttributeRequestItemParameters;
2407
- //# sourceMappingURL=AcceptCreateAttributeRequestItemParameters.js.map
2405
+ AcceptCreateRelationshipAttributeRequestItemParameters = __decorate([
2406
+ (0, ts_serval_1.type)("AcceptCreateRelationshipAttributeRequestItemParameters")
2407
+ ], AcceptCreateRelationshipAttributeRequestItemParameters);
2408
+ exports.AcceptCreateRelationshipAttributeRequestItemParameters = AcceptCreateRelationshipAttributeRequestItemParameters;
2409
+ //# sourceMappingURL=AcceptCreateRelationshipAttributeRequestItemParameters.js.map
2408
2410
 
2409
2411
  /***/ }),
2410
2412
 
2411
- /***/ "./dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js":
2412
- /*!*****************************************************************************************************!*\
2413
- !*** ./dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js ***!
2414
- \*****************************************************************************************************/
2413
+ /***/ "./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js":
2414
+ /*!*****************************************************************************************************************************!*\
2415
+ !*** ./dist/modules/requests/itemProcessors/createRelationshipAttribute/CreateRelationshipAttributeRequestItemProcessor.js ***!
2416
+ \*****************************************************************************************************************************/
2415
2417
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2416
2418
 
2417
2419
  "use strict";
2418
2420
 
2419
2421
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2420
- exports.CreateAttributeRequestItemProcessor = void 0;
2422
+ exports.CreateRelationshipAttributeRequestItemProcessor = void 0;
2421
2423
  const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
2422
2424
  const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
2423
2425
  const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
2424
2426
  const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
2425
- class CreateAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
2427
+ class CreateRelationshipAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
2426
2428
  canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
2427
2429
  if (requestItem.attribute.owner.toString() !== "" &&
2428
2430
  !requestItem.attribute.owner.equals(this.currentIdentityAddress)) {
2429
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."));
2430
2432
  }
2431
- if (requestItem.attribute instanceof content_1.IdentityAttribute) {
2432
- return this.canCreateRequestItemWithIdentityAttribute(requestItem);
2433
- }
2434
- return ValidationResult_1.ValidationResult.success();
2435
- }
2436
- canCreateRequestItemWithIdentityAttribute(requestItem) {
2437
- if (!requestItem.sourceAttributeId) {
2438
- return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("'sourceAttributeId' cannot be undefined when sending an Identity Attribute."));
2439
- }
2440
2433
  return ValidationResult_1.ValidationResult.success();
2441
2434
  }
2442
2435
  async accept(requestItem, _params, requestInfo) {
2436
+ requestItem.attribute.owner ??= requestInfo.peer;
2443
2437
  const peerLocalAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
2444
2438
  content: requestItem.attribute,
2445
2439
  peer: requestInfo.peer,
2446
2440
  requestReference: requestInfo.id
2447
2441
  });
2448
- return content_1.CreateAttributeAcceptResponseItem.from({
2449
- attributeId: peerLocalAttribute.id,
2450
- result: content_1.ResponseItemResult.Accepted
2442
+ return content_1.CreateRelationshipAttributeAcceptResponseItem.from({
2443
+ result: content_1.ResponseItemResult.Accepted,
2444
+ attributeId: peerLocalAttribute.id
2451
2445
  });
2452
2446
  }
2453
2447
  async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
2454
- if (!(responseItem instanceof content_1.CreateAttributeAcceptResponseItem)) {
2448
+ if (!(responseItem instanceof content_1.CreateRelationshipAttributeAcceptResponseItem)) {
2455
2449
  return;
2456
2450
  }
2457
- if (requestItem.sourceAttributeId) {
2458
- const sourceAttribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.sourceAttributeId);
2459
- await this.consumptionController.attributes.createSharedLocalAttributeCopy({
2460
- attributeId: responseItem.attributeId,
2461
- sourceAttributeId: sourceAttribute.id,
2462
- peer: requestInfo.peer,
2463
- requestReference: requestInfo.id
2464
- });
2465
- }
2466
- else {
2467
- await this.consumptionController.attributes.createPeerLocalAttribute({
2468
- id: responseItem.attributeId,
2469
- content: requestItem.attribute,
2470
- peer: requestInfo.peer,
2471
- requestReference: requestInfo.id
2472
- });
2451
+ if (requestItem.attribute.owner.toString() === "") {
2452
+ requestItem.attribute.owner = this.currentIdentityAddress;
2473
2453
  }
2454
+ await this.consumptionController.attributes.createPeerLocalAttribute({
2455
+ id: responseItem.attributeId,
2456
+ content: requestItem.attribute,
2457
+ peer: requestInfo.peer,
2458
+ requestReference: requestInfo.id
2459
+ });
2474
2460
  }
2475
2461
  }
2476
- exports.CreateAttributeRequestItemProcessor = CreateAttributeRequestItemProcessor;
2477
- //# sourceMappingURL=CreateAttributeRequestItemProcessor.js.map
2462
+ exports.CreateRelationshipAttributeRequestItemProcessor = CreateRelationshipAttributeRequestItemProcessor;
2463
+ //# sourceMappingURL=CreateRelationshipAttributeRequestItemProcessor.js.map
2478
2464
 
2479
2465
  /***/ }),
2480
2466
 
@@ -2755,7 +2741,8 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
2755
2741
  if (!foundAttribute) {
2756
2742
  return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
2757
2743
  }
2758
- if (!this.accountController.identity.isMe(foundAttribute.content.owner)) {
2744
+ const ownerIsCurrentIdentity = this.accountController.identity.isMe(foundAttribute.content.owner);
2745
+ if (!ownerIsCurrentIdentity) {
2759
2746
  return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
2760
2747
  }
2761
2748
  }
@@ -2858,91 +2845,53 @@ exports.AcceptShareAttributeRequestItemParameters = AcceptShareAttributeRequestI
2858
2845
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2859
2846
  exports.ShareAttributeRequestItemProcessor = void 0;
2860
2847
  const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
2861
- const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
2862
2848
  const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
2863
2849
  const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
2864
2850
  const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
2865
2851
  class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
2866
- async canCreateOutgoingRequestItem(requestItem, _request, recipient) {
2867
- const attribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
2868
- if (!attribute) {
2869
- return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(content_1.Attribute, requestItem.attributeId.toString()));
2870
- }
2871
- const attributeOwnerValidationResult = this.validateAttributeOwner(attribute.content, this.currentIdentityAddress, recipient);
2872
- if (attributeOwnerValidationResult.isError()) {
2873
- return attributeOwnerValidationResult;
2874
- }
2875
- return ValidationResult_1.ValidationResult.success();
2876
- }
2877
- async checkPrerequisitesOfIncomingRequestItem(requestItem, requestInfo) {
2878
- const relationshipToShareWith = await this.accountController.relationships.getRelationshipToIdentity(requestItem.shareWith);
2879
- if (!relationshipToShareWith) {
2880
- return false; // Should the containing Request move to Error state?
2881
- }
2882
- const attribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
2883
- if (!attribute) {
2884
- return false; // Should the containing Request move to Error state?
2885
- }
2886
- if (this.validateAttributeOwner(attribute.content, requestInfo.peer, this.currentIdentityAddress).isError()) {
2887
- return false;
2852
+ canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
2853
+ if (requestItem.attribute instanceof content_1.IdentityAttribute) {
2854
+ return this.canCreateWithIdentityAttribute(requestItem);
2888
2855
  }
2889
- return true;
2856
+ return this.canCreateWithRelationshipAttribute(requestItem.attribute);
2890
2857
  }
2891
- validateAttributeOwner(attribute, sender, recipient) {
2892
- const attributeOwner = attribute.owner;
2893
- if (attribute instanceof content_1.IdentityAttribute) {
2894
- if (!attributeOwner.equals(recipient)) {
2895
- return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Can only request sharing of identity attributes owned by the recipient."));
2896
- }
2897
- }
2898
- if (attribute instanceof content_1.RelationshipAttribute) {
2899
- if (!attributeOwner.equals(recipient) && !attributeOwner.equals(sender)) {
2900
- return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot request sharing of relationship attributes not owned by recipient or sender."));
2901
- }
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."));
2902
2863
  }
2903
2864
  return ValidationResult_1.ValidationResult.success();
2904
2865
  }
2905
- canAccept(_requestItem, _params, _requestInfo) {
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
+ }
2906
2870
  return ValidationResult_1.ValidationResult.success();
2907
2871
  }
2908
- async accept(requestItem, _params, _requestInfo) {
2909
- const attribute = (await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId));
2910
- if (!(await this.isAttributeAlreadyShared(attribute, requestItem.shareWith))) {
2911
- await this.shareAttribute(attribute, requestItem.shareWith);
2872
+ async accept(requestItem, _params, requestInfo) {
2873
+ if (requestItem.attribute.owner.toString() === "") {
2874
+ requestItem.attribute.owner = requestInfo.peer;
2912
2875
  }
2913
- return content_1.AcceptResponseItem.from({ result: content_1.ResponseItemResult.Accepted });
2914
- }
2915
- async isAttributeAlreadyShared(attribute, shareWith) {
2916
- if (attribute.content instanceof content_1.IdentityAttribute) {
2917
- return ((await this.consumptionController.attributes.getLocalAttributes({
2918
- "shareInfo.sourceAttribute": attribute.shareInfo.sourceAttribute.toString(),
2919
- "shareInfo.peer": shareWith.toString()
2920
- })).length > 0);
2921
- }
2922
- return ((await this.consumptionController.attributes.getLocalAttributes({
2923
- "shareInfo.sourceAttribute": attribute.id.toString(),
2924
- "shareInfo.peer": shareWith.toString()
2925
- })).length > 0);
2926
- }
2927
- async shareAttribute(attribute, shareWith) {
2928
- const createAttributeRequestItem = content_1.CreateAttributeRequestItem.from({
2929
- attribute: attribute.content,
2930
- mustBeAccepted: true,
2931
- sourceAttributeId: attribute.id
2932
- });
2933
- const createAttributeRequest = await this.consumptionController.outgoingRequests.create({
2934
- peer: shareWith,
2935
- content: content_1.Request.from({
2936
- items: [createAttributeRequestItem]
2937
- })
2876
+ const localAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
2877
+ content: requestItem.attribute,
2878
+ peer: requestInfo.peer,
2879
+ requestReference: requestInfo.id
2938
2880
  });
2939
- const message = await this.accountController.messages.sendMessage({
2940
- recipients: [shareWith],
2941
- content: createAttributeRequest.content
2881
+ return content_1.ShareAttributeAcceptResponseItem.from({
2882
+ attributeId: localAttribute.id,
2883
+ result: content_1.ResponseItemResult.Accepted
2942
2884
  });
2943
- await this.consumptionController.outgoingRequests.sent({
2944
- requestId: createAttributeRequest.id,
2945
- requestSourceObject: message
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
2946
2895
  });
2947
2896
  }
2948
2897
  }
@@ -4525,7 +4474,7 @@ class ApplicationError extends Error {
4525
4474
  return this.code === error.code;
4526
4475
  }
4527
4476
  toString() {
4528
- return JSON.stringify(this, undefined, 2);
4477
+ return JSON.stringify({ code: this.code, message: this.message, data: this.data }, undefined, 2);
4529
4478
  }
4530
4479
  }
4531
4480
  exports.ApplicationError = ApplicationError;