@nmshd/runtime 2.0.0-alpha.23 → 2.0.0-alpha.26

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 (54) hide show
  1. package/dist/buildInformation.js +5 -5
  2. package/dist/extensibility/facades/transport/FilesFacade.d.ts +4 -2
  3. package/dist/extensibility/facades/transport/FilesFacade.js +7 -1
  4. package/dist/extensibility/facades/transport/FilesFacade.js.map +1 -1
  5. package/dist/extensibility/facades/transport/RelationshipTemplatesFacade.d.ts +2 -2
  6. package/dist/extensibility/facades/transport/RelationshipTemplatesFacade.js +3 -3
  7. package/dist/types/transport/FileDTO.d.ts +1 -0
  8. package/dist/useCases/common/Base64ForIdPrefix.d.ts +5 -0
  9. package/dist/useCases/common/Base64ForIdPrefix.js +13 -0
  10. package/dist/useCases/common/Base64ForIdPrefix.js.map +1 -0
  11. package/dist/useCases/common/QRCode.d.ts +4 -1
  12. package/dist/useCases/common/QRCode.js +5 -2
  13. package/dist/useCases/common/QRCode.js.map +1 -1
  14. package/dist/useCases/common/RuntimeErrors.d.ts +5 -0
  15. package/dist/useCases/common/RuntimeErrors.js +12 -2
  16. package/dist/useCases/common/RuntimeErrors.js.map +1 -1
  17. package/dist/useCases/common/Schemas.d.ts +3 -3
  18. package/dist/useCases/common/Schemas.js +68 -85
  19. package/dist/useCases/common/Schemas.js.map +1 -1
  20. package/dist/useCases/common/index.d.ts +1 -0
  21. package/dist/useCases/common/index.js +1 -0
  22. package/dist/useCases/common/index.js.map +1 -1
  23. package/dist/useCases/transport/challenges/CreateChallenge.d.ts +1 -1
  24. package/dist/useCases/transport/files/CreateQrCodeForFile.d.ts +21 -0
  25. package/dist/useCases/transport/files/CreateQrCodeForFile.js +49 -0
  26. package/dist/useCases/transport/files/CreateQrCodeForFile.js.map +1 -0
  27. package/dist/useCases/transport/files/CreateTokenForFile.d.ts +1 -1
  28. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.d.ts +1 -1
  29. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.js +1 -1
  30. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.js.map +1 -1
  31. package/dist/useCases/transport/files/DownloadFile.d.ts +1 -1
  32. package/dist/useCases/transport/files/FileMapper.js +2 -1
  33. package/dist/useCases/transport/files/FileMapper.js.map +1 -1
  34. package/dist/useCases/transport/files/GetFile.d.ts +1 -1
  35. package/dist/useCases/transport/files/LoadPeerFile.d.ts +7 -5
  36. package/dist/useCases/transport/files/LoadPeerFile.js +19 -6
  37. package/dist/useCases/transport/files/LoadPeerFile.js.map +1 -1
  38. package/dist/useCases/transport/files/index.d.ts +1 -0
  39. package/dist/useCases/transport/files/index.js +1 -0
  40. package/dist/useCases/transport/files/index.js.map +1 -1
  41. package/dist/useCases/transport/relationshipTemplates/CreateQrCodeForOwnRelationshipTemplate.js +1 -1
  42. package/dist/useCases/transport/relationshipTemplates/CreateQrCodeForOwnRelationshipTemplate.js.map +1 -1
  43. package/dist/useCases/transport/relationshipTemplates/CreateTokenQrCodeForOwnRelationshipTemplate.js +1 -1
  44. package/dist/useCases/transport/relationshipTemplates/CreateTokenQrCodeForOwnRelationshipTemplate.js.map +1 -1
  45. package/dist/useCases/transport/relationshipTemplates/LoadPeerRelationshipTemplate.d.ts +19 -8
  46. package/dist/useCases/transport/relationshipTemplates/LoadPeerRelationshipTemplate.js +44 -21
  47. package/dist/useCases/transport/relationshipTemplates/LoadPeerRelationshipTemplate.js.map +1 -1
  48. package/dist/useCases/transport/tokens/GetQRCodeForToken.js +1 -1
  49. package/dist/useCases/transport/tokens/GetQRCodeForToken.js.map +1 -1
  50. package/lib-web/nmshd.runtime.js +253 -130
  51. package/lib-web/nmshd.runtime.js.map +1 -1
  52. package/lib-web/nmshd.runtime.min.js +1 -1
  53. package/lib-web/nmshd.runtime.min.js.map +1 -1
  54. package/package.json +5 -5
@@ -435,11 +435,11 @@ 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.23",
439
- build: "70",
440
- date: "2022-07-01T10:24:27+00:00",
441
- commit: "74f5ed4bfdd36f1f8a020f275b00b3317933132a",
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.22","@nmshd/content":"2.0.0-alpha.37","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-alpha.3","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.26",
439
+ build: "73",
440
+ date: "2022-07-05T09:40:14+00:00",
441
+ commit: "36ae7dc60acb6fb66e19614c3b693a88bdac7430",
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.23","@nmshd/content":"2.0.0-alpha.38","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-alpha.3","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,
445
445
  consumption: consumption_1.buildInformation,
@@ -2972,12 +2972,13 @@ exports.FilesFacade = void 0;
2972
2972
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
2973
2973
  const useCases_1 = __webpack_require__(/*! ../../../useCases */ "./dist/useCases/index.js");
2974
2974
  let FilesFacade = class FilesFacade {
2975
- constructor(uploadOwnFileUseCase, loadPeerFileUseCase, getFilesUseCase, downloadFileUseCase, getFileUseCase, createTokenForFileUseCase, createTokenQrCodeForFileUseCase) {
2975
+ constructor(uploadOwnFileUseCase, loadPeerFileUseCase, getFilesUseCase, downloadFileUseCase, getFileUseCase, createQrCodeForFileUseCase, createTokenForFileUseCase, createTokenQrCodeForFileUseCase) {
2976
2976
  this.uploadOwnFileUseCase = uploadOwnFileUseCase;
2977
2977
  this.loadPeerFileUseCase = loadPeerFileUseCase;
2978
2978
  this.getFilesUseCase = getFilesUseCase;
2979
2979
  this.downloadFileUseCase = downloadFileUseCase;
2980
2980
  this.getFileUseCase = getFileUseCase;
2981
+ this.createQrCodeForFileUseCase = createQrCodeForFileUseCase;
2981
2982
  this.createTokenForFileUseCase = createTokenForFileUseCase;
2982
2983
  this.createTokenQrCodeForFileUseCase = createTokenQrCodeForFileUseCase;
2983
2984
  }
@@ -2996,6 +2997,9 @@ let FilesFacade = class FilesFacade {
2996
2997
  async uploadOwnFile(request) {
2997
2998
  return await this.uploadOwnFileUseCase.execute(request);
2998
2999
  }
3000
+ async createQrCodeForFile(request) {
3001
+ return await this.createQrCodeForFileUseCase.execute(request);
3002
+ }
2999
3003
  async createTokenForFile(request) {
3000
3004
  return await this.createTokenForFileUseCase.execute(request);
3001
3005
  }
@@ -3011,11 +3015,13 @@ FilesFacade = __decorate([
3011
3015
  __param(4, typescript_ioc_1.Inject),
3012
3016
  __param(5, typescript_ioc_1.Inject),
3013
3017
  __param(6, typescript_ioc_1.Inject),
3018
+ __param(7, typescript_ioc_1.Inject),
3014
3019
  __metadata("design:paramtypes", [useCases_1.UploadOwnFileUseCase,
3015
3020
  useCases_1.LoadPeerFileUseCase,
3016
3021
  useCases_1.GetFilesUseCase,
3017
3022
  useCases_1.DownloadFileUseCase,
3018
3023
  useCases_1.GetFileUseCase,
3024
+ useCases_1.CreateQrCodeForFileUseCase,
3019
3025
  useCases_1.CreateTokenForFileUseCase,
3020
3026
  useCases_1.CreateTokenQrCodeForFileUseCase])
3021
3027
  ], FilesFacade);
@@ -3155,10 +3161,10 @@ exports.RelationshipTemplatesFacade = void 0;
3155
3161
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
3156
3162
  const useCases_1 = __webpack_require__(/*! ../../../useCases */ "./dist/useCases/index.js");
3157
3163
  let RelationshipTemplatesFacade = class RelationshipTemplatesFacade {
3158
- constructor(createOwnRelationshipTemplateUseCase, loadPeerRelationshipTemplateUseCase, getRealtionshipTemplatesUseCase, getRelationshipTemplateUseCase, createQrCodeForOwnTemplateUseCase, createTokenQrCodeForOwnTemplateUseCase, createTokenForOwnTemplateUseCase) {
3164
+ constructor(createOwnRelationshipTemplateUseCase, loadPeerRelationshipTemplateUseCase, getRelationshipTemplatesUseCase, getRelationshipTemplateUseCase, createQrCodeForOwnTemplateUseCase, createTokenQrCodeForOwnTemplateUseCase, createTokenForOwnTemplateUseCase) {
3159
3165
  this.createOwnRelationshipTemplateUseCase = createOwnRelationshipTemplateUseCase;
3160
3166
  this.loadPeerRelationshipTemplateUseCase = loadPeerRelationshipTemplateUseCase;
3161
- this.getRealtionshipTemplatesUseCase = getRealtionshipTemplatesUseCase;
3167
+ this.getRelationshipTemplatesUseCase = getRelationshipTemplatesUseCase;
3162
3168
  this.getRelationshipTemplateUseCase = getRelationshipTemplateUseCase;
3163
3169
  this.createQrCodeForOwnTemplateUseCase = createQrCodeForOwnTemplateUseCase;
3164
3170
  this.createTokenQrCodeForOwnTemplateUseCase = createTokenQrCodeForOwnTemplateUseCase;
@@ -3171,7 +3177,7 @@ let RelationshipTemplatesFacade = class RelationshipTemplatesFacade {
3171
3177
  return await this.loadPeerRelationshipTemplateUseCase.execute(request);
3172
3178
  }
3173
3179
  async getRelationshipTemplates(request) {
3174
- return await this.getRealtionshipTemplatesUseCase.execute(request);
3180
+ return await this.getRelationshipTemplatesUseCase.execute(request);
3175
3181
  }
3176
3182
  async getRelationshipTemplate(request) {
3177
3183
  return await this.getRelationshipTemplateUseCase.execute(request);
@@ -4439,6 +4445,29 @@ __exportStar(__webpack_require__(/*! ./LoadPeerTokenAnonymousByTruncatedReferenc
4439
4445
 
4440
4446
  /***/ }),
4441
4447
 
4448
+ /***/ "./dist/useCases/common/Base64ForIdPrefix.js":
4449
+ /*!***************************************************!*\
4450
+ !*** ./dist/useCases/common/Base64ForIdPrefix.js ***!
4451
+ \***************************************************/
4452
+ /***/ ((__unused_webpack_module, exports) => {
4453
+
4454
+ "use strict";
4455
+
4456
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4457
+ exports.Base64ForIdPrefix = void 0;
4458
+ var Base64ForIdPrefix;
4459
+ (function (Base64ForIdPrefix) {
4460
+ // base64 for "RLT"
4461
+ Base64ForIdPrefix["RelationshipTemplate"] = "UkxU";
4462
+ // base64 for 'TOK'
4463
+ Base64ForIdPrefix["Token"] = "VE9L";
4464
+ // base64 for 'FIL'
4465
+ Base64ForIdPrefix["File"] = "RklM";
4466
+ })(Base64ForIdPrefix = exports.Base64ForIdPrefix || (exports.Base64ForIdPrefix = {}));
4467
+ //# sourceMappingURL=Base64ForIdPrefix.js.map
4468
+
4469
+ /***/ }),
4470
+
4442
4471
  /***/ "./dist/useCases/common/OwnerRestriction.js":
4443
4472
  /*!**************************************************!*\
4444
4473
  !*** ./dist/useCases/common/OwnerRestriction.js ***!
@@ -4530,11 +4559,14 @@ class QRCode {
4530
4559
  asBase64() {
4531
4560
  return this.base64;
4532
4561
  }
4533
- static async from(utf8Content) {
4534
- const dataUrl = await QRCodeLibrary.toDataURL(`nmshd://qr#${utf8Content}`);
4562
+ static async from(content, prefix) {
4563
+ const dataUrl = await QRCodeLibrary.toDataURL(`nmshd://${prefix}#${content}`);
4535
4564
  const base64 = dataUrl.split(",")[1];
4536
4565
  return new QRCode(base64);
4537
4566
  }
4567
+ static async forTruncateable(truncateable) {
4568
+ return await this.from(truncateable.truncate(), "tr");
4569
+ }
4538
4570
  }
4539
4571
  exports.QRCode = QRCode;
4540
4572
  //# sourceMappingURL=QRCode.js.map
@@ -4552,6 +4584,7 @@ exports.QRCode = QRCode;
4552
4584
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4553
4585
  exports.RuntimeErrors = void 0;
4554
4586
  const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
4587
+ const Base64ForIdPrefix_1 = __webpack_require__(/*! ./Base64ForIdPrefix */ "./dist/useCases/common/Base64ForIdPrefix.js");
4555
4588
  class General {
4556
4589
  unknown(message, data) {
4557
4590
  return new ts_utils_1.ApplicationError("error.runtime.unknown", message, data);
@@ -4610,12 +4643,20 @@ class Serval {
4610
4643
  return new ts_utils_1.ApplicationError("error.runtime.requestDeserialization", message);
4611
4644
  }
4612
4645
  }
4646
+ class Files {
4647
+ invalidReference(reference) {
4648
+ return new ts_utils_1.ApplicationError("error.runtime.files.invalidReference", `The reference for a file must start with '${Base64ForIdPrefix_1.Base64ForIdPrefix.Token}' or '${Base64ForIdPrefix_1.Base64ForIdPrefix.File}'. The given reference '${reference}' is not valid.`);
4649
+ }
4650
+ }
4613
4651
  class RelationshipTemplates {
4614
4652
  cannotCreateTokenForPeerTemplate() {
4615
- return new ts_utils_1.ApplicationError("error.runtime.relationshipRequests.cannotCreateTokenForPeerTemplate", "You cannot create a token for a peer template.");
4653
+ return new ts_utils_1.ApplicationError("error.runtime.relationshipTemplates.cannotCreateTokenForPeerTemplate", "You cannot create a token for a peer template.");
4616
4654
  }
4617
4655
  cannotCreateQRCodeForPeerTemplate() {
4618
- return new ts_utils_1.ApplicationError("error.runtime.relationshipRequests.cannotCreateQRCodeForPeerTemplate", "You cannot create a QRCode for a peer template.");
4656
+ return new ts_utils_1.ApplicationError("error.runtime.relationshipTemplates.cannotCreateQRCodeForPeerTemplate", "You cannot create a QRCode for a peer template.");
4657
+ }
4658
+ invalidReference(reference) {
4659
+ return new ts_utils_1.ApplicationError("error.runtime.relationshipTemplates.invalidReference", `The reference for a relationship template must start with '${Base64ForIdPrefix_1.Base64ForIdPrefix.Token}' or '${Base64ForIdPrefix_1.Base64ForIdPrefix.RelationshipTemplate}'. The given reference '${reference}' is not valid.`);
4619
4660
  }
4620
4661
  }
4621
4662
  class RelationshipInfo {
@@ -4677,6 +4718,7 @@ RuntimeErrors.general = new General();
4677
4718
  RuntimeErrors.serval = new Serval();
4678
4719
  RuntimeErrors.startup = new Startup();
4679
4720
  RuntimeErrors.database = new Database();
4721
+ RuntimeErrors.files = new Files();
4680
4722
  RuntimeErrors.relationshipTemplates = new RelationshipTemplates();
4681
4723
  RuntimeErrors.messages = new Messages();
4682
4724
  RuntimeErrors.relationshipInfo = new RelationshipInfo();
@@ -4798,7 +4840,7 @@ exports.JsonSchema = JsonSchema;
4798
4840
 
4799
4841
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4800
4842
  exports.GetDeviceRequest = 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.GetValidAttributesRequest = exports.GetAttributesRequest = exports.GetAttributeRequest = exports.ExecuteRelationshipAttributeQueryRequest = exports.ExecuteIdentityAttributeQueryRequest = exports.DeleteAttributeRequest = exports.CreateSharedAttributeCopyRequest = exports.CreateAttributeRequest = exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = exports.LoadPeerTokenAnonymousByIdAndKeyRequest = void 0;
4801
- exports.LoadPeerTokenRequest = exports.GetTokensRequest = exports.GetTokenRequest = exports.GetQRCodeForTokenRequest = exports.CreateOwnTokenRequest = exports.LoadPeerRelationshipTemplateRequest = exports.LoadPeerRelationshipTemplateRequestFromRelationshipTemplateReferenceRequest = exports.LoadPeerRelationshipTemplateRequestFromTokenReferenceRequest = exports.LoadPeerRelationshipTemplateRequestFromIdAndKeyRequest = 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.UploadOwnFileRequest = exports.LoadPeerFileRequest = exports.LoadPeerFileViaReferenceRequest = exports.LoadPeerFileViaSecretRequest = exports.GetFilesRequest = exports.GetFileRequest = exports.CreateTokenQrCodeForFileRequest = exports.CreateTokenForFileRequest = exports.UpdateDeviceRequest = exports.GetDeviceOnboardingInfoRequest = void 0;
4843
+ exports.LoadPeerTokenRequest = 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.UploadOwnFileRequest = exports.LoadPeerFileRequest = exports.LoadPeerFileViaReferenceRequest = exports.LoadPeerFileViaSecretRequest = exports.GetFilesRequest = exports.GetFileRequest = exports.CreateTokenQrCodeForFileRequest = exports.CreateTokenForFileRequest = exports.CreateQrCodeForFileRequest = exports.UpdateDeviceRequest = exports.GetDeviceOnboardingInfoRequest = void 0;
4802
4844
  exports.LoadPeerTokenAnonymousByIdAndKeyRequest = {
4803
4845
  "$schema": "http://json-schema.org/draft-07/schema#",
4804
4846
  "$ref": "#/definitions/LoadPeerTokenAnonymousByIdAndKeyRequest",
@@ -6151,7 +6193,7 @@ exports.CreateOutgoingRequestRequest = {
6151
6193
  ],
6152
6194
  "description": "The items of the Request. Can be either a single {@link RequestItemJSON RequestItem } or a {@link RequestItemGroupJSON RequestItemGroup } , which itself can contain further {@link RequestItemJSON RequestItems } ."
6153
6195
  },
6154
- "responseMetadata": {
6196
+ "metadata": {
6155
6197
  "anyOf": [
6156
6198
  {
6157
6199
  "type": "object",
@@ -6220,7 +6262,7 @@ exports.CreateOutgoingRequestRequest = {
6220
6262
  "type": "boolean",
6221
6263
  "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."
6222
6264
  },
6223
- "responseMetadata": {
6265
+ "metadata": {
6224
6266
  "type": "object",
6225
6267
  "description": "This property can be used to add some arbitrary metadata to this group. 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."
6226
6268
  },
@@ -6260,7 +6302,7 @@ exports.CreateOutgoingRequestRequest = {
6260
6302
  "type": "string",
6261
6303
  "description": "The human-readable description of this item."
6262
6304
  },
6263
- "responseMetadata": {
6305
+ "metadata": {
6264
6306
  "type": "object",
6265
6307
  "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."
6266
6308
  },
@@ -6290,7 +6332,7 @@ exports.CreateOutgoingRequestRequest = {
6290
6332
  "type": "boolean",
6291
6333
  "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."
6292
6334
  },
6293
- "responseMetadata": {
6335
+ "metadata": {
6294
6336
  "type": "object",
6295
6337
  "description": "This property can be used to add some arbitrary metadata to this group. 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."
6296
6338
  },
@@ -6320,7 +6362,7 @@ exports.CreateOutgoingRequestRequest = {
6320
6362
  "type": "string",
6321
6363
  "description": "The human-readable description of this item."
6322
6364
  },
6323
- "responseMetadata": {
6365
+ "metadata": {
6324
6366
  "type": "object",
6325
6367
  "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."
6326
6368
  },
@@ -6519,9 +6561,6 @@ exports.CompleteOutgoingRequestRequest = {
6519
6561
  }
6520
6562
  ]
6521
6563
  }
6522
- },
6523
- "metadata": {
6524
- "type": "object"
6525
6564
  }
6526
6565
  },
6527
6566
  "required": [
@@ -6556,9 +6595,6 @@ exports.CompleteOutgoingRequestRequest = {
6556
6595
  "items": {
6557
6596
  "$ref": "#/definitions/ResponseItemJSON"
6558
6597
  }
6559
- },
6560
- "metadata": {
6561
- "type": "object"
6562
6598
  }
6563
6599
  },
6564
6600
  "required": [
@@ -6581,9 +6617,6 @@ exports.CompleteOutgoingRequestRequest = {
6581
6617
  },
6582
6618
  "result": {
6583
6619
  "$ref": "#/definitions/ResponseItemResult"
6584
- },
6585
- "metadata": {
6586
- "type": "object"
6587
6620
  }
6588
6621
  },
6589
6622
  "required": [
@@ -6942,7 +6975,7 @@ exports.ReceivedIncomingRequestRequest = {
6942
6975
  },
6943
6976
  "description": "The items of the Request. Can be either a single {@link RequestItemJSON RequestItem } or a {@link RequestItemGroupJSON RequestItemGroup } , which itself can contain further {@link RequestItemJSON RequestItems } ."
6944
6977
  },
6945
- "responseMetadata": {
6978
+ "metadata": {
6946
6979
  "type": "object",
6947
6980
  "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."
6948
6981
  }
@@ -6977,7 +7010,7 @@ exports.ReceivedIncomingRequestRequest = {
6977
7010
  "type": "boolean",
6978
7011
  "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."
6979
7012
  },
6980
- "responseMetadata": {
7013
+ "metadata": {
6981
7014
  "type": "object",
6982
7015
  "description": "This property can be used to add some arbitrary metadata to this group. 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."
6983
7016
  },
@@ -7017,7 +7050,7 @@ exports.ReceivedIncomingRequestRequest = {
7017
7050
  "type": "string",
7018
7051
  "description": "The human-readable description of this item."
7019
7052
  },
7020
- "responseMetadata": {
7053
+ "metadata": {
7021
7054
  "type": "object",
7022
7055
  "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."
7023
7056
  },
@@ -7223,7 +7256,7 @@ exports.DownloadFileRequest = {
7223
7256
  "properties": {
7224
7257
  "id": {
7225
7258
  "type": "string",
7226
- "pattern": "FIL[A-z0-9]{17}"
7259
+ "pattern": "FIL[A-Za-z0-9]{17}"
7227
7260
  }
7228
7261
  },
7229
7262
  "required": [
@@ -7278,7 +7311,7 @@ exports.CreateRelationshipChallengeRequest = {
7278
7311
  },
7279
7312
  "relationship": {
7280
7313
  "type": "string",
7281
- "pattern": "REL[A-z0-9]{17}"
7314
+ "pattern": "REL[A-Za-z0-9]{17}"
7282
7315
  }
7283
7316
  },
7284
7317
  "required": [
@@ -7353,7 +7386,7 @@ exports.CreateChallengeRequest = {
7353
7386
  },
7354
7387
  "relationship": {
7355
7388
  "type": "string",
7356
- "pattern": "REL[A-z0-9]{17}"
7389
+ "pattern": "REL[A-Za-z0-9]{17}"
7357
7390
  }
7358
7391
  },
7359
7392
  "required": [
@@ -7532,6 +7565,25 @@ exports.UpdateDeviceRequest = {
7532
7565
  }
7533
7566
  }
7534
7567
  };
7568
+ exports.CreateQrCodeForFileRequest = {
7569
+ "$schema": "http://json-schema.org/draft-07/schema#",
7570
+ "$ref": "#/definitions/CreateQrCodeForFileRequest",
7571
+ "definitions": {
7572
+ "CreateQrCodeForFileRequest": {
7573
+ "type": "object",
7574
+ "properties": {
7575
+ "fileId": {
7576
+ "type": "string",
7577
+ "pattern": "FIL[A-Za-z0-9]{17}"
7578
+ }
7579
+ },
7580
+ "required": [
7581
+ "fileId"
7582
+ ],
7583
+ "additionalProperties": false
7584
+ }
7585
+ }
7586
+ };
7535
7587
  exports.CreateTokenForFileRequest = {
7536
7588
  "$schema": "http://json-schema.org/draft-07/schema#",
7537
7589
  "$ref": "#/definitions/CreateTokenForFileRequest",
@@ -7541,7 +7593,7 @@ exports.CreateTokenForFileRequest = {
7541
7593
  "properties": {
7542
7594
  "fileId": {
7543
7595
  "type": "string",
7544
- "pattern": "FIL[A-z0-9]{17}"
7596
+ "pattern": "FIL[A-Za-z0-9]{17}"
7545
7597
  },
7546
7598
  "expiresAt": {
7547
7599
  "type": "string",
@@ -7567,7 +7619,7 @@ exports.CreateTokenQrCodeForFileRequest = {
7567
7619
  "properties": {
7568
7620
  "fileId": {
7569
7621
  "type": "string",
7570
- "pattern": "FIL[A-z0-9]{17}"
7622
+ "pattern": "FIL[A-Za-z0-9]{17}"
7571
7623
  },
7572
7624
  "expiresAt": {
7573
7625
  "type": "string",
@@ -7590,7 +7642,7 @@ exports.GetFileRequest = {
7590
7642
  "properties": {
7591
7643
  "id": {
7592
7644
  "type": "string",
7593
- "pattern": "FIL[A-z0-9]{17}"
7645
+ "pattern": "FIL[A-Za-z0-9]{17}"
7594
7646
  }
7595
7647
  },
7596
7648
  "required": [
@@ -7632,11 +7684,11 @@ exports.LoadPeerFileViaSecretRequest = {
7632
7684
  "properties": {
7633
7685
  "id": {
7634
7686
  "type": "string",
7635
- "pattern": "FIL[A-z0-9]{17}"
7687
+ "pattern": "FIL[A-Za-z0-9]{17}"
7636
7688
  },
7637
7689
  "secretKey": {
7638
7690
  "type": "string",
7639
- "minLength": 100
7691
+ "minLength": 10
7640
7692
  }
7641
7693
  },
7642
7694
  "required": [
@@ -7656,14 +7708,14 @@ exports.LoadPeerFileViaReferenceRequest = {
7656
7708
  "properties": {
7657
7709
  "reference": {
7658
7710
  "type": "string",
7659
- "pattern": "VE9L.{84}"
7711
+ "pattern": "(VE9L|RklM).{84}"
7660
7712
  }
7661
7713
  },
7662
7714
  "required": [
7663
7715
  "reference"
7664
7716
  ],
7665
7717
  "additionalProperties": false,
7666
- "errorMessage": "token reference invalid"
7718
+ "errorMessage": "token / file reference invalid"
7667
7719
  }
7668
7720
  }
7669
7721
  };
@@ -7686,11 +7738,11 @@ exports.LoadPeerFileRequest = {
7686
7738
  "properties": {
7687
7739
  "id": {
7688
7740
  "type": "string",
7689
- "pattern": "FIL[A-z0-9]{17}"
7741
+ "pattern": "FIL[A-Za-z0-9]{17}"
7690
7742
  },
7691
7743
  "secretKey": {
7692
7744
  "type": "string",
7693
- "minLength": 100
7745
+ "minLength": 10
7694
7746
  }
7695
7747
  },
7696
7748
  "required": [
@@ -7704,14 +7756,14 @@ exports.LoadPeerFileRequest = {
7704
7756
  "properties": {
7705
7757
  "reference": {
7706
7758
  "type": "string",
7707
- "pattern": "VE9L.{84}"
7759
+ "pattern": "(VE9L|RklM).{84}"
7708
7760
  }
7709
7761
  },
7710
7762
  "required": [
7711
7763
  "reference"
7712
7764
  ],
7713
7765
  "additionalProperties": false,
7714
- "errorMessage": "token reference invalid"
7766
+ "errorMessage": "token / file reference invalid"
7715
7767
  }
7716
7768
  }
7717
7769
  };
@@ -8197,11 +8249,11 @@ exports.GetRelationshipTemplatesRequest = {
8197
8249
  }
8198
8250
  }
8199
8251
  };
8200
- exports.LoadPeerRelationshipTemplateRequestFromIdAndKeyRequest = {
8252
+ exports.LoadPeerRelationshipTemplateViaSecretRequest = {
8201
8253
  "$schema": "http://json-schema.org/draft-07/schema#",
8202
- "$ref": "#/definitions/LoadPeerRelationshipTemplateRequestFromIdAndKeyRequest",
8254
+ "$ref": "#/definitions/LoadPeerRelationshipTemplateViaSecretRequest",
8203
8255
  "definitions": {
8204
- "LoadPeerRelationshipTemplateRequestFromIdAndKeyRequest": {
8256
+ "LoadPeerRelationshipTemplateViaSecretRequest": {
8205
8257
  "type": "object",
8206
8258
  "properties": {
8207
8259
  "id": {
@@ -8209,7 +8261,8 @@ exports.LoadPeerRelationshipTemplateRequestFromIdAndKeyRequest = {
8209
8261
  "pattern": "RLT[A-Za-z0-9]{17}"
8210
8262
  },
8211
8263
  "secretKey": {
8212
- "type": "string"
8264
+ "type": "string",
8265
+ "minLength": 10
8213
8266
  }
8214
8267
  },
8215
8268
  "required": [
@@ -8220,39 +8273,23 @@ exports.LoadPeerRelationshipTemplateRequestFromIdAndKeyRequest = {
8220
8273
  }
8221
8274
  }
8222
8275
  };
8223
- exports.LoadPeerRelationshipTemplateRequestFromTokenReferenceRequest = {
8224
- "$schema": "http://json-schema.org/draft-07/schema#",
8225
- "$ref": "#/definitions/LoadPeerRelationshipTemplateRequestFromTokenReferenceRequest",
8226
- "definitions": {
8227
- "LoadPeerRelationshipTemplateRequestFromTokenReferenceRequest": {
8228
- "type": "object",
8229
- "properties": {
8230
- "tokenReference": {
8231
- "type": "string"
8232
- }
8233
- },
8234
- "required": [
8235
- "tokenReference"
8236
- ],
8237
- "additionalProperties": false
8238
- }
8239
- }
8240
- };
8241
- exports.LoadPeerRelationshipTemplateRequestFromRelationshipTemplateReferenceRequest = {
8276
+ exports.LoadPeerRelationshipTemplateViaReferenceRequest = {
8242
8277
  "$schema": "http://json-schema.org/draft-07/schema#",
8243
- "$ref": "#/definitions/LoadPeerRelationshipTemplateRequestFromRelationshipTemplateReferenceRequest",
8278
+ "$ref": "#/definitions/LoadPeerRelationshipTemplateViaReferenceRequest",
8244
8279
  "definitions": {
8245
- "LoadPeerRelationshipTemplateRequestFromRelationshipTemplateReferenceRequest": {
8280
+ "LoadPeerRelationshipTemplateViaReferenceRequest": {
8246
8281
  "type": "object",
8247
8282
  "properties": {
8248
- "relationshipTemplateReference": {
8249
- "type": "string"
8283
+ "reference": {
8284
+ "type": "string",
8285
+ "pattern": "(VE9L|UkxU).{84}"
8250
8286
  }
8251
8287
  },
8252
8288
  "required": [
8253
- "relationshipTemplateReference"
8289
+ "reference"
8254
8290
  ],
8255
- "additionalProperties": false
8291
+ "additionalProperties": false,
8292
+ "errorMessage": "token / relationship template reference invalid"
8256
8293
  }
8257
8294
  }
8258
8295
  };
@@ -8263,17 +8300,14 @@ exports.LoadPeerRelationshipTemplateRequest = {
8263
8300
  "LoadPeerRelationshipTemplateRequest": {
8264
8301
  "anyOf": [
8265
8302
  {
8266
- "$ref": "#/definitions/LoadPeerRelationshipTemplateRequestFromIdAndKeyRequest"
8303
+ "$ref": "#/definitions/LoadPeerRelationshipTemplateViaSecretRequest"
8267
8304
  },
8268
8305
  {
8269
- "$ref": "#/definitions/LoadPeerRelationshipTemplateRequestFromTokenReferenceRequest"
8270
- },
8271
- {
8272
- "$ref": "#/definitions/LoadPeerRelationshipTemplateRequestFromRelationshipTemplateReferenceRequest"
8306
+ "$ref": "#/definitions/LoadPeerRelationshipTemplateViaReferenceRequest"
8273
8307
  }
8274
8308
  ]
8275
8309
  },
8276
- "LoadPeerRelationshipTemplateRequestFromIdAndKeyRequest": {
8310
+ "LoadPeerRelationshipTemplateViaSecretRequest": {
8277
8311
  "type": "object",
8278
8312
  "properties": {
8279
8313
  "id": {
@@ -8281,7 +8315,8 @@ exports.LoadPeerRelationshipTemplateRequest = {
8281
8315
  "pattern": "RLT[A-Za-z0-9]{17}"
8282
8316
  },
8283
8317
  "secretKey": {
8284
- "type": "string"
8318
+ "type": "string",
8319
+ "minLength": 10
8285
8320
  }
8286
8321
  },
8287
8322
  "required": [
@@ -8290,29 +8325,19 @@ exports.LoadPeerRelationshipTemplateRequest = {
8290
8325
  ],
8291
8326
  "additionalProperties": false
8292
8327
  },
8293
- "LoadPeerRelationshipTemplateRequestFromTokenReferenceRequest": {
8328
+ "LoadPeerRelationshipTemplateViaReferenceRequest": {
8294
8329
  "type": "object",
8295
8330
  "properties": {
8296
- "tokenReference": {
8297
- "type": "string"
8298
- }
8299
- },
8300
- "required": [
8301
- "tokenReference"
8302
- ],
8303
- "additionalProperties": false
8304
- },
8305
- "LoadPeerRelationshipTemplateRequestFromRelationshipTemplateReferenceRequest": {
8306
- "type": "object",
8307
- "properties": {
8308
- "relationshipTemplateReference": {
8309
- "type": "string"
8331
+ "reference": {
8332
+ "type": "string",
8333
+ "pattern": "(VE9L|UkxU).{84}"
8310
8334
  }
8311
8335
  },
8312
8336
  "required": [
8313
- "relationshipTemplateReference"
8337
+ "reference"
8314
8338
  ],
8315
- "additionalProperties": false
8339
+ "additionalProperties": false,
8340
+ "errorMessage": "token / relationship template reference invalid"
8316
8341
  }
8317
8342
  }
8318
8343
  };
@@ -8547,6 +8572,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
8547
8572
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
8548
8573
  };
8549
8574
  Object.defineProperty(exports, "__esModule", ({ value: true }));
8575
+ __exportStar(__webpack_require__(/*! ./Base64ForIdPrefix */ "./dist/useCases/common/Base64ForIdPrefix.js"), exports);
8550
8576
  __exportStar(__webpack_require__(/*! ./OwnerRestriction */ "./dist/useCases/common/OwnerRestriction.js"), exports);
8551
8577
  __exportStar(__webpack_require__(/*! ./QRCode */ "./dist/useCases/common/QRCode.js"), exports);
8552
8578
  __exportStar(__webpack_require__(/*! ./RuntimeErrors */ "./dist/useCases/common/RuntimeErrors.js"), exports);
@@ -12981,6 +13007,65 @@ __exportStar(__webpack_require__(/*! ./UpdateDevice */ "./dist/useCases/transpor
12981
13007
 
12982
13008
  /***/ }),
12983
13009
 
13010
+ /***/ "./dist/useCases/transport/files/CreateQrCodeForFile.js":
13011
+ /*!**************************************************************!*\
13012
+ !*** ./dist/useCases/transport/files/CreateQrCodeForFile.js ***!
13013
+ \**************************************************************/
13014
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
13015
+
13016
+ "use strict";
13017
+
13018
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
13019
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13020
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
13021
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13022
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13023
+ };
13024
+ var __metadata = (this && this.__metadata) || function (k, v) {
13025
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
13026
+ };
13027
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
13028
+ return function (target, key) { decorator(target, key, paramIndex); }
13029
+ };
13030
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
13031
+ exports.CreateQrCodeForFileUseCase = void 0;
13032
+ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
13033
+ const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
13034
+ const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
13035
+ const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
13036
+ let Validator = class Validator extends common_1.SchemaValidator {
13037
+ constructor(schemaRepository) {
13038
+ super(schemaRepository.getSchema("CreateQrCodeForFileRequest"));
13039
+ }
13040
+ };
13041
+ Validator = __decorate([
13042
+ __param(0, typescript_ioc_1.Inject),
13043
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
13044
+ ], Validator);
13045
+ let CreateQrCodeForFileUseCase = class CreateQrCodeForFileUseCase extends common_1.UseCase {
13046
+ constructor(fileController, validator) {
13047
+ super(validator);
13048
+ this.fileController = fileController;
13049
+ }
13050
+ async executeInternal(request) {
13051
+ const file = await this.fileController.getFile(transport_1.CoreId.from(request.fileId));
13052
+ if (!file) {
13053
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.File));
13054
+ }
13055
+ const qrCode = await common_1.QRCode.forTruncateable(file);
13056
+ return ts_utils_1.Result.ok({ qrCodeBytes: qrCode.asBase64() });
13057
+ }
13058
+ };
13059
+ CreateQrCodeForFileUseCase = __decorate([
13060
+ __param(0, typescript_ioc_1.Inject),
13061
+ __param(1, typescript_ioc_1.Inject),
13062
+ __metadata("design:paramtypes", [transport_1.FileController, Validator])
13063
+ ], CreateQrCodeForFileUseCase);
13064
+ exports.CreateQrCodeForFileUseCase = CreateQrCodeForFileUseCase;
13065
+ //# sourceMappingURL=CreateQrCodeForFile.js.map
13066
+
13067
+ /***/ }),
13068
+
12984
13069
  /***/ "./dist/useCases/transport/files/CreateTokenForFile.js":
12985
13070
  /*!*************************************************************!*\
12986
13071
  !*** ./dist/useCases/transport/files/CreateTokenForFile.js ***!
@@ -13119,7 +13204,7 @@ let CreateTokenQrCodeForFileUseCase = class CreateTokenQrCodeForFileUseCase exte
13119
13204
  expiresAt: tokenExpiry,
13120
13205
  ephemeral: true
13121
13206
  });
13122
- const qrCode = await common_1.QRCode.from(token.truncate());
13207
+ const qrCode = await common_1.QRCode.forTruncateable(token);
13123
13208
  return ts_utils_1.Result.ok({ qrCodeBytes: qrCode.asBase64() });
13124
13209
  }
13125
13210
  };
@@ -13238,7 +13323,8 @@ class FileMapper {
13238
13323
  description: file.cache.description,
13239
13324
  deletedAt: file.cache.deletedAt?.toString(),
13240
13325
  deletedBy: file.cache.deletedBy?.toString(),
13241
- deletedByDevice: file.cache.deletedByDevice?.toString()
13326
+ deletedByDevice: file.cache.deletedByDevice?.toString(),
13327
+ truncatedReference: file.truncate()
13242
13328
  };
13243
13329
  }
13244
13330
  static toFileDTOList(files) {
@@ -13465,22 +13551,35 @@ let LoadPeerFileUseCase = class LoadPeerFileUseCase extends common_1.UseCase {
13465
13551
  this.accountController = accountController;
13466
13552
  }
13467
13553
  async executeInternal(request) {
13468
- let createdFile;
13554
+ let createdFileResult;
13469
13555
  if (isLoadPeerFileViaSecret(request)) {
13470
13556
  const key = crypto_1.CryptoSecretKey.fromBase64(request.secretKey);
13471
- createdFile = await this.loadFile(transport_1.CoreId.from(request.id), key);
13557
+ createdFileResult = await this.loadFile(transport_1.CoreId.from(request.id), key);
13472
13558
  }
13473
13559
  else if (isLoadPeerFileViaReference(request)) {
13474
- createdFile = await this.createFileFromTokenReferenceRequest(request.reference);
13560
+ createdFileResult = await this.loadFileFromReference(request.reference);
13475
13561
  }
13476
13562
  else {
13477
13563
  throw new Error("Invalid request format.");
13478
13564
  }
13479
13565
  await this.accountController.syncDatawallet();
13480
- return createdFile;
13566
+ return createdFileResult;
13567
+ }
13568
+ async loadFileFromReference(reference) {
13569
+ if (reference.startsWith(common_1.Base64ForIdPrefix.File)) {
13570
+ return await this.loadFileFromFileReference(reference);
13571
+ }
13572
+ if (reference.startsWith(common_1.Base64ForIdPrefix.Token)) {
13573
+ return await this.loadFileFromTokenReference(reference);
13574
+ }
13575
+ throw common_1.RuntimeErrors.files.invalidReference(reference);
13481
13576
  }
13482
- async createFileFromTokenReferenceRequest(reference) {
13483
- const token = await this.tokenController.loadPeerTokenByTruncated(reference, true);
13577
+ async loadFileFromFileReference(truncatedReference) {
13578
+ const file = await this.fileController.loadPeerFileByTruncated(truncatedReference);
13579
+ return ts_utils_1.Result.ok(FileMapper_1.FileMapper.toFileDTO(file));
13580
+ }
13581
+ async loadFileFromTokenReference(truncatedReference) {
13582
+ const token = await this.tokenController.loadPeerTokenByTruncated(truncatedReference, true);
13484
13583
  if (!token.cache) {
13485
13584
  throw common_1.RuntimeErrors.general.cacheEmpty(transport_1.Token, token.id.toString());
13486
13585
  }
@@ -13619,6 +13718,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
13619
13718
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
13620
13719
  };
13621
13720
  Object.defineProperty(exports, "__esModule", ({ value: true }));
13721
+ __exportStar(__webpack_require__(/*! ./CreateQrCodeForFile */ "./dist/useCases/transport/files/CreateQrCodeForFile.js"), exports);
13622
13722
  __exportStar(__webpack_require__(/*! ./CreateTokenForFile */ "./dist/useCases/transport/files/CreateTokenForFile.js"), exports);
13623
13723
  __exportStar(__webpack_require__(/*! ./CreateTokenQrCodeForFile */ "./dist/useCases/transport/files/CreateTokenQrCodeForFile.js"), exports);
13624
13724
  __exportStar(__webpack_require__(/*! ./DownloadFile */ "./dist/useCases/transport/files/DownloadFile.js"), exports);
@@ -14430,7 +14530,7 @@ let CreateQrCodeForOwnTemplateUseCase = class CreateQrCodeForOwnTemplateUseCase
14430
14530
  if (!template.isOwn) {
14431
14531
  return ts_utils_1.Result.fail(common_1.RuntimeErrors.relationshipTemplates.cannotCreateQRCodeForPeerTemplate());
14432
14532
  }
14433
- const qrCode = await common_1.QRCode.from(template.truncate());
14533
+ const qrCode = await common_1.QRCode.forTruncateable(template);
14434
14534
  return ts_utils_1.Result.ok({ qrCodeBytes: qrCode.asBase64() });
14435
14535
  }
14436
14536
  };
@@ -14584,7 +14684,7 @@ let CreateTokenQrCodeForOwnTemplateUseCase = class CreateTokenQrCodeForOwnTempla
14584
14684
  expiresAt: tokenExpiry,
14585
14685
  ephemeral: true
14586
14686
  });
14587
- const qrCode = await common_1.QRCode.from(token.truncate());
14687
+ const qrCode = await common_1.QRCode.forTruncateable(token);
14588
14688
  return ts_utils_1.Result.ok({ qrCodeBytes: qrCode.asBase64() });
14589
14689
  }
14590
14690
  };
@@ -14755,13 +14855,39 @@ exports.LoadPeerRelationshipTemplateUseCase = void 0;
14755
14855
  const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
14756
14856
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
14757
14857
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
14858
+ const fluent_ts_validator_1 = __webpack_require__(/*! fluent-ts-validator */ "./node_modules/fluent-ts-validator/dist/index.js");
14758
14859
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
14759
14860
  const events_1 = __webpack_require__(/*! ../../../events */ "./dist/events/index.js");
14760
14861
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
14761
14862
  const RelationshipTemplateMapper_1 = __webpack_require__(/*! ./RelationshipTemplateMapper */ "./dist/useCases/transport/relationshipTemplates/RelationshipTemplateMapper.js");
14863
+ function isLoadPeerRelationshipTemplateViaSecret(request) {
14864
+ return "id" in request && "secretKey" in request;
14865
+ }
14866
+ function isLoadPeerRelationshipTemplateViaReference(request) {
14867
+ return "reference" in request;
14868
+ }
14762
14869
  let Validator = class Validator extends common_1.SchemaValidator {
14763
14870
  constructor(schemaRepository) {
14764
14871
  super(schemaRepository.getSchema("LoadPeerRelationshipTemplateRequest"));
14872
+ this.loadViaSecretSchema = schemaRepository.getSchema("LoadPeerRelationshipTemplateViaSecretRequest");
14873
+ this.loadViaReferenceSchema = schemaRepository.getSchema("LoadPeerRelationshipTemplateViaReferenceRequest");
14874
+ }
14875
+ validate(input) {
14876
+ if (this.schema.validate(input).isValid)
14877
+ return new fluent_ts_validator_1.ValidationResult();
14878
+ // any-of in combination with missing properties is a bit weird
14879
+ // when { reference: null | undefined } is passed, it ignores reference
14880
+ // and treats it like a LoadPeerFileViaSecret.
14881
+ // That's why we validate with the specific schema afterwards
14882
+ if (isLoadPeerRelationshipTemplateViaReference(input)) {
14883
+ return this.convertValidationResult(this.loadViaReferenceSchema.validate(input));
14884
+ }
14885
+ else if (isLoadPeerRelationshipTemplateViaSecret(input)) {
14886
+ return this.convertValidationResult(this.loadViaSecretSchema.validate(input));
14887
+ }
14888
+ const result = new fluent_ts_validator_1.ValidationResult();
14889
+ result.addFailures([new fluent_ts_validator_1.ValidationFailure(undefined, "", undefined, common_1.RuntimeErrors.general.invalidPayload().code, common_1.RuntimeErrors.general.invalidPayload().message)]);
14890
+ return result;
14765
14891
  }
14766
14892
  };
14767
14893
  Validator = __decorate([
@@ -14778,15 +14904,12 @@ let LoadPeerRelationshipTemplateUseCase = class LoadPeerRelationshipTemplateUseC
14778
14904
  }
14779
14905
  async executeInternal(request) {
14780
14906
  let createdTemplateResult;
14781
- if (isLoadPeerRelationshipTemplateRequestFromIdAndKeyRequest(request)) {
14907
+ if (isLoadPeerRelationshipTemplateViaSecret(request)) {
14782
14908
  const key = crypto_1.CryptoSecretKey.fromBase64(request.secretKey);
14783
14909
  createdTemplateResult = await this.loadTemplate(transport_1.CoreId.from(request.id), key);
14784
14910
  }
14785
- else if (isLoadPeerRelationshipTemplateRequestFromTokenReferenceRequest(request)) {
14786
- createdTemplateResult = await this.loadRelationshipTemplateFromTokenReference(request.tokenReference);
14787
- }
14788
- else if (isLoadPeerRelationshipTemplateRequestFromRelationshipTemplateReferenceRequest(request)) {
14789
- createdTemplateResult = await this.loadRelationshipTemplateFromRelationshipTemplateReference(request.relationshipTemplateReference);
14911
+ else if (isLoadPeerRelationshipTemplateViaReference(request)) {
14912
+ createdTemplateResult = await this.loadRelationshipTemplateFromReference(request.reference);
14790
14913
  }
14791
14914
  else {
14792
14915
  throw new Error("Invalid request format.");
@@ -14798,8 +14921,21 @@ let LoadPeerRelationshipTemplateUseCase = class LoadPeerRelationshipTemplateUseC
14798
14921
  }
14799
14922
  return createdTemplateResult;
14800
14923
  }
14801
- async loadRelationshipTemplateFromTokenReference(reference) {
14802
- const token = await this.tokenController.loadPeerTokenByTruncated(reference, true);
14924
+ async loadRelationshipTemplateFromReference(reference) {
14925
+ if (reference.startsWith(common_1.Base64ForIdPrefix.RelationshipTemplate)) {
14926
+ return await this.loadRelationshipTemplateFromRelationshipTemplateReference(reference);
14927
+ }
14928
+ if (reference.startsWith(common_1.Base64ForIdPrefix.Token)) {
14929
+ return await this.loadRelationshipTemplateFromTokenReference(reference);
14930
+ }
14931
+ throw common_1.RuntimeErrors.relationshipTemplates.invalidReference(reference);
14932
+ }
14933
+ async loadRelationshipTemplateFromRelationshipTemplateReference(relationshipTemplateReference) {
14934
+ const template = await this.templateController.loadPeerRelationshipTemplateByTruncated(relationshipTemplateReference);
14935
+ return ts_utils_1.Result.ok(RelationshipTemplateMapper_1.RelationshipTemplateMapper.toRelationshipTemplateDTO(template));
14936
+ }
14937
+ async loadRelationshipTemplateFromTokenReference(tokenReference) {
14938
+ const token = await this.tokenController.loadPeerTokenByTruncated(tokenReference, true);
14803
14939
  if (!token.cache) {
14804
14940
  throw common_1.RuntimeErrors.general.cacheEmpty(transport_1.Token, token.id.toString());
14805
14941
  }
@@ -14809,10 +14945,6 @@ let LoadPeerRelationshipTemplateUseCase = class LoadPeerRelationshipTemplateUseC
14809
14945
  const content = token.cache.content;
14810
14946
  return await this.loadTemplate(content.templateId, content.secretKey);
14811
14947
  }
14812
- async loadRelationshipTemplateFromRelationshipTemplateReference(relationshipTemplateReference) {
14813
- const template = await this.templateController.loadPeerRelationshipTemplateByTruncated(relationshipTemplateReference);
14814
- return ts_utils_1.Result.ok(RelationshipTemplateMapper_1.RelationshipTemplateMapper.toRelationshipTemplateDTO(template));
14815
- }
14816
14948
  async loadTemplate(id, key) {
14817
14949
  const template = await this.templateController.loadPeerRelationshipTemplate(id, key);
14818
14950
  return ts_utils_1.Result.ok(RelationshipTemplateMapper_1.RelationshipTemplateMapper.toRelationshipTemplateDTO(template));
@@ -14831,15 +14963,6 @@ LoadPeerRelationshipTemplateUseCase = __decorate([
14831
14963
  Validator])
14832
14964
  ], LoadPeerRelationshipTemplateUseCase);
14833
14965
  exports.LoadPeerRelationshipTemplateUseCase = LoadPeerRelationshipTemplateUseCase;
14834
- function isLoadPeerRelationshipTemplateRequestFromIdAndKeyRequest(x) {
14835
- return !!x.id && !!x.secretKey;
14836
- }
14837
- function isLoadPeerRelationshipTemplateRequestFromTokenReferenceRequest(x) {
14838
- return !!x.tokenReference;
14839
- }
14840
- function isLoadPeerRelationshipTemplateRequestFromRelationshipTemplateReferenceRequest(x) {
14841
- return !!x.relationshipTemplateReference;
14842
- }
14843
14966
  //# sourceMappingURL=LoadPeerRelationshipTemplate.js.map
14844
14967
 
14845
14968
  /***/ }),
@@ -15772,7 +15895,7 @@ let GetQRCodeForTokenUseCase = class GetQRCodeForTokenUseCase extends common_1.U
15772
15895
  if (!token) {
15773
15896
  return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.Token));
15774
15897
  }
15775
- const qrCode = await common_1.QRCode.from(token.truncate());
15898
+ const qrCode = await common_1.QRCode.forTruncateable(token);
15776
15899
  return ts_utils_1.Result.ok({ qrCodeBytes: qrCode.asBase64() });
15777
15900
  }
15778
15901
  };