@wireapp/core 17.27.4 → 17.28.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 +11 -0
- package/package.json +2 -2
- package/src/main/conversation/ConversationService.d.ts +39 -14
- package/src/main/conversation/ConversationService.js +64 -26
- package/src/main/conversation/ConversationService.js.map +1 -1
- package/src/main/conversation/ConversationService.test.node.js +98 -51
- package/src/main/conversation/ConversationService.test.node.js.map +1 -1
- package/src/main/conversation/ConversationService.test.node.ts +137 -61
- package/src/main/conversation/ConversationService.ts +108 -32
- package/src/main/conversation/message/MessageService.d.ts +4 -2
- package/src/main/conversation/message/MessageService.js +23 -6
- package/src/main/conversation/message/MessageService.js.map +1 -1
- package/src/main/conversation/message/MessageService.test.node.js +6 -6
- package/src/main/conversation/message/MessageService.test.node.js.map +1 -1
- package/src/main/conversation/message/MessageService.test.node.ts +10 -6
- package/src/main/conversation/message/MessageService.ts +41 -16
|
@@ -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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"}
|
|
@@ -21,7 +21,7 @@ import {APIClient} from '@wireapp/api-client';
|
|
|
21
21
|
import {ClientType} from '@wireapp/api-client/src/client';
|
|
22
22
|
import {LegalHoldStatus} from '@wireapp/protocol-messaging';
|
|
23
23
|
import {MemoryEngine} from '@wireapp/store-engine';
|
|
24
|
-
import {PayloadBundleSource, PayloadBundleState, PayloadBundleType} from '.';
|
|
24
|
+
import {MessageTargetMode, PayloadBundleSource, PayloadBundleState, PayloadBundleType} from '.';
|
|
25
25
|
|
|
26
26
|
import {Account} from '../Account';
|
|
27
27
|
import * as PayloadHelper from '../test/PayloadHelper';
|
|
@@ -37,6 +37,14 @@ describe('ConversationService', () => {
|
|
|
37
37
|
await account.initServices(new MemoryEngine());
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
+
beforeEach(() => {
|
|
41
|
+
account['apiClient'].context = {
|
|
42
|
+
clientType: ClientType.NONE,
|
|
43
|
+
userId: PayloadHelper.getUUID(),
|
|
44
|
+
clientId: PayloadHelper.getUUID(),
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
|
|
40
48
|
describe('"send"', () => {
|
|
41
49
|
const baseMessage = {
|
|
42
50
|
conversation: PayloadHelper.getUUID(),
|
|
@@ -57,11 +65,6 @@ describe('ConversationService', () => {
|
|
|
57
65
|
];
|
|
58
66
|
messages.forEach(payloadBundle => {
|
|
59
67
|
it(`calls callbacks when sending '${payloadBundle.type}' message is starting and successful`, async () => {
|
|
60
|
-
account['apiClient'].context = {
|
|
61
|
-
clientType: ClientType.NONE,
|
|
62
|
-
userId: PayloadHelper.getUUID(),
|
|
63
|
-
clientId: PayloadHelper.getUUID(),
|
|
64
|
-
};
|
|
65
68
|
const conversationService = account.service!.conversation;
|
|
66
69
|
const sentTime = new Date().toISOString();
|
|
67
70
|
spyOn<any>(conversationService, 'sendGenericMessage').and.returnValue(Promise.resolve({time: sentTime}));
|
|
@@ -78,12 +81,135 @@ describe('ConversationService', () => {
|
|
|
78
81
|
});
|
|
79
82
|
});
|
|
80
83
|
|
|
84
|
+
describe('targetted messages', () => {
|
|
85
|
+
const message: OtrMessage = {...baseMessage, type: PayloadBundleType.TEXT, content: {text: 'test'}};
|
|
86
|
+
it('fails if no userIds are given', done => {
|
|
87
|
+
const conversationService = account.service!.conversation;
|
|
88
|
+
conversationService
|
|
89
|
+
.send({
|
|
90
|
+
payloadBundle: message,
|
|
91
|
+
targetMode: MessageTargetMode.USERS,
|
|
92
|
+
})
|
|
93
|
+
.catch(error => {
|
|
94
|
+
expect(error.message).toContain('no userIds are given');
|
|
95
|
+
done();
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
[{user1: ['client1'], user2: ['client11', 'client12']}, ['user1', 'user2']].forEach(recipients => {
|
|
100
|
+
it(`forwards the list of users to report (${JSON.stringify(recipients)})`, async () => {
|
|
101
|
+
const conversationService = account.service!.conversation;
|
|
102
|
+
spyOn<any>(conversationService, 'getRecipientsForConversation').and.returnValue(Promise.resolve({} as any));
|
|
103
|
+
spyOn(conversationService['messageService'], 'sendMessage').and.returnValue(Promise.resolve({} as any));
|
|
104
|
+
await conversationService.send({
|
|
105
|
+
payloadBundle: message,
|
|
106
|
+
targetMode: MessageTargetMode.USERS,
|
|
107
|
+
userIds: recipients,
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
expect(conversationService['messageService'].sendMessage).toHaveBeenCalledWith(
|
|
111
|
+
jasmine.any(String),
|
|
112
|
+
jasmine.any(Object),
|
|
113
|
+
jasmine.any(Uint8Array),
|
|
114
|
+
jasmine.objectContaining({reportMissing: ['user1', 'user2']}),
|
|
115
|
+
);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
[
|
|
120
|
+
{domain1: {user1: ['client1'], user2: ['client11', 'client12']}, domain2: {user3: ['client1']}},
|
|
121
|
+
[
|
|
122
|
+
{id: 'user1', domain: 'domain1'},
|
|
123
|
+
{id: 'user2', domain: 'domain1'},
|
|
124
|
+
{id: 'user3', domain: 'domain2'},
|
|
125
|
+
],
|
|
126
|
+
].forEach(recipients => {
|
|
127
|
+
it(`forwards the list of users to report for federated message (${JSON.stringify(recipients)})`, async () => {
|
|
128
|
+
const conversationService = account.service!.conversation;
|
|
129
|
+
spyOn<any>(conversationService, 'getQualifiedRecipientsForConversation').and.returnValue(
|
|
130
|
+
Promise.resolve({} as any),
|
|
131
|
+
);
|
|
132
|
+
spyOn(conversationService['messageService'], 'sendFederatedMessage').and.returnValue(
|
|
133
|
+
Promise.resolve({} as any),
|
|
134
|
+
);
|
|
135
|
+
await conversationService.send({
|
|
136
|
+
conversationDomain: 'domain1',
|
|
137
|
+
payloadBundle: message,
|
|
138
|
+
targetMode: MessageTargetMode.USERS,
|
|
139
|
+
userIds: recipients,
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
expect(conversationService['messageService'].sendFederatedMessage).toHaveBeenCalledWith(
|
|
143
|
+
jasmine.any(String),
|
|
144
|
+
jasmine.any(Object),
|
|
145
|
+
jasmine.any(Uint8Array),
|
|
146
|
+
jasmine.objectContaining({
|
|
147
|
+
reportMissing: [
|
|
148
|
+
{id: 'user1', domain: 'domain1'},
|
|
149
|
+
{id: 'user2', domain: 'domain1'},
|
|
150
|
+
{id: 'user3', domain: 'domain2'},
|
|
151
|
+
],
|
|
152
|
+
}),
|
|
153
|
+
);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
[{user1: ['client1'], user2: ['client11', 'client12']}, ['user1', 'user2']].forEach(recipients => {
|
|
158
|
+
it(`ignores all missing user/client pair if targetMode is USER_CLIENTS`, async () => {
|
|
159
|
+
const conversationService = account.service!.conversation;
|
|
160
|
+
spyOn<any>(conversationService, 'getRecipientsForConversation').and.returnValue(Promise.resolve({} as any));
|
|
161
|
+
spyOn(conversationService['messageService'], 'sendMessage').and.returnValue(Promise.resolve({} as any));
|
|
162
|
+
await conversationService.send({
|
|
163
|
+
payloadBundle: message,
|
|
164
|
+
targetMode: MessageTargetMode.USERS_CLIENTS,
|
|
165
|
+
userIds: recipients,
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
expect(conversationService['messageService'].sendMessage).toHaveBeenCalledWith(
|
|
169
|
+
jasmine.any(String),
|
|
170
|
+
jasmine.any(Object),
|
|
171
|
+
jasmine.any(Uint8Array),
|
|
172
|
+
jasmine.objectContaining({reportMissing: false}),
|
|
173
|
+
);
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
[
|
|
178
|
+
{domain1: {user1: ['client1'], user2: ['client11', 'client12']}, domain2: {user3: ['client1']}},
|
|
179
|
+
[
|
|
180
|
+
{id: 'user1', domain: 'domain1'},
|
|
181
|
+
{id: 'user2', domain: 'domain1'},
|
|
182
|
+
{id: 'user3', domain: 'domain2'},
|
|
183
|
+
],
|
|
184
|
+
].forEach(recipients => {
|
|
185
|
+
it(`ignores all missing user/client pair if targetMode is USER_CLIENTS on federated env`, async () => {
|
|
186
|
+
const conversationService = account.service!.conversation;
|
|
187
|
+
spyOn<any>(conversationService, 'getQualifiedRecipientsForConversation').and.returnValue(
|
|
188
|
+
Promise.resolve({} as any),
|
|
189
|
+
);
|
|
190
|
+
spyOn(conversationService['messageService'], 'sendFederatedMessage').and.returnValue(
|
|
191
|
+
Promise.resolve({} as any),
|
|
192
|
+
);
|
|
193
|
+
await conversationService.send({
|
|
194
|
+
conversationDomain: 'domain1',
|
|
195
|
+
payloadBundle: message,
|
|
196
|
+
targetMode: MessageTargetMode.USERS_CLIENTS,
|
|
197
|
+
userIds: recipients,
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
expect(conversationService['messageService'].sendFederatedMessage).toHaveBeenCalledWith(
|
|
201
|
+
jasmine.any(String),
|
|
202
|
+
jasmine.any(Object),
|
|
203
|
+
jasmine.any(Uint8Array),
|
|
204
|
+
jasmine.objectContaining({
|
|
205
|
+
reportMissing: false,
|
|
206
|
+
}),
|
|
207
|
+
);
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
|
|
81
212
|
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
213
|
const conversationService = account.service!.conversation;
|
|
88
214
|
spyOn<any>(conversationService, 'sendGenericMessage');
|
|
89
215
|
const message: OtrMessage = {...baseMessage, type: PayloadBundleType.TEXT, content: {text: 'test'}};
|
|
@@ -98,11 +224,6 @@ describe('ConversationService', () => {
|
|
|
98
224
|
});
|
|
99
225
|
|
|
100
226
|
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
227
|
const conversationService = account.service!.conversation;
|
|
107
228
|
spyOn<any>(conversationService, 'sendGenericMessage').and.returnValue(Promise.resolve({time: '', errored: true}));
|
|
108
229
|
const message: OtrMessage = {...baseMessage, type: PayloadBundleType.TEXT, content: {text: 'test'}};
|
|
@@ -118,11 +239,6 @@ describe('ConversationService', () => {
|
|
|
118
239
|
|
|
119
240
|
describe('"createText"', () => {
|
|
120
241
|
it('adds link previews correctly', async () => {
|
|
121
|
-
account['apiClient'].context = {
|
|
122
|
-
clientType: ClientType.NONE,
|
|
123
|
-
userId: PayloadHelper.getUUID(),
|
|
124
|
-
};
|
|
125
|
-
|
|
126
242
|
const url = 'http://example.com';
|
|
127
243
|
|
|
128
244
|
const permanentUrl = url;
|
|
@@ -165,11 +281,6 @@ describe('ConversationService', () => {
|
|
|
165
281
|
});
|
|
166
282
|
|
|
167
283
|
it('does not add link previews', () => {
|
|
168
|
-
account['apiClient'].context = {
|
|
169
|
-
clientType: ClientType.NONE,
|
|
170
|
-
userId: PayloadHelper.getUUID(),
|
|
171
|
-
};
|
|
172
|
-
|
|
173
284
|
const text = 'Hello, world!';
|
|
174
285
|
const textMessage = account.service!.conversation.messageBuilder.createText({conversationId: '', text}).build();
|
|
175
286
|
|
|
@@ -177,11 +288,6 @@ describe('ConversationService', () => {
|
|
|
177
288
|
});
|
|
178
289
|
|
|
179
290
|
it('uploads link previews', async () => {
|
|
180
|
-
account['apiClient'].context = {
|
|
181
|
-
clientType: ClientType.NONE,
|
|
182
|
-
userId: PayloadHelper.getUUID(),
|
|
183
|
-
};
|
|
184
|
-
|
|
185
291
|
spyOn(account.service!.asset, 'uploadImageAsset').and.returnValue(
|
|
186
292
|
Promise.resolve({
|
|
187
293
|
cipherText: Buffer.from([]),
|
|
@@ -222,11 +328,6 @@ describe('ConversationService', () => {
|
|
|
222
328
|
});
|
|
223
329
|
|
|
224
330
|
it('adds mentions correctly', () => {
|
|
225
|
-
account['apiClient'].context = {
|
|
226
|
-
clientType: ClientType.NONE,
|
|
227
|
-
userId: PayloadHelper.getUUID(),
|
|
228
|
-
};
|
|
229
|
-
|
|
230
331
|
const text = 'Hello @user!';
|
|
231
332
|
|
|
232
333
|
const mention: MentionContent = {
|
|
@@ -248,11 +349,6 @@ describe('ConversationService', () => {
|
|
|
248
349
|
});
|
|
249
350
|
|
|
250
351
|
it('does not add mentions', () => {
|
|
251
|
-
account['apiClient'].context = {
|
|
252
|
-
clientType: ClientType.NONE,
|
|
253
|
-
userId: PayloadHelper.getUUID(),
|
|
254
|
-
};
|
|
255
|
-
|
|
256
352
|
const text = 'Hello, world!';
|
|
257
353
|
const textMessage = account.service!.conversation.messageBuilder.createText({conversationId: '', text}).build();
|
|
258
354
|
|
|
@@ -260,11 +356,6 @@ describe('ConversationService', () => {
|
|
|
260
356
|
});
|
|
261
357
|
|
|
262
358
|
it('adds a quote correctly', () => {
|
|
263
|
-
account['apiClient'].context = {
|
|
264
|
-
clientType: ClientType.NONE,
|
|
265
|
-
userId: PayloadHelper.getUUID(),
|
|
266
|
-
};
|
|
267
|
-
|
|
268
359
|
const quoteId = PayloadHelper.getUUID();
|
|
269
360
|
const text = 'I totally agree.';
|
|
270
361
|
|
|
@@ -283,11 +374,6 @@ describe('ConversationService', () => {
|
|
|
283
374
|
});
|
|
284
375
|
|
|
285
376
|
it('does not add a quote', () => {
|
|
286
|
-
account['apiClient'].context = {
|
|
287
|
-
clientType: ClientType.NONE,
|
|
288
|
-
userId: PayloadHelper.getUUID(),
|
|
289
|
-
};
|
|
290
|
-
|
|
291
377
|
const text = 'Hello, world!';
|
|
292
378
|
const textMessage = account.service!.conversation.messageBuilder.createText({conversationId: '', text}).build();
|
|
293
379
|
|
|
@@ -295,11 +381,6 @@ describe('ConversationService', () => {
|
|
|
295
381
|
});
|
|
296
382
|
|
|
297
383
|
it('adds a read confirmation request correctly', () => {
|
|
298
|
-
account['apiClient'].context = {
|
|
299
|
-
clientType: ClientType.NONE,
|
|
300
|
-
userId: PayloadHelper.getUUID(),
|
|
301
|
-
};
|
|
302
|
-
|
|
303
384
|
const text = 'Please read me';
|
|
304
385
|
|
|
305
386
|
const replyMessage = account
|
|
@@ -312,11 +393,6 @@ describe('ConversationService', () => {
|
|
|
312
393
|
});
|
|
313
394
|
|
|
314
395
|
it('adds a legal hold status', () => {
|
|
315
|
-
account['apiClient'].context = {
|
|
316
|
-
clientType: ClientType.NONE,
|
|
317
|
-
userId: PayloadHelper.getUUID(),
|
|
318
|
-
};
|
|
319
|
-
|
|
320
396
|
const text = 'Please read me';
|
|
321
397
|
|
|
322
398
|
const firstMessage = account
|
|
@@ -89,6 +89,46 @@ import type {
|
|
|
89
89
|
TextMessage,
|
|
90
90
|
} from './message/OtrMessage';
|
|
91
91
|
|
|
92
|
+
export enum MessageTargetMode {
|
|
93
|
+
NONE,
|
|
94
|
+
USERS,
|
|
95
|
+
USERS_CLIENTS,
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
interface MessageSendingOptions {
|
|
99
|
+
/**
|
|
100
|
+
* The federated domain the server runs on. Should only be set for federation enabled envs
|
|
101
|
+
*/
|
|
102
|
+
conversationDomain?: string;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* can be either a QualifiedId[] or QualfiedUserClients or undefined. The type has some effect on the behavior of the method.
|
|
106
|
+
* When given undefined the method will fetch both the members of the conversations and their devices. No ClientMismatch can happen in that case
|
|
107
|
+
* 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
|
|
108
|
+
* 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)
|
|
109
|
+
*/
|
|
110
|
+
userIds?: string[] | QualifiedId[] | UserClients | QualifiedUserClients;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Will send the message as a protobuf payload
|
|
114
|
+
*/
|
|
115
|
+
sendAsProtobuf?: boolean;
|
|
116
|
+
nativePush?: boolean;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Will be called whenever there is a clientmismatch returned from the server. Needs to be combined with a userIds of type QualifiedUserClients
|
|
120
|
+
*/
|
|
121
|
+
onClientMismatch?: MessageSendingCallbacks['onClientMismatch'];
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Defines the behavior to use when a mismatch happens on backend side:
|
|
125
|
+
* - NONE -> Not a targetted message, we want to send to all the users/clients in the conversation. Will report all missing users and clients (default mode)
|
|
126
|
+
* - USERS -> A message targetted to all the clients of the given users (according to params.userIds). Will ignore missing users and only report missing clients for the given params.userIds
|
|
127
|
+
* - USERS_CLIENTS -> A message targetted at some specific clients of specific users (according to params.userIds). Will force sending the message even if users or clients are missing
|
|
128
|
+
*/
|
|
129
|
+
targetMode?: MessageTargetMode;
|
|
130
|
+
}
|
|
131
|
+
|
|
92
132
|
export interface MessageSendingCallbacks {
|
|
93
133
|
onStart?: (message: GenericMessage) => void | boolean | Promise<boolean>;
|
|
94
134
|
onSuccess?: (message: GenericMessage, sentTime?: string) => void;
|
|
@@ -263,37 +303,47 @@ export class ConversationService {
|
|
|
263
303
|
* @param sendingClientId The clientId from which the message is sent
|
|
264
304
|
* @param conversationId The conversation in which to send the message
|
|
265
305
|
* @param genericMessage The payload of the message to send
|
|
266
|
-
* @param options.domain? The federated domain the server runs on. Should only be set for federation enabled envs
|
|
267
|
-
* @param options.sendAsProtobuf? Will send the message as a protobuf payload
|
|
268
|
-
* @param options.userIds? can be either a QualifiedId[] or QualfiedUserClients or undefined. The type has some effect on the behavior of the method.
|
|
269
|
-
* When given undefined the method will fetch both the members of the conversations and their devices. No ClientMismatch can happen in that case
|
|
270
|
-
* 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
|
|
271
|
-
* 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)
|
|
272
|
-
* @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
|
|
273
306
|
* @return Resolves with the message sending status from backend
|
|
274
307
|
*/
|
|
275
308
|
private async sendGenericMessage(
|
|
276
309
|
sendingClientId: string,
|
|
277
310
|
conversationId: string,
|
|
278
311
|
genericMessage: GenericMessage,
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
userIds
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
312
|
+
{
|
|
313
|
+
conversationDomain,
|
|
314
|
+
userIds,
|
|
315
|
+
nativePush,
|
|
316
|
+
sendAsProtobuf,
|
|
317
|
+
onClientMismatch,
|
|
318
|
+
targetMode = MessageTargetMode.NONE,
|
|
319
|
+
}: MessageSendingOptions = {},
|
|
285
320
|
) {
|
|
286
|
-
const {domain, userIds} = options;
|
|
287
321
|
const plainText = GenericMessage.encode(genericMessage).finish();
|
|
288
|
-
if (
|
|
322
|
+
if (targetMode !== MessageTargetMode.NONE && !userIds) {
|
|
323
|
+
throw new Error('Cannot send targetted message when no userIds are given');
|
|
324
|
+
}
|
|
325
|
+
if (conversationDomain) {
|
|
289
326
|
if (isStringArray(userIds) || isUserClients(userIds)) {
|
|
290
327
|
throw new Error('Invalid userIds option for sending to federated backend');
|
|
291
328
|
}
|
|
292
|
-
const recipients = await this.getQualifiedRecipientsForConversation(
|
|
329
|
+
const recipients = await this.getQualifiedRecipientsForConversation(
|
|
330
|
+
{id: conversationId, domain: conversationDomain},
|
|
331
|
+
userIds,
|
|
332
|
+
);
|
|
333
|
+
let reportMissing;
|
|
334
|
+
if (targetMode === MessageTargetMode.NONE) {
|
|
335
|
+
reportMissing = isQualifiedUserClients(userIds); // we want to check mismatch in case the consumer gave an exact list of users/devices
|
|
336
|
+
} else if (targetMode === MessageTargetMode.USERS) {
|
|
337
|
+
reportMissing = this.extractQualifiedUserIds(userIds);
|
|
338
|
+
} else {
|
|
339
|
+
// in case the message is fully targetted at user/client pairs, we do not want to report the missing clients or users at all
|
|
340
|
+
reportMissing = false;
|
|
341
|
+
}
|
|
293
342
|
return this.messageService.sendFederatedMessage(sendingClientId, recipients, plainText, {
|
|
294
|
-
conversationId: {id: conversationId, domain},
|
|
295
|
-
|
|
296
|
-
|
|
343
|
+
conversationId: {id: conversationId, domain: conversationDomain},
|
|
344
|
+
nativePush,
|
|
345
|
+
reportMissing,
|
|
346
|
+
onClientMismatch: mismatch => onClientMismatch?.(mismatch, false),
|
|
297
347
|
});
|
|
298
348
|
}
|
|
299
349
|
|
|
@@ -301,14 +351,41 @@ export class ConversationService {
|
|
|
301
351
|
throw new Error('Invalid userIds option for sending');
|
|
302
352
|
}
|
|
303
353
|
const recipients = await this.getRecipientsForConversation(conversationId, userIds);
|
|
354
|
+
let reportMissing;
|
|
355
|
+
if (targetMode === MessageTargetMode.NONE) {
|
|
356
|
+
reportMissing = isUserClients(userIds); // we want to check mismatch in case the consumer gave an exact list of users/devices
|
|
357
|
+
} else if (targetMode === MessageTargetMode.USERS) {
|
|
358
|
+
reportMissing = this.extractUserIds(userIds);
|
|
359
|
+
} else {
|
|
360
|
+
// in case the message is fully targetted at user/client pairs, we do not want to report the missing clients or users at all
|
|
361
|
+
reportMissing = false;
|
|
362
|
+
}
|
|
304
363
|
return this.messageService.sendMessage(sendingClientId, recipients, plainText, {
|
|
305
364
|
conversationId,
|
|
306
|
-
sendAsProtobuf
|
|
307
|
-
|
|
308
|
-
|
|
365
|
+
sendAsProtobuf,
|
|
366
|
+
nativePush,
|
|
367
|
+
reportMissing,
|
|
368
|
+
onClientMismatch: mistmatch => onClientMismatch?.(mistmatch, false),
|
|
309
369
|
});
|
|
310
370
|
}
|
|
311
371
|
|
|
372
|
+
private extractUserIds(userIds?: string[] | UserClients): string[] | undefined {
|
|
373
|
+
if (!userIds || isStringArray(userIds)) {
|
|
374
|
+
return userIds;
|
|
375
|
+
}
|
|
376
|
+
return Object.keys(userIds);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
private extractQualifiedUserIds(userIds?: QualifiedId[] | QualifiedUserClients): QualifiedId[] | undefined {
|
|
380
|
+
if (!userIds || isQualifiedIdArray(userIds)) {
|
|
381
|
+
return userIds;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
return Object.entries(userIds).reduce<QualifiedId[]>((ids, [domain, userClients]) => {
|
|
385
|
+
return ids.concat(Object.keys(userClients).map(userId => ({domain, id: userId})));
|
|
386
|
+
}, []);
|
|
387
|
+
}
|
|
388
|
+
|
|
312
389
|
private generateButtonActionGenericMessage(payloadBundle: ButtonActionMessage): GenericMessage {
|
|
313
390
|
return GenericMessage.create({
|
|
314
391
|
[GenericMessageType.BUTTON_ACTION]: ButtonAction.create(payloadBundle.content),
|
|
@@ -591,7 +668,7 @@ export class ConversationService {
|
|
|
591
668
|
const {id: selfConversationId} = await this.getSelfConversation();
|
|
592
669
|
|
|
593
670
|
await this.sendGenericMessage(this.apiClient.validatedClientId, selfConversationId, genericMessage, {
|
|
594
|
-
|
|
671
|
+
conversationDomain,
|
|
595
672
|
sendAsProtobuf,
|
|
596
673
|
});
|
|
597
674
|
|
|
@@ -630,7 +707,7 @@ export class ConversationService {
|
|
|
630
707
|
|
|
631
708
|
await this.sendGenericMessage(this.apiClient.validatedClientId, selfConversationId, genericMessage, {
|
|
632
709
|
sendAsProtobuf,
|
|
633
|
-
|
|
710
|
+
conversationDomain,
|
|
634
711
|
});
|
|
635
712
|
|
|
636
713
|
return {
|
|
@@ -669,7 +746,7 @@ export class ConversationService {
|
|
|
669
746
|
const response = await this.sendGenericMessage(this.apiClient.validatedClientId, conversationId, genericMessage, {
|
|
670
747
|
userIds,
|
|
671
748
|
sendAsProtobuf,
|
|
672
|
-
|
|
749
|
+
conversationDomain,
|
|
673
750
|
});
|
|
674
751
|
callbacks?.onSuccess?.(genericMessage, response?.time);
|
|
675
752
|
|
|
@@ -769,9 +846,6 @@ export class ConversationService {
|
|
|
769
846
|
* When given a QualifiedUserClients or UserClients 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)
|
|
770
847
|
* When given a QualifiedId[] or QualifiedUserClients the method will send the message through the federated API endpoint
|
|
771
848
|
* When given a string[] or UserClients the method will send the message through the old API endpoint
|
|
772
|
-
* @param params.sendAsProtobuf?
|
|
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)
|
|
774
|
-
* @param params.callbacks? Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent.
|
|
775
849
|
* @param callbacks.onStart Will be called before a message is actually sent. Returning 'false' will prevent the message from being sent
|
|
776
850
|
* @param callbacks.onClientMismatch? Will be called when a mismatch happens. Returning `false` from the callback will stop the sending attempt
|
|
777
851
|
* @return resolves with the sent message
|
|
@@ -781,14 +855,14 @@ export class ConversationService {
|
|
|
781
855
|
userIds,
|
|
782
856
|
sendAsProtobuf,
|
|
783
857
|
conversationDomain,
|
|
858
|
+
nativePush,
|
|
859
|
+
targetMode,
|
|
784
860
|
callbacks,
|
|
785
861
|
}: {
|
|
786
862
|
payloadBundle: T;
|
|
787
863
|
userIds?: string[] | QualifiedId[] | UserClients | QualifiedUserClients;
|
|
788
|
-
sendAsProtobuf?: boolean;
|
|
789
|
-
conversationDomain?: string;
|
|
790
864
|
callbacks?: MessageSendingCallbacks;
|
|
791
|
-
}): Promise<T> {
|
|
865
|
+
} & MessageSendingOptions): Promise<T> {
|
|
792
866
|
let genericMessage: GenericMessage;
|
|
793
867
|
let processedContent: AssetContent | undefined = undefined;
|
|
794
868
|
|
|
@@ -862,7 +936,9 @@ export class ConversationService {
|
|
|
862
936
|
{
|
|
863
937
|
userIds,
|
|
864
938
|
sendAsProtobuf,
|
|
865
|
-
|
|
939
|
+
conversationDomain,
|
|
940
|
+
nativePush,
|
|
941
|
+
targetMode,
|
|
866
942
|
onClientMismatch: callbacks?.onClientMismatch,
|
|
867
943
|
},
|
|
868
944
|
);
|
|
@@ -20,8 +20,9 @@ export declare class MessageService {
|
|
|
20
20
|
*/
|
|
21
21
|
sendMessage(sendingClientId: string, recipients: UserClients | UserPreKeyBundleMap, plainText: Uint8Array, options?: {
|
|
22
22
|
conversationId?: string;
|
|
23
|
-
reportMissing?: boolean;
|
|
23
|
+
reportMissing?: boolean | string[];
|
|
24
24
|
sendAsProtobuf?: boolean;
|
|
25
|
+
nativePush?: boolean;
|
|
25
26
|
onClientMismatch?: (mismatch: ClientMismatch) => void | boolean | Promise<boolean>;
|
|
26
27
|
}): Promise<ClientMismatch & {
|
|
27
28
|
errored?: boolean;
|
|
@@ -41,7 +42,8 @@ export declare class MessageService {
|
|
|
41
42
|
sendFederatedMessage(sendingClientId: string, recipients: QualifiedUserClients | QualifiedUserPreKeyBundleMap, plainText: Uint8Array, options: {
|
|
42
43
|
assetData?: Uint8Array;
|
|
43
44
|
conversationId?: QualifiedId;
|
|
44
|
-
reportMissing?: boolean;
|
|
45
|
+
reportMissing?: boolean | QualifiedId[];
|
|
46
|
+
nativePush?: boolean;
|
|
45
47
|
onClientMismatch?: (mismatch: MessageSendingStatus) => void | boolean | Promise<boolean>;
|
|
46
48
|
}): Promise<MessageSendingStatus & {
|
|
47
49
|
errored?: boolean;
|
|
@@ -33,6 +33,7 @@ const MessageBuilder_1 = require("./MessageBuilder");
|
|
|
33
33
|
const protocol_messaging_1 = require("@wireapp/protocol-messaging");
|
|
34
34
|
const __1 = require("..");
|
|
35
35
|
const UserClientsUtil_1 = require("./UserClientsUtil");
|
|
36
|
+
const util_1 = require("../../util");
|
|
36
37
|
class MessageService {
|
|
37
38
|
constructor(apiClient, cryptographyService) {
|
|
38
39
|
this.apiClient = apiClient;
|
|
@@ -138,15 +139,21 @@ class MessageService {
|
|
|
138
139
|
sender: {
|
|
139
140
|
client: long_1.default.fromString(sendingClientId, 16),
|
|
140
141
|
},
|
|
142
|
+
nativePush: options.nativePush,
|
|
141
143
|
});
|
|
142
144
|
if (options.assetData) {
|
|
143
145
|
protoMessage.blob = options.assetData;
|
|
144
146
|
}
|
|
145
147
|
if (options.reportMissing) {
|
|
146
|
-
|
|
148
|
+
if ((0, util_1.isQualifiedIdArray)(options.reportMissing)) {
|
|
149
|
+
protoMessage.reportOnly = { userIds: options.reportMissing };
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
protoMessage.reportAll = true;
|
|
153
|
+
}
|
|
147
154
|
}
|
|
148
155
|
else {
|
|
149
|
-
protoMessage.ignoreAll =
|
|
156
|
+
protoMessage.ignoreAll = true;
|
|
150
157
|
}
|
|
151
158
|
if (!options.conversationId) {
|
|
152
159
|
//TODO implement federated broadcast sending
|
|
@@ -160,10 +167,15 @@ class MessageService {
|
|
|
160
167
|
data: options.assetData ? bazinga64_1.Encoder.toBase64(options.assetData).asString : undefined,
|
|
161
168
|
recipients: cryptography_1.CryptographyService.convertArrayRecipientsToBase64(recipients),
|
|
162
169
|
sender: sendingClientId,
|
|
170
|
+
native_push: options.nativePush,
|
|
163
171
|
};
|
|
172
|
+
const ignoreMissing = options.reportMissing === true ? false : undefined;
|
|
173
|
+
if ((0, util_1.isStringArray)(options.reportMissing)) {
|
|
174
|
+
message.report_missing = options.reportMissing;
|
|
175
|
+
}
|
|
164
176
|
return !options.conversationId
|
|
165
|
-
? this.apiClient.broadcast.api.postBroadcastMessage(sendingClientId, message,
|
|
166
|
-
: this.apiClient.conversation.api.postOTRMessage(sendingClientId, options.conversationId, message,
|
|
177
|
+
? this.apiClient.broadcast.api.postBroadcastMessage(sendingClientId, message, ignoreMissing)
|
|
178
|
+
: this.apiClient.conversation.api.postOTRMessage(sendingClientId, options.conversationId, message, ignoreMissing);
|
|
167
179
|
}
|
|
168
180
|
async generateExternalPayload(plainText) {
|
|
169
181
|
const asset = await (0, AssetCryptography_node_1.encryptAsset)({ plainText });
|
|
@@ -251,12 +263,17 @@ class MessageService {
|
|
|
251
263
|
client: long_1.default.fromString(sendingClientId, 16),
|
|
252
264
|
},
|
|
253
265
|
});
|
|
266
|
+
const ignoreMissing = options.reportMissing === true ? false : undefined;
|
|
267
|
+
if ((0, util_1.isStringArray)(options.reportMissing)) {
|
|
268
|
+
const encoder = new TextEncoder();
|
|
269
|
+
protoMessage.reportMissing = options.reportMissing.map(userId => ({ uuid: encoder.encode(userId) }));
|
|
270
|
+
}
|
|
254
271
|
if (options.assetData) {
|
|
255
272
|
protoMessage.blob = options.assetData;
|
|
256
273
|
}
|
|
257
274
|
return !options.conversationId
|
|
258
|
-
? this.apiClient.broadcast.api.postBroadcastProtobufMessage(sendingClientId, protoMessage,
|
|
259
|
-
: this.apiClient.conversation.api.postOTRProtobufMessage(sendingClientId, options.conversationId, protoMessage,
|
|
275
|
+
? this.apiClient.broadcast.api.postBroadcastProtobufMessage(sendingClientId, protoMessage, ignoreMissing)
|
|
276
|
+
: this.apiClient.conversation.api.postOTRProtobufMessage(sendingClientId, options.conversationId, protoMessage, ignoreMissing);
|
|
260
277
|
}
|
|
261
278
|
}
|
|
262
279
|
exports.MessageService = MessageService;
|