@wireapp/core 17.21.1 → 17.22.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [17.22.0](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.21.1...@wireapp/core@17.22.0) (2021-11-01)
7
+
8
+
9
+ ### Features
10
+
11
+ * **core:** Add federated client mismatch handlers ([#4166](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/issues/4166)) ([642bb54](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/commit/642bb54c9647812dd7f5b6ee807cfcda8779aa8f))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [17.21.1](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.21.0...@wireapp/core@17.21.1) (2021-10-28)
7
18
 
8
19
 
package/package.json CHANGED
@@ -69,6 +69,6 @@
69
69
  "test:project": "yarn dist && yarn test",
70
70
  "test:node": "nyc jasmine --config=jasmine.json"
71
71
  },
72
- "version": "17.21.1",
73
- "gitHead": "c7404791b702e11ba33678b3fdeaf206e20960de"
72
+ "version": "17.22.0",
73
+ "gitHead": "bc93d826b68c2ca0b38ff8ac9405f019233db5b0"
74
74
  }
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import type { APIClient } from '@wireapp/api-client';
3
- import { Conversation, DefaultConversationRoleName, MutedStatus, QualifiedUserClients, UserClients } from '@wireapp/api-client/src/conversation/';
3
+ import { MessageSendingStatus, Conversation, DefaultConversationRoleName, MutedStatus, QualifiedUserClients, UserClients, ClientMismatch } from '@wireapp/api-client/src/conversation/';
4
4
  import type { ConversationMemberLeaveEvent } from '@wireapp/api-client/src/event/';
5
5
  import type { QualifiedId, UserPreKeyBundleMap } from '@wireapp/api-client/src/user/';
6
6
  import { GenericMessage } from '@wireapp/protocol-messaging';
@@ -12,6 +12,7 @@ import type { ClearConversationMessage, DeleteMessage, HideMessage, OtrMessage }
12
12
  export interface MessageSendingCallbacks {
13
13
  onStart?: (message: GenericMessage) => void;
14
14
  onSuccess?: (message: GenericMessage, sentTime?: string) => void;
15
+ onClientMismatch?: (status: ClientMismatch | MessageSendingStatus) => Promise<boolean | undefined>;
15
16
  }
16
17
  export declare class ConversationService {
17
18
  private readonly apiClient;
@@ -22,20 +23,32 @@ export declare class ConversationService {
22
23
  private readonly messageService;
23
24
  constructor(apiClient: APIClient, cryptographyService: CryptographyService, assetService: AssetService);
24
25
  private createEphemeral;
26
+ private getConversationQualifiedMembers;
27
+ /**
28
+ * Will generate a prekey bundle for specific users.
29
+ * If a QualifiedId array is given the bundle will contain all the clients from those users fetched from the server.
30
+ * If a QualifiedUserClients is provided then only the clients in the payload will be targeted (which could generate a ClientMismatch when sending messages)
31
+ *
32
+ * @param {QualifiedId[]|QualifiedUserClients} userIds - Targeted users.
33
+ * @returns {Promise<QualifiedUserPreKeyBundleMap}
34
+ */
25
35
  private getQualifiedPreKeyBundle;
26
36
  getPreKeyBundleMap(conversationId: string, userIds?: string[] | UserClients): Promise<UserPreKeyBundleMap>;
27
37
  private getSelfConversation;
28
38
  private sendExternalGenericMessage;
39
+ private getQualifiedRecipientsForConversation;
29
40
  /**
30
41
  * Sends a message to a federated environment.
31
42
  *
32
- * @param sendingClientId - The clientId from which the message is sent
33
- * @param conversationId - The conversation in which to send the message
34
- * @param conversationDomain - The domain where the conversation lives
35
- * @param genericMessage - The payload of the message to send
36
- * @param userIds? - can be either a QualifiedId[] or QualfiedUserClients. The type has some effect on the behavior of the method.
43
+ * @param sendingClientId The clientId from which the message is sent
44
+ * @param conversationId The conversation in which to send the message
45
+ * @param conversationDomain The domain where the conversation lives
46
+ * @param genericMessage The payload of the message to send
47
+ * @param options.userIds? can be either a QualifiedId[] or QualfiedUserClients or undefined. The type has some effect on the behavior of the method.
48
+ * When given undefined the method will fetch both the members of the conversations and their devices. No ClientMismatch can happen in that case
37
49
  * When given a QualifiedId[] the method will fetch the freshest list of devices for those users (since they are not given by the consumer). As a consequence no ClientMismatch error will trigger and we will ignore missing clients when sending
38
50
  * When given a QualifiedUserClients the method will only send to the clients listed in the userIds. This could lead to ClientMismatch (since the given list of devices might not be the freshest one and new clients could have been created)
51
+ * @param options.onClientMismatch? Will be called whenever there is a clientmismatch returned from the server. Needs to be combined with a userIds of type QualifiedUserClients
39
52
  * @return Resolves with the message sending status from backend
40
53
  */
41
54
  private sendFederatedGenericMessage;
@@ -80,6 +93,7 @@ export declare class ConversationService {
80
93
  * @param params.sendAsProtobuf?
81
94
  * @param params.conversationDomain? The domain the conversation lives on (if given with QualifiedId[] or QualfiedUserClients in the userIds params, will send the message to the federated endpoint)
82
95
  * @param params.callbacks? Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent.
96
+ * @param [callbacks.onClientMismatch] Will be called when a mismatch happens. Returning `false` from the callback will stop the sending attempt
83
97
  * @return resolves with the sent message
84
98
  */
85
99
  send<T extends OtrMessage = OtrMessage>({ payloadBundle, userIds, sendAsProtobuf, conversationDomain, callbacks, }: {
@@ -68,35 +68,49 @@ class ConversationService {
68
68
  });
69
69
  return genericMessage;
70
70
  }
71
- async getQualifiedPreKeyBundle(conversationId, conversationDomain, userIds) {
72
- let members = [];
71
+ async getConversationQualifiedMembers(conversationId) {
72
+ const conversation = await this.apiClient.conversation.api.getConversation(conversationId, true);
73
+ /*
74
+ * If you are sending a message to a conversation, you have to include
75
+ * yourself in the list of users if you want to sync a message also to your
76
+ * other clients.
77
+ */
78
+ return (conversation.members.others
79
+ .filter(member => !!member.qualified_id)
80
+ .map(member => member.qualified_id)
81
+ // TODO(Federation): Use 'domain' from 'conversation.members.self' when backend has it implemented
82
+ .concat({ domain: this.apiClient.context.domain, id: conversation.members.self.id }));
83
+ }
84
+ /**
85
+ * Will generate a prekey bundle for specific users.
86
+ * If a QualifiedId array is given the bundle will contain all the clients from those users fetched from the server.
87
+ * If a QualifiedUserClients is provided then only the clients in the payload will be targeted (which could generate a ClientMismatch when sending messages)
88
+ *
89
+ * @param {QualifiedId[]|QualifiedUserClients} userIds - Targeted users.
90
+ * @returns {Promise<QualifiedUserPreKeyBundleMap}
91
+ */
92
+ async getQualifiedPreKeyBundle(userIds) {
93
+ let targets = [];
73
94
  if (userIds) {
74
95
  if ((0, TypePredicateUtil_1.isQualifiedIdArray)(userIds)) {
75
- members = userIds;
96
+ targets = userIds.map(id => ({ id }));
76
97
  }
77
98
  else {
78
- members = Object.entries(userIds).reduce((accumulator, [domain, userClients]) => {
79
- accumulator.push(...Object.keys(userClients).map(userId => ({ domain, id: userId })));
99
+ targets = Object.entries(userIds).reduce((accumulator, [domain, userClients]) => {
100
+ for (const userId in userClients) {
101
+ accumulator.push({ id: { id: userId, domain }, clients: userClients[userId] });
102
+ }
80
103
  return accumulator;
81
104
  }, []);
82
105
  }
83
106
  }
84
- if (!members.length) {
85
- const conversation = await this.apiClient.conversation.api.getConversation({ id: conversationId, domain: conversationDomain }, true);
86
- /*
87
- * If you are sending a message to a conversation, you have to include
88
- * yourself in the list of users if you want to sync a message also to your
89
- * other clients.
90
- */
91
- members = conversation.members.others
92
- .filter(member => !!member.qualified_id)
93
- .map(member => member.qualified_id)
94
- // TODO(Federation): Use 'domain' from 'conversation.members.self' when backend has it implemented
95
- .concat({ domain: this.apiClient.context.domain, id: conversation.members.self.id });
96
- }
97
- const preKeys = await Promise.all(members.map(async (qualifiedUserId) => {
98
- const prekeyBundle = await this.apiClient.user.api.getUserPreKeys(qualifiedUserId);
99
- return { user: qualifiedUserId, clients: prekeyBundle.clients };
107
+ const preKeys = await Promise.all(targets.map(async ({ id: userId, clients }) => {
108
+ const prekeyBundle = await this.apiClient.user.api.getUserPreKeys(userId);
109
+ // We filter the clients that should not receive the message (if a QualifiedUserClients was given as parameter)
110
+ const userClients = clients
111
+ ? prekeyBundle.clients.filter(client => clients.includes(client.client))
112
+ : prekeyBundle.clients;
113
+ return { user: userId, clients: userClients };
100
114
  }));
101
115
  return preKeys.reduce((bundleMap, qualifiedPrekey) => {
102
116
  var _a, _b, _c;
@@ -164,32 +178,42 @@ class ConversationService {
164
178
  }
165
179
  return undefined;
166
180
  }
181
+ async getQualifiedRecipientsForConversation(conversationId, userIds) {
182
+ if ((0, TypePredicateUtil_1.isQualifiedUserClients)(userIds)) {
183
+ return userIds;
184
+ }
185
+ const recipientIds = userIds || (await this.getConversationQualifiedMembers(conversationId));
186
+ return this.getQualifiedPreKeyBundle(recipientIds);
187
+ }
167
188
  /**
168
189
  * Sends a message to a federated environment.
169
190
  *
170
- * @param sendingClientId - The clientId from which the message is sent
171
- * @param conversationId - The conversation in which to send the message
172
- * @param conversationDomain - The domain where the conversation lives
173
- * @param genericMessage - The payload of the message to send
174
- * @param userIds? - can be either a QualifiedId[] or QualfiedUserClients. The type has some effect on the behavior of the method.
191
+ * @param sendingClientId The clientId from which the message is sent
192
+ * @param conversationId The conversation in which to send the message
193
+ * @param conversationDomain The domain where the conversation lives
194
+ * @param genericMessage The payload of the message to send
195
+ * @param options.userIds? can be either a QualifiedId[] or QualfiedUserClients or undefined. The type has some effect on the behavior of the method.
196
+ * When given undefined the method will fetch both the members of the conversations and their devices. No ClientMismatch can happen in that case
175
197
  * When given a QualifiedId[] the method will fetch the freshest list of devices for those users (since they are not given by the consumer). As a consequence no ClientMismatch error will trigger and we will ignore missing clients when sending
176
198
  * When given a QualifiedUserClients the method will only send to the clients listed in the userIds. This could lead to ClientMismatch (since the given list of devices might not be the freshest one and new clients could have been created)
199
+ * @param options.onClientMismatch? Will be called whenever there is a clientmismatch returned from the server. Needs to be combined with a userIds of type QualifiedUserClients
177
200
  * @return Resolves with the message sending status from backend
178
201
  */
179
- async sendFederatedGenericMessage(sendingClientId, conversationId, conversationDomain, genericMessage, userIds) {
202
+ async sendFederatedGenericMessage(sendingClientId, conversationId, genericMessage, options = {}) {
180
203
  const plainTextArray = protocol_messaging_1.GenericMessage.encode(genericMessage).finish();
181
- const preKeyBundles = (0, TypePredicateUtil_1.isQualifiedUserClients)(userIds)
182
- ? userIds
183
- : await this.getQualifiedPreKeyBundle(conversationId, conversationDomain, userIds);
184
- const recipients = await this.cryptographyService.encryptQualified(plainTextArray, preKeyBundles);
185
- return this.messageService.sendFederatedOTRMessage(sendingClientId, conversationId, conversationDomain, recipients, plainTextArray, undefined, (0, TypePredicateUtil_1.isQualifiedUserClients)(userIds));
186
- }
187
- async sendGenericMessage(sendingClientId, conversationId, genericMessage, userIds, sendAsProtobuf, conversationDomain) {
188
- if (conversationDomain) {
204
+ const recipients = await this.getQualifiedRecipientsForConversation(conversationId, options.userIds);
205
+ return this.messageService.sendFederatedOTRMessage(sendingClientId, conversationId, recipients, plainTextArray, {
206
+ reportMissing: (0, TypePredicateUtil_1.isQualifiedUserClients)(options.userIds),
207
+ onClientMismatch: options.onClientMismatch,
208
+ });
209
+ }
210
+ async sendGenericMessage(sendingClientId, conversationId, genericMessage, options = {}) {
211
+ const { domain, userIds } = options;
212
+ if (domain) {
189
213
  if ((0, TypePredicateUtil_1.isStringArray)(userIds) || (0, TypePredicateUtil_1.isUserClients)(userIds)) {
190
214
  throw new Error('Invalid userIds option for sending');
191
215
  }
192
- return this.sendFederatedGenericMessage(this.apiClient.validatedClientId, conversationId, conversationDomain, genericMessage, userIds);
216
+ return this.sendFederatedGenericMessage(this.apiClient.validatedClientId, { id: conversationId, domain }, genericMessage, { userIds, onClientMismatch: options.onClientMismatch });
193
217
  }
194
218
  if ((0, TypePredicateUtil_1.isQualifiedIdArray)(userIds) || (0, TypePredicateUtil_1.isQualifiedUserClients)(userIds)) {
195
219
  throw new Error('Invalid userIds option for sending');
@@ -198,10 +222,10 @@ class ConversationService {
198
222
  const preKeyBundles = await this.getPreKeyBundleMap(conversationId, userIds);
199
223
  if (this.shouldSendAsExternal(plainTextArray, preKeyBundles)) {
200
224
  const encryptedAsset = await AssetCryptography.encryptAsset({ plainText: plainTextArray });
201
- return this.sendExternalGenericMessage(this.apiClient.validatedClientId, conversationId, encryptedAsset, preKeyBundles, sendAsProtobuf);
225
+ return this.sendExternalGenericMessage(this.apiClient.validatedClientId, conversationId, encryptedAsset, preKeyBundles, options.sendAsProtobuf);
202
226
  }
203
227
  const recipients = await this.cryptographyService.encrypt(plainTextArray, preKeyBundles);
204
- return sendAsProtobuf
228
+ return options.sendAsProtobuf
205
229
  ? this.messageService.sendOTRProtobufMessage(sendingClientId, recipients, conversationId, plainTextArray)
206
230
  : this.messageService.sendOTRMessage(sendingClientId, recipients, conversationId, plainTextArray);
207
231
  }
@@ -420,7 +444,10 @@ class ConversationService {
420
444
  messageId,
421
445
  });
422
446
  const { id: selfConversationId } = await this.getSelfConversation();
423
- await this.sendGenericMessage(this.apiClient.validatedClientId, selfConversationId, genericMessage, undefined, sendAsProtobuf, conversationDomain);
447
+ await this.sendGenericMessage(this.apiClient.validatedClientId, selfConversationId, genericMessage, {
448
+ domain: conversationDomain,
449
+ sendAsProtobuf,
450
+ });
424
451
  return {
425
452
  content,
426
453
  conversation: conversationId,
@@ -444,7 +471,10 @@ class ConversationService {
444
471
  messageId,
445
472
  });
446
473
  const { id: selfConversationId } = await this.getSelfConversation();
447
- await this.sendGenericMessage(this.apiClient.validatedClientId, selfConversationId, genericMessage, undefined, sendAsProtobuf, conversationDomain);
474
+ await this.sendGenericMessage(this.apiClient.validatedClientId, selfConversationId, genericMessage, {
475
+ sendAsProtobuf,
476
+ domain: conversationDomain,
477
+ });
448
478
  return {
449
479
  content,
450
480
  conversation: conversationId,
@@ -468,7 +498,11 @@ class ConversationService {
468
498
  messageId,
469
499
  });
470
500
  (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onStart) === null || _a === void 0 ? void 0 : _a.call(callbacks, genericMessage);
471
- const response = await this.sendGenericMessage(this.apiClient.validatedClientId, conversationId, genericMessage, userIds, sendAsProtobuf, conversationDomain);
501
+ const response = await this.sendGenericMessage(this.apiClient.validatedClientId, conversationId, genericMessage, {
502
+ userIds,
503
+ sendAsProtobuf,
504
+ domain: conversationDomain,
505
+ });
472
506
  (_b = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onSuccess) === null || _b === void 0 ? void 0 : _b.call(callbacks, genericMessage, response === null || response === void 0 ? void 0 : response.time);
473
507
  return {
474
508
  content,
@@ -561,6 +595,7 @@ class ConversationService {
561
595
  * @param params.sendAsProtobuf?
562
596
  * @param params.conversationDomain? The domain the conversation lives on (if given with QualifiedId[] or QualfiedUserClients in the userIds params, will send the message to the federated endpoint)
563
597
  * @param params.callbacks? Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent.
598
+ * @param [callbacks.onClientMismatch] Will be called when a mismatch happens. Returning `false` from the callback will stop the sending attempt
564
599
  * @return resolves with the sent message
565
600
  */
566
601
  async send({ payloadBundle, userIds, sendAsProtobuf, conversationDomain, callbacks, }) {
@@ -623,7 +658,7 @@ class ConversationService {
623
658
  throw new Error(`No send method implemented for "${payloadBundle['type']}".`);
624
659
  }
625
660
  (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onStart) === null || _a === void 0 ? void 0 : _a.call(callbacks, genericMessage);
626
- const response = await this.sendGenericMessage(this.apiClient.validatedClientId, payloadBundle.conversation, genericMessage, userIds, sendAsProtobuf, conversationDomain);
661
+ const response = await this.sendGenericMessage(this.apiClient.validatedClientId, payloadBundle.conversation, genericMessage, { userIds, sendAsProtobuf, domain: conversationDomain, onClientMismatch: callbacks === null || callbacks === void 0 ? void 0 : callbacks.onClientMismatch });
627
662
  (_b = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onSuccess) === null || _b === void 0 ? void 0 : _b.call(callbacks, genericMessage, response === null || response === void 0 ? void 0 : response.time);
628
663
  return Object.assign(Object.assign({}, payloadBundle), { content: processedContent || payloadBundle.content, messageTimer: ((_c = genericMessage.ephemeral) === null || _c === void 0 ? void 0 : _c.expireAfterMillis) || 0, state: conversation_2.PayloadBundleState.OUTGOING_SENT });
629
664
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationService.js","sourceRoot":"","sources":["ConversationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConversationService.js","sourceRoot":"","sources":["ConversationService.ts"],"names":[],"mappings":"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"}