@nmshd/consumption 2.0.0-beta.2 → 2.0.0-beta.5
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/ConsumptionErrors.d.ts +11 -0
- package/dist/consumption/ConsumptionErrors.js +28 -1
- package/dist/consumption/ConsumptionErrors.js.map +1 -1
- package/dist/modules/requests/incoming/DecideRequestParametersValidator.d.ts +0 -1
- package/dist/modules/requests/incoming/DecideRequestParametersValidator.js +10 -13
- package/dist/modules/requests/incoming/DecideRequestParametersValidator.js.map +1 -1
- package/dist/modules/requests/incoming/IncomingRequestsController.js +14 -14
- package/dist/modules/requests/incoming/IncomingRequestsController.js.map +1 -1
- package/dist/modules/requests/incoming/complete/CompleteIncomingRequestParameters.d.ts +2 -2
- package/dist/modules/requests/incoming/complete/CompleteIncomingRequestParameters.js +1 -1
- package/dist/modules/requests/incoming/complete/CompleteIncomingRequestParameters.js.map +1 -1
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.d.ts +1 -2
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js +7 -18
- package/dist/modules/requests/itemProcessors/createAttribute/CreateAttributeRequestItemProcessor.js.map +1 -1
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js +2 -2
- package/dist/modules/requests/itemProcessors/proposeAttribute/ProposeAttributeRequestItemProcessor.js.map +1 -1
- package/lib-web/nmshd.consumption.js +101 -62
- package/lib-web/nmshd.consumption.js.map +1 -1
- package/lib-web/nmshd.consumption.min.js +1 -1
- package/lib-web/nmshd.consumption.min.js.map +1 -1
- package/package.json +8 -8
|
@@ -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-
|
|
23
|
-
commit: "
|
|
20
|
+
version: "2.0.0-beta.5",
|
|
21
|
+
build: "55",
|
|
22
|
+
date: "2022-08-02T14:10:27+00:00",
|
|
23
|
+
commit: "a910348a6c8c7ba541017cbc90d2fba2add16b68",
|
|
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,
|
|
@@ -168,6 +168,7 @@ var ConsumptionControllerName;
|
|
|
168
168
|
|
|
169
169
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
170
170
|
exports.ConsumptionErrors = void 0;
|
|
171
|
+
const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
|
|
171
172
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
172
173
|
class Attributes {
|
|
173
174
|
attributeExists(id) {
|
|
@@ -178,16 +179,42 @@ class Attributes {
|
|
|
178
179
|
}
|
|
179
180
|
}
|
|
180
181
|
class Requests {
|
|
182
|
+
constructor() {
|
|
183
|
+
this.decideValidation = new Requests._decideValidation();
|
|
184
|
+
}
|
|
181
185
|
requestExists(id) {
|
|
182
186
|
return new transport_1.CoreError("error.consumption.requests.requestExists", `Request with id ${id} already exists and can't be created.`);
|
|
183
187
|
}
|
|
184
188
|
unexpectedErrorDuringRequestItemProcessing(error) {
|
|
185
|
-
return new transport_1.CoreError("error.consumption.requests.unexpectedErrorDuringRequestItemProcessing", error instanceof Error ? error.message : "Unknown error: '${JSON.stringify(e)'");
|
|
189
|
+
return new transport_1.CoreError("error.consumption.requests.unexpectedErrorDuringRequestItemProcessing", error instanceof Error ? error.message : "Unknown error: '${JSON.stringify(e)'", undefined, undefined, error);
|
|
190
|
+
}
|
|
191
|
+
servalErrorDuringRequestItemProcessing(error) {
|
|
192
|
+
return new transport_1.CoreError("error.consumption.requests.servalErrorDuringRequestItemProcessing", error instanceof Error ? error.message : "Serval error: '${JSON.stringify(e)'", undefined, undefined, error);
|
|
186
193
|
}
|
|
187
194
|
invalidRequestItem(message) {
|
|
188
195
|
return new transport_1.CoreError("error.consumption.requests.invalidRequestItem", message);
|
|
189
196
|
}
|
|
190
197
|
}
|
|
198
|
+
Requests._decideValidation = class {
|
|
199
|
+
invalidRequestId() {
|
|
200
|
+
return new ts_utils_1.ApplicationError("error.requests.decide.validation.invalidRequestId", "The id of the Request does not match the id of the Response");
|
|
201
|
+
}
|
|
202
|
+
invalidNumberOfItems(message) {
|
|
203
|
+
return new ts_utils_1.ApplicationError("error.requests.decide.validation.invalidNumberOfItems", message);
|
|
204
|
+
}
|
|
205
|
+
itemAcceptedButParentNotAccepted(message) {
|
|
206
|
+
return new ts_utils_1.ApplicationError("error.requests.decide.validation.itemAcceptedButParentNotAccepted", message);
|
|
207
|
+
}
|
|
208
|
+
mustBeAcceptedItemNotAccepted(message) {
|
|
209
|
+
return new ts_utils_1.ApplicationError("error.requests.decide.validation.mustBeAcceptedItemNotAccepted", message);
|
|
210
|
+
}
|
|
211
|
+
requestItemAnsweredAsRequestItemGroup() {
|
|
212
|
+
return new ts_utils_1.ApplicationError("error.requests.decide.validation.requestItemAnsweredAsRequestItemGroup", "The RequestItem was answered as a RequestItemGroup.");
|
|
213
|
+
}
|
|
214
|
+
requestItemGroupAnsweredAsRequestItem() {
|
|
215
|
+
return new ts_utils_1.ApplicationError("error.requests.decide.validation.requestItemGroupAnsweredAsRequestItem", "The RequestItemGroup was answered as a RequestItem.");
|
|
216
|
+
}
|
|
217
|
+
};
|
|
191
218
|
class RelationshipInfo {
|
|
192
219
|
relationshipInfoExists(relationshipId) {
|
|
193
220
|
return new transport_1.CoreError("error.consumption.relationshipInfos.relationshipInfoExists", `RelationshipInfo for Relationship ${relationshipId} already exists.`);
|
|
@@ -1498,19 +1525,19 @@ __exportStar(__webpack_require__(/*! ./OutgoingRequestStatusChangedEvent */ "./d
|
|
|
1498
1525
|
|
|
1499
1526
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1500
1527
|
exports.DecideRequestParametersValidator = void 0;
|
|
1501
|
-
const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
|
|
1502
1528
|
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
1503
1529
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
1530
|
+
const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
|
|
1504
1531
|
const ValidationResult_1 = __webpack_require__(/*! ../itemProcessors/ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
|
|
1505
1532
|
const DecideRequestItemGroupParameters_1 = __webpack_require__(/*! ./decide/DecideRequestItemGroupParameters */ "./dist/modules/requests/incoming/decide/DecideRequestItemGroupParameters.js");
|
|
1506
1533
|
const DecideRequestItemParameters_1 = __webpack_require__(/*! ./decide/DecideRequestItemParameters */ "./dist/modules/requests/incoming/decide/DecideRequestItemParameters.js");
|
|
1507
1534
|
class DecideRequestParametersValidator {
|
|
1508
1535
|
validate(params, request) {
|
|
1509
1536
|
if (!request.id.equals(transport_1.CoreId.from(params.requestId))) {
|
|
1510
|
-
return ValidationResult_1.ValidationResult.error(
|
|
1537
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.decideValidation.invalidRequestId());
|
|
1511
1538
|
}
|
|
1512
1539
|
if (params.items.length !== request.content.items.length) {
|
|
1513
|
-
return ValidationResult_1.ValidationResult.error(
|
|
1540
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.decideValidation.invalidNumberOfItems("Number of items in Request and Response do not match"));
|
|
1514
1541
|
}
|
|
1515
1542
|
const validationResults = request.content.items.map((requestItem, index) => this.checkItemOrGroup(requestItem, params.items[index], params.accept));
|
|
1516
1543
|
return ValidationResult_1.ValidationResult.fromItems(validationResults);
|
|
@@ -1523,36 +1550,33 @@ class DecideRequestParametersValidator {
|
|
|
1523
1550
|
}
|
|
1524
1551
|
checkItem(requestItem, response, isParentAccepted) {
|
|
1525
1552
|
if ((0, DecideRequestItemGroupParameters_1.isDecideRequestItemGroupParametersJSON)(response)) {
|
|
1526
|
-
return ValidationResult_1.ValidationResult.error(
|
|
1553
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.decideValidation.requestItemAnsweredAsRequestItemGroup());
|
|
1527
1554
|
}
|
|
1528
1555
|
if (!isParentAccepted && response.accept) {
|
|
1529
|
-
return ValidationResult_1.ValidationResult.error(
|
|
1556
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.decideValidation.itemAcceptedButParentNotAccepted("The RequestItem was accepted, but the parent was not accepted."));
|
|
1530
1557
|
}
|
|
1531
1558
|
if (isParentAccepted && requestItem.mustBeAccepted && !response.accept) {
|
|
1532
|
-
return ValidationResult_1.ValidationResult.error(
|
|
1559
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.decideValidation.mustBeAcceptedItemNotAccepted("The RequestItem is flagged as 'mustBeAccepted', but it was not accepted."));
|
|
1533
1560
|
}
|
|
1534
1561
|
return ValidationResult_1.ValidationResult.success();
|
|
1535
1562
|
}
|
|
1536
1563
|
checkItemGroup(requestItemGroup, responseItemGroup, isParentAccepted) {
|
|
1537
1564
|
if ((0, DecideRequestItemParameters_1.isDecideRequestItemParametersJSON)(responseItemGroup)) {
|
|
1538
|
-
return ValidationResult_1.ValidationResult.error(
|
|
1565
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.decideValidation.requestItemGroupAnsweredAsRequestItem());
|
|
1539
1566
|
}
|
|
1540
1567
|
if (responseItemGroup.items.length !== requestItemGroup.items.length) {
|
|
1541
|
-
return ValidationResult_1.ValidationResult.error(
|
|
1568
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.decideValidation.invalidNumberOfItems("Number of items in RequestItemGroup and ResponseItemGroup do not match"));
|
|
1542
1569
|
}
|
|
1543
1570
|
const isGroupAccepted = responseItemGroup.items.some((value) => value.accept);
|
|
1544
1571
|
if (!isParentAccepted && isGroupAccepted) {
|
|
1545
|
-
return ValidationResult_1.ValidationResult.error(
|
|
1572
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.decideValidation.itemAcceptedButParentNotAccepted("The RequestItemGroup was accepted, but the parent was not accepted."));
|
|
1546
1573
|
}
|
|
1547
1574
|
if (isParentAccepted && requestItemGroup.mustBeAccepted && !isGroupAccepted) {
|
|
1548
|
-
return ValidationResult_1.ValidationResult.error(
|
|
1575
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.decideValidation.mustBeAcceptedItemNotAccepted("The RequestItemGroup is flagged as 'mustBeAccepted', but it was not accepted. Please accept all 'mustBeAccepted' items in this group."));
|
|
1549
1576
|
}
|
|
1550
1577
|
const validationResults = requestItemGroup.items.map((requestItem, index) => this.checkItem(requestItem, responseItemGroup.items[index], isGroupAccepted));
|
|
1551
1578
|
return ValidationResult_1.ValidationResult.fromItems(validationResults);
|
|
1552
1579
|
}
|
|
1553
|
-
invalidNumberOfItemsError(message) {
|
|
1554
|
-
return new ts_utils_1.ApplicationError("error.requests.decide.validation.invalidNumberOfItems", message);
|
|
1555
|
-
}
|
|
1556
1580
|
}
|
|
1557
1581
|
exports.DecideRequestParametersValidator = DecideRequestParametersValidator;
|
|
1558
1582
|
//# sourceMappingURL=DecideRequestParametersValidator.js.map
|
|
@@ -1569,6 +1593,7 @@ exports.DecideRequestParametersValidator = DecideRequestParametersValidator;
|
|
|
1569
1593
|
|
|
1570
1594
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1571
1595
|
exports.IncomingRequestsController = void 0;
|
|
1596
|
+
const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
|
|
1572
1597
|
const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
1573
1598
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
1574
1599
|
const consumption_1 = __webpack_require__(/*! ../../../consumption */ "./dist/consumption/index.js");
|
|
@@ -1721,12 +1746,14 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
1721
1746
|
async canDecideItem(params, requestItem, request) {
|
|
1722
1747
|
const processor = this.processorRegistry.getProcessorForItem(requestItem);
|
|
1723
1748
|
try {
|
|
1724
|
-
if (params.accept)
|
|
1749
|
+
if (params.accept)
|
|
1725
1750
|
return await processor.canAccept(requestItem, params, request);
|
|
1726
|
-
}
|
|
1727
1751
|
return await processor.canReject(requestItem, params, request);
|
|
1728
1752
|
}
|
|
1729
1753
|
catch (e) {
|
|
1754
|
+
if (e instanceof ts_serval_1.ServalError) {
|
|
1755
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.servalErrorDuringRequestItemProcessing(e));
|
|
1756
|
+
}
|
|
1730
1757
|
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.unexpectedErrorDuringRequestItemProcessing(e));
|
|
1731
1758
|
}
|
|
1732
1759
|
}
|
|
@@ -1815,20 +1842,17 @@ class IncomingRequestsController extends consumption_1.ConsumptionBaseController
|
|
|
1815
1842
|
throw new Error("Cannot decide own Request");
|
|
1816
1843
|
}
|
|
1817
1844
|
this.assertRequestStatus(request, LocalRequestStatus_1.LocalRequestStatus.Decided);
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1845
|
+
const requestIsRejected = request.response.content.result === content_1.ResponseResult.Rejected;
|
|
1846
|
+
const requestIsFromTemplate = request.source.type === "RelationshipTemplate";
|
|
1847
|
+
if (parsedParams.responseSourceObject) {
|
|
1848
|
+
request.response.source = LocalResponse_1.LocalResponseSource.from({
|
|
1849
|
+
type: parsedParams.responseSourceObject instanceof transport_1.Message ? "Message" : "RelationshipChange",
|
|
1850
|
+
reference: parsedParams.responseSourceObject.id
|
|
1851
|
+
});
|
|
1821
1852
|
}
|
|
1822
|
-
else if (
|
|
1823
|
-
responseSource
|
|
1853
|
+
else if (!requestIsRejected || !requestIsFromTemplate) {
|
|
1854
|
+
throw new Error("A Request can only be completed without a responseSource if the Request is rejected and the Request is from a Relationship Template");
|
|
1824
1855
|
}
|
|
1825
|
-
else {
|
|
1826
|
-
throw new Error("Unknown response source");
|
|
1827
|
-
}
|
|
1828
|
-
request.response.source = LocalResponse_1.LocalResponseSource.from({
|
|
1829
|
-
type: responseSource,
|
|
1830
|
-
reference: parsedParams.responseSourceObject.id
|
|
1831
|
-
});
|
|
1832
1856
|
request.changeStatus(LocalRequestStatus_1.LocalRequestStatus.Completed);
|
|
1833
1857
|
await this.update(request);
|
|
1834
1858
|
this.eventBus.publish(new events_1.IncomingRequestStatusChangedEvent(this.identity.address.toString(), {
|
|
@@ -1947,7 +1971,7 @@ __decorate([
|
|
|
1947
1971
|
], CompleteIncomingRequestParameters.prototype, "requestId", void 0);
|
|
1948
1972
|
__decorate([
|
|
1949
1973
|
(0, ts_serval_1.serialize)({ unionTypes: [transport_1.Message, transport_1.RelationshipChange] }),
|
|
1950
|
-
(0, ts_serval_1.validate)(),
|
|
1974
|
+
(0, ts_serval_1.validate)({ nullable: true }),
|
|
1951
1975
|
__metadata("design:type", Object)
|
|
1952
1976
|
], CompleteIncomingRequestParameters.prototype, "responseSourceObject", void 0);
|
|
1953
1977
|
exports.CompleteIncomingRequestParameters = CompleteIncomingRequestParameters;
|
|
@@ -2399,30 +2423,19 @@ const consumption_1 = __webpack_require__(/*! ../../../../consumption */ "./dist
|
|
|
2399
2423
|
const GenericRequestItemProcessor_1 = __webpack_require__(/*! ../GenericRequestItemProcessor */ "./dist/modules/requests/itemProcessors/GenericRequestItemProcessor.js");
|
|
2400
2424
|
const ValidationResult_1 = __webpack_require__(/*! ../ValidationResult */ "./dist/modules/requests/itemProcessors/ValidationResult.js");
|
|
2401
2425
|
class CreateAttributeRequestItemProcessor extends GenericRequestItemProcessor_1.GenericRequestItemProcessor {
|
|
2402
|
-
canCreateOutgoingRequestItem(requestItem, _request,
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
// RequestItem was accepted.
|
|
2407
|
-
if (!recipientIsOwnerOfTheAttribute && !requestItem.sourceAttributeId) {
|
|
2408
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("'sourceAttributeId' cannot be undefined when sending an attribute that is not owned by the recipient."));
|
|
2426
|
+
canCreateOutgoingRequestItem(requestItem, _request, _recipient) {
|
|
2427
|
+
if (requestItem.attribute.owner.toString() !== "" &&
|
|
2428
|
+
!requestItem.attribute.owner.equals(this.currentIdentityAddress)) {
|
|
2429
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The owner of the given `attribute` can only be an empty string. This is because you can only send Attributes where the recipient of the Request is the owner anyway. And in order to avoid mistakes, the owner will be automatically filled for you."));
|
|
2409
2430
|
}
|
|
2410
2431
|
if (requestItem.attribute instanceof content_1.IdentityAttribute) {
|
|
2411
2432
|
return this.canCreateRequestItemWithIdentityAttribute(requestItem);
|
|
2412
2433
|
}
|
|
2413
|
-
return this.canCreateRequestItemWithRelationshipAttribute(requestItem);
|
|
2414
|
-
}
|
|
2415
|
-
canCreateRequestItemWithIdentityAttribute(requestItem) {
|
|
2416
|
-
const iAmOwnerOfTheAttribute = this.accountController.identity.isMe(requestItem.attribute.owner);
|
|
2417
|
-
if (!iAmOwnerOfTheAttribute) {
|
|
2418
|
-
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.`));
|
|
2419
|
-
}
|
|
2420
2434
|
return ValidationResult_1.ValidationResult.success();
|
|
2421
2435
|
}
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("Cannot send Relationship Attributes of which you are not the owner."));
|
|
2436
|
+
canCreateRequestItemWithIdentityAttribute(requestItem) {
|
|
2437
|
+
if (!requestItem.sourceAttributeId) {
|
|
2438
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("'sourceAttributeId' cannot be undefined when sending an Identity Attribute."));
|
|
2426
2439
|
}
|
|
2427
2440
|
return ValidationResult_1.ValidationResult.success();
|
|
2428
2441
|
}
|
|
@@ -2557,7 +2570,7 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
|
|
|
2557
2570
|
}
|
|
2558
2571
|
validateAttribute(attribute) {
|
|
2559
2572
|
if (attribute.owner.toString() !== "") {
|
|
2560
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The owner of the given attribute can only be an empty string. This is because you can only 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."));
|
|
2573
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.requests.invalidRequestItem("The owner of the given `attribute` can only be an empty string. This is because you can only 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."));
|
|
2561
2574
|
}
|
|
2562
2575
|
return ValidationResult_1.ValidationResult.success();
|
|
2563
2576
|
}
|
|
@@ -2567,7 +2580,7 @@ class ProposeAttributeRequestItemProcessor extends GenericRequestItemProcessor_1
|
|
|
2567
2580
|
return commonQueryValidationResult;
|
|
2568
2581
|
}
|
|
2569
2582
|
if (requestItem.query instanceof content_1.RelationshipAttributeQuery && requestItem.query.owner.toString() !== "") {
|
|
2570
|
-
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.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."));
|
|
2583
|
+
return ValidationResult_1.ValidationResult.error(consumption_1.ConsumptionErrors.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."));
|
|
2571
2584
|
}
|
|
2572
2585
|
return ValidationResult_1.ValidationResult.success();
|
|
2573
2586
|
}
|
|
@@ -4184,12 +4197,19 @@ __webpack_require__(/*! reflect-metadata */ "./node_modules/reflect-metadata/Ref
|
|
|
4184
4197
|
const EventBus_1 = __webpack_require__(/*! ../EventBus */ "./node_modules/@js-soft/ts-utils/dist/eventBus/EventBus.js");
|
|
4185
4198
|
const SubscriptionTargetInfo_1 = __webpack_require__(/*! ../SubscriptionTargetInfo */ "./node_modules/@js-soft/ts-utils/dist/eventBus/SubscriptionTargetInfo.js");
|
|
4186
4199
|
class EventEmitter2EventBus {
|
|
4200
|
+
errorCallback;
|
|
4187
4201
|
emitter;
|
|
4188
4202
|
listeners = new Map();
|
|
4189
4203
|
nextId = 0;
|
|
4190
4204
|
invocationPromises = [];
|
|
4191
|
-
constructor(
|
|
4192
|
-
this.
|
|
4205
|
+
constructor(errorCallback, eventEmitter2Options) {
|
|
4206
|
+
this.errorCallback = errorCallback;
|
|
4207
|
+
this.emitter = new eventemitter2_1.EventEmitter2({
|
|
4208
|
+
maxListeners: 50,
|
|
4209
|
+
verboseMemoryLeak: true,
|
|
4210
|
+
...eventEmitter2Options,
|
|
4211
|
+
wildcard: true
|
|
4212
|
+
});
|
|
4193
4213
|
}
|
|
4194
4214
|
subscribe(subscriptionTarget, handler) {
|
|
4195
4215
|
return this.registerHandler(subscriptionTarget, handler);
|
|
@@ -4209,7 +4229,7 @@ class EventEmitter2EventBus {
|
|
|
4209
4229
|
}
|
|
4210
4230
|
const invocationPromise = (async () => await handler(event))();
|
|
4211
4231
|
this.invocationPromises.push(invocationPromise);
|
|
4212
|
-
await invocationPromise;
|
|
4232
|
+
await invocationPromise.catch((e) => this.errorCallback(e, subscriptionTargetInfo.namespace));
|
|
4213
4233
|
this.invocationPromises = this.invocationPromises.filter((p) => p !== invocationPromise);
|
|
4214
4234
|
if (isOneTimeHandler)
|
|
4215
4235
|
this.listeners.delete(listenerId);
|
|
@@ -4273,7 +4293,11 @@ exports.EventEmitter2EventBus = EventEmitter2EventBus;
|
|
|
4273
4293
|
|
|
4274
4294
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4275
4295
|
if (k2 === undefined) k2 = k;
|
|
4276
|
-
Object.
|
|
4296
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
4297
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
4298
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
4299
|
+
}
|
|
4300
|
+
Object.defineProperty(o, k2, desc);
|
|
4277
4301
|
}) : (function(o, m, k, k2) {
|
|
4278
4302
|
if (k2 === undefined) k2 = k;
|
|
4279
4303
|
o[k2] = m[k];
|
|
@@ -4342,7 +4366,11 @@ exports.Event = Event;
|
|
|
4342
4366
|
|
|
4343
4367
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4344
4368
|
if (k2 === undefined) k2 = k;
|
|
4345
|
-
Object.
|
|
4369
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
4370
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
4371
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
4372
|
+
}
|
|
4373
|
+
Object.defineProperty(o, k2, desc);
|
|
4346
4374
|
}) : (function(o, m, k, k2) {
|
|
4347
4375
|
if (k2 === undefined) k2 = k;
|
|
4348
4376
|
o[k2] = m[k];
|
|
@@ -4367,7 +4395,11 @@ __exportStar(__webpack_require__(/*! ./Event */ "./node_modules/@js-soft/ts-util
|
|
|
4367
4395
|
|
|
4368
4396
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4369
4397
|
if (k2 === undefined) k2 = k;
|
|
4370
|
-
Object.
|
|
4398
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
4399
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
4400
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
4401
|
+
}
|
|
4402
|
+
Object.defineProperty(o, k2, desc);
|
|
4371
4403
|
}) : (function(o, m, k, k2) {
|
|
4372
4404
|
if (k2 === undefined) k2 = k;
|
|
4373
4405
|
o[k2] = m[k];
|
|
@@ -4492,6 +4524,9 @@ class ApplicationError extends Error {
|
|
|
4492
4524
|
equals(error) {
|
|
4493
4525
|
return this.code === error.code;
|
|
4494
4526
|
}
|
|
4527
|
+
toString() {
|
|
4528
|
+
return JSON.stringify(this, undefined, 2);
|
|
4529
|
+
}
|
|
4495
4530
|
}
|
|
4496
4531
|
exports.ApplicationError = ApplicationError;
|
|
4497
4532
|
//# sourceMappingURL=ApplicationError.js.map
|
|
@@ -4537,7 +4572,7 @@ class Result {
|
|
|
4537
4572
|
}
|
|
4538
4573
|
get value() {
|
|
4539
4574
|
if (!this.isSuccess) {
|
|
4540
|
-
throw new Error(
|
|
4575
|
+
throw new Error(`Can't get the value of an error result. Use 'error' instead. Root error: \r\n${this.error}`);
|
|
4541
4576
|
}
|
|
4542
4577
|
return this._value;
|
|
4543
4578
|
}
|
|
@@ -4563,7 +4598,11 @@ exports.Result = Result;
|
|
|
4563
4598
|
|
|
4564
4599
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4565
4600
|
if (k2 === undefined) k2 = k;
|
|
4566
|
-
Object.
|
|
4601
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
4602
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
4603
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
4604
|
+
}
|
|
4605
|
+
Object.defineProperty(o, k2, desc);
|
|
4567
4606
|
}) : (function(o, m, k, k2) {
|
|
4568
4607
|
if (k2 === undefined) k2 = k;
|
|
4569
4608
|
o[k2] = m[k];
|
|
@@ -4705,7 +4744,7 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/*!
|
|
|
4705
4744
|
var obj = {};
|
|
4706
4745
|
var key;
|
|
4707
4746
|
var len = keys.length;
|
|
4708
|
-
var valuesCount = values ?
|
|
4747
|
+
var valuesCount = values ? values.length : 0;
|
|
4709
4748
|
for (var i = 0; i < len; i++) {
|
|
4710
4749
|
key = keys[i];
|
|
4711
4750
|
obj[key] = i < valuesCount ? values[i] : undefined;
|