@nmshd/runtime 2.0.0-beta.14 → 2.0.0-beta.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/Runtime.d.ts +1 -1
  2. package/dist/Runtime.js +6 -4
  3. package/dist/Runtime.js.map +1 -1
  4. package/dist/buildInformation.js +5 -5
  5. package/dist/events/consumption/MessageProcessedEvent.d.ts +14 -0
  6. package/dist/events/consumption/MessageProcessedEvent.js +17 -0
  7. package/dist/events/consumption/MessageProcessedEvent.js.map +1 -0
  8. package/dist/events/consumption/RelationshipTemplateProcessedEvent.d.ts +17 -0
  9. package/dist/events/consumption/RelationshipTemplateProcessedEvent.js +22 -0
  10. package/dist/events/consumption/RelationshipTemplateProcessedEvent.js.map +1 -0
  11. package/dist/events/consumption/index.d.ts +1 -0
  12. package/dist/events/consumption/index.js +1 -0
  13. package/dist/events/consumption/index.js.map +1 -1
  14. package/dist/extensibility/facades/transport/FilesFacade.d.ts +4 -4
  15. package/dist/extensibility/facades/transport/FilesFacade.js +5 -5
  16. package/dist/extensibility/facades/transport/FilesFacade.js.map +1 -1
  17. package/dist/modules/DeciderModule.js +11 -0
  18. package/dist/modules/DeciderModule.js.map +1 -1
  19. package/dist/modules/RequestModule.js +32 -24
  20. package/dist/modules/RequestModule.js.map +1 -1
  21. package/dist/useCases/common/Schemas.d.ts +3 -3
  22. package/dist/useCases/common/Schemas.js +164 -14
  23. package/dist/useCases/common/Schemas.js.map +1 -1
  24. package/dist/useCases/consumption/requests/RequestMapper.js.map +1 -1
  25. package/dist/useCases/transport/files/{LoadPeerFile.d.ts → GetOrLoadFile.d.ts} +7 -7
  26. package/dist/useCases/transport/files/{LoadPeerFile.js → GetOrLoadFile.js} +18 -18
  27. package/dist/useCases/transport/files/GetOrLoadFile.js.map +1 -0
  28. package/dist/useCases/transport/files/index.d.ts +1 -1
  29. package/dist/useCases/transport/files/index.js +1 -1
  30. package/dist/useCases/transport/files/index.js.map +1 -1
  31. package/lib-web/nmshd.runtime.js +307 -76
  32. package/lib-web/nmshd.runtime.js.map +1 -1
  33. package/lib-web/nmshd.runtime.min.js +2 -2
  34. package/lib-web/nmshd.runtime.min.js.map +1 -1
  35. package/package.json +6 -6
  36. package/dist/useCases/transport/files/LoadPeerFile.js.map +0 -1
@@ -121,15 +121,17 @@ const RuntimeLoggerFactory_1 = __webpack_require__(/*! ./RuntimeLoggerFactory */
121
121
  const useCases_1 = __webpack_require__(/*! ./useCases */ "./dist/useCases/index.js");
122
122
  const SchemaRepository_1 = __webpack_require__(/*! ./useCases/common/SchemaRepository */ "./dist/useCases/common/SchemaRepository.js");
123
123
  class Runtime {
124
- constructor(runtimeConfig, loggerFactory) {
124
+ constructor(runtimeConfig, loggerFactory, eventBus) {
125
125
  this.runtimeConfig = runtimeConfig;
126
126
  this.loggerFactory = loggerFactory;
127
127
  this._isInitialized = false;
128
128
  this._isStarted = false;
129
129
  this._logger = this.loggerFactory.getLogger(this.constructor.name);
130
- this._eventBus = new ts_utils_1.EventEmitter2EventBus((error, namespace) => {
131
- this.logger.error(`An error was thrown in an event handler of the runtime event bus (namespace: '${namespace}'). Root error: ${error}`);
132
- });
130
+ this._eventBus =
131
+ eventBus ??
132
+ new ts_utils_1.EventEmitter2EventBus((error, namespace) => {
133
+ this.logger.error(`An error was thrown in an event handler of the runtime event bus (namespace: '${namespace}'). Root error: ${error}`);
134
+ });
133
135
  }
134
136
  get logger() {
135
137
  return this._logger;
@@ -446,11 +448,11 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
446
448
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
447
449
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
448
450
  exports.buildInformation = {
449
- version: "2.0.0-beta.14",
450
- build: "100",
451
- date: "2022-08-02T11:37:46+00:00",
452
- commit: "39b536983ccf00409c90ece69069568f05d51019",
453
- dependencies: {"@js-soft/docdb-querytranslator":"1.1.0","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"2.0.4","@js-soft/ts-utils":"^2.2.1","@nmshd/consumption":"2.0.0-beta.4","@nmshd/content":"2.0.0-alpha.45","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-beta.3","ajv":"^8.11.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","json-stringify-safe":"^5.0.1","luxon":"^3.0.1","qrcode":"1.5.1","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
451
+ version: "2.0.0-beta.17",
452
+ build: "103",
453
+ date: "2022-08-03T14:38:55+00:00",
454
+ commit: "73761c577a480f40abe34e0f51058c2370703d02",
455
+ dependencies: {"@js-soft/docdb-querytranslator":"1.1.0","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"2.0.4","@js-soft/ts-utils":"^2.2.2","@nmshd/consumption":"2.0.0-beta.6","@nmshd/content":"2.0.0-beta.3","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-beta.4","ajv":"^8.11.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","json-stringify-safe":"^5.0.1","luxon":"^3.0.1","qrcode":"1.5.1","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
454
456
  libraries: {
455
457
  serval: ts_serval_1.buildInformation,
456
458
  consumption: consumption_1.buildInformation,
@@ -2291,6 +2293,33 @@ MailReceivedEvent.namespace = "consumption.mailReceived";
2291
2293
 
2292
2294
  /***/ }),
2293
2295
 
2296
+ /***/ "./dist/events/consumption/MessageProcessedEvent.js":
2297
+ /*!**********************************************************!*\
2298
+ !*** ./dist/events/consumption/MessageProcessedEvent.js ***!
2299
+ \**********************************************************/
2300
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2301
+
2302
+ "use strict";
2303
+
2304
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2305
+ exports.MessageProcessedResult = exports.MessageProcessedEvent = void 0;
2306
+ const DataEvent_1 = __webpack_require__(/*! ../DataEvent */ "./dist/events/DataEvent.js");
2307
+ class MessageProcessedEvent extends DataEvent_1.DataEvent {
2308
+ constructor(eventTargetAddress, template, result) {
2309
+ super(MessageProcessedEvent.namespace, eventTargetAddress, { template, result });
2310
+ }
2311
+ }
2312
+ exports.MessageProcessedEvent = MessageProcessedEvent;
2313
+ MessageProcessedEvent.namespace = "consumption.MessageProcessed";
2314
+ var MessageProcessedResult;
2315
+ (function (MessageProcessedResult) {
2316
+ MessageProcessedResult["ManualRequestDecisionRequired"] = "ManualRequestDecisionRequired";
2317
+ MessageProcessedResult["NoRequest"] = "NoRequest";
2318
+ })(MessageProcessedResult = exports.MessageProcessedResult || (exports.MessageProcessedResult = {}));
2319
+ //# sourceMappingURL=MessageProcessedEvent.js.map
2320
+
2321
+ /***/ }),
2322
+
2294
2323
  /***/ "./dist/events/consumption/OutgoingRequestCreatedEvent.js":
2295
2324
  /*!****************************************************************!*\
2296
2325
  !*** ./dist/events/consumption/OutgoingRequestCreatedEvent.js ***!
@@ -2386,6 +2415,38 @@ RelationshipEvent.namespace = "consumption.relationshipEvent.";
2386
2415
 
2387
2416
  /***/ }),
2388
2417
 
2418
+ /***/ "./dist/events/consumption/RelationshipTemplateProcessedEvent.js":
2419
+ /*!***********************************************************************!*\
2420
+ !*** ./dist/events/consumption/RelationshipTemplateProcessedEvent.js ***!
2421
+ \***********************************************************************/
2422
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2423
+
2424
+ "use strict";
2425
+
2426
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2427
+ exports.RelationshipTemplateProcessedResult = exports.RelationshipTemplateProcessedEvent = void 0;
2428
+ const DataEvent_1 = __webpack_require__(/*! ../DataEvent */ "./dist/events/DataEvent.js");
2429
+ class RelationshipTemplateProcessedEvent extends DataEvent_1.DataEvent {
2430
+ constructor(eventTargetAddress, template, result) {
2431
+ super(RelationshipTemplateProcessedEvent.namespace, eventTargetAddress, { template, result });
2432
+ if (template.isOwn)
2433
+ throw new Error("Cannot create this event for an own Relationship Template.");
2434
+ }
2435
+ }
2436
+ exports.RelationshipTemplateProcessedEvent = RelationshipTemplateProcessedEvent;
2437
+ RelationshipTemplateProcessedEvent.namespace = "consumption.relationshipTemplateProcessed";
2438
+ var RelationshipTemplateProcessedResult;
2439
+ (function (RelationshipTemplateProcessedResult) {
2440
+ RelationshipTemplateProcessedResult["ManualRequestDecisionRequired"] = "ManualRequestDecisionRequired";
2441
+ RelationshipTemplateProcessedResult["NonCompletedRequestExists"] = "NonCompletedRequestExists";
2442
+ RelationshipTemplateProcessedResult["RelationshipExists"] = "RelationshipExists";
2443
+ RelationshipTemplateProcessedResult["NoRequest"] = "NoRequest";
2444
+ RelationshipTemplateProcessedResult["Error"] = "Error";
2445
+ })(RelationshipTemplateProcessedResult = exports.RelationshipTemplateProcessedResult || (exports.RelationshipTemplateProcessedResult = {}));
2446
+ //# sourceMappingURL=RelationshipTemplateProcessedEvent.js.map
2447
+
2448
+ /***/ }),
2449
+
2389
2450
  /***/ "./dist/events/consumption/SharedAttributeCopyCreatedEvent.js":
2390
2451
  /*!********************************************************************!*\
2391
2452
  !*** ./dist/events/consumption/SharedAttributeCopyCreatedEvent.js ***!
@@ -2442,6 +2503,7 @@ __exportStar(__webpack_require__(/*! ./OutgoingRequestCreatedEvent */ "./dist/ev
2442
2503
  __exportStar(__webpack_require__(/*! ./OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent */ "./dist/events/consumption/OutgoingRequestFromRelationshipCreationChangeCreatedAndCompletedEvent.js"), exports);
2443
2504
  __exportStar(__webpack_require__(/*! ./OutgoingRequestStatusChangedEvent */ "./dist/events/consumption/OutgoingRequestStatusChangedEvent.js"), exports);
2444
2505
  __exportStar(__webpack_require__(/*! ./RelationshipEvent */ "./dist/events/consumption/RelationshipEvent.js"), exports);
2506
+ __exportStar(__webpack_require__(/*! ./RelationshipTemplateProcessedEvent */ "./dist/events/consumption/RelationshipTemplateProcessedEvent.js"), exports);
2445
2507
  __exportStar(__webpack_require__(/*! ./SharedAttributeCopyCreatedEvent */ "./dist/events/consumption/SharedAttributeCopyCreatedEvent.js"), exports);
2446
2508
  //# sourceMappingURL=index.js.map
2447
2509
 
@@ -3657,9 +3719,9 @@ exports.FilesFacade = void 0;
3657
3719
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
3658
3720
  const useCases_1 = __webpack_require__(/*! ../../../useCases */ "./dist/useCases/index.js");
3659
3721
  let FilesFacade = class FilesFacade {
3660
- constructor(uploadOwnFileUseCase, loadPeerFileUseCase, getFilesUseCase, downloadFileUseCase, getFileUseCase, createQrCodeForFileUseCase, createTokenForFileUseCase, createTokenQrCodeForFileUseCase) {
3722
+ constructor(uploadOwnFileUseCase, getOrLoadFileUseCase, getFilesUseCase, downloadFileUseCase, getFileUseCase, createQrCodeForFileUseCase, createTokenForFileUseCase, createTokenQrCodeForFileUseCase) {
3661
3723
  this.uploadOwnFileUseCase = uploadOwnFileUseCase;
3662
- this.loadPeerFileUseCase = loadPeerFileUseCase;
3724
+ this.getOrLoadFileUseCase = getOrLoadFileUseCase;
3663
3725
  this.getFilesUseCase = getFilesUseCase;
3664
3726
  this.downloadFileUseCase = downloadFileUseCase;
3665
3727
  this.getFileUseCase = getFileUseCase;
@@ -3670,8 +3732,8 @@ let FilesFacade = class FilesFacade {
3670
3732
  async getFiles(request) {
3671
3733
  return await this.getFilesUseCase.execute(request);
3672
3734
  }
3673
- async loadPeerFile(request) {
3674
- return await this.loadPeerFileUseCase.execute(request);
3735
+ async getOrLoadFile(request) {
3736
+ return await this.getOrLoadFileUseCase.execute(request);
3675
3737
  }
3676
3738
  async downloadFile(request) {
3677
3739
  return await this.downloadFileUseCase.execute(request);
@@ -3702,7 +3764,7 @@ FilesFacade = __decorate([
3702
3764
  __param(6, typescript_ioc_1.Inject),
3703
3765
  __param(7, typescript_ioc_1.Inject),
3704
3766
  __metadata("design:paramtypes", [useCases_1.UploadOwnFileUseCase,
3705
- useCases_1.LoadPeerFileUseCase,
3767
+ useCases_1.GetOrLoadFileUseCase,
3706
3768
  useCases_1.GetFilesUseCase,
3707
3769
  useCases_1.DownloadFileUseCase,
3708
3770
  useCases_1.GetFileUseCase,
@@ -4251,6 +4313,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
4251
4313
  exports.DeciderModule = void 0;
4252
4314
  const consumption_1 = __webpack_require__(/*! @nmshd/consumption */ "@nmshd/consumption");
4253
4315
  const events_1 = __webpack_require__(/*! ../events */ "./dist/events/index.js");
4316
+ const MessageProcessedEvent_1 = __webpack_require__(/*! ../events/consumption/MessageProcessedEvent */ "./dist/events/consumption/MessageProcessedEvent.js");
4254
4317
  const extensibility_1 = __webpack_require__(/*! ../extensibility */ "./dist/extensibility/index.js");
4255
4318
  class DeciderModule extends extensibility_1.RuntimeModule {
4256
4319
  init() {
@@ -4268,6 +4331,16 @@ class DeciderModule extends extensibility_1.RuntimeModule {
4268
4331
  this.logger.error(`Could not require manual decision for request ${event.data.request.id}`, requireManualDecisionResult.error);
4269
4332
  return;
4270
4333
  }
4334
+ switch (event.data.request.source.type) {
4335
+ case "RelationshipTemplate":
4336
+ const getTemplateResult = await services.transportServices.relationshipTemplates.getRelationshipTemplate({ id: event.data.request.source.reference });
4337
+ this.runtime.eventBus.publish(new events_1.RelationshipTemplateProcessedEvent(event.eventTargetAddress, getTemplateResult.value, events_1.RelationshipTemplateProcessedResult.ManualRequestDecisionRequired));
4338
+ break;
4339
+ case "Message":
4340
+ const getMessageResult = await services.transportServices.messages.getMessage({ id: event.data.request.source.reference });
4341
+ this.runtime.eventBus.publish(new MessageProcessedEvent_1.MessageProcessedEvent(event.eventTargetAddress, { ...getMessageResult.value, attachments: getMessageResult.value.attachments.map((a) => a.id) }, MessageProcessedEvent_1.MessageProcessedResult.ManualRequestDecisionRequired));
4342
+ break;
4343
+ }
4271
4344
  }
4272
4345
  stop() {
4273
4346
  this.unsubscribeFromAllEvents();
@@ -4347,6 +4420,8 @@ exports.RequestModule = void 0;
4347
4420
  const consumption_1 = __webpack_require__(/*! @nmshd/consumption */ "@nmshd/consumption");
4348
4421
  const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
4349
4422
  const events_1 = __webpack_require__(/*! ../events */ "./dist/events/index.js");
4423
+ const MessageProcessedEvent_1 = __webpack_require__(/*! ../events/consumption/MessageProcessedEvent */ "./dist/events/consumption/MessageProcessedEvent.js");
4424
+ const RelationshipTemplateProcessedEvent_1 = __webpack_require__(/*! ../events/consumption/RelationshipTemplateProcessedEvent */ "./dist/events/consumption/RelationshipTemplateProcessedEvent.js");
4350
4425
  const RuntimeModule_1 = __webpack_require__(/*! ../extensibility/modules/RuntimeModule */ "./dist/extensibility/modules/RuntimeModule.js");
4351
4426
  const types_1 = __webpack_require__(/*! ../types */ "./dist/types/index.js");
4352
4427
  class RequestModule extends RuntimeModule_1.RuntimeModule {
@@ -4362,40 +4437,42 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
4362
4437
  }
4363
4438
  async handlePeerRelationshipTemplateLoaded(event) {
4364
4439
  const template = event.data;
4365
- if (template.content["@type"] !== "RelationshipTemplateBody")
4440
+ if (template.content["@type"] !== "RelationshipTemplateBody") {
4441
+ this.runtime.eventBus.publish(new RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedEvent(event.eventTargetAddress, template, RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedResult.NoRequest));
4366
4442
  return;
4443
+ }
4367
4444
  const body = template.content;
4368
4445
  const services = await this.runtime.getServices(event.eventTargetAddress);
4369
- const requestResult = await services.consumptionServices.incomingRequests.getRequests({ query: { "source.reference": template.id } });
4370
- if (requestResult.isError) {
4371
- this.logger.error(`Could not get requests for template '${template.id}'. Root error:`, requestResult.error);
4446
+ const existingRequestsFromTemplate = (await services.consumptionServices.incomingRequests.getRequests({ query: { "source.reference": template.id } })).value;
4447
+ const nonCompletedRequestExists = existingRequestsFromTemplate.some((r) => r.status !== consumption_1.LocalRequestStatus.Completed);
4448
+ if (nonCompletedRequestExists) {
4449
+ this.logger.info(`There is already an open Request for the RelationshipTemplate '${template.id}'.`);
4450
+ this.runtime.eventBus.publish(new RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedEvent(event.eventTargetAddress, template, RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedResult.NonCompletedRequestExists));
4372
4451
  return;
4373
4452
  }
4374
- if (requestResult.value.some((r) => r.status !== consumption_1.LocalRequestStatus.Completed)) {
4375
- // TODO: JSSNMSHDD-3111 (inform caller of `loadPeerRelationshipTemplate` about the Request)
4376
- this.logger.warn(`There is already an open Request for the RelationshipTemplate '${template.id}'. Skipping creation of a new request.`);
4453
+ const relationshipsToPeer = (await services.transportServices.relationships.getRelationships({ query: { peer: template.createdBy } })).value;
4454
+ const pendingRelationshipExists = relationshipsToPeer.some((r) => r.status === types_1.RelationshipStatus.Pending);
4455
+ if (pendingRelationshipExists) {
4456
+ this.logger.info(`There is already a pending Relationship for the RelationshipTemplate '${template.id}'. Skipping creation of a new request.`);
4457
+ this.runtime.eventBus.publish(new RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedEvent(event.eventTargetAddress, template, RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedResult.RelationshipExists));
4377
4458
  return;
4378
4459
  }
4379
- const getRelationshipsResult = await services.transportServices.relationships.getRelationships({ query: { peer: template.createdBy } });
4380
- if (getRelationshipsResult.isError) {
4381
- this.logger.error(`Could not get relationships for template '${template.id}'. Root error:`, getRelationshipsResult.error);
4382
- return;
4383
- }
4384
- if (getRelationshipsResult.value.some((r) => r.status === types_1.RelationshipStatus.Pending)) {
4385
- // TODO: JSSNMSHDD-3111 (inform caller of `loadPeerRelationshipTemplate` about the Relationship)
4386
- this.logger.warn(`There is already a pending Relationship for the RelationshipTemplate '${template.id}'. Skipping creation of a new request.`);
4387
- return;
4388
- }
4389
- if (getRelationshipsResult.value.some((r) => r.status === types_1.RelationshipStatus.Active)) {
4460
+ const activeRelationshipExists = relationshipsToPeer.some((r) => r.status === types_1.RelationshipStatus.Active);
4461
+ if (activeRelationshipExists) {
4390
4462
  if (body.onExistingRelationship) {
4391
- await this.createIncomingRequest(services, body.onExistingRelationship, template.id);
4463
+ const requestCreated = await this.createIncomingRequest(services, body.onExistingRelationship, template.id);
4464
+ if (!requestCreated) {
4465
+ this.runtime.eventBus.publish(new RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedEvent(event.eventTargetAddress, template, RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedResult.Error));
4466
+ }
4392
4467
  return;
4393
4468
  }
4394
- // TODO: JSSNMSHDD-3111 (inform caller of `loadPeerRelationshipTemplate` about the Relationship if body.onExistingRelationship not exists)
4395
- this.logger.warn(`There is already an open Relationship for the RelationshipTemplate '${template.id}' and onExistingRelationship is not defined. Skipping creation of a new request.`);
4469
+ this.logger.info(`There is already an open Relationship for the RelationshipTemplate '${template.id}' and onExistingRelationship is not defined. Skipping creation of a new request.`);
4470
+ this.runtime.eventBus.publish(new RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedEvent(event.eventTargetAddress, template, RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedResult.RelationshipExists));
4396
4471
  return;
4397
4472
  }
4398
- await this.createIncomingRequest(services, body.onNewRelationship, template.id);
4473
+ const requestCreated = await this.createIncomingRequest(services, body.onNewRelationship, template.id);
4474
+ if (!requestCreated)
4475
+ this.runtime.eventBus.publish(new RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedEvent(event.eventTargetAddress, template, RelationshipTemplateProcessedEvent_1.RelationshipTemplateProcessedResult.Error));
4399
4476
  }
4400
4477
  async handleMessageReceivedEvent(event) {
4401
4478
  const services = await this.runtime.getServices(event.eventTargetAddress);
@@ -4413,6 +4490,9 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
4413
4490
  }
4414
4491
  break;
4415
4492
  }
4493
+ if (messageContentType !== "Request") {
4494
+ this.runtime.eventBus.publish(new MessageProcessedEvent_1.MessageProcessedEvent(event.eventTargetAddress, message, MessageProcessedEvent_1.MessageProcessedResult.NoRequest));
4495
+ }
4416
4496
  }
4417
4497
  async handleMessageSentEvent(event) {
4418
4498
  const message = event.data;
@@ -4430,13 +4510,14 @@ class RequestModule extends RuntimeModule_1.RuntimeModule {
4430
4510
  const receivedRequestResult = await services.consumptionServices.incomingRequests.received({ receivedRequest: request, requestSourceId });
4431
4511
  if (receivedRequestResult.isError) {
4432
4512
  this.logger.error(`Could not receive request ${request.id}. Root error:`, receivedRequestResult.error);
4433
- return;
4513
+ return false;
4434
4514
  }
4435
4515
  const checkPrerequitesResult = await services.consumptionServices.incomingRequests.checkPrerequisites({ requestId: receivedRequestResult.value.id });
4436
4516
  if (checkPrerequitesResult.isError) {
4437
4517
  this.logger.error(`Could not check prerequisites for request ${request.id}. Root error:`, checkPrerequitesResult.error);
4438
- return;
4518
+ return false;
4439
4519
  }
4520
+ return true;
4440
4521
  }
4441
4522
  async handleIncomingRequestStatusChanged(event) {
4442
4523
  if (event.data.newStatus !== consumption_1.LocalRequestStatus.Decided)
@@ -5473,7 +5554,7 @@ exports.JsonSchema = JsonSchema;
5473
5554
 
5474
5555
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5475
5556
  exports.DeleteDeviceRequest = exports.CreateDeviceOnboardingTokenRequest = exports.CreateDeviceRequest = exports.ValidateChallengeRequest = exports.CreateChallengeRequest = exports.CreateDeviceChallengeRequest = exports.CreateIdentityChallengeRequest = exports.CreateRelationshipChallengeRequest = exports.SyncEverythingRequest = exports.DownloadAttachmentRequest = exports.DownloadFileRequest = exports.SyncDatawalletRequest = exports.RegisterPushNotificationTokenRequest = exports.UpdateSettingRequest = exports.GetSettingsRequest = exports.GetSettingRequest = exports.DeleteSettingRequest = exports.CreateSettingRequest = exports.SentOutgoingRequestRequest = exports.RequireManualDecisionOfIncomingRequestRequest = exports.ReceivedIncomingRequestRequest = exports.GetOutgoingRequestsRequest = exports.GetOutgoingRequestRequest = exports.GetIncomingRequestsRequest = exports.GetIncomingRequestRequest = exports.CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest = exports.CompleteOutgoingRequestRequest = exports.CompleteIncomingRequestRequest = exports.CheckPrerequisitesOfIncomingRequestRequest = exports.RejectIncomingRequestRequest = exports.CreateOutgoingRequestRequest = exports.AcceptIncomingRequestRequest = exports.UpdateDraftRequest = exports.GetDraftsRequest = exports.GetDraftRequest = exports.DeleteDraftRequest = exports.CreateDraftRequest = exports.UpdateAttributeRequest = exports.SucceedAttributeRequest = exports.GetSharedToPeerAttributesRequest = exports.GetPeerAttributesRequest = exports.GetAttributesRequest = exports.GetAttributeRequest = exports.ExecuteRelationshipAttributeQueryRequest = exports.ExecuteIdentityAttributeQueryRequest = exports.DeleteAttributeRequest = exports.CreateSharedAttributeCopyRequest = exports.CreateAttributeRequest = exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = exports.LoadPeerTokenAnonymousByIdAndKeyRequest = void 0;
5476
- exports.LoadPeerTokenRequest = exports.LoadPeerTokenViaSecretRequest = exports.LoadPeerTokenViaReferenceRequest = exports.GetTokensRequest = exports.GetTokenRequest = exports.GetQRCodeForTokenRequest = exports.CreateOwnTokenRequest = exports.LoadPeerRelationshipTemplateRequest = exports.LoadPeerRelationshipTemplateViaReferenceRequest = exports.LoadPeerRelationshipTemplateViaSecretRequest = exports.GetRelationshipTemplatesRequest = exports.GetRelationshipTemplateRequest = exports.CreateTokenQrCodeForOwnTemplateRequest = exports.CreateTokenForOwnTemplateRequest = exports.CreateQrCodeForOwnTemplateRequest = exports.CreateOwnRelationshipTemplateRequest = exports.RevokeRelationshipChangeRequest = exports.RejectRelationshipChangeRequest = exports.GetRelationshipsRequest = exports.GetRelationshipByAddressRequest = exports.GetRelationshipRequest = exports.GetAttributesForRelationshipRequest = exports.CreateRelationshipChangeRequest = exports.CreateRelationshipRequest = exports.AcceptRelationshipChangeRequest = exports.SendMessageRequest = exports.GetMessagesRequest = exports.GetMessageRequest = exports.GetAttachmentMetadataRequest = exports.CheckIdentityRequest = exports.UploadOwnFileValidatableRequest = exports.UploadOwnFileRequest = exports.LoadPeerFileRequest = exports.LoadPeerFileViaReferenceRequest = exports.LoadPeerFileViaSecretRequest = exports.GetFilesRequest = exports.GetFileRequest = exports.CreateTokenQrCodeForFileRequest = exports.CreateTokenForFileRequest = exports.CreateQrCodeForFileRequest = exports.UpdateDeviceRequest = exports.GetDeviceOnboardingInfoRequest = exports.GetDeviceRequest = void 0;
5557
+ exports.LoadPeerTokenRequest = exports.LoadPeerTokenViaSecretRequest = exports.LoadPeerTokenViaReferenceRequest = exports.GetTokensRequest = exports.GetTokenRequest = exports.GetQRCodeForTokenRequest = exports.CreateOwnTokenRequest = exports.LoadPeerRelationshipTemplateRequest = exports.LoadPeerRelationshipTemplateViaReferenceRequest = exports.LoadPeerRelationshipTemplateViaSecretRequest = exports.GetRelationshipTemplatesRequest = exports.GetRelationshipTemplateRequest = exports.CreateTokenQrCodeForOwnTemplateRequest = exports.CreateTokenForOwnTemplateRequest = exports.CreateQrCodeForOwnTemplateRequest = exports.CreateOwnRelationshipTemplateRequest = exports.RevokeRelationshipChangeRequest = exports.RejectRelationshipChangeRequest = exports.GetRelationshipsRequest = exports.GetRelationshipByAddressRequest = exports.GetRelationshipRequest = exports.GetAttributesForRelationshipRequest = exports.CreateRelationshipChangeRequest = exports.CreateRelationshipRequest = exports.AcceptRelationshipChangeRequest = exports.SendMessageRequest = exports.GetMessagesRequest = exports.GetMessageRequest = exports.GetAttachmentMetadataRequest = exports.CheckIdentityRequest = exports.UploadOwnFileValidatableRequest = exports.UploadOwnFileRequest = exports.GetOrLoadFileRequest = exports.GetOrLoadFileViaReferenceRequest = exports.GetOrLoadFileViaSecretRequest = exports.GetFilesRequest = exports.GetFileRequest = exports.CreateTokenQrCodeForFileRequest = exports.CreateTokenForFileRequest = exports.CreateQrCodeForFileRequest = exports.UpdateDeviceRequest = exports.GetDeviceOnboardingInfoRequest = exports.GetDeviceRequest = void 0;
5477
5558
  exports.LoadPeerTokenAnonymousByIdAndKeyRequest = {
5478
5559
  "$schema": "http://json-schema.org/draft-07/schema#",
5479
5560
  "$ref": "#/definitions/LoadPeerTokenAnonymousByIdAndKeyRequest",
@@ -7306,6 +7387,14 @@ exports.CreateOutgoingRequestRequest = {
7306
7387
  ],
7307
7388
  "description": "The items of the Request. Can be either a single {@link RequestItemJSONDerivations RequestItem } or a {@link RequestItemGroupJSON RequestItemGroup } , which itself can contain further {@link RequestItemJSONDerivations RequestItems } ."
7308
7389
  },
7390
+ "title": {
7391
+ "type": "string",
7392
+ "description": "The human-readable title of this Request."
7393
+ },
7394
+ "description": {
7395
+ "type": "string",
7396
+ "description": "The human-readable description of this Request."
7397
+ },
7309
7398
  "metadata": {
7310
7399
  "anyOf": [
7311
7400
  {
@@ -7410,6 +7499,9 @@ exports.CreateOutgoingRequestRequest = {
7410
7499
  },
7411
7500
  {
7412
7501
  "$ref": "#/definitions/ShareAttributeRequestItemJSON"
7502
+ },
7503
+ {
7504
+ "$ref": "#/definitions/ConsentRequestItemJSON"
7413
7505
  }
7414
7506
  ]
7415
7507
  },
@@ -7941,6 +8033,51 @@ exports.CreateOutgoingRequestRequest = {
7941
8033
  ],
7942
8034
  "additionalProperties": false
7943
8035
  },
8036
+ "ConsentRequestItemJSON": {
8037
+ "type": "object",
8038
+ "properties": {
8039
+ "@type": {
8040
+ "type": "string"
8041
+ },
8042
+ "@context": {
8043
+ "type": "string"
8044
+ },
8045
+ "@version": {
8046
+ "type": "string"
8047
+ },
8048
+ "title": {
8049
+ "type": "string",
8050
+ "description": "The human-readable title of this item."
8051
+ },
8052
+ "description": {
8053
+ "type": "string",
8054
+ "description": "The human-readable description of this item."
8055
+ },
8056
+ "metadata": {
8057
+ "type": "object",
8058
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
8059
+ },
8060
+ "mustBeAccepted": {
8061
+ "type": "boolean",
8062
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroupJSON RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItemJSON RequestItem } can only be accepted if the parent group is accepted as well."
8063
+ },
8064
+ "consent": {
8065
+ "type": "string"
8066
+ },
8067
+ "link": {
8068
+ "type": "string"
8069
+ },
8070
+ "requireActiveConsent": {
8071
+ "type": "boolean"
8072
+ }
8073
+ },
8074
+ "required": [
8075
+ "@type",
8076
+ "consent",
8077
+ "mustBeAccepted"
8078
+ ],
8079
+ "additionalProperties": false
8080
+ },
7944
8081
  "IRequestItemGroup": {
7945
8082
  "type": "object",
7946
8083
  "properties": {
@@ -7991,6 +8128,9 @@ exports.CreateOutgoingRequestRequest = {
7991
8128
  },
7992
8129
  {
7993
8130
  "$ref": "#/definitions/IShareAttributeRequestItem"
8131
+ },
8132
+ {
8133
+ "$ref": "#/definitions/IConsentRequestItem"
7994
8134
  }
7995
8135
  ]
7996
8136
  },
@@ -8414,6 +8554,41 @@ exports.CreateOutgoingRequestRequest = {
8414
8554
  ],
8415
8555
  "additionalProperties": false
8416
8556
  },
8557
+ "IConsentRequestItem": {
8558
+ "type": "object",
8559
+ "properties": {
8560
+ "title": {
8561
+ "type": "string",
8562
+ "description": "The human-readable title of this item."
8563
+ },
8564
+ "description": {
8565
+ "type": "string",
8566
+ "description": "The human-readable description of this item."
8567
+ },
8568
+ "metadata": {
8569
+ "type": "object",
8570
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
8571
+ },
8572
+ "mustBeAccepted": {
8573
+ "type": "boolean",
8574
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroup RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItem RequestItem } can only be accepted if the parent group is accepted as well."
8575
+ },
8576
+ "consent": {
8577
+ "type": "string"
8578
+ },
8579
+ "link": {
8580
+ "type": "string"
8581
+ },
8582
+ "requireActiveConsent": {
8583
+ "type": "boolean"
8584
+ }
8585
+ },
8586
+ "required": [
8587
+ "consent",
8588
+ "mustBeAccepted"
8589
+ ],
8590
+ "additionalProperties": false
8591
+ },
8417
8592
  "AddressString": {
8418
8593
  "type": "string",
8419
8594
  "pattern": "id1[A-Za-z0-9]{32,33}"
@@ -9537,6 +9712,14 @@ exports.ReceivedIncomingRequestRequest = {
9537
9712
  },
9538
9713
  "description": "The items of the Request. Can be either a single {@link RequestItemJSONDerivations RequestItem } or a {@link RequestItemGroupJSON RequestItemGroup } , which itself can contain further {@link RequestItemJSONDerivations RequestItems } ."
9539
9714
  },
9715
+ "title": {
9716
+ "type": "string",
9717
+ "description": "The human-readable title of this Request."
9718
+ },
9719
+ "description": {
9720
+ "type": "string",
9721
+ "description": "The human-readable description of this Request."
9722
+ },
9540
9723
  "metadata": {
9541
9724
  "type": "object",
9542
9725
  "description": "This property can be used to add some arbitrary metadata to this request. The content of this property will be copied into the response on the side of the recipient."
@@ -9608,6 +9791,9 @@ exports.ReceivedIncomingRequestRequest = {
9608
9791
  },
9609
9792
  {
9610
9793
  "$ref": "#/definitions/ShareAttributeRequestItemJSON"
9794
+ },
9795
+ {
9796
+ "$ref": "#/definitions/ConsentRequestItemJSON"
9611
9797
  }
9612
9798
  ]
9613
9799
  },
@@ -10139,6 +10325,51 @@ exports.ReceivedIncomingRequestRequest = {
10139
10325
  ],
10140
10326
  "additionalProperties": false
10141
10327
  },
10328
+ "ConsentRequestItemJSON": {
10329
+ "type": "object",
10330
+ "properties": {
10331
+ "@type": {
10332
+ "type": "string"
10333
+ },
10334
+ "@context": {
10335
+ "type": "string"
10336
+ },
10337
+ "@version": {
10338
+ "type": "string"
10339
+ },
10340
+ "title": {
10341
+ "type": "string",
10342
+ "description": "The human-readable title of this item."
10343
+ },
10344
+ "description": {
10345
+ "type": "string",
10346
+ "description": "The human-readable description of this item."
10347
+ },
10348
+ "metadata": {
10349
+ "type": "object",
10350
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
10351
+ },
10352
+ "mustBeAccepted": {
10353
+ "type": "boolean",
10354
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroupJSON RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItemJSON RequestItem } can only be accepted if the parent group is accepted as well."
10355
+ },
10356
+ "consent": {
10357
+ "type": "string"
10358
+ },
10359
+ "link": {
10360
+ "type": "string"
10361
+ },
10362
+ "requireActiveConsent": {
10363
+ "type": "boolean"
10364
+ }
10365
+ },
10366
+ "required": [
10367
+ "@type",
10368
+ "consent",
10369
+ "mustBeAccepted"
10370
+ ],
10371
+ "additionalProperties": false
10372
+ },
10142
10373
  "MessageIdString": {
10143
10374
  "type": "string",
10144
10375
  "pattern": "MSG[A-Za-z0-9]{17}"
@@ -11078,11 +11309,11 @@ exports.GetFilesRequest = {
11078
11309
  }
11079
11310
  }
11080
11311
  };
11081
- exports.LoadPeerFileViaSecretRequest = {
11312
+ exports.GetOrLoadFileViaSecretRequest = {
11082
11313
  "$schema": "http://json-schema.org/draft-07/schema#",
11083
- "$ref": "#/definitions/LoadPeerFileViaSecretRequest",
11314
+ "$ref": "#/definitions/GetOrLoadFileViaSecretRequest",
11084
11315
  "definitions": {
11085
- "LoadPeerFileViaSecretRequest": {
11316
+ "GetOrLoadFileViaSecretRequest": {
11086
11317
  "type": "object",
11087
11318
  "properties": {
11088
11319
  "id": {
@@ -11105,11 +11336,11 @@ exports.LoadPeerFileViaSecretRequest = {
11105
11336
  }
11106
11337
  }
11107
11338
  };
11108
- exports.LoadPeerFileViaReferenceRequest = {
11339
+ exports.GetOrLoadFileViaReferenceRequest = {
11109
11340
  "$schema": "http://json-schema.org/draft-07/schema#",
11110
- "$ref": "#/definitions/LoadPeerFileViaReferenceRequest",
11341
+ "$ref": "#/definitions/GetOrLoadFileViaReferenceRequest",
11111
11342
  "definitions": {
11112
- "LoadPeerFileViaReferenceRequest": {
11343
+ "GetOrLoadFileViaReferenceRequest": {
11113
11344
  "type": "object",
11114
11345
  "properties": {
11115
11346
  "reference": {
@@ -11139,21 +11370,21 @@ exports.LoadPeerFileViaReferenceRequest = {
11139
11370
  }
11140
11371
  }
11141
11372
  };
11142
- exports.LoadPeerFileRequest = {
11373
+ exports.GetOrLoadFileRequest = {
11143
11374
  "$schema": "http://json-schema.org/draft-07/schema#",
11144
- "$ref": "#/definitions/LoadPeerFileRequest",
11375
+ "$ref": "#/definitions/GetOrLoadFileRequest",
11145
11376
  "definitions": {
11146
- "LoadPeerFileRequest": {
11377
+ "GetOrLoadFileRequest": {
11147
11378
  "anyOf": [
11148
11379
  {
11149
- "$ref": "#/definitions/LoadPeerFileViaSecretRequest"
11380
+ "$ref": "#/definitions/GetOrLoadFileViaSecretRequest"
11150
11381
  },
11151
11382
  {
11152
- "$ref": "#/definitions/LoadPeerFileViaReferenceRequest"
11383
+ "$ref": "#/definitions/GetOrLoadFileViaReferenceRequest"
11153
11384
  }
11154
11385
  ]
11155
11386
  },
11156
- "LoadPeerFileViaSecretRequest": {
11387
+ "GetOrLoadFileViaSecretRequest": {
11157
11388
  "type": "object",
11158
11389
  "properties": {
11159
11390
  "id": {
@@ -11174,7 +11405,7 @@ exports.LoadPeerFileRequest = {
11174
11405
  "type": "string",
11175
11406
  "pattern": "FIL[A-Za-z0-9]{17}"
11176
11407
  },
11177
- "LoadPeerFileViaReferenceRequest": {
11408
+ "GetOrLoadFileViaReferenceRequest": {
11178
11409
  "type": "object",
11179
11410
  "properties": {
11180
11411
  "reference": {
@@ -17147,10 +17378,10 @@ exports.GetFilesUseCase = GetFilesUseCase;
17147
17378
 
17148
17379
  /***/ }),
17149
17380
 
17150
- /***/ "./dist/useCases/transport/files/LoadPeerFile.js":
17151
- /*!*******************************************************!*\
17152
- !*** ./dist/useCases/transport/files/LoadPeerFile.js ***!
17153
- \*******************************************************/
17381
+ /***/ "./dist/useCases/transport/files/GetOrLoadFile.js":
17382
+ /*!********************************************************!*\
17383
+ !*** ./dist/useCases/transport/files/GetOrLoadFile.js ***!
17384
+ \********************************************************/
17154
17385
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
17155
17386
 
17156
17387
  "use strict";
@@ -17168,36 +17399,36 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
17168
17399
  return function (target, key) { decorator(target, key, paramIndex); }
17169
17400
  };
17170
17401
  Object.defineProperty(exports, "__esModule", ({ value: true }));
17171
- exports.LoadPeerFileUseCase = void 0;
17402
+ exports.GetOrLoadFileUseCase = void 0;
17172
17403
  const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
17173
17404
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
17174
17405
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
17175
17406
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
17176
17407
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
17177
17408
  const FileMapper_1 = __webpack_require__(/*! ./FileMapper */ "./dist/useCases/transport/files/FileMapper.js");
17178
- function isLoadPeerFileViaSecret(request) {
17409
+ function isViaSecret(request) {
17179
17410
  return "id" in request && "secretKey" in request;
17180
17411
  }
17181
- function isLoadPeerFileViaReference(request) {
17412
+ function isViaReference(request) {
17182
17413
  return "reference" in request;
17183
17414
  }
17184
17415
  let Validator = class Validator extends common_1.SchemaValidator {
17185
17416
  constructor(schemaRepository) {
17186
- super(schemaRepository.getSchema("LoadPeerFileRequest"));
17187
- this.loadViaSecretSchema = schemaRepository.getSchema("LoadPeerFileViaSecretRequest");
17188
- this.loadViaReferenceSchema = schemaRepository.getSchema("LoadPeerFileViaReferenceRequest");
17417
+ super(schemaRepository.getSchema("GetOrLoadFileRequest"));
17418
+ this.loadViaSecretSchema = schemaRepository.getSchema("GetOrLoadFileViaSecretRequest");
17419
+ this.loadViaReferenceSchema = schemaRepository.getSchema("GetOrLoadFileViaReferenceRequest");
17189
17420
  }
17190
17421
  validate(input) {
17191
17422
  if (this.schema.validate(input).isValid)
17192
17423
  return new common_1.ValidationResult();
17193
17424
  // any-of in combination with missing properties is a bit weird
17194
17425
  // when { reference: null | undefined } is passed, it ignores reference
17195
- // and treats it like a LoadPeerFileViaSecret.
17426
+ // and treats it like a GetOrLoadFileViaSecret.
17196
17427
  // That's why we validate with the specific schema afterwards
17197
- if (isLoadPeerFileViaReference(input)) {
17428
+ if (isViaReference(input)) {
17198
17429
  return this.convertValidationResult(this.loadViaReferenceSchema.validate(input));
17199
17430
  }
17200
- else if (isLoadPeerFileViaSecret(input)) {
17431
+ else if (isViaSecret(input)) {
17201
17432
  return this.convertValidationResult(this.loadViaSecretSchema.validate(input));
17202
17433
  }
17203
17434
  const result = new common_1.ValidationResult();
@@ -17209,7 +17440,7 @@ Validator = __decorate([
17209
17440
  __param(0, typescript_ioc_1.Inject),
17210
17441
  __metadata("design:paramtypes", [common_1.SchemaRepository])
17211
17442
  ], Validator);
17212
- let LoadPeerFileUseCase = class LoadPeerFileUseCase extends common_1.UseCase {
17443
+ let GetOrLoadFileUseCase = class GetOrLoadFileUseCase extends common_1.UseCase {
17213
17444
  constructor(fileController, tokenController, accountController, validator) {
17214
17445
  super(validator);
17215
17446
  this.fileController = fileController;
@@ -17218,11 +17449,11 @@ let LoadPeerFileUseCase = class LoadPeerFileUseCase extends common_1.UseCase {
17218
17449
  }
17219
17450
  async executeInternal(request) {
17220
17451
  let createdFileResult;
17221
- if (isLoadPeerFileViaSecret(request)) {
17452
+ if (isViaSecret(request)) {
17222
17453
  const key = crypto_1.CryptoSecretKey.fromBase64(request.secretKey);
17223
17454
  createdFileResult = await this.loadFile(transport_1.CoreId.from(request.id), key);
17224
17455
  }
17225
- else if (isLoadPeerFileViaReference(request)) {
17456
+ else if (isViaReference(request)) {
17226
17457
  createdFileResult = await this.loadFileFromReference(request.reference);
17227
17458
  }
17228
17459
  else {
@@ -17241,7 +17472,7 @@ let LoadPeerFileUseCase = class LoadPeerFileUseCase extends common_1.UseCase {
17241
17472
  throw common_1.RuntimeErrors.files.invalidReference(reference);
17242
17473
  }
17243
17474
  async loadFileFromFileReference(truncatedReference) {
17244
- const file = await this.fileController.loadPeerFileByTruncated(truncatedReference);
17475
+ const file = await this.fileController.getOrLoadFileByTruncated(truncatedReference);
17245
17476
  return ts_utils_1.Result.ok(FileMapper_1.FileMapper.toFileDTO(file));
17246
17477
  }
17247
17478
  async loadFileFromTokenReference(truncatedReference) {
@@ -17256,11 +17487,11 @@ let LoadPeerFileUseCase = class LoadPeerFileUseCase extends common_1.UseCase {
17256
17487
  return await this.loadFile(content.fileId, content.secretKey);
17257
17488
  }
17258
17489
  async loadFile(id, key) {
17259
- const file = await this.fileController.loadPeerFile(id, key);
17490
+ const file = await this.fileController.getOrLoadFile(id, key);
17260
17491
  return ts_utils_1.Result.ok(FileMapper_1.FileMapper.toFileDTO(file));
17261
17492
  }
17262
17493
  };
17263
- LoadPeerFileUseCase = __decorate([
17494
+ GetOrLoadFileUseCase = __decorate([
17264
17495
  __param(0, typescript_ioc_1.Inject),
17265
17496
  __param(1, typescript_ioc_1.Inject),
17266
17497
  __param(2, typescript_ioc_1.Inject),
@@ -17269,9 +17500,9 @@ LoadPeerFileUseCase = __decorate([
17269
17500
  transport_1.TokenController,
17270
17501
  transport_1.AccountController,
17271
17502
  Validator])
17272
- ], LoadPeerFileUseCase);
17273
- exports.LoadPeerFileUseCase = LoadPeerFileUseCase;
17274
- //# sourceMappingURL=LoadPeerFile.js.map
17503
+ ], GetOrLoadFileUseCase);
17504
+ exports.GetOrLoadFileUseCase = GetOrLoadFileUseCase;
17505
+ //# sourceMappingURL=GetOrLoadFile.js.map
17275
17506
 
17276
17507
  /***/ }),
17277
17508
 
@@ -17393,7 +17624,7 @@ __exportStar(__webpack_require__(/*! ./DownloadFile */ "./dist/useCases/transpor
17393
17624
  __exportStar(__webpack_require__(/*! ./FileMapper */ "./dist/useCases/transport/files/FileMapper.js"), exports);
17394
17625
  __exportStar(__webpack_require__(/*! ./GetFile */ "./dist/useCases/transport/files/GetFile.js"), exports);
17395
17626
  __exportStar(__webpack_require__(/*! ./GetFiles */ "./dist/useCases/transport/files/GetFiles.js"), exports);
17396
- __exportStar(__webpack_require__(/*! ./LoadPeerFile */ "./dist/useCases/transport/files/LoadPeerFile.js"), exports);
17627
+ __exportStar(__webpack_require__(/*! ./GetOrLoadFile */ "./dist/useCases/transport/files/GetOrLoadFile.js"), exports);
17397
17628
  __exportStar(__webpack_require__(/*! ./UploadOwnFile */ "./dist/useCases/transport/files/UploadOwnFile.js"), exports);
17398
17629
  //# sourceMappingURL=index.js.map
17399
17630
 
@@ -20536,7 +20767,7 @@ class ApplicationError extends Error {
20536
20767
  return this.code === error.code;
20537
20768
  }
20538
20769
  toString() {
20539
- return JSON.stringify(this, undefined, 2);
20770
+ return JSON.stringify({ code: this.code, message: this.message, data: this.data }, undefined, 2);
20540
20771
  }
20541
20772
  }
20542
20773
  exports.ApplicationError = ApplicationError;