@nmshd/runtime 6.10.0 → 6.12.0

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.
@@ -1,13 +1,17 @@
1
1
  import { Result } from "@js-soft/ts-utils";
2
2
  import { DevicesController, TokenController } from "@nmshd/transport";
3
3
  import { TokenDTO } from "../../../types";
4
- import { DeviceIdString, ISO8601DateTimeString, SchemaRepository, SchemaValidator, UseCase } from "../../common";
4
+ import { DeviceIdString, ISO8601DateTimeString, SchemaRepository, TokenAndTemplateCreationValidator, UseCase } from "../../common";
5
5
  export interface CreateDeviceOnboardingTokenRequest {
6
6
  id: DeviceIdString;
7
7
  expiresAt?: ISO8601DateTimeString;
8
8
  profileName?: string;
9
+ passwordProtection?: {
10
+ password: string;
11
+ passwordIsPin?: true;
12
+ };
9
13
  }
10
- declare class Validator extends SchemaValidator<CreateDeviceOnboardingTokenRequest> {
14
+ declare class Validator extends TokenAndTemplateCreationValidator<CreateDeviceOnboardingTokenRequest> {
11
15
  constructor(schemaRepository: SchemaRepository);
12
16
  }
13
17
  export declare class CreateDeviceOnboardingTokenUseCase extends UseCase<CreateDeviceOnboardingTokenRequest, TokenDTO> {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateDeviceOnboardingToken.d.ts","sourceRoot":"","sources":["../../../../src/useCases/transport/devices/CreateDeviceOnboardingToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAkC,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEtG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGjH,MAAM,WAAW,kCAAkC;IAC/C,EAAE,EAAE,cAAc,CAAC;IACnB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,cAAM,SAAU,SAAQ,eAAe,CAAC,kCAAkC,CAAC;gBAC5C,gBAAgB,EAAE,gBAAgB;CAGhE;AAED,qBAAa,kCAAmC,SAAQ,OAAO,CAAC,kCAAkC,EAAE,QAAQ,CAAC;IAE7F,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADf,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,eAAe,EACjD,SAAS,EAAE,SAAS;cAKhB,eAAe,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;CAa1G"}
1
+ {"version":3,"file":"CreateDeviceOnboardingToken.d.ts","sourceRoot":"","sources":["../../../../src/useCases/transport/devices/CreateDeviceOnboardingToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAwE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE5I,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,iCAAiC,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGnI,MAAM,WAAW,kCAAkC;IAC/C,EAAE,EAAE,cAAc,CAAC;IACnB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,IAAI,CAAC;KACxB,CAAC;CACL;AAED,cAAM,SAAU,SAAQ,iCAAiC,CAAC,kCAAkC,CAAC;gBAC9D,gBAAgB,EAAE,gBAAgB;CAGhE;AAED,qBAAa,kCAAmC,SAAQ,OAAO,CAAC,kCAAkC,EAAE,QAAQ,CAAC;IAE7F,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADf,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,eAAe,EACjD,SAAS,EAAE,SAAS;cAKhB,eAAe,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;CAc1G"}
@@ -19,7 +19,7 @@ const transport_1 = require("@nmshd/transport");
19
19
  const typescript_ioc_1 = require("@nmshd/typescript-ioc");
20
20
  const common_1 = require("../../common");
21
21
  const TokenMapper_1 = require("../tokens/TokenMapper");
22
- let Validator = class Validator extends common_1.SchemaValidator {
22
+ let Validator = class Validator extends common_1.TokenAndTemplateCreationValidator {
23
23
  constructor(schemaRepository) {
24
24
  super(schemaRepository.getSchema("CreateDeviceOnboardingTokenRequest"));
25
25
  }
@@ -41,7 +41,8 @@ let CreateDeviceOnboardingTokenUseCase = class CreateDeviceOnboardingTokenUseCas
41
41
  const token = await this.tokenController.sendToken({
42
42
  content: tokenContent,
43
43
  expiresAt: expiresAt,
44
- ephemeral: true
44
+ ephemeral: true,
45
+ passwordProtection: transport_1.PasswordProtectionCreationParameters.create(request.passwordProtection)
45
46
  });
46
47
  return ts_utils_1.Result.ok(TokenMapper_1.TokenMapper.toTokenDTO(token, true));
47
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CreateDeviceOnboardingToken.js","sourceRoot":"","sources":["../../../../src/useCases/transport/devices/CreateDeviceOnboardingToken.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAA2C;AAC3C,kDAAqD;AACrD,gDAAsG;AACtG,0DAA+C;AAE/C,yCAAiH;AACjH,uDAAoD;AAQpD,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,wBAAmD;IACvE,YAA2B,gBAAkC;QACzD,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC5E,CAAC;CACJ,CAAA;AAJK,SAAS;IACS,WAAA,uBAAM,CAAA;qCAAmB,yBAAgB;GAD3D,SAAS,CAId;AAED,IAAa,kCAAkC,GAA/C,MAAa,kCAAmC,SAAQ,gBAAqD;IACzG,YAC6B,iBAAoC,EACpC,eAAgC,EACjD,SAAoB;QAE5B,KAAK,CAAC,SAAS,CAAC,CAAC;QAJQ,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,oBAAe,GAAf,eAAe,CAAiB;IAI7D,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAA2C;QACvE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,mBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAChH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,qBAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAE5G,MAAM,YAAY,GAAG,0CAA8B,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YAC/C,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,OAAO,iBAAM,CAAC,EAAE,CAAC,yBAAW,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;CACJ,CAAA;AAtBY,gFAAkC;6CAAlC,kCAAkC;IAEtC,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;qCAFqC,6BAAiB;QACnB,2BAAe;QACtC,SAAS;GAJvB,kCAAkC,CAsB9C"}
1
+ {"version":3,"file":"CreateDeviceOnboardingToken.js","sourceRoot":"","sources":["../../../../src/useCases/transport/devices/CreateDeviceOnboardingToken.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAA2C;AAC3C,kDAAqD;AACrD,gDAA4I;AAC5I,0DAA+C;AAE/C,yCAAmI;AACnI,uDAAoD;AAYpD,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,0CAAqE;IACzF,YAA2B,gBAAkC;QACzD,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC5E,CAAC;CACJ,CAAA;AAJK,SAAS;IACS,WAAA,uBAAM,CAAA;qCAAmB,yBAAgB;GAD3D,SAAS,CAId;AAED,IAAa,kCAAkC,GAA/C,MAAa,kCAAmC,SAAQ,gBAAqD;IACzG,YAC6B,iBAAoC,EACpC,eAAgC,EACjD,SAAoB;QAE5B,KAAK,CAAC,SAAS,CAAC,CAAC;QAJQ,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,oBAAe,GAAf,eAAe,CAAiB;IAI7D,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAA2C;QACvE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,mBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAChH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,qBAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAE5G,MAAM,YAAY,GAAG,0CAA8B,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YAC/C,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,IAAI;YACf,kBAAkB,EAAE,gDAAoC,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;SAC9F,CAAC,CAAC;QAEH,OAAO,iBAAM,CAAC,EAAE,CAAC,yBAAW,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;CACJ,CAAA;AAvBY,gFAAkC;6CAAlC,kCAAkC;IAEtC,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;qCAFqC,6BAAiB;QACnB,2BAAe;QACtC,SAAS;GAJvB,kCAAkC,CAuB9C"}
@@ -1,6 +1,6 @@
1
1
  import { Result } from "@js-soft/ts-utils";
2
2
  import { OutgoingRequestsController } from "@nmshd/consumption";
3
- import { AccountController, FileController, MessageController } from "@nmshd/transport";
3
+ import { AccountController, FileController, MessageController, RelationshipsController } from "@nmshd/transport";
4
4
  import { MessageDTO } from "../../../types";
5
5
  import { AddressString, FileIdString, SchemaRepository, SchemaValidator, UseCase } from "../../common";
6
6
  export interface SendMessageRequest {
@@ -15,13 +15,16 @@ declare class Validator extends SchemaValidator<SendMessageRequest> {
15
15
  constructor(schemaRepository: SchemaRepository);
16
16
  }
17
17
  export declare class SendMessageUseCase extends UseCase<SendMessageRequest, MessageDTO> {
18
+ private readonly relationshipsController;
18
19
  private readonly messageController;
19
20
  private readonly fileController;
20
21
  private readonly accountController;
21
22
  private readonly outgoingRequestsController;
22
- constructor(messageController: MessageController, fileController: FileController, accountController: AccountController, outgoingRequestsController: OutgoingRequestsController, validator: Validator);
23
+ constructor(relationshipsController: RelationshipsController, messageController: MessageController, fileController: FileController, accountController: AccountController, outgoingRequestsController: OutgoingRequestsController, validator: Validator);
23
24
  protected executeInternal(request: SendMessageRequest): Promise<Result<MessageDTO>>;
24
- private validateMessageContent;
25
+ private validateMessage;
26
+ private validateMessageRecipients;
27
+ private validateRequestAsMessageContent;
25
28
  private transformAttachments;
26
29
  }
27
30
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"SendMessage.d.ts","sourceRoot":"","sources":["../../../../src/useCases/transport/messages/SendMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAQ,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG9F,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAiB,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGtH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,GAAG,CAAC;IAEb,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,cAAM,SAAU,SAAQ,eAAe,CAAC,kBAAkB,CAAC;gBAC5B,gBAAgB,EAAE,gBAAgB;CAGhE;AAED,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC;IAE/D,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAH1B,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,0BAA0B,EAAE,0BAA0B,EACvE,SAAS,EAAE,SAAS;cAKhB,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAoB3E,sBAAsB;YAkCtB,oBAAoB;CAkBrC"}
1
+ {"version":3,"file":"SendMessage.d.ts","sourceRoot":"","sources":["../../../../src/useCases/transport/messages/SendMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAQ,cAAc,EAAE,iBAAiB,EAAsB,uBAAuB,EAA2C,MAAM,kBAAkB,CAAC;AAGpL,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAiB,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGtH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,GAAG,CAAC;IAEb,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,cAAM,SAAU,SAAQ,eAAe,CAAC,kBAAkB,CAAC;gBAC5B,gBAAgB,EAAE,gBAAgB;CAGhE;AAED,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC;IAE/D,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAJ1B,uBAAuB,EAAE,uBAAuB,EAChD,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,0BAA0B,EAAE,0BAA0B,EACvE,SAAS,EAAE,SAAS;cAKhB,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAoB3E,eAAe;YA2Bf,yBAAyB;YAgDzB,+BAA+B;YAe/B,oBAAoB;CAkBrC"}
@@ -36,15 +36,16 @@ Validator = __decorate([
36
36
  __metadata("design:paramtypes", [common_1.SchemaRepository])
37
37
  ], Validator);
38
38
  let SendMessageUseCase = class SendMessageUseCase extends common_1.UseCase {
39
- constructor(messageController, fileController, accountController, outgoingRequestsController, validator) {
39
+ constructor(relationshipsController, messageController, fileController, accountController, outgoingRequestsController, validator) {
40
40
  super(validator);
41
+ this.relationshipsController = relationshipsController;
41
42
  this.messageController = messageController;
42
43
  this.fileController = fileController;
43
44
  this.accountController = accountController;
44
45
  this.outgoingRequestsController = outgoingRequestsController;
45
46
  }
46
47
  async executeInternal(request) {
47
- const validationError = await this.validateMessageContent(request.content, request.recipients);
48
+ const validationError = await this.validateMessage(request.content, request.recipients);
48
49
  if (validationError)
49
50
  return ts_utils_1.Result.fail(validationError);
50
51
  const transformAttachmentsResult = await this.transformAttachments(request.attachments);
@@ -59,7 +60,7 @@ let SendMessageUseCase = class SendMessageUseCase extends common_1.UseCase {
59
60
  await this.accountController.syncDatawallet();
60
61
  return ts_utils_1.Result.ok(MessageMapper_1.MessageMapper.toMessageDTO(result));
61
62
  }
62
- async validateMessageContent(content, recipients) {
63
+ async validateMessage(content, recipients) {
63
64
  const transformedContent = ts_serval_1.Serializable.fromUnknown(content);
64
65
  if (!(transformedContent instanceof content_1.Mail ||
65
66
  transformedContent instanceof content_1.ResponseWrapper ||
@@ -68,19 +69,63 @@ let SendMessageUseCase = class SendMessageUseCase extends common_1.UseCase {
68
69
  transformedContent instanceof content_1.Request)) {
69
70
  return common_1.RuntimeErrors.general.invalidPropertyValue("The content of a Message must either be a Mail, Request, ResponseWrapper, Notification or an ArbitraryMessageContent.");
70
71
  }
71
- if (!(transformedContent instanceof content_1.Request))
72
- return;
73
- if (!transformedContent.id)
72
+ const recipientsValidationError = await this.validateMessageRecipients(transformedContent, recipients);
73
+ if (recipientsValidationError)
74
+ return recipientsValidationError;
75
+ if (transformedContent instanceof content_1.Request) {
76
+ const requestValidationError = await this.validateRequestAsMessageContent(transformedContent, core_types_1.CoreAddress.from(recipients[0]));
77
+ if (requestValidationError)
78
+ return requestValidationError;
79
+ }
80
+ return;
81
+ }
82
+ async validateMessageRecipients(content, recipients) {
83
+ if (content instanceof content_1.Request && recipients.length !== 1) {
84
+ return common_1.RuntimeErrors.general.invalidPropertyValue("Only one recipient is allowed for sending Requests.");
85
+ }
86
+ const peersWithNoActiveRelationship = [];
87
+ const peersWithNeitherActiveNorTerminatedRelationship = [];
88
+ const peersInDeletion = [];
89
+ const deletedPeers = [];
90
+ for (const recipient of recipients) {
91
+ const relationship = await this.relationshipsController.getRelationshipToIdentity(core_types_1.CoreAddress.from(recipient));
92
+ if (!relationship || relationship.status !== transport_1.RelationshipStatus.Active) {
93
+ peersWithNoActiveRelationship.push(recipient);
94
+ if (!relationship || relationship.status !== transport_1.RelationshipStatus.Terminated) {
95
+ peersWithNeitherActiveNorTerminatedRelationship.push(recipient);
96
+ }
97
+ continue;
98
+ }
99
+ if (relationship.peerDeletionInfo?.deletionStatus === transport_1.PeerDeletionStatus.ToBeDeleted) {
100
+ peersInDeletion.push(recipient);
101
+ continue;
102
+ }
103
+ if (relationship.peerDeletionInfo?.deletionStatus === transport_1.PeerDeletionStatus.Deleted) {
104
+ deletedPeers.push(recipient);
105
+ }
106
+ }
107
+ if (!(content instanceof content_1.Notification)) {
108
+ if (peersWithNoActiveRelationship.length > 0)
109
+ return common_1.RuntimeErrors.messages.hasNoActiveRelationship(peersWithNoActiveRelationship);
110
+ if (peersInDeletion.length > 0)
111
+ return common_1.RuntimeErrors.messages.peerIsInDeletion(peersInDeletion);
112
+ }
113
+ if (peersWithNeitherActiveNorTerminatedRelationship.length > 0) {
114
+ return transport_1.TransportCoreErrors.messages.hasNeitherActiveNorTerminatedRelationship(peersWithNeitherActiveNorTerminatedRelationship);
115
+ }
116
+ if (deletedPeers.length > 0)
117
+ return transport_1.TransportCoreErrors.messages.peerIsDeleted(deletedPeers);
118
+ return;
119
+ }
120
+ async validateRequestAsMessageContent(request, recipient) {
121
+ if (!request.id)
74
122
  return common_1.RuntimeErrors.general.invalidPropertyValue("The Request must have an id.");
75
- const localRequest = await this.outgoingRequestsController.getOutgoingRequest(transformedContent.id);
123
+ const localRequest = await this.outgoingRequestsController.getOutgoingRequest(request.id);
76
124
  if (!localRequest)
77
125
  return common_1.RuntimeErrors.general.recordNotFound(content_1.Request);
78
- if (!lodash_1.default.isEqual(transformedContent.toJSON(), localRequest.content.toJSON())) {
126
+ if (!lodash_1.default.isEqual(request.toJSON(), localRequest.content.toJSON())) {
79
127
  return common_1.RuntimeErrors.general.invalidPropertyValue("The sent Request must have the same content as the LocalRequest.");
80
128
  }
81
- if (recipients.length > 1)
82
- return common_1.RuntimeErrors.general.invalidPropertyValue("Only one recipient is allowed for sending Requests.");
83
- const recipient = core_types_1.CoreAddress.from(recipients[0]);
84
129
  if (!recipient.equals(localRequest.peer))
85
130
  return common_1.RuntimeErrors.general.invalidPropertyValue("The recipient does not match the Request's peer.");
86
131
  return;
@@ -107,7 +152,9 @@ exports.SendMessageUseCase = SendMessageUseCase = __decorate([
107
152
  __param(2, typescript_ioc_1.Inject),
108
153
  __param(3, typescript_ioc_1.Inject),
109
154
  __param(4, typescript_ioc_1.Inject),
110
- __metadata("design:paramtypes", [transport_1.MessageController,
155
+ __param(5, typescript_ioc_1.Inject),
156
+ __metadata("design:paramtypes", [transport_1.RelationshipsController,
157
+ transport_1.MessageController,
111
158
  transport_1.FileController,
112
159
  transport_1.AccountController,
113
160
  consumption_1.OutgoingRequestsController,
@@ -1 +1 @@
1
- {"version":3,"file":"SendMessage.js","sourceRoot":"","sources":["../../../../src/useCases/transport/messages/SendMessage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SendMessage.js","sourceRoot":"","sources":["../../../../src/useCases/transport/messages/SendMessage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,gDAA6D;AAC7D,oDAAgE;AAChE,4CAAuG;AACvG,kDAAmE;AACnE,gDAAoL;AACpL,0DAA+C;AAC/C,oDAAuB;AAEvB,yCAAsH;AACtH,mDAAgD;AAYhD,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,wBAAmC;IACvD,YAA2B,gBAAkC;QACzD,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC5D,CAAC;CACJ,CAAA;AAJK,SAAS;IACS,WAAA,uBAAM,CAAA;qCAAmB,yBAAgB;GAD3D,SAAS,CAId;AAED,IAAa,kBAAkB,GAA/B,MAAa,kBAAmB,SAAQ,gBAAuC;IAC3E,YAC6B,uBAAgD,EAChD,iBAAoC,EACpC,cAA8B,EAC9B,iBAAoC,EACpC,0BAAsD,EACvE,SAAoB;QAE5B,KAAK,CAAC,SAAS,CAAC,CAAC;QAPQ,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,+BAA0B,GAA1B,0BAA0B,CAA4B;IAInF,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAA2B;QACvD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACxF,IAAI,eAAe;YAAE,OAAO,iBAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEzD,MAAM,0BAA0B,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACxF,IAAI,0BAA0B,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO,iBAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;YACpD,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,0BAA0B,CAAC,KAAK;SAChD,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;QAE9C,OAAO,iBAAM,CAAC,EAAE,CAAC,6BAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAY,EAAE,UAAoB;QAC5D,MAAM,kBAAkB,GAAG,wBAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7D,IACI,CAAC,CACG,kBAAkB,YAAY,cAAI;YAClC,kBAAkB,YAAY,yBAAe;YAC7C,kBAAkB,YAAY,sBAAY;YAC1C,kBAAkB,YAAY,iCAAuB;YACrD,kBAAkB,YAAY,iBAAO,CACxC,EACH,CAAC;YACC,OAAO,sBAAa,CAAC,OAAO,CAAC,oBAAoB,CAC7C,uHAAuH,CAC1H,CAAC;QACN,CAAC;QAED,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QACvG,IAAI,yBAAyB;YAAE,OAAO,yBAAyB,CAAC;QAEhE,IAAI,kBAAkB,YAAY,iBAAO,EAAE,CAAC;YACxC,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,kBAAkB,EAAE,wBAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/H,IAAI,sBAAsB;gBAAE,OAAO,sBAAsB,CAAC;QAC9D,CAAC;QAED,OAAO;IACX,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,OAAqB,EAAE,UAAoB;QAC/E,IAAI,OAAO,YAAY,iBAAO,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO,sBAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,qDAAqD,CAAC,CAAC;QAC7G,CAAC;QAED,MAAM,6BAA6B,GAAa,EAAE,CAAC;QACnD,MAAM,+CAA+C,GAAa,EAAE,CAAC;QACrE,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,wBAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAE/G,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,8BAAkB,CAAC,MAAM,EAAE,CAAC;gBACrE,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAE9C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,8BAAkB,CAAC,UAAU,EAAE,CAAC;oBACzE,+CAA+C,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpE,CAAC;gBAED,SAAS;YACb,CAAC;YAED,IAAI,YAAY,CAAC,gBAAgB,EAAE,cAAc,KAAK,8BAAkB,CAAC,WAAW,EAAE,CAAC;gBACnF,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChC,SAAS;YACb,CAAC;YAED,IAAI,YAAY,CAAC,gBAAgB,EAAE,cAAc,KAAK,8BAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/E,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,OAAO,YAAY,sBAAY,CAAC,EAAE,CAAC;YACrC,IAAI,6BAA6B,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,sBAAa,CAAC,QAAQ,CAAC,uBAAuB,CAAC,6BAA6B,CAAC,CAAC;YAEnI,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,sBAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACpG,CAAC;QAED,IAAI,+CAA+C,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,OAAO,+BAAmB,CAAC,QAAQ,CAAC,yCAAyC,CAAC,+CAA+C,CAAC,CAAC;QACnI,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,+BAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAE7F,OAAO;IACX,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAC,OAAgB,EAAE,SAAsB;QAClF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,sBAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;QAEnG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY;YAAE,OAAO,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,iBAAO,CAAC,CAAC;QAExE,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC9D,OAAO,sBAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,kEAAkE,CAAC,CAAC;QAC1H,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;YAAE,OAAO,sBAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,kDAAkD,CAAC,CAAC;QAEhJ,OAAO;IACX,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,cAAyB;QACxD,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,iBAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,KAAK,MAAM,YAAY,IAAI,cAAc,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAE1E,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,gBAAI,CAAC,CAAC,CAAC;YACnE,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,iBAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACJ,CAAA;AA5IY,gDAAkB;6BAAlB,kBAAkB;IAEtB,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;qCAL2C,mCAAuB;QAC7B,6BAAiB;QACpB,0BAAc;QACX,6BAAiB;QACR,wCAA0B;QAC5D,SAAS;GAPvB,kBAAkB,CA4I9B"}
package/package.json CHANGED
@@ -64,12 +64,12 @@
64
64
  "@js-soft/logging-abstractions": "^1.0.1",
65
65
  "@js-soft/ts-serval": "2.0.11",
66
66
  "@js-soft/ts-utils": "^2.3.3",
67
- "@nmshd/consumption": "6.10.0",
68
- "@nmshd/content": "6.10.0",
69
- "@nmshd/core-types": "6.10.0",
67
+ "@nmshd/consumption": "6.12.0",
68
+ "@nmshd/content": "6.12.0",
69
+ "@nmshd/core-types": "6.12.0",
70
70
  "@nmshd/crypto": "2.1.0",
71
71
  "@nmshd/iql": "^1.0.2",
72
- "@nmshd/transport": "6.10.0",
72
+ "@nmshd/transport": "6.12.0",
73
73
  "@nmshd/typescript-ioc": "3.2.4",
74
74
  "ajv": "^8.17.1",
75
75
  "ajv-errors": "^3.0.0",
@@ -96,5 +96,5 @@
96
96
  "access": "public",
97
97
  "provenance": true
98
98
  },
99
- "version": "6.10.0"
99
+ "version": "6.12.0"
100
100
  }