@nmshd/runtime 2.0.0-alpha.17 → 2.0.0-alpha.18
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/modules/RequestModule.d.ts +2 -0
- package/dist/modules/RequestModule.js +47 -4
- package/dist/modules/RequestModule.js.map +1 -1
- package/dist/useCases/consumption/requests/SentOutgoingRequest.js +1 -1
- package/dist/useCases/consumption/requests/SentOutgoingRequest.js.map +1 -1
- package/lib-web/nmshd.runtime.js +52 -9
- package/lib-web/nmshd.runtime.js.map +1 -1
- package/lib-web/nmshd.runtime.min.js +1 -1
- package/lib-web/nmshd.runtime.min.js.map +1 -1
- package/package.json +1 -1
package/dist/buildInformation.js
CHANGED
|
@@ -7,10 +7,10 @@ const content_1 = require("@nmshd/content");
|
|
|
7
7
|
const crypto_1 = require("@nmshd/crypto");
|
|
8
8
|
const transport_1 = require("@nmshd/transport");
|
|
9
9
|
exports.buildInformation = {
|
|
10
|
-
version: "2.0.0-alpha.
|
|
11
|
-
build: "
|
|
12
|
-
date: "2022-06-
|
|
13
|
-
commit: "
|
|
10
|
+
version: "2.0.0-alpha.18",
|
|
11
|
+
build: "65",
|
|
12
|
+
date: "2022-06-14T12:59:35+00:00",
|
|
13
|
+
commit: "30cb7c19cb7d6bc5c3384c20ebdf8656050bcf94",
|
|
14
14
|
dependencies: {"@js-soft/docdb-querytranslator":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"2.0.3","@js-soft/ts-utils":"^1.1.2","@nmshd/consumption":"2.0.0-alpha.20","@nmshd/content":"2.0.0-alpha.35","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-alpha.2","ajv":"^8.11.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","fluent-ts-validator":"3.0.3","json-stringify-safe":"^5.0.1","luxon":"^2.4.0","qrcode":"1.5.0","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
|
|
15
15
|
libraries: {
|
|
16
16
|
serval: ts_serval_1.buildInformation,
|
|
@@ -4,9 +4,11 @@ export declare class RequestModule extends RuntimeModule {
|
|
|
4
4
|
start(): void | Promise<void>;
|
|
5
5
|
private handlePeerRelationshipTemplateLoaded;
|
|
6
6
|
private handleMessageReceivedEvent;
|
|
7
|
+
private handleMessageSentEvent;
|
|
7
8
|
private createIncomingRequest;
|
|
8
9
|
private handleIncomingRequestStatusChanged;
|
|
9
10
|
private handleIncomingRequestDecidedForRelationship;
|
|
11
|
+
private handleIncomingRequestDecidedForMessage;
|
|
10
12
|
private handleRelationshipChangedEvent;
|
|
11
13
|
stop(): void | Promise<void>;
|
|
12
14
|
}
|
|
@@ -13,6 +13,7 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
|
|
|
13
13
|
start() {
|
|
14
14
|
this.subscribeToEvent(events_1.PeerRelationshipTemplateLoadedEvent, this.handlePeerRelationshipTemplateLoaded.bind(this));
|
|
15
15
|
this.subscribeToEvent(events_1.MessageReceivedEvent, this.handleMessageReceivedEvent.bind(this));
|
|
16
|
+
this.subscribeToEvent(events_1.MessageSentEvent, this.handleMessageSentEvent.bind(this));
|
|
16
17
|
this.subscribeToEvent(events_1.IncomingRequestStatusChangedEvent, this.handleIncomingRequestStatusChanged.bind(this));
|
|
17
18
|
this.subscribeToEvent(events_1.RelationshipChangedEvent, this.handleRelationshipChangedEvent.bind(this));
|
|
18
19
|
}
|
|
@@ -25,12 +26,29 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
|
|
|
25
26
|
await this.createIncomingRequest(services, request, event.data.id);
|
|
26
27
|
}
|
|
27
28
|
async handleMessageReceivedEvent(event) {
|
|
28
|
-
|
|
29
|
+
const services = this.runtime.getServices(event.eventTargetAddress);
|
|
30
|
+
const messageContentType = event.data.content["@type"];
|
|
31
|
+
switch (messageContentType) {
|
|
32
|
+
case "Request":
|
|
33
|
+
await this.createIncomingRequest(services, event.data.content, event.data.id);
|
|
34
|
+
break;
|
|
35
|
+
case "Response":
|
|
36
|
+
const receivedResponse = event.data.content;
|
|
37
|
+
await services.consumptionServices.outgoingRequests.complete({ receivedResponse, messageId: event.data.id });
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async handleMessageSentEvent(event) {
|
|
42
|
+
const message = event.data;
|
|
43
|
+
if (message.content["@type"] !== "Request")
|
|
29
44
|
return;
|
|
30
|
-
// TODO: JSSNMSHDD-2896 (handle response)
|
|
31
|
-
const request = event.data.content;
|
|
32
45
|
const services = this.runtime.getServices(event.eventTargetAddress);
|
|
33
|
-
|
|
46
|
+
const request = message.content;
|
|
47
|
+
const requestResult = await services.consumptionServices.outgoingRequests.sent({ requestId: request.id, messageId: message.id });
|
|
48
|
+
if (requestResult.isError) {
|
|
49
|
+
this.logger.error(`Could not mark request '${request.id}' as sent using message '${message.id}'.`);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
34
52
|
}
|
|
35
53
|
async createIncomingRequest(services, request, requestSourceId) {
|
|
36
54
|
const receivedRequestResult = await services.consumptionServices.incomingRequests.received({ receivedRequest: request, requestSourceId });
|
|
@@ -51,6 +69,9 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
|
|
|
51
69
|
case "RelationshipTemplate":
|
|
52
70
|
await this.handleIncomingRequestDecidedForRelationship(event);
|
|
53
71
|
break;
|
|
72
|
+
case "Message":
|
|
73
|
+
await this.handleIncomingRequestDecidedForMessage(event);
|
|
74
|
+
break;
|
|
54
75
|
default:
|
|
55
76
|
throw new Error(`Cannot handle source.type '${event.data.request.source.type}'.`);
|
|
56
77
|
}
|
|
@@ -91,6 +112,28 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
|
|
|
91
112
|
return;
|
|
92
113
|
}
|
|
93
114
|
}
|
|
115
|
+
async handleIncomingRequestDecidedForMessage(event) {
|
|
116
|
+
const request = event.data.request;
|
|
117
|
+
const requestId = request.id;
|
|
118
|
+
const services = this.runtime.getServices(event.eventTargetAddress);
|
|
119
|
+
const sendMessageResult = await services.transportServices.messages.sendMessage({
|
|
120
|
+
recipients: [request.peer],
|
|
121
|
+
content: request.response.content
|
|
122
|
+
});
|
|
123
|
+
if (sendMessageResult.isError) {
|
|
124
|
+
this.logger.error(`Could not send message to answer the request '${requestId}'.`);
|
|
125
|
+
// TODO: error state
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const completeRequestResult = await services.consumptionServices.incomingRequests.complete({
|
|
129
|
+
requestId,
|
|
130
|
+
responseSourceId: sendMessageResult.value.id
|
|
131
|
+
});
|
|
132
|
+
if (completeRequestResult.isError) {
|
|
133
|
+
this.logger.error(`Could not complete the request '${requestId}'.`);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
94
137
|
async handleRelationshipChangedEvent(event) {
|
|
95
138
|
// only trigger for new relationships that were created from an own template
|
|
96
139
|
if (event.data.status !== types_1.RelationshipStatus.Pending || !event.data.template.isOwn)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestModule.js","sourceRoot":"","sources":["../../src/modules/RequestModule.ts"],"names":[],"mappings":";;;AAAA,oDAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"RequestModule.js","sourceRoot":"","sources":["../../src/modules/RequestModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ let SentOutgoingRequestUseCase = class SentOutgoingRequestUseCase extends common
|
|
|
40
40
|
const dto = RequestMapper_1.RequestMapper.toConsumptionRequestDTO(consumptionRequest);
|
|
41
41
|
this.eventBus.publish(new events_1.OutgoingRequestStatusChangedEvent(this.outgoingRequestsController.parent.accountController.identity.address.address, {
|
|
42
42
|
request: dto,
|
|
43
|
-
oldStatus: consumption_1.ConsumptionRequestStatus.
|
|
43
|
+
oldStatus: consumption_1.ConsumptionRequestStatus.Draft,
|
|
44
44
|
newStatus: dto.status
|
|
45
45
|
}));
|
|
46
46
|
return ts_utils_1.Result.ok(dto);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentOutgoingRequest.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/requests/SentOutgoingRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAuE;AACvE,oDAA0H;AAC1H,gDAAsE;AACtE,mDAAwC;AACxC,4CAAoE;AAEpE,yCAAsD;AACtD,mDAAgD;AAchD,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,gBAA0D;IACtG,YAC6B,0BAAsD,EACtD,iBAAoC,EACpC,QAAkB;QAE3C,KAAK,EAAE,CAAC;QAJiB,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,aAAQ,GAAR,QAAQ,CAAU;IAG/C,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAAmC;QAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAO,CAAC,CAAC,CAAC;SACrE;QAED,MAAM,MAAM,GAAmC;YAC3C,SAAS,EAAE,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACzC,mBAAmB,EAAE,OAAO;SAC/B,CAAC;QAEF,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9E,MAAM,GAAG,GAAG,6BAAa,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;QAEtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CACjB,IAAI,0CAAiC,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;YACrH,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,sCAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"SentOutgoingRequest.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/requests/SentOutgoingRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAuE;AACvE,oDAA0H;AAC1H,gDAAsE;AACtE,mDAAwC;AACxC,4CAAoE;AAEpE,yCAAsD;AACtD,mDAAgD;AAchD,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,gBAA0D;IACtG,YAC6B,0BAAsD,EACtD,iBAAoC,EACpC,QAAkB;QAE3C,KAAK,EAAE,CAAC;QAJiB,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,aAAQ,GAAR,QAAQ,CAAU;IAG/C,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAAmC;QAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAO,CAAC,CAAC,CAAC;SACrE;QAED,MAAM,MAAM,GAAmC;YAC3C,SAAS,EAAE,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACzC,mBAAmB,EAAE,OAAO;SAC/B,CAAC;QAEF,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9E,MAAM,GAAG,GAAG,6BAAa,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;QAEtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CACjB,IAAI,0CAAiC,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;YACrH,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,sCAAwB,CAAC,KAAK;YACzC,SAAS,EAAE,GAAG,CAAC,MAAM;SACxB,CAAC,CACL,CAAC;QAEF,OAAO,iBAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CACJ,CAAA;AAnCY,0BAA0B;IAE9B,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;qCAF8C,wCAA0B;QACnC,6BAAiB;QAC1B,mBAAQ;GAJtC,0BAA0B,CAmCtC;AAnCY,gEAA0B"}
|
package/lib-web/nmshd.runtime.js
CHANGED
|
@@ -435,10 +435,10 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
|
|
|
435
435
|
const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
|
|
436
436
|
const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
|
|
437
437
|
exports.buildInformation = {
|
|
438
|
-
version: "2.0.0-alpha.
|
|
439
|
-
build: "
|
|
440
|
-
date: "2022-06-
|
|
441
|
-
commit: "
|
|
438
|
+
version: "2.0.0-alpha.18",
|
|
439
|
+
build: "65",
|
|
440
|
+
date: "2022-06-14T12:59:35+00:00",
|
|
441
|
+
commit: "30cb7c19cb7d6bc5c3384c20ebdf8656050bcf94",
|
|
442
442
|
dependencies: {"@js-soft/docdb-querytranslator":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"2.0.3","@js-soft/ts-utils":"^1.1.2","@nmshd/consumption":"2.0.0-alpha.20","@nmshd/content":"2.0.0-alpha.35","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-alpha.2","ajv":"^8.11.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","fluent-ts-validator":"3.0.3","json-stringify-safe":"^5.0.1","luxon":"^2.4.0","qrcode":"1.5.0","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
|
|
443
443
|
libraries: {
|
|
444
444
|
serval: ts_serval_1.buildInformation,
|
|
@@ -3557,6 +3557,7 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
|
|
|
3557
3557
|
start() {
|
|
3558
3558
|
this.subscribeToEvent(events_1.PeerRelationshipTemplateLoadedEvent, this.handlePeerRelationshipTemplateLoaded.bind(this));
|
|
3559
3559
|
this.subscribeToEvent(events_1.MessageReceivedEvent, this.handleMessageReceivedEvent.bind(this));
|
|
3560
|
+
this.subscribeToEvent(events_1.MessageSentEvent, this.handleMessageSentEvent.bind(this));
|
|
3560
3561
|
this.subscribeToEvent(events_1.IncomingRequestStatusChangedEvent, this.handleIncomingRequestStatusChanged.bind(this));
|
|
3561
3562
|
this.subscribeToEvent(events_1.RelationshipChangedEvent, this.handleRelationshipChangedEvent.bind(this));
|
|
3562
3563
|
}
|
|
@@ -3569,12 +3570,29 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
|
|
|
3569
3570
|
await this.createIncomingRequest(services, request, event.data.id);
|
|
3570
3571
|
}
|
|
3571
3572
|
async handleMessageReceivedEvent(event) {
|
|
3572
|
-
|
|
3573
|
+
const services = this.runtime.getServices(event.eventTargetAddress);
|
|
3574
|
+
const messageContentType = event.data.content["@type"];
|
|
3575
|
+
switch (messageContentType) {
|
|
3576
|
+
case "Request":
|
|
3577
|
+
await this.createIncomingRequest(services, event.data.content, event.data.id);
|
|
3578
|
+
break;
|
|
3579
|
+
case "Response":
|
|
3580
|
+
const receivedResponse = event.data.content;
|
|
3581
|
+
await services.consumptionServices.outgoingRequests.complete({ receivedResponse, messageId: event.data.id });
|
|
3582
|
+
break;
|
|
3583
|
+
}
|
|
3584
|
+
}
|
|
3585
|
+
async handleMessageSentEvent(event) {
|
|
3586
|
+
const message = event.data;
|
|
3587
|
+
if (message.content["@type"] !== "Request")
|
|
3573
3588
|
return;
|
|
3574
|
-
// TODO: JSSNMSHDD-2896 (handle response)
|
|
3575
|
-
const request = event.data.content;
|
|
3576
3589
|
const services = this.runtime.getServices(event.eventTargetAddress);
|
|
3577
|
-
|
|
3590
|
+
const request = message.content;
|
|
3591
|
+
const requestResult = await services.consumptionServices.outgoingRequests.sent({ requestId: request.id, messageId: message.id });
|
|
3592
|
+
if (requestResult.isError) {
|
|
3593
|
+
this.logger.error(`Could not mark request '${request.id}' as sent using message '${message.id}'.`);
|
|
3594
|
+
return;
|
|
3595
|
+
}
|
|
3578
3596
|
}
|
|
3579
3597
|
async createIncomingRequest(services, request, requestSourceId) {
|
|
3580
3598
|
const receivedRequestResult = await services.consumptionServices.incomingRequests.received({ receivedRequest: request, requestSourceId });
|
|
@@ -3595,6 +3613,9 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
|
|
|
3595
3613
|
case "RelationshipTemplate":
|
|
3596
3614
|
await this.handleIncomingRequestDecidedForRelationship(event);
|
|
3597
3615
|
break;
|
|
3616
|
+
case "Message":
|
|
3617
|
+
await this.handleIncomingRequestDecidedForMessage(event);
|
|
3618
|
+
break;
|
|
3598
3619
|
default:
|
|
3599
3620
|
throw new Error(`Cannot handle source.type '${event.data.request.source.type}'.`);
|
|
3600
3621
|
}
|
|
@@ -3635,6 +3656,28 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
|
|
|
3635
3656
|
return;
|
|
3636
3657
|
}
|
|
3637
3658
|
}
|
|
3659
|
+
async handleIncomingRequestDecidedForMessage(event) {
|
|
3660
|
+
const request = event.data.request;
|
|
3661
|
+
const requestId = request.id;
|
|
3662
|
+
const services = this.runtime.getServices(event.eventTargetAddress);
|
|
3663
|
+
const sendMessageResult = await services.transportServices.messages.sendMessage({
|
|
3664
|
+
recipients: [request.peer],
|
|
3665
|
+
content: request.response.content
|
|
3666
|
+
});
|
|
3667
|
+
if (sendMessageResult.isError) {
|
|
3668
|
+
this.logger.error(`Could not send message to answer the request '${requestId}'.`);
|
|
3669
|
+
// TODO: error state
|
|
3670
|
+
return;
|
|
3671
|
+
}
|
|
3672
|
+
const completeRequestResult = await services.consumptionServices.incomingRequests.complete({
|
|
3673
|
+
requestId,
|
|
3674
|
+
responseSourceId: sendMessageResult.value.id
|
|
3675
|
+
});
|
|
3676
|
+
if (completeRequestResult.isError) {
|
|
3677
|
+
this.logger.error(`Could not complete the request '${requestId}'.`);
|
|
3678
|
+
return;
|
|
3679
|
+
}
|
|
3680
|
+
}
|
|
3638
3681
|
async handleRelationshipChangedEvent(event) {
|
|
3639
3682
|
// only trigger for new relationships that were created from an own template
|
|
3640
3683
|
if (event.data.status !== types_1.RelationshipStatus.Pending || !event.data.template.isOwn)
|
|
@@ -10874,7 +10917,7 @@ let SentOutgoingRequestUseCase = class SentOutgoingRequestUseCase extends common
|
|
|
10874
10917
|
const dto = RequestMapper_1.RequestMapper.toConsumptionRequestDTO(consumptionRequest);
|
|
10875
10918
|
this.eventBus.publish(new events_1.OutgoingRequestStatusChangedEvent(this.outgoingRequestsController.parent.accountController.identity.address.address, {
|
|
10876
10919
|
request: dto,
|
|
10877
|
-
oldStatus: consumption_1.ConsumptionRequestStatus.
|
|
10920
|
+
oldStatus: consumption_1.ConsumptionRequestStatus.Draft,
|
|
10878
10921
|
newStatus: dto.status
|
|
10879
10922
|
}));
|
|
10880
10923
|
return ts_utils_1.Result.ok(dto);
|