@nmshd/runtime 1.2.19 → 1.3.2

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 (58) hide show
  1. package/dist/Runtime.js +3 -0
  2. package/dist/Runtime.js.map +1 -1
  3. package/dist/buildInformation.js +5 -5
  4. package/dist/extensibility/TransportServices.d.ts +3 -2
  5. package/dist/extensibility/TransportServices.js +5 -2
  6. package/dist/extensibility/TransportServices.js.map +1 -1
  7. package/dist/extensibility/facades/transport/ChallengesFacade.d.ts +10 -0
  8. package/dist/extensibility/facades/transport/ChallengesFacade.js +36 -0
  9. package/dist/extensibility/facades/transport/ChallengesFacade.js.map +1 -0
  10. package/dist/extensibility/facades/transport/index.d.ts +1 -0
  11. package/dist/extensibility/facades/transport/index.js +1 -0
  12. package/dist/extensibility/facades/transport/index.js.map +1 -1
  13. package/dist/types/transport/ChallengeDTO.d.ts +9 -0
  14. package/dist/types/transport/ChallengeDTO.js +3 -0
  15. package/dist/types/transport/ChallengeDTO.js.map +1 -0
  16. package/dist/types/transport/index.d.ts +1 -0
  17. package/dist/types/transport/index.js +1 -0
  18. package/dist/types/transport/index.js.map +1 -1
  19. package/dist/useCases/common/RuntimeErrors.d.ts +6 -0
  20. package/dist/useCases/common/RuntimeErrors.js +12 -0
  21. package/dist/useCases/common/RuntimeErrors.js.map +1 -1
  22. package/dist/useCases/common/SchemaRepository.js +2 -1
  23. package/dist/useCases/common/SchemaRepository.js.map +1 -1
  24. package/dist/useCases/common/Schemas.d.ts +5 -0
  25. package/dist/useCases/common/Schemas.js +149 -2
  26. package/dist/useCases/common/Schemas.js.map +1 -1
  27. package/dist/useCases/common/UseCase.js +1 -1
  28. package/dist/useCases/common/UseCase.js.map +1 -1
  29. package/dist/useCases/common/validation/IValidator.d.ts +1 -1
  30. package/dist/useCases/common/validation/SchemaValidator.d.ts +1 -1
  31. package/dist/useCases/transport/challenges/ChallengeMapper.d.ts +5 -0
  32. package/dist/useCases/transport/challenges/ChallengeMapper.js +19 -0
  33. package/dist/useCases/transport/challenges/ChallengeMapper.js.map +1 -0
  34. package/dist/useCases/transport/challenges/CreateChallenge.d.ts +34 -0
  35. package/dist/useCases/transport/challenges/CreateChallenge.js +104 -0
  36. package/dist/useCases/transport/challenges/CreateChallenge.js.map +1 -0
  37. package/dist/useCases/transport/challenges/ValidateChallange.d.ts +25 -0
  38. package/dist/useCases/transport/challenges/ValidateChallange.js +96 -0
  39. package/dist/useCases/transport/challenges/ValidateChallange.js.map +1 -0
  40. package/dist/useCases/transport/challenges/index.d.ts +2 -0
  41. package/dist/useCases/transport/challenges/index.js +15 -0
  42. package/dist/useCases/transport/challenges/index.js.map +1 -0
  43. package/dist/useCases/transport/devices/CreateDeviceOnboardingToken.js +1 -0
  44. package/dist/useCases/transport/devices/CreateDeviceOnboardingToken.js.map +1 -1
  45. package/dist/useCases/transport/files/UploadOwnFile.js +1 -0
  46. package/dist/useCases/transport/files/UploadOwnFile.js.map +1 -1
  47. package/dist/useCases/transport/index.d.ts +1 -0
  48. package/dist/useCases/transport/index.js +1 -0
  49. package/dist/useCases/transport/index.js.map +1 -1
  50. package/dist/useCases/transport/relationshipTemplates/CreateOwnRelationshipTemplate.js +1 -0
  51. package/dist/useCases/transport/relationshipTemplates/CreateOwnRelationshipTemplate.js.map +1 -1
  52. package/dist/useCases/transport/tokens/CreateOwnToken.js +1 -0
  53. package/dist/useCases/transport/tokens/CreateOwnToken.js.map +1 -1
  54. package/lib-web/nmshd.runtime.js +579 -53
  55. package/lib-web/nmshd.runtime.js.map +1 -1
  56. package/lib-web/nmshd.runtime.min.js +5 -5
  57. package/lib-web/nmshd.runtime.min.js.map +1 -1
  58. package/package.json +8 -8
@@ -145,6 +145,9 @@ class Runtime {
145
145
  typescript_ioc_1.Container.bind(transport_1.TokenController)
146
146
  .factory(() => this.getAccountController().tokens)
147
147
  .scope(typescript_ioc_1.Scope.Request);
148
+ typescript_ioc_1.Container.bind(transport_1.ChallengeController)
149
+ .factory(() => this.getAccountController().challenges)
150
+ .scope(typescript_ioc_1.Scope.Request);
148
151
  typescript_ioc_1.Container.bind(consumption_1.ConsumptionController)
149
152
  .factory(() => this.getConsumptionController())
150
153
  .scope(typescript_ioc_1.Scope.Request);
@@ -326,11 +329,11 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
326
329
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
327
330
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
328
331
  exports.buildInformation = {
329
- version: "1.2.19",
330
- build: "34",
331
- date: "2022-01-31T08:23:06+00:00",
332
- commit: "8badf63d206eb25ff9f1e8ad4f46606f72eaacc7",
333
- dependencies: {"@js-soft/docdb-querytranslator":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"1.0.2","@js-soft/ts-utils":"^1.1.1","@nmshd/consumption":"1.0.13","@nmshd/content":"1.1.4","@nmshd/crypto":"1.0.8","@nmshd/transport":"1.1.7","ajv":"^8.9.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.3.0","qrcode":"1.5.0","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
332
+ version: "1.3.2",
333
+ build: "39",
334
+ date: "2022-02-21T13:51:40+00:00",
335
+ commit: "0761563add807016712f623dd9aa459ce2550c2c",
336
+ dependencies: {"@js-soft/docdb-querytranslator":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"1.0.2","@js-soft/ts-utils":"^1.1.1","@nmshd/consumption":"1.0.13","@nmshd/content":"1.1.4","@nmshd/crypto":"1.0.8","@nmshd/transport":"1.1.10","ajv":"^8.10.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.3.0","qrcode":"1.5.0","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
334
337
  libraries: {
335
338
  serval: ts_serval_1.buildInformation,
336
339
  consumption: consumption_1.buildInformation,
@@ -1871,7 +1874,7 @@ exports.TransportServices = void 0;
1871
1874
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
1872
1875
  const transport_1 = __webpack_require__(/*! ./facades/transport */ "./dist/extensibility/facades/transport/index.js");
1873
1876
  let TransportServices = class TransportServices {
1874
- constructor(files, messages, relationships, relationshipTemplates, tokens, account, devices) {
1877
+ constructor(files, messages, relationships, relationshipTemplates, tokens, account, devices, challenges) {
1875
1878
  this.files = files;
1876
1879
  this.messages = messages;
1877
1880
  this.relationships = relationships;
@@ -1879,6 +1882,7 @@ let TransportServices = class TransportServices {
1879
1882
  this.tokens = tokens;
1880
1883
  this.account = account;
1881
1884
  this.devices = devices;
1885
+ this.challenges = challenges;
1882
1886
  }
1883
1887
  };
1884
1888
  TransportServices = __decorate([
@@ -1889,13 +1893,15 @@ TransportServices = __decorate([
1889
1893
  __param(4, typescript_ioc_1.Inject),
1890
1894
  __param(5, typescript_ioc_1.Inject),
1891
1895
  __param(6, typescript_ioc_1.Inject),
1896
+ __param(7, typescript_ioc_1.Inject),
1892
1897
  __metadata("design:paramtypes", [transport_1.FilesFacade,
1893
1898
  transport_1.MessagesFacade,
1894
1899
  transport_1.RelationshipsFacade,
1895
1900
  transport_1.RelationshipTemplatesFacade,
1896
1901
  transport_1.TokensFacade,
1897
1902
  transport_1.AccountFacade,
1898
- transport_1.DevicesFacade])
1903
+ transport_1.DevicesFacade,
1904
+ transport_1.ChallengesFacade])
1899
1905
  ], TransportServices);
1900
1906
  exports.TransportServices = TransportServices;
1901
1907
  //# sourceMappingURL=TransportServices.js.map
@@ -2481,6 +2487,52 @@ exports.AccountFacade = AccountFacade;
2481
2487
 
2482
2488
  /***/ }),
2483
2489
 
2490
+ /***/ "./dist/extensibility/facades/transport/ChallengesFacade.js":
2491
+ /*!******************************************************************!*\
2492
+ !*** ./dist/extensibility/facades/transport/ChallengesFacade.js ***!
2493
+ \******************************************************************/
2494
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2495
+
2496
+ "use strict";
2497
+
2498
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2499
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2500
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2501
+ 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;
2502
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2503
+ };
2504
+ var __metadata = (this && this.__metadata) || function (k, v) {
2505
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2506
+ };
2507
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
2508
+ return function (target, key) { decorator(target, key, paramIndex); }
2509
+ };
2510
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2511
+ exports.ChallengesFacade = void 0;
2512
+ const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
2513
+ const useCases_1 = __webpack_require__(/*! ../../../useCases */ "./dist/useCases/index.js");
2514
+ let ChallengesFacade = class ChallengesFacade {
2515
+ constructor(createChallengeUseCase, validateChallengeUseCase) {
2516
+ this.createChallengeUseCase = createChallengeUseCase;
2517
+ this.validateChallengeUseCase = validateChallengeUseCase;
2518
+ }
2519
+ async createChallenge(request) {
2520
+ return await this.createChallengeUseCase.execute(request);
2521
+ }
2522
+ async validateChallenge(request) {
2523
+ return await this.validateChallengeUseCase.execute(request);
2524
+ }
2525
+ };
2526
+ ChallengesFacade = __decorate([
2527
+ __param(0, typescript_ioc_1.Inject),
2528
+ __param(1, typescript_ioc_1.Inject),
2529
+ __metadata("design:paramtypes", [useCases_1.CreateChallengeUseCase, useCases_1.ValidateChallengeUseCase])
2530
+ ], ChallengesFacade);
2531
+ exports.ChallengesFacade = ChallengesFacade;
2532
+ //# sourceMappingURL=ChallengesFacade.js.map
2533
+
2534
+ /***/ }),
2535
+
2484
2536
  /***/ "./dist/extensibility/facades/transport/DevicesFacade.js":
2485
2537
  /*!***************************************************************!*\
2486
2538
  !*** ./dist/extensibility/facades/transport/DevicesFacade.js ***!
@@ -2980,6 +3032,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
2980
3032
  };
2981
3033
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2982
3034
  __exportStar(__webpack_require__(/*! ./AccountFacade */ "./dist/extensibility/facades/transport/AccountFacade.js"), exports);
3035
+ __exportStar(__webpack_require__(/*! ./ChallengesFacade */ "./dist/extensibility/facades/transport/ChallengesFacade.js"), exports);
2983
3036
  __exportStar(__webpack_require__(/*! ./DevicesFacade */ "./dist/extensibility/facades/transport/DevicesFacade.js"), exports);
2984
3037
  __exportStar(__webpack_require__(/*! ./FilesFacade */ "./dist/extensibility/facades/transport/FilesFacade.js"), exports);
2985
3038
  __exportStar(__webpack_require__(/*! ./IdentityFacade */ "./dist/extensibility/facades/transport/IdentityFacade.js"), exports);
@@ -3374,6 +3427,19 @@ __exportStar(__webpack_require__(/*! ./transport */ "./dist/types/transport/inde
3374
3427
 
3375
3428
  /***/ }),
3376
3429
 
3430
+ /***/ "./dist/types/transport/ChallengeDTO.js":
3431
+ /*!**********************************************!*\
3432
+ !*** ./dist/types/transport/ChallengeDTO.js ***!
3433
+ \**********************************************/
3434
+ /***/ ((__unused_webpack_module, exports) => {
3435
+
3436
+ "use strict";
3437
+
3438
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3439
+ //# sourceMappingURL=ChallengeDTO.js.map
3440
+
3441
+ /***/ }),
3442
+
3377
3443
  /***/ "./dist/types/transport/DeviceDTO.js":
3378
3444
  /*!*******************************************!*\
3379
3445
  !*** ./dist/types/transport/DeviceDTO.js ***!
@@ -3560,6 +3626,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
3560
3626
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
3561
3627
  };
3562
3628
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3629
+ __exportStar(__webpack_require__(/*! ./ChallengeDTO */ "./dist/types/transport/ChallengeDTO.js"), exports);
3563
3630
  __exportStar(__webpack_require__(/*! ./DeviceDTO */ "./dist/types/transport/DeviceDTO.js"), exports);
3564
3631
  __exportStar(__webpack_require__(/*! ./DeviceOnboardingInfoDTO */ "./dist/types/transport/DeviceOnboardingInfoDTO.js"), exports);
3565
3632
  __exportStar(__webpack_require__(/*! ./FileDTO */ "./dist/types/transport/FileDTO.js"), exports);
@@ -3879,6 +3946,9 @@ class General {
3879
3946
  notImplemented() {
3880
3947
  return new ts_utils_1.ApplicationError("error.runtime.methodNotImplemented", "The requested method is not yet implemented.");
3881
3948
  }
3949
+ featureNotImplemented(message) {
3950
+ return new ts_utils_1.ApplicationError("error.runtime.featureNotImplemented", message);
3951
+ }
3882
3952
  invalidTokenContent() {
3883
3953
  return new ts_utils_1.ApplicationError("error.runtime.invalidTokenContent", "The given token has an invalid content for this route.");
3884
3954
  }
@@ -3946,6 +4016,14 @@ class Database {
3946
4016
  return new ts_utils_1.ApplicationError("error.runtime.database.quotaExceeded", "It seems that the database quota exceeded. Please increase the database size.");
3947
4017
  }
3948
4018
  }
4019
+ class Challenges {
4020
+ invalidSignature() {
4021
+ return new ts_utils_1.ApplicationError("error.runtime.challenges.invalidSignature", "The signature is invalid.");
4022
+ }
4023
+ invalidChallenge() {
4024
+ return new ts_utils_1.ApplicationError("error.runtime.challenges.invalidChallenge", "The challenge is invalid.");
4025
+ }
4026
+ }
3949
4027
  class RuntimeErrors {
3950
4028
  }
3951
4029
  exports.RuntimeErrors = RuntimeErrors;
@@ -3956,6 +4034,7 @@ RuntimeErrors.database = new Database();
3956
4034
  RuntimeErrors.relationshipTemplates = new RelationshipTemplates();
3957
4035
  RuntimeErrors.messages = new Messages();
3958
4036
  RuntimeErrors.relationshipInfo = new RelationshipInfo();
4037
+ RuntimeErrors.challenges = new Challenges();
3959
4038
  //# sourceMappingURL=RuntimeErrors.js.map
3960
4039
 
3961
4040
  /***/ }),
@@ -4026,7 +4105,8 @@ const customFormats = {
4026
4105
  relationshipTemplateId: "RLT[A-z0-9]{17}",
4027
4106
  tokenId: "TOK[A-z0-9]{17}",
4028
4107
  relationshipChangeId: "RCH[A-z0-9]{17}",
4029
- deviceId: "DVC[A-z0-9]{17}"
4108
+ deviceId: "DVC[A-z0-9]{17}",
4109
+ challengeId: "CHL[A-z0-9]{17}"
4030
4110
  };
4031
4111
  class SchemaRepository {
4032
4112
  constructor() {
@@ -4083,8 +4163,8 @@ exports.JsonSchema = JsonSchema;
4083
4163
  "use strict";
4084
4164
 
4085
4165
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4086
- exports.GetFilesRequest = exports.GetFileRequest = exports.CreateTokenQrCodeForFileRequest = exports.CreateTokenForFileRequest = exports.UpdateDeviceRequest = exports.GetDeviceOnboardingInfoRequest = exports.GetDeviceRequest = exports.DeleteDeviceRequest = exports.CreateDeviceOnboardingTokenRequest = exports.CreateDeviceRequest = exports.DownloadAttachmentRequest = exports.DownloadFileRequest = exports.RegisterPushNotificationTokenRequest = exports.UpdateSharedItemRequest = exports.GetSharedItemsSharedWithAddressRequest = exports.GetSharedItemsSharedByAddressRequest = exports.GetSharedItemsByReferenceRequest = exports.GetSharedItemsByAddressRequest = exports.GetSharedItemsRequest = exports.GetSharedItemRequest = exports.DeleteSharedItemRequest = exports.CreateSharedItemRequest = exports.UpdateSettingRequest = exports.GetSettingsRequest = exports.GetSettingRequest = exports.DeleteSettingRequest = exports.CreateSettingRequest = exports.UpdateRelationshipInfoRequest = exports.GetRelationshipInfoByRelationshipRequest = exports.GetRelationshipInfoRequest = exports.DeleteRelationshipInfoByRelationshipRequest = exports.DeleteRelationshipInfoRequest = exports.CreateRelationshipInfoRequest = exports.UpdateDraftRequest = exports.GetDraftsRequest = exports.GetDraftRequest = exports.DeleteDraftRequest = exports.CreateDraftRequest = exports.UpdateAttributeRequest = exports.SucceedAttributeRequest = exports.GetHistoryByNameRequest = exports.GetAttributesRequest = exports.GetAttributeByNameRequest = exports.GetAttributeRequest = exports.DeleteAttributeByNameRequest = exports.DeleteAttributeRequest = exports.CreateAttributeRequest = exports.GetAttributesByNamesRequest = exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = exports.LoadPeerTokenAnonymousByIdAndKeyRequest = void 0;
4087
- exports.LoadPeerTokenRequest = exports.GetTokensRequest = exports.GetTokenRequest = exports.GetQRCodeForTokenRequest = exports.CreateOwnTokenRequest = exports.LoadPeerRelationshipTemplateRequest = exports.GetRelationshipTemplatesRequest = exports.GetRelationshipTemplateRequest = exports.CreateTokenQrCodeForOwnTemplateRequest = exports.CreateTokenForOwnTemplateRequest = exports.CreateOwnRelationshipTemplateRequest = exports.RevokeRelationshipChangeRequest = exports.RejectRelationshipChangeRequest = exports.GetRelationshipsRequest = exports.GetRelationshipByAddressRequest = exports.GetRelationshipRequest = exports.CreateRelationshipChangeRequest = exports.CreateRelationshipRequest = exports.AcceptRelationshipChangeRequest = exports.SendMessageRequest = exports.GetMessagesRequest = exports.GetMessageRequest = exports.GetAttachmentMetadataRequest = exports.CheckIdentityRequest = exports.UploadOwnFileRequest = exports.LoadPeerFileRequest = exports.LoadPeerFileViaReferenceRequest = exports.LoadPeerFileViaSecretRequest = void 0;
4166
+ exports.GetDeviceOnboardingInfoRequest = exports.GetDeviceRequest = exports.DeleteDeviceRequest = exports.CreateDeviceOnboardingTokenRequest = exports.CreateDeviceRequest = exports.ValidateChallengeRequest = exports.CreateChallengeRequest = exports.CreateDeviceChallengeRequest = exports.CreateIdentityChallengeRequest = exports.CreateRelationshipChallengeRequest = exports.DownloadAttachmentRequest = exports.DownloadFileRequest = exports.RegisterPushNotificationTokenRequest = exports.UpdateSharedItemRequest = exports.GetSharedItemsSharedWithAddressRequest = exports.GetSharedItemsSharedByAddressRequest = exports.GetSharedItemsByReferenceRequest = exports.GetSharedItemsByAddressRequest = exports.GetSharedItemsRequest = exports.GetSharedItemRequest = exports.DeleteSharedItemRequest = exports.CreateSharedItemRequest = exports.UpdateSettingRequest = exports.GetSettingsRequest = exports.GetSettingRequest = exports.DeleteSettingRequest = exports.CreateSettingRequest = exports.UpdateRelationshipInfoRequest = exports.GetRelationshipInfoByRelationshipRequest = exports.GetRelationshipInfoRequest = exports.DeleteRelationshipInfoByRelationshipRequest = exports.DeleteRelationshipInfoRequest = exports.CreateRelationshipInfoRequest = exports.UpdateDraftRequest = exports.GetDraftsRequest = exports.GetDraftRequest = exports.DeleteDraftRequest = exports.CreateDraftRequest = exports.UpdateAttributeRequest = exports.SucceedAttributeRequest = exports.GetHistoryByNameRequest = exports.GetAttributesRequest = exports.GetAttributeByNameRequest = exports.GetAttributeRequest = exports.DeleteAttributeByNameRequest = exports.DeleteAttributeRequest = exports.CreateAttributeRequest = exports.GetAttributesByNamesRequest = exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = exports.LoadPeerTokenAnonymousByIdAndKeyRequest = void 0;
4167
+ exports.LoadPeerTokenRequest = exports.GetTokensRequest = exports.GetTokenRequest = exports.GetQRCodeForTokenRequest = exports.CreateOwnTokenRequest = exports.LoadPeerRelationshipTemplateRequest = exports.GetRelationshipTemplatesRequest = exports.GetRelationshipTemplateRequest = exports.CreateTokenQrCodeForOwnTemplateRequest = exports.CreateTokenForOwnTemplateRequest = exports.CreateOwnRelationshipTemplateRequest = exports.RevokeRelationshipChangeRequest = exports.RejectRelationshipChangeRequest = exports.GetRelationshipsRequest = exports.GetRelationshipByAddressRequest = exports.GetRelationshipRequest = 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 = void 0;
4088
4168
  exports.LoadPeerTokenAnonymousByIdAndKeyRequest = {
4089
4169
  "$schema": "http://json-schema.org/draft-07/schema#",
4090
4170
  "$ref": "#/definitions/LoadPeerTokenAnonymousByIdAndKeyRequest",
@@ -5137,6 +5217,153 @@ exports.DownloadAttachmentRequest = {
5137
5217
  }
5138
5218
  }
5139
5219
  };
5220
+ exports.CreateRelationshipChallengeRequest = {
5221
+ "$schema": "http://json-schema.org/draft-07/schema#",
5222
+ "$ref": "#/definitions/CreateRelationshipChallengeRequest",
5223
+ "definitions": {
5224
+ "CreateRelationshipChallengeRequest": {
5225
+ "type": "object",
5226
+ "properties": {
5227
+ "challengeType": {
5228
+ "type": "string",
5229
+ "const": "Relationship"
5230
+ },
5231
+ "relationship": {
5232
+ "type": "string",
5233
+ "format": "relationshipId"
5234
+ }
5235
+ },
5236
+ "required": [
5237
+ "challengeType",
5238
+ "relationship"
5239
+ ],
5240
+ "additionalProperties": false
5241
+ }
5242
+ }
5243
+ };
5244
+ exports.CreateIdentityChallengeRequest = {
5245
+ "$schema": "http://json-schema.org/draft-07/schema#",
5246
+ "$ref": "#/definitions/CreateIdentityChallengeRequest",
5247
+ "definitions": {
5248
+ "CreateIdentityChallengeRequest": {
5249
+ "type": "object",
5250
+ "properties": {
5251
+ "challengeType": {
5252
+ "type": "string",
5253
+ "const": "Identity"
5254
+ }
5255
+ },
5256
+ "required": [
5257
+ "challengeType"
5258
+ ],
5259
+ "additionalProperties": false
5260
+ }
5261
+ }
5262
+ };
5263
+ exports.CreateDeviceChallengeRequest = {
5264
+ "$schema": "http://json-schema.org/draft-07/schema#",
5265
+ "$ref": "#/definitions/CreateDeviceChallengeRequest",
5266
+ "definitions": {
5267
+ "CreateDeviceChallengeRequest": {
5268
+ "type": "object",
5269
+ "properties": {
5270
+ "challengeType": {
5271
+ "type": "string",
5272
+ "const": "Device"
5273
+ }
5274
+ },
5275
+ "required": [
5276
+ "challengeType"
5277
+ ],
5278
+ "additionalProperties": false
5279
+ }
5280
+ }
5281
+ };
5282
+ exports.CreateChallengeRequest = {
5283
+ "$schema": "http://json-schema.org/draft-07/schema#",
5284
+ "$ref": "#/definitions/CreateChallengeRequest",
5285
+ "definitions": {
5286
+ "CreateChallengeRequest": {
5287
+ "anyOf": [
5288
+ {
5289
+ "$ref": "#/definitions/CreateRelationshipChallengeRequest"
5290
+ },
5291
+ {
5292
+ "$ref": "#/definitions/CreateIdentityChallengeRequest"
5293
+ },
5294
+ {
5295
+ "$ref": "#/definitions/CreateDeviceChallengeRequest"
5296
+ }
5297
+ ]
5298
+ },
5299
+ "CreateRelationshipChallengeRequest": {
5300
+ "type": "object",
5301
+ "properties": {
5302
+ "challengeType": {
5303
+ "type": "string",
5304
+ "const": "Relationship"
5305
+ },
5306
+ "relationship": {
5307
+ "type": "string",
5308
+ "format": "relationshipId"
5309
+ }
5310
+ },
5311
+ "required": [
5312
+ "challengeType",
5313
+ "relationship"
5314
+ ],
5315
+ "additionalProperties": false
5316
+ },
5317
+ "CreateIdentityChallengeRequest": {
5318
+ "type": "object",
5319
+ "properties": {
5320
+ "challengeType": {
5321
+ "type": "string",
5322
+ "const": "Identity"
5323
+ }
5324
+ },
5325
+ "required": [
5326
+ "challengeType"
5327
+ ],
5328
+ "additionalProperties": false
5329
+ },
5330
+ "CreateDeviceChallengeRequest": {
5331
+ "type": "object",
5332
+ "properties": {
5333
+ "challengeType": {
5334
+ "type": "string",
5335
+ "const": "Device"
5336
+ }
5337
+ },
5338
+ "required": [
5339
+ "challengeType"
5340
+ ],
5341
+ "additionalProperties": false
5342
+ }
5343
+ }
5344
+ };
5345
+ exports.ValidateChallengeRequest = {
5346
+ "$schema": "http://json-schema.org/draft-07/schema#",
5347
+ "$ref": "#/definitions/ValidateChallengeRequest",
5348
+ "definitions": {
5349
+ "ValidateChallengeRequest": {
5350
+ "type": "object",
5351
+ "properties": {
5352
+ "challengeString": {
5353
+ "type": "string"
5354
+ },
5355
+ "signature": {
5356
+ "type": "string"
5357
+ }
5358
+ },
5359
+ "required": [
5360
+ "challengeString",
5361
+ "signature"
5362
+ ],
5363
+ "additionalProperties": false
5364
+ }
5365
+ }
5366
+ };
5140
5367
  exports.CreateDeviceRequest = {
5141
5368
  "$schema": "http://json-schema.org/draft-07/schema#",
5142
5369
  "$ref": "#/definitions/CreateDeviceRequest",
@@ -6042,7 +6269,7 @@ class UseCase {
6042
6269
  }
6043
6270
  async execute(request) {
6044
6271
  if (this.requestValidator) {
6045
- const validationResult = this.requestValidator.validate(request);
6272
+ const validationResult = await this.requestValidator.validate(request);
6046
6273
  if (validationResult.isInvalid()) {
6047
6274
  return this.validationFailed(validationResult);
6048
6275
  }
@@ -9446,6 +9673,280 @@ __exportStar(__webpack_require__(/*! ./SyncEverything */ "./dist/useCases/transp
9446
9673
 
9447
9674
  /***/ }),
9448
9675
 
9676
+ /***/ "./dist/useCases/transport/challenges/ChallengeMapper.js":
9677
+ /*!***************************************************************!*\
9678
+ !*** ./dist/useCases/transport/challenges/ChallengeMapper.js ***!
9679
+ \***************************************************************/
9680
+ /***/ ((__unused_webpack_module, exports) => {
9681
+
9682
+ "use strict";
9683
+
9684
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9685
+ exports.ChallengeMapper = void 0;
9686
+ class ChallengeMapper {
9687
+ static toChallengeDTO(signedChallenge) {
9688
+ const challenge = JSON.parse(signedChallenge.challenge);
9689
+ return {
9690
+ id: challenge.id,
9691
+ expiresAt: challenge.expiresAt,
9692
+ createdBy: challenge.createdBy,
9693
+ createdByDevice: challenge.createdByDevice,
9694
+ type: challenge.type,
9695
+ signature: signedChallenge.signature.toBase64(),
9696
+ challengeString: signedChallenge.challenge
9697
+ };
9698
+ }
9699
+ }
9700
+ exports.ChallengeMapper = ChallengeMapper;
9701
+ //# sourceMappingURL=ChallengeMapper.js.map
9702
+
9703
+ /***/ }),
9704
+
9705
+ /***/ "./dist/useCases/transport/challenges/CreateChallenge.js":
9706
+ /*!***************************************************************!*\
9707
+ !*** ./dist/useCases/transport/challenges/CreateChallenge.js ***!
9708
+ \***************************************************************/
9709
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
9710
+
9711
+ "use strict";
9712
+
9713
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
9714
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9715
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9716
+ 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;
9717
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
9718
+ };
9719
+ var __metadata = (this && this.__metadata) || function (k, v) {
9720
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9721
+ };
9722
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
9723
+ return function (target, key) { decorator(target, key, paramIndex); }
9724
+ };
9725
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9726
+ exports.CreateChallengeUseCase = void 0;
9727
+ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
9728
+ const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9729
+ const fluent_ts_validator_1 = __webpack_require__(/*! fluent-ts-validator */ "./node_modules/fluent-ts-validator/dist/index.js");
9730
+ const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9731
+ const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9732
+ const ChallengeMapper_1 = __webpack_require__(/*! ./ChallengeMapper */ "./dist/useCases/transport/challenges/ChallengeMapper.js");
9733
+ function isCreateRelationshipChallengeRequest(value) {
9734
+ return value.challengeType === "Relationship" && typeof value.relationship === "string";
9735
+ }
9736
+ function isCreateIdentityChallengeRequest(value) {
9737
+ return value.challengeType === "Identity";
9738
+ }
9739
+ function isCreateDeviceChallengeRequest(value) {
9740
+ return value.challengeType === "Device";
9741
+ }
9742
+ let Validator = class Validator extends common_1.SchemaValidator {
9743
+ constructor(schemaRepository) {
9744
+ super(schemaRepository.getSchema("CreateChallengeRequest"));
9745
+ this.relationshipSchema = schemaRepository.getSchema("CreateRelationshipChallengeRequest");
9746
+ this.identitySchema = schemaRepository.getSchema("CreateIdentityChallengeRequest");
9747
+ this.deviceSchema = schemaRepository.getSchema("CreateDeviceChallengeRequest");
9748
+ }
9749
+ validate(input) {
9750
+ if (this.schema.validate(input).isValid)
9751
+ return new fluent_ts_validator_1.ValidationResult();
9752
+ if (isCreateRelationshipChallengeRequest(input)) {
9753
+ return this.convertValidationResult(this.relationshipSchema.validate(input));
9754
+ }
9755
+ else if (isCreateIdentityChallengeRequest(input)) {
9756
+ return this.convertValidationResult(this.identitySchema.validate(input));
9757
+ }
9758
+ else if (isCreateDeviceChallengeRequest(input)) {
9759
+ return this.convertValidationResult(this.deviceSchema.validate(input));
9760
+ }
9761
+ const result = new fluent_ts_validator_1.ValidationResult();
9762
+ result.addFailures([new fluent_ts_validator_1.ValidationFailure(undefined, "", undefined, common_1.RuntimeErrors.general.invalidPayload().code, common_1.RuntimeErrors.general.invalidPayload().message)]);
9763
+ return result;
9764
+ }
9765
+ };
9766
+ Validator = __decorate([
9767
+ __param(0, typescript_ioc_1.Inject),
9768
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
9769
+ ], Validator);
9770
+ let CreateChallengeUseCase = class CreateChallengeUseCase extends common_1.UseCase {
9771
+ constructor(challengeController, relationshipsController, validator) {
9772
+ super(validator);
9773
+ this.challengeController = challengeController;
9774
+ this.relationshipsController = relationshipsController;
9775
+ }
9776
+ async executeInternal(request) {
9777
+ const relationshipResult = await this.getRelationship(request);
9778
+ if (relationshipResult.isError)
9779
+ return ts_utils_1.Result.fail(relationshipResult.error);
9780
+ let challengeType;
9781
+ switch (request.challengeType) {
9782
+ case "Relationship":
9783
+ challengeType = transport_1.ChallengeType.Relationship;
9784
+ break;
9785
+ case "Identity":
9786
+ challengeType = transport_1.ChallengeType.Identity;
9787
+ break;
9788
+ case "Device":
9789
+ challengeType = transport_1.ChallengeType.Device;
9790
+ break;
9791
+ default:
9792
+ throw new Error("Unknown challenge type.");
9793
+ }
9794
+ const signedChallenge = await this.challengeController.createChallenge(challengeType, relationshipResult.value);
9795
+ return ts_utils_1.Result.ok(ChallengeMapper_1.ChallengeMapper.toChallengeDTO(signedChallenge));
9796
+ }
9797
+ async getRelationship(request) {
9798
+ if (!isCreateRelationshipChallengeRequest(request))
9799
+ return ts_utils_1.Result.ok(undefined);
9800
+ const relationship = await this.relationshipsController.getRelationship(transport_1.CoreId.from(request.relationship));
9801
+ if (!relationship)
9802
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.Relationship));
9803
+ return ts_utils_1.Result.ok(relationship);
9804
+ }
9805
+ };
9806
+ CreateChallengeUseCase = __decorate([
9807
+ __param(0, typescript_ioc_1.Inject),
9808
+ __param(1, typescript_ioc_1.Inject),
9809
+ __param(2, typescript_ioc_1.Inject),
9810
+ __metadata("design:paramtypes", [transport_1.ChallengeController,
9811
+ transport_1.RelationshipsController,
9812
+ Validator])
9813
+ ], CreateChallengeUseCase);
9814
+ exports.CreateChallengeUseCase = CreateChallengeUseCase;
9815
+ //# sourceMappingURL=CreateChallenge.js.map
9816
+
9817
+ /***/ }),
9818
+
9819
+ /***/ "./dist/useCases/transport/challenges/ValidateChallange.js":
9820
+ /*!*****************************************************************!*\
9821
+ !*** ./dist/useCases/transport/challenges/ValidateChallange.js ***!
9822
+ \*****************************************************************/
9823
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
9824
+
9825
+ "use strict";
9826
+
9827
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
9828
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9829
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9830
+ 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;
9831
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
9832
+ };
9833
+ var __metadata = (this && this.__metadata) || function (k, v) {
9834
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9835
+ };
9836
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
9837
+ return function (target, key) { decorator(target, key, paramIndex); }
9838
+ };
9839
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9840
+ exports.ValidateChallengeUseCase = void 0;
9841
+ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
9842
+ const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
9843
+ const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9844
+ const fluent_ts_validator_1 = __webpack_require__(/*! fluent-ts-validator */ "./node_modules/fluent-ts-validator/dist/index.js");
9845
+ const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9846
+ const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9847
+ const RelationshipMapper_1 = __webpack_require__(/*! ../relationships/RelationshipMapper */ "./dist/useCases/transport/relationships/RelationshipMapper.js");
9848
+ let Validator = class Validator extends common_1.SchemaValidator {
9849
+ constructor(schemaRepository) {
9850
+ super(schemaRepository.getSchema("ValidateChallengeRequest"));
9851
+ }
9852
+ async validate(value) {
9853
+ const validationResult = await super.validate(value);
9854
+ if (validationResult.isInvalid())
9855
+ return validationResult;
9856
+ const signatureValidationResult = await this.validateSignature(value.signature);
9857
+ if (signatureValidationResult.isError) {
9858
+ validationResult.addFailures([new fluent_ts_validator_1.ValidationFailure(undefined, "signature", undefined, undefined, signatureValidationResult.error.message)]);
9859
+ }
9860
+ const challengeValidationResult = await this.validateChallenge(value.challengeString);
9861
+ if (challengeValidationResult.isError) {
9862
+ validationResult.addFailures([new fluent_ts_validator_1.ValidationFailure(undefined, "challenge", undefined, undefined, challengeValidationResult.error.message)]);
9863
+ }
9864
+ return validationResult;
9865
+ }
9866
+ async validateSignature(signature) {
9867
+ try {
9868
+ await crypto_1.CryptoSignature.fromBase64(signature);
9869
+ return ts_utils_1.Result.ok(undefined);
9870
+ }
9871
+ catch {
9872
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.challenges.invalidSignature());
9873
+ }
9874
+ }
9875
+ async validateChallenge(challenge) {
9876
+ try {
9877
+ await transport_1.Challenge.deserialize(challenge);
9878
+ return ts_utils_1.Result.ok(undefined);
9879
+ }
9880
+ catch {
9881
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.challenges.invalidChallenge());
9882
+ }
9883
+ }
9884
+ };
9885
+ Validator = __decorate([
9886
+ __param(0, typescript_ioc_1.Inject),
9887
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
9888
+ ], Validator);
9889
+ let ValidateChallengeUseCase = class ValidateChallengeUseCase extends common_1.UseCase {
9890
+ constructor(challengeController, validator) {
9891
+ super(validator);
9892
+ this.challengeController = challengeController;
9893
+ }
9894
+ async executeInternal(request) {
9895
+ const signature = await crypto_1.CryptoSignature.fromBase64(request.signature);
9896
+ const signedChallenge = await transport_1.ChallengeSigned.from({
9897
+ challenge: request.challengeString,
9898
+ signature: signature
9899
+ });
9900
+ try {
9901
+ const success = await this.challengeController.validateChallenge(signedChallenge);
9902
+ const correspondingRelationship = success.correspondingRelationship ? RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(success.correspondingRelationship) : undefined;
9903
+ return ts_utils_1.Result.ok({
9904
+ isValid: success.isValid,
9905
+ correspondingRelationship
9906
+ });
9907
+ }
9908
+ catch (e) {
9909
+ if (!(e instanceof transport_1.CoreError) || e.code !== "error.transport.notImplemented")
9910
+ throw e;
9911
+ return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.featureNotImplemented("Validating challenges of the type 'Device' is not yet implemented."));
9912
+ }
9913
+ }
9914
+ };
9915
+ ValidateChallengeUseCase = __decorate([
9916
+ __param(0, typescript_ioc_1.Inject),
9917
+ __param(1, typescript_ioc_1.Inject),
9918
+ __metadata("design:paramtypes", [transport_1.ChallengeController, Validator])
9919
+ ], ValidateChallengeUseCase);
9920
+ exports.ValidateChallengeUseCase = ValidateChallengeUseCase;
9921
+ //# sourceMappingURL=ValidateChallange.js.map
9922
+
9923
+ /***/ }),
9924
+
9925
+ /***/ "./dist/useCases/transport/challenges/index.js":
9926
+ /*!*****************************************************!*\
9927
+ !*** ./dist/useCases/transport/challenges/index.js ***!
9928
+ \*****************************************************/
9929
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
9930
+
9931
+ "use strict";
9932
+
9933
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9934
+ if (k2 === undefined) k2 = k;
9935
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9936
+ }) : (function(o, m, k, k2) {
9937
+ if (k2 === undefined) k2 = k;
9938
+ o[k2] = m[k];
9939
+ }));
9940
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
9941
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
9942
+ };
9943
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9944
+ __exportStar(__webpack_require__(/*! ./CreateChallenge */ "./dist/useCases/transport/challenges/CreateChallenge.js"), exports);
9945
+ __exportStar(__webpack_require__(/*! ./ValidateChallange */ "./dist/useCases/transport/challenges/ValidateChallange.js"), exports);
9946
+ //# sourceMappingURL=index.js.map
9947
+
9948
+ /***/ }),
9949
+
9449
9950
  /***/ "./dist/useCases/transport/devices/CreateDevice.js":
9450
9951
  /*!*********************************************************!*\
9451
9952
  !*** ./dist/useCases/transport/devices/CreateDevice.js ***!
@@ -9536,6 +10037,7 @@ class CreateDeviceOnboardingTokenRequestValidator extends common_1.RuntimeValida
9536
10037
  constructor() {
9537
10038
  super();
9538
10039
  this.validateIfString((x) => x.id).fulfills(common_1.IdValidator.required(transport_1.BackboneIds.device));
10040
+ this.validateIf((x) => x.expiresAt).fulfills(common_1.DateValidator.optional());
9539
10041
  this.validateIf((x) => x.expiresAt)
9540
10042
  .fulfills((e) => luxon_1.DateTime.fromISO(e) > luxon_1.DateTime.utc())
9541
10043
  .whenNotNull()
@@ -10533,6 +11035,7 @@ class UploadOwnFileRequestValidator extends common_1.RuntimeValidator {
10533
11035
  this.validateIf((x) => x.mimetype).isNotNull();
10534
11036
  this.validateIf((x) => x.title).isNotNull();
10535
11037
  this.validateIf((x) => x.expiresAt).isNotNull();
11038
+ this.validateIf((x) => x.expiresAt).fulfills(common_1.DateValidator.required());
10536
11039
  this.validateIf((x) => x.expiresAt)
10537
11040
  .fulfills((e) => luxon_1.DateTime.fromISO(e) > luxon_1.DateTime.utc())
10538
11041
  .withFailureMessage("'$propertyName' must be in the future.");
@@ -10738,6 +11241,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10738
11241
  };
10739
11242
  Object.defineProperty(exports, "__esModule", ({ value: true }));
10740
11243
  __exportStar(__webpack_require__(/*! ./account */ "./dist/useCases/transport/account/index.js"), exports);
11244
+ __exportStar(__webpack_require__(/*! ./challenges */ "./dist/useCases/transport/challenges/index.js"), exports);
10741
11245
  __exportStar(__webpack_require__(/*! ./devices */ "./dist/useCases/transport/devices/index.js"), exports);
10742
11246
  __exportStar(__webpack_require__(/*! ./files */ "./dist/useCases/transport/files/index.js"), exports);
10743
11247
  __exportStar(__webpack_require__(/*! ./identity */ "./dist/useCases/transport/identity/index.js"), exports);
@@ -11306,6 +11810,7 @@ const RelationshipTemplateMapper_1 = __webpack_require__(/*! ./RelationshipTempl
11306
11810
  class CreateOwnRelationshipTemplateRequestValidator extends common_1.RuntimeValidator {
11307
11811
  constructor() {
11308
11812
  super();
11813
+ this.validateIf((x) => x.expiresAt).fulfills(common_1.DateValidator.required());
11309
11814
  this.validateIf((x) => x.expiresAt)
11310
11815
  .fulfills((e) => luxon_1.DateTime.fromISO(e) > luxon_1.DateTime.utc())
11311
11816
  .withFailureMessage("'$propertyName' must be in the future.");
@@ -12496,6 +13001,7 @@ class CreateOwnTokenRequestValidator extends common_1.RuntimeValidator {
12496
13001
  super();
12497
13002
  this.validateIfAny((x) => x.content).isNotNull();
12498
13003
  this.validateIf((x) => x.expiresAt).isNotNull();
13004
+ this.validateIf((x) => x.expiresAt).fulfills(common_1.DateValidator.required());
12499
13005
  this.validateIf((x) => x.expiresAt)
12500
13006
  .fulfills((e) => luxon_1.DateTime.fromISO(e) > luxon_1.DateTime.utc())
12501
13007
  .withFailureMessage("'$propertyName' must be in the future.");
@@ -15419,7 +15925,6 @@ const names_1 = __webpack_require__(/*! ./names */ "./node_modules/ajv/dist/comp
15419
15925
  const resolve_1 = __webpack_require__(/*! ./resolve */ "./node_modules/ajv/dist/compile/resolve.js");
15420
15926
  const util_1 = __webpack_require__(/*! ./util */ "./node_modules/ajv/dist/compile/util.js");
15421
15927
  const validate_1 = __webpack_require__(/*! ./validate */ "./node_modules/ajv/dist/compile/validate/index.js");
15422
- const URI = __webpack_require__(/*! uri-js */ "./node_modules/uri-js/dist/es5/uri.all.js");
15423
15928
  class SchemaEnv {
15424
15929
  constructor(env) {
15425
15930
  var _a;
@@ -15448,7 +15953,7 @@ function compileSchema(sch) {
15448
15953
  const _sch = getCompilingSchema.call(this, sch);
15449
15954
  if (_sch)
15450
15955
  return _sch;
15451
- const rootId = (0, resolve_1.getFullPath)(sch.root.baseId); // TODO if getFullPath removed 1 tests fails
15956
+ const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails
15452
15957
  const { es5, lines } = this.opts.code;
15453
15958
  const { ownProperties } = this.opts;
15454
15959
  const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });
@@ -15539,7 +16044,7 @@ function compileSchema(sch) {
15539
16044
  exports.compileSchema = compileSchema;
15540
16045
  function resolveRef(root, baseId, ref) {
15541
16046
  var _a;
15542
- ref = (0, resolve_1.resolveUrl)(baseId, ref);
16047
+ ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);
15543
16048
  const schOrFunc = root.refs[ref];
15544
16049
  if (schOrFunc)
15545
16050
  return schOrFunc;
@@ -15585,9 +16090,9 @@ ref // reference to resolve
15585
16090
  function resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it
15586
16091
  ref // reference to resolve
15587
16092
  ) {
15588
- const p = URI.parse(ref);
15589
- const refPath = (0, resolve_1._getFullPath)(p);
15590
- let baseId = (0, resolve_1.getFullPath)(root.baseId);
16093
+ const p = this.opts.uriResolver.parse(ref);
16094
+ const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);
16095
+ let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);
15591
16096
  // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests
15592
16097
  if (Object.keys(root.schema).length > 0 && refPath === baseId) {
15593
16098
  return getJsonPointer.call(this, p, root);
@@ -15609,7 +16114,7 @@ ref // reference to resolve
15609
16114
  const { schemaId } = this.opts;
15610
16115
  const schId = schema[schemaId];
15611
16116
  if (schId)
15612
- baseId = (0, resolve_1.resolveUrl)(baseId, schId);
16117
+ baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);
15613
16118
  return new SchemaEnv({ schema, schemaId, root, baseId });
15614
16119
  }
15615
16120
  return getJsonPointer.call(this, p, schOrRef);
@@ -15636,12 +16141,12 @@ function getJsonPointer(parsedRef, { baseId, schema, root }) {
15636
16141
  // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?
15637
16142
  const schId = typeof schema === "object" && schema[this.opts.schemaId];
15638
16143
  if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {
15639
- baseId = (0, resolve_1.resolveUrl)(baseId, schId);
16144
+ baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);
15640
16145
  }
15641
16146
  }
15642
16147
  let env;
15643
16148
  if (typeof schema != "boolean" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {
15644
- const $ref = (0, resolve_1.resolveUrl)(baseId, schema.$ref);
16149
+ const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);
15645
16150
  env = resolveSchema.call(this, root, $ref);
15646
16151
  }
15647
16152
  // even though resolution failed we need to return SchemaEnv to throw exception
@@ -15705,10 +16210,10 @@ exports["default"] = names;
15705
16210
  Object.defineProperty(exports, "__esModule", ({ value: true }));
15706
16211
  const resolve_1 = __webpack_require__(/*! ./resolve */ "./node_modules/ajv/dist/compile/resolve.js");
15707
16212
  class MissingRefError extends Error {
15708
- constructor(baseId, ref, msg) {
16213
+ constructor(resolver, baseId, ref, msg) {
15709
16214
  super(msg || `can't resolve reference ${ref} from id ${baseId}`);
15710
- this.missingRef = (0, resolve_1.resolveUrl)(baseId, ref);
15711
- this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(this.missingRef));
16215
+ this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);
16216
+ this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));
15712
16217
  }
15713
16218
  }
15714
16219
  exports["default"] = MissingRefError;
@@ -15729,7 +16234,6 @@ exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getF
15729
16234
  const util_1 = __webpack_require__(/*! ./util */ "./node_modules/ajv/dist/compile/util.js");
15730
16235
  const equal = __webpack_require__(/*! fast-deep-equal */ "./node_modules/fast-deep-equal/index.js");
15731
16236
  const traverse = __webpack_require__(/*! json-schema-traverse */ "./node_modules/json-schema-traverse/index.js");
15732
- const URI = __webpack_require__(/*! uri-js */ "./node_modules/uri-js/dist/es5/uri.all.js");
15733
16237
  // TODO refactor to use keyword definitions
15734
16238
  const SIMPLE_INLINED = new Set([
15735
16239
  "type",
@@ -15794,15 +16298,16 @@ function countKeys(schema) {
15794
16298
  }
15795
16299
  return count;
15796
16300
  }
15797
- function getFullPath(id = "", normalize) {
16301
+ function getFullPath(resolver, id = "", normalize) {
15798
16302
  if (normalize !== false)
15799
16303
  id = normalizeId(id);
15800
- const p = URI.parse(id);
15801
- return _getFullPath(p);
16304
+ const p = resolver.parse(id);
16305
+ return _getFullPath(resolver, p);
15802
16306
  }
15803
16307
  exports.getFullPath = getFullPath;
15804
- function _getFullPath(p) {
15805
- return URI.serialize(p).split("#")[0] + "#";
16308
+ function _getFullPath(resolver, p) {
16309
+ const serialized = resolver.serialize(p);
16310
+ return serialized.split("#")[0] + "#";
15806
16311
  }
15807
16312
  exports._getFullPath = _getFullPath;
15808
16313
  const TRAILING_SLASH_HASH = /#\/?$/;
@@ -15810,19 +16315,19 @@ function normalizeId(id) {
15810
16315
  return id ? id.replace(TRAILING_SLASH_HASH, "") : "";
15811
16316
  }
15812
16317
  exports.normalizeId = normalizeId;
15813
- function resolveUrl(baseId, id) {
16318
+ function resolveUrl(resolver, baseId, id) {
15814
16319
  id = normalizeId(id);
15815
- return URI.resolve(baseId, id);
16320
+ return resolver.resolve(baseId, id);
15816
16321
  }
15817
16322
  exports.resolveUrl = resolveUrl;
15818
16323
  const ANCHOR = /^[a-z_][-a-z0-9._]*$/i;
15819
16324
  function getSchemaRefs(schema, baseId) {
15820
16325
  if (typeof schema == "boolean")
15821
16326
  return {};
15822
- const { schemaId } = this.opts;
16327
+ const { schemaId, uriResolver } = this.opts;
15823
16328
  const schId = normalizeId(schema[schemaId] || baseId);
15824
16329
  const baseIds = { "": schId };
15825
- const pathPrefix = getFullPath(schId, false);
16330
+ const pathPrefix = getFullPath(uriResolver, schId, false);
15826
16331
  const localRefs = {};
15827
16332
  const schemaRefs = new Set();
15828
16333
  traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {
@@ -15836,7 +16341,9 @@ function getSchemaRefs(schema, baseId) {
15836
16341
  addAnchor.call(this, sch.$dynamicAnchor);
15837
16342
  baseIds[jsonPtr] = baseId;
15838
16343
  function addRef(ref) {
15839
- ref = normalizeId(baseId ? URI.resolve(baseId, ref) : ref);
16344
+ // eslint-disable-next-line @typescript-eslint/unbound-method
16345
+ const _resolve = this.opts.uriResolver.resolve;
16346
+ ref = normalizeId(baseId ? _resolve(baseId, ref) : ref);
15840
16347
  if (schemaRefs.has(ref))
15841
16348
  throw ambiguos(ref);
15842
16349
  schemaRefs.add(ref);
@@ -16600,7 +17107,7 @@ function checkNoDefault(it) {
16600
17107
  function updateContext(it) {
16601
17108
  const schId = it.schema[it.opts.schemaId];
16602
17109
  if (schId)
16603
- it.baseId = (0, resolve_1.resolveUrl)(it.baseId, schId);
17110
+ it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);
16604
17111
  }
16605
17112
  function checkAsyncSchema(it) {
16606
17113
  if (it.schema.$async && !it.schemaEnv.$async)
@@ -17222,6 +17729,7 @@ const resolve_1 = __webpack_require__(/*! ./compile/resolve */ "./node_modules/a
17222
17729
  const dataType_1 = __webpack_require__(/*! ./compile/validate/dataType */ "./node_modules/ajv/dist/compile/validate/dataType.js");
17223
17730
  const util_1 = __webpack_require__(/*! ./compile/util */ "./node_modules/ajv/dist/compile/util.js");
17224
17731
  const $dataRefSchema = __webpack_require__(/*! ./refs/data.json */ "./node_modules/ajv/dist/refs/data.json");
17732
+ const uri_1 = __webpack_require__(/*! ./runtime/uri */ "./node_modules/ajv/dist/runtime/uri.js");
17225
17733
  const defaultRegExp = (str, flags) => new RegExp(str, flags);
17226
17734
  defaultRegExp.code = "new RegExp";
17227
17735
  const META_IGNORE_OPTIONS = ["removeAdditional", "useDefaults", "coerceTypes"];
@@ -17265,29 +17773,31 @@ const deprecatedOptions = {
17265
17773
  const MAX_EXPRESSION = 200;
17266
17774
  // eslint-disable-next-line complexity
17267
17775
  function requiredOptions(o) {
17268
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
17776
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
17269
17777
  const s = o.strict;
17270
17778
  const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;
17271
17779
  const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;
17272
17780
  const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;
17781
+ const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;
17273
17782
  return {
17274
- strictSchema: (_e = (_d = o.strictSchema) !== null && _d !== void 0 ? _d : s) !== null && _e !== void 0 ? _e : true,
17275
- strictNumbers: (_g = (_f = o.strictNumbers) !== null && _f !== void 0 ? _f : s) !== null && _g !== void 0 ? _g : true,
17276
- strictTypes: (_j = (_h = o.strictTypes) !== null && _h !== void 0 ? _h : s) !== null && _j !== void 0 ? _j : "log",
17277
- strictTuples: (_l = (_k = o.strictTuples) !== null && _k !== void 0 ? _k : s) !== null && _l !== void 0 ? _l : "log",
17278
- strictRequired: (_o = (_m = o.strictRequired) !== null && _m !== void 0 ? _m : s) !== null && _o !== void 0 ? _o : false,
17783
+ strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,
17784
+ strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,
17785
+ strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : "log",
17786
+ strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : "log",
17787
+ strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,
17279
17788
  code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },
17280
- loopRequired: (_p = o.loopRequired) !== null && _p !== void 0 ? _p : MAX_EXPRESSION,
17281
- loopEnum: (_q = o.loopEnum) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,
17282
- meta: (_r = o.meta) !== null && _r !== void 0 ? _r : true,
17283
- messages: (_s = o.messages) !== null && _s !== void 0 ? _s : true,
17284
- inlineRefs: (_t = o.inlineRefs) !== null && _t !== void 0 ? _t : true,
17285
- schemaId: (_u = o.schemaId) !== null && _u !== void 0 ? _u : "$id",
17286
- addUsedSchema: (_v = o.addUsedSchema) !== null && _v !== void 0 ? _v : true,
17287
- validateSchema: (_w = o.validateSchema) !== null && _w !== void 0 ? _w : true,
17288
- validateFormats: (_x = o.validateFormats) !== null && _x !== void 0 ? _x : true,
17289
- unicodeRegExp: (_y = o.unicodeRegExp) !== null && _y !== void 0 ? _y : true,
17290
- int32range: (_z = o.int32range) !== null && _z !== void 0 ? _z : true,
17789
+ loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,
17790
+ loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,
17791
+ meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,
17792
+ messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,
17793
+ inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,
17794
+ schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : "$id",
17795
+ addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,
17796
+ validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,
17797
+ validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,
17798
+ unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,
17799
+ int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,
17800
+ uriResolver: uriResolver,
17291
17801
  };
17292
17802
  }
17293
17803
  class Ajv {
@@ -17869,6 +18379,22 @@ ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default';
17869
18379
 
17870
18380
  /***/ }),
17871
18381
 
18382
+ /***/ "./node_modules/ajv/dist/runtime/uri.js":
18383
+ /*!**********************************************!*\
18384
+ !*** ./node_modules/ajv/dist/runtime/uri.js ***!
18385
+ \**********************************************/
18386
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
18387
+
18388
+ "use strict";
18389
+
18390
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
18391
+ const uri = __webpack_require__(/*! uri-js */ "./node_modules/uri-js/dist/es5/uri.all.js");
18392
+ uri.code = 'require("ajv/dist/runtime/uri").default';
18393
+ exports["default"] = uri;
18394
+ //# sourceMappingURL=uri.js.map
18395
+
18396
+ /***/ }),
18397
+
17872
18398
  /***/ "./node_modules/ajv/dist/runtime/validation_error.js":
17873
18399
  /*!***********************************************************!*\
17874
18400
  !*** ./node_modules/ajv/dist/runtime/validation_error.js ***!
@@ -19114,7 +19640,7 @@ const def = {
19114
19640
  return callRootRef();
19115
19641
  const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);
19116
19642
  if (schOrEnv === undefined)
19117
- throw new ref_error_1.default(baseId, $ref);
19643
+ throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);
19118
19644
  if (schOrEnv instanceof compile_1.SchemaEnv)
19119
19645
  return callValidate(schOrEnv);
19120
19646
  return inlineRefSchema(schOrEnv);