@nmshd/runtime 1.1.0 → 1.2.3

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 (99) 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/extensibility/facades/transport/AccountFacade.d.ts +4 -2
  33. package/dist/extensibility/facades/transport/AccountFacade.js +7 -1
  34. package/dist/extensibility/facades/transport/AccountFacade.js.map +1 -1
  35. package/dist/modules/MessageModule.js +4 -4
  36. package/dist/modules/MessageModule.js.map +1 -1
  37. package/dist/useCases/common/SchemaRepository.d.ts +5 -4
  38. package/dist/useCases/common/SchemaRepository.js +11 -9
  39. package/dist/useCases/common/SchemaRepository.js.map +1 -1
  40. package/dist/useCases/common/Schemas.d.ts +78 -1580
  41. package/dist/useCases/common/Schemas.js +198 -57
  42. package/dist/useCases/common/Schemas.js.map +1 -1
  43. package/dist/useCases/common/UseCase.d.ts +1 -4
  44. package/dist/useCases/common/UseCase.js.map +1 -1
  45. package/dist/useCases/common/index.d.ts +2 -0
  46. package/dist/useCases/common/index.js +2 -0
  47. package/dist/useCases/common/index.js.map +1 -1
  48. package/dist/useCases/common/validation/IValidator.d.ts +4 -0
  49. package/dist/useCases/common/validation/IValidator.js +3 -0
  50. package/dist/useCases/common/validation/IValidator.js.map +1 -0
  51. package/dist/useCases/common/validation/SchemaValidator.d.ts +10 -0
  52. package/dist/useCases/common/{SchemaValidator.js → validation/SchemaValidator.js} +4 -1
  53. package/dist/useCases/common/validation/SchemaValidator.js.map +1 -0
  54. package/dist/useCases/transport/account/RegisterPushNotificationToken.d.ts +17 -0
  55. package/dist/useCases/transport/account/RegisterPushNotificationToken.js +54 -0
  56. package/dist/useCases/transport/account/RegisterPushNotificationToken.js.map +1 -0
  57. package/dist/useCases/transport/account/SyncEverything.d.ts +3 -2
  58. package/dist/useCases/transport/account/SyncEverything.js +14 -8
  59. package/dist/useCases/transport/account/SyncEverything.js.map +1 -1
  60. package/dist/useCases/transport/account/index.d.ts +1 -0
  61. package/dist/useCases/transport/account/index.js +1 -0
  62. package/dist/useCases/transport/account/index.js.map +1 -1
  63. package/dist/useCases/transport/files/CreateTokenForFile.d.ts +1 -3
  64. package/dist/useCases/transport/files/CreateTokenForFile.js +2 -4
  65. package/dist/useCases/transport/files/CreateTokenForFile.js.map +1 -1
  66. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.d.ts +1 -3
  67. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.js +2 -4
  68. package/dist/useCases/transport/files/CreateTokenQrCodeForFile.js.map +1 -1
  69. package/dist/useCases/transport/files/DownloadFile.d.ts +1 -3
  70. package/dist/useCases/transport/files/DownloadFile.js +2 -4
  71. package/dist/useCases/transport/files/DownloadFile.js.map +1 -1
  72. package/dist/useCases/transport/files/GetFile.d.ts +1 -3
  73. package/dist/useCases/transport/files/GetFile.js +2 -4
  74. package/dist/useCases/transport/files/GetFile.js.map +1 -1
  75. package/dist/useCases/transport/files/LoadPeerFile.d.ts +24 -13
  76. package/dist/useCases/transport/files/LoadPeerFile.js +36 -37
  77. package/dist/useCases/transport/files/LoadPeerFile.js.map +1 -1
  78. package/dist/useCases/transport/messages/SendMessage.d.ts +3 -2
  79. package/dist/useCases/transport/messages/SendMessage.js +5 -2
  80. package/dist/useCases/transport/messages/SendMessage.js.map +1 -1
  81. package/dist/useCases/transport/relationships/AcceptRelationshipChange.d.ts +3 -2
  82. package/dist/useCases/transport/relationships/AcceptRelationshipChange.js +5 -2
  83. package/dist/useCases/transport/relationships/AcceptRelationshipChange.js.map +1 -1
  84. package/dist/useCases/transport/relationships/CreateRelationship.d.ts +3 -2
  85. package/dist/useCases/transport/relationships/CreateRelationship.js +5 -2
  86. package/dist/useCases/transport/relationships/CreateRelationship.js.map +1 -1
  87. package/dist/useCases/transport/relationships/RejectRelationshipChange.d.ts +3 -2
  88. package/dist/useCases/transport/relationships/RejectRelationshipChange.js +5 -2
  89. package/dist/useCases/transport/relationships/RejectRelationshipChange.js.map +1 -1
  90. package/dist/useCases/transport/relationships/RevokeRelationshipChange.d.ts +3 -2
  91. package/dist/useCases/transport/relationships/RevokeRelationshipChange.js +5 -2
  92. package/dist/useCases/transport/relationships/RevokeRelationshipChange.js.map +1 -1
  93. package/lib-web/nmshd.runtime.js +741 -215
  94. package/lib-web/nmshd.runtime.js.map +1 -1
  95. package/lib-web/nmshd.runtime.min.js +2 -2
  96. package/lib-web/nmshd.runtime.min.js.map +1 -1
  97. package/package.json +22 -22
  98. package/dist/useCases/common/SchemaValidator.d.ts +0 -9
  99. 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.1.0",
334
- build: "13",
335
- date: "2021-11-26T09:03:51+00:00",
336
- commit: "a589a49b970249c8a28e0f24893956253c6ee857",
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.4","@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.3",
334
+ build: "18",
335
+ date: "2021-12-16T08:38:15+00:00",
336
+ commit: "cdbf1043c7e5d8188802f6a3d5449076df346eb7",
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;
@@ -2196,9 +2197,10 @@ exports.AccountFacade = void 0;
2196
2197
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
2197
2198
  const useCases_1 = __webpack_require__(/*! ../../../useCases */ "./dist/useCases/index.js");
2198
2199
  let AccountFacade = class AccountFacade {
2199
- constructor(getIdentityInfoUseCase, getDeviceInfoUseCase, syncDatawalletUseCase, syncEverythingUseCase, getSyncInfoUseCase, disableAutoSyncUseCase, enableAutoSyncUseCase) {
2200
+ constructor(getIdentityInfoUseCase, getDeviceInfoUseCase, registerPushNotificationTokenUseCase, syncDatawalletUseCase, syncEverythingUseCase, getSyncInfoUseCase, disableAutoSyncUseCase, enableAutoSyncUseCase) {
2200
2201
  this.getIdentityInfoUseCase = getIdentityInfoUseCase;
2201
2202
  this.getDeviceInfoUseCase = getDeviceInfoUseCase;
2203
+ this.registerPushNotificationTokenUseCase = registerPushNotificationTokenUseCase;
2202
2204
  this.syncDatawalletUseCase = syncDatawalletUseCase;
2203
2205
  this.syncEverythingUseCase = syncEverythingUseCase;
2204
2206
  this.getSyncInfoUseCase = getSyncInfoUseCase;
@@ -2217,6 +2219,9 @@ let AccountFacade = class AccountFacade {
2217
2219
  recoverDevice() {
2218
2220
  throw useCases_1.RuntimeErrors.general.notImplemented();
2219
2221
  }
2222
+ async registerPushNotificationToken(request) {
2223
+ return await this.registerPushNotificationTokenUseCase.execute(request);
2224
+ }
2220
2225
  async syncDatawallet() {
2221
2226
  return await this.syncDatawalletUseCase.execute();
2222
2227
  }
@@ -2241,8 +2246,10 @@ AccountFacade = __decorate([
2241
2246
  __param(4, typescript_ioc_1.Inject),
2242
2247
  __param(5, typescript_ioc_1.Inject),
2243
2248
  __param(6, typescript_ioc_1.Inject),
2249
+ __param(7, typescript_ioc_1.Inject),
2244
2250
  __metadata("design:paramtypes", [useCases_1.GetIdentityInfoUseCase,
2245
2251
  useCases_1.GetDeviceInfoUseCase,
2252
+ useCases_1.RegisterPushNotificationTokenUseCase,
2246
2253
  useCases_1.SyncDatawalletUseCase,
2247
2254
  useCases_1.SyncEverythingUseCase,
2248
2255
  useCases_1.GetSyncInfoUseCase,
@@ -2925,18 +2932,18 @@ class MessageModule extends RuntimeModule_1.RuntimeModule {
2925
2932
  switch (type) {
2926
2933
  case "Mail":
2927
2934
  const mail = await content_1.Mail.from(message.content);
2928
- event = new MailReceivedEvent_1.MailReceivedEvent(mail, message);
2935
+ event = new MailReceivedEvent_1.MailReceivedEvent(messageReceivedEvent.eventTargetAddress, mail, message);
2929
2936
  this.runtime.eventBus.publish(event);
2930
2937
  this.logger.trace(`Published MailReceivedEvent for ${message.id}`);
2931
2938
  break;
2932
2939
  case "RequestMail":
2933
2940
  const requestMail = await content_1.RequestMail.from(message.content);
2934
- event = new RequestMailReceivedEvent_1.RequestMailReceivedEvent(requestMail, message);
2941
+ event = new RequestMailReceivedEvent_1.RequestMailReceivedEvent(messageReceivedEvent.eventTargetAddress, requestMail, message);
2935
2942
  this.runtime.eventBus.publish(event);
2936
2943
  this.logger.trace(`Published RequestMailReceivedEvent for ${message.id}`);
2937
2944
  let i = 0;
2938
2945
  for (const request of requestMail.requests) {
2939
- this.runtime.eventBus.publish(new RequestReceivedEvent_1.RequestReceivedEvent(request, message));
2946
+ this.runtime.eventBus.publish(new RequestReceivedEvent_1.RequestReceivedEvent(messageReceivedEvent.eventTargetAddress, request, message));
2940
2947
  this.logger.trace(`Published RequestReceivedEvent request #${i} of RequestMail ${message.id}`);
2941
2948
  i++;
2942
2949
  }
@@ -2951,7 +2958,7 @@ class MessageModule extends RuntimeModule_1.RuntimeModule {
2951
2958
  return;
2952
2959
  }
2953
2960
  const relationship = result.value;
2954
- this.runtime.eventBus.publish(new RelationshipEvent_1.RelationshipEvent(event, relationship));
2961
+ this.runtime.eventBus.publish(new RelationshipEvent_1.RelationshipEvent(messageReceivedEvent.eventTargetAddress, event, relationship));
2955
2962
  this.logger.trace(`Published RelationshipEvent for ${message.id} to ${relationship.id}`);
2956
2963
  }
2957
2964
  stop() {
@@ -3787,21 +3794,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3787
3794
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3788
3795
  exports.JsonSchema = exports.SchemaRepository = void 0;
3789
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"));
3790
3798
  const ajv_formats_1 = __importDefault(__webpack_require__(/*! ajv-formats */ "./node_modules/ajv-formats/dist/index.js"));
3791
3799
  const customFormats = {
3792
- fileId: "FIL[A-Za-z0-9]{17}",
3793
- relationshipId: "REL[A-Za-z0-9]{17}",
3794
- messageId: "MSG[A-Za-z0-9]{17}",
3795
- relationshipTemplateId: "RLT[A-Za-z0-9]{17}",
3796
- tokenId: "TOK[A-Za-z0-9]{17}",
3797
- relationshipChangeId: "RCH[A-Za-z0-9]{17}",
3798
- 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}"
3799
3807
  };
3800
3808
  class SchemaRepository {
3801
3809
  constructor() {
3802
3810
  this.jsonSchemas = new Map();
3803
- this.compiler = new ajv_1.default();
3811
+ this.compiler = new ajv_1.default({ allErrors: true });
3804
3812
  (0, ajv_formats_1.default)(this.compiler);
3813
+ (0, ajv_errors_1.default)(this.compiler);
3805
3814
  this.addCustomFormats();
3806
3815
  }
3807
3816
  addCustomFormats() {
@@ -3834,7 +3843,7 @@ class JsonSchema {
3834
3843
  this.validateSchema = validateSchema;
3835
3844
  }
3836
3845
  validate(obj) {
3837
- return { isValid: this.validateSchema(obj), errors: this.validateSchema.errors };
3846
+ return { isValid: this.validateSchema(obj), errors: this.validateSchema.errors ? [...this.validateSchema.errors] : undefined };
3838
3847
  }
3839
3848
  }
3840
3849
  exports.JsonSchema = JsonSchema;
@@ -3842,40 +3851,6 @@ exports.JsonSchema = JsonSchema;
3842
3851
 
3843
3852
  /***/ }),
3844
3853
 
3845
- /***/ "./dist/useCases/common/SchemaValidator.js":
3846
- /*!*************************************************!*\
3847
- !*** ./dist/useCases/common/SchemaValidator.js ***!
3848
- \*************************************************/
3849
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3850
-
3851
- "use strict";
3852
-
3853
- Object.defineProperty(exports, "__esModule", ({ value: true }));
3854
- exports.SchemaValidator = void 0;
3855
- const fluent_ts_validator_1 = __webpack_require__(/*! fluent-ts-validator */ "./node_modules/fluent-ts-validator/index.js");
3856
- class SchemaValidator {
3857
- constructor(schema) {
3858
- this.schema = schema;
3859
- }
3860
- validate(input) {
3861
- const validationResult = this.schema.validate(input);
3862
- const result = new fluent_ts_validator_1.ValidationResult();
3863
- if (validationResult.isValid) {
3864
- return result;
3865
- }
3866
- result.addFailures(validationResult.errors.map(this.schemaErrorToValidationFailure));
3867
- return result;
3868
- }
3869
- schemaErrorToValidationFailure(err, target) {
3870
- const errorMessage = `${err.instancePath} ${err.message}`.replace(/^\//, "").replace(/"/g, "");
3871
- return new fluent_ts_validator_1.ValidationFailure(target, err.instancePath, undefined, undefined, errorMessage);
3872
- }
3873
- }
3874
- exports.SchemaValidator = SchemaValidator;
3875
- //# sourceMappingURL=SchemaValidator.js.map
3876
-
3877
- /***/ }),
3878
-
3879
3854
  /***/ "./dist/useCases/common/Schemas.js":
3880
3855
  /*!*****************************************!*\
3881
3856
  !*** ./dist/useCases/common/Schemas.js ***!
@@ -3885,8 +3860,8 @@ exports.SchemaValidator = SchemaValidator;
3885
3860
  "use strict";
3886
3861
 
3887
3862
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3888
- exports.UploadOwnFileRequest = 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.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;
3889
- 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 = 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;
3890
3865
  exports.LoadPeerTokenAnonymousByIdAndKeyRequest = {
3891
3866
  "$schema": "http://json-schema.org/draft-07/schema#",
3892
3867
  "$ref": "#/definitions/LoadPeerTokenAnonymousByIdAndKeyRequest",
@@ -3927,6 +3902,16 @@ exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = {
3927
3902
  }
3928
3903
  }
3929
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
+ };
3930
3915
  exports.CreateAttributeRequest = {
3931
3916
  "$schema": "http://json-schema.org/draft-07/schema#",
3932
3917
  "$ref": "#/definitions/CreateAttributeRequest",
@@ -4059,16 +4044,6 @@ exports.GetAttributesRequest = {
4059
4044
  }
4060
4045
  }
4061
4046
  };
4062
- exports.GetAttributesByNameRequest = {
4063
- "$schema": "http://json-schema.org/draft-07/schema#",
4064
- "$ref": "#/definitions/GetAttributesByNameRequest",
4065
- "definitions": {
4066
- "GetAttributesByNameRequest": {
4067
- "type": "object",
4068
- "additionalProperties": false
4069
- }
4070
- }
4071
- };
4072
4047
  exports.GetHistoryByNameRequest = {
4073
4048
  "$schema": "http://json-schema.org/draft-07/schema#",
4074
4049
  "$ref": "#/definitions/GetHistoryByNameRequest",
@@ -4872,6 +4847,73 @@ exports.UpdateSharedItemRequest = {
4872
4847
  }
4873
4848
  }
4874
4849
  };
4850
+ exports.RegisterPushNotificationTokenRequest = {
4851
+ "$schema": "http://json-schema.org/draft-07/schema#",
4852
+ "$ref": "#/definitions/RegisterPushNotificationTokenRequest",
4853
+ "definitions": {
4854
+ "RegisterPushNotificationTokenRequest": {
4855
+ "type": "object",
4856
+ "properties": {
4857
+ "handle": {
4858
+ "type": "string"
4859
+ },
4860
+ "installationId": {
4861
+ "type": "string"
4862
+ },
4863
+ "platform": {
4864
+ "type": "string"
4865
+ }
4866
+ },
4867
+ "required": [
4868
+ "handle",
4869
+ "installationId",
4870
+ "platform"
4871
+ ],
4872
+ "additionalProperties": false
4873
+ }
4874
+ }
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
+ };
4875
4917
  exports.CreateDeviceRequest = {
4876
4918
  "$schema": "http://json-schema.org/draft-07/schema#",
4877
4919
  "$ref": "#/definitions/CreateDeviceRequest",
@@ -5041,25 +5083,6 @@ exports.CreateTokenQrCodeForFileRequest = {
5041
5083
  }
5042
5084
  }
5043
5085
  };
5044
- exports.DownloadFileRequest = {
5045
- "$schema": "http://json-schema.org/draft-07/schema#",
5046
- "$ref": "#/definitions/DownloadFileRequest",
5047
- "definitions": {
5048
- "DownloadFileRequest": {
5049
- "type": "object",
5050
- "properties": {
5051
- "id": {
5052
- "type": "string",
5053
- "format": "fileId"
5054
- }
5055
- },
5056
- "required": [
5057
- "id"
5058
- ],
5059
- "additionalProperties": false
5060
- }
5061
- }
5062
- };
5063
5086
  exports.GetFileRequest = {
5064
5087
  "$schema": "http://json-schema.org/draft-07/schema#",
5065
5088
  "$ref": "#/definitions/GetFileRequest",
@@ -5102,11 +5125,65 @@ exports.GetFilesRequest = {
5102
5125
  }
5103
5126
  }
5104
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
+ };
5105
5172
  exports.LoadPeerFileRequest = {
5106
5173
  "$schema": "http://json-schema.org/draft-07/schema#",
5107
5174
  "$ref": "#/definitions/LoadPeerFileRequest",
5108
5175
  "definitions": {
5109
5176
  "LoadPeerFileRequest": {
5177
+ "anyOf": [
5178
+ {
5179
+ "$ref": "#/definitions/LoadPeerFileViaSecretRequest"
5180
+ },
5181
+ {
5182
+ "$ref": "#/definitions/LoadPeerFileViaReferenceRequest"
5183
+ }
5184
+ ]
5185
+ },
5186
+ "LoadPeerFileViaSecretRequest": {
5110
5187
  "type": "object",
5111
5188
  "properties": {
5112
5189
  "id": {
@@ -5114,13 +5191,29 @@ exports.LoadPeerFileRequest = {
5114
5191
  "format": "fileId"
5115
5192
  },
5116
5193
  "secretKey": {
5117
- "type": "string"
5118
- },
5119
- "reference": {
5120
- "type": "string"
5194
+ "type": "string",
5195
+ "minLength": 100
5121
5196
  }
5122
5197
  },
5198
+ "required": [
5199
+ "id",
5200
+ "secretKey"
5201
+ ],
5123
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"
5124
5217
  }
5125
5218
  }
5126
5219
  };
@@ -5215,28 +5308,6 @@ exports.CheckIdentityRequest = {
5215
5308
  }
5216
5309
  }
5217
5310
  };
5218
- exports.DownloadAttachmentRequest = {
5219
- "$schema": "http://json-schema.org/draft-07/schema#",
5220
- "$ref": "#/definitions/DownloadAttachmentRequest",
5221
- "definitions": {
5222
- "DownloadAttachmentRequest": {
5223
- "type": "object",
5224
- "properties": {
5225
- "id": {
5226
- "type": "string"
5227
- },
5228
- "attachmentId": {
5229
- "type": "string"
5230
- }
5231
- },
5232
- "required": [
5233
- "id",
5234
- "attachmentId"
5235
- ],
5236
- "additionalProperties": false
5237
- }
5238
- }
5239
- };
5240
5311
  exports.GetAttachmentMetadataRequest = {
5241
5312
  "$schema": "http://json-schema.org/draft-07/schema#",
5242
5313
  "$ref": "#/definitions/GetAttachmentMetadataRequest",
@@ -5502,6 +5573,51 @@ exports.CreateOwnRelationshipTemplateRequest = {
5502
5573
  }
5503
5574
  }
5504
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
+ };
5505
5621
  exports.GetRelationshipTemplateRequest = {
5506
5622
  "$schema": "http://json-schema.org/draft-07/schema#",
5507
5623
  "$ref": "#/definitions/GetRelationshipTemplateRequest",
@@ -5786,11 +5902,13 @@ __exportStar(__webpack_require__(/*! ./OwnerRestriction */ "./dist/useCases/comm
5786
5902
  __exportStar(__webpack_require__(/*! ./QRCode */ "./dist/useCases/common/QRCode.js"), exports);
5787
5903
  __exportStar(__webpack_require__(/*! ./RuntimeErrors */ "./dist/useCases/common/RuntimeErrors.js"), exports);
5788
5904
  __exportStar(__webpack_require__(/*! ./RuntimeValidator */ "./dist/useCases/common/RuntimeValidator.js"), exports);
5905
+ __exportStar(__webpack_require__(/*! ./SchemaRepository */ "./dist/useCases/common/SchemaRepository.js"), exports);
5789
5906
  __exportStar(__webpack_require__(/*! ./UseCase */ "./dist/useCases/common/UseCase.js"), exports);
5790
5907
  __exportStar(__webpack_require__(/*! ./validation/AddressValidator */ "./dist/useCases/common/validation/AddressValidator.js"), exports);
5791
5908
  __exportStar(__webpack_require__(/*! ./validation/DateValidator */ "./dist/useCases/common/validation/DateValidator.js"), exports);
5792
5909
  __exportStar(__webpack_require__(/*! ./validation/IdValidator */ "./dist/useCases/common/validation/IdValidator.js"), exports);
5793
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);
5794
5912
  //# sourceMappingURL=index.js.map
5795
5913
 
5796
5914
  /***/ }),
@@ -5927,6 +6045,43 @@ exports.RelationshipAttributeDTOValidator = RelationshipAttributeDTOValidator;
5927
6045
 
5928
6046
  /***/ }),
5929
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, target) {
6076
+ const errorMessage = `${err.instancePath} ${err.message}`.replace(/^\//, "").replace(/"/g, "").trim();
6077
+ return new fluent_ts_validator_1.ValidationFailure(target, err.instancePath, undefined, undefined, errorMessage);
6078
+ }
6079
+ }
6080
+ exports.SchemaValidator = SchemaValidator;
6081
+ //# sourceMappingURL=SchemaValidator.js.map
6082
+
6083
+ /***/ }),
6084
+
5930
6085
  /***/ "./dist/useCases/consumption/attributes/AttributeMapper.js":
5931
6086
  /*!*****************************************************************!*\
5932
6087
  !*** ./dist/useCases/consumption/attributes/AttributeMapper.js ***!
@@ -8823,6 +8978,70 @@ exports.GetSyncInfoUseCase = GetSyncInfoUseCase;
8823
8978
 
8824
8979
  /***/ }),
8825
8980
 
8981
+ /***/ "./dist/useCases/transport/account/RegisterPushNotificationToken.js":
8982
+ /*!**************************************************************************!*\
8983
+ !*** ./dist/useCases/transport/account/RegisterPushNotificationToken.js ***!
8984
+ \**************************************************************************/
8985
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
8986
+
8987
+ "use strict";
8988
+
8989
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8990
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8991
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8992
+ 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;
8993
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
8994
+ };
8995
+ var __metadata = (this && this.__metadata) || function (k, v) {
8996
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
8997
+ };
8998
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8999
+ return function (target, key) { decorator(target, key, paramIndex); }
9000
+ };
9001
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9002
+ exports.RegisterPushNotificationTokenUseCase = void 0;
9003
+ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
9004
+ const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9005
+ const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9006
+ const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9007
+ class Validator extends common_1.RuntimeValidator {
9008
+ constructor() {
9009
+ super();
9010
+ this.validateIfString((x) => x.handle)
9011
+ .isDefined()
9012
+ .isNotEmpty();
9013
+ this.validateIfString((x) => x.installationId)
9014
+ .isDefined()
9015
+ .isNotEmpty();
9016
+ this.validateIfString((x) => x.platform)
9017
+ .isDefined()
9018
+ .isNotEmpty();
9019
+ }
9020
+ }
9021
+ let RegisterPushNotificationTokenUseCase = class RegisterPushNotificationTokenUseCase extends common_1.UseCase {
9022
+ constructor(accountController, validator) {
9023
+ super(validator);
9024
+ this.accountController = accountController;
9025
+ }
9026
+ async executeInternal(request) {
9027
+ await this.accountController.registerPushNotificationToken({
9028
+ handle: request.handle,
9029
+ installationId: request.installationId,
9030
+ platform: request.platform
9031
+ });
9032
+ return ts_utils_1.Result.ok(undefined);
9033
+ }
9034
+ };
9035
+ RegisterPushNotificationTokenUseCase = __decorate([
9036
+ __param(0, typescript_ioc_1.Inject),
9037
+ __param(1, typescript_ioc_1.Inject),
9038
+ __metadata("design:paramtypes", [transport_1.AccountController, Validator])
9039
+ ], RegisterPushNotificationTokenUseCase);
9040
+ exports.RegisterPushNotificationTokenUseCase = RegisterPushNotificationTokenUseCase;
9041
+ //# sourceMappingURL=RegisterPushNotificationToken.js.map
9042
+
9043
+ /***/ }),
9044
+
8826
9045
  /***/ "./dist/useCases/transport/account/SyncDatawallet.js":
8827
9046
  /*!***********************************************************!*\
8828
9047
  !*** ./dist/useCases/transport/account/SyncDatawallet.js ***!
@@ -8899,9 +9118,10 @@ const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common
8899
9118
  const MessageMapper_1 = __webpack_require__(/*! ../messages/MessageMapper */ "./dist/useCases/transport/messages/MessageMapper.js");
8900
9119
  const RelationshipMapper_1 = __webpack_require__(/*! ../relationships/RelationshipMapper */ "./dist/useCases/transport/relationships/RelationshipMapper.js");
8901
9120
  let SyncEverythingUseCase = class SyncEverythingUseCase extends common_1.UseCase {
8902
- constructor(accountController, eventBus, loggerFactory) {
9121
+ constructor(accountController, identityController, eventBus, loggerFactory) {
8903
9122
  super();
8904
9123
  this.accountController = accountController;
9124
+ this.identityController = identityController;
8905
9125
  this.eventBus = eventBus;
8906
9126
  this.logger = loggerFactory.getLogger(SyncEverythingUseCase);
8907
9127
  }
@@ -8921,30 +9141,31 @@ let SyncEverythingUseCase = class SyncEverythingUseCase extends common_1.UseCase
8921
9141
  const changedItems = await this.accountController.syncEverything();
8922
9142
  const messageDTOs = changedItems.messages.map((m) => MessageMapper_1.MessageMapper.toMessageDTO(m));
8923
9143
  const relationshipDTOs = changedItems.relationships.map((r) => RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(r));
8924
- this.processNewMessages(messageDTOs);
8925
- this.processNewRelationships(relationshipDTOs);
9144
+ const eventTargetAddress = this.identityController.identity.address.toString();
9145
+ this.processNewMessages(messageDTOs, eventTargetAddress);
9146
+ this.processNewRelationships(relationshipDTOs, eventTargetAddress);
8926
9147
  return ts_utils_1.Result.ok({
8927
9148
  messages: messageDTOs,
8928
9149
  relationships: relationshipDTOs
8929
9150
  });
8930
9151
  }
8931
- processNewRelationships(relationships) {
9152
+ processNewRelationships(relationships, eventTargetAddress) {
8932
9153
  if (relationships.length === 0) {
8933
9154
  return;
8934
9155
  }
8935
9156
  this.logger.debug(`Found ${relationships.length} relationship(s) with changes. Start publishing on event bus...`);
8936
9157
  for (const relationship of relationships) {
8937
- this.eventBus.publish(new events_1.RelationshipChangedEvent(relationship));
9158
+ this.eventBus.publish(new events_1.RelationshipChangedEvent(eventTargetAddress, relationship));
8938
9159
  }
8939
9160
  this.logger.debug("Finished publishing relationship changes on event bus.");
8940
9161
  }
8941
- processNewMessages(messages) {
9162
+ processNewMessages(messages, eventTargetAddress) {
8942
9163
  if (messages.length === 0) {
8943
9164
  return;
8944
9165
  }
8945
9166
  this.logger.debug(`Found ${messages.length} new message(s). Start publishing on event bus...`);
8946
9167
  for (const message of messages) {
8947
- this.eventBus.publish(new events_1.MessageReceivedEvent(message));
9168
+ this.eventBus.publish(new events_1.MessageReceivedEvent(eventTargetAddress, message));
8948
9169
  }
8949
9170
  this.logger.debug("Finished publishing message changes on event bus.");
8950
9171
  }
@@ -8953,7 +9174,11 @@ SyncEverythingUseCase = __decorate([
8953
9174
  __param(0, typescript_ioc_1.Inject),
8954
9175
  __param(1, typescript_ioc_1.Inject),
8955
9176
  __param(2, typescript_ioc_1.Inject),
8956
- __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])
8957
9182
  ], SyncEverythingUseCase);
8958
9183
  exports.SyncEverythingUseCase = SyncEverythingUseCase;
8959
9184
  //# sourceMappingURL=SyncEverything.js.map
@@ -8984,6 +9209,7 @@ __exportStar(__webpack_require__(/*! ./EnableAutoSync */ "./dist/useCases/transp
8984
9209
  __exportStar(__webpack_require__(/*! ./GetDeviceInfo */ "./dist/useCases/transport/account/GetDeviceInfo.js"), exports);
8985
9210
  __exportStar(__webpack_require__(/*! ./GetIdentityInfo */ "./dist/useCases/transport/account/GetIdentityInfo.js"), exports);
8986
9211
  __exportStar(__webpack_require__(/*! ./GetSyncInfo */ "./dist/useCases/transport/account/GetSyncInfo.js"), exports);
9212
+ __exportStar(__webpack_require__(/*! ./RegisterPushNotificationToken */ "./dist/useCases/transport/account/RegisterPushNotificationToken.js"), exports);
8987
9213
  __exportStar(__webpack_require__(/*! ./SyncDatawallet */ "./dist/useCases/transport/account/SyncDatawallet.js"), exports);
8988
9214
  __exportStar(__webpack_require__(/*! ./SyncEverything */ "./dist/useCases/transport/account/SyncEverything.js"), exports);
8989
9215
  //# sourceMappingURL=index.js.map
@@ -9535,17 +9761,15 @@ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/
9535
9761
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9536
9762
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9537
9763
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9538
- const SchemaRepository_1 = __webpack_require__(/*! ../../common/SchemaRepository */ "./dist/useCases/common/SchemaRepository.js");
9539
- const SchemaValidator_1 = __webpack_require__(/*! ../../common/SchemaValidator */ "./dist/useCases/common/SchemaValidator.js");
9540
9764
  const TokenMapper_1 = __webpack_require__(/*! ../tokens/TokenMapper */ "./dist/useCases/transport/tokens/TokenMapper.js");
9541
- let Validator = class Validator extends SchemaValidator_1.SchemaValidator {
9765
+ let Validator = class Validator extends common_1.SchemaValidator {
9542
9766
  constructor(schemaRepository) {
9543
9767
  super(schemaRepository.getSchema("CreateTokenForFileRequest"));
9544
9768
  }
9545
9769
  };
9546
9770
  Validator = __decorate([
9547
9771
  __param(0, typescript_ioc_1.Inject),
9548
- __metadata("design:paramtypes", [SchemaRepository_1.SchemaRepository])
9772
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
9549
9773
  ], Validator);
9550
9774
  let CreateTokenForFileUseCase = class CreateTokenForFileUseCase extends common_1.UseCase {
9551
9775
  constructor(fileController, tokenController, accountController, validator) {
@@ -9619,16 +9843,14 @@ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/
9619
9843
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9620
9844
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9621
9845
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9622
- const SchemaRepository_1 = __webpack_require__(/*! ../../common/SchemaRepository */ "./dist/useCases/common/SchemaRepository.js");
9623
- const SchemaValidator_1 = __webpack_require__(/*! ../../common/SchemaValidator */ "./dist/useCases/common/SchemaValidator.js");
9624
- let Validator = class Validator extends SchemaValidator_1.SchemaValidator {
9846
+ let Validator = class Validator extends common_1.SchemaValidator {
9625
9847
  constructor(schemaRepository) {
9626
9848
  super(schemaRepository.getSchema("CreateTokenQrCodeForFileRequest"));
9627
9849
  }
9628
9850
  };
9629
9851
  Validator = __decorate([
9630
9852
  __param(0, typescript_ioc_1.Inject),
9631
- __metadata("design:paramtypes", [SchemaRepository_1.SchemaRepository])
9853
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
9632
9854
  ], Validator);
9633
9855
  let CreateTokenQrCodeForFileUseCase = class CreateTokenQrCodeForFileUseCase extends common_1.UseCase {
9634
9856
  constructor(fileController, tokenController, validator) {
@@ -9694,17 +9916,15 @@ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/
9694
9916
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9695
9917
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9696
9918
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9697
- const SchemaRepository_1 = __webpack_require__(/*! ../../common/SchemaRepository */ "./dist/useCases/common/SchemaRepository.js");
9698
- const SchemaValidator_1 = __webpack_require__(/*! ../../common/SchemaValidator */ "./dist/useCases/common/SchemaValidator.js");
9699
9919
  const FileMapper_1 = __webpack_require__(/*! ./FileMapper */ "./dist/useCases/transport/files/FileMapper.js");
9700
- let Validator = class Validator extends SchemaValidator_1.SchemaValidator {
9920
+ let Validator = class Validator extends common_1.SchemaValidator {
9701
9921
  constructor(schemaRepository) {
9702
9922
  super(schemaRepository.getSchema("DownloadFileRequest"));
9703
9923
  }
9704
9924
  };
9705
9925
  Validator = __decorate([
9706
9926
  __param(0, typescript_ioc_1.Inject),
9707
- __metadata("design:paramtypes", [SchemaRepository_1.SchemaRepository])
9927
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
9708
9928
  ], Validator);
9709
9929
  let DownloadFileUseCase = class DownloadFileUseCase extends common_1.UseCase {
9710
9930
  constructor(fileController, validator) {
@@ -9813,17 +10033,15 @@ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/
9813
10033
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
9814
10034
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9815
10035
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9816
- const SchemaRepository_1 = __webpack_require__(/*! ../../common/SchemaRepository */ "./dist/useCases/common/SchemaRepository.js");
9817
- const SchemaValidator_1 = __webpack_require__(/*! ../../common/SchemaValidator */ "./dist/useCases/common/SchemaValidator.js");
9818
10036
  const FileMapper_1 = __webpack_require__(/*! ./FileMapper */ "./dist/useCases/transport/files/FileMapper.js");
9819
- let Validator = class Validator extends SchemaValidator_1.SchemaValidator {
10037
+ let Validator = class Validator extends common_1.SchemaValidator {
9820
10038
  constructor(schemaRepository) {
9821
10039
  super(schemaRepository.getSchema("GetFileRequest"));
9822
10040
  }
9823
10041
  };
9824
10042
  Validator = __decorate([
9825
10043
  __param(0, typescript_ioc_1.Inject),
9826
- __metadata("design:paramtypes", [SchemaRepository_1.SchemaRepository])
10044
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
9827
10045
  ], Validator);
9828
10046
  let GetFileUseCase = class GetFileUseCase extends common_1.UseCase {
9829
10047
  constructor(fileController, validator) {
@@ -9958,45 +10176,44 @@ exports.LoadPeerFileUseCase = void 0;
9958
10176
  const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
9959
10177
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
9960
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");
9961
10180
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
9962
10181
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
9963
10182
  const FileMapper_1 = __webpack_require__(/*! ./FileMapper */ "./dist/useCases/transport/files/FileMapper.js");
9964
- class LoadPeerFileRequestValidator extends common_1.RuntimeValidator {
9965
- constructor() {
9966
- super();
9967
- this.validateIf((x) => x)
9968
- .fulfills((x) => this.isCreatePeerFileFromIdAndKeyRequest(x) || this.isCreatePeerFileFromTokenReferenceRequest(x))
9969
- .withFailureCode(common_1.RuntimeErrors.general.invalidPayload().code)
9970
- .withFailureMessage(common_1.RuntimeErrors.general.invalidPayload().message);
9971
- this.setupRulesForCreateFileFromIdAndKeyRequest();
9972
- this.setupRulesForCreateFileFromTokenReferenceRequest();
9973
- }
9974
- setupRulesForCreateFileFromIdAndKeyRequest() {
9975
- this.validateIfString((x) => x.id)
9976
- .fulfills(common_1.IdValidator.required(transport_1.BackboneIds.file))
9977
- .when(this.isCreatePeerFileFromIdAndKeyRequest);
9978
- this.validateIfString((x) => x.secretKey)
9979
- .isNotNull()
9980
- .when(this.isCreatePeerFileFromIdAndKeyRequest);
9981
- }
9982
- setupRulesForCreateFileFromTokenReferenceRequest() {
9983
- this.validateIfString((x) => x.reference)
9984
- .isNotNull()
9985
- .fulfills(this.isTokenReference)
9986
- .when(this.isCreatePeerFileFromTokenReferenceRequest);
9987
- }
9988
- isTokenReference(tokenReference) {
9989
- // "TOK" as Base64
9990
- const tokInBase64 = "VE9L";
9991
- return tokenReference.startsWith(tokInBase64);
9992
- }
9993
- isCreatePeerFileFromIdAndKeyRequest(x) {
9994
- 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");
9995
10194
  }
9996
- isCreatePeerFileFromTokenReferenceRequest(x) {
9997
- return !!x.reference;
10195
+ validate(input) {
10196
+ let validationResult = this.schema.validate(input);
10197
+ if (validationResult.isValid) {
10198
+ return new fluent_ts_validator_1.ValidationResult();
10199
+ }
10200
+ // any-of in combination with missing properties is a bit weird
10201
+ // when { reference: null | undefined } is passed, it ignores reference
10202
+ // and treats it like a LoadPeerFileViaSecret.
10203
+ // That's why we validate with the specific schema afterwards
10204
+ if (isLoadPeerFileViaReference(input)) {
10205
+ validationResult = this.loadViaReferenceSchema.validate(input);
10206
+ }
10207
+ else if (isLoadPeerFileViaSecret(input)) {
10208
+ validationResult = this.loadViaSecretSchema.validate(input);
10209
+ }
10210
+ return this.convertValidationResult(validationResult);
9998
10211
  }
9999
- }
10212
+ };
10213
+ Validator = __decorate([
10214
+ __param(0, typescript_ioc_1.Inject),
10215
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
10216
+ ], Validator);
10000
10217
  let LoadPeerFileUseCase = class LoadPeerFileUseCase extends common_1.UseCase {
10001
10218
  constructor(fileController, tokenController, accountController, validator) {
10002
10219
  super(validator);
@@ -10006,11 +10223,11 @@ let LoadPeerFileUseCase = class LoadPeerFileUseCase extends common_1.UseCase {
10006
10223
  }
10007
10224
  async executeInternal(request) {
10008
10225
  let createdFile;
10009
- if (request.id && request.secretKey) {
10226
+ if (isLoadPeerFileViaSecret(request)) {
10010
10227
  const key = await crypto_1.CryptoSecretKey.fromBase64(request.secretKey);
10011
10228
  createdFile = await this.loadFile(transport_1.CoreId.from(request.id), key);
10012
10229
  }
10013
- else if (request.reference) {
10230
+ else if (isLoadPeerFileViaReference(request)) {
10014
10231
  createdFile = await this.createFileFromTokenReferenceRequest(request.reference);
10015
10232
  }
10016
10233
  else {
@@ -10043,7 +10260,7 @@ LoadPeerFileUseCase = __decorate([
10043
10260
  __metadata("design:paramtypes", [transport_1.FileController,
10044
10261
  transport_1.TokenController,
10045
10262
  transport_1.AccountController,
10046
- LoadPeerFileRequestValidator])
10263
+ Validator])
10047
10264
  ], LoadPeerFileUseCase);
10048
10265
  exports.LoadPeerFileUseCase = LoadPeerFileUseCase;
10049
10266
  //# sourceMappingURL=LoadPeerFile.js.map
@@ -10747,11 +10964,12 @@ class SendMessageRequestValidator extends common_1.RuntimeValidator {
10747
10964
  }
10748
10965
  }
10749
10966
  let SendMessageUseCase = class SendMessageUseCase extends common_1.UseCase {
10750
- constructor(messageController, fileController, accountController, eventBus, validator) {
10967
+ constructor(messageController, fileController, accountController, identityController, eventBus, validator) {
10751
10968
  super(validator);
10752
10969
  this.messageController = messageController;
10753
10970
  this.fileController = fileController;
10754
10971
  this.accountController = accountController;
10972
+ this.identityController = identityController;
10755
10973
  this.eventBus = eventBus;
10756
10974
  }
10757
10975
  async executeInternal(request) {
@@ -10765,7 +10983,7 @@ let SendMessageUseCase = class SendMessageUseCase extends common_1.UseCase {
10765
10983
  attachments: transformAttachmentsResult.value
10766
10984
  });
10767
10985
  const messageDTO = MessageMapper_1.MessageMapper.toMessageDTO(result);
10768
- this.eventBus.publish(new events_1.MessageSentEvent(messageDTO));
10986
+ this.eventBus.publish(new events_1.MessageSentEvent(this.identityController.identity.address.toString(), messageDTO));
10769
10987
  await this.accountController.syncDatawallet();
10770
10988
  return ts_utils_1.Result.ok(MessageMapper_1.MessageMapper.toMessageDTO(result));
10771
10989
  }
@@ -10790,9 +11008,11 @@ SendMessageUseCase = __decorate([
10790
11008
  __param(2, typescript_ioc_1.Inject),
10791
11009
  __param(3, typescript_ioc_1.Inject),
10792
11010
  __param(4, typescript_ioc_1.Inject),
11011
+ __param(5, typescript_ioc_1.Inject),
10793
11012
  __metadata("design:paramtypes", [transport_1.MessageController,
10794
11013
  transport_1.FileController,
10795
11014
  transport_1.AccountController,
11015
+ transport_1.IdentityController,
10796
11016
  ts_utils_1.EventBus,
10797
11017
  SendMessageRequestValidator])
10798
11018
  ], SendMessageUseCase);
@@ -11400,10 +11620,11 @@ class AcceptRelationshipChangeRequestValidator extends common_1.RuntimeValidator
11400
11620
  }
11401
11621
  }
11402
11622
  let AcceptRelationshipChangeUseCase = class AcceptRelationshipChangeUseCase extends common_1.UseCase {
11403
- constructor(relationshipsController, accountController, eventBus, validator) {
11623
+ constructor(relationshipsController, accountController, identityController, eventBus, validator) {
11404
11624
  super(validator);
11405
11625
  this.relationshipsController = relationshipsController;
11406
11626
  this.accountController = accountController;
11627
+ this.identityController = identityController;
11407
11628
  this.eventBus = eventBus;
11408
11629
  }
11409
11630
  async executeInternal(request) {
@@ -11420,7 +11641,7 @@ let AcceptRelationshipChangeUseCase = class AcceptRelationshipChangeUseCase exte
11420
11641
  }
11421
11642
  const updatedRelationship = await this.relationshipsController.acceptChange(change, request.content);
11422
11643
  const relationshipDTO = RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(updatedRelationship);
11423
- this.eventBus.publish(new events_1.RelationshipChangedEvent(relationshipDTO));
11644
+ this.eventBus.publish(new events_1.RelationshipChangedEvent(this.identityController.identity.address.toString(), relationshipDTO));
11424
11645
  await this.accountController.syncDatawallet();
11425
11646
  return ts_utils_1.Result.ok(relationshipDTO);
11426
11647
  }
@@ -11430,8 +11651,10 @@ AcceptRelationshipChangeUseCase = __decorate([
11430
11651
  __param(1, typescript_ioc_1.Inject),
11431
11652
  __param(2, typescript_ioc_1.Inject),
11432
11653
  __param(3, typescript_ioc_1.Inject),
11654
+ __param(4, typescript_ioc_1.Inject),
11433
11655
  __metadata("design:paramtypes", [transport_1.RelationshipsController,
11434
11656
  transport_1.AccountController,
11657
+ transport_1.IdentityController,
11435
11658
  ts_utils_1.EventBus,
11436
11659
  AcceptRelationshipChangeRequestValidator])
11437
11660
  ], AcceptRelationshipChangeUseCase);
@@ -11476,11 +11699,12 @@ class CreateRelationshipRequestValidator extends common_1.RuntimeValidator {
11476
11699
  }
11477
11700
  }
11478
11701
  let CreateRelationshipUseCase = class CreateRelationshipUseCase extends common_1.UseCase {
11479
- constructor(relationshipsController, relationshipTemplateController, accountController, eventBus, validator) {
11702
+ constructor(relationshipsController, relationshipTemplateController, accountController, identityController, eventBus, validator) {
11480
11703
  super(validator);
11481
11704
  this.relationshipsController = relationshipsController;
11482
11705
  this.relationshipTemplateController = relationshipTemplateController;
11483
11706
  this.accountController = accountController;
11707
+ this.identityController = identityController;
11484
11708
  this.eventBus = eventBus;
11485
11709
  }
11486
11710
  async executeInternal(request) {
@@ -11493,7 +11717,7 @@ let CreateRelationshipUseCase = class CreateRelationshipUseCase extends common_1
11493
11717
  content: request.content
11494
11718
  });
11495
11719
  const relationshipDTO = RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(relationship);
11496
- this.eventBus.publish(new events_1.RelationshipChangedEvent(relationshipDTO));
11720
+ this.eventBus.publish(new events_1.RelationshipChangedEvent(this.identityController.identity.address.toString(), relationshipDTO));
11497
11721
  await this.accountController.syncDatawallet();
11498
11722
  return ts_utils_1.Result.ok(relationshipDTO);
11499
11723
  }
@@ -11504,9 +11728,11 @@ CreateRelationshipUseCase = __decorate([
11504
11728
  __param(2, typescript_ioc_1.Inject),
11505
11729
  __param(3, typescript_ioc_1.Inject),
11506
11730
  __param(4, typescript_ioc_1.Inject),
11731
+ __param(5, typescript_ioc_1.Inject),
11507
11732
  __metadata("design:paramtypes", [transport_1.RelationshipsController,
11508
11733
  transport_1.RelationshipTemplateController,
11509
11734
  transport_1.AccountController,
11735
+ transport_1.IdentityController,
11510
11736
  ts_utils_1.EventBus,
11511
11737
  CreateRelationshipRequestValidator])
11512
11738
  ], CreateRelationshipUseCase);
@@ -11787,10 +12013,11 @@ class RejectRelationshipChangeRequestValidator extends common_1.RuntimeValidator
11787
12013
  }
11788
12014
  }
11789
12015
  let RejectRelationshipChangeUseCase = class RejectRelationshipChangeUseCase extends common_1.UseCase {
11790
- constructor(relationshipsController, accountController, eventBus, validator) {
12016
+ constructor(relationshipsController, accountController, identityController, eventBus, validator) {
11791
12017
  super(validator);
11792
12018
  this.relationshipsController = relationshipsController;
11793
12019
  this.accountController = accountController;
12020
+ this.identityController = identityController;
11794
12021
  this.eventBus = eventBus;
11795
12022
  }
11796
12023
  async executeInternal(request) {
@@ -11807,7 +12034,7 @@ let RejectRelationshipChangeUseCase = class RejectRelationshipChangeUseCase exte
11807
12034
  }
11808
12035
  const updatedRelationship = await this.relationshipsController.rejectChange(change, request.content);
11809
12036
  const relationshipDTO = RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(updatedRelationship);
11810
- this.eventBus.publish(new events_1.RelationshipChangedEvent(relationshipDTO));
12037
+ this.eventBus.publish(new events_1.RelationshipChangedEvent(this.identityController.identity.address.toString(), relationshipDTO));
11811
12038
  await this.accountController.syncDatawallet();
11812
12039
  return ts_utils_1.Result.ok(relationshipDTO);
11813
12040
  }
@@ -11817,8 +12044,10 @@ RejectRelationshipChangeUseCase = __decorate([
11817
12044
  __param(1, typescript_ioc_1.Inject),
11818
12045
  __param(2, typescript_ioc_1.Inject),
11819
12046
  __param(3, typescript_ioc_1.Inject),
12047
+ __param(4, typescript_ioc_1.Inject),
11820
12048
  __metadata("design:paramtypes", [transport_1.RelationshipsController,
11821
12049
  transport_1.AccountController,
12050
+ transport_1.IdentityController,
11822
12051
  ts_utils_1.EventBus,
11823
12052
  RejectRelationshipChangeRequestValidator])
11824
12053
  ], RejectRelationshipChangeUseCase);
@@ -11926,11 +12155,12 @@ class RevokeRelationshipChangeRequestValidator extends common_1.RuntimeValidator
11926
12155
  }
11927
12156
  }
11928
12157
  let RevokeRelationshipChangeUseCase = class RevokeRelationshipChangeUseCase extends common_1.UseCase {
11929
- constructor(relationshipsController, accountController, eventBus, validator) {
12158
+ constructor(relationshipsController, accountController, eventBus, identityController, validator) {
11930
12159
  super(validator);
11931
12160
  this.relationshipsController = relationshipsController;
11932
12161
  this.accountController = accountController;
11933
12162
  this.eventBus = eventBus;
12163
+ this.identityController = identityController;
11934
12164
  }
11935
12165
  async executeInternal(request) {
11936
12166
  const relationship = await this.relationshipsController.getRelationship(transport_1.CoreId.from(request.relationshipId));
@@ -11946,7 +12176,7 @@ let RevokeRelationshipChangeUseCase = class RevokeRelationshipChangeUseCase exte
11946
12176
  }
11947
12177
  const updatedRelationship = await this.relationshipsController.revokeChange(change, request.content);
11948
12178
  const relationshipDTO = RelationshipMapper_1.RelationshipMapper.toRelationshipDTO(updatedRelationship);
11949
- this.eventBus.publish(new events_1.RelationshipChangedEvent(relationshipDTO));
12179
+ this.eventBus.publish(new events_1.RelationshipChangedEvent(this.identityController.identity.address.toString(), relationshipDTO));
11950
12180
  await this.accountController.syncDatawallet();
11951
12181
  return ts_utils_1.Result.ok(relationshipDTO);
11952
12182
  }
@@ -11956,9 +12186,11 @@ RevokeRelationshipChangeUseCase = __decorate([
11956
12186
  __param(1, typescript_ioc_1.Inject),
11957
12187
  __param(2, typescript_ioc_1.Inject),
11958
12188
  __param(3, typescript_ioc_1.Inject),
12189
+ __param(4, typescript_ioc_1.Inject),
11959
12190
  __metadata("design:paramtypes", [transport_1.RelationshipsController,
11960
12191
  transport_1.AccountController,
11961
12192
  ts_utils_1.EventBus,
12193
+ transport_1.IdentityController,
11962
12194
  RevokeRelationshipChangeRequestValidator])
11963
12195
  ], RevokeRelationshipChangeUseCase);
11964
12196
  exports.RevokeRelationshipChangeUseCase = RevokeRelationshipChangeUseCase;
@@ -13133,6 +13365,291 @@ exports.sleep = sleep;
13133
13365
 
13134
13366
  /***/ }),
13135
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
+
13136
13653
  /***/ "./node_modules/ajv-formats/dist/formats.js":
13137
13654
  /*!**************************************************!*\
13138
13655
  !*** ./node_modules/ajv-formats/dist/formats.js ***!
@@ -29992,8 +30509,7 @@ var Duration = /*#__PURE__*/function () {
29992
30509
 
29993
30510
  var i = Math.trunc(own);
29994
30511
  built[k] = i;
29995
- accumulated[k] = own - i; // we'd like to absorb these fractions in another unit
29996
- // 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
29997
30513
 
29998
30514
  for (var down in vals) {
29999
30515
  if (orderedUnits$1.indexOf(down) > orderedUnits$1.indexOf(k)) {
@@ -31754,14 +32270,19 @@ function dateTimeFromMatches(matches) {
31754
32270
  }
31755
32271
  };
31756
32272
 
31757
- var zone;
32273
+ var zone = null;
32274
+ var specificOffset;
31758
32275
 
31759
- if (!isUndefined(matches.Z)) {
31760
- zone = new FixedOffsetZone(matches.Z);
31761
- } else if (!isUndefined(matches.z)) {
32276
+ if (!isUndefined(matches.z)) {
31762
32277
  zone = IANAZone.create(matches.z);
31763
- } else {
31764
- zone = null;
32278
+ }
32279
+
32280
+ if (!isUndefined(matches.Z)) {
32281
+ if (!zone) {
32282
+ zone = new FixedOffsetZone(matches.Z);
32283
+ }
32284
+
32285
+ specificOffset = matches.Z;
31765
32286
  }
31766
32287
 
31767
32288
  if (!isUndefined(matches.q)) {
@@ -31793,7 +32314,7 @@ function dateTimeFromMatches(matches) {
31793
32314
 
31794
32315
  return r;
31795
32316
  }, {});
31796
- return [vals, zone];
32317
+ return [vals, zone, specificOffset];
31797
32318
  }
31798
32319
 
31799
32320
  var dummyDateTimeCache = null;
@@ -31865,9 +32386,10 @@ function explainFromTokens(locale, input, format) {
31865
32386
  _match = match(input, regex, handlers),
31866
32387
  rawMatches = _match[0],
31867
32388
  matches = _match[1],
31868
- _ref6 = matches ? dateTimeFromMatches(matches) : [null, null],
32389
+ _ref6 = matches ? dateTimeFromMatches(matches) : [null, null, undefined],
31869
32390
  result = _ref6[0],
31870
- zone = _ref6[1];
32391
+ zone = _ref6[1],
32392
+ specificOffset = _ref6[2];
31871
32393
 
31872
32394
  if (hasOwnProperty(matches, "a") && hasOwnProperty(matches, "H")) {
31873
32395
  throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format");
@@ -31880,7 +32402,8 @@ function explainFromTokens(locale, input, format) {
31880
32402
  rawMatches: rawMatches,
31881
32403
  matches: matches,
31882
32404
  result: result,
31883
- zone: zone
32405
+ zone: zone,
32406
+ specificOffset: specificOffset
31884
32407
  };
31885
32408
  }
31886
32409
  }
@@ -31888,9 +32411,10 @@ function parseFromTokens(locale, input, format) {
31888
32411
  var _explainFromTokens = explainFromTokens(locale, input, format),
31889
32412
  result = _explainFromTokens.result,
31890
32413
  zone = _explainFromTokens.zone,
32414
+ specificOffset = _explainFromTokens.specificOffset,
31891
32415
  invalidReason = _explainFromTokens.invalidReason;
31892
32416
 
31893
- return [result, zone, invalidReason];
32417
+ return [result, zone, specificOffset, invalidReason];
31894
32418
  }
31895
32419
 
31896
32420
  var nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],
@@ -32178,14 +32702,15 @@ function adjustTime(inst, dur) {
32178
32702
  // by handling the zone options
32179
32703
 
32180
32704
 
32181
- function parseDataToDateTime(parsed, parsedZone, opts, format, text) {
32705
+ function parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {
32182
32706
  var setZone = opts.setZone,
32183
32707
  zone = opts.zone;
32184
32708
 
32185
32709
  if (parsed && Object.keys(parsed).length !== 0) {
32186
32710
  var interpretationZone = parsedZone || zone,
32187
32711
  inst = DateTime.fromObject(parsed, _extends({}, opts, {
32188
- zone: interpretationZone
32712
+ zone: interpretationZone,
32713
+ specificOffset: specificOffset
32189
32714
  }));
32190
32715
  return setZone ? inst : inst.setZone(zone);
32191
32716
  } else {
@@ -32730,7 +33255,7 @@ var DateTime = /*#__PURE__*/function () {
32730
33255
  }
32731
33256
 
32732
33257
  var tsNow = Settings.now(),
32733
- offsetProvis = zoneToUse.offset(tsNow),
33258
+ offsetProvis = !isUndefined(opts.specificOffset) ? opts.specificOffset : zoneToUse.offset(tsNow),
32734
33259
  normalized = normalizeObject(obj, normalizeUnit),
32735
33260
  containsOrdinal = !isUndefined(normalized.ordinal),
32736
33261
  containsGregorYear = !isUndefined(normalized.year),
@@ -32934,12 +33459,13 @@ var DateTime = /*#__PURE__*/function () {
32934
33459
  _parseFromTokens = parseFromTokens(localeToUse, text, fmt),
32935
33460
  vals = _parseFromTokens[0],
32936
33461
  parsedZone = _parseFromTokens[1],
32937
- invalid = _parseFromTokens[2];
33462
+ specificOffset = _parseFromTokens[2],
33463
+ invalid = _parseFromTokens[3];
32938
33464
 
32939
33465
  if (invalid) {
32940
33466
  return DateTime.invalid(invalid);
32941
33467
  } else {
32942
- return parseDataToDateTime(vals, parsedZone, opts, "format " + fmt, text);
33468
+ return parseDataToDateTime(vals, parsedZone, opts, "format " + fmt, text, specificOffset);
32943
33469
  }
32944
33470
  }
32945
33471
  /**
@@ -34577,7 +35103,7 @@ function friendlyDateTime(dateTimeish) {
34577
35103
  }
34578
35104
  }
34579
35105
 
34580
- var VERSION = "2.1.1";
35106
+ var VERSION = "2.2.0";
34581
35107
 
34582
35108
  exports.DateTime = DateTime;
34583
35109
  exports.Duration = Duration;