@nmshd/runtime 1.2.0 → 1.2.4

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 (90) hide show
  1. package/dist/buildInformation.js +5 -5
  2. package/dist/events/DataEvent.d.ts +2 -1
  3. package/dist/events/DataEvent.js +2 -1
  4. package/dist/events/DataEvent.js.map +1 -1
  5. package/dist/events/consumption/MailReceivedEvent.d.ts +1 -1
  6. package/dist/events/consumption/MailReceivedEvent.js +2 -2
  7. package/dist/events/consumption/MailReceivedEvent.js.map +1 -1
  8. package/dist/events/consumption/RelationshipEvent.d.ts +1 -1
  9. package/dist/events/consumption/RelationshipEvent.js +2 -2
  10. package/dist/events/consumption/RelationshipEvent.js.map +1 -1
  11. package/dist/events/consumption/RequestMailReceivedEvent.d.ts +1 -1
  12. package/dist/events/consumption/RequestMailReceivedEvent.js +2 -2
  13. package/dist/events/consumption/RequestMailReceivedEvent.js.map +1 -1
  14. package/dist/events/consumption/RequestReceivedEvent.d.ts +1 -1
  15. package/dist/events/consumption/RequestReceivedEvent.js +2 -2
  16. package/dist/events/consumption/RequestReceivedEvent.js.map +1 -1
  17. package/dist/events/transport/MessageDeliveredEvent.d.ts +1 -1
  18. package/dist/events/transport/MessageDeliveredEvent.js +2 -2
  19. package/dist/events/transport/MessageDeliveredEvent.js.map +1 -1
  20. package/dist/events/transport/MessageReceivedEvent.d.ts +1 -1
  21. package/dist/events/transport/MessageReceivedEvent.js +2 -2
  22. package/dist/events/transport/MessageReceivedEvent.js.map +1 -1
  23. package/dist/events/transport/MessageSentEvent.d.ts +1 -1
  24. package/dist/events/transport/MessageSentEvent.js +2 -2
  25. package/dist/events/transport/MessageSentEvent.js.map +1 -1
  26. package/dist/events/transport/RelationshipChangeReceivedEvent.d.ts +1 -1
  27. package/dist/events/transport/RelationshipChangeReceivedEvent.js +2 -2
  28. package/dist/events/transport/RelationshipChangeReceivedEvent.js.map +1 -1
  29. package/dist/events/transport/RelationshipChangedEvent.d.ts +1 -1
  30. package/dist/events/transport/RelationshipChangedEvent.js +2 -2
  31. package/dist/events/transport/RelationshipChangedEvent.js.map +1 -1
  32. package/dist/modules/MessageModule.js +4 -4
  33. package/dist/modules/MessageModule.js.map +1 -1
  34. package/dist/useCases/common/SchemaRepository.d.ts +5 -4
  35. package/dist/useCases/common/SchemaRepository.js +11 -9
  36. package/dist/useCases/common/SchemaRepository.js.map +1 -1
  37. package/dist/useCases/common/Schemas.d.ts +78 -1602
  38. package/dist/useCases/common/Schemas.js +172 -57
  39. package/dist/useCases/common/Schemas.js.map +1 -1
  40. package/dist/useCases/common/UseCase.d.ts +1 -4
  41. package/dist/useCases/common/UseCase.js.map +1 -1
  42. package/dist/useCases/common/index.d.ts +2 -0
  43. package/dist/useCases/common/index.js +2 -0
  44. package/dist/useCases/common/index.js.map +1 -1
  45. package/dist/useCases/common/validation/IValidator.d.ts +4 -0
  46. package/dist/useCases/common/validation/IValidator.js +3 -0
  47. package/dist/useCases/common/validation/IValidator.js.map +1 -0
  48. package/dist/useCases/common/validation/SchemaValidator.d.ts +10 -0
  49. package/dist/useCases/common/{SchemaValidator.js → validation/SchemaValidator.js} +6 -3
  50. package/dist/useCases/common/validation/SchemaValidator.js.map +1 -0
  51. package/dist/useCases/transport/account/SyncEverything.d.ts +3 -2
  52. package/dist/useCases/transport/account/SyncEverything.js +14 -8
  53. package/dist/useCases/transport/account/SyncEverything.js.map +1 -1
  54. package/dist/useCases/transport/files/CreateTokenForFile.d.ts +1 -3
  55. package/dist/useCases/transport/files/CreateTokenForFile.js +2 -4
  56. package/dist/useCases/transport/files/CreateTokenForFile.js.map +1 -1
  57. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.d.ts +1 -3
  58. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.js +2 -4
  59. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.js.map +1 -1
  60. package/dist/useCases/transport/files/DownloadFile.d.ts +1 -3
  61. package/dist/useCases/transport/files/DownloadFile.js +2 -4
  62. package/dist/useCases/transport/files/DownloadFile.js.map +1 -1
  63. package/dist/useCases/transport/files/GetFile.d.ts +1 -3
  64. package/dist/useCases/transport/files/GetFile.js +2 -4
  65. package/dist/useCases/transport/files/GetFile.js.map +1 -1
  66. package/dist/useCases/transport/files/LoadPeerFile.d.ts +24 -13
  67. package/dist/useCases/transport/files/LoadPeerFile.js +36 -37
  68. package/dist/useCases/transport/files/LoadPeerFile.js.map +1 -1
  69. package/dist/useCases/transport/messages/SendMessage.d.ts +3 -2
  70. package/dist/useCases/transport/messages/SendMessage.js +5 -2
  71. package/dist/useCases/transport/messages/SendMessage.js.map +1 -1
  72. package/dist/useCases/transport/relationships/AcceptRelationshipChange.d.ts +3 -2
  73. package/dist/useCases/transport/relationships/AcceptRelationshipChange.js +5 -2
  74. package/dist/useCases/transport/relationships/AcceptRelationshipChange.js.map +1 -1
  75. package/dist/useCases/transport/relationships/CreateRelationship.d.ts +3 -2
  76. package/dist/useCases/transport/relationships/CreateRelationship.js +5 -2
  77. package/dist/useCases/transport/relationships/CreateRelationship.js.map +1 -1
  78. package/dist/useCases/transport/relationships/RejectRelationshipChange.d.ts +3 -2
  79. package/dist/useCases/transport/relationships/RejectRelationshipChange.js +5 -2
  80. package/dist/useCases/transport/relationships/RejectRelationshipChange.js.map +1 -1
  81. package/dist/useCases/transport/relationships/RevokeRelationshipChange.d.ts +3 -2
  82. package/dist/useCases/transport/relationships/RevokeRelationshipChange.js +5 -2
  83. package/dist/useCases/transport/relationships/RevokeRelationshipChange.js.map +1 -1
  84. package/lib-web/nmshd.runtime.js +643 -214
  85. package/lib-web/nmshd.runtime.js.map +1 -1
  86. package/lib-web/nmshd.runtime.min.js +2 -2
  87. package/lib-web/nmshd.runtime.min.js.map +1 -1
  88. package/package.json +22 -22
  89. package/dist/useCases/common/SchemaValidator.d.ts +0 -9
  90. package/dist/useCases/common/SchemaValidator.js.map +0 -1
@@ -330,11 +330,11 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
330
330
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
331
331
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
332
332
  exports.buildInformation = {
333
- version: "1.2.0",
334
- build: "14",
335
- date: "2021-11-29T12:01:12+00:00",
336
- commit: "07c04e6bc76f4db765dc9ce593d09a7706ca0682",
337
- 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.5","@nmshd/content":"1.0.4","@nmshd/crypto":"1.0.5","@nmshd/transport":"1.1.0","ajv":"^8.8.2","ajv-formats":"^2.1.1","fluent-ts-validator":"3.0.2","luxon":"^2.1.1","qrcode":"1.5.0","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
333
+ version: "1.2.4",
334
+ build: "19",
335
+ date: "2021-12-16T12:18:55+00:00",
336
+ commit: "13b03dd2843fc516dec483615cd1a10ca41d5417",
337
+ 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.6","@nmshd/content":"1.1.2","@nmshd/crypto":"1.0.6","@nmshd/transport":"1.1.1","ajv":"^8.8.2","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","fluent-ts-validator":"3.0.2","luxon":"^2.2.0","qrcode":"1.5.0","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
338
338
  libraries: {
339
339
  serval: ts_serval_1.buildInformation,
340
340
  consumption: consumption_1.buildInformation,
@@ -1160,8 +1160,9 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1160
1160
  exports.DataEvent = void 0;
1161
1161
  const Event_1 = __webpack_require__(/*! ./Event */ "./dist/events/Event.js");
1162
1162
  class DataEvent extends Event_1.Event {
1163
- constructor(namespace, data) {
1163
+ constructor(namespace, eventTargetAddress, data) {
1164
1164
  super(namespace);
1165
+ this.eventTargetAddress = eventTargetAddress;
1165
1166
  this.data = data;
1166
1167
  }
1167
1168
  }
@@ -1202,8 +1203,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1202
1203
  exports.MailReceivedEvent = void 0;
1203
1204
  const DataEvent_1 = __webpack_require__(/*! ../DataEvent */ "./dist/events/DataEvent.js");
1204
1205
  class MailReceivedEvent extends DataEvent_1.DataEvent {
1205
- constructor(mail, data) {
1206
- super(MailReceivedEvent.namespace, data);
1206
+ constructor(eventTargetAddress, mail, data) {
1207
+ super(MailReceivedEvent.namespace, eventTargetAddress, data);
1207
1208
  this.mail = mail;
1208
1209
  }
1209
1210
  }
@@ -1225,8 +1226,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1225
1226
  exports.RelationshipEvent = void 0;
1226
1227
  const DataEvent_1 = __webpack_require__(/*! ../DataEvent */ "./dist/events/DataEvent.js");
1227
1228
  class RelationshipEvent extends DataEvent_1.DataEvent {
1228
- constructor(event, data) {
1229
- super(RelationshipEvent.namespace + data.id, data);
1229
+ constructor(eventTargetAddress, event, data) {
1230
+ super(RelationshipEvent.namespace + data.id, eventTargetAddress, data);
1230
1231
  this.event = event;
1231
1232
  }
1232
1233
  }
@@ -1248,8 +1249,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1248
1249
  exports.RequestMailReceivedEvent = void 0;
1249
1250
  const DataEvent_1 = __webpack_require__(/*! ../DataEvent */ "./dist/events/DataEvent.js");
1250
1251
  class RequestMailReceivedEvent extends DataEvent_1.DataEvent {
1251
- constructor(requestMail, data) {
1252
- super(RequestMailReceivedEvent.namespace, data);
1252
+ constructor(eventTargetAddress, requestMail, data) {
1253
+ super(RequestMailReceivedEvent.namespace, eventTargetAddress, data);
1253
1254
  this.requestMail = requestMail;
1254
1255
  }
1255
1256
  }
@@ -1271,8 +1272,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1271
1272
  exports.RequestReceivedEvent = void 0;
1272
1273
  const DataEvent_1 = __webpack_require__(/*! ../DataEvent */ "./dist/events/DataEvent.js");
1273
1274
  class RequestReceivedEvent extends DataEvent_1.DataEvent {
1274
- constructor(request, data) {
1275
- super(RequestReceivedEvent.namespace, data);
1275
+ constructor(eventTargetAddress, request, data) {
1276
+ super(RequestReceivedEvent.namespace, eventTargetAddress, data);
1276
1277
  this.request = request;
1277
1278
  }
1278
1279
  }
@@ -1439,8 +1440,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1439
1440
  exports.MessageReceivedEvent = void 0;
1440
1441
  const DataEvent_1 = __webpack_require__(/*! ../DataEvent */ "./dist/events/DataEvent.js");
1441
1442
  class MessageReceivedEvent extends DataEvent_1.DataEvent {
1442
- constructor(data) {
1443
- super(MessageReceivedEvent.namespace, data);
1443
+ constructor(eventTargetAddress, data) {
1444
+ super(MessageReceivedEvent.namespace, eventTargetAddress, data);
1444
1445
  }
1445
1446
  }
1446
1447
  exports.MessageReceivedEvent = MessageReceivedEvent;
@@ -1461,8 +1462,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1461
1462
  exports.MessageSentEvent = void 0;
1462
1463
  const DataEvent_1 = __webpack_require__(/*! ../DataEvent */ "./dist/events/DataEvent.js");
1463
1464
  class MessageSentEvent extends DataEvent_1.DataEvent {
1464
- constructor(data) {
1465
- super(MessageSentEvent.namespace, data);
1465
+ constructor(eventTargetAddress, data) {
1466
+ super(MessageSentEvent.namespace, eventTargetAddress, data);
1466
1467
  }
1467
1468
  }
1468
1469
  exports.MessageSentEvent = MessageSentEvent;
@@ -1483,8 +1484,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1483
1484
  exports.RelationshipChangedEvent = void 0;
1484
1485
  const DataEvent_1 = __webpack_require__(/*! ../DataEvent */ "./dist/events/DataEvent.js");
1485
1486
  class RelationshipChangedEvent extends DataEvent_1.DataEvent {
1486
- constructor(data) {
1487
- super(RelationshipChangedEvent.namespace, data);
1487
+ constructor(eventTargetAddress, data) {
1488
+ super(RelationshipChangedEvent.namespace, eventTargetAddress, data);
1488
1489
  }
1489
1490
  }
1490
1491
  exports.RelationshipChangedEvent = RelationshipChangedEvent;
@@ -2931,18 +2932,18 @@ class MessageModule extends RuntimeModule_1.RuntimeModule {
2931
2932
  switch (type) {
2932
2933
  case "Mail":
2933
2934
  const mail = await content_1.Mail.from(message.content);
2934
- event = new MailReceivedEvent_1.MailReceivedEvent(mail, message);
2935
+ event = new MailReceivedEvent_1.MailReceivedEvent(messageReceivedEvent.eventTargetAddress, mail, message);
2935
2936
  this.runtime.eventBus.publish(event);
2936
2937
  this.logger.trace(`Published MailReceivedEvent for ${message.id}`);
2937
2938
  break;
2938
2939
  case "RequestMail":
2939
2940
  const requestMail = await content_1.RequestMail.from(message.content);
2940
- event = new RequestMailReceivedEvent_1.RequestMailReceivedEvent(requestMail, message);
2941
+ event = new RequestMailReceivedEvent_1.RequestMailReceivedEvent(messageReceivedEvent.eventTargetAddress, requestMail, message);
2941
2942
  this.runtime.eventBus.publish(event);
2942
2943
  this.logger.trace(`Published RequestMailReceivedEvent for ${message.id}`);
2943
2944
  let i = 0;
2944
2945
  for (const request of requestMail.requests) {
2945
- this.runtime.eventBus.publish(new RequestReceivedEvent_1.RequestReceivedEvent(request, message));
2946
+ this.runtime.eventBus.publish(new RequestReceivedEvent_1.RequestReceivedEvent(messageReceivedEvent.eventTargetAddress, request, message));
2946
2947
  this.logger.trace(`Published RequestReceivedEvent request #${i} of RequestMail ${message.id}`);
2947
2948
  i++;
2948
2949
  }
@@ -2957,7 +2958,7 @@ class MessageModule extends RuntimeModule_1.RuntimeModule {
2957
2958
  return;
2958
2959
  }
2959
2960
  const relationship = result.value;
2960
- this.runtime.eventBus.publish(new RelationshipEvent_1.RelationshipEvent(event, relationship));
2961
+ this.runtime.eventBus.publish(new RelationshipEvent_1.RelationshipEvent(messageReceivedEvent.eventTargetAddress, event, relationship));
2961
2962
  this.logger.trace(`Published RelationshipEvent for ${message.id} to ${relationship.id}`);
2962
2963
  }
2963
2964
  stop() {
@@ -3793,21 +3794,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3793
3794
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3794
3795
  exports.JsonSchema = exports.SchemaRepository = void 0;
3795
3796
  const ajv_1 = __importDefault(__webpack_require__(/*! ajv */ "./node_modules/ajv/dist/ajv.js"));
3797
+ const ajv_errors_1 = __importDefault(__webpack_require__(/*! ajv-errors */ "./node_modules/ajv-errors/dist/index.js"));
3796
3798
  const ajv_formats_1 = __importDefault(__webpack_require__(/*! ajv-formats */ "./node_modules/ajv-formats/dist/index.js"));
3797
3799
  const customFormats = {
3798
- fileId: "FIL[A-Za-z0-9]{17}",
3799
- relationshipId: "REL[A-Za-z0-9]{17}",
3800
- messageId: "MSG[A-Za-z0-9]{17}",
3801
- relationshipTemplateId: "RLT[A-Za-z0-9]{17}",
3802
- tokenId: "TOK[A-Za-z0-9]{17}",
3803
- relationshipChangeId: "RCH[A-Za-z0-9]{17}",
3804
- deviceId: "DVC[A-Za-z0-9]{17}"
3800
+ fileId: "FIL[A-z0-9]{17}",
3801
+ relationshipId: "REL[A-z0-9]{17}",
3802
+ messageId: "MSG[A-z0-9]{17}",
3803
+ relationshipTemplateId: "RLT[A-z0-9]{17}",
3804
+ tokenId: "TOK[A-z0-9]{17}",
3805
+ relationshipChangeId: "RCH[A-z0-9]{17}",
3806
+ deviceId: "DVC[A-z0-9]{17}"
3805
3807
  };
3806
3808
  class SchemaRepository {
3807
3809
  constructor() {
3808
3810
  this.jsonSchemas = new Map();
3809
- this.compiler = new ajv_1.default();
3811
+ this.compiler = new ajv_1.default({ allErrors: true });
3810
3812
  (0, ajv_formats_1.default)(this.compiler);
3813
+ (0, ajv_errors_1.default)(this.compiler);
3811
3814
  this.addCustomFormats();
3812
3815
  }
3813
3816
  addCustomFormats() {
@@ -3840,7 +3843,7 @@ class JsonSchema {
3840
3843
  this.validateSchema = validateSchema;
3841
3844
  }
3842
3845
  validate(obj) {
3843
- return { isValid: this.validateSchema(obj), errors: this.validateSchema.errors };
3846
+ return { isValid: this.validateSchema(obj), errors: this.validateSchema.errors ? [...this.validateSchema.errors] : undefined };
3844
3847
  }
3845
3848
  }
3846
3849
  exports.JsonSchema = JsonSchema;
@@ -3848,40 +3851,6 @@ exports.JsonSchema = JsonSchema;
3848
3851
 
3849
3852
  /***/ }),
3850
3853
 
3851
- /***/ "./dist/useCases/common/SchemaValidator.js":
3852
- /*!*************************************************!*\
3853
- !*** ./dist/useCases/common/SchemaValidator.js ***!
3854
- \*************************************************/
3855
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3856
-
3857
- "use strict";
3858
-
3859
- Object.defineProperty(exports, "__esModule", ({ value: true }));
3860
- exports.SchemaValidator = void 0;
3861
- const fluent_ts_validator_1 = __webpack_require__(/*! fluent-ts-validator */ "./node_modules/fluent-ts-validator/index.js");
3862
- class SchemaValidator {
3863
- constructor(schema) {
3864
- this.schema = schema;
3865
- }
3866
- validate(input) {
3867
- const validationResult = this.schema.validate(input);
3868
- const result = new fluent_ts_validator_1.ValidationResult();
3869
- if (validationResult.isValid) {
3870
- return result;
3871
- }
3872
- result.addFailures(validationResult.errors.map(this.schemaErrorToValidationFailure));
3873
- return result;
3874
- }
3875
- schemaErrorToValidationFailure(err, target) {
3876
- const errorMessage = `${err.instancePath} ${err.message}`.replace(/^\//, "").replace(/"/g, "");
3877
- return new fluent_ts_validator_1.ValidationFailure(target, err.instancePath, undefined, undefined, errorMessage);
3878
- }
3879
- }
3880
- exports.SchemaValidator = SchemaValidator;
3881
- //# sourceMappingURL=SchemaValidator.js.map
3882
-
3883
- /***/ }),
3884
-
3885
3854
  /***/ "./dist/useCases/common/Schemas.js":
3886
3855
  /*!*****************************************!*\
3887
3856
  !*** ./dist/useCases/common/Schemas.js ***!
@@ -3891,8 +3860,8 @@ exports.SchemaValidator = SchemaValidator;
3891
3860
  "use strict";
3892
3861
 
3893
3862
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3894
- exports.LoadPeerFileRequest = exports.GetFilesRequest = exports.GetFileRequest = exports.DownloadFileRequest = exports.CreateTokenQrCodeForFileRequest = exports.CreateTokenForFileRequest = exports.UpdateDeviceRequest = exports.GetDeviceOnboardingInfoRequest = exports.GetDeviceRequest = exports.DeleteDeviceRequest = exports.CreateDeviceOnboardingTokenRequest = exports.CreateDeviceRequest = 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.GetAttributesByNameRequest = exports.GetAttributesRequest = exports.GetAttributeByNameRequest = exports.GetAttributeRequest = exports.DeleteAttributeByNameRequest = exports.DeleteAttributeRequest = exports.CreateAttributeRequest = exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = exports.LoadPeerTokenAnonymousByIdAndKeyRequest = void 0;
3895
- exports.LoadPeerTokenRequest = exports.GetTokensRequest = exports.GetTokenRequest = exports.GetQRCodeForTokenRequest = exports.CreateOwnTokenRequest = exports.LoadPeerRelationshipTemplateRequest = exports.GetRelationshipTemplatesRequest = exports.GetRelationshipTemplateRequest = 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.DownloadAttachmentRequest = exports.CheckIdentityRequest = exports.UploadOwnFileRequest = void 0;
3863
+ 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.GetAttributesByNameRequest = exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = exports.LoadPeerTokenAnonymousByIdAndKeyRequest = void 0;
3864
+ 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;
3896
3865
  exports.LoadPeerTokenAnonymousByIdAndKeyRequest = {
3897
3866
  "$schema": "http://json-schema.org/draft-07/schema#",
3898
3867
  "$ref": "#/definitions/LoadPeerTokenAnonymousByIdAndKeyRequest",
@@ -3933,6 +3902,16 @@ exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = {
3933
3902
  }
3934
3903
  }
3935
3904
  };
3905
+ exports.GetAttributesByNameRequest = {
3906
+ "$schema": "http://json-schema.org/draft-07/schema#",
3907
+ "$ref": "#/definitions/GetAttributesByNameRequest",
3908
+ "definitions": {
3909
+ "GetAttributesByNameRequest": {
3910
+ "type": "object",
3911
+ "additionalProperties": false
3912
+ }
3913
+ }
3914
+ };
3936
3915
  exports.CreateAttributeRequest = {
3937
3916
  "$schema": "http://json-schema.org/draft-07/schema#",
3938
3917
  "$ref": "#/definitions/CreateAttributeRequest",
@@ -4065,16 +4044,6 @@ exports.GetAttributesRequest = {
4065
4044
  }
4066
4045
  }
4067
4046
  };
4068
- exports.GetAttributesByNameRequest = {
4069
- "$schema": "http://json-schema.org/draft-07/schema#",
4070
- "$ref": "#/definitions/GetAttributesByNameRequest",
4071
- "definitions": {
4072
- "GetAttributesByNameRequest": {
4073
- "type": "object",
4074
- "additionalProperties": false
4075
- }
4076
- }
4077
- };
4078
4047
  exports.GetHistoryByNameRequest = {
4079
4048
  "$schema": "http://json-schema.org/draft-07/schema#",
4080
4049
  "$ref": "#/definitions/GetHistoryByNameRequest",
@@ -4904,6 +4873,47 @@ exports.RegisterPushNotificationTokenRequest = {
4904
4873
  }
4905
4874
  }
4906
4875
  };
4876
+ exports.DownloadFileRequest = {
4877
+ "$schema": "http://json-schema.org/draft-07/schema#",
4878
+ "$ref": "#/definitions/DownloadFileRequest",
4879
+ "definitions": {
4880
+ "DownloadFileRequest": {
4881
+ "type": "object",
4882
+ "properties": {
4883
+ "id": {
4884
+ "type": "string",
4885
+ "format": "fileId"
4886
+ }
4887
+ },
4888
+ "required": [
4889
+ "id"
4890
+ ],
4891
+ "additionalProperties": false
4892
+ }
4893
+ }
4894
+ };
4895
+ exports.DownloadAttachmentRequest = {
4896
+ "$schema": "http://json-schema.org/draft-07/schema#",
4897
+ "$ref": "#/definitions/DownloadAttachmentRequest",
4898
+ "definitions": {
4899
+ "DownloadAttachmentRequest": {
4900
+ "type": "object",
4901
+ "properties": {
4902
+ "id": {
4903
+ "type": "string"
4904
+ },
4905
+ "attachmentId": {
4906
+ "type": "string"
4907
+ }
4908
+ },
4909
+ "required": [
4910
+ "id",
4911
+ "attachmentId"
4912
+ ],
4913
+ "additionalProperties": false
4914
+ }
4915
+ }
4916
+ };
4907
4917
  exports.CreateDeviceRequest = {
4908
4918
  "$schema": "http://json-schema.org/draft-07/schema#",
4909
4919
  "$ref": "#/definitions/CreateDeviceRequest",
@@ -5073,25 +5083,6 @@ exports.CreateTokenQrCodeForFileRequest = {
5073
5083
  }
5074
5084
  }
5075
5085
  };
5076
- exports.DownloadFileRequest = {
5077
- "$schema": "http://json-schema.org/draft-07/schema#",
5078
- "$ref": "#/definitions/DownloadFileRequest",
5079
- "definitions": {
5080
- "DownloadFileRequest": {
5081
- "type": "object",
5082
- "properties": {
5083
- "id": {
5084
- "type": "string",
5085
- "format": "fileId"
5086
- }
5087
- },
5088
- "required": [
5089
- "id"
5090
- ],
5091
- "additionalProperties": false
5092
- }
5093
- }
5094
- };
5095
5086
  exports.GetFileRequest = {
5096
5087
  "$schema": "http://json-schema.org/draft-07/schema#",
5097
5088
  "$ref": "#/definitions/GetFileRequest",
@@ -5134,11 +5125,65 @@ exports.GetFilesRequest = {
5134
5125
  }
5135
5126
  }
5136
5127
  };
5128
+ exports.LoadPeerFileViaSecretRequest = {
5129
+ "$schema": "http://json-schema.org/draft-07/schema#",
5130
+ "$ref": "#/definitions/LoadPeerFileViaSecretRequest",
5131
+ "definitions": {
5132
+ "LoadPeerFileViaSecretRequest": {
5133
+ "type": "object",
5134
+ "properties": {
5135
+ "id": {
5136
+ "type": "string",
5137
+ "format": "fileId"
5138
+ },
5139
+ "secretKey": {
5140
+ "type": "string",
5141
+ "minLength": 100
5142
+ }
5143
+ },
5144
+ "required": [
5145
+ "id",
5146
+ "secretKey"
5147
+ ],
5148
+ "additionalProperties": false
5149
+ }
5150
+ }
5151
+ };
5152
+ exports.LoadPeerFileViaReferenceRequest = {
5153
+ "$schema": "http://json-schema.org/draft-07/schema#",
5154
+ "$ref": "#/definitions/LoadPeerFileViaReferenceRequest",
5155
+ "definitions": {
5156
+ "LoadPeerFileViaReferenceRequest": {
5157
+ "type": "object",
5158
+ "properties": {
5159
+ "reference": {
5160
+ "type": "string",
5161
+ "pattern": "VE9L.{84}"
5162
+ }
5163
+ },
5164
+ "required": [
5165
+ "reference"
5166
+ ],
5167
+ "additionalProperties": false,
5168
+ "errorMessage": "token reference invalid"
5169
+ }
5170
+ }
5171
+ };
5137
5172
  exports.LoadPeerFileRequest = {
5138
5173
  "$schema": "http://json-schema.org/draft-07/schema#",
5139
5174
  "$ref": "#/definitions/LoadPeerFileRequest",
5140
5175
  "definitions": {
5141
5176
  "LoadPeerFileRequest": {
5177
+ "anyOf": [
5178
+ {
5179
+ "$ref": "#/definitions/LoadPeerFileViaSecretRequest"
5180
+ },
5181
+ {
5182
+ "$ref": "#/definitions/LoadPeerFileViaReferenceRequest"
5183
+ }
5184
+ ]
5185
+ },
5186
+ "LoadPeerFileViaSecretRequest": {
5142
5187
  "type": "object",
5143
5188
  "properties": {
5144
5189
  "id": {
@@ -5146,13 +5191,29 @@ exports.LoadPeerFileRequest = {
5146
5191
  "format": "fileId"
5147
5192
  },
5148
5193
  "secretKey": {
5149
- "type": "string"
5150
- },
5151
- "reference": {
5152
- "type": "string"
5194
+ "type": "string",
5195
+ "minLength": 100
5153
5196
  }
5154
5197
  },
5198
+ "required": [
5199
+ "id",
5200
+ "secretKey"
5201
+ ],
5155
5202
  "additionalProperties": false
5203
+ },
5204
+ "LoadPeerFileViaReferenceRequest": {
5205
+ "type": "object",
5206
+ "properties": {
5207
+ "reference": {
5208
+ "type": "string",
5209
+ "pattern": "VE9L.{84}"
5210
+ }
5211
+ },
5212
+ "required": [
5213
+ "reference"
5214
+ ],
5215
+ "additionalProperties": false,
5216
+ "errorMessage": "token reference invalid"
5156
5217
  }
5157
5218
  }
5158
5219
  };
@@ -5247,28 +5308,6 @@ exports.CheckIdentityRequest = {
5247
5308
  }
5248
5309
  }
5249
5310
  };
5250
- exports.DownloadAttachmentRequest = {
5251
- "$schema": "http://json-schema.org/draft-07/schema#",
5252
- "$ref": "#/definitions/DownloadAttachmentRequest",
5253
- "definitions": {
5254
- "DownloadAttachmentRequest": {
5255
- "type": "object",
5256
- "properties": {
5257
- "id": {
5258
- "type": "string"
5259
- },
5260
- "attachmentId": {
5261
- "type": "string"
5262
- }
5263
- },
5264
- "required": [
5265
- "id",
5266
- "attachmentId"
5267
- ],
5268
- "additionalProperties": false
5269
- }
5270
- }
5271
- };
5272
5311
  exports.GetAttachmentMetadataRequest = {
5273
5312
  "$schema": "http://json-schema.org/draft-07/schema#",
5274
5313
  "$ref": "#/definitions/GetAttachmentMetadataRequest",
@@ -5534,6 +5573,51 @@ exports.CreateOwnRelationshipTemplateRequest = {
5534
5573
  }
5535
5574
  }
5536
5575
  };
5576
+ exports.CreateTokenForOwnTemplateRequest = {
5577
+ "$schema": "http://json-schema.org/draft-07/schema#",
5578
+ "$ref": "#/definitions/CreateTokenForOwnTemplateRequest",
5579
+ "definitions": {
5580
+ "CreateTokenForOwnTemplateRequest": {
5581
+ "type": "object",
5582
+ "properties": {
5583
+ "templateId": {
5584
+ "type": "string"
5585
+ },
5586
+ "expiresAt": {
5587
+ "type": "string"
5588
+ },
5589
+ "ephemeral": {
5590
+ "type": "boolean"
5591
+ }
5592
+ },
5593
+ "required": [
5594
+ "templateId"
5595
+ ],
5596
+ "additionalProperties": false
5597
+ }
5598
+ }
5599
+ };
5600
+ exports.CreateTokenQrCodeForOwnTemplateRequest = {
5601
+ "$schema": "http://json-schema.org/draft-07/schema#",
5602
+ "$ref": "#/definitions/CreateTokenQrCodeForOwnTemplateRequest",
5603
+ "definitions": {
5604
+ "CreateTokenQrCodeForOwnTemplateRequest": {
5605
+ "type": "object",
5606
+ "properties": {
5607
+ "templateId": {
5608
+ "type": "string"
5609
+ },
5610
+ "expiresAt": {
5611
+ "type": "string"
5612
+ }
5613
+ },
5614
+ "required": [
5615
+ "templateId"
5616
+ ],
5617
+ "additionalProperties": false
5618
+ }
5619
+ }
5620
+ };
5537
5621
  exports.GetRelationshipTemplateRequest = {
5538
5622
  "$schema": "http://json-schema.org/draft-07/schema#",
5539
5623
  "$ref": "#/definitions/GetRelationshipTemplateRequest",
@@ -5818,11 +5902,13 @@ __exportStar(__webpack_require__(/*! ./OwnerRestriction */ "./dist/useCases/comm
5818
5902
  __exportStar(__webpack_require__(/*! ./QRCode */ "./dist/useCases/common/QRCode.js"), exports);
5819
5903
  __exportStar(__webpack_require__(/*! ./RuntimeErrors */ "./dist/useCases/common/RuntimeErrors.js"), exports);
5820
5904
  __exportStar(__webpack_require__(/*! ./RuntimeValidator */ "./dist/useCases/common/RuntimeValidator.js"), exports);
5905
+ __exportStar(__webpack_require__(/*! ./SchemaRepository */ "./dist/useCases/common/SchemaRepository.js"), exports);
5821
5906
  __exportStar(__webpack_require__(/*! ./UseCase */ "./dist/useCases/common/UseCase.js"), exports);
5822
5907
  __exportStar(__webpack_require__(/*! ./validation/AddressValidator */ "./dist/useCases/common/validation/AddressValidator.js"), exports);
5823
5908
  __exportStar(__webpack_require__(/*! ./validation/DateValidator */ "./dist/useCases/common/validation/DateValidator.js"), exports);
5824
5909
  __exportStar(__webpack_require__(/*! ./validation/IdValidator */ "./dist/useCases/common/validation/IdValidator.js"), exports);
5825
5910
  __exportStar(__webpack_require__(/*! ./validation/RelationshipAttributeDTOValidator */ "./dist/useCases/common/validation/RelationshipAttributeDTOValidator.js"), exports);
5911
+ __exportStar(__webpack_require__(/*! ./validation/SchemaValidator */ "./dist/useCases/common/validation/SchemaValidator.js"), exports);
5826
5912
  //# sourceMappingURL=index.js.map
5827
5913
 
5828
5914
  /***/ }),
@@ -5959,6 +6045,43 @@ exports.RelationshipAttributeDTOValidator = RelationshipAttributeDTOValidator;
5959
6045
 
5960
6046
  /***/ }),
5961
6047
 
6048
+ /***/ "./dist/useCases/common/validation/SchemaValidator.js":
6049
+ /*!************************************************************!*\
6050
+ !*** ./dist/useCases/common/validation/SchemaValidator.js ***!
6051
+ \************************************************************/
6052
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6053
+
6054
+ "use strict";
6055
+
6056
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
6057
+ exports.SchemaValidator = void 0;
6058
+ const fluent_ts_validator_1 = __webpack_require__(/*! fluent-ts-validator */ "./node_modules/fluent-ts-validator/index.js");
6059
+ class SchemaValidator {
6060
+ constructor(schema) {
6061
+ this.schema = schema;
6062
+ }
6063
+ validate(input) {
6064
+ const validationResult = this.schema.validate(input);
6065
+ return this.convertValidationResult(validationResult);
6066
+ }
6067
+ convertValidationResult(validationResult) {
6068
+ const result = new fluent_ts_validator_1.ValidationResult();
6069
+ if (validationResult.isValid) {
6070
+ return result;
6071
+ }
6072
+ result.addFailures(validationResult.errors.map(this.schemaErrorToValidationFailure));
6073
+ return result;
6074
+ }
6075
+ schemaErrorToValidationFailure(err) {
6076
+ const errorMessage = `${err.instancePath} ${err.message}`.replace(/^\//, "").replace(/"/g, "").trim();
6077
+ return new fluent_ts_validator_1.ValidationFailure(undefined, err.instancePath, undefined, undefined, errorMessage);
6078
+ }
6079
+ }
6080
+ exports.SchemaValidator = SchemaValidator;
6081
+ //# sourceMappingURL=SchemaValidator.js.map
6082
+
6083
+ /***/ }),
6084
+
5962
6085
  /***/ "./dist/useCases/consumption/attributes/AttributeMapper.js":
5963
6086
  /*!*****************************************************************!*\
5964
6087
  !*** ./dist/useCases/consumption/attributes/AttributeMapper.js ***!
@@ -8995,9 +9118,10 @@ const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common
8995
9118
  const MessageMapper_1 = __webpack_require__(/*! ../messages/MessageMapper */ "./dist/useCases/transport/messages/MessageMapper.js");
8996
9119
  const RelationshipMapper_1 = __webpack_require__(/*! ../relationships/RelationshipMapper */ "./dist/useCases/transport/relationships/RelationshipMapper.js");
8997
9120
  let SyncEverythingUseCase = class SyncEverythingUseCase extends common_1.UseCase {
8998
- constructor(accountController, eventBus, loggerFactory) {
9121
+ constructor(accountController, identityController, eventBus, loggerFactory) {
8999
9122
  super();
9000
9123
  this.accountController = accountController;
9124
+ this.identityController = identityController;
9001
9125
  this.eventBus = eventBus;
9002
9126
  this.logger = loggerFactory.getLogger(SyncEverythingUseCase);
9003
9127
  }
@@ -9017,30 +9141,31 @@ let SyncEverythingUseCase = class SyncEverythingUseCase extends common_1.UseCase
9017
9141
  const changedItems = await this.accountController.syncEverything();
9018
9142
  const messageDTOs = changedItems.messages.map((m) => MessageMapper_1.MessageMapper.toMessageDTO(m));
9019
9143
  const relationshipDTOs = changedItems.relationships.map((r) => RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(r));
9020
- this.processNewMessages(messageDTOs);
9021
- this.processNewRelationships(relationshipDTOs);
9144
+ const eventTargetAddress = this.identityController.identity.address.toString();
9145
+ this.processNewMessages(messageDTOs, eventTargetAddress);
9146
+ this.processNewRelationships(relationshipDTOs, eventTargetAddress);
9022
9147
  return ts_utils_1.Result.ok({
9023
9148
  messages: messageDTOs,
9024
9149
  relationships: relationshipDTOs
9025
9150
  });
9026
9151
  }
9027
- processNewRelationships(relationships) {
9152
+ processNewRelationships(relationships, eventTargetAddress) {
9028
9153
  if (relationships.length === 0) {
9029
9154
  return;
9030
9155
  }
9031
9156
  this.logger.debug(`Found ${relationships.length} relationship(s) with changes. Start publishing on event bus...`);
9032
9157
  for (const relationship of relationships) {
9033
- this.eventBus.publish(new events_1.RelationshipChangedEvent(relationship));
9158
+ this.eventBus.publish(new events_1.RelationshipChangedEvent(eventTargetAddress, relationship));
9034
9159
  }
9035
9160
  this.logger.debug("Finished publishing relationship changes on event bus.");
9036
9161
  }
9037
- processNewMessages(messages) {
9162
+ processNewMessages(messages, eventTargetAddress) {
9038
9163
  if (messages.length === 0) {
9039
9164
  return;
9040
9165
  }
9041
9166
  this.logger.debug(`Found ${messages.length} new message(s). Start publishing on event bus...`);
9042
9167
  for (const message of messages) {
9043
- this.eventBus.publish(new events_1.MessageReceivedEvent(message));
9168
+ this.eventBus.publish(new events_1.MessageReceivedEvent(eventTargetAddress, message));
9044
9169
  }
9045
9170
  this.logger.debug("Finished publishing message changes on event bus.");
9046
9171
  }
@@ -9049,7 +9174,11 @@ SyncEverythingUseCase = __decorate([
9049
9174
  __param(0, typescript_ioc_1.Inject),
9050
9175
  __param(1, typescript_ioc_1.Inject),
9051
9176
  __param(2, typescript_ioc_1.Inject),
9052
- __metadata("design:paramtypes", [transport_1.AccountController, ts_utils_1.EventBus, RuntimeLoggerFactory_1.RuntimeLoggerFactory])
9177
+ __param(3, typescript_ioc_1.Inject),
9178
+ __metadata("design:paramtypes", [transport_1.AccountController,
9179
+ transport_1.IdentityController,
9180
+ ts_utils_1.EventBus,
9181
+ RuntimeLoggerFactory_1.RuntimeLoggerFactory])
9053
9182
  ], SyncEverythingUseCase);
9054
9183
  exports.SyncEverythingUseCase = SyncEverythingUseCase;
9055
9184
  //# sourceMappingURL=SyncEverything.js.map
@@ -9632,17 +9761,15 @@ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/
9632
9761
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9633
9762
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9634
9763
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9635
- const SchemaRepository_1 = __webpack_require__(/*! ../../common/SchemaRepository */ "./dist/useCases/common/SchemaRepository.js");
9636
- const SchemaValidator_1 = __webpack_require__(/*! ../../common/SchemaValidator */ "./dist/useCases/common/SchemaValidator.js");
9637
9764
  const TokenMapper_1 = __webpack_require__(/*! ../tokens/TokenMapper */ "./dist/useCases/transport/tokens/TokenMapper.js");
9638
- let Validator = class Validator extends SchemaValidator_1.SchemaValidator {
9765
+ let Validator = class Validator extends common_1.SchemaValidator {
9639
9766
  constructor(schemaRepository) {
9640
9767
  super(schemaRepository.getSchema("CreateTokenForFileRequest"));
9641
9768
  }
9642
9769
  };
9643
9770
  Validator = __decorate([
9644
9771
  __param(0, typescript_ioc_1.Inject),
9645
- __metadata("design:paramtypes", [SchemaRepository_1.SchemaRepository])
9772
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
9646
9773
  ], Validator);
9647
9774
  let CreateTokenForFileUseCase = class CreateTokenForFileUseCase extends common_1.UseCase {
9648
9775
  constructor(fileController, tokenController, accountController, validator) {
@@ -9716,16 +9843,14 @@ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/
9716
9843
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9717
9844
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9718
9845
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9719
- const SchemaRepository_1 = __webpack_require__(/*! ../../common/SchemaRepository */ "./dist/useCases/common/SchemaRepository.js");
9720
- const SchemaValidator_1 = __webpack_require__(/*! ../../common/SchemaValidator */ "./dist/useCases/common/SchemaValidator.js");
9721
- let Validator = class Validator extends SchemaValidator_1.SchemaValidator {
9846
+ let Validator = class Validator extends common_1.SchemaValidator {
9722
9847
  constructor(schemaRepository) {
9723
9848
  super(schemaRepository.getSchema("CreateTokenQrCodeForFileRequest"));
9724
9849
  }
9725
9850
  };
9726
9851
  Validator = __decorate([
9727
9852
  __param(0, typescript_ioc_1.Inject),
9728
- __metadata("design:paramtypes", [SchemaRepository_1.SchemaRepository])
9853
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
9729
9854
  ], Validator);
9730
9855
  let CreateTokenQrCodeForFileUseCase = class CreateTokenQrCodeForFileUseCase extends common_1.UseCase {
9731
9856
  constructor(fileController, tokenController, validator) {
@@ -9791,17 +9916,15 @@ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/
9791
9916
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9792
9917
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9793
9918
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9794
- const SchemaRepository_1 = __webpack_require__(/*! ../../common/SchemaRepository */ "./dist/useCases/common/SchemaRepository.js");
9795
- const SchemaValidator_1 = __webpack_require__(/*! ../../common/SchemaValidator */ "./dist/useCases/common/SchemaValidator.js");
9796
9919
  const FileMapper_1 = __webpack_require__(/*! ./FileMapper */ "./dist/useCases/transport/files/FileMapper.js");
9797
- let Validator = class Validator extends SchemaValidator_1.SchemaValidator {
9920
+ let Validator = class Validator extends common_1.SchemaValidator {
9798
9921
  constructor(schemaRepository) {
9799
9922
  super(schemaRepository.getSchema("DownloadFileRequest"));
9800
9923
  }
9801
9924
  };
9802
9925
  Validator = __decorate([
9803
9926
  __param(0, typescript_ioc_1.Inject),
9804
- __metadata("design:paramtypes", [SchemaRepository_1.SchemaRepository])
9927
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
9805
9928
  ], Validator);
9806
9929
  let DownloadFileUseCase = class DownloadFileUseCase extends common_1.UseCase {
9807
9930
  constructor(fileController, validator) {
@@ -9910,17 +10033,15 @@ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/
9910
10033
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9911
10034
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9912
10035
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9913
- const SchemaRepository_1 = __webpack_require__(/*! ../../common/SchemaRepository */ "./dist/useCases/common/SchemaRepository.js");
9914
- const SchemaValidator_1 = __webpack_require__(/*! ../../common/SchemaValidator */ "./dist/useCases/common/SchemaValidator.js");
9915
10036
  const FileMapper_1 = __webpack_require__(/*! ./FileMapper */ "./dist/useCases/transport/files/FileMapper.js");
9916
- let Validator = class Validator extends SchemaValidator_1.SchemaValidator {
10037
+ let Validator = class Validator extends common_1.SchemaValidator {
9917
10038
  constructor(schemaRepository) {
9918
10039
  super(schemaRepository.getSchema("GetFileRequest"));
9919
10040
  }
9920
10041
  };
9921
10042
  Validator = __decorate([
9922
10043
  __param(0, typescript_ioc_1.Inject),
9923
- __metadata("design:paramtypes", [SchemaRepository_1.SchemaRepository])
10044
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
9924
10045
  ], Validator);
9925
10046
  let GetFileUseCase = class GetFileUseCase extends common_1.UseCase {
9926
10047
  constructor(fileController, validator) {
@@ -10055,45 +10176,44 @@ exports.LoadPeerFileUseCase = void 0;
10055
10176
  const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
10056
10177
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
10057
10178
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
10179
+ const fluent_ts_validator_1 = __webpack_require__(/*! fluent-ts-validator */ "./node_modules/fluent-ts-validator/index.js");
10058
10180
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
10059
10181
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
10060
10182
  const FileMapper_1 = __webpack_require__(/*! ./FileMapper */ "./dist/useCases/transport/files/FileMapper.js");
10061
- class LoadPeerFileRequestValidator extends common_1.RuntimeValidator {
10062
- constructor() {
10063
- super();
10064
- this.validateIf((x) => x)
10065
- .fulfills((x) => this.isCreatePeerFileFromIdAndKeyRequest(x) || this.isCreatePeerFileFromTokenReferenceRequest(x))
10066
- .withFailureCode(common_1.RuntimeErrors.general.invalidPayload().code)
10067
- .withFailureMessage(common_1.RuntimeErrors.general.invalidPayload().message);
10068
- this.setupRulesForCreateFileFromIdAndKeyRequest();
10069
- this.setupRulesForCreateFileFromTokenReferenceRequest();
10070
- }
10071
- setupRulesForCreateFileFromIdAndKeyRequest() {
10072
- this.validateIfString((x) => x.id)
10073
- .fulfills(common_1.IdValidator.required(transport_1.BackboneIds.file))
10074
- .when(this.isCreatePeerFileFromIdAndKeyRequest);
10075
- this.validateIfString((x) => x.secretKey)
10076
- .isNotNull()
10077
- .when(this.isCreatePeerFileFromIdAndKeyRequest);
10078
- }
10079
- setupRulesForCreateFileFromTokenReferenceRequest() {
10080
- this.validateIfString((x) => x.reference)
10081
- .isNotNull()
10082
- .fulfills(this.isTokenReference)
10083
- .when(this.isCreatePeerFileFromTokenReferenceRequest);
10084
- }
10085
- isTokenReference(tokenReference) {
10086
- // "TOK" as Base64
10087
- const tokInBase64 = "VE9L";
10088
- return tokenReference.startsWith(tokInBase64);
10089
- }
10090
- isCreatePeerFileFromIdAndKeyRequest(x) {
10091
- return !!x.id && !!x.secretKey;
10183
+ function isLoadPeerFileViaSecret(request) {
10184
+ return "id" in request && "secretKey" in request;
10185
+ }
10186
+ function isLoadPeerFileViaReference(request) {
10187
+ return "reference" in request;
10188
+ }
10189
+ let Validator = class Validator extends common_1.SchemaValidator {
10190
+ constructor(schemaRepository) {
10191
+ super(schemaRepository.getSchema("LoadPeerFileRequest"));
10192
+ this.loadViaSecretSchema = schemaRepository.getSchema("LoadPeerFileViaSecretRequest");
10193
+ this.loadViaReferenceSchema = schemaRepository.getSchema("LoadPeerFileViaReferenceRequest");
10092
10194
  }
10093
- isCreatePeerFileFromTokenReferenceRequest(x) {
10094
- return !!x.reference;
10195
+ validate(input) {
10196
+ if (this.schema.validate(input).isValid)
10197
+ return new fluent_ts_validator_1.ValidationResult();
10198
+ // any-of in combination with missing properties is a bit weird
10199
+ // when { reference: null | undefined } is passed, it ignores reference
10200
+ // and treats it like a LoadPeerFileViaSecret.
10201
+ // That's why we validate with the specific schema afterwards
10202
+ if (isLoadPeerFileViaReference(input)) {
10203
+ return this.convertValidationResult(this.loadViaReferenceSchema.validate(input));
10204
+ }
10205
+ else if (isLoadPeerFileViaSecret(input)) {
10206
+ return this.convertValidationResult(this.loadViaSecretSchema.validate(input));
10207
+ }
10208
+ const result = new fluent_ts_validator_1.ValidationResult();
10209
+ result.addFailures([new fluent_ts_validator_1.ValidationFailure(undefined, "", undefined, common_1.RuntimeErrors.general.invalidPayload().code, common_1.RuntimeErrors.general.invalidPayload().message)]);
10210
+ return result;
10095
10211
  }
10096
- }
10212
+ };
10213
+ Validator = __decorate([
10214
+ __param(0, typescript_ioc_1.Inject),
10215
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
10216
+ ], Validator);
10097
10217
  let LoadPeerFileUseCase = class LoadPeerFileUseCase extends common_1.UseCase {
10098
10218
  constructor(fileController, tokenController, accountController, validator) {
10099
10219
  super(validator);
@@ -10103,11 +10223,11 @@ let LoadPeerFileUseCase = class LoadPeerFileUseCase extends common_1.UseCase {
10103
10223
  }
10104
10224
  async executeInternal(request) {
10105
10225
  let createdFile;
10106
- if (request.id && request.secretKey) {
10226
+ if (isLoadPeerFileViaSecret(request)) {
10107
10227
  const key = await crypto_1.CryptoSecretKey.fromBase64(request.secretKey);
10108
10228
  createdFile = await this.loadFile(transport_1.CoreId.from(request.id), key);
10109
10229
  }
10110
- else if (request.reference) {
10230
+ else if (isLoadPeerFileViaReference(request)) {
10111
10231
  createdFile = await this.createFileFromTokenReferenceRequest(request.reference);
10112
10232
  }
10113
10233
  else {
@@ -10140,7 +10260,7 @@ LoadPeerFileUseCase = __decorate([
10140
10260
  __metadata("design:paramtypes", [transport_1.FileController,
10141
10261
  transport_1.TokenController,
10142
10262
  transport_1.AccountController,
10143
- LoadPeerFileRequestValidator])
10263
+ Validator])
10144
10264
  ], LoadPeerFileUseCase);
10145
10265
  exports.LoadPeerFileUseCase = LoadPeerFileUseCase;
10146
10266
  //# sourceMappingURL=LoadPeerFile.js.map
@@ -10844,11 +10964,12 @@ class SendMessageRequestValidator extends common_1.RuntimeValidator {
10844
10964
  }
10845
10965
  }
10846
10966
  let SendMessageUseCase = class SendMessageUseCase extends common_1.UseCase {
10847
- constructor(messageController, fileController, accountController, eventBus, validator) {
10967
+ constructor(messageController, fileController, accountController, identityController, eventBus, validator) {
10848
10968
  super(validator);
10849
10969
  this.messageController = messageController;
10850
10970
  this.fileController = fileController;
10851
10971
  this.accountController = accountController;
10972
+ this.identityController = identityController;
10852
10973
  this.eventBus = eventBus;
10853
10974
  }
10854
10975
  async executeInternal(request) {
@@ -10862,7 +10983,7 @@ let SendMessageUseCase = class SendMessageUseCase extends common_1.UseCase {
10862
10983
  attachments: transformAttachmentsResult.value
10863
10984
  });
10864
10985
  const messageDTO = MessageMapper_1.MessageMapper.toMessageDTO(result);
10865
- this.eventBus.publish(new events_1.MessageSentEvent(messageDTO));
10986
+ this.eventBus.publish(new events_1.MessageSentEvent(this.identityController.identity.address.toString(), messageDTO));
10866
10987
  await this.accountController.syncDatawallet();
10867
10988
  return ts_utils_1.Result.ok(MessageMapper_1.MessageMapper.toMessageDTO(result));
10868
10989
  }
@@ -10887,9 +11008,11 @@ SendMessageUseCase = __decorate([
10887
11008
  __param(2, typescript_ioc_1.Inject),
10888
11009
  __param(3, typescript_ioc_1.Inject),
10889
11010
  __param(4, typescript_ioc_1.Inject),
11011
+ __param(5, typescript_ioc_1.Inject),
10890
11012
  __metadata("design:paramtypes", [transport_1.MessageController,
10891
11013
  transport_1.FileController,
10892
11014
  transport_1.AccountController,
11015
+ transport_1.IdentityController,
10893
11016
  ts_utils_1.EventBus,
10894
11017
  SendMessageRequestValidator])
10895
11018
  ], SendMessageUseCase);
@@ -11497,10 +11620,11 @@ class AcceptRelationshipChangeRequestValidator extends common_1.RuntimeValidator
11497
11620
  }
11498
11621
  }
11499
11622
  let AcceptRelationshipChangeUseCase = class AcceptRelationshipChangeUseCase extends common_1.UseCase {
11500
- constructor(relationshipsController, accountController, eventBus, validator) {
11623
+ constructor(relationshipsController, accountController, identityController, eventBus, validator) {
11501
11624
  super(validator);
11502
11625
  this.relationshipsController = relationshipsController;
11503
11626
  this.accountController = accountController;
11627
+ this.identityController = identityController;
11504
11628
  this.eventBus = eventBus;
11505
11629
  }
11506
11630
  async executeInternal(request) {
@@ -11517,7 +11641,7 @@ let AcceptRelationshipChangeUseCase = class AcceptRelationshipChangeUseCase exte
11517
11641
  }
11518
11642
  const updatedRelationship = await this.relationshipsController.acceptChange(change, request.content);
11519
11643
  const relationshipDTO = RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(updatedRelationship);
11520
- this.eventBus.publish(new events_1.RelationshipChangedEvent(relationshipDTO));
11644
+ this.eventBus.publish(new events_1.RelationshipChangedEvent(this.identityController.identity.address.toString(), relationshipDTO));
11521
11645
  await this.accountController.syncDatawallet();
11522
11646
  return ts_utils_1.Result.ok(relationshipDTO);
11523
11647
  }
@@ -11527,8 +11651,10 @@ AcceptRelationshipChangeUseCase = __decorate([
11527
11651
  __param(1, typescript_ioc_1.Inject),
11528
11652
  __param(2, typescript_ioc_1.Inject),
11529
11653
  __param(3, typescript_ioc_1.Inject),
11654
+ __param(4, typescript_ioc_1.Inject),
11530
11655
  __metadata("design:paramtypes", [transport_1.RelationshipsController,
11531
11656
  transport_1.AccountController,
11657
+ transport_1.IdentityController,
11532
11658
  ts_utils_1.EventBus,
11533
11659
  AcceptRelationshipChangeRequestValidator])
11534
11660
  ], AcceptRelationshipChangeUseCase);
@@ -11573,11 +11699,12 @@ class CreateRelationshipRequestValidator extends common_1.RuntimeValidator {
11573
11699
  }
11574
11700
  }
11575
11701
  let CreateRelationshipUseCase = class CreateRelationshipUseCase extends common_1.UseCase {
11576
- constructor(relationshipsController, relationshipTemplateController, accountController, eventBus, validator) {
11702
+ constructor(relationshipsController, relationshipTemplateController, accountController, identityController, eventBus, validator) {
11577
11703
  super(validator);
11578
11704
  this.relationshipsController = relationshipsController;
11579
11705
  this.relationshipTemplateController = relationshipTemplateController;
11580
11706
  this.accountController = accountController;
11707
+ this.identityController = identityController;
11581
11708
  this.eventBus = eventBus;
11582
11709
  }
11583
11710
  async executeInternal(request) {
@@ -11590,7 +11717,7 @@ let CreateRelationshipUseCase = class CreateRelationshipUseCase extends common_1
11590
11717
  content: request.content
11591
11718
  });
11592
11719
  const relationshipDTO = RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(relationship);
11593
- this.eventBus.publish(new events_1.RelationshipChangedEvent(relationshipDTO));
11720
+ this.eventBus.publish(new events_1.RelationshipChangedEvent(this.identityController.identity.address.toString(), relationshipDTO));
11594
11721
  await this.accountController.syncDatawallet();
11595
11722
  return ts_utils_1.Result.ok(relationshipDTO);
11596
11723
  }
@@ -11601,9 +11728,11 @@ CreateRelationshipUseCase = __decorate([
11601
11728
  __param(2, typescript_ioc_1.Inject),
11602
11729
  __param(3, typescript_ioc_1.Inject),
11603
11730
  __param(4, typescript_ioc_1.Inject),
11731
+ __param(5, typescript_ioc_1.Inject),
11604
11732
  __metadata("design:paramtypes", [transport_1.RelationshipsController,
11605
11733
  transport_1.RelationshipTemplateController,
11606
11734
  transport_1.AccountController,
11735
+ transport_1.IdentityController,
11607
11736
  ts_utils_1.EventBus,
11608
11737
  CreateRelationshipRequestValidator])
11609
11738
  ], CreateRelationshipUseCase);
@@ -11884,10 +12013,11 @@ class RejectRelationshipChangeRequestValidator extends common_1.RuntimeValidator
11884
12013
  }
11885
12014
  }
11886
12015
  let RejectRelationshipChangeUseCase = class RejectRelationshipChangeUseCase extends common_1.UseCase {
11887
- constructor(relationshipsController, accountController, eventBus, validator) {
12016
+ constructor(relationshipsController, accountController, identityController, eventBus, validator) {
11888
12017
  super(validator);
11889
12018
  this.relationshipsController = relationshipsController;
11890
12019
  this.accountController = accountController;
12020
+ this.identityController = identityController;
11891
12021
  this.eventBus = eventBus;
11892
12022
  }
11893
12023
  async executeInternal(request) {
@@ -11904,7 +12034,7 @@ let RejectRelationshipChangeUseCase = class RejectRelationshipChangeUseCase exte
11904
12034
  }
11905
12035
  const updatedRelationship = await this.relationshipsController.rejectChange(change, request.content);
11906
12036
  const relationshipDTO = RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(updatedRelationship);
11907
- this.eventBus.publish(new events_1.RelationshipChangedEvent(relationshipDTO));
12037
+ this.eventBus.publish(new events_1.RelationshipChangedEvent(this.identityController.identity.address.toString(), relationshipDTO));
11908
12038
  await this.accountController.syncDatawallet();
11909
12039
  return ts_utils_1.Result.ok(relationshipDTO);
11910
12040
  }
@@ -11914,8 +12044,10 @@ RejectRelationshipChangeUseCase = __decorate([
11914
12044
  __param(1, typescript_ioc_1.Inject),
11915
12045
  __param(2, typescript_ioc_1.Inject),
11916
12046
  __param(3, typescript_ioc_1.Inject),
12047
+ __param(4, typescript_ioc_1.Inject),
11917
12048
  __metadata("design:paramtypes", [transport_1.RelationshipsController,
11918
12049
  transport_1.AccountController,
12050
+ transport_1.IdentityController,
11919
12051
  ts_utils_1.EventBus,
11920
12052
  RejectRelationshipChangeRequestValidator])
11921
12053
  ], RejectRelationshipChangeUseCase);
@@ -12023,11 +12155,12 @@ class RevokeRelationshipChangeRequestValidator extends common_1.RuntimeValidator
12023
12155
  }
12024
12156
  }
12025
12157
  let RevokeRelationshipChangeUseCase = class RevokeRelationshipChangeUseCase extends common_1.UseCase {
12026
- constructor(relationshipsController, accountController, eventBus, validator) {
12158
+ constructor(relationshipsController, accountController, eventBus, identityController, validator) {
12027
12159
  super(validator);
12028
12160
  this.relationshipsController = relationshipsController;
12029
12161
  this.accountController = accountController;
12030
12162
  this.eventBus = eventBus;
12163
+ this.identityController = identityController;
12031
12164
  }
12032
12165
  async executeInternal(request) {
12033
12166
  const relationship = await this.relationshipsController.getRelationship(transport_1.CoreId.from(request.relationshipId));
@@ -12043,7 +12176,7 @@ let RevokeRelationshipChangeUseCase = class RevokeRelationshipChangeUseCase exte
12043
12176
  }
12044
12177
  const updatedRelationship = await this.relationshipsController.revokeChange(change, request.content);
12045
12178
  const relationshipDTO = RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(updatedRelationship);
12046
- this.eventBus.publish(new events_1.RelationshipChangedEvent(relationshipDTO));
12179
+ this.eventBus.publish(new events_1.RelationshipChangedEvent(this.identityController.identity.address.toString(), relationshipDTO));
12047
12180
  await this.accountController.syncDatawallet();
12048
12181
  return ts_utils_1.Result.ok(relationshipDTO);
12049
12182
  }
@@ -12053,9 +12186,11 @@ RevokeRelationshipChangeUseCase = __decorate([
12053
12186
  __param(1, typescript_ioc_1.Inject),
12054
12187
  __param(2, typescript_ioc_1.Inject),
12055
12188
  __param(3, typescript_ioc_1.Inject),
12189
+ __param(4, typescript_ioc_1.Inject),
12056
12190
  __metadata("design:paramtypes", [transport_1.RelationshipsController,
12057
12191
  transport_1.AccountController,
12058
12192
  ts_utils_1.EventBus,
12193
+ transport_1.IdentityController,
12059
12194
  RevokeRelationshipChangeRequestValidator])
12060
12195
  ], RevokeRelationshipChangeUseCase);
12061
12196
  exports.RevokeRelationshipChangeUseCase = RevokeRelationshipChangeUseCase;
@@ -13230,6 +13365,291 @@ exports.sleep = sleep;
13230
13365
 
13231
13366
  /***/ }),
13232
13367
 
13368
+ /***/ "./node_modules/ajv-errors/dist/index.js":
13369
+ /*!***********************************************!*\
13370
+ !*** ./node_modules/ajv-errors/dist/index.js ***!
13371
+ \***********************************************/
13372
+ /***/ ((module, exports, __webpack_require__) => {
13373
+
13374
+ "use strict";
13375
+
13376
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
13377
+ const ajv_1 = __webpack_require__(/*! ajv */ "./node_modules/ajv/dist/ajv.js");
13378
+ const codegen_1 = __webpack_require__(/*! ajv/dist/compile/codegen */ "./node_modules/ajv/dist/compile/codegen/index.js");
13379
+ const code_1 = __webpack_require__(/*! ajv/dist/compile/codegen/code */ "./node_modules/ajv/dist/compile/codegen/code.js");
13380
+ const validate_1 = __webpack_require__(/*! ajv/dist/compile/validate */ "./node_modules/ajv/dist/compile/validate/index.js");
13381
+ const errors_1 = __webpack_require__(/*! ajv/dist/compile/errors */ "./node_modules/ajv/dist/compile/errors.js");
13382
+ const names_1 = __webpack_require__(/*! ajv/dist/compile/names */ "./node_modules/ajv/dist/compile/names.js");
13383
+ const keyword = "errorMessage";
13384
+ const used = new ajv_1.Name("emUsed");
13385
+ const KEYWORD_PROPERTY_PARAMS = {
13386
+ required: "missingProperty",
13387
+ dependencies: "property",
13388
+ dependentRequired: "property",
13389
+ };
13390
+ const INTERPOLATION = /\$\{[^}]+\}/;
13391
+ const INTERPOLATION_REPLACE = /\$\{([^}]+)\}/g;
13392
+ const EMPTY_STR = /^""\s*\+\s*|\s*\+\s*""$/g;
13393
+ function errorMessage(options) {
13394
+ return {
13395
+ keyword,
13396
+ schemaType: ["string", "object"],
13397
+ post: true,
13398
+ code(cxt) {
13399
+ const { gen, data, schema, schemaValue, it } = cxt;
13400
+ if (it.createErrors === false)
13401
+ return;
13402
+ const sch = schema;
13403
+ const instancePath = codegen_1.strConcat(names_1.default.instancePath, it.errorPath);
13404
+ gen.if(ajv_1._ `${names_1.default.errors} > 0`, () => {
13405
+ if (typeof sch == "object") {
13406
+ const [kwdPropErrors, kwdErrors] = keywordErrorsConfig(sch);
13407
+ if (kwdErrors)
13408
+ processKeywordErrors(kwdErrors);
13409
+ if (kwdPropErrors)
13410
+ processKeywordPropErrors(kwdPropErrors);
13411
+ processChildErrors(childErrorsConfig(sch));
13412
+ }
13413
+ const schMessage = typeof sch == "string" ? sch : sch._;
13414
+ if (schMessage)
13415
+ processAllErrors(schMessage);
13416
+ if (!options.keepErrors)
13417
+ removeUsedErrors();
13418
+ });
13419
+ function childErrorsConfig({ properties, items }) {
13420
+ const errors = {};
13421
+ if (properties) {
13422
+ errors.props = {};
13423
+ for (const p in properties)
13424
+ errors.props[p] = [];
13425
+ }
13426
+ if (items) {
13427
+ errors.items = {};
13428
+ for (let i = 0; i < items.length; i++)
13429
+ errors.items[i] = [];
13430
+ }
13431
+ return errors;
13432
+ }
13433
+ function keywordErrorsConfig(emSchema) {
13434
+ let propErrors;
13435
+ let errors;
13436
+ for (const k in emSchema) {
13437
+ if (k === "properties" || k === "items")
13438
+ continue;
13439
+ const kwdSch = emSchema[k];
13440
+ if (typeof kwdSch == "object") {
13441
+ propErrors || (propErrors = {});
13442
+ const errMap = (propErrors[k] = {});
13443
+ for (const p in kwdSch)
13444
+ errMap[p] = [];
13445
+ }
13446
+ else {
13447
+ errors || (errors = {});
13448
+ errors[k] = [];
13449
+ }
13450
+ }
13451
+ return [propErrors, errors];
13452
+ }
13453
+ function processKeywordErrors(kwdErrors) {
13454
+ const kwdErrs = gen.const("emErrors", ajv_1.stringify(kwdErrors));
13455
+ const templates = gen.const("templates", getTemplatesCode(kwdErrors, schema));
13456
+ gen.forOf("err", names_1.default.vErrors, (err) => gen.if(matchKeywordError(err, kwdErrs), () => gen.code(ajv_1._ `${kwdErrs}[${err}.keyword].push(${err})`).assign(ajv_1._ `${err}.${used}`, true)));
13457
+ const { singleError } = options;
13458
+ if (singleError) {
13459
+ const message = gen.let("message", ajv_1._ `""`);
13460
+ const paramsErrors = gen.let("paramsErrors", ajv_1._ `[]`);
13461
+ loopErrors((key) => {
13462
+ gen.if(message, () => gen.code(ajv_1._ `${message} += ${typeof singleError == "string" ? singleError : ";"}`));
13463
+ gen.code(ajv_1._ `${message} += ${errMessage(key)}`);
13464
+ gen.assign(paramsErrors, ajv_1._ `${paramsErrors}.concat(${kwdErrs}[${key}])`);
13465
+ });
13466
+ errors_1.reportError(cxt, { message, params: ajv_1._ `{errors: ${paramsErrors}}` });
13467
+ }
13468
+ else {
13469
+ loopErrors((key) => errors_1.reportError(cxt, {
13470
+ message: errMessage(key),
13471
+ params: ajv_1._ `{errors: ${kwdErrs}[${key}]}`,
13472
+ }));
13473
+ }
13474
+ function loopErrors(body) {
13475
+ gen.forIn("key", kwdErrs, (key) => gen.if(ajv_1._ `${kwdErrs}[${key}].length`, () => body(key)));
13476
+ }
13477
+ function errMessage(key) {
13478
+ return ajv_1._ `${key} in ${templates} ? ${templates}[${key}]() : ${schemaValue}[${key}]`;
13479
+ }
13480
+ }
13481
+ function processKeywordPropErrors(kwdPropErrors) {
13482
+ const kwdErrs = gen.const("emErrors", ajv_1.stringify(kwdPropErrors));
13483
+ const templatesCode = [];
13484
+ for (const k in kwdPropErrors) {
13485
+ templatesCode.push([
13486
+ k,
13487
+ getTemplatesCode(kwdPropErrors[k], schema[k]),
13488
+ ]);
13489
+ }
13490
+ const templates = gen.const("templates", gen.object(...templatesCode));
13491
+ const kwdPropParams = gen.scopeValue("obj", {
13492
+ ref: KEYWORD_PROPERTY_PARAMS,
13493
+ code: ajv_1.stringify(KEYWORD_PROPERTY_PARAMS),
13494
+ });
13495
+ const propParam = gen.let("emPropParams");
13496
+ const paramsErrors = gen.let("emParamsErrors");
13497
+ gen.forOf("err", names_1.default.vErrors, (err) => gen.if(matchKeywordError(err, kwdErrs), () => {
13498
+ gen.assign(propParam, ajv_1._ `${kwdPropParams}[${err}.keyword]`);
13499
+ gen.assign(paramsErrors, ajv_1._ `${kwdErrs}[${err}.keyword][${err}.params[${propParam}]]`);
13500
+ gen.if(paramsErrors, () => gen.code(ajv_1._ `${paramsErrors}.push(${err})`).assign(ajv_1._ `${err}.${used}`, true));
13501
+ }));
13502
+ gen.forIn("key", kwdErrs, (key) => gen.forIn("keyProp", ajv_1._ `${kwdErrs}[${key}]`, (keyProp) => {
13503
+ gen.assign(paramsErrors, ajv_1._ `${kwdErrs}[${key}][${keyProp}]`);
13504
+ gen.if(ajv_1._ `${paramsErrors}.length`, () => {
13505
+ const tmpl = gen.const("tmpl", ajv_1._ `${templates}[${key}] && ${templates}[${key}][${keyProp}]`);
13506
+ errors_1.reportError(cxt, {
13507
+ message: ajv_1._ `${tmpl} ? ${tmpl}() : ${schemaValue}[${key}][${keyProp}]`,
13508
+ params: ajv_1._ `{errors: ${paramsErrors}}`,
13509
+ });
13510
+ });
13511
+ }));
13512
+ }
13513
+ function processChildErrors(childErrors) {
13514
+ const { props, items } = childErrors;
13515
+ if (!props && !items)
13516
+ return;
13517
+ const isObj = ajv_1._ `typeof ${data} == "object"`;
13518
+ const isArr = ajv_1._ `Array.isArray(${data})`;
13519
+ const childErrs = gen.let("emErrors");
13520
+ let childKwd;
13521
+ let childProp;
13522
+ const templates = gen.let("templates");
13523
+ if (props && items) {
13524
+ childKwd = gen.let("emChildKwd");
13525
+ gen.if(isObj);
13526
+ gen.if(isArr, () => {
13527
+ init(items, schema.items);
13528
+ gen.assign(childKwd, ajv_1.str `items`);
13529
+ }, () => {
13530
+ init(props, schema.properties);
13531
+ gen.assign(childKwd, ajv_1.str `properties`);
13532
+ });
13533
+ childProp = ajv_1._ `[${childKwd}]`;
13534
+ }
13535
+ else if (items) {
13536
+ gen.if(isArr);
13537
+ init(items, schema.items);
13538
+ childProp = ajv_1._ `.items`;
13539
+ }
13540
+ else if (props) {
13541
+ gen.if(codegen_1.and(isObj, codegen_1.not(isArr)));
13542
+ init(props, schema.properties);
13543
+ childProp = ajv_1._ `.properties`;
13544
+ }
13545
+ gen.forOf("err", names_1.default.vErrors, (err) => ifMatchesChildError(err, childErrs, (child) => gen.code(ajv_1._ `${childErrs}[${child}].push(${err})`).assign(ajv_1._ `${err}.${used}`, true)));
13546
+ gen.forIn("key", childErrs, (key) => gen.if(ajv_1._ `${childErrs}[${key}].length`, () => {
13547
+ errors_1.reportError(cxt, {
13548
+ message: ajv_1._ `${key} in ${templates} ? ${templates}[${key}]() : ${schemaValue}${childProp}[${key}]`,
13549
+ params: ajv_1._ `{errors: ${childErrs}[${key}]}`,
13550
+ });
13551
+ gen.assign(ajv_1._ `${names_1.default.vErrors}[${names_1.default.errors}-1].instancePath`, ajv_1._ `${instancePath} + "/" + ${key}.replace(/~/g, "~0").replace(/\\//g, "~1")`);
13552
+ }));
13553
+ gen.endIf();
13554
+ function init(children, msgs) {
13555
+ gen.assign(childErrs, ajv_1.stringify(children));
13556
+ gen.assign(templates, getTemplatesCode(children, msgs));
13557
+ }
13558
+ }
13559
+ function processAllErrors(schMessage) {
13560
+ const errs = gen.const("emErrs", ajv_1._ `[]`);
13561
+ gen.forOf("err", names_1.default.vErrors, (err) => gen.if(matchAnyError(err), () => gen.code(ajv_1._ `${errs}.push(${err})`).assign(ajv_1._ `${err}.${used}`, true)));
13562
+ gen.if(ajv_1._ `${errs}.length`, () => errors_1.reportError(cxt, {
13563
+ message: templateExpr(schMessage),
13564
+ params: ajv_1._ `{errors: ${errs}}`,
13565
+ }));
13566
+ }
13567
+ function removeUsedErrors() {
13568
+ const errs = gen.const("emErrs", ajv_1._ `[]`);
13569
+ gen.forOf("err", names_1.default.vErrors, (err) => gen.if(ajv_1._ `!${err}.${used}`, () => gen.code(ajv_1._ `${errs}.push(${err})`)));
13570
+ gen.assign(names_1.default.vErrors, errs).assign(names_1.default.errors, ajv_1._ `${errs}.length`);
13571
+ }
13572
+ function matchKeywordError(err, kwdErrs) {
13573
+ return codegen_1.and(ajv_1._ `${err}.keyword !== ${keyword}`, ajv_1._ `!${err}.${used}`, ajv_1._ `${err}.instancePath === ${instancePath}`, ajv_1._ `${err}.keyword in ${kwdErrs}`,
13574
+ // TODO match the end of the string?
13575
+ ajv_1._ `${err}.schemaPath.indexOf(${it.errSchemaPath}) === 0`, ajv_1._ `/^\\/[^\\/]*$/.test(${err}.schemaPath.slice(${it.errSchemaPath.length}))`);
13576
+ }
13577
+ function ifMatchesChildError(err, childErrs, thenBody) {
13578
+ gen.if(codegen_1.and(ajv_1._ `${err}.keyword !== ${keyword}`, ajv_1._ `!${err}.${used}`, ajv_1._ `${err}.instancePath.indexOf(${instancePath}) === 0`), () => {
13579
+ const childRegex = gen.scopeValue("pattern", {
13580
+ ref: /^\/([^/]*)(?:\/|$)/,
13581
+ code: ajv_1._ `new RegExp("^\\\/([^/]*)(?:\\\/|$)")`,
13582
+ });
13583
+ const matches = gen.const("emMatches", ajv_1._ `${childRegex}.exec(${err}.instancePath.slice(${instancePath}.length))`);
13584
+ const child = gen.const("emChild", ajv_1._ `${matches} && ${matches}[1].replace(/~1/g, "/").replace(/~0/g, "~")`);
13585
+ gen.if(ajv_1._ `${child} !== undefined && ${child} in ${childErrs}`, () => thenBody(child));
13586
+ });
13587
+ }
13588
+ function matchAnyError(err) {
13589
+ return codegen_1.and(ajv_1._ `${err}.keyword !== ${keyword}`, ajv_1._ `!${err}.${used}`, codegen_1.or(ajv_1._ `${err}.instancePath === ${instancePath}`, codegen_1.and(ajv_1._ `${err}.instancePath.indexOf(${instancePath}) === 0`, ajv_1._ `${err}.instancePath[${instancePath}.length] === "/"`)), ajv_1._ `${err}.schemaPath.indexOf(${it.errSchemaPath}) === 0`, ajv_1._ `${err}.schemaPath[${it.errSchemaPath}.length] === "/"`);
13590
+ }
13591
+ function getTemplatesCode(keys, msgs) {
13592
+ const templatesCode = [];
13593
+ for (const k in keys) {
13594
+ const msg = msgs[k];
13595
+ if (INTERPOLATION.test(msg))
13596
+ templatesCode.push([k, templateFunc(msg)]);
13597
+ }
13598
+ return gen.object(...templatesCode);
13599
+ }
13600
+ function templateExpr(msg) {
13601
+ if (!INTERPOLATION.test(msg))
13602
+ return ajv_1.stringify(msg);
13603
+ return new code_1._Code(code_1.safeStringify(msg)
13604
+ .replace(INTERPOLATION_REPLACE, (_s, ptr) => `" + JSON.stringify(${validate_1.getData(ptr, it)}) + "`)
13605
+ .replace(EMPTY_STR, ""));
13606
+ }
13607
+ function templateFunc(msg) {
13608
+ return ajv_1._ `function(){return ${templateExpr(msg)}}`;
13609
+ }
13610
+ },
13611
+ metaSchema: {
13612
+ anyOf: [
13613
+ { type: "string" },
13614
+ {
13615
+ type: "object",
13616
+ properties: {
13617
+ properties: { $ref: "#/$defs/stringMap" },
13618
+ items: { $ref: "#/$defs/stringList" },
13619
+ required: { $ref: "#/$defs/stringOrMap" },
13620
+ dependencies: { $ref: "#/$defs/stringOrMap" },
13621
+ },
13622
+ additionalProperties: { type: "string" },
13623
+ },
13624
+ ],
13625
+ $defs: {
13626
+ stringMap: {
13627
+ type: "object",
13628
+ additionalProperties: { type: "string" },
13629
+ },
13630
+ stringOrMap: {
13631
+ anyOf: [{ type: "string" }, { $ref: "#/$defs/stringMap" }],
13632
+ },
13633
+ stringList: { type: "array", items: { type: "string" } },
13634
+ },
13635
+ },
13636
+ };
13637
+ }
13638
+ const ajvErrors = (ajv, options = {}) => {
13639
+ if (!ajv.opts.allErrors)
13640
+ throw new Error("ajv-errors: Ajv option allErrors must be true");
13641
+ if (ajv.opts.jsPropertySyntax) {
13642
+ throw new Error("ajv-errors: ajv option jsPropertySyntax is not supported");
13643
+ }
13644
+ return ajv.addKeyword(errorMessage(options));
13645
+ };
13646
+ exports["default"] = ajvErrors;
13647
+ module.exports = ajvErrors;
13648
+ module.exports["default"] = ajvErrors;
13649
+ //# sourceMappingURL=index.js.map
13650
+
13651
+ /***/ }),
13652
+
13233
13653
  /***/ "./node_modules/ajv-formats/dist/formats.js":
13234
13654
  /*!**************************************************!*\
13235
13655
  !*** ./node_modules/ajv-formats/dist/formats.js ***!
@@ -30089,8 +30509,7 @@ var Duration = /*#__PURE__*/function () {
30089
30509
 
30090
30510
  var i = Math.trunc(own);
30091
30511
  built[k] = i;
30092
- accumulated[k] = own - i; // we'd like to absorb these fractions in another unit
30093
- // plus anything further down the chain that should be rolled up in to this
30512
+ accumulated[k] = (own * 1000 - i * 1000) / 1000; // plus anything further down the chain that should be rolled up in to this
30094
30513
 
30095
30514
  for (var down in vals) {
30096
30515
  if (orderedUnits$1.indexOf(down) > orderedUnits$1.indexOf(k)) {
@@ -31851,14 +32270,19 @@ function dateTimeFromMatches(matches) {
31851
32270
  }
31852
32271
  };
31853
32272
 
31854
- var zone;
32273
+ var zone = null;
32274
+ var specificOffset;
31855
32275
 
31856
- if (!isUndefined(matches.Z)) {
31857
- zone = new FixedOffsetZone(matches.Z);
31858
- } else if (!isUndefined(matches.z)) {
32276
+ if (!isUndefined(matches.z)) {
31859
32277
  zone = IANAZone.create(matches.z);
31860
- } else {
31861
- zone = null;
32278
+ }
32279
+
32280
+ if (!isUndefined(matches.Z)) {
32281
+ if (!zone) {
32282
+ zone = new FixedOffsetZone(matches.Z);
32283
+ }
32284
+
32285
+ specificOffset = matches.Z;
31862
32286
  }
31863
32287
 
31864
32288
  if (!isUndefined(matches.q)) {
@@ -31890,7 +32314,7 @@ function dateTimeFromMatches(matches) {
31890
32314
 
31891
32315
  return r;
31892
32316
  }, {});
31893
- return [vals, zone];
32317
+ return [vals, zone, specificOffset];
31894
32318
  }
31895
32319
 
31896
32320
  var dummyDateTimeCache = null;
@@ -31962,9 +32386,10 @@ function explainFromTokens(locale, input, format) {
31962
32386
  _match = match(input, regex, handlers),
31963
32387
  rawMatches = _match[0],
31964
32388
  matches = _match[1],
31965
- _ref6 = matches ? dateTimeFromMatches(matches) : [null, null],
32389
+ _ref6 = matches ? dateTimeFromMatches(matches) : [null, null, undefined],
31966
32390
  result = _ref6[0],
31967
- zone = _ref6[1];
32391
+ zone = _ref6[1],
32392
+ specificOffset = _ref6[2];
31968
32393
 
31969
32394
  if (hasOwnProperty(matches, "a") && hasOwnProperty(matches, "H")) {
31970
32395
  throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format");
@@ -31977,7 +32402,8 @@ function explainFromTokens(locale, input, format) {
31977
32402
  rawMatches: rawMatches,
31978
32403
  matches: matches,
31979
32404
  result: result,
31980
- zone: zone
32405
+ zone: zone,
32406
+ specificOffset: specificOffset
31981
32407
  };
31982
32408
  }
31983
32409
  }
@@ -31985,9 +32411,10 @@ function parseFromTokens(locale, input, format) {
31985
32411
  var _explainFromTokens = explainFromTokens(locale, input, format),
31986
32412
  result = _explainFromTokens.result,
31987
32413
  zone = _explainFromTokens.zone,
32414
+ specificOffset = _explainFromTokens.specificOffset,
31988
32415
  invalidReason = _explainFromTokens.invalidReason;
31989
32416
 
31990
- return [result, zone, invalidReason];
32417
+ return [result, zone, specificOffset, invalidReason];
31991
32418
  }
31992
32419
 
31993
32420
  var nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],
@@ -32275,14 +32702,15 @@ function adjustTime(inst, dur) {
32275
32702
  // by handling the zone options
32276
32703
 
32277
32704
 
32278
- function parseDataToDateTime(parsed, parsedZone, opts, format, text) {
32705
+ function parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {
32279
32706
  var setZone = opts.setZone,
32280
32707
  zone = opts.zone;
32281
32708
 
32282
32709
  if (parsed && Object.keys(parsed).length !== 0) {
32283
32710
  var interpretationZone = parsedZone || zone,
32284
32711
  inst = DateTime.fromObject(parsed, _extends({}, opts, {
32285
- zone: interpretationZone
32712
+ zone: interpretationZone,
32713
+ specificOffset: specificOffset
32286
32714
  }));
32287
32715
  return setZone ? inst : inst.setZone(zone);
32288
32716
  } else {
@@ -32827,7 +33255,7 @@ var DateTime = /*#__PURE__*/function () {
32827
33255
  }
32828
33256
 
32829
33257
  var tsNow = Settings.now(),
32830
- offsetProvis = zoneToUse.offset(tsNow),
33258
+ offsetProvis = !isUndefined(opts.specificOffset) ? opts.specificOffset : zoneToUse.offset(tsNow),
32831
33259
  normalized = normalizeObject(obj, normalizeUnit),
32832
33260
  containsOrdinal = !isUndefined(normalized.ordinal),
32833
33261
  containsGregorYear = !isUndefined(normalized.year),
@@ -33031,12 +33459,13 @@ var DateTime = /*#__PURE__*/function () {
33031
33459
  _parseFromTokens = parseFromTokens(localeToUse, text, fmt),
33032
33460
  vals = _parseFromTokens[0],
33033
33461
  parsedZone = _parseFromTokens[1],
33034
- invalid = _parseFromTokens[2];
33462
+ specificOffset = _parseFromTokens[2],
33463
+ invalid = _parseFromTokens[3];
33035
33464
 
33036
33465
  if (invalid) {
33037
33466
  return DateTime.invalid(invalid);
33038
33467
  } else {
33039
- return parseDataToDateTime(vals, parsedZone, opts, "format " + fmt, text);
33468
+ return parseDataToDateTime(vals, parsedZone, opts, "format " + fmt, text, specificOffset);
33040
33469
  }
33041
33470
  }
33042
33471
  /**
@@ -34674,7 +35103,7 @@ function friendlyDateTime(dateTimeish) {
34674
35103
  }
34675
35104
  }
34676
35105
 
34677
- var VERSION = "2.1.1";
35106
+ var VERSION = "2.2.0";
34678
35107
 
34679
35108
  exports.DateTime = DateTime;
34680
35109
  exports.Duration = Duration;