@nmshd/consumption 2.0.0-alpha.20 → 2.0.0-alpha.23

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 (128) hide show
  1. package/dist/buildInformation.js +4 -4
  2. package/dist/consumption/ConsumptionController.d.ts +4 -6
  3. package/dist/consumption/ConsumptionController.js +17 -4
  4. package/dist/consumption/ConsumptionController.js.map +1 -1
  5. package/dist/consumption/ConsumptionControllerName.d.ts +1 -1
  6. package/dist/consumption/ConsumptionControllerName.js +1 -1
  7. package/dist/consumption/ConsumptionControllerName.js.map +1 -1
  8. package/dist/consumption/ConsumptionErrors.d.ts +1 -2
  9. package/dist/consumption/ConsumptionErrors.js +2 -5
  10. package/dist/consumption/ConsumptionErrors.js.map +1 -1
  11. package/dist/modules/attributes/LocalAttributesController.d.ts +30 -0
  12. package/dist/modules/attributes/{ConsumptionAttributesController.js → LocalAttributesController.js} +43 -54
  13. package/dist/modules/attributes/LocalAttributesController.js.map +1 -0
  14. package/dist/modules/attributes/{CreateConsumptionAttributeParams.d.ts → local/CreateLocalAttributeParams.d.ts} +4 -4
  15. package/dist/modules/attributes/{CreateConsumptionAttributeParams.js → local/CreateLocalAttributeParams.js} +5 -5
  16. package/dist/modules/attributes/local/CreateLocalAttributeParams.js.map +1 -0
  17. package/dist/modules/attributes/{CreatePeerConsumptionAttributeParams.d.ts → local/CreatePeerLocalAttributeParams.d.ts} +5 -5
  18. package/dist/modules/attributes/{CreatePeerConsumptionAttributeParams.js → local/CreatePeerLocalAttributeParams.js} +8 -8
  19. package/dist/modules/attributes/local/CreatePeerLocalAttributeParams.js.map +1 -0
  20. package/dist/modules/attributes/{CreateRelationshipAttributeParams.d.ts → local/CreateRelationshipAttributeParams.d.ts} +0 -0
  21. package/dist/modules/attributes/{CreateRelationshipAttributeParams.js → local/CreateRelationshipAttributeParams.js} +0 -0
  22. package/dist/modules/attributes/local/CreateRelationshipAttributeParams.js.map +1 -0
  23. package/dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.d.ts +18 -0
  24. package/dist/modules/attributes/{CreateSharedConsumptionAttributeCopyParams.js → local/CreateSharedLocalAttributeCopyParams.js} +7 -7
  25. package/dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.js.map +1 -0
  26. package/dist/modules/attributes/{GetIdentityAttributesParams.d.ts → local/GetIdentityAttributesParams.d.ts} +0 -0
  27. package/dist/modules/attributes/{GetIdentityAttributesParams.js → local/GetIdentityAttributesParams.js} +0 -0
  28. package/dist/modules/attributes/local/GetIdentityAttributesParams.js.map +1 -0
  29. package/dist/modules/attributes/{GetRelationshipAttributesParams.d.ts → local/GetRelationshipAttributesParams.d.ts} +0 -0
  30. package/dist/modules/attributes/{GetRelationshipAttributesParams.js → local/GetRelationshipAttributesParams.js} +0 -0
  31. package/dist/modules/attributes/local/GetRelationshipAttributesParams.js.map +1 -0
  32. package/dist/modules/attributes/local/{ConsumptionAttribute.d.ts → LocalAttribute.d.ts} +9 -9
  33. package/dist/modules/attributes/local/{ConsumptionAttribute.js → LocalAttribute.js} +14 -14
  34. package/dist/modules/attributes/local/LocalAttribute.js.map +1 -0
  35. package/dist/modules/attributes/local/{ConsumptionAttributeShareInfo.d.ts → LocalAttributeShareInfo.d.ts} +4 -4
  36. package/dist/modules/attributes/local/{ConsumptionAttributeShareInfo.js → LocalAttributeShareInfo.js} +7 -7
  37. package/dist/modules/attributes/local/LocalAttributeShareInfo.js.map +1 -0
  38. package/dist/modules/attributes/local/QueryTranslator.js +11 -7
  39. package/dist/modules/attributes/local/QueryTranslator.js.map +1 -1
  40. package/dist/modules/attributes/{SucceedConsumptionAttributeParams.d.ts → local/SucceedLocalAttributeParams.d.ts} +4 -4
  41. package/dist/modules/attributes/{UpdateConsumptionAttributeParams.js → local/SucceedLocalAttributeParams.js} +10 -10
  42. package/dist/modules/attributes/local/SucceedLocalAttributeParams.js.map +1 -0
  43. package/dist/modules/attributes/{UpdateConsumptionAttributeParams.d.ts → local/UpdateLocalAttributeParams.d.ts} +4 -4
  44. package/dist/modules/attributes/{SucceedConsumptionAttributeParams.js → local/UpdateLocalAttributeParams.js} +10 -10
  45. package/dist/modules/attributes/local/UpdateLocalAttributeParams.js.map +1 -0
  46. package/dist/modules/index.d.ts +18 -14
  47. package/dist/modules/index.js +18 -14
  48. package/dist/modules/index.js.map +1 -1
  49. package/dist/modules/requests/incoming/DecideRequestParametersValidator.d.ts +2 -2
  50. package/dist/modules/requests/incoming/DecideRequestParametersValidator.js.map +1 -1
  51. package/dist/modules/requests/incoming/IncomingRequestsController.d.ts +10 -10
  52. package/dist/modules/requests/incoming/IncomingRequestsController.js +28 -31
  53. package/dist/modules/requests/incoming/IncomingRequestsController.js.map +1 -1
  54. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.d.ts +13 -11
  55. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js +2 -0
  56. package/dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js.map +1 -1
  57. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.d.ts +11 -10
  58. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js +10 -16
  59. package/dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js.map +1 -1
  60. package/dist/modules/requests/itemProcessors/IRequestItemProcessor.d.ts +14 -10
  61. package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.d.ts +4 -7
  62. package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js +8 -11
  63. package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js.map +1 -1
  64. package/dist/modules/requests/itemProcessors/ValidationResult.d.ts +3 -3
  65. package/dist/modules/requests/itemProcessors/ValidationResult.js +5 -5
  66. package/dist/modules/requests/itemProcessors/ValidationResult.js.map +1 -1
  67. package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.d.ts +8 -5
  68. package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js +26 -20
  69. package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js.map +1 -1
  70. package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.d.ts +20 -0
  71. package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js +47 -0
  72. package/dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js.map +1 -0
  73. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.d.ts +14 -0
  74. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js +88 -0
  75. package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -0
  76. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.d.ts +7 -5
  77. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +40 -29
  78. package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
  79. package/dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.d.ts +7 -0
  80. package/dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.js +20 -0
  81. package/dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.js.map +1 -0
  82. package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.d.ts +15 -0
  83. package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js +93 -0
  84. package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js.map +1 -0
  85. package/dist/modules/requests/itemProcessors/utility/validateQuery.d.ts +4 -0
  86. package/dist/modules/requests/itemProcessors/utility/validateQuery.js +21 -0
  87. package/dist/modules/requests/itemProcessors/utility/validateQuery.js.map +1 -0
  88. package/dist/modules/requests/local/LocalRequest.d.ts +37 -0
  89. package/dist/modules/requests/local/{ConsumptionRequest.js → LocalRequest.js} +32 -32
  90. package/dist/modules/requests/local/LocalRequest.js.map +1 -0
  91. package/dist/modules/requests/local/{ConsumptionRequestStatus.d.ts → LocalRequestStatus.d.ts} +1 -1
  92. package/dist/modules/requests/local/LocalRequestStatus.js +13 -0
  93. package/dist/modules/requests/local/LocalRequestStatus.js.map +1 -0
  94. package/dist/modules/requests/local/LocalRequestStatusLogEntry.d.ts +17 -0
  95. package/dist/modules/requests/local/{ConsumptionRequestStatusLogEntry.js → LocalRequestStatusLogEntry.js} +13 -13
  96. package/dist/modules/requests/local/LocalRequestStatusLogEntry.js.map +1 -0
  97. package/dist/modules/requests/local/LocalResponse.d.ts +22 -0
  98. package/dist/modules/requests/local/{ConsumptionResponse.js → LocalResponse.js} +18 -18
  99. package/dist/modules/requests/local/LocalResponse.js.map +1 -0
  100. package/dist/modules/requests/outgoing/OutgoingRequestsController.d.ts +7 -7
  101. package/dist/modules/requests/outgoing/OutgoingRequestsController.js +26 -26
  102. package/dist/modules/requests/outgoing/OutgoingRequestsController.js.map +1 -1
  103. package/lib-web/nmshd.consumption.js +857 -549
  104. package/lib-web/nmshd.consumption.js.map +1 -1
  105. package/lib-web/nmshd.consumption.min.js +1 -1
  106. package/lib-web/nmshd.consumption.min.js.map +1 -1
  107. package/package.json +11 -11
  108. package/dist/modules/attributes/ConsumptionAttributesController.d.ts +0 -32
  109. package/dist/modules/attributes/ConsumptionAttributesController.js.map +0 -1
  110. package/dist/modules/attributes/CreateConsumptionAttributeParams.js.map +0 -1
  111. package/dist/modules/attributes/CreatePeerConsumptionAttributeParams.js.map +0 -1
  112. package/dist/modules/attributes/CreateRelationshipAttributeParams.js.map +0 -1
  113. package/dist/modules/attributes/CreateSharedConsumptionAttributeCopyParams.d.ts +0 -18
  114. package/dist/modules/attributes/CreateSharedConsumptionAttributeCopyParams.js.map +0 -1
  115. package/dist/modules/attributes/GetIdentityAttributesParams.js.map +0 -1
  116. package/dist/modules/attributes/GetRelationshipAttributesParams.js.map +0 -1
  117. package/dist/modules/attributes/SucceedConsumptionAttributeParams.js.map +0 -1
  118. package/dist/modules/attributes/UpdateConsumptionAttributeParams.js.map +0 -1
  119. package/dist/modules/attributes/local/ConsumptionAttribute.js.map +0 -1
  120. package/dist/modules/attributes/local/ConsumptionAttributeShareInfo.js.map +0 -1
  121. package/dist/modules/requests/local/ConsumptionRequest.d.ts +0 -37
  122. package/dist/modules/requests/local/ConsumptionRequest.js.map +0 -1
  123. package/dist/modules/requests/local/ConsumptionRequestStatus.js +0 -13
  124. package/dist/modules/requests/local/ConsumptionRequestStatus.js.map +0 -1
  125. package/dist/modules/requests/local/ConsumptionRequestStatusLogEntry.d.ts +0 -17
  126. package/dist/modules/requests/local/ConsumptionRequestStatusLogEntry.js.map +0 -1
  127. package/dist/modules/requests/local/ConsumptionResponse.d.ts +0 -22
  128. package/dist/modules/requests/local/ConsumptionResponse.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-alpha.20",
21
- build: "38",
22
- date: "2022-06-03T14:09:16+00:00",
23
- commit: "217c674042d281ad67bd13607f6307b9ecebfee9",
20
+ version: "2.0.0-alpha.23",
21
+ build: "42",
22
+ date: "2022-07-05T08:52:22+00:00",
23
+ commit: "6fb25e99922bec6ff6dbc88d5eed8a6252749a9f",
24
24
  dependencies: {"@js-soft/docdb-querytranslator":"^1.0.1","ts-simple-nameof":"^1.3.1"},
25
25
  libraries: {
26
26
  transport: transport_1.buildInformation,
@@ -78,7 +78,9 @@ exports.ConsumptionBaseController = ConsumptionBaseController;
78
78
 
79
79
  Object.defineProperty(exports, "__esModule", ({ value: true }));
80
80
  exports.ConsumptionController = void 0;
81
- const ConsumptionAttributesController_1 = __webpack_require__(/*! ../modules/attributes/ConsumptionAttributesController */ "./dist/modules/attributes/ConsumptionAttributesController.js");
81
+ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
82
+ const modules_1 = __webpack_require__(/*! ../modules */ "./dist/modules/index.js");
83
+ const LocalAttributesController_1 = __webpack_require__(/*! ../modules/attributes/LocalAttributesController */ "./dist/modules/attributes/LocalAttributesController.js");
82
84
  const DraftsController_1 = __webpack_require__(/*! ../modules/drafts/DraftsController */ "./dist/modules/drafts/DraftsController.js");
83
85
  const IncomingRequestsController_1 = __webpack_require__(/*! ../modules/requests/incoming/IncomingRequestsController */ "./dist/modules/requests/incoming/IncomingRequestsController.js");
84
86
  const RequestItemProcessorRegistry_1 = __webpack_require__(/*! ../modules/requests/itemProcessors/RequestItemProcessorRegistry */ "./dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js");
@@ -104,15 +106,26 @@ class ConsumptionController {
104
106
  get settings() {
105
107
  return this._settings;
106
108
  }
107
- async init(requestItemProcessors = []) {
108
- this._attributes = await new ConsumptionAttributesController_1.ConsumptionAttributesController(this).init();
109
+ async init(requestItemProcessorOverrides = new Map()) {
110
+ this._attributes = await new LocalAttributesController_1.LocalAttributesController(this).init();
109
111
  this._drafts = await new DraftsController_1.DraftsController(this).init();
110
- const processorRegistry = new RequestItemProcessorRegistry_1.RequestItemProcessorRegistry(this, requestItemProcessors);
112
+ const processorRegistry = new RequestItemProcessorRegistry_1.RequestItemProcessorRegistry(this, this.getDefaultProcessors());
113
+ for (const [itemConstructor, processorConstructor] of requestItemProcessorOverrides) {
114
+ processorRegistry.registerOrReplaceProcessor(itemConstructor, processorConstructor);
115
+ }
111
116
  this._outgoingRequests = await new OutgoingRequestsController_1.OutgoingRequestsController(await this.accountController.getSynchronizedCollection("Requests"), processorRegistry, this).init();
112
117
  this._incomingRequests = await new IncomingRequestsController_1.IncomingRequestsController(await this.accountController.getSynchronizedCollection("Requests"), processorRegistry, this).init();
113
118
  this._settings = await new SettingsController_1.SettingsController(this).init();
114
119
  return this;
115
120
  }
121
+ getDefaultProcessors() {
122
+ return new Map([
123
+ [content_1.CreateAttributeRequestItem, modules_1.CreateAttributeRequestItemProcessor],
124
+ [content_1.ReadAttributeRequestItem, modules_1.ReadAttributeRequestItemProcessor],
125
+ [content_1.ProposeAttributeRequestItem, modules_1.ProposeAttributeRequestItemProcessor],
126
+ [content_1.ShareAttributeRequestItem, modules_1.ShareAttributeRequestItemProcessor]
127
+ ]);
128
+ }
116
129
  }
117
130
  exports.ConsumptionController = ConsumptionController;
118
131
  //# sourceMappingURL=ConsumptionController.js.map
@@ -131,7 +144,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
131
144
  exports.ConsumptionControllerName = void 0;
132
145
  var ConsumptionControllerName;
133
146
  (function (ConsumptionControllerName) {
134
- ConsumptionControllerName["ConsumptionAttributesController"] = "ConsumptionAttributesController";
147
+ ConsumptionControllerName["LocalAttributesController"] = "LocalAttributesController";
135
148
  ConsumptionControllerName["DraftsController"] = "DraftsController";
136
149
  ConsumptionControllerName["RelationshipInfoController"] = "RelationshipInfoController";
137
150
  ConsumptionControllerName["SingleRelationshipController"] = "SingleRelationshipController";
@@ -171,11 +184,8 @@ class Requests {
171
184
  unexpectedErrorDuringRequestItemProcessing(error) {
172
185
  return new transport_1.CoreError("error.consumption.requests.unexpectedErrorDuringRequestItemProcessing", error instanceof Error ? error.message : "Unknown error: '${JSON.stringify(e)'");
173
186
  }
174
- cannotSendCreateAttributeRequestItemsWithIdentityAttributes() {
175
- return new transport_1.CoreError("error.consumption.requests.cannotSendCreateAttributeRequestItemsWithIdentityAttributes", "You cannot send a CreateAttributeRequestItem with an Identity Attribute. Consider using a ProposeAttributeRequestItem instead.");
176
- }
177
- canOnlyShareOwnAttributes() {
178
- return new transport_1.CoreError("error.consumption.requests.canOnlyShareOwnAttributes", "The given Attribute belongs to someone else. You can only share own Attributes.");
187
+ invalidRequestItem(message) {
188
+ return new transport_1.CoreError("error.consumption.requests.invalidRequestItem", message);
179
189
  }
180
190
  }
181
191
  class RelationshipInfo {
@@ -286,28 +296,27 @@ __exportStar(__webpack_require__(/*! ./modules */ "./dist/modules/index.js"), ex
286
296
 
287
297
  /***/ }),
288
298
 
289
- /***/ "./dist/modules/attributes/ConsumptionAttributesController.js":
290
- /*!********************************************************************!*\
291
- !*** ./dist/modules/attributes/ConsumptionAttributesController.js ***!
292
- \********************************************************************/
299
+ /***/ "./dist/modules/attributes/LocalAttributesController.js":
300
+ /*!**************************************************************!*\
301
+ !*** ./dist/modules/attributes/LocalAttributesController.js ***!
302
+ \**************************************************************/
293
303
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
294
304
 
295
305
  "use strict";
296
306
 
297
307
  Object.defineProperty(exports, "__esModule", ({ value: true }));
298
- exports.ConsumptionAttributesController = void 0;
308
+ exports.LocalAttributesController = void 0;
299
309
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
300
310
  const ts_simple_nameof_1 = __webpack_require__(/*! ts-simple-nameof */ "./node_modules/ts-simple-nameof/index.js");
301
311
  const consumption_1 = __webpack_require__(/*! ../../consumption */ "./dist/consumption/index.js");
302
- const CreateRelationshipAttributeParams_1 = __webpack_require__(/*! ./CreateRelationshipAttributeParams */ "./dist/modules/attributes/CreateRelationshipAttributeParams.js");
303
- const CreateSharedConsumptionAttributeCopyParams_1 = __webpack_require__(/*! ./CreateSharedConsumptionAttributeCopyParams */ "./dist/modules/attributes/CreateSharedConsumptionAttributeCopyParams.js");
304
- const ConsumptionAttribute_1 = __webpack_require__(/*! ./local/ConsumptionAttribute */ "./dist/modules/attributes/local/ConsumptionAttribute.js");
305
- const ConsumptionAttributeShareInfo_1 = __webpack_require__(/*! ./local/ConsumptionAttributeShareInfo */ "./dist/modules/attributes/local/ConsumptionAttributeShareInfo.js");
312
+ const CreateSharedLocalAttributeCopyParams_1 = __webpack_require__(/*! ./local/CreateSharedLocalAttributeCopyParams */ "./dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.js");
313
+ const LocalAttribute_1 = __webpack_require__(/*! ./local/LocalAttribute */ "./dist/modules/attributes/local/LocalAttribute.js");
314
+ const LocalAttributeShareInfo_1 = __webpack_require__(/*! ./local/LocalAttributeShareInfo */ "./dist/modules/attributes/local/LocalAttributeShareInfo.js");
306
315
  const QueryTranslator_1 = __webpack_require__(/*! ./local/QueryTranslator */ "./dist/modules/attributes/local/QueryTranslator.js");
307
- const SucceedConsumptionAttributeParams_1 = __webpack_require__(/*! ./SucceedConsumptionAttributeParams */ "./dist/modules/attributes/SucceedConsumptionAttributeParams.js");
308
- class ConsumptionAttributesController extends consumption_1.ConsumptionBaseController {
316
+ const SucceedLocalAttributeParams_1 = __webpack_require__(/*! ./local/SucceedLocalAttributeParams */ "./dist/modules/attributes/local/SucceedLocalAttributeParams.js");
317
+ class LocalAttributesController extends consumption_1.ConsumptionBaseController {
309
318
  constructor(parent) {
310
- super(consumption_1.ConsumptionControllerName.ConsumptionAttributesController, parent);
319
+ super(consumption_1.ConsumptionControllerName.LocalAttributesController, parent);
311
320
  }
312
321
  async init() {
313
322
  await super.init();
@@ -361,21 +370,21 @@ class ConsumptionAttributesController extends consumption_1.ConsumptionBaseContr
361
370
  }
362
371
  return items;
363
372
  }
364
- async getConsumptionAttribute(id) {
373
+ async getLocalAttribute(id) {
365
374
  const result = await this.attributes.findOne({
366
375
  [(0, ts_simple_nameof_1.nameof)((c) => c.id)]: id.toString()
367
376
  });
368
377
  if (!result)
369
378
  return;
370
- return ConsumptionAttribute_1.ConsumptionAttribute.from(result);
379
+ return LocalAttribute_1.LocalAttribute.from(result);
371
380
  }
372
- async getConsumptionAttributes(query) {
381
+ async getLocalAttributes(query) {
373
382
  const attributes = await this.attributes.find(query);
374
- return await this.parseArray(attributes, ConsumptionAttribute_1.ConsumptionAttribute);
383
+ return await this.parseArray(attributes, LocalAttribute_1.LocalAttribute);
375
384
  }
376
- async getValidConsumptionAttributes(query) {
385
+ async getValidLocalAttributes(query) {
377
386
  const attributes = await this.attributes.find(query);
378
- const items = await this.parseArray(attributes, ConsumptionAttribute_1.ConsumptionAttribute);
387
+ const items = await this.parseArray(attributes, LocalAttribute_1.LocalAttribute);
379
388
  return this.filterCurrent(items);
380
389
  }
381
390
  async executeRelationshipAttributeQuery(params) {
@@ -383,22 +392,22 @@ class ConsumptionAttributesController extends consumption_1.ConsumptionBaseContr
383
392
  queryWithType["attributeType"] = "RelationshipAttribute";
384
393
  const dbQuery = QueryTranslator_1.relationshipQueryTranslator.parse(queryWithType);
385
394
  const attributes = await this.attributes.find(dbQuery);
386
- return await this.parseArray(attributes, ConsumptionAttribute_1.ConsumptionAttribute);
395
+ return await this.parseArray(attributes, LocalAttribute_1.LocalAttribute);
387
396
  }
388
397
  async executeIdentityAttributeQuery(params) {
389
398
  const queryWithType = params.query;
390
399
  queryWithType["attributeType"] = "IdentityAttribute";
391
400
  const dbQuery = QueryTranslator_1.identityQueryTranslator.parse(queryWithType);
392
401
  const attributes = await this.attributes.find(dbQuery);
393
- return await this.parseArray(attributes, ConsumptionAttribute_1.ConsumptionAttribute);
402
+ return await this.parseArray(attributes, LocalAttribute_1.LocalAttribute);
394
403
  }
395
- async createConsumptionAttribute(params) {
396
- const consumptionAttribute = await ConsumptionAttribute_1.ConsumptionAttribute.fromAttribute(params.content);
397
- await this.attributes.create(consumptionAttribute);
398
- return consumptionAttribute;
404
+ async createLocalAttribute(params) {
405
+ const localAttribute = await LocalAttribute_1.LocalAttribute.fromAttribute(params.content);
406
+ await this.attributes.create(localAttribute);
407
+ return localAttribute;
399
408
  }
400
- async succeedConsumptionAttribute(params) {
401
- const parsedParams = SucceedConsumptionAttributeParams_1.SucceedConsumptionAttributeParams.from(params);
409
+ async succeedLocalAttribute(params) {
410
+ const parsedParams = SucceedLocalAttributeParams_1.SucceedLocalAttributeParams.from(params);
402
411
  const current = await this.attributes.findOne({
403
412
  [(0, ts_simple_nameof_1.nameof)((c) => c.id)]: params.succeeds.toString()
404
413
  });
@@ -409,60 +418,50 @@ class ConsumptionAttributesController extends consumption_1.ConsumptionBaseContr
409
418
  parsedParams.successorContent.validFrom = transport_1.CoreDate.utc();
410
419
  }
411
420
  const validFrom = parsedParams.successorContent.validFrom;
412
- const currentUpdated = ConsumptionAttribute_1.ConsumptionAttribute.from(current);
421
+ const currentUpdated = LocalAttribute_1.LocalAttribute.from(current);
413
422
  currentUpdated.content.validTo = validFrom.subtract(1);
414
423
  await this.attributes.update(current, currentUpdated);
415
- const successor = await ConsumptionAttribute_1.ConsumptionAttribute.fromAttribute(parsedParams.successorContent, parsedParams.succeeds);
424
+ const successor = await LocalAttribute_1.LocalAttribute.fromAttribute(parsedParams.successorContent, parsedParams.succeeds);
416
425
  await this.attributes.create(successor);
417
426
  return successor;
418
427
  }
419
- async createRelationshipAttribute(params) {
420
- const parsedParams = CreateRelationshipAttributeParams_1.CreateRelationshipAttributeParams.from(params);
421
- const shareInfo = ConsumptionAttributeShareInfo_1.ConsumptionAttributeShareInfo.from({
422
- peer: parsedParams.peer,
423
- requestReference: parsedParams.requestReference
424
- });
425
- const sharedConsumptionAttribute = await ConsumptionAttribute_1.ConsumptionAttribute.fromAttribute(params.content, undefined, shareInfo);
426
- await this.attributes.create(sharedConsumptionAttribute);
427
- return sharedConsumptionAttribute;
428
- }
429
- async createSharedConsumptionAttributeCopy(params) {
430
- const parsedParams = CreateSharedConsumptionAttributeCopyParams_1.CreateSharedConsumptionAttributeCopyParams.from(params);
431
- const sourceAttribute = await this.getConsumptionAttribute(parsedParams.attributeId);
428
+ async createSharedLocalAttributeCopy(params) {
429
+ const parsedParams = CreateSharedLocalAttributeCopyParams_1.CreateSharedLocalAttributeCopyParams.from(params);
430
+ const sourceAttribute = await this.getLocalAttribute(parsedParams.attributeId);
432
431
  if (!sourceAttribute) {
433
432
  throw consumption_1.ConsumptionErrors.attributes.predecessorNotFound(parsedParams.attributeId.toString());
434
433
  }
435
- const shareInfo = ConsumptionAttributeShareInfo_1.ConsumptionAttributeShareInfo.from({
434
+ const shareInfo = LocalAttributeShareInfo_1.LocalAttributeShareInfo.from({
436
435
  peer: parsedParams.peer,
437
436
  requestReference: parsedParams.requestReference,
438
437
  sourceAttribute: parsedParams.attributeId
439
438
  });
440
- const sharedConsumptionAttributeCopy = await ConsumptionAttribute_1.ConsumptionAttribute.fromAttribute(sourceAttribute.content, undefined, shareInfo);
441
- await this.attributes.create(sharedConsumptionAttributeCopy);
442
- return sharedConsumptionAttributeCopy;
439
+ const sharedLocalAttributeCopy = await LocalAttribute_1.LocalAttribute.fromAttribute(sourceAttribute.content, undefined, shareInfo);
440
+ await this.attributes.create(sharedLocalAttributeCopy);
441
+ return sharedLocalAttributeCopy;
443
442
  }
444
- async createPeerConsumptionAttribute(params) {
445
- const shareInfo = ConsumptionAttributeShareInfo_1.ConsumptionAttributeShareInfo.from({
443
+ async createPeerLocalAttribute(params) {
444
+ const shareInfo = LocalAttributeShareInfo_1.LocalAttributeShareInfo.from({
446
445
  peer: params.peer,
447
446
  requestReference: params.requestReference
448
447
  });
449
- const peerConsumptionAttribute = ConsumptionAttribute_1.ConsumptionAttribute.from({
450
- id: params.id,
448
+ const peerLocalAttribute = LocalAttribute_1.LocalAttribute.from({
449
+ id: params.id ?? (await consumption_1.ConsumptionIds.attribute.generate()),
451
450
  content: params.content,
452
451
  shareInfo: shareInfo,
453
452
  createdAt: transport_1.CoreDate.utc()
454
453
  });
455
- await this.attributes.create(peerConsumptionAttribute);
456
- return peerConsumptionAttribute;
454
+ await this.attributes.create(peerLocalAttribute);
455
+ return peerLocalAttribute;
457
456
  }
458
- async updateConsumptionAttribute(params) {
457
+ async updateLocalAttribute(params) {
459
458
  const current = await this.attributes.findOne({
460
459
  [(0, ts_simple_nameof_1.nameof)((c) => c.id)]: params.id.toString()
461
460
  });
462
461
  if (!current) {
463
- throw transport_1.TransportErrors.general.recordNotFound(ConsumptionAttribute_1.ConsumptionAttribute, params.id.toString());
462
+ throw transport_1.TransportErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, params.id.toString());
464
463
  }
465
- const updatedConsumptionAttribute = ConsumptionAttribute_1.ConsumptionAttribute.from({
464
+ const updatedLocalAttribute = LocalAttribute_1.LocalAttribute.from({
466
465
  id: current.id,
467
466
  content: params.content,
468
467
  createdAt: current.createdAt,
@@ -470,21 +469,21 @@ class ConsumptionAttributesController extends consumption_1.ConsumptionBaseContr
470
469
  succeededBy: current.succeededBy,
471
470
  succeeds: current.succeeds
472
471
  });
473
- await this.attributes.update(current, updatedConsumptionAttribute);
474
- return updatedConsumptionAttribute;
472
+ await this.attributes.update(current, updatedLocalAttribute);
473
+ return updatedLocalAttribute;
475
474
  }
476
475
  async deleteAttribute(attribute) {
477
476
  await this.attributes.delete(attribute);
478
477
  }
479
478
  }
480
- exports.ConsumptionAttributesController = ConsumptionAttributesController;
481
- //# sourceMappingURL=ConsumptionAttributesController.js.map
479
+ exports.LocalAttributesController = LocalAttributesController;
480
+ //# sourceMappingURL=LocalAttributesController.js.map
482
481
 
483
482
  /***/ }),
484
483
 
485
- /***/ "./dist/modules/attributes/CreateConsumptionAttributeParams.js":
484
+ /***/ "./dist/modules/attributes/local/CreateLocalAttributeParams.js":
486
485
  /*!*********************************************************************!*\
487
- !*** ./dist/modules/attributes/CreateConsumptionAttributeParams.js ***!
486
+ !*** ./dist/modules/attributes/local/CreateLocalAttributeParams.js ***!
488
487
  \*********************************************************************/
489
488
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
490
489
 
@@ -500,10 +499,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
500
499
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
501
500
  };
502
501
  Object.defineProperty(exports, "__esModule", ({ value: true }));
503
- exports.CreateConsumptionAttributeParams = void 0;
502
+ exports.CreateLocalAttributeParams = void 0;
504
503
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
505
504
  const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
506
- class CreateConsumptionAttributeParams extends ts_serval_1.Serializable {
505
+ class CreateLocalAttributeParams extends ts_serval_1.Serializable {
507
506
  static from(value) {
508
507
  return this.fromAny(value);
509
508
  }
@@ -512,15 +511,15 @@ __decorate([
512
511
  (0, ts_serval_1.serialize)({ unionTypes: [content_1.IdentityAttribute, content_1.RelationshipAttribute] }),
513
512
  (0, ts_serval_1.validate)(),
514
513
  __metadata("design:type", Object)
515
- ], CreateConsumptionAttributeParams.prototype, "content", void 0);
516
- exports.CreateConsumptionAttributeParams = CreateConsumptionAttributeParams;
517
- //# sourceMappingURL=CreateConsumptionAttributeParams.js.map
514
+ ], CreateLocalAttributeParams.prototype, "content", void 0);
515
+ exports.CreateLocalAttributeParams = CreateLocalAttributeParams;
516
+ //# sourceMappingURL=CreateLocalAttributeParams.js.map
518
517
 
519
518
  /***/ }),
520
519
 
521
- /***/ "./dist/modules/attributes/CreatePeerConsumptionAttributeParams.js":
520
+ /***/ "./dist/modules/attributes/local/CreatePeerLocalAttributeParams.js":
522
521
  /*!*************************************************************************!*\
523
- !*** ./dist/modules/attributes/CreatePeerConsumptionAttributeParams.js ***!
522
+ !*** ./dist/modules/attributes/local/CreatePeerLocalAttributeParams.js ***!
524
523
  \*************************************************************************/
525
524
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
526
525
 
@@ -536,11 +535,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
536
535
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
537
536
  };
538
537
  Object.defineProperty(exports, "__esModule", ({ value: true }));
539
- exports.CreatePeerConsumptionAttributeParams = void 0;
538
+ exports.CreatePeerLocalAttributeParams = void 0;
540
539
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
541
540
  const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
542
541
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
543
- class CreatePeerConsumptionAttributeParams extends ts_serval_1.Serializable {
542
+ class CreatePeerLocalAttributeParams extends ts_serval_1.Serializable {
544
543
  static from(value) {
545
544
  return this.fromAny(value);
546
545
  }
@@ -549,80 +548,30 @@ __decorate([
549
548
  (0, ts_serval_1.serialize)(),
550
549
  (0, ts_serval_1.validate)(),
551
550
  __metadata("design:type", transport_1.CoreId)
552
- ], CreatePeerConsumptionAttributeParams.prototype, "id", void 0);
551
+ ], CreatePeerLocalAttributeParams.prototype, "id", void 0);
553
552
  __decorate([
554
553
  (0, ts_serval_1.serialize)({ unionTypes: [content_1.IdentityAttribute, content_1.RelationshipAttribute] }),
555
554
  (0, ts_serval_1.validate)(),
556
555
  __metadata("design:type", Object)
557
- ], CreatePeerConsumptionAttributeParams.prototype, "content", void 0);
556
+ ], CreatePeerLocalAttributeParams.prototype, "content", void 0);
558
557
  __decorate([
559
558
  (0, ts_serval_1.serialize)(),
560
559
  (0, ts_serval_1.validate)(),
561
560
  __metadata("design:type", transport_1.CoreId)
562
- ], CreatePeerConsumptionAttributeParams.prototype, "requestReference", void 0);
561
+ ], CreatePeerLocalAttributeParams.prototype, "requestReference", void 0);
563
562
  __decorate([
564
563
  (0, ts_serval_1.serialize)(),
565
564
  (0, ts_serval_1.validate)(),
566
565
  __metadata("design:type", transport_1.CoreAddress)
567
- ], CreatePeerConsumptionAttributeParams.prototype, "peer", void 0);
568
- exports.CreatePeerConsumptionAttributeParams = CreatePeerConsumptionAttributeParams;
569
- //# sourceMappingURL=CreatePeerConsumptionAttributeParams.js.map
566
+ ], CreatePeerLocalAttributeParams.prototype, "peer", void 0);
567
+ exports.CreatePeerLocalAttributeParams = CreatePeerLocalAttributeParams;
568
+ //# sourceMappingURL=CreatePeerLocalAttributeParams.js.map
570
569
 
571
570
  /***/ }),
572
571
 
573
- /***/ "./dist/modules/attributes/CreateRelationshipAttributeParams.js":
574
- /*!**********************************************************************!*\
575
- !*** ./dist/modules/attributes/CreateRelationshipAttributeParams.js ***!
576
- \**********************************************************************/
577
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
578
-
579
- "use strict";
580
-
581
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
582
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
583
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
584
- 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;
585
- return c > 3 && r && Object.defineProperty(target, key, r), r;
586
- };
587
- var __metadata = (this && this.__metadata) || function (k, v) {
588
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
589
- };
590
- Object.defineProperty(exports, "__esModule", ({ value: true }));
591
- exports.CreateRelationshipAttributeParams = void 0;
592
- const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
593
- const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
594
- const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
595
- let CreateRelationshipAttributeParams = class CreateRelationshipAttributeParams extends ts_serval_1.Serializable {
596
- static from(value) {
597
- return this.fromAny(value);
598
- }
599
- };
600
- __decorate([
601
- (0, ts_serval_1.serialize)(),
602
- (0, ts_serval_1.validate)(),
603
- __metadata("design:type", content_1.RelationshipAttribute)
604
- ], CreateRelationshipAttributeParams.prototype, "content", void 0);
605
- __decorate([
606
- (0, ts_serval_1.serialize)(),
607
- (0, ts_serval_1.validate)(),
608
- __metadata("design:type", transport_1.CoreAddress)
609
- ], CreateRelationshipAttributeParams.prototype, "peer", void 0);
610
- __decorate([
611
- (0, ts_serval_1.serialize)(),
612
- (0, ts_serval_1.validate)(),
613
- __metadata("design:type", transport_1.CoreId)
614
- ], CreateRelationshipAttributeParams.prototype, "requestReference", void 0);
615
- CreateRelationshipAttributeParams = __decorate([
616
- (0, ts_serval_1.type)("CreateRelationshipAttributeParams")
617
- ], CreateRelationshipAttributeParams);
618
- exports.CreateRelationshipAttributeParams = CreateRelationshipAttributeParams;
619
- //# sourceMappingURL=CreateRelationshipAttributeParams.js.map
620
-
621
- /***/ }),
622
-
623
- /***/ "./dist/modules/attributes/CreateSharedConsumptionAttributeCopyParams.js":
572
+ /***/ "./dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.js":
624
573
  /*!*******************************************************************************!*\
625
- !*** ./dist/modules/attributes/CreateSharedConsumptionAttributeCopyParams.js ***!
574
+ !*** ./dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.js ***!
626
575
  \*******************************************************************************/
627
576
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
628
577
 
@@ -638,10 +587,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
638
587
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
639
588
  };
640
589
  Object.defineProperty(exports, "__esModule", ({ value: true }));
641
- exports.CreateSharedConsumptionAttributeCopyParams = void 0;
590
+ exports.CreateSharedLocalAttributeCopyParams = void 0;
642
591
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
643
592
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
644
- class CreateSharedConsumptionAttributeCopyParams extends ts_serval_1.Serializable {
593
+ class CreateSharedLocalAttributeCopyParams extends ts_serval_1.Serializable {
645
594
  static from(value) {
646
595
  return this.fromAny(value);
647
596
  }
@@ -650,26 +599,26 @@ __decorate([
650
599
  (0, ts_serval_1.serialize)(),
651
600
  (0, ts_serval_1.validate)(),
652
601
  __metadata("design:type", transport_1.CoreId)
653
- ], CreateSharedConsumptionAttributeCopyParams.prototype, "attributeId", void 0);
602
+ ], CreateSharedLocalAttributeCopyParams.prototype, "attributeId", void 0);
654
603
  __decorate([
655
604
  (0, ts_serval_1.serialize)(),
656
605
  (0, ts_serval_1.validate)(),
657
606
  __metadata("design:type", transport_1.CoreAddress)
658
- ], CreateSharedConsumptionAttributeCopyParams.prototype, "peer", void 0);
607
+ ], CreateSharedLocalAttributeCopyParams.prototype, "peer", void 0);
659
608
  __decorate([
660
609
  (0, ts_serval_1.serialize)(),
661
610
  (0, ts_serval_1.validate)(),
662
611
  __metadata("design:type", transport_1.CoreId)
663
- ], CreateSharedConsumptionAttributeCopyParams.prototype, "requestReference", void 0);
664
- exports.CreateSharedConsumptionAttributeCopyParams = CreateSharedConsumptionAttributeCopyParams;
665
- //# sourceMappingURL=CreateSharedConsumptionAttributeCopyParams.js.map
612
+ ], CreateSharedLocalAttributeCopyParams.prototype, "requestReference", void 0);
613
+ exports.CreateSharedLocalAttributeCopyParams = CreateSharedLocalAttributeCopyParams;
614
+ //# sourceMappingURL=CreateSharedLocalAttributeCopyParams.js.map
666
615
 
667
616
  /***/ }),
668
617
 
669
- /***/ "./dist/modules/attributes/GetIdentityAttributesParams.js":
670
- /*!****************************************************************!*\
671
- !*** ./dist/modules/attributes/GetIdentityAttributesParams.js ***!
672
- \****************************************************************/
618
+ /***/ "./dist/modules/attributes/local/GetIdentityAttributesParams.js":
619
+ /*!**********************************************************************!*\
620
+ !*** ./dist/modules/attributes/local/GetIdentityAttributesParams.js ***!
621
+ \**********************************************************************/
673
622
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
674
623
 
675
624
  "use strict";
@@ -702,10 +651,10 @@ exports.GetIdentityAttributesParams = GetIdentityAttributesParams;
702
651
 
703
652
  /***/ }),
704
653
 
705
- /***/ "./dist/modules/attributes/GetRelationshipAttributesParams.js":
706
- /*!********************************************************************!*\
707
- !*** ./dist/modules/attributes/GetRelationshipAttributesParams.js ***!
708
- \********************************************************************/
654
+ /***/ "./dist/modules/attributes/local/GetRelationshipAttributesParams.js":
655
+ /*!**************************************************************************!*\
656
+ !*** ./dist/modules/attributes/local/GetRelationshipAttributesParams.js ***!
657
+ \**************************************************************************/
709
658
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
710
659
 
711
660
  "use strict";
@@ -738,94 +687,10 @@ exports.GetRelationshipAttributesParams = GetRelationshipAttributesParams;
738
687
 
739
688
  /***/ }),
740
689
 
741
- /***/ "./dist/modules/attributes/SucceedConsumptionAttributeParams.js":
742
- /*!**********************************************************************!*\
743
- !*** ./dist/modules/attributes/SucceedConsumptionAttributeParams.js ***!
744
- \**********************************************************************/
745
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
746
-
747
- "use strict";
748
-
749
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
750
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
751
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
752
- 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;
753
- return c > 3 && r && Object.defineProperty(target, key, r), r;
754
- };
755
- var __metadata = (this && this.__metadata) || function (k, v) {
756
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
757
- };
758
- Object.defineProperty(exports, "__esModule", ({ value: true }));
759
- exports.SucceedConsumptionAttributeParams = void 0;
760
- const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
761
- const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
762
- const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
763
- class SucceedConsumptionAttributeParams extends ts_serval_1.Serializable {
764
- static from(value) {
765
- return this.fromAny(value);
766
- }
767
- }
768
- __decorate([
769
- (0, ts_serval_1.serialize)({ unionTypes: [content_1.IdentityAttribute, content_1.RelationshipAttribute] }),
770
- (0, ts_serval_1.validate)(),
771
- __metadata("design:type", Object)
772
- ], SucceedConsumptionAttributeParams.prototype, "successorContent", void 0);
773
- __decorate([
774
- (0, ts_serval_1.serialize)(),
775
- (0, ts_serval_1.validate)(),
776
- __metadata("design:type", transport_1.CoreId)
777
- ], SucceedConsumptionAttributeParams.prototype, "succeeds", void 0);
778
- exports.SucceedConsumptionAttributeParams = SucceedConsumptionAttributeParams;
779
- //# sourceMappingURL=SucceedConsumptionAttributeParams.js.map
780
-
781
- /***/ }),
782
-
783
- /***/ "./dist/modules/attributes/UpdateConsumptionAttributeParams.js":
784
- /*!*********************************************************************!*\
785
- !*** ./dist/modules/attributes/UpdateConsumptionAttributeParams.js ***!
786
- \*********************************************************************/
787
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
788
-
789
- "use strict";
790
-
791
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
792
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
793
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
794
- 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;
795
- return c > 3 && r && Object.defineProperty(target, key, r), r;
796
- };
797
- var __metadata = (this && this.__metadata) || function (k, v) {
798
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
799
- };
800
- Object.defineProperty(exports, "__esModule", ({ value: true }));
801
- exports.UpdateConsumptionAttributeParams = void 0;
802
- const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
803
- const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
804
- const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
805
- class UpdateConsumptionAttributeParams extends ts_serval_1.Serializable {
806
- static from(value) {
807
- return this.fromAny(value);
808
- }
809
- }
810
- __decorate([
811
- (0, ts_serval_1.serialize)(),
812
- (0, ts_serval_1.validate)(),
813
- __metadata("design:type", transport_1.CoreId)
814
- ], UpdateConsumptionAttributeParams.prototype, "id", void 0);
815
- __decorate([
816
- (0, ts_serval_1.serialize)({ unionTypes: [content_1.IdentityAttribute, content_1.RelationshipAttribute] }),
817
- (0, ts_serval_1.validate)(),
818
- __metadata("design:type", Object)
819
- ], UpdateConsumptionAttributeParams.prototype, "content", void 0);
820
- exports.UpdateConsumptionAttributeParams = UpdateConsumptionAttributeParams;
821
- //# sourceMappingURL=UpdateConsumptionAttributeParams.js.map
822
-
823
- /***/ }),
824
-
825
- /***/ "./dist/modules/attributes/local/ConsumptionAttribute.js":
826
- /*!***************************************************************!*\
827
- !*** ./dist/modules/attributes/local/ConsumptionAttribute.js ***!
828
- \***************************************************************/
690
+ /***/ "./dist/modules/attributes/local/LocalAttribute.js":
691
+ /*!*********************************************************!*\
692
+ !*** ./dist/modules/attributes/local/LocalAttribute.js ***!
693
+ \*********************************************************/
829
694
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
830
695
 
831
696
  "use strict";
@@ -840,14 +705,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
840
705
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
841
706
  };
842
707
  Object.defineProperty(exports, "__esModule", ({ value: true }));
843
- exports.ConsumptionAttribute = void 0;
708
+ exports.LocalAttribute = void 0;
844
709
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
845
710
  const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
846
711
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
847
712
  const ts_simple_nameof_1 = __webpack_require__(/*! ts-simple-nameof */ "./node_modules/ts-simple-nameof/index.js");
848
713
  const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
849
- const ConsumptionAttributeShareInfo_1 = __webpack_require__(/*! ./ConsumptionAttributeShareInfo */ "./dist/modules/attributes/local/ConsumptionAttributeShareInfo.js");
850
- let ConsumptionAttribute = class ConsumptionAttribute extends transport_1.CoreSynchronizable {
714
+ const LocalAttributeShareInfo_1 = __webpack_require__(/*! ./LocalAttributeShareInfo */ "./dist/modules/attributes/local/LocalAttributeShareInfo.js");
715
+ let LocalAttribute = class LocalAttribute extends transport_1.CoreSynchronizable {
851
716
  constructor() {
852
717
  super(...arguments);
853
718
  this.technicalProperties = [
@@ -876,39 +741,39 @@ __decorate([
876
741
  (0, ts_serval_1.validate)(),
877
742
  (0, ts_serval_1.serialize)({ unionTypes: [content_1.IdentityAttribute, content_1.RelationshipAttribute] }),
878
743
  __metadata("design:type", Object)
879
- ], ConsumptionAttribute.prototype, "content", void 0);
744
+ ], LocalAttribute.prototype, "content", void 0);
880
745
  __decorate([
881
746
  (0, ts_serval_1.validate)(),
882
747
  (0, ts_serval_1.serialize)(),
883
748
  __metadata("design:type", transport_1.CoreDate)
884
- ], ConsumptionAttribute.prototype, "createdAt", void 0);
749
+ ], LocalAttribute.prototype, "createdAt", void 0);
885
750
  __decorate([
886
751
  (0, ts_serval_1.validate)({ nullable: true }),
887
752
  (0, ts_serval_1.serialize)(),
888
753
  __metadata("design:type", transport_1.CoreId)
889
- ], ConsumptionAttribute.prototype, "succeeds", void 0);
754
+ ], LocalAttribute.prototype, "succeeds", void 0);
890
755
  __decorate([
891
756
  (0, ts_serval_1.validate)({ nullable: true }),
892
757
  (0, ts_serval_1.serialize)(),
893
758
  __metadata("design:type", transport_1.CoreId)
894
- ], ConsumptionAttribute.prototype, "succeededBy", void 0);
759
+ ], LocalAttribute.prototype, "succeededBy", void 0);
895
760
  __decorate([
896
761
  (0, ts_serval_1.validate)({ nullable: true }),
897
762
  (0, ts_serval_1.serialize)(),
898
- __metadata("design:type", ConsumptionAttributeShareInfo_1.ConsumptionAttributeShareInfo)
899
- ], ConsumptionAttribute.prototype, "shareInfo", void 0);
900
- ConsumptionAttribute = __decorate([
901
- (0, ts_serval_1.type)("ConsumptionAttribute")
902
- ], ConsumptionAttribute);
903
- exports.ConsumptionAttribute = ConsumptionAttribute;
904
- //# sourceMappingURL=ConsumptionAttribute.js.map
763
+ __metadata("design:type", LocalAttributeShareInfo_1.LocalAttributeShareInfo)
764
+ ], LocalAttribute.prototype, "shareInfo", void 0);
765
+ LocalAttribute = __decorate([
766
+ (0, ts_serval_1.type)("LocalAttribute")
767
+ ], LocalAttribute);
768
+ exports.LocalAttribute = LocalAttribute;
769
+ //# sourceMappingURL=LocalAttribute.js.map
905
770
 
906
771
  /***/ }),
907
772
 
908
- /***/ "./dist/modules/attributes/local/ConsumptionAttributeShareInfo.js":
909
- /*!************************************************************************!*\
910
- !*** ./dist/modules/attributes/local/ConsumptionAttributeShareInfo.js ***!
911
- \************************************************************************/
773
+ /***/ "./dist/modules/attributes/local/LocalAttributeShareInfo.js":
774
+ /*!******************************************************************!*\
775
+ !*** ./dist/modules/attributes/local/LocalAttributeShareInfo.js ***!
776
+ \******************************************************************/
912
777
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
913
778
 
914
779
  "use strict";
@@ -923,10 +788,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
923
788
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
924
789
  };
925
790
  Object.defineProperty(exports, "__esModule", ({ value: true }));
926
- exports.ConsumptionAttributeShareInfo = void 0;
791
+ exports.LocalAttributeShareInfo = void 0;
927
792
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
928
793
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
929
- class ConsumptionAttributeShareInfo extends transport_1.CoreSerializable {
794
+ class LocalAttributeShareInfo extends transport_1.CoreSerializable {
930
795
  static from(value) {
931
796
  return super.fromAny(value);
932
797
  }
@@ -935,19 +800,19 @@ __decorate([
935
800
  (0, ts_serval_1.validate)(),
936
801
  (0, ts_serval_1.serialize)(),
937
802
  __metadata("design:type", transport_1.CoreId)
938
- ], ConsumptionAttributeShareInfo.prototype, "requestReference", void 0);
803
+ ], LocalAttributeShareInfo.prototype, "requestReference", void 0);
939
804
  __decorate([
940
805
  (0, ts_serval_1.validate)(),
941
806
  (0, ts_serval_1.serialize)(),
942
807
  __metadata("design:type", transport_1.CoreAddress)
943
- ], ConsumptionAttributeShareInfo.prototype, "peer", void 0);
808
+ ], LocalAttributeShareInfo.prototype, "peer", void 0);
944
809
  __decorate([
945
810
  (0, ts_serval_1.validate)({ nullable: true }),
946
811
  (0, ts_serval_1.serialize)(),
947
812
  __metadata("design:type", transport_1.CoreId)
948
- ], ConsumptionAttributeShareInfo.prototype, "sourceAttribute", void 0);
949
- exports.ConsumptionAttributeShareInfo = ConsumptionAttributeShareInfo;
950
- //# sourceMappingURL=ConsumptionAttributeShareInfo.js.map
813
+ ], LocalAttributeShareInfo.prototype, "sourceAttribute", void 0);
814
+ exports.LocalAttributeShareInfo = LocalAttributeShareInfo;
815
+ //# sourceMappingURL=LocalAttributeShareInfo.js.map
951
816
 
952
817
  /***/ }),
953
818
 
@@ -986,7 +851,9 @@ exports.identityQueryTranslator = new docdb_querytranslator_1.QueryTranslator({
986
851
  const allowedTags = [];
987
852
  for (const tag of input) {
988
853
  const tagQuery = {
989
- [`${(0, ts_simple_nameof_1.nameof)((x) => x.content)}.${(0, ts_simple_nameof_1.nameof)((x) => x.tags)}`]: { $contains: tag }
854
+ [`${(0, ts_simple_nameof_1.nameof)((x) => x.content)}.${(0, ts_simple_nameof_1.nameof)((x) => x.tags)}`]: {
855
+ $contains: tag
856
+ }
990
857
  };
991
858
  allowedTags.push(tagQuery);
992
859
  }
@@ -998,9 +865,10 @@ exports.identityQueryTranslator = new docdb_querytranslator_1.QueryTranslator({
998
865
  return;
999
866
  }
1000
867
  const validFromUtcString = luxon_1.DateTime.fromISO(input).toUTC().toString();
1001
- query[`${(0, ts_simple_nameof_1.nameof)((x) => x.content)}.${(0, ts_simple_nameof_1.nameof)((x) => x.validFrom)}`] = {
1002
- $gte: validFromUtcString
1003
- };
868
+ query[`${(0, ts_simple_nameof_1.nameof)((x) => x.content)}.${(0, ts_simple_nameof_1.nameof)((x) => x.validFrom)}`] =
869
+ {
870
+ $gte: validFromUtcString
871
+ };
1004
872
  },
1005
873
  // validTo
1006
874
  [(0, ts_simple_nameof_1.nameof)((x) => x.validTo)]: (query, input) => {
@@ -1051,9 +919,10 @@ exports.relationshipQueryTranslator = new docdb_querytranslator_1.QueryTranslato
1051
919
  return;
1052
920
  }
1053
921
  const validFromUtcString = luxon_1.DateTime.fromISO(input).toUTC().toString();
1054
- query[`${(0, ts_simple_nameof_1.nameof)((x) => x.content)}.${(0, ts_simple_nameof_1.nameof)((x) => x.validFrom)}`] = {
1055
- $gte: validFromUtcString
1056
- };
922
+ query[`${(0, ts_simple_nameof_1.nameof)((x) => x.content)}.${(0, ts_simple_nameof_1.nameof)((x) => x.validFrom)}`] =
923
+ {
924
+ $gte: validFromUtcString
925
+ };
1057
926
  },
1058
927
  // validTo
1059
928
  [(0, ts_simple_nameof_1.nameof)((x) => x.validTo)]: (query, input) => {
@@ -1071,6 +940,90 @@ exports.relationshipQueryTranslator = new docdb_querytranslator_1.QueryTranslato
1071
940
 
1072
941
  /***/ }),
1073
942
 
943
+ /***/ "./dist/modules/attributes/local/SucceedLocalAttributeParams.js":
944
+ /*!**********************************************************************!*\
945
+ !*** ./dist/modules/attributes/local/SucceedLocalAttributeParams.js ***!
946
+ \**********************************************************************/
947
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
948
+
949
+ "use strict";
950
+
951
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
952
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
953
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
954
+ 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;
955
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
956
+ };
957
+ var __metadata = (this && this.__metadata) || function (k, v) {
958
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
959
+ };
960
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
961
+ exports.SucceedLocalAttributeParams = void 0;
962
+ const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
963
+ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
964
+ const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
965
+ class SucceedLocalAttributeParams extends ts_serval_1.Serializable {
966
+ static from(value) {
967
+ return this.fromAny(value);
968
+ }
969
+ }
970
+ __decorate([
971
+ (0, ts_serval_1.serialize)({ unionTypes: [content_1.IdentityAttribute, content_1.RelationshipAttribute] }),
972
+ (0, ts_serval_1.validate)(),
973
+ __metadata("design:type", Object)
974
+ ], SucceedLocalAttributeParams.prototype, "successorContent", void 0);
975
+ __decorate([
976
+ (0, ts_serval_1.serialize)(),
977
+ (0, ts_serval_1.validate)(),
978
+ __metadata("design:type", transport_1.CoreId)
979
+ ], SucceedLocalAttributeParams.prototype, "succeeds", void 0);
980
+ exports.SucceedLocalAttributeParams = SucceedLocalAttributeParams;
981
+ //# sourceMappingURL=SucceedLocalAttributeParams.js.map
982
+
983
+ /***/ }),
984
+
985
+ /***/ "./dist/modules/attributes/local/UpdateLocalAttributeParams.js":
986
+ /*!*********************************************************************!*\
987
+ !*** ./dist/modules/attributes/local/UpdateLocalAttributeParams.js ***!
988
+ \*********************************************************************/
989
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
990
+
991
+ "use strict";
992
+
993
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
994
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
995
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
996
+ 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;
997
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
998
+ };
999
+ var __metadata = (this && this.__metadata) || function (k, v) {
1000
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1001
+ };
1002
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1003
+ exports.UpdateLocalAttributeParams = void 0;
1004
+ const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
1005
+ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
1006
+ const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
1007
+ class UpdateLocalAttributeParams extends ts_serval_1.Serializable {
1008
+ static from(value) {
1009
+ return this.fromAny(value);
1010
+ }
1011
+ }
1012
+ __decorate([
1013
+ (0, ts_serval_1.serialize)(),
1014
+ (0, ts_serval_1.validate)(),
1015
+ __metadata("design:type", transport_1.CoreId)
1016
+ ], UpdateLocalAttributeParams.prototype, "id", void 0);
1017
+ __decorate([
1018
+ (0, ts_serval_1.serialize)({ unionTypes: [content_1.IdentityAttribute, content_1.RelationshipAttribute] }),
1019
+ (0, ts_serval_1.validate)(),
1020
+ __metadata("design:type", Object)
1021
+ ], UpdateLocalAttributeParams.prototype, "content", void 0);
1022
+ exports.UpdateLocalAttributeParams = UpdateLocalAttributeParams;
1023
+ //# sourceMappingURL=UpdateLocalAttributeParams.js.map
1024
+
1025
+ /***/ }),
1026
+
1074
1027
  /***/ "./dist/modules/drafts/DraftsController.js":
1075
1028
  /*!*************************************************!*\
1076
1029
  !*** ./dist/modules/drafts/DraftsController.js ***!
@@ -1231,16 +1184,16 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
1231
1184
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
1232
1185
  };
1233
1186
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1234
- __exportStar(__webpack_require__(/*! ./attributes/ConsumptionAttributesController */ "./dist/modules/attributes/ConsumptionAttributesController.js"), exports);
1235
- __exportStar(__webpack_require__(/*! ./attributes/CreateConsumptionAttributeParams */ "./dist/modules/attributes/CreateConsumptionAttributeParams.js"), exports);
1236
- __exportStar(__webpack_require__(/*! ./attributes/CreatePeerConsumptionAttributeParams */ "./dist/modules/attributes/CreatePeerConsumptionAttributeParams.js"), exports);
1237
- __exportStar(__webpack_require__(/*! ./attributes/CreateSharedConsumptionAttributeCopyParams */ "./dist/modules/attributes/CreateSharedConsumptionAttributeCopyParams.js"), exports);
1238
- __exportStar(__webpack_require__(/*! ./attributes/GetIdentityAttributesParams */ "./dist/modules/attributes/GetIdentityAttributesParams.js"), exports);
1239
- __exportStar(__webpack_require__(/*! ./attributes/GetRelationshipAttributesParams */ "./dist/modules/attributes/GetRelationshipAttributesParams.js"), exports);
1240
- __exportStar(__webpack_require__(/*! ./attributes/local/ConsumptionAttribute */ "./dist/modules/attributes/local/ConsumptionAttribute.js"), exports);
1241
- __exportStar(__webpack_require__(/*! ./attributes/local/ConsumptionAttributeShareInfo */ "./dist/modules/attributes/local/ConsumptionAttributeShareInfo.js"), exports);
1242
- __exportStar(__webpack_require__(/*! ./attributes/SucceedConsumptionAttributeParams */ "./dist/modules/attributes/SucceedConsumptionAttributeParams.js"), exports);
1243
- __exportStar(__webpack_require__(/*! ./attributes/UpdateConsumptionAttributeParams */ "./dist/modules/attributes/UpdateConsumptionAttributeParams.js"), exports);
1187
+ __exportStar(__webpack_require__(/*! ./attributes/local/CreateLocalAttributeParams */ "./dist/modules/attributes/local/CreateLocalAttributeParams.js"), exports);
1188
+ __exportStar(__webpack_require__(/*! ./attributes/local/CreatePeerLocalAttributeParams */ "./dist/modules/attributes/local/CreatePeerLocalAttributeParams.js"), exports);
1189
+ __exportStar(__webpack_require__(/*! ./attributes/local/CreateSharedLocalAttributeCopyParams */ "./dist/modules/attributes/local/CreateSharedLocalAttributeCopyParams.js"), exports);
1190
+ __exportStar(__webpack_require__(/*! ./attributes/local/GetIdentityAttributesParams */ "./dist/modules/attributes/local/GetIdentityAttributesParams.js"), exports);
1191
+ __exportStar(__webpack_require__(/*! ./attributes/local/GetRelationshipAttributesParams */ "./dist/modules/attributes/local/GetRelationshipAttributesParams.js"), exports);
1192
+ __exportStar(__webpack_require__(/*! ./attributes/local/LocalAttribute */ "./dist/modules/attributes/local/LocalAttribute.js"), exports);
1193
+ __exportStar(__webpack_require__(/*! ./attributes/local/LocalAttributeShareInfo */ "./dist/modules/attributes/local/LocalAttributeShareInfo.js"), exports);
1194
+ __exportStar(__webpack_require__(/*! ./attributes/local/SucceedLocalAttributeParams */ "./dist/modules/attributes/local/SucceedLocalAttributeParams.js"), exports);
1195
+ __exportStar(__webpack_require__(/*! ./attributes/local/UpdateLocalAttributeParams */ "./dist/modules/attributes/local/UpdateLocalAttributeParams.js"), exports);
1196
+ __exportStar(__webpack_require__(/*! ./attributes/LocalAttributesController */ "./dist/modules/attributes/LocalAttributesController.js"), exports);
1244
1197
  __exportStar(__webpack_require__(/*! ./drafts/DraftsController */ "./dist/modules/drafts/DraftsController.js"), exports);
1245
1198
  __exportStar(__webpack_require__(/*! ./drafts/local/Draft */ "./dist/modules/drafts/local/Draft.js"), exports);
1246
1199
  __exportStar(__webpack_require__(/*! ./requests/incoming/checkPrerequisites/CheckPrerequisitesOfIncomingRequestParameters */ "./dist/modules/requests/incoming/checkPrerequisites/CheckPrerequisitesOfIncomingRequestParameters.js"), exports);
@@ -1260,15 +1213,19 @@ __exportStar(__webpack_require__(/*! ./requests/itemProcessors/createAttribute/C
1260
1213
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js"), exports);
1261
1214
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/IRequestItemProcessor */ "./dist/modules/requests/itemProcessors/IRequestItemProcessor.js"), exports);
1262
1215
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/ProcessorConstructor */ "./dist/modules/requests/itemProcessors/ProcessorConstructor.js"), exports);
1216
+ __exportStar(__webpack_require__(/*! ./requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters */ "./dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js"), exports);
1217
+ __exportStar(__webpack_require__(/*! ./requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor */ "./dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js"), exports);
1263
1218
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters */ "./dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js"), exports);
1264
1219
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor */ "./dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js"), exports);
1265
1220
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/RequestItemConstructor */ "./dist/modules/requests/itemProcessors/RequestItemConstructor.js"), exports);
1266
1221
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/RequestItemProcessorRegistry */ "./dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js"), exports);
1222
+ __exportStar(__webpack_require__(/*! ./requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters */ "./dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.js"), exports);
1223
+ __exportStar(__webpack_require__(/*! ./requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor */ "./dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js"), exports);
1267
1224
  __exportStar(__webpack_require__(/*! ./requests/itemProcessors/ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js"), exports);
1268
- __exportStar(__webpack_require__(/*! ./requests/local/ConsumptionRequest */ "./dist/modules/requests/local/ConsumptionRequest.js"), exports);
1269
- __exportStar(__webpack_require__(/*! ./requests/local/ConsumptionRequestStatus */ "./dist/modules/requests/local/ConsumptionRequestStatus.js"), exports);
1270
- __exportStar(__webpack_require__(/*! ./requests/local/ConsumptionRequestStatusLogEntry */ "./dist/modules/requests/local/ConsumptionRequestStatusLogEntry.js"), exports);
1271
- __exportStar(__webpack_require__(/*! ./requests/local/ConsumptionResponse */ "./dist/modules/requests/local/ConsumptionResponse.js"), exports);
1225
+ __exportStar(__webpack_require__(/*! ./requests/local/LocalRequest */ "./dist/modules/requests/local/LocalRequest.js"), exports);
1226
+ __exportStar(__webpack_require__(/*! ./requests/local/LocalRequestStatus */ "./dist/modules/requests/local/LocalRequestStatus.js"), exports);
1227
+ __exportStar(__webpack_require__(/*! ./requests/local/LocalRequestStatusLogEntry */ "./dist/modules/requests/local/LocalRequestStatusLogEntry.js"), exports);
1228
+ __exportStar(__webpack_require__(/*! ./requests/local/LocalResponse */ "./dist/modules/requests/local/LocalResponse.js"), exports);
1272
1229
  __exportStar(__webpack_require__(/*! ./requests/outgoing/completeOutgoingRequest/CompleteOutgoingRequestParameters */ "./dist/modules/requests/outgoing/completeOutgoingRequest/CompleteOutgoingRequestParameters.js"), exports);
1273
1230
  __exportStar(__webpack_require__(/*! ./requests/outgoing/createFromRelationshipCreationChange/CreateOutgoingRequestFromRelationshipCreationChangeParameters */ "./dist/modules/requests/outgoing/createFromRelationshipCreationChange/CreateOutgoingRequestFromRelationshipCreationChangeParameters.js"), exports);
1274
1231
  __exportStar(__webpack_require__(/*! ./requests/outgoing/createOutgoingRequest/CreateOutgoingRequestParameters */ "./dist/modules/requests/outgoing/createOutgoingRequest/CreateOutgoingRequestParameters.js"), exports);
@@ -1373,9 +1330,9 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
1373
1330
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
1374
1331
  const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
1375
1332
  const ValidationResult_1 = __webpack_require__(/*! ../itemProcessors/ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
1376
- const ConsumptionRequest_1 = __webpack_require__(/*! ../local/ConsumptionRequest */ "./dist/modules/requests/local/ConsumptionRequest.js");
1377
- const ConsumptionRequestStatus_1 = __webpack_require__(/*! ../local/ConsumptionRequestStatus */ "./dist/modules/requests/local/ConsumptionRequestStatus.js");
1378
- const ConsumptionResponse_1 = __webpack_require__(/*! ../local/ConsumptionResponse */ "./dist/modules/requests/local/ConsumptionResponse.js");
1333
+ const LocalRequest_1 = __webpack_require__(/*! ../local/LocalRequest */ "./dist/modules/requests/local/LocalRequest.js");
1334
+ const LocalRequestStatus_1 = __webpack_require__(/*! ../local/LocalRequestStatus */ "./dist/modules/requests/local/LocalRequestStatus.js");
1335
+ const LocalResponse_1 = __webpack_require__(/*! ../local/LocalResponse */ "./dist/modules/requests/local/LocalResponse.js");
1379
1336
  const CheckPrerequisitesOfIncomingRequestParameters_1 = __webpack_require__(/*! ./checkPrerequisites/CheckPrerequisitesOfIncomingRequestParameters */ "./dist/modules/requests/incoming/checkPrerequisites/CheckPrerequisitesOfIncomingRequestParameters.js");
1380
1337
  const CompleteIncomingRequestParameters_1 = __webpack_require__(/*! ./complete/CompleteIncomingRequestParameters */ "./dist/modules/requests/incoming/complete/CompleteIncomingRequestParameters.js");
1381
1338
  const InternalDecideRequestParameters_1 = __webpack_require__(/*! ./decide/InternalDecideRequestParameters */ "./dist/modules/requests/incoming/decide/InternalDecideRequestParameters.js");
@@ -1392,10 +1349,10 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
1392
1349
  async received(params) {
1393
1350
  const parsedParams = ReceivedIncomingRequestParameters_1.ReceivedIncomingRequestParameters.from(params);
1394
1351
  const infoFromSource = this.extractInfoFromSource(parsedParams.requestSourceObject);
1395
- const consumptionRequest = ConsumptionRequest_1.ConsumptionRequest.from({
1352
+ const consumptionRequest = LocalRequest_1.LocalRequest.from({
1396
1353
  id: parsedParams.receivedRequest.id ?? (await consumption_1.ConsumptionIds.request.generate()),
1397
1354
  createdAt: transport_1.CoreDate.utc(),
1398
- status: ConsumptionRequestStatus_1.ConsumptionRequestStatus.Open,
1355
+ status: LocalRequestStatus_1.LocalRequestStatus.Open,
1399
1356
  content: parsedParams.receivedRequest,
1400
1357
  isOwn: false,
1401
1358
  peer: infoFromSource.peer,
@@ -1436,11 +1393,11 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
1436
1393
  async checkPrerequisites(params) {
1437
1394
  const parsedParams = CheckPrerequisitesOfIncomingRequestParameters_1.CheckPrerequisitesOfIncomingRequestParameters.from(params);
1438
1395
  const request = await this.getOrThrow(parsedParams.requestId);
1439
- this.assertRequestStatus(request, ConsumptionRequestStatus_1.ConsumptionRequestStatus.Open);
1396
+ this.assertRequestStatus(request, LocalRequestStatus_1.LocalRequestStatus.Open);
1440
1397
  for (const item of request.content.items) {
1441
1398
  if (item instanceof content_1.RequestItem) {
1442
1399
  const processor = this.processorRegistry.getProcessorForItem(item);
1443
- const prerequisitesFulfilled = await processor.checkPrerequisitesOfIncomingRequestItem(item);
1400
+ const prerequisitesFulfilled = await processor.checkPrerequisitesOfIncomingRequestItem(item, request);
1444
1401
  if (!prerequisitesFulfilled) {
1445
1402
  return request;
1446
1403
  }
@@ -1448,22 +1405,22 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
1448
1405
  else {
1449
1406
  for (const childItem of item.items) {
1450
1407
  const processor = this.processorRegistry.getProcessorForItem(childItem);
1451
- const prerequisitesFulfilled = await processor.checkPrerequisitesOfIncomingRequestItem(childItem);
1408
+ const prerequisitesFulfilled = await processor.checkPrerequisitesOfIncomingRequestItem(childItem, request);
1452
1409
  if (!prerequisitesFulfilled) {
1453
1410
  return request;
1454
1411
  }
1455
1412
  }
1456
1413
  }
1457
1414
  }
1458
- request.changeStatus(ConsumptionRequestStatus_1.ConsumptionRequestStatus.DecisionRequired);
1415
+ request.changeStatus(LocalRequestStatus_1.LocalRequestStatus.DecisionRequired);
1459
1416
  await this.update(request);
1460
1417
  return request;
1461
1418
  }
1462
1419
  async requireManualDecision(params) {
1463
1420
  const parsedParams = RequireManualDecisionOfIncomingRequestParameters_1.RequireManualDecisionOfIncomingRequestParameters.from(params);
1464
1421
  const request = await this.getOrThrow(parsedParams.requestId);
1465
- this.assertRequestStatus(request, ConsumptionRequestStatus_1.ConsumptionRequestStatus.DecisionRequired);
1466
- request.changeStatus(ConsumptionRequestStatus_1.ConsumptionRequestStatus.ManualDecisionRequired);
1422
+ this.assertRequestStatus(request, LocalRequestStatus_1.LocalRequestStatus.DecisionRequired);
1423
+ request.changeStatus(LocalRequestStatus_1.LocalRequestStatus.ManualDecisionRequired);
1467
1424
  await this.update(request);
1468
1425
  return request;
1469
1426
  }
@@ -1481,7 +1438,7 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
1481
1438
  if (!validationResult.isSuccess) {
1482
1439
  throw new Error(validationResult.error.message);
1483
1440
  }
1484
- this.assertRequestStatus(request, ConsumptionRequestStatus_1.ConsumptionRequestStatus.DecisionRequired, ConsumptionRequestStatus_1.ConsumptionRequestStatus.ManualDecisionRequired);
1441
+ this.assertRequestStatus(request, LocalRequestStatus_1.LocalRequestStatus.DecisionRequired, LocalRequestStatus_1.LocalRequestStatus.ManualDecisionRequired);
1485
1442
  const itemResults = await this.canDecideItems(params.items, request.content.items, request);
1486
1443
  return ValidationResult_1.ValidationResult.fromItems(itemResults);
1487
1444
  }
@@ -1533,14 +1490,14 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
1533
1490
  }
1534
1491
  async decide(params) {
1535
1492
  const consumptionRequest = await this.getOrThrow(params.requestId);
1536
- this.assertRequestStatus(consumptionRequest, ConsumptionRequestStatus_1.ConsumptionRequestStatus.DecisionRequired, ConsumptionRequestStatus_1.ConsumptionRequestStatus.ManualDecisionRequired);
1537
- const consumptionResponse = await this.createConsumptionResponse(params, consumptionRequest);
1538
- consumptionRequest.response = consumptionResponse;
1539
- consumptionRequest.changeStatus(ConsumptionRequestStatus_1.ConsumptionRequestStatus.Decided);
1493
+ this.assertRequestStatus(consumptionRequest, LocalRequestStatus_1.LocalRequestStatus.DecisionRequired, LocalRequestStatus_1.LocalRequestStatus.ManualDecisionRequired);
1494
+ const localResponse = await this.createLocalResponse(params, consumptionRequest);
1495
+ consumptionRequest.response = localResponse;
1496
+ consumptionRequest.changeStatus(LocalRequestStatus_1.LocalRequestStatus.Decided);
1540
1497
  await this.update(consumptionRequest);
1541
1498
  return consumptionRequest;
1542
1499
  }
1543
- async createConsumptionResponse(params, request) {
1500
+ async createLocalResponse(params, request) {
1544
1501
  const requestItems = request.content.items;
1545
1502
  const responseItems = await this.decideItems(params.items, requestItems, request);
1546
1503
  const response = content_1.Response.from({
@@ -1548,18 +1505,15 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
1548
1505
  requestId: request.id,
1549
1506
  items: responseItems
1550
1507
  });
1551
- const consumptionResponse = ConsumptionResponse_1.ConsumptionResponse.from({
1508
+ const localResponse = LocalResponse_1.LocalResponse.from({
1552
1509
  content: response,
1553
1510
  createdAt: transport_1.CoreDate.utc()
1554
1511
  });
1555
- return consumptionResponse;
1512
+ return localResponse;
1556
1513
  }
1557
1514
  async decideGroup(groupItemParam, requestItemGroup, request) {
1558
1515
  const items = (await this.decideItems(groupItemParam.items, requestItemGroup.items, request));
1559
- const group = content_1.ResponseItemGroup.from({
1560
- items: items,
1561
- metadata: requestItemGroup.responseMetadata
1562
- });
1516
+ const group = content_1.ResponseItemGroup.from({ items: items });
1563
1517
  return group;
1564
1518
  }
1565
1519
  async decideItems(params, requestItems, request) {
@@ -1598,7 +1552,7 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
1598
1552
  if (request.isOwn) {
1599
1553
  throw new Error("Cannot decide own Request");
1600
1554
  }
1601
- this.assertRequestStatus(request, ConsumptionRequestStatus_1.ConsumptionRequestStatus.Decided);
1555
+ this.assertRequestStatus(request, LocalRequestStatus_1.LocalRequestStatus.Decided);
1602
1556
  let responseSource;
1603
1557
  if (parsedParams.responseSourceObject instanceof transport_1.Message) {
1604
1558
  responseSource = "Message";
@@ -1609,11 +1563,11 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
1609
1563
  else {
1610
1564
  throw new Error("Unknown response source");
1611
1565
  }
1612
- request.response.source = ConsumptionResponse_1.ConsumptionResponseSource.from({
1566
+ request.response.source = LocalResponse_1.LocalResponseSource.from({
1613
1567
  type: responseSource,
1614
1568
  reference: parsedParams.responseSourceObject.id
1615
1569
  });
1616
- request.changeStatus(ConsumptionRequestStatus_1.ConsumptionRequestStatus.Completed);
1570
+ request.changeStatus(LocalRequestStatus_1.LocalRequestStatus.Completed);
1617
1571
  await this.update(request);
1618
1572
  return request;
1619
1573
  }
@@ -1621,31 +1575,31 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
1621
1575
  query ??= {};
1622
1576
  query.isOwn = false;
1623
1577
  const requestDocs = await this.consumptionRequests.find(query);
1624
- const requests = requestDocs.map((r) => ConsumptionRequest_1.ConsumptionRequest.from(r));
1578
+ const requests = requestDocs.map((r) => LocalRequest_1.LocalRequest.from(r));
1625
1579
  return requests;
1626
1580
  }
1627
1581
  async getIncomingRequest(idIncomingRequest) {
1628
1582
  const requestDoc = await this.consumptionRequests.findOne({ id: idIncomingRequest.toString(), isOwn: false });
1629
- const request = requestDoc ? ConsumptionRequest_1.ConsumptionRequest.from(requestDoc) : undefined;
1583
+ const request = requestDoc ? LocalRequest_1.LocalRequest.from(requestDoc) : undefined;
1630
1584
  return request;
1631
1585
  }
1632
1586
  async getOrThrow(id) {
1633
1587
  const request = await this.getIncomingRequest(transport_1.CoreId.from(id));
1634
1588
  if (!request) {
1635
- throw transport_1.TransportErrors.general.recordNotFound(ConsumptionRequest_1.ConsumptionRequest, id.toString());
1589
+ throw transport_1.TransportErrors.general.recordNotFound(LocalRequest_1.LocalRequest, id.toString());
1636
1590
  }
1637
1591
  return request;
1638
1592
  }
1639
1593
  async update(request) {
1640
1594
  const requestDoc = await this.consumptionRequests.findOne({ id: request.id.toString(), isOwn: false });
1641
1595
  if (!requestDoc) {
1642
- throw transport_1.TransportErrors.general.recordNotFound(ConsumptionRequest_1.ConsumptionRequest, request.id.toString());
1596
+ throw transport_1.TransportErrors.general.recordNotFound(LocalRequest_1.LocalRequest, request.id.toString());
1643
1597
  }
1644
1598
  await this.consumptionRequests.update(requestDoc, request);
1645
1599
  }
1646
1600
  assertRequestStatus(request, ...status) {
1647
1601
  if (!status.includes(request.status)) {
1648
- throw new Error(`Consumption Request has to be in status '${status.join("/")}'.`);
1602
+ throw new Error(`Local Request has to be in status '${status.join("/")}'.`);
1649
1603
  }
1650
1604
  }
1651
1605
  }
@@ -1952,6 +1906,8 @@ exports.AbstractRequestItemProcessor = void 0;
1952
1906
  class AbstractRequestItemProcessor {
1953
1907
  constructor(consumptionController) {
1954
1908
  this.consumptionController = consumptionController;
1909
+ this.accountController = this.consumptionController.accountController;
1910
+ this.currentIdentityAddress = this.accountController.identity.address;
1955
1911
  }
1956
1912
  }
1957
1913
  exports.AbstractRequestItemProcessor = AbstractRequestItemProcessor;
@@ -1974,34 +1930,28 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
1974
1930
  const AbstractRequestItemProcessor_1 = __webpack_require__(/*! ./AbstractRequestItemProcessor */ "./dist/modules/requests/itemProcessors/AbstractRequestItemProcessor.js");
1975
1931
  const ValidationResult_1 = __webpack_require__(/*! ./ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
1976
1932
  class GenericRequestItemProcessor extends AbstractRequestItemProcessor_1.AbstractRequestItemProcessor {
1977
- checkPrerequisitesOfIncomingRequestItem(_requestItem) {
1933
+ checkPrerequisitesOfIncomingRequestItem(requestItem, requestInfo) {
1978
1934
  return true;
1979
1935
  }
1980
- canAccept(requestItem, params, request) {
1936
+ canAccept(requestItem, params, requestInfo) {
1981
1937
  return ValidationResult_1.ValidationResult.success();
1982
1938
  }
1983
- canReject(requestItem, params, request) {
1939
+ canReject(requestItem, params, requestInfo) {
1984
1940
  return ValidationResult_1.ValidationResult.success();
1985
1941
  }
1986
- accept(requestItem, params, request) {
1987
- return content_1.AcceptResponseItem.from({
1988
- result: content_1.ResponseItemResult.Accepted,
1989
- metadata: requestItem.responseMetadata
1990
- });
1942
+ accept(requestItem, params, requestInfo) {
1943
+ return content_1.AcceptResponseItem.from({ result: content_1.ResponseItemResult.Accepted });
1991
1944
  }
1992
- reject(requestItem, params, request) {
1993
- return content_1.RejectResponseItem.from({
1994
- result: content_1.ResponseItemResult.Rejected,
1995
- metadata: requestItem.responseMetadata
1996
- });
1945
+ reject(requestItem, params, requestInfo) {
1946
+ return content_1.RejectResponseItem.from({ result: content_1.ResponseItemResult.Rejected });
1997
1947
  }
1998
- canCreateOutgoingRequestItem(requestItem) {
1948
+ canCreateOutgoingRequestItem(requestItem, request, recipient) {
1999
1949
  return ValidationResult_1.ValidationResult.success();
2000
1950
  }
2001
- canApplyIncomingResponseItem(responseItem, requestItem, request) {
1951
+ canApplyIncomingResponseItem(responseItem, requestItem, requestInfo) {
2002
1952
  return ValidationResult_1.ValidationResult.success();
2003
1953
  }
2004
- applyIncomingResponseItem(responseItem, requestItem, request) {
1954
+ applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
2005
1955
  // do nothing
2006
1956
  }
2007
1957
  }
@@ -2060,24 +2010,21 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
2060
2010
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2061
2011
  exports.RequestItemProcessorRegistry = void 0;
2062
2012
  class RequestItemProcessorRegistry {
2063
- constructor(consumptionController, processors = []) {
2013
+ constructor(consumptionController, processors = new Map()) {
2064
2014
  this.consumptionController = consumptionController;
2065
- this.registry = {};
2066
- for (const { itemConstructor, processorConstructor } of processors) {
2067
- this.registerProcessor(processorConstructor, itemConstructor);
2068
- }
2015
+ this.processors = processors;
2069
2016
  }
2070
- registerProcessor(processorConstructor, itemConstructor) {
2071
- if (this.registry.hasOwnProperty(itemConstructor.name)) {
2017
+ registerProcessor(itemConstructor, processorConstructor) {
2018
+ if (this.processors.has(itemConstructor)) {
2072
2019
  throw new Error(`There is already a processor registered for '${itemConstructor.name}''. Use 'replaceProcessorForType' if you want to replace it.`);
2073
2020
  }
2074
- this.registry[itemConstructor.name] = processorConstructor;
2021
+ this.processors.set(itemConstructor, processorConstructor);
2075
2022
  }
2076
- replaceProcessor(processorConstructor, itemConstructor) {
2077
- this.registry[itemConstructor.name] = processorConstructor;
2023
+ registerOrReplaceProcessor(itemConstructor, processorConstructor) {
2024
+ this.processors.set(itemConstructor, processorConstructor);
2078
2025
  }
2079
2026
  getProcessorForItem(item) {
2080
- const constructor = this.registry[item.constructor.name];
2027
+ const constructor = this.processors.get(item.constructor);
2081
2028
  if (!constructor) {
2082
2029
  throw new Error(`There was no processor registered for '${item.constructor.name}'.`);
2083
2030
  }
@@ -2098,20 +2045,20 @@ exports.RequestItemProcessorRegistry = RequestItemProcessorRegistry;
2098
2045
  "use strict";
2099
2046
 
2100
2047
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2101
- exports.ErrorValidationResult = exports.SuccessfulValidatonResult = exports.ValidationResult = void 0;
2048
+ exports.ErrorValidationResult = exports.SuccessfulValidationResult = exports.ValidationResult = void 0;
2102
2049
  const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
2103
2050
  class ValidationResult {
2104
2051
  constructor(items) {
2105
2052
  this.items = items;
2106
2053
  }
2107
2054
  isSuccess() {
2108
- return this instanceof SuccessfulValidatonResult;
2055
+ return this instanceof SuccessfulValidationResult;
2109
2056
  }
2110
2057
  isError() {
2111
2058
  return this instanceof ErrorValidationResult;
2112
2059
  }
2113
2060
  static success(items = []) {
2114
- return new SuccessfulValidatonResult(items);
2061
+ return new SuccessfulValidationResult(items);
2115
2062
  }
2116
2063
  static error(error, items = []) {
2117
2064
  return new ErrorValidationResult(error, items);
@@ -2123,12 +2070,12 @@ class ValidationResult {
2123
2070
  }
2124
2071
  }
2125
2072
  exports.ValidationResult = ValidationResult;
2126
- class SuccessfulValidatonResult extends ValidationResult {
2073
+ class SuccessfulValidationResult extends ValidationResult {
2127
2074
  constructor(items) {
2128
2075
  super(items);
2129
2076
  }
2130
2077
  }
2131
- exports.SuccessfulValidatonResult = SuccessfulValidatonResult;
2078
+ exports.SuccessfulValidationResult = SuccessfulValidationResult;
2132
2079
  class ErrorValidationResult extends ValidationResult {
2133
2080
  constructor(error, items) {
2134
2081
  super(items);
@@ -2185,41 +2132,47 @@ const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist
2185
2132
  const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
2186
2133
  const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
2187
2134
  class CreateAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
2188
- canCreateOutgoingRequestItem(requestItem) {
2189
- // TODO: remove the following if we for sure only allow RelationshipAttributes in a RequestItem
2135
+ canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
2190
2136
  if (requestItem.attribute instanceof content_1.IdentityAttribute) {
2191
- // It doesn't make sense to send a CreateAttributeRequestItem with an IdentityAttribute. E.g. the following cases would have to be handled:
2192
- // - The RequestItem contains an Attribute (e.g. GivenName) with the same value as an already existing Attribute
2193
- // => Should the user reject the request? If not, do we save a new Attribute with the same value?
2194
- // - The RequestItem contains an Attribute (e.g. GivenName) with the a different value than an already existing Attribute
2195
- // - ...
2196
- return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.cannotSendCreateAttributeRequestItemsWithIdentityAttributes());
2137
+ return this.canCreateRequestItemWithIdentityAttribute(requestItem);
2138
+ }
2139
+ return this.canCreateRequestItemWithRelationshipAttribute(requestItem);
2140
+ }
2141
+ canCreateRequestItemWithIdentityAttribute(requestItem) {
2142
+ const iAmOwnerOfTheAttribute = this.accountController.identity.isMe(requestItem.attribute.owner);
2143
+ if (!iAmOwnerOfTheAttribute) {
2144
+ return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem(`Cannot send Identity Attributes of which you are not the owner via ${content_1.CreateAttributeRequestItem.name}. Consider using a ${content_1.ProposeAttributeRequestItem.name} instead.`));
2197
2145
  }
2198
2146
  return ValidationResult_1.ValidationResult.success();
2199
2147
  }
2200
- async accept(requestItem, _params, request) {
2201
- if (requestItem.attribute instanceof content_1.IdentityAttribute) {
2202
- throw new Error("IdentityAttribute not supported"); // TODO: allow only Relationship Attributes in RequestItem?
2148
+ canCreateRequestItemWithRelationshipAttribute(requestItem) {
2149
+ const iAmOwnerOfTheAttribute = this.accountController.identity.isMe(requestItem.attribute.owner);
2150
+ if (!iAmOwnerOfTheAttribute) {
2151
+ return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot send Relationship Attributes of which you are not the owner."));
2203
2152
  }
2204
- const result = await this.consumptionController.attributes.createRelationshipAttribute({
2153
+ return ValidationResult_1.ValidationResult.success();
2154
+ }
2155
+ async accept(requestItem, _params, requestInfo) {
2156
+ const peerLocalAttribute = await this.consumptionController.attributes.createPeerLocalAttribute({
2205
2157
  content: requestItem.attribute,
2206
- peer: request.peer,
2207
- requestReference: request.id
2158
+ peer: requestInfo.peer,
2159
+ requestReference: requestInfo.id
2208
2160
  });
2209
2161
  return content_1.CreateAttributeAcceptResponseItem.from({
2210
- result: content_1.ResponseItemResult.Accepted,
2211
- attributeId: result.id
2162
+ attributeId: peerLocalAttribute.id,
2163
+ result: content_1.ResponseItemResult.Accepted
2212
2164
  });
2213
2165
  }
2214
- async applyIncomingResponseItem(responseItem, requestItem, request) {
2166
+ async applyIncomingResponseItem(responseItem, requestItem, requestInfo) {
2215
2167
  if (!(responseItem instanceof content_1.CreateAttributeAcceptResponseItem)) {
2216
2168
  return;
2217
2169
  }
2218
- await this.consumptionController.attributes.createPeerConsumptionAttribute({
2170
+ /* TODO: in case of an own IdentityAttribute that was sent to the peer, we need to specify a source attribute; but currently we can't find the source attribute, because we don't know the id the user picked when sending the request */
2171
+ await this.consumptionController.attributes.createPeerLocalAttribute({
2219
2172
  id: responseItem.attributeId,
2220
2173
  content: requestItem.attribute,
2221
- peer: request.peer,
2222
- requestReference: request.id
2174
+ peer: requestInfo.peer,
2175
+ requestReference: requestInfo.id
2223
2176
  });
2224
2177
  }
2225
2178
  }
@@ -2228,6 +2181,161 @@ exports.CreateAttributeRequestItemProcessor = CreateAttributeRequestItemProcesso
2228
2181
 
2229
2182
  /***/ }),
2230
2183
 
2184
+ /***/ "./dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js":
2185
+ /*!**************************************************************************************************************!*\
2186
+ !*** ./dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js ***!
2187
+ \**************************************************************************************************************/
2188
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2189
+
2190
+ "use strict";
2191
+
2192
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2193
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2194
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2195
+ 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;
2196
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2197
+ };
2198
+ var __metadata = (this && this.__metadata) || function (k, v) {
2199
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2200
+ };
2201
+ var AcceptProposeAttributeRequestItemParameters_1;
2202
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2203
+ exports.AcceptProposeAttributeRequestItemParameters = void 0;
2204
+ const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
2205
+ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
2206
+ const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
2207
+ const ts_simple_nameof_1 = __webpack_require__(/*! ts-simple-nameof */ "./node_modules/ts-simple-nameof/index.js");
2208
+ let AcceptProposeAttributeRequestItemParameters = AcceptProposeAttributeRequestItemParameters_1 = class AcceptProposeAttributeRequestItemParameters extends ts_serval_1.Serializable {
2209
+ static from(value) {
2210
+ return this.fromAny(value);
2211
+ }
2212
+ static postFrom(value) {
2213
+ const typedValue = value;
2214
+ if (typedValue.attributeId && typedValue.attribute) {
2215
+ throw new ts_serval_1.ValidationError(AcceptProposeAttributeRequestItemParameters_1.name, (0, ts_simple_nameof_1.nameof)((x) => x.attribute), `You cannot specify both ${(0, ts_simple_nameof_1.nameof)((x) => x.attribute)} and ${(0, ts_simple_nameof_1.nameof)((x) => x.attributeId)}.`);
2216
+ }
2217
+ if (!typedValue.attributeId && !typedValue.attribute) {
2218
+ throw new ts_serval_1.ValidationError(AcceptProposeAttributeRequestItemParameters_1.name, (0, ts_simple_nameof_1.nameof)((x) => x.attribute), `You have to specify either ${(0, ts_simple_nameof_1.nameof)((x) => x.attribute)} or ${(0, ts_simple_nameof_1.nameof)((x) => x.attributeId)}.`);
2219
+ }
2220
+ return value;
2221
+ }
2222
+ };
2223
+ __decorate([
2224
+ (0, ts_serval_1.serialize)(),
2225
+ (0, ts_serval_1.validate)({ nullable: true }),
2226
+ __metadata("design:type", transport_1.CoreId)
2227
+ ], AcceptProposeAttributeRequestItemParameters.prototype, "attributeId", void 0);
2228
+ __decorate([
2229
+ (0, ts_serval_1.serialize)({ unionTypes: [content_1.IdentityAttribute, content_1.RelationshipAttribute] }),
2230
+ (0, ts_serval_1.validate)({ nullable: true }),
2231
+ __metadata("design:type", Object)
2232
+ ], AcceptProposeAttributeRequestItemParameters.prototype, "attribute", void 0);
2233
+ AcceptProposeAttributeRequestItemParameters = AcceptProposeAttributeRequestItemParameters_1 = __decorate([
2234
+ (0, ts_serval_1.type)("AcceptProposeAttributeRequestItemParameters")
2235
+ ], AcceptProposeAttributeRequestItemParameters);
2236
+ exports.AcceptProposeAttributeRequestItemParameters = AcceptProposeAttributeRequestItemParameters;
2237
+ //# sourceMappingURL=AcceptProposeAttributeRequestItemParameters.js.map
2238
+
2239
+ /***/ }),
2240
+
2241
+ /***/ "./dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js":
2242
+ /*!*******************************************************************************************************!*\
2243
+ !*** ./dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js ***!
2244
+ \*******************************************************************************************************/
2245
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2246
+
2247
+ "use strict";
2248
+
2249
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2250
+ return (mod && mod.__esModule) ? mod : { "default": mod };
2251
+ };
2252
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2253
+ exports.ProposeAttributeRequestItemProcessor = void 0;
2254
+ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
2255
+ const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
2256
+ const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
2257
+ const LocalAttribute_1 = __webpack_require__(/*! ../../../attributes/local/LocalAttribute */ "./dist/modules/attributes/local/LocalAttribute.js");
2258
+ const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
2259
+ const validateQuery_1 = __importDefault(__webpack_require__(/*! ../utility/validateQuery */ "./dist/modules/requests/itemProcessors/utility/validateQuery.js"));
2260
+ const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
2261
+ const AcceptProposeAttributeRequestItemParameters_1 = __webpack_require__(/*! ./AcceptProposeAttributeRequestItemParameters */ "./dist/modules/requests/itemProcessors/proposeAttribute/AcceptProposeAttributeRequestItemParameters.js");
2262
+ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
2263
+ canCreateOutgoingRequestItem(requestItem, _request, recipient) {
2264
+ const queryValidationResult = (0, validateQuery_1.default)(requestItem.query, this.currentIdentityAddress, recipient);
2265
+ if (queryValidationResult.isError()) {
2266
+ return queryValidationResult;
2267
+ }
2268
+ return ValidationResult_1.ValidationResult.success();
2269
+ }
2270
+ async canAccept(_requestItem, params, requestInfo) {
2271
+ const parsedParams = AcceptProposeAttributeRequestItemParameters_1.AcceptProposeAttributeRequestItemParameters.from(params);
2272
+ if (parsedParams.attributeId) {
2273
+ const foundAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.attributeId);
2274
+ if (!foundAttribute) {
2275
+ return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
2276
+ }
2277
+ if (!this.accountController.identity.isMe(foundAttribute.content.owner)) {
2278
+ return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
2279
+ }
2280
+ }
2281
+ return ValidationResult_1.ValidationResult.success();
2282
+ }
2283
+ async accept(_requestItem, params, requestInfo) {
2284
+ const parsedParams = AcceptProposeAttributeRequestItemParameters_1.AcceptProposeAttributeRequestItemParameters.from(params);
2285
+ let sharedLocalAttribute;
2286
+ if (parsedParams.attributeId) {
2287
+ sharedLocalAttribute = await this.copyExistingAttribute(parsedParams.attributeId, requestInfo);
2288
+ }
2289
+ else {
2290
+ sharedLocalAttribute = await this.createNewAttribute(parsedParams.attribute, requestInfo);
2291
+ }
2292
+ return content_1.ProposeAttributeAcceptResponseItem.from({
2293
+ result: content_1.ResponseItemResult.Accepted,
2294
+ attributeId: sharedLocalAttribute.id,
2295
+ attribute: sharedLocalAttribute.content
2296
+ });
2297
+ }
2298
+ async copyExistingAttribute(attributeId, requestInfo) {
2299
+ return await this.consumptionController.attributes.createSharedLocalAttributeCopy({
2300
+ attributeId: transport_1.CoreId.from(attributeId),
2301
+ peer: transport_1.CoreAddress.from(requestInfo.peer),
2302
+ requestReference: transport_1.CoreId.from(requestInfo.id)
2303
+ });
2304
+ }
2305
+ async createNewAttribute(attribute, requestInfo) {
2306
+ if (attribute instanceof content_1.IdentityAttribute) {
2307
+ const repositoryLocalAttribute = await this.consumptionController.attributes.createLocalAttribute({
2308
+ content: attribute
2309
+ });
2310
+ return await this.consumptionController.attributes.createSharedLocalAttributeCopy({
2311
+ attributeId: transport_1.CoreId.from(repositoryLocalAttribute.id),
2312
+ peer: transport_1.CoreAddress.from(requestInfo.peer),
2313
+ requestReference: transport_1.CoreId.from(requestInfo.id)
2314
+ });
2315
+ }
2316
+ return await this.consumptionController.attributes.createPeerLocalAttribute({
2317
+ content: attribute,
2318
+ peer: requestInfo.peer,
2319
+ requestReference: transport_1.CoreId.from(requestInfo.id)
2320
+ });
2321
+ }
2322
+ async applyIncomingResponseItem(responseItem, _requestItem, requestInfo) {
2323
+ if (!(responseItem instanceof content_1.ProposeAttributeAcceptResponseItem)) {
2324
+ return;
2325
+ }
2326
+ await this.consumptionController.attributes.createPeerLocalAttribute({
2327
+ id: responseItem.attributeId,
2328
+ content: responseItem.attribute,
2329
+ peer: requestInfo.peer,
2330
+ requestReference: requestInfo.id
2331
+ });
2332
+ }
2333
+ }
2334
+ exports.ProposeAttributeRequestItemProcessor = ProposeAttributeRequestItemProcessor;
2335
+ //# sourceMappingURL=ProposeAttributeRequestItemProcessor.js.map
2336
+
2337
+ /***/ }),
2338
+
2231
2339
  /***/ "./dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js":
2232
2340
  /*!********************************************************************************************************!*\
2233
2341
  !*** ./dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js ***!
@@ -2289,81 +2397,92 @@ exports.AcceptReadAttributeRequestItemParameters = AcceptReadAttributeRequestIte
2289
2397
  /*!*************************************************************************************************!*\
2290
2398
  !*** ./dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js ***!
2291
2399
  \*************************************************************************************************/
2292
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2400
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2293
2401
 
2294
2402
  "use strict";
2295
2403
 
2404
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2405
+ return (mod && mod.__esModule) ? mod : { "default": mod };
2406
+ };
2296
2407
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2297
2408
  exports.ReadAttributeRequestItemProcessor = void 0;
2298
2409
  const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
2299
2410
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
2300
2411
  const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
2301
- const ConsumptionAttribute_1 = __webpack_require__(/*! ../../../attributes/local/ConsumptionAttribute */ "./dist/modules/attributes/local/ConsumptionAttribute.js");
2412
+ const LocalAttribute_1 = __webpack_require__(/*! ../../../attributes/local/LocalAttribute */ "./dist/modules/attributes/local/LocalAttribute.js");
2302
2413
  const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
2414
+ const validateQuery_1 = __importDefault(__webpack_require__(/*! ../utility/validateQuery */ "./dist/modules/requests/itemProcessors/utility/validateQuery.js"));
2303
2415
  const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
2304
2416
  const AcceptReadAttributeRequestItemParameters_1 = __webpack_require__(/*! ./AcceptReadAttributeRequestItemParameters */ "./dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js");
2305
2417
  class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
2306
- async canAccept(_requestItem, params, request) {
2418
+ canCreateOutgoingRequestItem(requestItem, _request, recipient) {
2419
+ const queryValidationResult = (0, validateQuery_1.default)(requestItem.query, this.currentIdentityAddress, recipient);
2420
+ if (queryValidationResult.isError()) {
2421
+ return queryValidationResult;
2422
+ }
2423
+ return ValidationResult_1.ValidationResult.success();
2424
+ }
2425
+ async canAccept(_requestItem, params, requestInfo) {
2307
2426
  const parsedParams = AcceptReadAttributeRequestItemParameters_1.AcceptReadAttributeRequestItemParameters.from(params);
2308
2427
  if (parsedParams.attributeId) {
2309
- const foundAttribute = await this.consumptionController.attributes.getConsumptionAttribute(parsedParams.attributeId);
2428
+ const foundAttribute = await this.consumptionController.attributes.getLocalAttribute(parsedParams.attributeId);
2310
2429
  if (!foundAttribute) {
2311
- return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(ConsumptionAttribute_1.ConsumptionAttribute, request.id.toString()));
2430
+ return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(LocalAttribute_1.LocalAttribute, requestInfo.id.toString()));
2312
2431
  }
2313
- if (!this.consumptionController.accountController.identity.isMe(foundAttribute.content.owner)) {
2314
- return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.canOnlyShareOwnAttributes());
2432
+ if (!this.accountController.identity.isMe(foundAttribute.content.owner)) {
2433
+ return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
2315
2434
  }
2316
2435
  }
2317
2436
  return ValidationResult_1.ValidationResult.success();
2318
2437
  }
2319
- async accept(_requestItem, params, request) {
2438
+ async accept(_requestItem, params, requestInfo) {
2320
2439
  const parsedParams = AcceptReadAttributeRequestItemParameters_1.AcceptReadAttributeRequestItemParameters.from(params);
2321
- let sharedConsumptionAttribute;
2440
+ let sharedLocalAttribute;
2322
2441
  if (parsedParams.attributeId) {
2323
- sharedConsumptionAttribute = await this.copyExistingAttribute(parsedParams.attributeId, request);
2442
+ sharedLocalAttribute = await this.copyExistingAttribute(parsedParams.attributeId, requestInfo);
2324
2443
  }
2325
2444
  else {
2326
- sharedConsumptionAttribute = await this.createNewAttribute(parsedParams.attribute, request);
2445
+ sharedLocalAttribute = await this.createNewAttribute(parsedParams.attribute, requestInfo);
2327
2446
  }
2328
2447
  return content_1.ReadAttributeAcceptResponseItem.from({
2329
2448
  result: content_1.ResponseItemResult.Accepted,
2330
- attributeId: sharedConsumptionAttribute.id,
2331
- attribute: sharedConsumptionAttribute.content
2449
+ attributeId: sharedLocalAttribute.id,
2450
+ attribute: sharedLocalAttribute.content
2332
2451
  });
2333
2452
  }
2334
- async copyExistingAttribute(attributeId, request) {
2335
- return await this.consumptionController.attributes.createSharedConsumptionAttributeCopy({
2453
+ async copyExistingAttribute(attributeId, requestInfo) {
2454
+ return await this.consumptionController.attributes.createSharedLocalAttributeCopy({
2336
2455
  attributeId: transport_1.CoreId.from(attributeId),
2337
- peer: transport_1.CoreAddress.from(request.peer),
2338
- requestReference: transport_1.CoreId.from(request.id)
2456
+ peer: transport_1.CoreAddress.from(requestInfo.peer),
2457
+ requestReference: transport_1.CoreId.from(requestInfo.id)
2339
2458
  });
2340
2459
  }
2341
- async createNewAttribute(attribute, request) {
2460
+ async createNewAttribute(attribute, requestInfo) {
2342
2461
  if (attribute instanceof content_1.IdentityAttribute) {
2343
- const repositoryConsumptionAttribute = await this.consumptionController.attributes.createConsumptionAttribute({
2462
+ const repositoryLocalAttribute = await this.consumptionController.attributes.createLocalAttribute({
2344
2463
  content: attribute
2345
2464
  });
2346
- return await this.consumptionController.attributes.createSharedConsumptionAttributeCopy({
2347
- attributeId: transport_1.CoreId.from(repositoryConsumptionAttribute.id),
2348
- peer: transport_1.CoreAddress.from(request.peer),
2349
- requestReference: transport_1.CoreId.from(request.id)
2465
+ return await this.consumptionController.attributes.createSharedLocalAttributeCopy({
2466
+ attributeId: transport_1.CoreId.from(repositoryLocalAttribute.id),
2467
+ peer: transport_1.CoreAddress.from(requestInfo.peer),
2468
+ requestReference: transport_1.CoreId.from(requestInfo.id)
2350
2469
  });
2351
2470
  }
2352
- return await this.consumptionController.attributes.createRelationshipAttribute({
2471
+ return await this.consumptionController.attributes.createPeerLocalAttribute({
2353
2472
  content: attribute,
2354
- peer: request.peer,
2355
- requestReference: transport_1.CoreId.from(request.id)
2473
+ peer: requestInfo.peer,
2474
+ requestReference: transport_1.CoreId.from(requestInfo.id)
2356
2475
  });
2357
2476
  }
2358
- async applyIncomingResponseItem(responseItem, _requestItem, request) {
2477
+ async applyIncomingResponseItem(responseItem, _requestItem, requestInfo) {
2359
2478
  if (!(responseItem instanceof content_1.ReadAttributeAcceptResponseItem)) {
2360
2479
  return;
2361
2480
  }
2362
- await this.consumptionController.attributes.createPeerConsumptionAttribute({
2481
+ await this.consumptionController.attributes.createPeerLocalAttribute({
2363
2482
  id: responseItem.attributeId,
2364
2483
  content: responseItem.attribute,
2365
- peer: request.peer,
2366
- requestReference: request.id
2484
+ peer: requestInfo.peer,
2485
+ requestReference: requestInfo.id
2367
2486
  });
2368
2487
  }
2369
2488
  }
@@ -2372,10 +2491,174 @@ exports.ReadAttributeRequestItemProcessor = ReadAttributeRequestItemProcessor;
2372
2491
 
2373
2492
  /***/ }),
2374
2493
 
2375
- /***/ "./dist/modules/requests/local/ConsumptionRequest.js":
2376
- /*!***********************************************************!*\
2377
- !*** ./dist/modules/requests/local/ConsumptionRequest.js ***!
2378
- \***********************************************************/
2494
+ /***/ "./dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.js":
2495
+ /*!**********************************************************************************************************!*\
2496
+ !*** ./dist/modules/requests/itemProcessors/shareAttribute/AcceptShareAttributeRequestItemParameters.js ***!
2497
+ \**********************************************************************************************************/
2498
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2499
+
2500
+ "use strict";
2501
+
2502
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2503
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2504
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2505
+ 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;
2506
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2507
+ };
2508
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2509
+ exports.AcceptShareAttributeRequestItemParameters = void 0;
2510
+ const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
2511
+ let AcceptShareAttributeRequestItemParameters = class AcceptShareAttributeRequestItemParameters extends ts_serval_1.Serializable {
2512
+ static from(value) {
2513
+ return this.fromAny(value);
2514
+ }
2515
+ };
2516
+ AcceptShareAttributeRequestItemParameters = __decorate([
2517
+ (0, ts_serval_1.type)("AcceptShareAttributeRequestItemParameters")
2518
+ ], AcceptShareAttributeRequestItemParameters);
2519
+ exports.AcceptShareAttributeRequestItemParameters = AcceptShareAttributeRequestItemParameters;
2520
+ //# sourceMappingURL=AcceptShareAttributeRequestItemParameters.js.map
2521
+
2522
+ /***/ }),
2523
+
2524
+ /***/ "./dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js":
2525
+ /*!***************************************************************************************************!*\
2526
+ !*** ./dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js ***!
2527
+ \***************************************************************************************************/
2528
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2529
+
2530
+ "use strict";
2531
+
2532
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2533
+ exports.ShareAttributeRequestItemProcessor = void 0;
2534
+ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
2535
+ const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
2536
+ const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
2537
+ const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
2538
+ const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
2539
+ class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
2540
+ async canCreateOutgoingRequestItem(requestItem, _request, recipient) {
2541
+ const attribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
2542
+ if (!attribute) {
2543
+ return ValidationResult_1.ValidationResult.error(transport_1.TransportErrors.general.recordNotFound(content_1.Attribute, requestItem.attributeId.toString()));
2544
+ }
2545
+ const attributeOwnerValidationResult = this.validateAttributeOwner(attribute.content, this.currentIdentityAddress, recipient);
2546
+ if (attributeOwnerValidationResult.isError()) {
2547
+ return attributeOwnerValidationResult;
2548
+ }
2549
+ return ValidationResult_1.ValidationResult.success();
2550
+ }
2551
+ async checkPrerequisitesOfIncomingRequestItem(requestItem, requestInfo) {
2552
+ const relationshipToShareWith = await this.accountController.relationships.getRelationshipToIdentity(requestItem.shareWith);
2553
+ if (!relationshipToShareWith) {
2554
+ return false; // Should the containing Request move to Error state?
2555
+ }
2556
+ const attribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
2557
+ if (!attribute) {
2558
+ return false; // Should the containing Request move to Error state?
2559
+ }
2560
+ if (this.validateAttributeOwner(attribute.content, requestInfo.peer, this.currentIdentityAddress).isError()) {
2561
+ return false;
2562
+ }
2563
+ return true;
2564
+ }
2565
+ validateAttributeOwner(attribute, sender, recipient) {
2566
+ const attributeOwner = attribute.owner;
2567
+ if (attribute instanceof content_1.IdentityAttribute) {
2568
+ if (!attributeOwner.equals(recipient)) {
2569
+ return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Can only request sharing of identity attributes owned by the recipient."));
2570
+ }
2571
+ }
2572
+ if (attribute instanceof content_1.RelationshipAttribute) {
2573
+ if (!attributeOwner.equals(recipient) && !attributeOwner.equals(sender)) {
2574
+ return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot request sharing of relationship attributes not owned by recipient or sender."));
2575
+ }
2576
+ }
2577
+ return ValidationResult_1.ValidationResult.success();
2578
+ }
2579
+ canAccept(_requestItem, _params, _requestInfo) {
2580
+ return ValidationResult_1.ValidationResult.success();
2581
+ }
2582
+ async accept(requestItem, _params, _requestInfo) {
2583
+ const attribute = await this.consumptionController.attributes.getLocalAttribute(requestItem.attributeId);
2584
+ if (!(await this.isAttributeAlreadyShared(attribute, requestItem.shareWith))) {
2585
+ await this.shareAttribute(attribute, requestItem.shareWith);
2586
+ }
2587
+ return content_1.AcceptResponseItem.from({ result: content_1.ResponseItemResult.Accepted });
2588
+ }
2589
+ async isAttributeAlreadyShared(attribute, shareWith) {
2590
+ if (attribute.content instanceof content_1.IdentityAttribute) {
2591
+ return ((await this.consumptionController.attributes.getLocalAttributes({
2592
+ "shareInfo.sourceAttribute": attribute.shareInfo.sourceAttribute.toString(),
2593
+ "shareInfo.peer": shareWith.toString() // eslint-disable-line @typescript-eslint/naming-convention
2594
+ })).length > 0);
2595
+ }
2596
+ return ((await this.consumptionController.attributes.getLocalAttributes({
2597
+ "shareInfo.sourceAttribute": attribute.id.toString(),
2598
+ "shareInfo.peer": shareWith.toString() // eslint-disable-line @typescript-eslint/naming-convention
2599
+ })).length > 0);
2600
+ }
2601
+ async shareAttribute(attribute, shareWith) {
2602
+ const createAttributeRequestItem = content_1.CreateAttributeRequestItem.from({
2603
+ attribute: attribute.content,
2604
+ mustBeAccepted: true
2605
+ });
2606
+ const createAttributeRequest = await this.consumptionController.outgoingRequests.create({
2607
+ peer: shareWith,
2608
+ content: content_1.Request.from({
2609
+ items: [createAttributeRequestItem]
2610
+ })
2611
+ });
2612
+ const message = await this.accountController.messages.sendMessage({
2613
+ recipients: [shareWith],
2614
+ content: createAttributeRequest.content
2615
+ });
2616
+ await this.consumptionController.outgoingRequests.sent({
2617
+ requestId: createAttributeRequest.id,
2618
+ requestSourceObject: message
2619
+ });
2620
+ }
2621
+ }
2622
+ exports.ShareAttributeRequestItemProcessor = ShareAttributeRequestItemProcessor;
2623
+ //# sourceMappingURL=ShareAttributeRequestItemProcessor.js.map
2624
+
2625
+ /***/ }),
2626
+
2627
+ /***/ "./dist/modules/requests/itemProcessors/utility/validateQuery.js":
2628
+ /*!***********************************************************************!*\
2629
+ !*** ./dist/modules/requests/itemProcessors/utility/validateQuery.js ***!
2630
+ \***********************************************************************/
2631
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2632
+
2633
+ "use strict";
2634
+
2635
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2636
+ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
2637
+ const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
2638
+ const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
2639
+ function validateQuery(query, sender, recipient) {
2640
+ if (query instanceof content_1.RelationshipAttributeQuery) {
2641
+ if (query.thirdParty?.equals(sender)) {
2642
+ return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot query an Attribute with the own address as third party."));
2643
+ }
2644
+ if (query.thirdParty?.equals(recipient)) {
2645
+ return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot query an Attribute with the recipient's address as third party."));
2646
+ }
2647
+ if (query.owner.equals(sender) && query.thirdParty !== undefined) {
2648
+ return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot query own Attributes from a third party."));
2649
+ }
2650
+ }
2651
+ return ValidationResult_1.ValidationResult.success();
2652
+ }
2653
+ exports["default"] = validateQuery;
2654
+ //# sourceMappingURL=validateQuery.js.map
2655
+
2656
+ /***/ }),
2657
+
2658
+ /***/ "./dist/modules/requests/local/LocalRequest.js":
2659
+ /*!*****************************************************!*\
2660
+ !*** ./dist/modules/requests/local/LocalRequest.js ***!
2661
+ \*****************************************************/
2379
2662
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2380
2663
 
2381
2664
  "use strict";
@@ -2390,14 +2673,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
2390
2673
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2391
2674
  };
2392
2675
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2393
- exports.ConsumptionRequest = exports.ConsumptionRequestSource = void 0;
2676
+ exports.LocalRequest = exports.LocalRequestSource = void 0;
2394
2677
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
2395
2678
  const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
2396
2679
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
2397
- const ConsumptionRequestStatus_1 = __webpack_require__(/*! ./ConsumptionRequestStatus */ "./dist/modules/requests/local/ConsumptionRequestStatus.js");
2398
- const ConsumptionRequestStatusLogEntry_1 = __webpack_require__(/*! ./ConsumptionRequestStatusLogEntry */ "./dist/modules/requests/local/ConsumptionRequestStatusLogEntry.js");
2399
- const ConsumptionResponse_1 = __webpack_require__(/*! ./ConsumptionResponse */ "./dist/modules/requests/local/ConsumptionResponse.js");
2400
- let ConsumptionRequestSource = class ConsumptionRequestSource extends transport_1.CoreSerializable {
2680
+ const LocalRequestStatus_1 = __webpack_require__(/*! ./LocalRequestStatus */ "./dist/modules/requests/local/LocalRequestStatus.js");
2681
+ const LocalRequestStatusLogEntry_1 = __webpack_require__(/*! ./LocalRequestStatusLogEntry */ "./dist/modules/requests/local/LocalRequestStatusLogEntry.js");
2682
+ const LocalResponse_1 = __webpack_require__(/*! ./LocalResponse */ "./dist/modules/requests/local/LocalResponse.js");
2683
+ let LocalRequestSource = class LocalRequestSource extends transport_1.CoreSerializable {
2401
2684
  static from(value) {
2402
2685
  return this.fromAny(value);
2403
2686
  }
@@ -2406,19 +2689,19 @@ __decorate([
2406
2689
  (0, ts_serval_1.serialize)(),
2407
2690
  (0, ts_serval_1.validate)(),
2408
2691
  __metadata("design:type", String)
2409
- ], ConsumptionRequestSource.prototype, "type", void 0);
2692
+ ], LocalRequestSource.prototype, "type", void 0);
2410
2693
  __decorate([
2411
2694
  (0, ts_serval_1.serialize)(),
2412
2695
  (0, ts_serval_1.validate)(),
2413
2696
  __metadata("design:type", transport_1.CoreId)
2414
- ], ConsumptionRequestSource.prototype, "reference", void 0);
2415
- ConsumptionRequestSource = __decorate([
2416
- (0, ts_serval_1.type)("ConsumptionRequestSource")
2417
- ], ConsumptionRequestSource);
2418
- exports.ConsumptionRequestSource = ConsumptionRequestSource;
2419
- let ConsumptionRequest = class ConsumptionRequest extends transport_1.CoreSynchronizable {
2697
+ ], LocalRequestSource.prototype, "reference", void 0);
2698
+ LocalRequestSource = __decorate([
2699
+ (0, ts_serval_1.type)("LocalRequestSource")
2700
+ ], LocalRequestSource);
2701
+ exports.LocalRequestSource = LocalRequestSource;
2702
+ let LocalRequest = class LocalRequest extends transport_1.CoreSynchronizable {
2420
2703
  changeStatus(newStatus) {
2421
- const logEntry = ConsumptionRequestStatusLogEntry_1.ConsumptionRequestStatusLogEntry.from({
2704
+ const logEntry = LocalRequestStatusLogEntry_1.LocalRequestStatusLogEntry.from({
2422
2705
  createdAt: transport_1.CoreDate.utc(),
2423
2706
  oldStatus: this.status,
2424
2707
  newStatus
@@ -2427,11 +2710,11 @@ let ConsumptionRequest = class ConsumptionRequest extends transport_1.CoreSynchr
2427
2710
  this.status = newStatus;
2428
2711
  }
2429
2712
  sent(source) {
2430
- if (this.status !== ConsumptionRequestStatus_1.ConsumptionRequestStatus.Draft) {
2431
- throw new Error("Consumption Request has to be in status 'Draft'.");
2713
+ if (this.status !== LocalRequestStatus_1.LocalRequestStatus.Draft) {
2714
+ throw new Error("Local Request has to be in status 'Draft'.");
2432
2715
  }
2433
2716
  this.source = source;
2434
- this.changeStatus(ConsumptionRequestStatus_1.ConsumptionRequestStatus.Open);
2717
+ this.changeStatus(LocalRequestStatus_1.LocalRequestStatus.Open);
2435
2718
  }
2436
2719
  static from(value) {
2437
2720
  return this.fromAny(value);
@@ -2441,77 +2724,77 @@ __decorate([
2441
2724
  (0, ts_serval_1.serialize)(),
2442
2725
  (0, ts_serval_1.validate)(),
2443
2726
  __metadata("design:type", Boolean)
2444
- ], ConsumptionRequest.prototype, "isOwn", void 0);
2727
+ ], LocalRequest.prototype, "isOwn", void 0);
2445
2728
  __decorate([
2446
2729
  (0, ts_serval_1.serialize)(),
2447
2730
  (0, ts_serval_1.validate)(),
2448
2731
  __metadata("design:type", transport_1.CoreAddress)
2449
- ], ConsumptionRequest.prototype, "peer", void 0);
2732
+ ], LocalRequest.prototype, "peer", void 0);
2450
2733
  __decorate([
2451
2734
  (0, ts_serval_1.serialize)(),
2452
2735
  (0, ts_serval_1.validate)(),
2453
2736
  __metadata("design:type", transport_1.CoreDate)
2454
- ], ConsumptionRequest.prototype, "createdAt", void 0);
2737
+ ], LocalRequest.prototype, "createdAt", void 0);
2455
2738
  __decorate([
2456
2739
  (0, ts_serval_1.serialize)(),
2457
2740
  (0, ts_serval_1.validate)(),
2458
2741
  __metadata("design:type", content_1.Request)
2459
- ], ConsumptionRequest.prototype, "content", void 0);
2742
+ ], LocalRequest.prototype, "content", void 0);
2460
2743
  __decorate([
2461
2744
  (0, ts_serval_1.serialize)(),
2462
2745
  (0, ts_serval_1.validate)({ nullable: true }),
2463
- __metadata("design:type", ConsumptionRequestSource)
2464
- ], ConsumptionRequest.prototype, "source", void 0);
2746
+ __metadata("design:type", LocalRequestSource)
2747
+ ], LocalRequest.prototype, "source", void 0);
2465
2748
  __decorate([
2466
2749
  (0, ts_serval_1.serialize)(),
2467
2750
  (0, ts_serval_1.validate)({ nullable: true }),
2468
- __metadata("design:type", ConsumptionResponse_1.ConsumptionResponse)
2469
- ], ConsumptionRequest.prototype, "response", void 0);
2751
+ __metadata("design:type", LocalResponse_1.LocalResponse)
2752
+ ], LocalRequest.prototype, "response", void 0);
2470
2753
  __decorate([
2471
2754
  (0, ts_serval_1.serialize)(),
2472
2755
  (0, ts_serval_1.validate)(),
2473
2756
  __metadata("design:type", String)
2474
- ], ConsumptionRequest.prototype, "status", void 0);
2757
+ ], LocalRequest.prototype, "status", void 0);
2475
2758
  __decorate([
2476
- (0, ts_serval_1.serialize)({ type: ConsumptionRequestStatusLogEntry_1.ConsumptionRequestStatusLogEntry }),
2759
+ (0, ts_serval_1.serialize)({ type: LocalRequestStatusLogEntry_1.LocalRequestStatusLogEntry }),
2477
2760
  (0, ts_serval_1.validate)(),
2478
2761
  __metadata("design:type", Array)
2479
- ], ConsumptionRequest.prototype, "statusLog", void 0);
2480
- ConsumptionRequest = __decorate([
2481
- (0, ts_serval_1.type)("ConsumptionRequest")
2482
- ], ConsumptionRequest);
2483
- exports.ConsumptionRequest = ConsumptionRequest;
2484
- //# sourceMappingURL=ConsumptionRequest.js.map
2762
+ ], LocalRequest.prototype, "statusLog", void 0);
2763
+ LocalRequest = __decorate([
2764
+ (0, ts_serval_1.type)("LocalRequest")
2765
+ ], LocalRequest);
2766
+ exports.LocalRequest = LocalRequest;
2767
+ //# sourceMappingURL=LocalRequest.js.map
2485
2768
 
2486
2769
  /***/ }),
2487
2770
 
2488
- /***/ "./dist/modules/requests/local/ConsumptionRequestStatus.js":
2489
- /*!*****************************************************************!*\
2490
- !*** ./dist/modules/requests/local/ConsumptionRequestStatus.js ***!
2491
- \*****************************************************************/
2771
+ /***/ "./dist/modules/requests/local/LocalRequestStatus.js":
2772
+ /*!***********************************************************!*\
2773
+ !*** ./dist/modules/requests/local/LocalRequestStatus.js ***!
2774
+ \***********************************************************/
2492
2775
  /***/ ((__unused_webpack_module, exports) => {
2493
2776
 
2494
2777
  "use strict";
2495
2778
 
2496
2779
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2497
- exports.ConsumptionRequestStatus = void 0;
2498
- var ConsumptionRequestStatus;
2499
- (function (ConsumptionRequestStatus) {
2500
- ConsumptionRequestStatus["Draft"] = "Draft";
2501
- ConsumptionRequestStatus["Open"] = "Open";
2502
- ConsumptionRequestStatus["DecisionRequired"] = "DecisionRequired";
2503
- ConsumptionRequestStatus["ManualDecisionRequired"] = "ManualDecisionRequired";
2504
- ConsumptionRequestStatus["Decided"] = "Decided";
2505
- ConsumptionRequestStatus["Completed"] = "Completed";
2506
- })(ConsumptionRequestStatus = exports.ConsumptionRequestStatus || (exports.ConsumptionRequestStatus = {}));
2507
- //# sourceMappingURL=ConsumptionRequestStatus.js.map
2780
+ exports.LocalRequestStatus = void 0;
2781
+ var LocalRequestStatus;
2782
+ (function (LocalRequestStatus) {
2783
+ LocalRequestStatus["Draft"] = "Draft";
2784
+ LocalRequestStatus["Open"] = "Open";
2785
+ LocalRequestStatus["DecisionRequired"] = "DecisionRequired";
2786
+ LocalRequestStatus["ManualDecisionRequired"] = "ManualDecisionRequired";
2787
+ LocalRequestStatus["Decided"] = "Decided";
2788
+ LocalRequestStatus["Completed"] = "Completed";
2789
+ })(LocalRequestStatus = exports.LocalRequestStatus || (exports.LocalRequestStatus = {}));
2790
+ //# sourceMappingURL=LocalRequestStatus.js.map
2508
2791
 
2509
2792
  /***/ }),
2510
2793
 
2511
- /***/ "./dist/modules/requests/local/ConsumptionRequestStatusLogEntry.js":
2512
- /*!*************************************************************************!*\
2513
- !*** ./dist/modules/requests/local/ConsumptionRequestStatusLogEntry.js ***!
2514
- \*************************************************************************/
2794
+ /***/ "./dist/modules/requests/local/LocalRequestStatusLogEntry.js":
2795
+ /*!*******************************************************************!*\
2796
+ !*** ./dist/modules/requests/local/LocalRequestStatusLogEntry.js ***!
2797
+ \*******************************************************************/
2515
2798
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2516
2799
 
2517
2800
  "use strict";
@@ -2526,11 +2809,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
2526
2809
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2527
2810
  };
2528
2811
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2529
- exports.ConsumptionRequestStatusLogEntry = void 0;
2812
+ exports.LocalRequestStatusLogEntry = void 0;
2530
2813
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
2531
2814
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
2532
- const ConsumptionRequestStatus_1 = __webpack_require__(/*! ./ConsumptionRequestStatus */ "./dist/modules/requests/local/ConsumptionRequestStatus.js");
2533
- let ConsumptionRequestStatusLogEntry = class ConsumptionRequestStatusLogEntry extends transport_1.CoreSerializable {
2815
+ const LocalRequestStatus_1 = __webpack_require__(/*! ./LocalRequestStatus */ "./dist/modules/requests/local/LocalRequestStatus.js");
2816
+ let LocalRequestStatusLogEntry = class LocalRequestStatusLogEntry extends transport_1.CoreSerializable {
2534
2817
  static from(value) {
2535
2818
  return this.fromAny(value);
2536
2819
  }
@@ -2539,39 +2822,39 @@ __decorate([
2539
2822
  (0, ts_serval_1.serialize)(),
2540
2823
  (0, ts_serval_1.validate)(),
2541
2824
  __metadata("design:type", transport_1.CoreDate)
2542
- ], ConsumptionRequestStatusLogEntry.prototype, "createdAt", void 0);
2825
+ ], LocalRequestStatusLogEntry.prototype, "createdAt", void 0);
2543
2826
  __decorate([
2544
2827
  (0, ts_serval_1.serialize)(),
2545
2828
  (0, ts_serval_1.validate)(),
2546
2829
  __metadata("design:type", String)
2547
- ], ConsumptionRequestStatusLogEntry.prototype, "oldStatus", void 0);
2830
+ ], LocalRequestStatusLogEntry.prototype, "oldStatus", void 0);
2548
2831
  __decorate([
2549
2832
  (0, ts_serval_1.serialize)(),
2550
2833
  (0, ts_serval_1.validate)(),
2551
2834
  __metadata("design:type", String)
2552
- ], ConsumptionRequestStatusLogEntry.prototype, "newStatus", void 0);
2835
+ ], LocalRequestStatusLogEntry.prototype, "newStatus", void 0);
2553
2836
  __decorate([
2554
2837
  (0, ts_serval_1.serialize)(),
2555
2838
  (0, ts_serval_1.validate)({ nullable: true }),
2556
2839
  __metadata("design:type", Object)
2557
- ], ConsumptionRequestStatusLogEntry.prototype, "data", void 0);
2840
+ ], LocalRequestStatusLogEntry.prototype, "data", void 0);
2558
2841
  __decorate([
2559
2842
  (0, ts_serval_1.serialize)(),
2560
2843
  (0, ts_serval_1.validate)({ nullable: true }),
2561
2844
  __metadata("design:type", String)
2562
- ], ConsumptionRequestStatusLogEntry.prototype, "code", void 0);
2563
- ConsumptionRequestStatusLogEntry = __decorate([
2564
- (0, ts_serval_1.type)("ConsumptionRequestStatusLogEntry")
2565
- ], ConsumptionRequestStatusLogEntry);
2566
- exports.ConsumptionRequestStatusLogEntry = ConsumptionRequestStatusLogEntry;
2567
- //# sourceMappingURL=ConsumptionRequestStatusLogEntry.js.map
2845
+ ], LocalRequestStatusLogEntry.prototype, "code", void 0);
2846
+ LocalRequestStatusLogEntry = __decorate([
2847
+ (0, ts_serval_1.type)("LocalRequestStatusLogEntry")
2848
+ ], LocalRequestStatusLogEntry);
2849
+ exports.LocalRequestStatusLogEntry = LocalRequestStatusLogEntry;
2850
+ //# sourceMappingURL=LocalRequestStatusLogEntry.js.map
2568
2851
 
2569
2852
  /***/ }),
2570
2853
 
2571
- /***/ "./dist/modules/requests/local/ConsumptionResponse.js":
2572
- /*!************************************************************!*\
2573
- !*** ./dist/modules/requests/local/ConsumptionResponse.js ***!
2574
- \************************************************************/
2854
+ /***/ "./dist/modules/requests/local/LocalResponse.js":
2855
+ /*!******************************************************!*\
2856
+ !*** ./dist/modules/requests/local/LocalResponse.js ***!
2857
+ \******************************************************/
2575
2858
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2576
2859
 
2577
2860
  "use strict";
@@ -2586,11 +2869,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
2586
2869
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2587
2870
  };
2588
2871
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2589
- exports.ConsumptionResponse = exports.ConsumptionResponseSource = void 0;
2872
+ exports.LocalResponse = exports.LocalResponseSource = void 0;
2590
2873
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
2591
2874
  const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
2592
2875
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
2593
- let ConsumptionResponseSource = class ConsumptionResponseSource extends transport_1.CoreSerializable {
2876
+ let LocalResponseSource = class LocalResponseSource extends transport_1.CoreSerializable {
2594
2877
  static from(value) {
2595
2878
  return this.fromAny(value);
2596
2879
  }
@@ -2599,17 +2882,17 @@ __decorate([
2599
2882
  (0, ts_serval_1.serialize)(),
2600
2883
  (0, ts_serval_1.validate)(),
2601
2884
  __metadata("design:type", String)
2602
- ], ConsumptionResponseSource.prototype, "type", void 0);
2885
+ ], LocalResponseSource.prototype, "type", void 0);
2603
2886
  __decorate([
2604
2887
  (0, ts_serval_1.serialize)(),
2605
2888
  (0, ts_serval_1.validate)(),
2606
2889
  __metadata("design:type", transport_1.CoreId)
2607
- ], ConsumptionResponseSource.prototype, "reference", void 0);
2608
- ConsumptionResponseSource = __decorate([
2609
- (0, ts_serval_1.type)("ConsumptionResponseSource")
2610
- ], ConsumptionResponseSource);
2611
- exports.ConsumptionResponseSource = ConsumptionResponseSource;
2612
- let ConsumptionResponse = class ConsumptionResponse extends transport_1.CoreSerializable {
2890
+ ], LocalResponseSource.prototype, "reference", void 0);
2891
+ LocalResponseSource = __decorate([
2892
+ (0, ts_serval_1.type)("LocalResponseSource")
2893
+ ], LocalResponseSource);
2894
+ exports.LocalResponseSource = LocalResponseSource;
2895
+ let LocalResponse = class LocalResponse extends transport_1.CoreSerializable {
2613
2896
  static from(value) {
2614
2897
  return this.fromAny(value);
2615
2898
  }
@@ -2618,22 +2901,22 @@ __decorate([
2618
2901
  (0, ts_serval_1.serialize)(),
2619
2902
  (0, ts_serval_1.validate)(),
2620
2903
  __metadata("design:type", transport_1.CoreDate)
2621
- ], ConsumptionResponse.prototype, "createdAt", void 0);
2904
+ ], LocalResponse.prototype, "createdAt", void 0);
2622
2905
  __decorate([
2623
2906
  (0, ts_serval_1.serialize)(),
2624
2907
  (0, ts_serval_1.validate)(),
2625
2908
  __metadata("design:type", content_1.Response)
2626
- ], ConsumptionResponse.prototype, "content", void 0);
2909
+ ], LocalResponse.prototype, "content", void 0);
2627
2910
  __decorate([
2628
2911
  (0, ts_serval_1.serialize)(),
2629
2912
  (0, ts_serval_1.validate)({ nullable: true }),
2630
- __metadata("design:type", ConsumptionResponseSource)
2631
- ], ConsumptionResponse.prototype, "source", void 0);
2632
- ConsumptionResponse = __decorate([
2633
- (0, ts_serval_1.type)("ConsumptionResponse")
2634
- ], ConsumptionResponse);
2635
- exports.ConsumptionResponse = ConsumptionResponse;
2636
- //# sourceMappingURL=ConsumptionResponse.js.map
2913
+ __metadata("design:type", LocalResponseSource)
2914
+ ], LocalResponse.prototype, "source", void 0);
2915
+ LocalResponse = __decorate([
2916
+ (0, ts_serval_1.type)("LocalResponse")
2917
+ ], LocalResponse);
2918
+ exports.LocalResponse = LocalResponse;
2919
+ //# sourceMappingURL=LocalResponse.js.map
2637
2920
 
2638
2921
  /***/ }),
2639
2922
 
@@ -2651,9 +2934,9 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
2651
2934
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
2652
2935
  const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
2653
2936
  const ValidationResult_1 = __webpack_require__(/*! ../itemProcessors/ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
2654
- const ConsumptionRequest_1 = __webpack_require__(/*! ../local/ConsumptionRequest */ "./dist/modules/requests/local/ConsumptionRequest.js");
2655
- const ConsumptionRequestStatus_1 = __webpack_require__(/*! ../local/ConsumptionRequestStatus */ "./dist/modules/requests/local/ConsumptionRequestStatus.js");
2656
- const ConsumptionResponse_1 = __webpack_require__(/*! ../local/ConsumptionResponse */ "./dist/modules/requests/local/ConsumptionResponse.js");
2937
+ const LocalRequest_1 = __webpack_require__(/*! ../local/LocalRequest */ "./dist/modules/requests/local/LocalRequest.js");
2938
+ const LocalRequestStatus_1 = __webpack_require__(/*! ../local/LocalRequestStatus */ "./dist/modules/requests/local/LocalRequestStatus.js");
2939
+ const LocalResponse_1 = __webpack_require__(/*! ../local/LocalResponse */ "./dist/modules/requests/local/LocalResponse.js");
2657
2940
  const CompleteOutgoingRequestParameters_1 = __webpack_require__(/*! ./completeOutgoingRequest/CompleteOutgoingRequestParameters */ "./dist/modules/requests/outgoing/completeOutgoingRequest/CompleteOutgoingRequestParameters.js");
2658
2941
  const CreateOutgoingRequestFromRelationshipCreationChangeParameters_1 = __webpack_require__(/*! ./createFromRelationshipCreationChange/CreateOutgoingRequestFromRelationshipCreationChangeParameters */ "./dist/modules/requests/outgoing/createFromRelationshipCreationChange/CreateOutgoingRequestFromRelationshipCreationChangeParameters.js");
2659
2942
  const CreateOutgoingRequestParameters_1 = __webpack_require__(/*! ./createOutgoingRequest/CreateOutgoingRequestParameters */ "./dist/modules/requests/outgoing/createOutgoingRequest/CreateOutgoingRequestParameters.js");
@@ -2666,32 +2949,32 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
2666
2949
  }
2667
2950
  async canCreate(params) {
2668
2951
  const parsedParams = CreateOutgoingRequestParameters_1.CreateOutgoingRequestParameters.from(params);
2669
- const innerResults = await this.canCreateItems(parsedParams.content.items);
2952
+ const innerResults = await this.canCreateItems(parsedParams.content, parsedParams.peer);
2670
2953
  const result = ValidationResult_1.ValidationResult.fromItems(innerResults);
2671
2954
  return result;
2672
2955
  }
2673
- async canCreateItems(items) {
2956
+ async canCreateItems(request, recipient) {
2674
2957
  const results = [];
2675
- for (const requestItem of items) {
2958
+ for (const requestItem of request.items) {
2676
2959
  if (requestItem instanceof content_1.RequestItem) {
2677
- const canCreateItem = await this.canCreateItem(requestItem);
2960
+ const canCreateItem = await this.canCreateItem(requestItem, request, recipient);
2678
2961
  results.push(canCreateItem);
2679
2962
  }
2680
2963
  else {
2681
- const result = await this.canCreateItemGroup(requestItem);
2964
+ const result = await this.canCreateItemGroup(requestItem, request, recipient);
2682
2965
  results.push(result);
2683
2966
  }
2684
2967
  }
2685
2968
  return results;
2686
2969
  }
2687
- async canCreateItem(requestItem) {
2970
+ async canCreateItem(requestItem, request, recipient) {
2688
2971
  const processor = this.processorRegistry.getProcessorForItem(requestItem);
2689
- return await processor.canCreateOutgoingRequestItem(requestItem);
2972
+ return await processor.canCreateOutgoingRequestItem(requestItem, request, recipient);
2690
2973
  }
2691
- async canCreateItemGroup(requestItem) {
2974
+ async canCreateItemGroup(requestItem, request, recipient) {
2692
2975
  const innerResults = [];
2693
2976
  for (const innerRequestItem of requestItem.items) {
2694
- const canCreateItem = await this.canCreateItem(innerRequestItem);
2977
+ const canCreateItem = await this.canCreateItem(innerRequestItem, request, recipient);
2695
2978
  innerResults.push(canCreateItem);
2696
2979
  }
2697
2980
  const result = ValidationResult_1.ValidationResult.fromItems(innerResults);
@@ -2712,13 +2995,13 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
2712
2995
  if (canCreateResult.isError()) {
2713
2996
  throw canCreateResult.error;
2714
2997
  }
2715
- const consumptionRequest = ConsumptionRequest_1.ConsumptionRequest.from({
2998
+ const consumptionRequest = LocalRequest_1.LocalRequest.from({
2716
2999
  id: id,
2717
3000
  content: content,
2718
3001
  createdAt: transport_1.CoreDate.utc(),
2719
3002
  isOwn: true,
2720
3003
  peer: peer,
2721
- status: ConsumptionRequestStatus_1.ConsumptionRequestStatus.Draft,
3004
+ status: LocalRequestStatus_1.LocalRequestStatus.Draft,
2722
3005
  statusLog: []
2723
3006
  });
2724
3007
  await this.consumptionRequests.create(consumptionRequest);
@@ -2749,9 +3032,9 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
2749
3032
  }
2750
3033
  async _sent(requestId, requestSourceObject) {
2751
3034
  const request = await this.getOrThrow(requestId);
2752
- this.assertRequestStatus(request, ConsumptionRequestStatus_1.ConsumptionRequestStatus.Draft);
2753
- request.changeStatus(ConsumptionRequestStatus_1.ConsumptionRequestStatus.Open);
2754
- request.source = ConsumptionRequest_1.ConsumptionRequestSource.from({
3035
+ this.assertRequestStatus(request, LocalRequestStatus_1.LocalRequestStatus.Draft);
3036
+ request.changeStatus(LocalRequestStatus_1.LocalRequestStatus.Open);
3037
+ request.source = LocalRequest_1.LocalRequestSource.from({
2755
3038
  reference: requestSourceObject.id,
2756
3039
  type: this.getSourceType(requestSourceObject)
2757
3040
  });
@@ -2779,7 +3062,7 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
2779
3062
  }
2780
3063
  async _complete(requestId, responseSourceObject, receivedResponse) {
2781
3064
  const request = await this.getOrThrow(requestId);
2782
- this.assertRequestStatus(request, ConsumptionRequestStatus_1.ConsumptionRequestStatus.Open);
3065
+ this.assertRequestStatus(request, LocalRequestStatus_1.LocalRequestStatus.Open);
2783
3066
  const canComplete = await this.canComplete(request, receivedResponse);
2784
3067
  if (canComplete.isError()) {
2785
3068
  throw canComplete.error;
@@ -2795,13 +3078,13 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
2795
3078
  else {
2796
3079
  throw new Error("Invalid responseSourceObject");
2797
3080
  }
2798
- const consumptionResponse = ConsumptionResponse_1.ConsumptionResponse.from({
3081
+ const localResponse = LocalResponse_1.LocalResponse.from({
2799
3082
  content: receivedResponse,
2800
3083
  createdAt: transport_1.CoreDate.utc(),
2801
3084
  source: { reference: responseSourceObject.id, type: responseSource }
2802
3085
  });
2803
- request.response = consumptionResponse;
2804
- request.changeStatus(ConsumptionRequestStatus_1.ConsumptionRequestStatus.Completed);
3086
+ request.response = localResponse;
3087
+ request.changeStatus(LocalRequestStatus_1.LocalRequestStatus.Completed);
2805
3088
  await this.update(request);
2806
3089
  return request;
2807
3090
  }
@@ -2852,31 +3135,31 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
2852
3135
  query ??= {};
2853
3136
  query.isOwn = true;
2854
3137
  const requestDocs = await this.consumptionRequests.find(query);
2855
- const requests = requestDocs.map((r) => ConsumptionRequest_1.ConsumptionRequest.from(r));
3138
+ const requests = requestDocs.map((r) => LocalRequest_1.LocalRequest.from(r));
2856
3139
  return requests;
2857
3140
  }
2858
3141
  async getOutgoingRequest(id) {
2859
3142
  const requestDoc = await this.consumptionRequests.findOne({ id: id.toString(), isOwn: true });
2860
- const request = requestDoc ? ConsumptionRequest_1.ConsumptionRequest.from(requestDoc) : undefined;
3143
+ const request = requestDoc ? LocalRequest_1.LocalRequest.from(requestDoc) : undefined;
2861
3144
  return request;
2862
3145
  }
2863
3146
  async getOrThrow(id) {
2864
3147
  const request = await this.getOutgoingRequest(id);
2865
3148
  if (!request) {
2866
- throw transport_1.TransportErrors.general.recordNotFound(ConsumptionRequest_1.ConsumptionRequest, id.toString());
3149
+ throw transport_1.TransportErrors.general.recordNotFound(LocalRequest_1.LocalRequest, id.toString());
2867
3150
  }
2868
3151
  return request;
2869
3152
  }
2870
3153
  async update(request) {
2871
3154
  const requestDoc = await this.consumptionRequests.findOne({ id: request.id.toString(), isOwn: true });
2872
3155
  if (!requestDoc) {
2873
- throw transport_1.TransportErrors.general.recordNotFound(ConsumptionRequest_1.ConsumptionRequest, request.id.toString());
3156
+ throw transport_1.TransportErrors.general.recordNotFound(LocalRequest_1.LocalRequest, request.id.toString());
2874
3157
  }
2875
3158
  await this.consumptionRequests.update(requestDoc, request);
2876
3159
  }
2877
3160
  assertRequestStatus(request, ...status) {
2878
3161
  if (!status.includes(request.status)) {
2879
- throw new Error(`Consumption Request has to be in status '${status.join("/")}'.`);
3162
+ throw new Error(`Local Request has to be in status '${status.join("/")}'.`);
2880
3163
  }
2881
3164
  }
2882
3165
  }
@@ -6282,7 +6565,7 @@ function formatOffset(offset, format) {
6282
6565
  function timeObject(obj) {
6283
6566
  return pick(obj, ["hour", "minute", "second", "millisecond"]);
6284
6567
  }
6285
- var ianaRegex = /[A-Za-z_+-]{1,256}(:?\/[A-Za-z0-9_+-]{1,256}(\/[A-Za-z0-9_+-]{1,256})?)?/;
6568
+ var ianaRegex = /[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;
6286
6569
 
6287
6570
  /**
6288
6571
  * @private
@@ -7056,6 +7339,11 @@ var Zone = /*#__PURE__*/function () {
7056
7339
  get: function get() {
7057
7340
  throw new ZoneIsAbstractError();
7058
7341
  }
7342
+ }, {
7343
+ key: "ianaName",
7344
+ get: function get() {
7345
+ return this.name;
7346
+ }
7059
7347
  /**
7060
7348
  * Returns whether the offset is known to be fixed for the whole year.
7061
7349
  * @abstract
@@ -7490,6 +7778,15 @@ var FixedOffsetZone = /*#__PURE__*/function (_Zone) {
7490
7778
  get: function get() {
7491
7779
  return this.fixed === 0 ? "UTC" : "UTC" + formatOffset(this.fixed, "narrow");
7492
7780
  }
7781
+ }, {
7782
+ key: "ianaName",
7783
+ get: function get() {
7784
+ if (this.fixed === 0) {
7785
+ return "Etc/UTC";
7786
+ } else {
7787
+ return "Etc/GMT" + formatOffset(-this.fixed, "narrow");
7788
+ }
7789
+ }
7493
7790
  }, {
7494
7791
  key: "isUniversal",
7495
7792
  get: function get() {
@@ -8399,7 +8696,7 @@ function combineExtractors() {
8399
8696
  zone = _ex[1],
8400
8697
  next = _ex[2];
8401
8698
 
8402
- return [_extends({}, mergedVals, val), mergedZone || zone, next];
8699
+ return [_extends({}, mergedVals, val), zone || mergedZone, next];
8403
8700
  }, [{}, null, 1]).slice(0, 2);
8404
8701
  };
8405
8702
  }
@@ -8445,19 +8742,20 @@ function simpleParse() {
8445
8742
  } // ISO and SQL parsing
8446
8743
 
8447
8744
 
8448
- var offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,
8449
- isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,
8450
- isoTimeRegex = RegExp("" + isoTimeBaseRegex.source + offsetRegex.source + "?"),
8451
- isoTimeExtensionRegex = RegExp("(?:T" + isoTimeRegex.source + ")?"),
8452
- isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,
8453
- isoWeekRegex = /(\d{4})-?W(\d\d)(?:-?(\d))?/,
8454
- isoOrdinalRegex = /(\d{4})-?(\d{3})/,
8455
- extractISOWeekData = simpleParse("weekYear", "weekNumber", "weekDay"),
8456
- extractISOOrdinalData = simpleParse("year", "ordinal"),
8457
- sqlYmdRegex = /(\d{4})-(\d\d)-(\d\d)/,
8458
- // dumbed-down version of the ISO one
8459
- sqlTimeRegex = RegExp(isoTimeBaseRegex.source + " ?(?:" + offsetRegex.source + "|(" + ianaRegex.source + "))?"),
8460
- sqlTimeExtensionRegex = RegExp("(?: " + sqlTimeRegex.source + ")?");
8745
+ var offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/;
8746
+ var isoExtendedZone = "(?:" + offsetRegex.source + "?(?:\\[(" + ianaRegex.source + ")\\])?)?";
8747
+ var isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/;
8748
+ var isoTimeRegex = RegExp("" + isoTimeBaseRegex.source + isoExtendedZone);
8749
+ var isoTimeExtensionRegex = RegExp("(?:T" + isoTimeRegex.source + ")?");
8750
+ var isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/;
8751
+ var isoWeekRegex = /(\d{4})-?W(\d\d)(?:-?(\d))?/;
8752
+ var isoOrdinalRegex = /(\d{4})-?(\d{3})/;
8753
+ var extractISOWeekData = simpleParse("weekYear", "weekNumber", "weekDay");
8754
+ var extractISOOrdinalData = simpleParse("year", "ordinal");
8755
+ var sqlYmdRegex = /(\d{4})-(\d\d)-(\d\d)/; // dumbed-down version of the ISO one
8756
+
8757
+ var sqlTimeRegex = RegExp(isoTimeBaseRegex.source + " ?(?:" + offsetRegex.source + "|(" + ianaRegex.source + "))?");
8758
+ var sqlTimeExtensionRegex = RegExp("(?: " + sqlTimeRegex.source + ")?");
8461
8759
 
8462
8760
  function int(match, pos, fallback) {
8463
8761
  var m = match[pos];
@@ -8632,11 +8930,11 @@ var isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionR
8632
8930
  var isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);
8633
8931
  var isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);
8634
8932
  var isoTimeCombinedRegex = combineRegexes(isoTimeRegex);
8635
- var extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset);
8636
- var extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset);
8637
- var extractISOOrdinalDateAndTime = combineExtractors(extractISOOrdinalData, extractISOTime, extractISOOffset);
8638
- var extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);
8639
- /**
8933
+ var extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone);
8934
+ var extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset, extractIANAZone);
8935
+ var extractISOOrdinalDateAndTime = combineExtractors(extractISOOrdinalData, extractISOTime, extractISOOffset, extractIANAZone);
8936
+ var extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone);
8937
+ /*
8640
8938
  * @private
8641
8939
  */
8642
8940
 
@@ -8658,10 +8956,9 @@ function parseISOTimeOnly(s) {
8658
8956
  }
8659
8957
  var sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);
8660
8958
  var sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);
8661
- var extractISOYmdTimeOffsetAndIANAZone = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone);
8662
8959
  var extractISOTimeOffsetAndIANAZone = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone);
8663
8960
  function parseSQL(s) {
8664
- return parse(s, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]);
8961
+ return parse(s, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]);
8665
8962
  }
8666
8963
 
8667
8964
  var INVALID$2 = "Invalid Duration"; // unit conversion constants
@@ -10809,7 +11106,7 @@ function intUnit(regex, post) {
10809
11106
  }
10810
11107
 
10811
11108
  var NBSP = String.fromCharCode(160);
10812
- var spaceOrNBSP = "( |" + NBSP + ")";
11109
+ var spaceOrNBSP = "[ " + NBSP + "]";
10813
11110
  var spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g");
10814
11111
 
10815
11112
  function fixListRegex(s) {
@@ -11693,7 +11990,7 @@ function _toISODate(o, extended) {
11693
11990
  return c;
11694
11991
  }
11695
11992
 
11696
- function _toISOTime(o, extended, suppressSeconds, suppressMilliseconds, includeOffset) {
11993
+ function _toISOTime(o, extended, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone) {
11697
11994
  var c = padStart(o.c.hour);
11698
11995
 
11699
11996
  if (extended) {
@@ -11717,7 +12014,7 @@ function _toISOTime(o, extended, suppressSeconds, suppressMilliseconds, includeO
11717
12014
  }
11718
12015
 
11719
12016
  if (includeOffset) {
11720
- if (o.isOffsetFixed && o.offset === 0) {
12017
+ if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {
11721
12018
  c += "Z";
11722
12019
  } else if (o.o < 0) {
11723
12020
  c += "-";
@@ -11732,6 +12029,10 @@ function _toISOTime(o, extended, suppressSeconds, suppressMilliseconds, includeO
11732
12029
  }
11733
12030
  }
11734
12031
 
12032
+ if (extendedZone) {
12033
+ c += "[" + o.zone.ianaName + "]";
12034
+ }
12035
+
11735
12036
  return c;
11736
12037
  } // defaults for unspecified units in the supported calendars
11737
12038
 
@@ -12905,6 +13206,7 @@ var DateTime = /*#__PURE__*/function () {
12905
13206
  * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0
12906
13207
  * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0
12907
13208
  * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'
13209
+ * @param {boolean} [opts.extendedZone=true] - add the time zone format extension
12908
13210
  * @param {string} [opts.format='extended'] - choose between the basic and extended format
12909
13211
  * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'
12910
13212
  * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'
@@ -12923,7 +13225,9 @@ var DateTime = /*#__PURE__*/function () {
12923
13225
  _ref4$suppressMillise = _ref4.suppressMilliseconds,
12924
13226
  suppressMilliseconds = _ref4$suppressMillise === void 0 ? false : _ref4$suppressMillise,
12925
13227
  _ref4$includeOffset = _ref4.includeOffset,
12926
- includeOffset = _ref4$includeOffset === void 0 ? true : _ref4$includeOffset;
13228
+ includeOffset = _ref4$includeOffset === void 0 ? true : _ref4$includeOffset,
13229
+ _ref4$extendedZone = _ref4.extendedZone,
13230
+ extendedZone = _ref4$extendedZone === void 0 ? false : _ref4$extendedZone;
12927
13231
 
12928
13232
  if (!this.isValid) {
12929
13233
  return null;
@@ -12934,7 +13238,7 @@ var DateTime = /*#__PURE__*/function () {
12934
13238
  var c = _toISODate(this, ext);
12935
13239
 
12936
13240
  c += "T";
12937
- c += _toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset);
13241
+ c += _toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);
12938
13242
  return c;
12939
13243
  }
12940
13244
  /**
@@ -12974,6 +13278,7 @@ var DateTime = /*#__PURE__*/function () {
12974
13278
  * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0
12975
13279
  * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0
12976
13280
  * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'
13281
+ * @param {boolean} [opts.extendedZone=true] - add the time zone format extension
12977
13282
  * @param {boolean} [opts.includePrefix=false] - include the `T` prefix
12978
13283
  * @param {string} [opts.format='extended'] - choose between the basic and extended format
12979
13284
  * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'
@@ -12994,6 +13299,8 @@ var DateTime = /*#__PURE__*/function () {
12994
13299
  includeOffset = _ref6$includeOffset === void 0 ? true : _ref6$includeOffset,
12995
13300
  _ref6$includePrefix = _ref6.includePrefix,
12996
13301
  includePrefix = _ref6$includePrefix === void 0 ? false : _ref6$includePrefix,
13302
+ _ref6$extendedZone = _ref6.extendedZone,
13303
+ extendedZone = _ref6$extendedZone === void 0 ? false : _ref6$extendedZone,
12997
13304
  _ref6$format = _ref6.format,
12998
13305
  format = _ref6$format === void 0 ? "extended" : _ref6$format;
12999
13306
 
@@ -13002,7 +13309,7 @@ var DateTime = /*#__PURE__*/function () {
13002
13309
  }
13003
13310
 
13004
13311
  var c = includePrefix ? "T" : "";
13005
- return c + _toISOTime(this, format === "extended", suppressSeconds, suppressMilliseconds, includeOffset);
13312
+ return c + _toISOTime(this, format === "extended", suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);
13006
13313
  }
13007
13314
  /**
13008
13315
  * Returns an RFC 2822-compatible string representation of this DateTime
@@ -13809,7 +14116,8 @@ var DateTime = /*#__PURE__*/function () {
13809
14116
  return false;
13810
14117
  } else {
13811
14118
  return this.offset > this.set({
13812
- month: 1
14119
+ month: 1,
14120
+ day: 1
13813
14121
  }).offset || this.offset > this.set({
13814
14122
  month: 5
13815
14123
  }).offset;
@@ -14095,7 +14403,7 @@ function friendlyDateTime(dateTimeish) {
14095
14403
  }
14096
14404
  }
14097
14405
 
14098
- var VERSION = "2.3.2";
14406
+ var VERSION = "2.4.0";
14099
14407
 
14100
14408
  exports.DateTime = DateTime;
14101
14409
  exports.Duration = Duration;