@nmshd/runtime 2.0.0-alpha.6 → 2.0.0-alpha.9

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/Runtime.d.ts CHANGED
@@ -46,6 +46,7 @@ export declare abstract class Runtime<TConfig extends RuntimeConfig = RuntimeCon
46
46
  private initTransportLibrary;
47
47
  private initDIContainer;
48
48
  private loadModules;
49
+ private loadBuiltinModule;
49
50
  protected abstract loadModule(moduleConfiguration: ModuleConfiguration): Promise<void>;
50
51
  private initModules;
51
52
  private _isStarted;
package/dist/Runtime.js CHANGED
@@ -160,7 +160,6 @@ class Runtime {
160
160
  this.logger.info("Loading modules...");
161
161
  for (const moduleName in this.runtimeConfig.modules) {
162
162
  const moduleConfiguration = this.runtimeConfig.modules[moduleName];
163
- moduleConfiguration.name = moduleName;
164
163
  if (!moduleConfiguration.enabled) {
165
164
  this.logger.debug(`Skip loading module '${this.getModuleName(moduleConfiguration)}' because it is not enabled.`);
166
165
  continue;
@@ -169,22 +168,34 @@ class Runtime {
169
168
  this.logger.error(`Skip loading module '${this.getModuleName(moduleConfiguration)}' because has no location.`);
170
169
  continue;
171
170
  }
172
- switch (moduleConfiguration.name.toLocaleLowerCase()) {
173
- case "decidermodule":
174
- const deciderModule = new modules_1.DeciderModule(this, moduleConfiguration, this.loggerFactory.getLogger(modules_1.DeciderModule));
175
- this.modules.add(deciderModule);
176
- break;
177
- case "messagemodule":
178
- const messageModule = new modules_1.MessageModule(this, moduleConfiguration, this.loggerFactory.getLogger(modules_1.MessageModule));
179
- this.modules.add(messageModule);
180
- break;
181
- default:
182
- await this.loadModule(moduleConfiguration);
183
- break;
171
+ // load the builtin '@nmshd/runtime' modules based on their specifier after the colon
172
+ if (moduleConfiguration.location.startsWith("@nmshd/runtime:")) {
173
+ this.loadBuiltinModule(moduleConfiguration);
174
+ continue;
184
175
  }
176
+ await this.loadModule(moduleConfiguration);
185
177
  }
186
178
  this.eventBus.publish(new events_1.ModulesLoadedEvent());
187
179
  }
180
+ loadBuiltinModule(moduleConfiguration) {
181
+ const moduleSpecifier = moduleConfiguration.location.split(":")[1];
182
+ switch (moduleSpecifier) {
183
+ case "DeciderModule":
184
+ const deciderModule = new modules_1.DeciderModule(this, moduleConfiguration, this.loggerFactory.getLogger(modules_1.DeciderModule));
185
+ this.modules.add(deciderModule);
186
+ break;
187
+ case "RequestModule":
188
+ const requestModule = new modules_1.RequestModule(this, moduleConfiguration, this.loggerFactory.getLogger(modules_1.RequestModule));
189
+ this.modules.add(requestModule);
190
+ break;
191
+ case "MessageModule":
192
+ const messageModule = new modules_1.MessageModule(this, moduleConfiguration, this.loggerFactory.getLogger(modules_1.MessageModule));
193
+ this.modules.add(messageModule);
194
+ break;
195
+ default:
196
+ throw new Error(`Module ${moduleConfiguration.name} is not a builtin module.`);
197
+ }
198
+ }
188
199
  async initModules() {
189
200
  this.logger.info("Initializing modules...");
190
201
  for (const module of this.modules.toArray()) {
@@ -1 +1 @@
1
- {"version":3,"file":"Runtime.js","sourceRoot":"","sources":["../src/Runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Runtime.js","sourceRoot":"","sources":["../src/Runtime.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,11 @@ 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.6",
11
- build: "53",
12
- date: "2022-05-16T14:21:07+00:00",
13
- commit: "297aab73aeadb8a1aa4693fcc3c4681410f42f84",
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.9","@nmshd/content":"2.0.0-alpha.13","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-alpha.1","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"},
10
+ version: "2.0.0-alpha.9",
11
+ build: "56",
12
+ date: "2022-05-18T11:33:53+00:00",
13
+ commit: "d2221c4e4ac1057608433f3a6a8110fd67e3ce27",
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.12","@nmshd/content":"2.0.0-alpha.14","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-alpha.1","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,
17
17
  consumption: consumption_1.buildInformation,
@@ -1,5 +1,5 @@
1
1
  import { ILogger } from "@js-soft/logging-abstractions";
2
- import { EventConstructor, EventHandler } from "@js-soft/ts-utils";
2
+ import { EventHandler, SubscriptionTarget } from "@js-soft/ts-utils";
3
3
  import { Runtime } from "../../Runtime";
4
4
  export interface ModuleConfiguration {
5
5
  enabled: boolean;
@@ -18,6 +18,6 @@ export declare abstract class RuntimeModule<TConfig extends ModuleConfiguration
18
18
  abstract start(): Promise<void> | void;
19
19
  abstract stop(): Promise<void> | void;
20
20
  private readonly registeredSubscriptions;
21
- protected subscribeToEvent<TEvent>(event: EventConstructor<TEvent>, handler: EventHandler<TEvent>): void;
21
+ protected subscribeToEvent<TEvent>(event: SubscriptionTarget<TEvent>, handler: EventHandler<TEvent>): void;
22
22
  protected unsubscribeFromAllEvents(): void;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeModule.js","sourceRoot":"","sources":["../../../src/extensibility/modules/RuntimeModule.ts"],"names":[],"mappings":";;;AAgBA,MAAsB,aAAa;IAC/B,YAAmC,OAAiB,EAAkB,aAAsB,EAAkB,MAAe;QAA1F,YAAO,GAAP,OAAO,CAAU;QAAkB,kBAAa,GAAb,aAAa,CAAS;QAAkB,WAAM,GAAN,MAAM,CAAS;QAc5G,4BAAuB,GAAqC,EAAE,CAAC;IAdgD,CAAC;IAEjI,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IAQS,gBAAgB,CAAS,KAA+B,EAAE,OAA6B;QAC7F,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAES,wBAAwB;QAC9B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,uBAAuB,EAAE;YACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;SAC3E;QAED,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;CACJ;AA7BD,sCA6BC"}
1
+ {"version":3,"file":"RuntimeModule.js","sourceRoot":"","sources":["../../../src/extensibility/modules/RuntimeModule.ts"],"names":[],"mappings":";;;AAgBA,MAAsB,aAAa;IAC/B,YAAmC,OAAiB,EAAkB,aAAsB,EAAkB,MAAe;QAA1F,YAAO,GAAP,OAAO,CAAU;QAAkB,kBAAa,GAAb,aAAa,CAAS;QAAkB,WAAM,GAAN,MAAM,CAAS;QAc5G,4BAAuB,GAAqC,EAAE,CAAC;IAdgD,CAAC;IAEjI,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IAQS,gBAAgB,CAAS,KAAiC,EAAE,OAA6B;QAC/F,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAES,wBAAwB;QAC9B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,uBAAuB,EAAE;YACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;SAC3E;QAED,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;CACJ;AA7BD,sCA6BC"}
@@ -0,0 +1,12 @@
1
+ import { RuntimeModule } from "../extensibility/modules/RuntimeModule";
2
+ export declare class RequestModule extends RuntimeModule {
3
+ init(): void | Promise<void>;
4
+ start(): void | Promise<void>;
5
+ private handlePeerRelationshipTemplateLoaded;
6
+ private handleMessageReceivedEvent;
7
+ private createIncomingRequest;
8
+ private handleIncomingRequestStatusChanged;
9
+ private handleIncomingRequestCompletedForRelationship;
10
+ private handleRelationshipChangedEvent;
11
+ stop(): void | Promise<void>;
12
+ }
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestModule = void 0;
4
+ const consumption_1 = require("@nmshd/consumption");
5
+ const content_1 = require("@nmshd/content");
6
+ const events_1 = require("../events");
7
+ const RuntimeModule_1 = require("../extensibility/modules/RuntimeModule");
8
+ const types_1 = require("../types");
9
+ class RequestModule extends RuntimeModule_1.RuntimeModule {
10
+ init() {
11
+ // Nothing to do here
12
+ }
13
+ start() {
14
+ this.subscribeToEvent(events_1.PeerRelationshipTemplateLoadedEvent, this.handlePeerRelationshipTemplateLoaded.bind(this));
15
+ this.subscribeToEvent(events_1.MessageReceivedEvent, this.handleMessageReceivedEvent.bind(this));
16
+ this.subscribeToEvent(events_1.IncomingRequestStatusChangedEvent, this.handleIncomingRequestStatusChanged.bind(this));
17
+ this.subscribeToEvent(events_1.RelationshipChangedEvent, this.handleRelationshipChangedEvent.bind(this));
18
+ }
19
+ async handlePeerRelationshipTemplateLoaded(event) {
20
+ if (event.data.content["@type"] !== "RelationshipTemplateBody")
21
+ return;
22
+ const body = event.data.content;
23
+ const request = body.onNewRelationship;
24
+ const services = this.runtime.getServices(event.eventTargetAddress);
25
+ await this.createIncomingRequest(services, request, event.data.id);
26
+ }
27
+ async handleMessageReceivedEvent(event) {
28
+ if (event.data.content["@type"] !== "Request")
29
+ return;
30
+ // TODO: JSSNMSHDD-2896 (handle response)
31
+ const request = event.data.content;
32
+ const services = this.runtime.getServices(event.eventTargetAddress);
33
+ await this.createIncomingRequest(services, request, event.data.id);
34
+ }
35
+ async createIncomingRequest(services, request, requestSourceId) {
36
+ const receivedRequestResult = await services.consumptionServices.incomingRequests.received({ receivedRequest: request, requestSourceId });
37
+ if (receivedRequestResult.isError) {
38
+ this.logger.error(`Could not receive request ${request.id}`, receivedRequestResult.error);
39
+ return;
40
+ }
41
+ const checkPrerequitesResult = await services.consumptionServices.incomingRequests.checkPrerequisites({ requestId: receivedRequestResult.value.id });
42
+ if (checkPrerequitesResult.isError) {
43
+ this.logger.error(`Could not check prerequisites for request ${request.id}`, checkPrerequitesResult.error);
44
+ return;
45
+ }
46
+ }
47
+ async handleIncomingRequestStatusChanged(event) {
48
+ if (event.data.newStatus !== consumption_1.ConsumptionRequestStatus.Decided)
49
+ return;
50
+ switch (event.data.request.source.type) {
51
+ case "RelationshipTemplate":
52
+ await this.handleIncomingRequestCompletedForRelationship(event);
53
+ break;
54
+ default:
55
+ throw new Error(`Cannot handle source.type '${event.data.request.source.type}'.`);
56
+ }
57
+ }
58
+ async handleIncomingRequestCompletedForRelationship(event) {
59
+ const templateId = event.data.request.source.reference;
60
+ const services = this.runtime.getServices(event.eventTargetAddress);
61
+ const templateResponse = await services.transportServices.relationshipTemplates.getRelationshipTemplate({ id: templateId });
62
+ if (templateResponse.isError) {
63
+ this.logger.error(`Could not find template with id '${templateId}'.`);
64
+ // TODO: error state
65
+ return;
66
+ }
67
+ const template = templateResponse.value;
68
+ const creationChangeBody = content_1.RelationshipCreationChangeRequestBody.from({
69
+ "@type": "RelationshipCreationChangeRequestBody",
70
+ response: event.data.request.response.content,
71
+ templateContentMetadata: template.content.metadata
72
+ });
73
+ const createRelationshipResponse = await services.transportServices.relationships.createRelationship({ templateId, content: creationChangeBody });
74
+ if (createRelationshipResponse.isError) {
75
+ this.logger.error(`Could not create relationship for templateId '${templateId}'.`);
76
+ // TODO: error state
77
+ return;
78
+ }
79
+ const requestId = event.data.request.id;
80
+ const completeRequestResponse = await services.consumptionServices.incomingRequests.complete({
81
+ requestId,
82
+ responseSourceId: createRelationshipResponse.value.changes[0].id
83
+ });
84
+ if (completeRequestResponse.isError) {
85
+ this.logger.error(`Could not complete the request '${requestId}'.`);
86
+ return;
87
+ }
88
+ }
89
+ async handleRelationshipChangedEvent(event) {
90
+ // only trigger for new relationships that were created from an own template
91
+ if (event.data.status !== types_1.RelationshipStatus.Pending || !event.data.template.isOwn)
92
+ return;
93
+ const services = this.runtime.getServices(event.eventTargetAddress);
94
+ const createdRelationship = event.data;
95
+ const template = createdRelationship.template;
96
+ const templateId = template.id;
97
+ // do not trigger for templates without the correct content type
98
+ if (template.content["@type"] !== "RelationshipTemplateBody")
99
+ return;
100
+ const relationshipCreationChange = createdRelationship.changes[0];
101
+ const relationshipChangeId = relationshipCreationChange.id;
102
+ // do not trigger for creation changes without the correct content type
103
+ if (relationshipCreationChange.request.content["@type"] !== "RelationshipCreationChangeRequestBody")
104
+ return;
105
+ const result = await services.consumptionServices.outgoingRequests.createAndCompleteFromRelationshipCreationChange({ templateId, relationshipChangeId });
106
+ if (result.isError) {
107
+ this.logger.error(`Could not create and complete request for templateId '${templateId}' and changeId '${relationshipChangeId}'.`, result.error);
108
+ return;
109
+ }
110
+ }
111
+ stop() {
112
+ this.unsubscribeFromAllEvents();
113
+ }
114
+ }
115
+ exports.RequestModule = RequestModule;
116
+ //# sourceMappingURL=RequestModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestModule.js","sourceRoot":"","sources":["../../src/modules/RequestModule.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from "./DeciderModule";
2
2
  export * from "./MessageModule";
3
+ export * from "./RequestModule";
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./DeciderModule"), exports);
18
18
  __exportStar(require("./MessageModule"), exports);
19
+ __exportStar(require("./RequestModule"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,kDAAgC;AAChC,kDAAgC"}
@@ -30,14 +30,14 @@ let CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeUseCase = clas
30
30
  }
31
31
  async executeInternal(request) {
32
32
  const template = await this.relationshipTemplateController.getRelationshipTemplate(transport_1.CoreId.from(request.templateId));
33
+ if (!template) {
34
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.RelationshipTemplate));
35
+ }
33
36
  const relationships = await this.relationshipController.getRelationships({ "cache.changes.id": request.relationshipChangeId }); // eslint-disable-line @typescript-eslint/naming-convention
34
37
  if (relationships.length === 0) {
35
38
  return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.RelationshipChange));
36
39
  }
37
40
  const relationship = relationships[0];
38
- if (!template) {
39
- return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.RelationshipTemplate));
40
- }
41
41
  const params = {
42
42
  template: template,
43
43
  creationChange: relationship.cache.creationChange
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/requests/CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAuE;AACvE,oDAAgI;AAChI,gDAA6I;AAC7I,mDAAwC;AACxC,6LAA0L;AAE1L,yCAAsD;AACtD,mDAAgD;AAahD,IAAa,qEAAqE,GAAlF,MAAa,qEAAsE,SAAQ,gBAG1F;IACG,YAC6B,0BAAsD,EACtD,sBAA+C,EAC/C,8BAA8D,EAC9D,QAAkB;QAE3C,KAAK,EAAE,CAAC;QALiB,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,2BAAsB,GAAtB,sBAAsB,CAAyB;QAC/C,mCAA8B,GAA9B,8BAA8B,CAAgC;QAC9D,aAAQ,GAAR,QAAQ,CAAU;IAG/C,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAA8E;QAC1G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,uBAAuB,CAAC,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACpH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,2DAA2D;QAE3L,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,8BAAkB,CAAC,CAAC,CAAC;SAChF;QACD,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,gCAAoB,CAAC,CAAC,CAAC;SAClF;QAED,MAAM,MAAM,GAAmE;YAC3E,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,YAAY,CAAC,KAAM,CAAC,cAAc;SACrD,CAAC;QAEF,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,oCAAoC,CAAC,MAAM,CAAC,CAAC;QAE9G,MAAM,GAAG,GAAG,6BAAa,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;QAEtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CACjB,IAAI,6IAAqE,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CACpK,CAAC;QAEF,OAAO,iBAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CACJ,CAAA;AAzCY,qEAAqE;IAKzE,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;qCAH8C,wCAA0B;QAC9B,mCAAuB;QACf,0CAA8B;QACpD,mBAAQ;GARtC,qEAAqE,CAyCjF;AAzCY,sJAAqE"}
1
+ {"version":3,"file":"CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/requests/CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAuE;AACvE,oDAAgI;AAChI,gDAA6I;AAC7I,mDAAwC;AACxC,6LAA0L;AAE1L,yCAAsD;AACtD,mDAAgD;AAahD,IAAa,qEAAqE,GAAlF,MAAa,qEAAsE,SAAQ,gBAG1F;IACG,YAC6B,0BAAsD,EACtD,sBAA+C,EAC/C,8BAA8D,EAC9D,QAAkB;QAE3C,KAAK,EAAE,CAAC;QALiB,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,2BAAsB,GAAtB,sBAAsB,CAAyB;QAC/C,mCAA8B,GAA9B,8BAA8B,CAAgC;QAC9D,aAAQ,GAAR,QAAQ,CAAU;IAG/C,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAA8E;QAC1G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,uBAAuB,CAAC,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,gCAAoB,CAAC,CAAC,CAAC;SAClF;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,2DAA2D;QAC3L,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,8BAAkB,CAAC,CAAC,CAAC;SAChF;QACD,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAmE;YAC3E,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,YAAY,CAAC,KAAM,CAAC,cAAc;SACrD,CAAC;QAEF,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,oCAAoC,CAAC,MAAM,CAAC,CAAC;QAE9G,MAAM,GAAG,GAAG,6BAAa,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;QAEtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CACjB,IAAI,6IAAqE,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CACpK,CAAC;QAEF,OAAO,iBAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CACJ,CAAA;AAxCY,qEAAqE;IAKzE,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;qCAH8C,wCAA0B;QAC9B,mCAAuB;QACf,0CAA8B;QACpD,mBAAQ;GARtC,qEAAqE,CAwCjF;AAxCY,sJAAqE"}
@@ -266,7 +266,6 @@ class Runtime {
266
266
  this.logger.info("Loading modules...");
267
267
  for (const moduleName in this.runtimeConfig.modules) {
268
268
  const moduleConfiguration = this.runtimeConfig.modules[moduleName];
269
- moduleConfiguration.name = moduleName;
270
269
  if (!moduleConfiguration.enabled) {
271
270
  this.logger.debug(`Skip loading module '${this.getModuleName(moduleConfiguration)}' because it is not enabled.`);
272
271
  continue;
@@ -275,22 +274,34 @@ class Runtime {
275
274
  this.logger.error(`Skip loading module '${this.getModuleName(moduleConfiguration)}' because has no location.`);
276
275
  continue;
277
276
  }
278
- switch (moduleConfiguration.name.toLocaleLowerCase()) {
279
- case "decidermodule":
280
- const deciderModule = new modules_1.DeciderModule(this, moduleConfiguration, this.loggerFactory.getLogger(modules_1.DeciderModule));
281
- this.modules.add(deciderModule);
282
- break;
283
- case "messagemodule":
284
- const messageModule = new modules_1.MessageModule(this, moduleConfiguration, this.loggerFactory.getLogger(modules_1.MessageModule));
285
- this.modules.add(messageModule);
286
- break;
287
- default:
288
- await this.loadModule(moduleConfiguration);
289
- break;
277
+ // load the builtin '@nmshd/runtime' modules based on their specifier after the colon
278
+ if (moduleConfiguration.location.startsWith("@nmshd/runtime:")) {
279
+ this.loadBuiltinModule(moduleConfiguration);
280
+ continue;
290
281
  }
282
+ await this.loadModule(moduleConfiguration);
291
283
  }
292
284
  this.eventBus.publish(new events_1.ModulesLoadedEvent());
293
285
  }
286
+ loadBuiltinModule(moduleConfiguration) {
287
+ const moduleSpecifier = moduleConfiguration.location.split(":")[1];
288
+ switch (moduleSpecifier) {
289
+ case "DeciderModule":
290
+ const deciderModule = new modules_1.DeciderModule(this, moduleConfiguration, this.loggerFactory.getLogger(modules_1.DeciderModule));
291
+ this.modules.add(deciderModule);
292
+ break;
293
+ case "RequestModule":
294
+ const requestModule = new modules_1.RequestModule(this, moduleConfiguration, this.loggerFactory.getLogger(modules_1.RequestModule));
295
+ this.modules.add(requestModule);
296
+ break;
297
+ case "MessageModule":
298
+ const messageModule = new modules_1.MessageModule(this, moduleConfiguration, this.loggerFactory.getLogger(modules_1.MessageModule));
299
+ this.modules.add(messageModule);
300
+ break;
301
+ default:
302
+ throw new Error(`Module ${moduleConfiguration.name} is not a builtin module.`);
303
+ }
304
+ }
294
305
  async initModules() {
295
306
  this.logger.info("Initializing modules...");
296
307
  for (const module of this.modules.toArray()) {
@@ -424,11 +435,11 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
424
435
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
425
436
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
426
437
  exports.buildInformation = {
427
- version: "2.0.0-alpha.6",
428
- build: "53",
429
- date: "2022-05-16T14:21:07+00:00",
430
- commit: "297aab73aeadb8a1aa4693fcc3c4681410f42f84",
431
- 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.9","@nmshd/content":"2.0.0-alpha.13","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-alpha.1","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"},
438
+ version: "2.0.0-alpha.9",
439
+ build: "56",
440
+ date: "2022-05-18T11:33:53+00:00",
441
+ commit: "d2221c4e4ac1057608433f3a6a8110fd67e3ce27",
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.12","@nmshd/content":"2.0.0-alpha.14","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-alpha.1","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"},
432
443
  libraries: {
433
444
  serval: ts_serval_1.buildInformation,
434
445
  consumption: consumption_1.buildInformation,
@@ -3569,6 +3580,132 @@ exports.MessageModule = MessageModule;
3569
3580
 
3570
3581
  /***/ }),
3571
3582
 
3583
+ /***/ "./dist/modules/RequestModule.js":
3584
+ /*!***************************************!*\
3585
+ !*** ./dist/modules/RequestModule.js ***!
3586
+ \***************************************/
3587
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3588
+
3589
+ "use strict";
3590
+
3591
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3592
+ exports.RequestModule = void 0;
3593
+ const consumption_1 = __webpack_require__(/*! @nmshd/consumption */ "@nmshd/consumption");
3594
+ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
3595
+ const events_1 = __webpack_require__(/*! ../events */ "./dist/events/index.js");
3596
+ const RuntimeModule_1 = __webpack_require__(/*! ../extensibility/modules/RuntimeModule */ "./dist/extensibility/modules/RuntimeModule.js");
3597
+ const types_1 = __webpack_require__(/*! ../types */ "./dist/types/index.js");
3598
+ class RequestModule extends RuntimeModule_1.RuntimeModule {
3599
+ init() {
3600
+ // Nothing to do here
3601
+ }
3602
+ start() {
3603
+ this.subscribeToEvent(events_1.PeerRelationshipTemplateLoadedEvent, this.handlePeerRelationshipTemplateLoaded.bind(this));
3604
+ this.subscribeToEvent(events_1.MessageReceivedEvent, this.handleMessageReceivedEvent.bind(this));
3605
+ this.subscribeToEvent(events_1.IncomingRequestStatusChangedEvent, this.handleIncomingRequestStatusChanged.bind(this));
3606
+ this.subscribeToEvent(events_1.RelationshipChangedEvent, this.handleRelationshipChangedEvent.bind(this));
3607
+ }
3608
+ async handlePeerRelationshipTemplateLoaded(event) {
3609
+ if (event.data.content["@type"] !== "RelationshipTemplateBody")
3610
+ return;
3611
+ const body = event.data.content;
3612
+ const request = body.onNewRelationship;
3613
+ const services = this.runtime.getServices(event.eventTargetAddress);
3614
+ await this.createIncomingRequest(services, request, event.data.id);
3615
+ }
3616
+ async handleMessageReceivedEvent(event) {
3617
+ if (event.data.content["@type"] !== "Request")
3618
+ return;
3619
+ // TODO: JSSNMSHDD-2896 (handle response)
3620
+ const request = event.data.content;
3621
+ const services = this.runtime.getServices(event.eventTargetAddress);
3622
+ await this.createIncomingRequest(services, request, event.data.id);
3623
+ }
3624
+ async createIncomingRequest(services, request, requestSourceId) {
3625
+ const receivedRequestResult = await services.consumptionServices.incomingRequests.received({ receivedRequest: request, requestSourceId });
3626
+ if (receivedRequestResult.isError) {
3627
+ this.logger.error(`Could not receive request ${request.id}`, receivedRequestResult.error);
3628
+ return;
3629
+ }
3630
+ const checkPrerequitesResult = await services.consumptionServices.incomingRequests.checkPrerequisites({ requestId: receivedRequestResult.value.id });
3631
+ if (checkPrerequitesResult.isError) {
3632
+ this.logger.error(`Could not check prerequisites for request ${request.id}`, checkPrerequitesResult.error);
3633
+ return;
3634
+ }
3635
+ }
3636
+ async handleIncomingRequestStatusChanged(event) {
3637
+ if (event.data.newStatus !== consumption_1.ConsumptionRequestStatus.Decided)
3638
+ return;
3639
+ switch (event.data.request.source.type) {
3640
+ case "RelationshipTemplate":
3641
+ await this.handleIncomingRequestCompletedForRelationship(event);
3642
+ break;
3643
+ default:
3644
+ throw new Error(`Cannot handle source.type '${event.data.request.source.type}'.`);
3645
+ }
3646
+ }
3647
+ async handleIncomingRequestCompletedForRelationship(event) {
3648
+ const templateId = event.data.request.source.reference;
3649
+ const services = this.runtime.getServices(event.eventTargetAddress);
3650
+ const templateResponse = await services.transportServices.relationshipTemplates.getRelationshipTemplate({ id: templateId });
3651
+ if (templateResponse.isError) {
3652
+ this.logger.error(`Could not find template with id '${templateId}'.`);
3653
+ // TODO: error state
3654
+ return;
3655
+ }
3656
+ const template = templateResponse.value;
3657
+ const creationChangeBody = content_1.RelationshipCreationChangeRequestBody.from({
3658
+ "@type": "RelationshipCreationChangeRequestBody",
3659
+ response: event.data.request.response.content,
3660
+ templateContentMetadata: template.content.metadata
3661
+ });
3662
+ const createRelationshipResponse = await services.transportServices.relationships.createRelationship({ templateId, content: creationChangeBody });
3663
+ if (createRelationshipResponse.isError) {
3664
+ this.logger.error(`Could not create relationship for templateId '${templateId}'.`);
3665
+ // TODO: error state
3666
+ return;
3667
+ }
3668
+ const requestId = event.data.request.id;
3669
+ const completeRequestResponse = await services.consumptionServices.incomingRequests.complete({
3670
+ requestId,
3671
+ responseSourceId: createRelationshipResponse.value.changes[0].id
3672
+ });
3673
+ if (completeRequestResponse.isError) {
3674
+ this.logger.error(`Could not complete the request '${requestId}'.`);
3675
+ return;
3676
+ }
3677
+ }
3678
+ async handleRelationshipChangedEvent(event) {
3679
+ // only trigger for new relationships that were created from an own template
3680
+ if (event.data.status !== types_1.RelationshipStatus.Pending || !event.data.template.isOwn)
3681
+ return;
3682
+ const services = this.runtime.getServices(event.eventTargetAddress);
3683
+ const createdRelationship = event.data;
3684
+ const template = createdRelationship.template;
3685
+ const templateId = template.id;
3686
+ // do not trigger for templates without the correct content type
3687
+ if (template.content["@type"] !== "RelationshipTemplateBody")
3688
+ return;
3689
+ const relationshipCreationChange = createdRelationship.changes[0];
3690
+ const relationshipChangeId = relationshipCreationChange.id;
3691
+ // do not trigger for creation changes without the correct content type
3692
+ if (relationshipCreationChange.request.content["@type"] !== "RelationshipCreationChangeRequestBody")
3693
+ return;
3694
+ const result = await services.consumptionServices.outgoingRequests.createAndCompleteFromRelationshipCreationChange({ templateId, relationshipChangeId });
3695
+ if (result.isError) {
3696
+ this.logger.error(`Could not create and complete request for templateId '${templateId}' and changeId '${relationshipChangeId}'.`, result.error);
3697
+ return;
3698
+ }
3699
+ }
3700
+ stop() {
3701
+ this.unsubscribeFromAllEvents();
3702
+ }
3703
+ }
3704
+ exports.RequestModule = RequestModule;
3705
+ //# sourceMappingURL=RequestModule.js.map
3706
+
3707
+ /***/ }),
3708
+
3572
3709
  /***/ "./dist/modules/index.js":
3573
3710
  /*!*******************************!*\
3574
3711
  !*** ./dist/modules/index.js ***!
@@ -3594,6 +3731,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
3594
3731
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3595
3732
  __exportStar(__webpack_require__(/*! ./DeciderModule */ "./dist/modules/DeciderModule.js"), exports);
3596
3733
  __exportStar(__webpack_require__(/*! ./MessageModule */ "./dist/modules/MessageModule.js"), exports);
3734
+ __exportStar(__webpack_require__(/*! ./RequestModule */ "./dist/modules/RequestModule.js"), exports);
3597
3735
  //# sourceMappingURL=index.js.map
3598
3736
 
3599
3737
  /***/ }),
@@ -9092,14 +9230,14 @@ let CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeUseCase = clas
9092
9230
  }
9093
9231
  async executeInternal(request) {
9094
9232
  const template = await this.relationshipTemplateController.getRelationshipTemplate(transport_1.CoreId.from(request.templateId));
9233
+ if (!template) {
9234
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.RelationshipTemplate));
9235
+ }
9095
9236
  const relationships = await this.relationshipController.getRelationships({ "cache.changes.id": request.relationshipChangeId }); // eslint-disable-line @typescript-eslint/naming-convention
9096
9237
  if (relationships.length === 0) {
9097
9238
  return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.RelationshipChange));
9098
9239
  }
9099
9240
  const relationship = relationships[0];
9100
- if (!template) {
9101
- return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.RelationshipTemplate));
9102
- }
9103
9241
  const params = {
9104
9242
  template: template,
9105
9243
  creationChange: relationship.cache.creationChange