@wireapp/core 17.24.2 → 17.27.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,50 @@
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.27.0](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.26.1...@wireapp/core@17.27.0) (2021-11-11)
7
+
8
+
9
+ ### Features
10
+
11
+ * **core:** Do not call onSuccess when message sending errored ([#4178](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/issues/4178)) ([28579aa](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/commit/28579aaa111dad2ed67729efed30ad3da7d68b9d))
12
+
13
+
14
+
15
+
16
+
17
+ ## [17.26.1](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.26.0...@wireapp/core@17.26.1) (2021-11-10)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **core:** More permissive types for onStart callback ([3c6b342](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/commit/3c6b3426f5bb0d37f2dfd5c492faeea295a9e2b2))
23
+
24
+
25
+
26
+
27
+
28
+ # [17.26.0](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.25.0...@wireapp/core@17.26.0) (2021-11-10)
29
+
30
+
31
+ ### Features
32
+
33
+ * **core:** Add mismatch hook for non-federated messages ([#4175](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/issues/4175)) ([3b24631](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/commit/3b2463146871e523f69f86a60a02ca980ef67321))
34
+
35
+
36
+
37
+
38
+
39
+ # [17.25.0](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.24.2...@wireapp/core@17.25.0) (2021-11-10)
40
+
41
+
42
+ ### Features
43
+
44
+ * **core:** Add a mechanism to cancel message sending ([#4172](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/issues/4172)) ([ad0f27c](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/commit/ad0f27c2d827c3e062a5774ac17379179c64413d))
45
+
46
+
47
+
48
+
49
+
6
50
  ## [17.24.2](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.24.1...@wireapp/core@17.24.2) (2021-11-10)
7
51
 
8
52
 
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.24.2",
73
- "gitHead": "04b1d16a4bc629fd70280f7d2fd56012ce56ce9d"
72
+ "version": "17.27.0",
73
+ "gitHead": "fcea72a7f65528cd4e479487af3903d7e8a1f6aa"
74
74
  }
@@ -10,9 +10,16 @@ import type { CryptographyService } from '../cryptography/';
10
10
  import { MessageBuilder } from './message/MessageBuilder';
11
11
  import type { ClearConversationMessage, DeleteMessage, HideMessage, OtrMessage } from './message/OtrMessage';
12
12
  export interface MessageSendingCallbacks {
13
- onStart?: (message: GenericMessage) => void;
13
+ onStart?: (message: GenericMessage) => void | boolean | Promise<boolean>;
14
14
  onSuccess?: (message: GenericMessage, sentTime?: string) => void;
15
- onClientMismatch?: (status: ClientMismatch | MessageSendingStatus) => Promise<boolean | undefined>;
15
+ /**
16
+ * Called whenever there is a clientmismatch returned from the server. Will also indicate the sending status of the message (if it was already sent or not)
17
+ *
18
+ * @param status The mismatch info
19
+ * @param wasSent Indicate whether the message was already sent or if it can still be canceled
20
+ * @return
21
+ */
22
+ onClientMismatch?: (status: ClientMismatch | MessageSendingStatus, wasSent: boolean) => void | boolean | Promise<boolean>;
16
23
  }
17
24
  export declare class ConversationService {
18
25
  private readonly apiClient;
@@ -91,7 +98,8 @@ export declare class ConversationService {
91
98
  * @param params.sendAsProtobuf?
92
99
  * @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)
93
100
  * @param params.callbacks? Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent.
94
- * @param [callbacks.onClientMismatch] Will be called when a mismatch happens. Returning `false` from the callback will stop the sending attempt
101
+ * @param callbacks.onStart Will be called before a message is actually sent. Returning 'false' will prevent the message from being sent
102
+ * @param callbacks.onClientMismatch? Will be called when a mismatch happens. Returning `false` from the callback will stop the sending attempt
95
103
  * @return resolves with the sent message
96
104
  */
97
105
  send<T extends OtrMessage = OtrMessage>({ payloadBundle, userIds, sendAsProtobuf, conversationDomain, callbacks, }: {
@@ -106,4 +114,5 @@ export declare class ConversationService {
106
114
  setConversationMutedStatus(conversationId: string, status: MutedStatus, muteTimestamp: number | Date): Promise<void>;
107
115
  toggleArchiveConversation(conversationId: string, archived: boolean, archiveTimestamp?: number | Date): Promise<void>;
108
116
  setMemberConversationRole(conversationId: string, userId: string, conversationRole: DefaultConversationRoleName | string): Promise<void>;
117
+ private isClearFromMismatch;
109
118
  }
@@ -192,7 +192,7 @@ class ConversationService {
192
192
  return this.messageService.sendFederatedMessage(sendingClientId, recipients, plainText, {
193
193
  conversationId: { id: conversationId, domain },
194
194
  reportMissing: (0, TypePredicateUtil_1.isQualifiedUserClients)(options.userIds),
195
- onClientMismatch: options.onClientMismatch,
195
+ onClientMismatch: mismatch => { var _a; return (_a = options.onClientMismatch) === null || _a === void 0 ? void 0 : _a.call(options, mismatch, false); },
196
196
  });
197
197
  }
198
198
  if (!(0, TypePredicateUtil_1.isStringArray)(userIds) && !(0, TypePredicateUtil_1.isUserClients)(userIds)) {
@@ -203,7 +203,7 @@ class ConversationService {
203
203
  conversationId,
204
204
  sendAsProtobuf: options.sendAsProtobuf,
205
205
  reportMissing: (0, TypePredicateUtil_1.isUserClients)(options.userIds),
206
- onClientMismatch: options.onClientMismatch,
206
+ onClientMismatch: mistmatch => { var _a; return (_a = options.onClientMismatch) === null || _a === void 0 ? void 0 : _a.call(options, mistmatch, false); },
207
207
  });
208
208
  }
209
209
  generateButtonActionGenericMessage(payloadBundle) {
@@ -562,11 +562,12 @@ class ConversationService {
562
562
  * @param params.sendAsProtobuf?
563
563
  * @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)
564
564
  * @param params.callbacks? Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent.
565
- * @param [callbacks.onClientMismatch] Will be called when a mismatch happens. Returning `false` from the callback will stop the sending attempt
565
+ * @param callbacks.onStart Will be called before a message is actually sent. Returning 'false' will prevent the message from being sent
566
+ * @param callbacks.onClientMismatch? Will be called when a mismatch happens. Returning `false` from the callback will stop the sending attempt
566
567
  * @return resolves with the sent message
567
568
  */
568
569
  async send({ payloadBundle, userIds, sendAsProtobuf, conversationDomain, callbacks, }) {
569
- var _a, _b, _c;
570
+ var _a, _b, _c, _d;
570
571
  let genericMessage;
571
572
  let processedContent = undefined;
572
573
  switch (payloadBundle.type) {
@@ -624,10 +625,24 @@ class ConversationService {
624
625
  default:
625
626
  throw new Error(`No send method implemented for "${payloadBundle['type']}".`);
626
627
  }
627
- (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onStart) === null || _a === void 0 ? void 0 : _a.call(callbacks, genericMessage);
628
- 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 });
629
- (_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);
630
- 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 });
628
+ if ((await ((_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onStart) === null || _a === void 0 ? void 0 : _a.call(callbacks, genericMessage))) === false) {
629
+ // If the onStart call returns false, it means the consumer wants to cancel the message sending
630
+ return payloadBundle;
631
+ }
632
+ const response = await this.sendGenericMessage(this.apiClient.validatedClientId, payloadBundle.conversation, genericMessage, {
633
+ userIds,
634
+ sendAsProtobuf,
635
+ domain: conversationDomain,
636
+ onClientMismatch: callbacks === null || callbacks === void 0 ? void 0 : callbacks.onClientMismatch,
637
+ });
638
+ if (!response.errored) {
639
+ (_b = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onSuccess) === null || _b === void 0 ? void 0 : _b.call(callbacks, genericMessage, response.time);
640
+ if (!this.isClearFromMismatch(response)) {
641
+ // We warn the consumer that there is a mismatch that did not prevent message sending
642
+ (_c = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onClientMismatch) === null || _c === void 0 ? void 0 : _c.call(callbacks, response, true);
643
+ }
644
+ }
645
+ return Object.assign(Object.assign({}, payloadBundle), { content: processedContent || payloadBundle.content, messageTimer: ((_d = genericMessage.ephemeral) === null || _d === void 0 ? void 0 : _d.expireAfterMillis) || 0, state: conversation_2.PayloadBundleState.OUTGOING_SENT });
631
646
  }
632
647
  sendTypingStart(conversationId) {
633
648
  return this.apiClient.conversation.api.postTyping(conversationId, { status: data_1.CONVERSATION_TYPING.STARTED });
@@ -660,6 +675,13 @@ class ConversationService {
660
675
  conversation_role: conversationRole,
661
676
  });
662
677
  }
678
+ isClearFromMismatch(mismatch) {
679
+ const hasMissing = Object.keys(mismatch.missing || {}).length > 0;
680
+ const hasDeleted = Object.keys(mismatch.deleted || {}).length > 0;
681
+ const hasRedundant = Object.keys(mismatch.redundant || {}).length > 0;
682
+ const hasFailed = Object.keys(mismatch.failed_to_send || {}).length > 0;
683
+ return !hasMissing && !hasDeleted && !hasRedundant && !hasFailed;
684
+ }
663
685
  }
664
686
  exports.ConversationService = ConversationService;
665
687
  //# sourceMappingURL=ConversationService.js.map
@@ -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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"}
@@ -86,6 +86,39 @@ describe('ConversationService', () => {
86
86
  expect(callbacks.onSuccess).toHaveBeenCalledWith(jasmine.any(Object), sentTime);
87
87
  });
88
88
  });
89
+ it(`cancels message sending if onStart returns false`, async () => {
90
+ account['apiClient'].context = {
91
+ clientType: client_1.ClientType.NONE,
92
+ userId: PayloadHelper.getUUID(),
93
+ clientId: PayloadHelper.getUUID(),
94
+ };
95
+ const conversationService = account.service.conversation;
96
+ spyOn(conversationService, 'sendGenericMessage');
97
+ const message = Object.assign(Object.assign({}, baseMessage), { type: _1.PayloadBundleType.TEXT, content: { text: 'test' } });
98
+ const callbacks = { onStart: () => Promise.resolve(false), onSuccess: jasmine.createSpy() };
99
+ await conversationService.send({
100
+ callbacks,
101
+ payloadBundle: message,
102
+ });
103
+ expect(callbacks.onSuccess).not.toHaveBeenCalled();
104
+ expect(conversationService['sendGenericMessage']).not.toHaveBeenCalled();
105
+ });
106
+ it(`does not call onSuccess when message was canceled`, async () => {
107
+ account['apiClient'].context = {
108
+ clientType: client_1.ClientType.NONE,
109
+ userId: PayloadHelper.getUUID(),
110
+ clientId: PayloadHelper.getUUID(),
111
+ };
112
+ const conversationService = account.service.conversation;
113
+ spyOn(conversationService, 'sendGenericMessage').and.returnValue(Promise.resolve({ time: '', errored: true }));
114
+ const message = Object.assign(Object.assign({}, baseMessage), { type: _1.PayloadBundleType.TEXT, content: { text: 'test' } });
115
+ const callbacks = { onSuccess: jasmine.createSpy() };
116
+ await conversationService.send({
117
+ callbacks,
118
+ payloadBundle: message,
119
+ });
120
+ expect(callbacks.onSuccess).not.toHaveBeenCalled();
121
+ });
89
122
  });
90
123
  describe('"createText"', () => {
91
124
  it('adds link previews correctly', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationService.test.node.js","sourceRoot":"","sources":["ConversationService.test.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConversationService.test.node.js","sourceRoot":"","sources":["ConversationService.test.node.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,43 @@ describe('ConversationService', () => {
77
77
  expect(callbacks.onSuccess).toHaveBeenCalledWith(jasmine.any(Object), sentTime);
78
78
  });
79
79
  });
80
+
81
+ it(`cancels message sending if onStart returns false`, async () => {
82
+ account['apiClient'].context = {
83
+ clientType: ClientType.NONE,
84
+ userId: PayloadHelper.getUUID(),
85
+ clientId: PayloadHelper.getUUID(),
86
+ };
87
+ const conversationService = account.service!.conversation;
88
+ spyOn<any>(conversationService, 'sendGenericMessage');
89
+ const message: OtrMessage = {...baseMessage, type: PayloadBundleType.TEXT, content: {text: 'test'}};
90
+ const callbacks = {onStart: () => Promise.resolve(false), onSuccess: jasmine.createSpy()};
91
+ await conversationService.send({
92
+ callbacks,
93
+ payloadBundle: message,
94
+ });
95
+
96
+ expect(callbacks.onSuccess).not.toHaveBeenCalled();
97
+ expect(conversationService['sendGenericMessage']).not.toHaveBeenCalled();
98
+ });
99
+
100
+ it(`does not call onSuccess when message was canceled`, async () => {
101
+ account['apiClient'].context = {
102
+ clientType: ClientType.NONE,
103
+ userId: PayloadHelper.getUUID(),
104
+ clientId: PayloadHelper.getUUID(),
105
+ };
106
+ const conversationService = account.service!.conversation;
107
+ spyOn<any>(conversationService, 'sendGenericMessage').and.returnValue(Promise.resolve({time: '', errored: true}));
108
+ const message: OtrMessage = {...baseMessage, type: PayloadBundleType.TEXT, content: {text: 'test'}};
109
+ const callbacks = {onSuccess: jasmine.createSpy()};
110
+ await conversationService.send({
111
+ callbacks,
112
+ payloadBundle: message,
113
+ });
114
+
115
+ expect(callbacks.onSuccess).not.toHaveBeenCalled();
116
+ });
80
117
  });
81
118
 
82
119
  describe('"createText"', () => {
@@ -90,9 +90,19 @@ import type {
90
90
  } from './message/OtrMessage';
91
91
 
92
92
  export interface MessageSendingCallbacks {
93
- onStart?: (message: GenericMessage) => void;
93
+ onStart?: (message: GenericMessage) => void | boolean | Promise<boolean>;
94
94
  onSuccess?: (message: GenericMessage, sentTime?: string) => void;
95
- onClientMismatch?: (status: ClientMismatch | MessageSendingStatus) => Promise<boolean | undefined>;
95
+ /**
96
+ * Called whenever there is a clientmismatch returned from the server. Will also indicate the sending status of the message (if it was already sent or not)
97
+ *
98
+ * @param status The mismatch info
99
+ * @param wasSent Indicate whether the message was already sent or if it can still be canceled
100
+ * @return
101
+ */
102
+ onClientMismatch?: (
103
+ status: ClientMismatch | MessageSendingStatus,
104
+ wasSent: boolean,
105
+ ) => void | boolean | Promise<boolean>;
96
106
  }
97
107
 
98
108
  export class ConversationService {
@@ -270,9 +280,9 @@ export class ConversationService {
270
280
  domain?: string;
271
281
  userIds?: string[] | QualifiedId[] | UserClients | QualifiedUserClients;
272
282
  sendAsProtobuf?: boolean;
273
- onClientMismatch?: (mistmatch: ClientMismatch | MessageSendingStatus) => Promise<boolean | undefined>;
283
+ onClientMismatch?: MessageSendingCallbacks['onClientMismatch'];
274
284
  } = {},
275
- ): Promise<ClientMismatch | MessageSendingStatus | undefined> {
285
+ ) {
276
286
  const {domain, userIds} = options;
277
287
  const plainText = GenericMessage.encode(genericMessage).finish();
278
288
  if (domain) {
@@ -283,7 +293,7 @@ export class ConversationService {
283
293
  return this.messageService.sendFederatedMessage(sendingClientId, recipients, plainText, {
284
294
  conversationId: {id: conversationId, domain},
285
295
  reportMissing: isQualifiedUserClients(options.userIds), // we want to check mismatch in case the consumer gave an exact list of users/devices
286
- onClientMismatch: options.onClientMismatch,
296
+ onClientMismatch: mismatch => options.onClientMismatch?.(mismatch, false),
287
297
  });
288
298
  }
289
299
 
@@ -295,7 +305,7 @@ export class ConversationService {
295
305
  conversationId,
296
306
  sendAsProtobuf: options.sendAsProtobuf,
297
307
  reportMissing: isUserClients(options.userIds), // we want to check mismatch in case the consumer gave an exact list of users/devices
298
- onClientMismatch: options.onClientMismatch,
308
+ onClientMismatch: mistmatch => options.onClientMismatch?.(mistmatch, false),
299
309
  });
300
310
  }
301
311
 
@@ -762,7 +772,8 @@ export class ConversationService {
762
772
  * @param params.sendAsProtobuf?
763
773
  * @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)
764
774
  * @param params.callbacks? Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent.
765
- * @param [callbacks.onClientMismatch] Will be called when a mismatch happens. Returning `false` from the callback will stop the sending attempt
775
+ * @param callbacks.onStart Will be called before a message is actually sent. Returning 'false' will prevent the message from being sent
776
+ * @param callbacks.onClientMismatch? Will be called when a mismatch happens. Returning `false` from the callback will stop the sending attempt
766
777
  * @return resolves with the sent message
767
778
  */
768
779
  public async send<T extends OtrMessage = OtrMessage>({
@@ -839,14 +850,30 @@ export class ConversationService {
839
850
  throw new Error(`No send method implemented for "${payloadBundle['type']}".`);
840
851
  }
841
852
 
842
- callbacks?.onStart?.(genericMessage);
853
+ if ((await callbacks?.onStart?.(genericMessage)) === false) {
854
+ // If the onStart call returns false, it means the consumer wants to cancel the message sending
855
+ return payloadBundle;
856
+ }
857
+
843
858
  const response = await this.sendGenericMessage(
844
859
  this.apiClient.validatedClientId,
845
860
  payloadBundle.conversation,
846
861
  genericMessage,
847
- {userIds, sendAsProtobuf, domain: conversationDomain, onClientMismatch: callbacks?.onClientMismatch},
862
+ {
863
+ userIds,
864
+ sendAsProtobuf,
865
+ domain: conversationDomain,
866
+ onClientMismatch: callbacks?.onClientMismatch,
867
+ },
848
868
  );
849
- callbacks?.onSuccess?.(genericMessage, response?.time);
869
+
870
+ if (!response.errored) {
871
+ callbacks?.onSuccess?.(genericMessage, response.time);
872
+ if (!this.isClearFromMismatch(response)) {
873
+ // We warn the consumer that there is a mismatch that did not prevent message sending
874
+ callbacks?.onClientMismatch?.(response, true);
875
+ }
876
+ }
850
877
 
851
878
  return {
852
879
  ...payloadBundle,
@@ -907,4 +934,12 @@ export class ConversationService {
907
934
  conversation_role: conversationRole,
908
935
  });
909
936
  }
937
+
938
+ private isClearFromMismatch(mismatch: ClientMismatch | MessageSendingStatus): boolean {
939
+ const hasMissing = Object.keys(mismatch.missing || {}).length > 0;
940
+ const hasDeleted = Object.keys(mismatch.deleted || {}).length > 0;
941
+ const hasRedundant = Object.keys(mismatch.redundant || {}).length > 0;
942
+ const hasFailed = Object.keys((mismatch as MessageSendingStatus).failed_to_send || {}).length > 0;
943
+ return !hasMissing && !hasDeleted && !hasRedundant && !hasFailed;
944
+ }
910
945
  }
@@ -22,8 +22,10 @@ export declare class MessageService {
22
22
  conversationId?: string;
23
23
  reportMissing?: boolean;
24
24
  sendAsProtobuf?: boolean;
25
- onClientMismatch?: (mismatch: ClientMismatch) => Promise<boolean | undefined>;
26
- }): Promise<ClientMismatch>;
25
+ onClientMismatch?: (mismatch: ClientMismatch) => void | boolean | Promise<boolean>;
26
+ }): Promise<ClientMismatch & {
27
+ errored?: boolean;
28
+ }>;
27
29
  /**
28
30
  * Sends a message to a federated backend.
29
31
  *
@@ -40,8 +42,10 @@ export declare class MessageService {
40
42
  assetData?: Uint8Array;
41
43
  conversationId?: QualifiedId;
42
44
  reportMissing?: boolean;
43
- onClientMismatch?: (mismatch: MessageSendingStatus) => Promise<boolean | undefined>;
44
- }): Promise<MessageSendingStatus>;
45
+ onClientMismatch?: (mismatch: MessageSendingStatus) => void | boolean | Promise<boolean>;
46
+ }): Promise<MessageSendingStatus & {
47
+ errored?: boolean;
48
+ }>;
45
49
  private sendFederatedOtrMessage;
46
50
  private sendOTRMessage;
47
51
  private generateExternalPayload;
@@ -72,6 +72,10 @@ class MessageService {
72
72
  throw error;
73
73
  }
74
74
  const mismatch = error.response.data;
75
+ const shouldStopSending = options.onClientMismatch && (await options.onClientMismatch(mismatch)) === false;
76
+ if (shouldStopSending) {
77
+ return Object.assign(Object.assign({}, mismatch), { errored: true });
78
+ }
75
79
  const reEncryptedMessage = await this.reencryptAfterMismatch(mismatch, encryptedPayload, plainText);
76
80
  return send(reEncryptedMessage);
77
81
  }
@@ -101,9 +105,9 @@ class MessageService {
101
105
  throw error;
102
106
  }
103
107
  const mismatch = error.response.data;
104
- const shouldStopSending = options.onClientMismatch && !(await options.onClientMismatch(mismatch));
108
+ const shouldStopSending = options.onClientMismatch && (await options.onClientMismatch(mismatch)) === false;
105
109
  if (shouldStopSending) {
106
- return mismatch;
110
+ return Object.assign(Object.assign({}, mismatch), { errored: true });
107
111
  }
108
112
  const reEncryptedPayload = await this.reencryptAfterFederatedMismatch(mismatch, encryptedPayload, plainText);
109
113
  return send(reEncryptedPayload);
@@ -1 +1 @@
1
- {"version":3,"file":"MessageService.js","sourceRoot":"","sources":["MessageService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageService.js","sourceRoot":"","sources":["MessageService.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;AAEH,yDAA6D;AAE7D,6DAA2E;AAC3E,gDAAwB;AACxB,0EAAsE;AAWtE,yCAAkC;AAElC,sFAAuE;AACvE,qDAAuD;AAEvD,qDAAgD;AAChD,oEAA2D;AAC3D,0BAAsC;AACtC,uDAAkF;AAIlF,MAAa,cAAc;IACzB,YAA6B,SAAoB,EAAmB,mBAAwC;QAA/E,cAAS,GAAT,SAAS,CAAW;QAAmB,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAG,CAAC;IAEhH;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,WAAW,CACtB,eAAuB,EACvB,UAA6C,EAC7C,SAAqB,EACrB,UAKI,EAAE;QAEN,IAAI,gBAAgB,GAAG,SAAS,CAAC;QACjC,IAAI,UAAsB,CAAC;QAC3B,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;YACpD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACtE,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC;YACxC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;SACzC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAC9F,MAAM,IAAI,GAAG,CAAC,OAAkC,EAAE,EAAE;YAClD,OAAO,OAAO,CAAC,cAAc;gBAC3B,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,OAAO,kCAAM,OAAO,KAAE,SAAS,EAAE,UAAU,IAAE;gBAC5F,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,OAAO,kCAAM,OAAO,KAAE,SAAS,EAAE,UAAU,IAAE,CAAC;QACzF,CAAC,CAAC;QACF,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;gBACtC,MAAM,KAAK,CAAC;aACb;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAS,CAAC,IAAsB,CAAC;YACxD,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC;YAC3G,IAAI,iBAAiB,EAAE;gBACrB,uCAAW,QAAQ,KAAE,OAAO,EAAE,IAAI,IAAE;aACrC;YACD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;YACpG,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACjC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,oBAAoB,CAC/B,eAAuB,EACvB,UAA+D,EAC/D,SAAqB,EACrB,OAKC;QAED,MAAM,IAAI,GAAG,CAAC,OAA+B,EAAE,EAAE;YAC/C,OAAO,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAChG,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;gBACtC,MAAM,KAAK,CAAC;aACb;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAS,CAAC,IAA4B,CAAC;YAC9D,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC;YAC3G,IAAI,iBAAiB,EAAE;gBACrB,uCAAW,QAAQ,KAAE,OAAO,EAAE,IAAI,IAAE;aACrC;YACD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;YAC7G,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACjC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,eAAuB,EACvB,UAAkC,EAClC,OAAwF;QAExF,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CACzD,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE;YAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAyB,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE;gBACvG,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAA2B,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE;oBACvG,OAAO;wBACL,MAAM,EAAE;4BACN,MAAM,EAAE,cAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;yBACtC;wBACD,IAAI,EAAE,OAAO;qBACd,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,OAAO;oBACL,IAAI,EAAE;wBACJ,IAAI,EAAE,IAAA,wBAAW,EAAC,MAAM,CAAC;qBAC1B;oBACD,OAAO,EAAE,aAAa;iBACvB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAC,CAAC;QACxC,CAAC,CACF,CAAC;QAEF,MAAM,YAAY,GAAG,aAAW,CAAC,sBAAsB,CAAC,MAAM,CAAC;YAC7D,UAAU,EAAE,oBAAoB;YAChC,MAAM,EAAE;gBACN,MAAM,EAAE,cAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC;aAC7C;SACF,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;SACvC;QAED,IAAI,OAAO,CAAC,aAAa,EAAE;YACzB,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;SAC7B;aAAM;YACL,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;SAC7B;QAED,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC3B,4CAA4C;YAC5C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QAED,MAAM,EAAC,EAAE,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC,cAAc,CAAC;QAE5C,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,eAAuB,EACvB,UAAqC,EACrC,OAAmF;QAEnF,MAAM,OAAO,GAA0B;YACrC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAClF,UAAU,EAAE,kCAAmB,CAAC,8BAA8B,CAAC,UAAU,CAAC;YAC1E,MAAM,EAAE,eAAe;SACxB,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,cAAc;YAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;YACrG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAC5C,eAAe,EACf,OAAO,CAAC,cAAc,EACtB,OAAO,EACP,CAAC,OAAO,CAAC,aAAa,CACvB,CAAC;IACR,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,SAAqB;QACzD,MAAM,KAAK,GAAG,MAAM,IAAA,qCAAY,EAAC,EAAC,SAAS,EAAC,CAAC,CAAC;QAC9C,MAAM,EAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAC,GAAG,KAAK,CAAC;QAC7C,MAAM,SAAS,GAAG,+BAAc,CAAC,QAAQ,EAAE,CAAC;QAE5C,MAAM,eAAe,GAAG;YACtB,MAAM,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;YAChC,MAAM,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;SAC/B,CAAC;QAEF,MAAM,cAAc,GAAG,mCAAc,CAAC,MAAM,CAAC;YAC3C,CAAC,sBAAkB,CAAC,QAAQ,CAAC,EAAE,eAAe;YAC9C,SAAS;SACV,CAAC,CAAC;QAEH,OAAO,EAAC,IAAI,EAAE,mCAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAC,CAAC;IAC5E,CAAC;IAEO,oBAAoB,CAAC,SAAqB,EAAE,aAAgD;QAClG,MAAM,gCAAgC,GAAG,GAAG,GAAG,IAAI,CAAC;QAEpD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE;YAChC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;SACxD;QAED,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QACxD,MAAM,uBAAuB,GAAG,WAAW,GAAG,cAAc,CAAC;QAE7D,OAAO,uBAAuB,GAAG,gCAAgC,CAAC;IACpE,CAAC;IAEO,qBAAqB,CAAC,KAAU;;QACtC,OAAO,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,+BAAW,CAAC,mBAAmB,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,QAAwB,EACxB,UAAqC,EACrC,SAAqB;QAErB,MAAM,OAAO,GAAG,IAAA,oCAAkB,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,IAAA,oCAAkB,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrD,2CAA2C;QAC3C,OAAO,CAAC,OAAO,CAAC,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtG,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpG,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAC5F,MAAM,mBAAmB,GAAG,IAAA,oCAAkB,EAAiC,WAAW,CAAC,CAAC;YAC5F,wCAAwC;YACxC,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,mCAAO,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GAAK,IAAI,CAAC,CAAC,CAAC,CAAC;SAChH;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,+BAA+B,CAC3C,QAA8B,EAC9B,UAAkC,EAClC,SAAqB;QAErB,MAAM,OAAO,GAAG,IAAA,6CAA2B,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAA,6CAA2B,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9D,2CAA2C;QAC3C,OAAO,CAAC,OAAO,CAAC,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,EAAE,EAAE,CACjC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAChF,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;YAC/B,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7G,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YACrG,MAAM,mBAAmB,GAAG,IAAA,6CAA2B,EAAiC,WAAW,CAAC,CAAC;YACrG,mBAAmB,CAAC,OAAO,CACzB,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,mCAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAK,IAAI,CAAC,CAAC,CAChH,CAAC;SACH;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,eAAuB,EACvB,UAAqC,EACrC,OAAmF;QAEnF,MAAM,WAAW,GAA6B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE;YACtG,MAAM,OAAO,GAA+B,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE;gBACnG,OAAO;oBACL,MAAM,EAAE;wBACN,MAAM,EAAE,cAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;qBACtC;oBACD,IAAI,EAAE,OAAO;iBACd,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO;gBACP,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAA,wBAAW,EAAC,MAAM,CAAC;iBAC1B;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,aAAW,CAAC,aAAa,CAAC,MAAM,CAAC;YACpD,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE;gBACN,MAAM,EAAE,cAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC;aAC7C;SACF,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;SACvC;QAED,OAAO,CAAC,OAAO,CAAC,cAAc;YAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;YAClH,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,sBAAsB,CACpD,eAAe,EACf,OAAO,CAAC,cAAc,EACtB,YAAY,EACZ,CAAC,OAAO,CAAC,aAAa,CACvB,CAAC;IACR,CAAC;CACF;AAjTD,wCAiTC"}
@@ -113,7 +113,7 @@ describe('MessageService', () => {
113
113
  expect(apiClient.conversation.api.postOTRMessageV2).toHaveBeenCalledTimes(2);
114
114
  });
115
115
  it('continues message sending if onClientMismatch returns true', async () => {
116
- const onClientMismatch = jasmine.createSpy().and.returnValue(Promise.resolve(true));
116
+ const onClientMismatch = jasmine.createSpy('onClientMismatch').and.returnValue(true);
117
117
  const clientMismatch = Object.assign(Object.assign({}, baseMessageSendingStatus), { missing: { '2.wire.test': { [user2.id]: ['client22'] } } });
118
118
  let spyCounter = 0;
119
119
  spyOn(apiClient.conversation.api, 'postOTRMessageV2').and.callFake(() => {
@@ -139,7 +139,7 @@ describe('MessageService', () => {
139
139
  expect(onClientMismatch).toHaveBeenCalledWith(clientMismatch);
140
140
  });
141
141
  it('stops message sending if onClientMismatch returns false', async () => {
142
- const onClientMismatch = jasmine.createSpy().and.returnValue(Promise.resolve(false));
142
+ const onClientMismatch = jasmine.createSpy('onClientMismatch').and.returnValue(false);
143
143
  const clientMismatch = Object.assign(Object.assign({}, baseMessageSendingStatus), { missing: { '2.wire.test': { [user2.id]: ['client22'] } } });
144
144
  spyOn(apiClient.conversation.api, 'postOTRMessageV2').and.callFake(() => {
145
145
  const error = new Error();
@@ -225,6 +225,84 @@ describe('MessageService', () => {
225
225
  });
226
226
  expect(apiClient.conversation.api.postOTRMessage).toHaveBeenCalledWith(clientId, conversationId, jasmine.objectContaining({ data: jasmine.any(String) }), true);
227
227
  });
228
+ describe('client mismatch', () => {
229
+ const baseClientMismatch = {
230
+ deleted: {},
231
+ missing: {},
232
+ redundant: {},
233
+ time: new Date().toISOString(),
234
+ };
235
+ it('handles client mismatch internally if no onClientMismatch is given', async () => {
236
+ let spyCounter = 0;
237
+ const clientMismatch = Object.assign(Object.assign({}, baseClientMismatch), { deleted: { [user1.id]: [user1.clients[0]] }, missing: { [user2.id]: ['client22'] } });
238
+ spyOn(apiClient.conversation.api, 'postOTRMessage').and.callFake(() => {
239
+ spyCounter++;
240
+ if (spyCounter === 1) {
241
+ const error = new Error();
242
+ error.response = {
243
+ status: http_status_codes_1.StatusCodes.PRECONDITION_FAILED,
244
+ data: clientMismatch,
245
+ };
246
+ return Promise.reject(error);
247
+ }
248
+ return Promise.resolve(baseClientMismatch);
249
+ });
250
+ spyOn(apiClient.user.api, 'postMultiPreKeyBundles').and.returnValue(Promise.resolve({}));
251
+ const recipients = generateRecipients([user1, user2]);
252
+ await messageService.sendMessage('senderclientid', recipients, new Uint8Array(), {
253
+ reportMissing: true,
254
+ conversationId: 'convid',
255
+ });
256
+ expect(apiClient.conversation.api.postOTRMessage).toHaveBeenCalledTimes(2);
257
+ });
258
+ it('continues message sending if onClientMismatch returns true', async () => {
259
+ const onClientMismatch = jasmine.createSpy().and.returnValue(Promise.resolve(true));
260
+ const clientMismatch = Object.assign(Object.assign({}, baseClientMismatch), { missing: { [user2.id]: ['client22'] } });
261
+ let spyCounter = 0;
262
+ spyOn(apiClient.conversation.api, 'postOTRMessage').and.callFake(() => {
263
+ spyCounter++;
264
+ if (spyCounter === 1) {
265
+ const error = new Error();
266
+ error.response = {
267
+ status: http_status_codes_1.StatusCodes.PRECONDITION_FAILED,
268
+ data: clientMismatch,
269
+ };
270
+ return Promise.reject(error);
271
+ }
272
+ return Promise.resolve(baseClientMismatch);
273
+ });
274
+ spyOn(apiClient.user.api, 'postMultiPreKeyBundles').and.returnValue(Promise.resolve({}));
275
+ const recipients = generateRecipients([user1, user2]);
276
+ await messageService.sendMessage('senderclientid', recipients, new Uint8Array(), {
277
+ reportMissing: true,
278
+ onClientMismatch,
279
+ conversationId: 'convid',
280
+ });
281
+ expect(apiClient.conversation.api.postOTRMessage).toHaveBeenCalledTimes(2);
282
+ expect(onClientMismatch).toHaveBeenCalledWith(clientMismatch);
283
+ });
284
+ it('stops message sending if onClientMismatch returns false', async () => {
285
+ const onClientMismatch = jasmine.createSpy().and.returnValue(Promise.resolve(false));
286
+ const clientMismatch = Object.assign(Object.assign({}, baseMessageSendingStatus), { missing: { [user2.id]: ['client22'] } });
287
+ spyOn(apiClient.conversation.api, 'postOTRMessage').and.callFake(() => {
288
+ const error = new Error();
289
+ error.response = {
290
+ status: http_status_codes_1.StatusCodes.PRECONDITION_FAILED,
291
+ data: clientMismatch,
292
+ };
293
+ return Promise.reject(error);
294
+ });
295
+ spyOn(apiClient.user.api, 'postMultiPreKeyBundles').and.returnValue(Promise.resolve({}));
296
+ const recipients = generateRecipients([user1, user2]);
297
+ await messageService.sendMessage('senderclientid', recipients, new Uint8Array(), {
298
+ reportMissing: true,
299
+ onClientMismatch,
300
+ conversationId: 'convid',
301
+ });
302
+ expect(apiClient.conversation.api.postOTRMessage).toHaveBeenCalledTimes(1);
303
+ expect(onClientMismatch).toHaveBeenCalledWith(clientMismatch);
304
+ });
305
+ });
228
306
  });
229
307
  });
230
308
  //# sourceMappingURL=MessageService.test.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageService.test.node.js","sourceRoot":"","sources":["MessageService.test.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageService.test.node.js","sourceRoot":"","sources":["MessageService.test.node.ts"],"names":[],"mappings":"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"}
@@ -135,7 +135,7 @@ describe('MessageService', () => {
135
135
  });
136
136
 
137
137
  it('continues message sending if onClientMismatch returns true', async () => {
138
- const onClientMismatch = jasmine.createSpy().and.returnValue(Promise.resolve(true));
138
+ const onClientMismatch = jasmine.createSpy('onClientMismatch').and.returnValue(true);
139
139
  const clientMismatch = {...baseMessageSendingStatus, missing: {'2.wire.test': {[user2.id]: ['client22']}}};
140
140
  let spyCounter = 0;
141
141
  spyOn(apiClient.conversation.api, 'postOTRMessageV2').and.callFake(() => {
@@ -164,7 +164,7 @@ describe('MessageService', () => {
164
164
  });
165
165
 
166
166
  it('stops message sending if onClientMismatch returns false', async () => {
167
- const onClientMismatch = jasmine.createSpy().and.returnValue(Promise.resolve(false));
167
+ const onClientMismatch = jasmine.createSpy('onClientMismatch').and.returnValue(false);
168
168
  const clientMismatch = {...baseMessageSendingStatus, missing: {'2.wire.test': {[user2.id]: ['client22']}}};
169
169
  spyOn(apiClient.conversation.api, 'postOTRMessageV2').and.callFake(() => {
170
170
  const error = new Error();
@@ -302,5 +302,97 @@ describe('MessageService', () => {
302
302
  true,
303
303
  );
304
304
  });
305
+
306
+ describe('client mismatch', () => {
307
+ const baseClientMismatch: ClientMismatch = {
308
+ deleted: {},
309
+ missing: {},
310
+ redundant: {},
311
+ time: new Date().toISOString(),
312
+ };
313
+
314
+ it('handles client mismatch internally if no onClientMismatch is given', async () => {
315
+ let spyCounter = 0;
316
+ const clientMismatch = {
317
+ ...baseClientMismatch,
318
+ deleted: {[user1.id]: [user1.clients[0]]},
319
+ missing: {[user2.id]: ['client22']},
320
+ };
321
+ spyOn(apiClient.conversation.api, 'postOTRMessage').and.callFake(() => {
322
+ spyCounter++;
323
+ if (spyCounter === 1) {
324
+ const error = new Error();
325
+ (error as any).response = {
326
+ status: StatusCodes.PRECONDITION_FAILED,
327
+ data: clientMismatch,
328
+ };
329
+ return Promise.reject(error);
330
+ }
331
+ return Promise.resolve(baseClientMismatch);
332
+ });
333
+ spyOn(apiClient.user.api, 'postMultiPreKeyBundles').and.returnValue(Promise.resolve({}));
334
+
335
+ const recipients = generateRecipients([user1, user2]);
336
+
337
+ await messageService.sendMessage('senderclientid', recipients, new Uint8Array(), {
338
+ reportMissing: true,
339
+ conversationId: 'convid',
340
+ });
341
+ expect(apiClient.conversation.api.postOTRMessage).toHaveBeenCalledTimes(2);
342
+ });
343
+
344
+ it('continues message sending if onClientMismatch returns true', async () => {
345
+ const onClientMismatch = jasmine.createSpy().and.returnValue(Promise.resolve(true));
346
+ const clientMismatch = {...baseClientMismatch, missing: {[user2.id]: ['client22']}};
347
+ let spyCounter = 0;
348
+ spyOn(apiClient.conversation.api, 'postOTRMessage').and.callFake(() => {
349
+ spyCounter++;
350
+ if (spyCounter === 1) {
351
+ const error = new Error();
352
+ (error as any).response = {
353
+ status: StatusCodes.PRECONDITION_FAILED,
354
+ data: clientMismatch,
355
+ };
356
+ return Promise.reject(error);
357
+ }
358
+ return Promise.resolve(baseClientMismatch);
359
+ });
360
+ spyOn(apiClient.user.api, 'postMultiPreKeyBundles').and.returnValue(Promise.resolve({}));
361
+
362
+ const recipients = generateRecipients([user1, user2]);
363
+
364
+ await messageService.sendMessage('senderclientid', recipients, new Uint8Array(), {
365
+ reportMissing: true,
366
+ onClientMismatch,
367
+ conversationId: 'convid',
368
+ });
369
+ expect(apiClient.conversation.api.postOTRMessage).toHaveBeenCalledTimes(2);
370
+ expect(onClientMismatch).toHaveBeenCalledWith(clientMismatch);
371
+ });
372
+
373
+ it('stops message sending if onClientMismatch returns false', async () => {
374
+ const onClientMismatch = jasmine.createSpy().and.returnValue(Promise.resolve(false));
375
+ const clientMismatch = {...baseMessageSendingStatus, missing: {[user2.id]: ['client22']}};
376
+ spyOn(apiClient.conversation.api, 'postOTRMessage').and.callFake(() => {
377
+ const error = new Error();
378
+ (error as any).response = {
379
+ status: StatusCodes.PRECONDITION_FAILED,
380
+ data: clientMismatch,
381
+ };
382
+ return Promise.reject(error);
383
+ });
384
+ spyOn(apiClient.user.api, 'postMultiPreKeyBundles').and.returnValue(Promise.resolve({}));
385
+
386
+ const recipients = generateRecipients([user1, user2]);
387
+
388
+ await messageService.sendMessage('senderclientid', recipients, new Uint8Array(), {
389
+ reportMissing: true,
390
+ onClientMismatch,
391
+ conversationId: 'convid',
392
+ });
393
+ expect(apiClient.conversation.api.postOTRMessage).toHaveBeenCalledTimes(1);
394
+ expect(onClientMismatch).toHaveBeenCalledWith(clientMismatch);
395
+ });
396
+ });
305
397
  });
306
398
  });
@@ -67,9 +67,9 @@ export class MessageService {
67
67
  conversationId?: string;
68
68
  reportMissing?: boolean;
69
69
  sendAsProtobuf?: boolean;
70
- onClientMismatch?: (mismatch: ClientMismatch) => Promise<boolean | undefined>;
70
+ onClientMismatch?: (mismatch: ClientMismatch) => void | boolean | Promise<boolean>;
71
71
  } = {},
72
- ): Promise<ClientMismatch> {
72
+ ): Promise<ClientMismatch & {errored?: boolean}> {
73
73
  let plainTextPayload = plainText;
74
74
  let cipherText: Uint8Array;
75
75
  if (this.shouldSendAsExternal(plainText, recipients)) {
@@ -91,6 +91,10 @@ export class MessageService {
91
91
  throw error;
92
92
  }
93
93
  const mismatch = error.response!.data as ClientMismatch;
94
+ const shouldStopSending = options.onClientMismatch && (await options.onClientMismatch(mismatch)) === false;
95
+ if (shouldStopSending) {
96
+ return {...mismatch, errored: true};
97
+ }
94
98
  const reEncryptedMessage = await this.reencryptAfterMismatch(mismatch, encryptedPayload, plainText);
95
99
  return send(reEncryptedMessage);
96
100
  }
@@ -116,9 +120,9 @@ export class MessageService {
116
120
  assetData?: Uint8Array;
117
121
  conversationId?: QualifiedId;
118
122
  reportMissing?: boolean;
119
- onClientMismatch?: (mismatch: MessageSendingStatus) => Promise<boolean | undefined>;
123
+ onClientMismatch?: (mismatch: MessageSendingStatus) => void | boolean | Promise<boolean>;
120
124
  },
121
- ): Promise<MessageSendingStatus> {
125
+ ): Promise<MessageSendingStatus & {errored?: boolean}> {
122
126
  const send = (payload: QualifiedOTRRecipients) => {
123
127
  return this.sendFederatedOtrMessage(sendingClientId, payload, options);
124
128
  };
@@ -130,9 +134,9 @@ export class MessageService {
130
134
  throw error;
131
135
  }
132
136
  const mismatch = error.response!.data as MessageSendingStatus;
133
- const shouldStopSending = options.onClientMismatch && !(await options.onClientMismatch(mismatch));
137
+ const shouldStopSending = options.onClientMismatch && (await options.onClientMismatch(mismatch)) === false;
134
138
  if (shouldStopSending) {
135
- return mismatch;
139
+ return {...mismatch, errored: true};
136
140
  }
137
141
  const reEncryptedPayload = await this.reencryptAfterFederatedMismatch(mismatch, encryptedPayload, plainText);
138
142
  return send(reEncryptedPayload);
@@ -142,12 +146,7 @@ export class MessageService {
142
146
  private async sendFederatedOtrMessage(
143
147
  sendingClientId: string,
144
148
  recipients: QualifiedOTRRecipients,
145
- options: {
146
- assetData?: Uint8Array;
147
- conversationId?: QualifiedId;
148
- reportMissing?: boolean;
149
- onClientMismatch?: (mismatch: MessageSendingStatus) => Promise<boolean | undefined>;
150
- },
149
+ options: {assetData?: Uint8Array; conversationId?: QualifiedId; reportMissing?: boolean},
151
150
  ): Promise<MessageSendingStatus> {
152
151
  const qualifiedUserEntries = Object.entries(recipients).map<ProtobufOTR.IQualifiedUserEntry>(
153
152
  ([domain, otrRecipients]) => {