@nmshd/consumption 2.0.0-beta.23 → 2.0.0-beta.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/buildInformation.js +4 -4
- package/dist/consumption/ConsumptionError.d.ts +2 -0
- package/dist/consumption/ConsumptionError.js +7 -0
- package/dist/consumption/ConsumptionError.js.map +1 -0
- package/dist/consumption/{ConsumptionErrors.d.ts → CoreErrors.d.ts} +1 -12
- package/dist/consumption/{ConsumptionErrors.js → CoreErrors.js} +8 -29
- package/dist/consumption/CoreErrors.js.map +1 -0
- package/dist/consumption/index.d.ts +2 -1
- package/dist/consumption/index.js +2 -1
- package/dist/consumption/index.js.map +1 -1
- package/dist/modules/attributes/AttributesController.js +5 -8
- package/dist/modules/attributes/AttributesController.js.map +1 -1
- package/dist/modules/attributes/local/QueryTranslator.js +2 -1
- package/dist/modules/attributes/local/QueryTranslator.js.map +1 -1
- package/dist/modules/drafts/DraftsController.js +1 -1
- package/dist/modules/drafts/DraftsController.js.map +1 -1
- package/dist/modules/requests/events/IncomingRequestReceivedEvent.js +2 -1
- package/dist/modules/requests/events/IncomingRequestReceivedEvent.js.map +1 -1
- package/dist/modules/requests/events/IncomingRequestStatusChangedEvent.js +2 -1
- package/dist/modules/requests/events/IncomingRequestStatusChangedEvent.js.map +1 -1
- package/dist/modules/requests/events/OutgoingRequestCreatedEvent.d.ts +1 -1
- package/dist/modules/requests/events/OutgoingRequestCreatedEvent.js +2 -1
- package/dist/modules/requests/events/OutgoingRequestCreatedEvent.js.map +1 -1
- package/dist/modules/requests/events/OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent.d.ts +1 -1
- package/dist/modules/requests/events/OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent.js +2 -1
- package/dist/modules/requests/events/OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent.js.map +1 -1
- package/dist/modules/requests/events/OutgoingRequestStatusChangedEvent.js +2 -1
- package/dist/modules/requests/events/OutgoingRequestStatusChangedEvent.js.map +1 -1
- package/dist/modules/requests/incoming/DecideRequestParametersValidator.js +9 -9
- package/dist/modules/requests/incoming/DecideRequestParametersValidator.js.map +1 -1
- package/dist/modules/requests/incoming/IncomingRequestsController.js +10 -10
- package/dist/modules/requests/incoming/IncomingRequestsController.js.map +1 -1
- package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js +3 -2
- package/dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js.map +1 -1
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js +3 -3
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js +3 -3
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js +4 -2
- package/dist/modules/requests/itemProcessors/readAttribute/AcceptReadAttributeRequestItemParameters.js.map +1 -1
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js +1 -1
- package/dist/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js +2 -2
- package/dist/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/utility/validateQuery.js +3 -3
- package/dist/modules/requests/itemProcessors/utility/validateQuery.js.map +1 -1
- package/dist/modules/requests/local/LocalRequest.js +3 -2
- package/dist/modules/requests/local/LocalRequest.js.map +1 -1
- package/dist/modules/requests/outgoing/OutgoingRequestsController.js +8 -8
- package/dist/modules/requests/outgoing/OutgoingRequestsController.js.map +1 -1
- package/dist/modules/settings/SettingsController.js +18 -3
- package/dist/modules/settings/SettingsController.js.map +1 -1
- package/lib-web/nmshd.consumption.js +222 -145
- package/lib-web/nmshd.consumption.js.map +1 -1
- package/lib-web/nmshd.consumption.min.js +1 -1
- package/lib-web/nmshd.consumption.min.js.map +1 -1
- package/package.json +10 -10
- package/dist/consumption/ConsumptionErrors.js.map +0 -1
|
@@ -17,10 +17,10 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
|
17
17
|
const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
|
|
18
18
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
19
19
|
exports.buildInformation = {
|
|
20
|
-
version: "2.0.0-beta.
|
|
21
|
-
build: "
|
|
22
|
-
date: "2022-09-
|
|
23
|
-
commit: "
|
|
20
|
+
version: "2.0.0-beta.25",
|
|
21
|
+
build: "77",
|
|
22
|
+
date: "2022-09-28T14:12:31+00:00",
|
|
23
|
+
commit: "e8e386a6e1fd88031567c4cacd35a1f6905fe686",
|
|
24
24
|
dependencies: {"@js-soft/docdb-querytranslator":"^1.1.0","ts-simple-nameof":"^1.3.1"},
|
|
25
25
|
libraries: {
|
|
26
26
|
transport: transport_1.buildInformation,
|
|
@@ -159,22 +159,59 @@ var ConsumptionControllerName;
|
|
|
159
159
|
|
|
160
160
|
/***/ }),
|
|
161
161
|
|
|
162
|
-
/***/ "./dist/consumption/
|
|
163
|
-
|
|
164
|
-
!*** ./dist/consumption/
|
|
165
|
-
|
|
162
|
+
/***/ "./dist/consumption/ConsumptionError.js":
|
|
163
|
+
/*!**********************************************!*\
|
|
164
|
+
!*** ./dist/consumption/ConsumptionError.js ***!
|
|
165
|
+
\**********************************************/
|
|
166
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
167
|
+
|
|
168
|
+
"use strict";
|
|
169
|
+
|
|
170
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
171
|
+
exports.ConsumptionError = void 0;
|
|
172
|
+
class ConsumptionError extends Error {
|
|
173
|
+
}
|
|
174
|
+
exports.ConsumptionError = ConsumptionError;
|
|
175
|
+
//# sourceMappingURL=ConsumptionError.js.map
|
|
176
|
+
|
|
177
|
+
/***/ }),
|
|
178
|
+
|
|
179
|
+
/***/ "./dist/consumption/ConsumptionIds.js":
|
|
180
|
+
/*!********************************************!*\
|
|
181
|
+
!*** ./dist/consumption/ConsumptionIds.js ***!
|
|
182
|
+
\********************************************/
|
|
166
183
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
167
184
|
|
|
168
185
|
"use strict";
|
|
169
186
|
|
|
170
187
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
171
|
-
exports.
|
|
188
|
+
exports.ConsumptionIds = void 0;
|
|
189
|
+
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
190
|
+
class ConsumptionIds {
|
|
191
|
+
}
|
|
192
|
+
exports.ConsumptionIds = ConsumptionIds;
|
|
193
|
+
ConsumptionIds.draft = new transport_1.CoreIdHelper("LCLDRF");
|
|
194
|
+
ConsumptionIds.setting = new transport_1.CoreIdHelper("LCLSET");
|
|
195
|
+
ConsumptionIds.attribute = new transport_1.CoreIdHelper("ATT");
|
|
196
|
+
ConsumptionIds.request = new transport_1.CoreIdHelper("REQ");
|
|
197
|
+
ConsumptionIds.attributeListener = new transport_1.CoreIdHelper("ATL");
|
|
198
|
+
//# sourceMappingURL=ConsumptionIds.js.map
|
|
199
|
+
|
|
200
|
+
/***/ }),
|
|
201
|
+
|
|
202
|
+
/***/ "./dist/consumption/CoreErrors.js":
|
|
203
|
+
/*!****************************************!*\
|
|
204
|
+
!*** ./dist/consumption/CoreErrors.js ***!
|
|
205
|
+
\****************************************/
|
|
206
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
207
|
+
|
|
208
|
+
"use strict";
|
|
209
|
+
|
|
210
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
211
|
+
exports.CoreErrors = void 0;
|
|
172
212
|
const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
|
|
173
213
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
174
214
|
class Attributes {
|
|
175
|
-
attributeExists(id) {
|
|
176
|
-
return new transport_1.CoreError("error.consumption.attributes.attributeExists", `Attribute with id '${id}' already exists. Please use succeed instead.`);
|
|
177
|
-
}
|
|
178
215
|
predecessorNotFound(id) {
|
|
179
216
|
return new transport_1.CoreError("error.consumption.attributes.predecessorNotFound", `Attribute with id '${id}' does not exist. Please use create instead.`);
|
|
180
217
|
}
|
|
@@ -186,14 +223,11 @@ class Requests {
|
|
|
186
223
|
constructor() {
|
|
187
224
|
this.decideValidation = new Requests._decideValidation();
|
|
188
225
|
}
|
|
189
|
-
requestExists(id) {
|
|
190
|
-
return new transport_1.CoreError("error.consumption.requests.requestExists", `Request with id ${id} already exists and can't be created.`);
|
|
191
|
-
}
|
|
192
226
|
unexpectedErrorDuringRequestItemProcessing(error) {
|
|
193
|
-
return new transport_1.CoreError("error.consumption.requests.unexpectedErrorDuringRequestItemProcessing", error instanceof Error ? error.message :
|
|
227
|
+
return new transport_1.CoreError("error.consumption.requests.unexpectedErrorDuringRequestItemProcessing", error instanceof Error ? error.message : `Unknown error: '${JSON.stringify(error)}'`, undefined, undefined, error);
|
|
194
228
|
}
|
|
195
229
|
servalErrorDuringRequestItemProcessing(error) {
|
|
196
|
-
return new transport_1.CoreError("error.consumption.requests.servalErrorDuringRequestItemProcessing", error instanceof Error ? error.message :
|
|
230
|
+
return new transport_1.CoreError("error.consumption.requests.servalErrorDuringRequestItemProcessing", error instanceof Error ? error.message : `Serval error: '${JSON.stringify(error)}'`, undefined, undefined, error);
|
|
197
231
|
}
|
|
198
232
|
invalidRequestItem(message) {
|
|
199
233
|
return new transport_1.CoreError("error.consumption.requests.invalidRequestItem", message);
|
|
@@ -219,50 +253,12 @@ Requests._decideValidation = class {
|
|
|
219
253
|
return new ts_utils_1.ApplicationError("error.requests.decide.validation.requestItemGroupAnsweredAsRequestItem", "The RequestItemGroup was answered as a RequestItem.");
|
|
220
254
|
}
|
|
221
255
|
};
|
|
222
|
-
class
|
|
223
|
-
relationshipInfoExists(relationshipId) {
|
|
224
|
-
return new transport_1.CoreError("error.consumption.relationshipInfos.relationshipInfoExists", `RelationshipInfo for Relationship ${relationshipId} already exists.`);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
class Onboarding {
|
|
228
|
-
attributeNotSet(attributeName) {
|
|
229
|
-
return new transport_1.CoreError("error.consumption.onboarding.attributeNotSet", `No attribute with name ${attributeName} set but was required to be shared.`);
|
|
230
|
-
}
|
|
231
|
-
wrongTemplate() {
|
|
232
|
-
return new transport_1.CoreError("error.consumption.onboarding.wrongTemplate", "The given template is in the wrong format.");
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
class ConsumptionErrors {
|
|
236
|
-
}
|
|
237
|
-
exports.ConsumptionErrors = ConsumptionErrors;
|
|
238
|
-
ConsumptionErrors.attributes = new Attributes();
|
|
239
|
-
ConsumptionErrors.requests = new Requests();
|
|
240
|
-
ConsumptionErrors.relationshipInfo = new RelationshipInfo();
|
|
241
|
-
ConsumptionErrors.onboarding = new Onboarding();
|
|
242
|
-
//# sourceMappingURL=ConsumptionErrors.js.map
|
|
243
|
-
|
|
244
|
-
/***/ }),
|
|
245
|
-
|
|
246
|
-
/***/ "./dist/consumption/ConsumptionIds.js":
|
|
247
|
-
/*!********************************************!*\
|
|
248
|
-
!*** ./dist/consumption/ConsumptionIds.js ***!
|
|
249
|
-
\********************************************/
|
|
250
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
251
|
-
|
|
252
|
-
"use strict";
|
|
253
|
-
|
|
254
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
255
|
-
exports.ConsumptionIds = void 0;
|
|
256
|
-
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
257
|
-
class ConsumptionIds {
|
|
256
|
+
class CoreErrors {
|
|
258
257
|
}
|
|
259
|
-
exports.
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
ConsumptionIds.request = new transport_1.CoreIdHelper("REQ");
|
|
264
|
-
ConsumptionIds.attributeListener = new transport_1.CoreIdHelper("ATL");
|
|
265
|
-
//# sourceMappingURL=ConsumptionIds.js.map
|
|
258
|
+
exports.CoreErrors = CoreErrors;
|
|
259
|
+
CoreErrors.attributes = new Attributes();
|
|
260
|
+
CoreErrors.requests = new Requests();
|
|
261
|
+
//# sourceMappingURL=CoreErrors.js.map
|
|
266
262
|
|
|
267
263
|
/***/ }),
|
|
268
264
|
|
|
@@ -291,8 +287,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
291
287
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
292
288
|
__exportStar(__webpack_require__(/*! ./ConsumptionBaseController */ "./dist/consumption/ConsumptionBaseController.js"), exports);
|
|
293
289
|
__exportStar(__webpack_require__(/*! ./ConsumptionControllerName */ "./dist/consumption/ConsumptionControllerName.js"), exports);
|
|
294
|
-
__exportStar(__webpack_require__(/*! ./
|
|
290
|
+
__exportStar(__webpack_require__(/*! ./ConsumptionError */ "./dist/consumption/ConsumptionError.js"), exports);
|
|
295
291
|
__exportStar(__webpack_require__(/*! ./ConsumptionIds */ "./dist/consumption/ConsumptionIds.js"), exports);
|
|
292
|
+
__exportStar(__webpack_require__(/*! ./CoreErrors */ "./dist/consumption/CoreErrors.js"), exports);
|
|
296
293
|
//# sourceMappingURL=index.js.map
|
|
297
294
|
|
|
298
295
|
/***/ }),
|
|
@@ -700,12 +697,9 @@ class AttributesController extends consumption_1.ConsumptionBaseController {
|
|
|
700
697
|
}
|
|
701
698
|
async createLocalAttributesForNestedAttributeValues(localAttribute) {
|
|
702
699
|
if (!(localAttribute.content instanceof content_1.IdentityAttribute)) {
|
|
703
|
-
throw new
|
|
700
|
+
throw new consumption_1.ConsumptionError("Only Identity Attributes are allowed here");
|
|
704
701
|
}
|
|
705
|
-
const
|
|
706
|
-
const nestedAttributeValues = Object.keys(localAttribute.content.value)
|
|
707
|
-
.map((k) => attributeValueAsAny[k])
|
|
708
|
-
.filter((p) => p instanceof content_1.AbstractAttributeValue);
|
|
702
|
+
const nestedAttributeValues = Object.values(localAttribute.content.value).filter((p) => p instanceof content_1.AbstractAttributeValue);
|
|
709
703
|
for (const propertyValue of nestedAttributeValues) {
|
|
710
704
|
const nestedAttribute = content_1.IdentityAttribute.from({
|
|
711
705
|
...localAttribute.content.toJSON(),
|
|
@@ -721,10 +715,10 @@ class AttributesController extends consumption_1.ConsumptionBaseController {
|
|
|
721
715
|
});
|
|
722
716
|
const currentAttribute = LocalAttribute_1.LocalAttribute.from(currentAttributeDoc);
|
|
723
717
|
if (currentAttribute.parentId) {
|
|
724
|
-
throw consumption_1.
|
|
718
|
+
throw consumption_1.CoreErrors.attributes.cannotSucceedAttributesWithAParent(parsedParams.succeeds.toString());
|
|
725
719
|
}
|
|
726
720
|
if (!currentAttributeDoc) {
|
|
727
|
-
throw consumption_1.
|
|
721
|
+
throw consumption_1.CoreErrors.attributes.predecessorNotFound(parsedParams.succeeds.toString());
|
|
728
722
|
}
|
|
729
723
|
if (!parsedParams.successorContent.validFrom) {
|
|
730
724
|
parsedParams.successorContent.validFrom = transport_1.CoreDate.utc();
|
|
@@ -741,7 +735,7 @@ class AttributesController extends consumption_1.ConsumptionBaseController {
|
|
|
741
735
|
const parsedParams = CreateSharedLocalAttributeCopyParams_1.CreateSharedLocalAttributeCopyParams.from(params);
|
|
742
736
|
const sourceAttribute = await this.getLocalAttribute(parsedParams.sourceAttributeId);
|
|
743
737
|
if (!sourceAttribute) {
|
|
744
|
-
throw consumption_1.
|
|
738
|
+
throw consumption_1.CoreErrors.attributes.predecessorNotFound(parsedParams.sourceAttributeId.toString());
|
|
745
739
|
}
|
|
746
740
|
const shareInfo = LocalAttributeShareInfo_1.LocalAttributeShareInfo.from({
|
|
747
741
|
peer: parsedParams.peer,
|
|
@@ -1289,6 +1283,7 @@ exports.ThirdPartyRelationshipAttributeQueryTranslator = exports.RelationshipAtt
|
|
|
1289
1283
|
const docdb_querytranslator_1 = __webpack_require__(/*! @js-soft/docdb-querytranslator */ "./node_modules/@js-soft/docdb-querytranslator/dist/index.js");
|
|
1290
1284
|
const luxon_1 = __webpack_require__(/*! luxon */ "./node_modules/luxon/build/node/luxon.js");
|
|
1291
1285
|
const ts_simple_nameof_1 = __webpack_require__(/*! ts-simple-nameof */ "./node_modules/ts-simple-nameof/index.js");
|
|
1286
|
+
const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
|
|
1292
1287
|
class IdentityAttributeQueryTranslator {
|
|
1293
1288
|
static translate(query) {
|
|
1294
1289
|
return this.translator.parse({ ...query.toJSON(), attributeType: "IdentityAttribute" });
|
|
@@ -1317,7 +1312,7 @@ IdentityAttributeQueryTranslator.translator = new docdb_querytranslator_1.QueryT
|
|
|
1317
1312
|
if (!input)
|
|
1318
1313
|
return;
|
|
1319
1314
|
if (!Array.isArray(input)) {
|
|
1320
|
-
throw new
|
|
1315
|
+
throw new consumption_1.ConsumptionError("Invalid input: 'tags' must be an array");
|
|
1321
1316
|
}
|
|
1322
1317
|
const inputAsArray = input;
|
|
1323
1318
|
query["$or"] = inputAsArray.map((t) => ({
|
|
@@ -1583,7 +1578,7 @@ class DraftsController extends consumption_1.ConsumptionBaseController {
|
|
|
1583
1578
|
async updateDraft(draft) {
|
|
1584
1579
|
const oldDraft = await this.drafts.read(draft.id.toString());
|
|
1585
1580
|
if (!oldDraft) {
|
|
1586
|
-
throw new
|
|
1581
|
+
throw new consumption_1.ConsumptionError("Draft Not Found");
|
|
1587
1582
|
}
|
|
1588
1583
|
await this.drafts.update(oldDraft, draft);
|
|
1589
1584
|
}
|
|
@@ -1748,11 +1743,12 @@ __exportStar(__webpack_require__(/*! ./settings */ "./dist/modules/settings/inde
|
|
|
1748
1743
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1749
1744
|
exports.IncomingRequestReceivedEvent = void 0;
|
|
1750
1745
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
1746
|
+
const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
|
|
1751
1747
|
class IncomingRequestReceivedEvent extends transport_1.TransportDataEvent {
|
|
1752
1748
|
constructor(eventTargetAddress, data) {
|
|
1753
1749
|
super(IncomingRequestReceivedEvent.namespace, eventTargetAddress, data);
|
|
1754
1750
|
if (data.isOwn)
|
|
1755
|
-
throw new
|
|
1751
|
+
throw new consumption_1.ConsumptionError("Cannot create this event for an outgoing Request");
|
|
1756
1752
|
}
|
|
1757
1753
|
}
|
|
1758
1754
|
exports.IncomingRequestReceivedEvent = IncomingRequestReceivedEvent;
|
|
@@ -1772,11 +1768,12 @@ IncomingRequestReceivedEvent.namespace = "consumption.incomingRequestReceived";
|
|
|
1772
1768
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1773
1769
|
exports.IncomingRequestStatusChangedEvent = void 0;
|
|
1774
1770
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
1771
|
+
const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
|
|
1775
1772
|
class IncomingRequestStatusChangedEvent extends transport_1.TransportDataEvent {
|
|
1776
1773
|
constructor(eventTargetAddress, data) {
|
|
1777
1774
|
super(IncomingRequestStatusChangedEvent.namespace, eventTargetAddress, data);
|
|
1778
1775
|
if (data.request.isOwn)
|
|
1779
|
-
throw new
|
|
1776
|
+
throw new consumption_1.ConsumptionError("Cannot create this event for an outgoing Request");
|
|
1780
1777
|
}
|
|
1781
1778
|
}
|
|
1782
1779
|
exports.IncomingRequestStatusChangedEvent = IncomingRequestStatusChangedEvent;
|
|
@@ -1796,11 +1793,12 @@ IncomingRequestStatusChangedEvent.namespace = "consumption.incomingRequestStatus
|
|
|
1796
1793
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1797
1794
|
exports.OutgoingRequestCreatedEvent = void 0;
|
|
1798
1795
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
1796
|
+
const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
|
|
1799
1797
|
class OutgoingRequestCreatedEvent extends transport_1.TransportDataEvent {
|
|
1800
1798
|
constructor(eventTargetAddress, data) {
|
|
1801
1799
|
super(OutgoingRequestCreatedEvent.namespace, eventTargetAddress, data);
|
|
1802
1800
|
if (!data.isOwn)
|
|
1803
|
-
throw new
|
|
1801
|
+
throw new consumption_1.ConsumptionError("Cannot create this event for an incoming Request");
|
|
1804
1802
|
}
|
|
1805
1803
|
}
|
|
1806
1804
|
exports.OutgoingRequestCreatedEvent = OutgoingRequestCreatedEvent;
|
|
@@ -1820,11 +1818,12 @@ OutgoingRequestCreatedEvent.namespace = "consumption.outgoingRequestCreated";
|
|
|
1820
1818
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1821
1819
|
exports.OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent = void 0;
|
|
1822
1820
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
1821
|
+
const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
|
|
1823
1822
|
class OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent extends transport_1.TransportDataEvent {
|
|
1824
1823
|
constructor(eventTargetAddress, data) {
|
|
1825
1824
|
super(OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent.namespace, eventTargetAddress, data);
|
|
1826
1825
|
if (!data.isOwn)
|
|
1827
|
-
throw new
|
|
1826
|
+
throw new consumption_1.ConsumptionError("Cannot create this event for an incoming Request");
|
|
1828
1827
|
}
|
|
1829
1828
|
}
|
|
1830
1829
|
exports.OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent = OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent;
|
|
@@ -1844,11 +1843,12 @@ OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent.namespace
|
|
|
1844
1843
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1845
1844
|
exports.OutgoingRequestStatusChangedEvent = void 0;
|
|
1846
1845
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
1846
|
+
const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
|
|
1847
1847
|
class OutgoingRequestStatusChangedEvent extends transport_1.TransportDataEvent {
|
|
1848
1848
|
constructor(eventTargetAddress, data) {
|
|
1849
1849
|
super(OutgoingRequestStatusChangedEvent.namespace, eventTargetAddress, data);
|
|
1850
1850
|
if (!data.request.isOwn)
|
|
1851
|
-
throw new
|
|
1851
|
+
throw new consumption_1.ConsumptionError("Cannot create this event for an incoming Request");
|
|
1852
1852
|
}
|
|
1853
1853
|
}
|
|
1854
1854
|
exports.OutgoingRequestStatusChangedEvent = OutgoingRequestStatusChangedEvent;
|
|
@@ -1908,10 +1908,10 @@ const DecideRequestItemParameters_1 = __webpack_require__(/*! ./decide/DecideReq
|
|
|
1908
1908
|
class DecideRequestParametersValidator {
|
|
1909
1909
|
validate(params, request) {
|
|
1910
1910
|
if (!request.id.equals(transport_1.CoreId.from(params.requestId))) {
|
|
1911
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
1911
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.decideValidation.invalidRequestId());
|
|
1912
1912
|
}
|
|
1913
1913
|
if (params.items.length !== request.content.items.length) {
|
|
1914
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
1914
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.decideValidation.invalidNumberOfItems("Number of items in Request and Response do not match"));
|
|
1915
1915
|
}
|
|
1916
1916
|
const validationResults = request.content.items.map((requestItem, index) => this.checkItemOrGroup(requestItem, params.items[index], params.accept));
|
|
1917
1917
|
return ValidationResult_1.ValidationResult.fromItems(validationResults);
|
|
@@ -1924,29 +1924,29 @@ class DecideRequestParametersValidator {
|
|
|
1924
1924
|
}
|
|
1925
1925
|
checkItem(requestItem, response, isParentAccepted) {
|
|
1926
1926
|
if ((0, DecideRequestItemGroupParameters_1.isDecideRequestItemGroupParametersJSON)(response)) {
|
|
1927
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
1927
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.decideValidation.requestItemAnsweredAsRequestItemGroup());
|
|
1928
1928
|
}
|
|
1929
1929
|
if (!isParentAccepted && response.accept) {
|
|
1930
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
1930
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.decideValidation.itemAcceptedButParentNotAccepted("The RequestItem was accepted, but the parent was not accepted."));
|
|
1931
1931
|
}
|
|
1932
1932
|
if (isParentAccepted && requestItem.mustBeAccepted && !response.accept) {
|
|
1933
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
1933
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.decideValidation.mustBeAcceptedItemNotAccepted("The RequestItem is flagged as 'mustBeAccepted', but it was not accepted."));
|
|
1934
1934
|
}
|
|
1935
1935
|
return ValidationResult_1.ValidationResult.success();
|
|
1936
1936
|
}
|
|
1937
1937
|
checkItemGroup(requestItemGroup, responseItemGroup, isParentAccepted) {
|
|
1938
1938
|
if ((0, DecideRequestItemParameters_1.isDecideRequestItemParametersJSON)(responseItemGroup)) {
|
|
1939
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
1939
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.decideValidation.requestItemGroupAnsweredAsRequestItem());
|
|
1940
1940
|
}
|
|
1941
1941
|
if (responseItemGroup.items.length !== requestItemGroup.items.length) {
|
|
1942
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
1942
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.decideValidation.invalidNumberOfItems("Number of items in RequestItemGroup and ResponseItemGroup do not match"));
|
|
1943
1943
|
}
|
|
1944
1944
|
const isGroupAccepted = responseItemGroup.items.some((value) => value.accept);
|
|
1945
1945
|
if (!isParentAccepted && isGroupAccepted) {
|
|
1946
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
1946
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.decideValidation.itemAcceptedButParentNotAccepted("The RequestItemGroup was accepted, but the parent was not accepted."));
|
|
1947
1947
|
}
|
|
1948
1948
|
if (isParentAccepted && requestItemGroup.mustBeAccepted && !isGroupAccepted) {
|
|
1949
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
1949
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.decideValidation.mustBeAcceptedItemNotAccepted("The RequestItemGroup is flagged as 'mustBeAccepted', but it was not accepted. Please accept all 'mustBeAccepted' items in this group."));
|
|
1950
1950
|
}
|
|
1951
1951
|
const validationResults = requestItemGroup.items.map((requestItem, index) => this.checkItem(requestItem, responseItemGroup.items[index], isGroupAccepted));
|
|
1952
1952
|
return ValidationResult_1.ValidationResult.fromItems(validationResults);
|
|
@@ -2016,7 +2016,7 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
2016
2016
|
}
|
|
2017
2017
|
extractInfoFromMessage(message) {
|
|
2018
2018
|
if (message.isOwn)
|
|
2019
|
-
throw new
|
|
2019
|
+
throw new consumption_1.ConsumptionError("Cannot create incoming Request from own Message");
|
|
2020
2020
|
return {
|
|
2021
2021
|
peer: message.cache.createdBy,
|
|
2022
2022
|
source: {
|
|
@@ -2027,7 +2027,7 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
2027
2027
|
}
|
|
2028
2028
|
extractInfoFromRelationshipTemplate(template) {
|
|
2029
2029
|
if (template.isOwn)
|
|
2030
|
-
throw new
|
|
2030
|
+
throw new consumption_1.ConsumptionError("Cannot create incoming Request from own Relationship Template");
|
|
2031
2031
|
return {
|
|
2032
2032
|
peer: template.cache.createdBy,
|
|
2033
2033
|
source: {
|
|
@@ -2126,22 +2126,22 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
2126
2126
|
}
|
|
2127
2127
|
catch (e) {
|
|
2128
2128
|
if (e instanceof ts_serval_1.ServalError) {
|
|
2129
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
2129
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.servalErrorDuringRequestItemProcessing(e));
|
|
2130
2130
|
}
|
|
2131
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
2131
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.unexpectedErrorDuringRequestItemProcessing(e));
|
|
2132
2132
|
}
|
|
2133
2133
|
}
|
|
2134
2134
|
async accept(params) {
|
|
2135
2135
|
const canAccept = await this.canAccept(params);
|
|
2136
2136
|
if (!canAccept.isSuccess()) {
|
|
2137
|
-
throw new
|
|
2137
|
+
throw new consumption_1.ConsumptionError("Cannot accept the Request with the given parameters. Call 'canAccept' to get more information.");
|
|
2138
2138
|
}
|
|
2139
2139
|
return await this.decide({ ...params, accept: true });
|
|
2140
2140
|
}
|
|
2141
2141
|
async reject(params) {
|
|
2142
2142
|
const canReject = await this.canReject(params);
|
|
2143
2143
|
if (!canReject.isSuccess()) {
|
|
2144
|
-
throw new
|
|
2144
|
+
throw new consumption_1.ConsumptionError("Cannot reject the Request with the given parameters. Call 'canReject' to get more information.");
|
|
2145
2145
|
}
|
|
2146
2146
|
return await this.decide({ ...params, accept: false });
|
|
2147
2147
|
}
|
|
@@ -2206,14 +2206,14 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
2206
2206
|
if (e instanceof Error) {
|
|
2207
2207
|
details = ` Details: ${e.message}`;
|
|
2208
2208
|
}
|
|
2209
|
-
throw new
|
|
2209
|
+
throw new consumption_1.ConsumptionError(`An error occurred while processing a '${requestItem.constructor.name}'. You should contact the developer of this RequestItem.${details}}`);
|
|
2210
2210
|
}
|
|
2211
2211
|
}
|
|
2212
2212
|
async complete(params) {
|
|
2213
2213
|
const parsedParams = CompleteIncomingRequestParameters_1.CompleteIncomingRequestParameters.from(params);
|
|
2214
2214
|
const request = await this.getOrThrow(parsedParams.requestId);
|
|
2215
2215
|
if (request.isOwn) {
|
|
2216
|
-
throw new
|
|
2216
|
+
throw new consumption_1.ConsumptionError("Cannot decide own Request");
|
|
2217
2217
|
}
|
|
2218
2218
|
this.assertRequestStatus(request, LocalRequestStatus_1.LocalRequestStatus.Decided);
|
|
2219
2219
|
const requestIsRejected = request.response.content.result === content_1.ResponseResult.Rejected;
|
|
@@ -2225,7 +2225,7 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
2225
2225
|
});
|
|
2226
2226
|
}
|
|
2227
2227
|
else if (!requestIsRejected || !requestIsFromTemplate) {
|
|
2228
|
-
throw new
|
|
2228
|
+
throw new consumption_1.ConsumptionError("A Request can only be completed without a responseSource if the Request is rejected and the Request is from a Relationship Template");
|
|
2229
2229
|
}
|
|
2230
2230
|
request.changeStatus(LocalRequestStatus_1.LocalRequestStatus.Completed);
|
|
2231
2231
|
await this.update(request);
|
|
@@ -2267,7 +2267,7 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
2267
2267
|
}
|
|
2268
2268
|
assertRequestStatus(request, ...status) {
|
|
2269
2269
|
if (!status.includes(request.status)) {
|
|
2270
|
-
throw new
|
|
2270
|
+
throw new consumption_1.ConsumptionError(`Local Request has to be in status '${status.join("/")}'.`);
|
|
2271
2271
|
}
|
|
2272
2272
|
}
|
|
2273
2273
|
async updateRequestExpiry(request) {
|
|
@@ -2741,12 +2741,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
2741
2741
|
/*!******************************************************************************!*\
|
|
2742
2742
|
!*** ./dist/modules/requests/itemProcessors/RequestItemProcessorRegistry.js ***!
|
|
2743
2743
|
\******************************************************************************/
|
|
2744
|
-
/***/ ((__unused_webpack_module, exports) => {
|
|
2744
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2745
2745
|
|
|
2746
2746
|
"use strict";
|
|
2747
2747
|
|
|
2748
2748
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2749
2749
|
exports.RequestItemProcessorRegistry = void 0;
|
|
2750
|
+
const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
|
|
2750
2751
|
class RequestItemProcessorRegistry {
|
|
2751
2752
|
constructor(consumptionController, processors = new Map()) {
|
|
2752
2753
|
this.consumptionController = consumptionController;
|
|
@@ -2754,7 +2755,7 @@ class RequestItemProcessorRegistry {
|
|
|
2754
2755
|
}
|
|
2755
2756
|
registerProcessor(itemConstructor, processorConstructor) {
|
|
2756
2757
|
if (this.processors.has(itemConstructor)) {
|
|
2757
|
-
throw new
|
|
2758
|
+
throw new consumption_1.ConsumptionError(`There is already a processor registered for '${itemConstructor.name}''. Use 'replaceProcessorForType' if you want to replace it.`);
|
|
2758
2759
|
}
|
|
2759
2760
|
this.processors.set(itemConstructor, processorConstructor);
|
|
2760
2761
|
}
|
|
@@ -2764,7 +2765,7 @@ class RequestItemProcessorRegistry {
|
|
|
2764
2765
|
getProcessorForItem(item) {
|
|
2765
2766
|
const constructor = this.processors.get(item.constructor);
|
|
2766
2767
|
if (!constructor) {
|
|
2767
|
-
throw new
|
|
2768
|
+
throw new consumption_1.ConsumptionError(`There was no processor registered for '${item.constructor.name}'.`);
|
|
2768
2769
|
}
|
|
2769
2770
|
return new constructor(this.consumptionController);
|
|
2770
2771
|
}
|
|
@@ -2876,17 +2877,17 @@ class CreateAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.
|
|
|
2876
2877
|
const ownerIsEmptyString = requestItem.attribute.owner.toString() === "";
|
|
2877
2878
|
if (requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
2878
2879
|
if (senderIsAttributeOwner) {
|
|
2879
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
2880
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("Cannot create own Attributes with a CreateAttributeRequestItem. Use a ShareAttributeRequestItem instead."));
|
|
2880
2881
|
}
|
|
2881
2882
|
if (recipientIsAttributeOwner || ownerIsEmptyString || recipient === undefined) {
|
|
2882
2883
|
return ValidationResult_1.ValidationResult.success();
|
|
2883
2884
|
}
|
|
2884
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
2885
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("The owner of the given `attribute` can only be the recipient's address or an empty string. The latter will default to the recipient's address."));
|
|
2885
2886
|
}
|
|
2886
2887
|
if (recipientIsAttributeOwner || senderIsAttributeOwner || ownerIsEmptyString || recipient === undefined) {
|
|
2887
2888
|
return ValidationResult_1.ValidationResult.success();
|
|
2888
2889
|
}
|
|
2889
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
2890
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("The owner of the given 'attribute' can only be the sender's address, the recipient's address or an empty string. The latter will default to the recipient's address."));
|
|
2890
2891
|
}
|
|
2891
2892
|
async accept(requestItem, _params, requestInfo) {
|
|
2892
2893
|
if (requestItem.attribute.owner.toString() === "") {
|
|
@@ -3027,7 +3028,7 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
|
|
|
3027
3028
|
}
|
|
3028
3029
|
validateAttribute(attribute) {
|
|
3029
3030
|
if (attribute.owner.toString() !== "") {
|
|
3030
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
3031
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("The owner of the given `attribute` can only be an empty string. This is because you can only propose Attributes where the recipient of the Request is the owner anyway. And in order to avoid mistakes, the owner will be automatically filled for you."));
|
|
3031
3032
|
}
|
|
3032
3033
|
return ValidationResult_1.ValidationResult.success();
|
|
3033
3034
|
}
|
|
@@ -3037,7 +3038,7 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
|
|
|
3037
3038
|
return commonQueryValidationResult;
|
|
3038
3039
|
}
|
|
3039
3040
|
if (requestItem.query instanceof content_1.RelationshipAttributeQuery && requestItem.query.owner.toString() !== "") {
|
|
3040
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
3041
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("The owner of the given `query` can only be an empty string. This is because you can only propose Attributes where the recipient of the Request is the owner anyway. And in order to avoid mistakes, the owner will be automatically filled for you."));
|
|
3041
3042
|
}
|
|
3042
3043
|
return ValidationResult_1.ValidationResult.success();
|
|
3043
3044
|
}
|
|
@@ -3052,7 +3053,7 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
|
|
|
3052
3053
|
attribute = localAttribute.content;
|
|
3053
3054
|
}
|
|
3054
3055
|
if (!attribute.owner.equals(this.currentIdentityAddress)) {
|
|
3055
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
3056
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
|
|
3056
3057
|
}
|
|
3057
3058
|
return ValidationResult_1.ValidationResult.success();
|
|
3058
3059
|
}
|
|
@@ -3136,6 +3137,7 @@ const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-s
|
|
|
3136
3137
|
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
3137
3138
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
3138
3139
|
const ts_simple_nameof_1 = __webpack_require__(/*! ts-simple-nameof */ "./node_modules/ts-simple-nameof/index.js");
|
|
3140
|
+
const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist/consumption/index.js");
|
|
3139
3141
|
let AcceptReadAttributeRequestItemParameters = AcceptReadAttributeRequestItemParameters_1 = class AcceptReadAttributeRequestItemParameters extends ts_serval_1.Serializable {
|
|
3140
3142
|
isWithExistingAttribute() {
|
|
3141
3143
|
return this.existingAttributeId !== undefined;
|
|
@@ -3147,8 +3149,9 @@ let AcceptReadAttributeRequestItemParameters = AcceptReadAttributeRequestItemPar
|
|
|
3147
3149
|
return this.fromAny(value);
|
|
3148
3150
|
}
|
|
3149
3151
|
static postFrom(value) {
|
|
3150
|
-
if (!(value instanceof AcceptReadAttributeRequestItemParameters_1))
|
|
3151
|
-
throw new
|
|
3152
|
+
if (!(value instanceof AcceptReadAttributeRequestItemParameters_1)) {
|
|
3153
|
+
throw new consumption_1.ConsumptionError("this should never happen");
|
|
3154
|
+
}
|
|
3152
3155
|
if (value.existingAttributeId && value.newAttribute) {
|
|
3153
3156
|
throw new ts_serval_1.ValidationError(AcceptReadAttributeRequestItemParameters_1.name, (0, ts_simple_nameof_1.nameof)((x) => x.newAttribute), `You cannot specify both ${(0, ts_simple_nameof_1.nameof)((x) => x.newAttribute)} and ${(0, ts_simple_nameof_1.nameof)((x) => x.existingAttributeId)}.`);
|
|
3154
3157
|
}
|
|
@@ -3214,7 +3217,7 @@ class ReadAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.Ge
|
|
|
3214
3217
|
}
|
|
3215
3218
|
const ownerIsCurrentIdentity = this.accountController.identity.isMe(foundAttribute.content.owner);
|
|
3216
3219
|
if (!ownerIsCurrentIdentity) {
|
|
3217
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
3220
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("The given Attribute belongs to someone else. You can only share own Attributes."));
|
|
3218
3221
|
}
|
|
3219
3222
|
}
|
|
3220
3223
|
return ValidationResult_1.ValidationResult.success();
|
|
@@ -3359,13 +3362,13 @@ class ShareAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.G
|
|
|
3359
3362
|
const ownerIsEmpty = requestItem.attribute.owner.toString() === "";
|
|
3360
3363
|
const ownerIsCurrentIdentity = requestItem.attribute.owner.equals(this.currentIdentityAddress);
|
|
3361
3364
|
if (!ownerIsEmpty && !ownerIsCurrentIdentity) {
|
|
3362
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
3365
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("The owner of the given `attribute` can only be an empty string. This is because you can only send Attributes where the recipient of the Request is the owner anyway. And in order to avoid mistakes, the owner will be automatically filled for you."));
|
|
3363
3366
|
}
|
|
3364
3367
|
return ValidationResult_1.ValidationResult.success();
|
|
3365
3368
|
}
|
|
3366
3369
|
canCreateWithRelationshipAttribute(attribute) {
|
|
3367
3370
|
if (attribute.confidentiality === content_1.RelationshipAttributeConfidentiality.Private) {
|
|
3368
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
3371
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("The confidentiality of the given `attribute` is private. Therefore you are not allowed to share it."));
|
|
3369
3372
|
}
|
|
3370
3373
|
return ValidationResult_1.ValidationResult.success();
|
|
3371
3374
|
}
|
|
@@ -3415,13 +3418,13 @@ const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dis
|
|
|
3415
3418
|
function validateQuery(query, sender, recipient) {
|
|
3416
3419
|
if (query instanceof content_1.ThirdPartyRelationshipAttributeQuery) {
|
|
3417
3420
|
if (query.thirdParty.equals(sender)) {
|
|
3418
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
3421
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("Cannot query an Attribute with the own address as third party."));
|
|
3419
3422
|
}
|
|
3420
3423
|
if (query.thirdParty.equals(recipient)) {
|
|
3421
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
3424
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("Cannot query an Attribute with the recipient's address as third party."));
|
|
3422
3425
|
}
|
|
3423
3426
|
if (query.owner.equals(sender)) {
|
|
3424
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.
|
|
3427
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.CoreErrors.requests.invalidRequestItem("Cannot query own Attributes from a third party."));
|
|
3425
3428
|
}
|
|
3426
3429
|
}
|
|
3427
3430
|
return ValidationResult_1.ValidationResult.success();
|
|
@@ -3453,6 +3456,7 @@ exports.LocalRequest = exports.LocalRequestSource = void 0;
|
|
|
3453
3456
|
const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
|
|
3454
3457
|
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
3455
3458
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
3459
|
+
const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
|
|
3456
3460
|
const LocalRequestStatus_1 = __webpack_require__(/*! ./LocalRequestStatus */ "./dist/modules/requests/local/LocalRequestStatus.js");
|
|
3457
3461
|
const LocalRequestStatusLogEntry_1 = __webpack_require__(/*! ./LocalRequestStatusLogEntry */ "./dist/modules/requests/local/LocalRequestStatusLogEntry.js");
|
|
3458
3462
|
const LocalResponse_1 = __webpack_require__(/*! ./LocalResponse */ "./dist/modules/requests/local/LocalResponse.js");
|
|
@@ -3478,7 +3482,7 @@ exports.LocalRequestSource = LocalRequestSource;
|
|
|
3478
3482
|
let LocalRequest = class LocalRequest extends transport_1.CoreSynchronizable {
|
|
3479
3483
|
changeStatus(newStatus) {
|
|
3480
3484
|
if (this.status === newStatus)
|
|
3481
|
-
throw new
|
|
3485
|
+
throw new consumption_1.ConsumptionError("cannot change status to the same status");
|
|
3482
3486
|
const logEntry = LocalRequestStatusLogEntry_1.LocalRequestStatusLogEntry.from({
|
|
3483
3487
|
createdAt: transport_1.CoreDate.utc(),
|
|
3484
3488
|
oldStatus: this.status,
|
|
@@ -3489,7 +3493,7 @@ let LocalRequest = class LocalRequest extends transport_1.CoreSynchronizable {
|
|
|
3489
3493
|
}
|
|
3490
3494
|
sent(source) {
|
|
3491
3495
|
if (this.status !== LocalRequestStatus_1.LocalRequestStatus.Draft) {
|
|
3492
|
-
throw new
|
|
3496
|
+
throw new consumption_1.ConsumptionError("Local Request has to be in status 'Draft'.");
|
|
3493
3497
|
}
|
|
3494
3498
|
this.source = source;
|
|
3495
3499
|
this.changeStatus(LocalRequestStatus_1.LocalRequestStatus.Open);
|
|
@@ -3810,13 +3814,13 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
3810
3814
|
const peer = parsedParams.creationChange.request.createdBy;
|
|
3811
3815
|
const requestBody = parsedParams.creationChange.request.content;
|
|
3812
3816
|
if (!(requestBody instanceof content_1.RelationshipCreationChangeRequestBody)) {
|
|
3813
|
-
throw new
|
|
3817
|
+
throw new consumption_1.ConsumptionError("the body of the request is not supported as is is not type of RelationshipCreationChangeRequestBody");
|
|
3814
3818
|
}
|
|
3815
3819
|
const receivedResponse = requestBody.response;
|
|
3816
3820
|
const id = receivedResponse.requestId;
|
|
3817
3821
|
const templateContent = parsedParams.template.cache.content;
|
|
3818
3822
|
if (!(templateContent instanceof content_1.RelationshipTemplateBody)) {
|
|
3819
|
-
throw new
|
|
3823
|
+
throw new consumption_1.ConsumptionError("the body of the template is not supported as is is not type of RelationshipTemplateBody");
|
|
3820
3824
|
}
|
|
3821
3825
|
// TODO: is this the correct request (=> could be RelationshipTemplateBody#existingRelationshipRequest)
|
|
3822
3826
|
await this._create(id, templateContent.onNewRelationship, peer);
|
|
@@ -3849,17 +3853,17 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
3849
3853
|
getSourceType(sourceObject) {
|
|
3850
3854
|
if (sourceObject instanceof transport_1.Message) {
|
|
3851
3855
|
if (!sourceObject.isOwn) {
|
|
3852
|
-
throw new
|
|
3856
|
+
throw new consumption_1.ConsumptionError("Cannot create outgoing Request from a peer Message");
|
|
3853
3857
|
}
|
|
3854
3858
|
return "Message";
|
|
3855
3859
|
}
|
|
3856
3860
|
else if (sourceObject instanceof transport_1.RelationshipTemplate) {
|
|
3857
3861
|
if (!sourceObject.isOwn) {
|
|
3858
|
-
throw new
|
|
3862
|
+
throw new consumption_1.ConsumptionError("Cannot create outgoing Request from a peer Relationship Template");
|
|
3859
3863
|
}
|
|
3860
3864
|
return "RelationshipTemplate";
|
|
3861
3865
|
}
|
|
3862
|
-
throw new
|
|
3866
|
+
throw new consumption_1.ConsumptionError("The given sourceObject is not of a valid type. Valid types are 'Message' and 'RelationshipTemplate'.");
|
|
3863
3867
|
}
|
|
3864
3868
|
async complete(params) {
|
|
3865
3869
|
const parsedParams = CompleteOutgoingRequestParameters_1.CompleteOugoingRequestParameters.from(params);
|
|
@@ -3878,7 +3882,7 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
3878
3882
|
? responseSourceObject.cache.createdAt
|
|
3879
3883
|
: responseSourceObject.request.createdAt;
|
|
3880
3884
|
if (request.status === LocalRequestStatus_1.LocalRequestStatus.Expired && request.isExpired(responseSourceObjectCreationDate)) {
|
|
3881
|
-
throw new
|
|
3885
|
+
throw new consumption_1.ConsumptionError("Cannot complete an expired request with a response that was created before the expiration date");
|
|
3882
3886
|
}
|
|
3883
3887
|
const canComplete = await this.canComplete(request, receivedResponse);
|
|
3884
3888
|
if (canComplete.isError()) {
|
|
@@ -3893,7 +3897,7 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
3893
3897
|
responseSource = "RelationshipChange";
|
|
3894
3898
|
}
|
|
3895
3899
|
else {
|
|
3896
|
-
throw new
|
|
3900
|
+
throw new consumption_1.ConsumptionError("Invalid responseSourceObject");
|
|
3897
3901
|
}
|
|
3898
3902
|
const localResponse = LocalResponse_1.LocalResponse.from({
|
|
3899
3903
|
content: receivedResponse,
|
|
@@ -3984,7 +3988,7 @@ class OutgoingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
3984
3988
|
}
|
|
3985
3989
|
assertRequestStatus(request, ...status) {
|
|
3986
3990
|
if (!status.includes(request.status)) {
|
|
3987
|
-
throw new
|
|
3991
|
+
throw new consumption_1.ConsumptionError(`Local Request has to be in status '${status.join("/")}'.`);
|
|
3988
3992
|
}
|
|
3989
3993
|
}
|
|
3990
3994
|
async updateRequestExpiry(request) {
|
|
@@ -4231,12 +4235,22 @@ exports.SentOutgoingRequestParameters = SentOutgoingRequestParameters;
|
|
|
4231
4235
|
/*!*****************************************************!*\
|
|
4232
4236
|
!*** ./dist/modules/settings/SettingsController.js ***!
|
|
4233
4237
|
\*****************************************************/
|
|
4234
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__)
|
|
4238
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
4235
4239
|
|
|
4236
4240
|
"use strict";
|
|
4237
4241
|
|
|
4242
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
4243
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4244
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4245
|
+
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;
|
|
4246
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
4247
|
+
};
|
|
4248
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
4249
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
4250
|
+
};
|
|
4238
4251
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
4239
4252
|
exports.SettingsController = void 0;
|
|
4253
|
+
const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
|
|
4240
4254
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
4241
4255
|
const consumption_1 = __webpack_require__(/*! ../../consumption */ "./dist/consumption/index.js");
|
|
4242
4256
|
const Setting_1 = __webpack_require__(/*! ./local/Setting */ "./dist/modules/settings/local/Setting.js");
|
|
@@ -4273,15 +4287,20 @@ class SettingsController extends consumption_1.ConsumptionBaseController {
|
|
|
4273
4287
|
}
|
|
4274
4288
|
async updateSetting(setting) {
|
|
4275
4289
|
const oldSetting = await this.settings.read(setting.id.toString());
|
|
4276
|
-
if (!oldSetting)
|
|
4277
|
-
throw transport_1.TransportErrors.general.recordNotFound(Setting_1.Setting, setting.id.toString())
|
|
4278
|
-
}
|
|
4290
|
+
if (!oldSetting)
|
|
4291
|
+
throw transport_1.TransportErrors.general.recordNotFound(Setting_1.Setting, setting.id.toString());
|
|
4279
4292
|
await this.settings.update(oldSetting, setting);
|
|
4280
4293
|
}
|
|
4281
4294
|
async deleteSetting(setting) {
|
|
4282
4295
|
await this.settings.delete(setting);
|
|
4283
4296
|
}
|
|
4284
4297
|
}
|
|
4298
|
+
__decorate([
|
|
4299
|
+
(0, ts_utils_1.log)(),
|
|
4300
|
+
__metadata("design:type", Function),
|
|
4301
|
+
__metadata("design:paramtypes", [Setting_1.Setting]),
|
|
4302
|
+
__metadata("design:returntype", Promise)
|
|
4303
|
+
], SettingsController.prototype, "updateSetting", null);
|
|
4285
4304
|
exports.SettingsController = SettingsController;
|
|
4286
4305
|
//# sourceMappingURL=SettingsController.js.map
|
|
4287
4306
|
|
|
@@ -4986,29 +5005,50 @@ __exportStar(__webpack_require__(/*! ./sleep */ "./node_modules/@js-soft/ts-util
|
|
|
4986
5005
|
/*!*************************************************************!*\
|
|
4987
5006
|
!*** ./node_modules/@js-soft/ts-utils/dist/logDecorator.js ***!
|
|
4988
5007
|
\*************************************************************/
|
|
4989
|
-
/***/ ((__unused_webpack_module, exports)
|
|
5008
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
4990
5009
|
|
|
4991
5010
|
"use strict";
|
|
4992
5011
|
|
|
5012
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5013
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5014
|
+
};
|
|
4993
5015
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
4994
5016
|
exports.log = void 0;
|
|
4995
|
-
|
|
4996
|
-
function log(
|
|
4997
|
-
|
|
4998
|
-
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5004
|
-
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
5017
|
+
const json_stringify_safe_1 = __importDefault(__webpack_require__(/*! json-stringify-safe */ "./node_modules/json-stringify-safe/stringify.js"));
|
|
5018
|
+
function log(params) {
|
|
5019
|
+
return function (_target, propertyName, propertyDescriptorDoNotChangeMyNamePlease) {
|
|
5020
|
+
const method = propertyDescriptorDoNotChangeMyNamePlease.value;
|
|
5021
|
+
propertyDescriptorDoNotChangeMyNamePlease.value = function (...args) {
|
|
5022
|
+
const thisT = this;
|
|
5023
|
+
try {
|
|
5024
|
+
if (params?.logParams) {
|
|
5025
|
+
thisT.log.trace(`Calling ${propertyName}(${args.map((a) => (0, json_stringify_safe_1.default)(a)).join(", ")})`);
|
|
5026
|
+
}
|
|
5027
|
+
else {
|
|
5028
|
+
thisT.log.trace(`Calling ${propertyName}`);
|
|
5029
|
+
}
|
|
5030
|
+
const returnValue = method.apply(this, args);
|
|
5031
|
+
if (params?.logReturnValue) {
|
|
5032
|
+
thisT.log.trace(`Returning from ${propertyName} with: ${(0, json_stringify_safe_1.default)(returnValue)}`);
|
|
5033
|
+
}
|
|
5034
|
+
else {
|
|
5035
|
+
thisT.log.trace(`Returning from ${propertyName}`);
|
|
5036
|
+
}
|
|
5037
|
+
return returnValue;
|
|
5038
|
+
}
|
|
5039
|
+
catch (error) {
|
|
5040
|
+
if (error instanceof Error && error.stack) {
|
|
5041
|
+
error.stack = error.stack
|
|
5042
|
+
.split("\n")
|
|
5043
|
+
.filter((s) => !s.includes(".propertyDescriptorDoNotChangeMyNamePlease.value"))
|
|
5044
|
+
.join("\n");
|
|
5045
|
+
}
|
|
5046
|
+
thisT.log.error(`Error in ${propertyName}:`, error);
|
|
5047
|
+
throw error;
|
|
5048
|
+
}
|
|
5049
|
+
};
|
|
5050
|
+
return propertyDescriptorDoNotChangeMyNamePlease;
|
|
5010
5051
|
};
|
|
5011
|
-
return propertyDesciptor;
|
|
5012
5052
|
}
|
|
5013
5053
|
exports.log = log;
|
|
5014
5054
|
//# sourceMappingURL=logDecorator.js.map
|
|
@@ -6829,6 +6869,43 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/*!
|
|
|
6829
6869
|
}();
|
|
6830
6870
|
|
|
6831
6871
|
|
|
6872
|
+
/***/ }),
|
|
6873
|
+
|
|
6874
|
+
/***/ "./node_modules/json-stringify-safe/stringify.js":
|
|
6875
|
+
/*!*******************************************************!*\
|
|
6876
|
+
!*** ./node_modules/json-stringify-safe/stringify.js ***!
|
|
6877
|
+
\*******************************************************/
|
|
6878
|
+
/***/ ((module, exports) => {
|
|
6879
|
+
|
|
6880
|
+
exports = module.exports = stringify
|
|
6881
|
+
exports.getSerialize = serializer
|
|
6882
|
+
|
|
6883
|
+
function stringify(obj, replacer, spaces, cycleReplacer) {
|
|
6884
|
+
return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)
|
|
6885
|
+
}
|
|
6886
|
+
|
|
6887
|
+
function serializer(replacer, cycleReplacer) {
|
|
6888
|
+
var stack = [], keys = []
|
|
6889
|
+
|
|
6890
|
+
if (cycleReplacer == null) cycleReplacer = function(key, value) {
|
|
6891
|
+
if (stack[0] === value) return "[Circular ~]"
|
|
6892
|
+
return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]"
|
|
6893
|
+
}
|
|
6894
|
+
|
|
6895
|
+
return function(key, value) {
|
|
6896
|
+
if (stack.length > 0) {
|
|
6897
|
+
var thisPos = stack.indexOf(this)
|
|
6898
|
+
~thisPos ? stack.splice(thisPos + 1) : stack.push(this)
|
|
6899
|
+
~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)
|
|
6900
|
+
if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)
|
|
6901
|
+
}
|
|
6902
|
+
else stack.push(value)
|
|
6903
|
+
|
|
6904
|
+
return replacer == null ? value : replacer.call(this, key, value)
|
|
6905
|
+
}
|
|
6906
|
+
}
|
|
6907
|
+
|
|
6908
|
+
|
|
6832
6909
|
/***/ }),
|
|
6833
6910
|
|
|
6834
6911
|
/***/ "./node_modules/luxon/build/node/luxon.js":
|
|
@@ -11192,7 +11269,7 @@ function dayDiff(earlier, later) {
|
|
|
11192
11269
|
}
|
|
11193
11270
|
|
|
11194
11271
|
function highOrderDiffs(cursor, later, units) {
|
|
11195
|
-
const differs = [["years", (a, b) => b.year - a.year], ["quarters", (a, b) => b.quarter - a.quarter], ["months", (a, b) => b.month - a.month + (b.year - a.year) * 12], ["weeks", (a, b) => {
|
|
11272
|
+
const differs = [["years", (a, b) => b.year - a.year], ["quarters", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4], ["months", (a, b) => b.month - a.month + (b.year - a.year) * 12], ["weeks", (a, b) => {
|
|
11196
11273
|
const days = dayDiff(a, b);
|
|
11197
11274
|
return (days - days % 7) / 7;
|
|
11198
11275
|
}], ["days", dayDiff]];
|
|
@@ -14381,7 +14458,7 @@ function friendlyDateTime(dateTimeish) {
|
|
|
14381
14458
|
}
|
|
14382
14459
|
}
|
|
14383
14460
|
|
|
14384
|
-
const VERSION = "3.0.
|
|
14461
|
+
const VERSION = "3.0.4";
|
|
14385
14462
|
|
|
14386
14463
|
exports.DateTime = DateTime;
|
|
14387
14464
|
exports.Duration = Duration;
|