@wireapp/core 17.28.1 → 17.31.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 +44 -0
- package/package.json +2 -2
- package/src/main/conversation/ConversationMapper.js +2 -0
- package/src/main/conversation/ConversationMapper.js.map +1 -1
- package/src/main/conversation/ConversationMapper.ts +2 -0
- package/src/main/conversation/ConversationService.d.ts +5 -2
- package/src/main/conversation/ConversationService.js +2 -4
- package/src/main/conversation/ConversationService.js.map +1 -1
- package/src/main/conversation/ConversationService.test.node.js +4 -2
- package/src/main/conversation/ConversationService.test.node.js.map +1 -1
- package/src/main/conversation/ConversationService.test.node.ts +4 -2
- package/src/main/conversation/ConversationService.ts +8 -4
- package/src/main/conversation/message/MessageService.js +10 -2
- 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 +6 -10
- package/src/main/conversation/message/MessageService.ts +8 -2
- package/src/main/conversation/message/PayloadBundle.d.ts +5 -1
- package/src/main/conversation/message/PayloadBundle.js +1 -0
- package/src/main/conversation/message/PayloadBundle.js.map +1 -1
- package/src/main/conversation/message/PayloadBundle.ts +4 -0
- package/src/main/cryptography/GenericMessageMapper.d.ts +0 -1
- package/src/main/cryptography/GenericMessageMapper.js +23 -158
- package/src/main/cryptography/GenericMessageMapper.js.map +1 -1
- package/src/main/cryptography/GenericMessageMapper.ts +29 -119
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
import type {ConversationOtrMessageAddEvent} from '@wireapp/api-client/src/event/';
|
|
21
|
-
import type {GenericMessage} from '@wireapp/protocol-messaging';
|
|
22
21
|
import logdown from 'logdown';
|
|
23
22
|
import {
|
|
24
23
|
GenericMessageType,
|
|
@@ -39,7 +38,6 @@ import type {
|
|
|
39
38
|
ReactionContent,
|
|
40
39
|
TextContent,
|
|
41
40
|
} from '../conversation/content';
|
|
42
|
-
import type {ButtonActionMessage} from '../conversation/message/OtrMessage';
|
|
43
41
|
|
|
44
42
|
export class GenericMessageMapper {
|
|
45
43
|
private static readonly logger = logdown('@wireapp/core/cryptography/GenericMessageMapper', {
|
|
@@ -47,26 +45,6 @@ export class GenericMessageMapper {
|
|
|
47
45
|
markdown: false,
|
|
48
46
|
});
|
|
49
47
|
|
|
50
|
-
private static mapButtonActionMessage(
|
|
51
|
-
genericMessage: GenericMessage,
|
|
52
|
-
event: ConversationOtrMessageAddEvent,
|
|
53
|
-
source: PayloadBundleSource,
|
|
54
|
-
): ButtonActionMessage {
|
|
55
|
-
const {buttonAction, messageId} = genericMessage;
|
|
56
|
-
return {
|
|
57
|
-
content: buttonAction!,
|
|
58
|
-
conversation: event.conversation,
|
|
59
|
-
from: event.from,
|
|
60
|
-
fromClientId: event.data.sender,
|
|
61
|
-
id: messageId,
|
|
62
|
-
messageTimer: 0,
|
|
63
|
-
source,
|
|
64
|
-
state: PayloadBundleState.INCOMING,
|
|
65
|
-
timestamp: new Date(event.time).getTime(),
|
|
66
|
-
type: PayloadBundleType.BUTTON_ACTION,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
|
|
70
48
|
// TODO: Turn "any" into a specific type (or collection of types) and make the return type more specific based on the
|
|
71
49
|
// "genericMessage" input parameter.
|
|
72
50
|
public static mapGenericMessage(
|
|
@@ -74,6 +52,18 @@ export class GenericMessageMapper {
|
|
|
74
52
|
event: ConversationOtrMessageAddEvent,
|
|
75
53
|
source: PayloadBundleSource,
|
|
76
54
|
): PayloadBundle {
|
|
55
|
+
const baseMessage: Omit<PayloadBundle, 'content' | 'type'> = {
|
|
56
|
+
conversation: event.conversation,
|
|
57
|
+
qualifiedConversation: event.qualified_conversation,
|
|
58
|
+
qualifiedFrom: event.qualified_from,
|
|
59
|
+
fromClientId: event.data.sender,
|
|
60
|
+
from: event.from,
|
|
61
|
+
state: PayloadBundleState.INCOMING,
|
|
62
|
+
timestamp: new Date(event.time).getTime(),
|
|
63
|
+
id: genericMessage.messageId,
|
|
64
|
+
messageTimer: 0,
|
|
65
|
+
source,
|
|
66
|
+
};
|
|
77
67
|
switch (genericMessage.content) {
|
|
78
68
|
case GenericMessageType.TEXT: {
|
|
79
69
|
const {
|
|
@@ -104,32 +94,22 @@ export class GenericMessageMapper {
|
|
|
104
94
|
}
|
|
105
95
|
|
|
106
96
|
return {
|
|
97
|
+
...baseMessage,
|
|
107
98
|
content,
|
|
108
|
-
conversation: event.conversation,
|
|
109
|
-
from: event.from,
|
|
110
|
-
fromClientId: event.data.sender,
|
|
111
|
-
id: genericMessage.messageId,
|
|
112
|
-
messageTimer: 0,
|
|
113
|
-
source,
|
|
114
|
-
state: PayloadBundleState.INCOMING,
|
|
115
|
-
timestamp: new Date(event.time).getTime(),
|
|
116
99
|
type: PayloadBundleType.TEXT,
|
|
117
100
|
};
|
|
118
101
|
}
|
|
119
102
|
case GenericMessageType.BUTTON_ACTION: {
|
|
120
|
-
return
|
|
103
|
+
return {
|
|
104
|
+
...baseMessage,
|
|
105
|
+
content: genericMessage.buttonAction!,
|
|
106
|
+
type: PayloadBundleType.BUTTON_ACTION,
|
|
107
|
+
};
|
|
121
108
|
}
|
|
122
109
|
case GenericMessageType.CALLING: {
|
|
123
110
|
return {
|
|
111
|
+
...baseMessage,
|
|
124
112
|
content: genericMessage.calling.content,
|
|
125
|
-
conversation: event.conversation,
|
|
126
|
-
from: event.from,
|
|
127
|
-
fromClientId: event.data.sender,
|
|
128
|
-
id: genericMessage.messageId,
|
|
129
|
-
messageTimer: 0,
|
|
130
|
-
source,
|
|
131
|
-
state: PayloadBundleState.INCOMING,
|
|
132
|
-
timestamp: new Date(event.time).getTime(),
|
|
133
113
|
type: PayloadBundleType.CALL,
|
|
134
114
|
};
|
|
135
115
|
}
|
|
@@ -139,15 +119,8 @@ export class GenericMessageMapper {
|
|
|
139
119
|
const content: ConfirmationContent = {firstMessageId, moreMessageIds, type};
|
|
140
120
|
|
|
141
121
|
return {
|
|
122
|
+
...baseMessage,
|
|
142
123
|
content,
|
|
143
|
-
conversation: event.conversation,
|
|
144
|
-
from: event.from,
|
|
145
|
-
fromClientId: event.data.sender,
|
|
146
|
-
id: genericMessage.messageId,
|
|
147
|
-
messageTimer: 0,
|
|
148
|
-
source,
|
|
149
|
-
state: PayloadBundleState.INCOMING,
|
|
150
|
-
timestamp: new Date(event.time).getTime(),
|
|
151
124
|
type: PayloadBundleType.CONFIRMATION,
|
|
152
125
|
};
|
|
153
126
|
}
|
|
@@ -155,15 +128,8 @@ export class GenericMessageMapper {
|
|
|
155
128
|
const content: ClearedContent = genericMessage[GenericMessageType.CLEARED];
|
|
156
129
|
|
|
157
130
|
return {
|
|
131
|
+
...baseMessage,
|
|
158
132
|
content,
|
|
159
|
-
conversation: event.conversation,
|
|
160
|
-
from: event.from,
|
|
161
|
-
fromClientId: event.data.sender,
|
|
162
|
-
id: genericMessage.messageId,
|
|
163
|
-
messageTimer: 0,
|
|
164
|
-
source,
|
|
165
|
-
state: PayloadBundleState.INCOMING,
|
|
166
|
-
timestamp: new Date(event.time).getTime(),
|
|
167
133
|
type: PayloadBundleType.CONVERSATION_CLEAR,
|
|
168
134
|
};
|
|
169
135
|
}
|
|
@@ -173,15 +139,8 @@ export class GenericMessageMapper {
|
|
|
173
139
|
const content: DeletedContent = {messageId: originalMessageId};
|
|
174
140
|
|
|
175
141
|
return {
|
|
142
|
+
...baseMessage,
|
|
176
143
|
content,
|
|
177
|
-
conversation: event.conversation,
|
|
178
|
-
from: event.from,
|
|
179
|
-
fromClientId: event.data.sender,
|
|
180
|
-
id: genericMessage.messageId,
|
|
181
|
-
messageTimer: 0,
|
|
182
|
-
source,
|
|
183
|
-
state: PayloadBundleState.INCOMING,
|
|
184
|
-
timestamp: new Date(event.time).getTime(),
|
|
185
144
|
type: PayloadBundleType.MESSAGE_DELETE,
|
|
186
145
|
};
|
|
187
146
|
}
|
|
@@ -218,15 +177,8 @@ export class GenericMessageMapper {
|
|
|
218
177
|
}
|
|
219
178
|
|
|
220
179
|
return {
|
|
180
|
+
...baseMessage,
|
|
221
181
|
content,
|
|
222
|
-
conversation: event.conversation,
|
|
223
|
-
from: event.from,
|
|
224
|
-
fromClientId: event.data.sender,
|
|
225
|
-
id: genericMessage.messageId,
|
|
226
|
-
messageTimer: 0,
|
|
227
|
-
source,
|
|
228
|
-
state: PayloadBundleState.INCOMING,
|
|
229
|
-
timestamp: new Date(event.time).getTime(),
|
|
230
182
|
type: PayloadBundleType.MESSAGE_EDIT,
|
|
231
183
|
};
|
|
232
184
|
}
|
|
@@ -239,15 +191,8 @@ export class GenericMessageMapper {
|
|
|
239
191
|
};
|
|
240
192
|
|
|
241
193
|
return {
|
|
194
|
+
...baseMessage,
|
|
242
195
|
content,
|
|
243
|
-
conversation: event.conversation,
|
|
244
|
-
from: event.from,
|
|
245
|
-
fromClientId: event.data.sender,
|
|
246
|
-
id: genericMessage.messageId,
|
|
247
|
-
messageTimer: 0,
|
|
248
|
-
source,
|
|
249
|
-
state: PayloadBundleState.INCOMING,
|
|
250
|
-
timestamp: new Date(event.time).getTime(),
|
|
251
196
|
type: PayloadBundleType.MESSAGE_HIDE,
|
|
252
197
|
};
|
|
253
198
|
}
|
|
@@ -256,15 +201,8 @@ export class GenericMessageMapper {
|
|
|
256
201
|
const content: KnockContent = {expectsReadConfirmation, hotKnock: false, legalHoldStatus};
|
|
257
202
|
|
|
258
203
|
return {
|
|
204
|
+
...baseMessage,
|
|
259
205
|
content,
|
|
260
|
-
conversation: event.conversation,
|
|
261
|
-
from: event.from,
|
|
262
|
-
fromClientId: event.data.sender,
|
|
263
|
-
id: genericMessage.messageId,
|
|
264
|
-
messageTimer: 0,
|
|
265
|
-
source,
|
|
266
|
-
state: PayloadBundleState.INCOMING,
|
|
267
|
-
timestamp: new Date(event.time).getTime(),
|
|
268
206
|
type: PayloadBundleType.PING,
|
|
269
207
|
};
|
|
270
208
|
}
|
|
@@ -282,15 +220,8 @@ export class GenericMessageMapper {
|
|
|
282
220
|
};
|
|
283
221
|
|
|
284
222
|
return {
|
|
223
|
+
...baseMessage,
|
|
285
224
|
content,
|
|
286
|
-
conversation: event.conversation,
|
|
287
|
-
from: event.from,
|
|
288
|
-
fromClientId: event.data.sender,
|
|
289
|
-
id: genericMessage.messageId,
|
|
290
|
-
messageTimer: 0,
|
|
291
|
-
source,
|
|
292
|
-
state: PayloadBundleState.INCOMING,
|
|
293
|
-
timestamp: new Date(event.time).getTime(),
|
|
294
225
|
type: PayloadBundleType.LOCATION,
|
|
295
226
|
};
|
|
296
227
|
}
|
|
@@ -310,15 +241,8 @@ export class GenericMessageMapper {
|
|
|
310
241
|
};
|
|
311
242
|
|
|
312
243
|
return {
|
|
244
|
+
...baseMessage,
|
|
313
245
|
content,
|
|
314
|
-
conversation: event.conversation,
|
|
315
|
-
from: event.from,
|
|
316
|
-
fromClientId: event.data.sender,
|
|
317
|
-
id: genericMessage.messageId,
|
|
318
|
-
messageTimer: 0,
|
|
319
|
-
source,
|
|
320
|
-
state: PayloadBundleState.INCOMING,
|
|
321
|
-
timestamp: new Date(event.time).getTime(),
|
|
322
246
|
type: isImage ? PayloadBundleType.ASSET_IMAGE : PayloadBundleType.ASSET,
|
|
323
247
|
};
|
|
324
248
|
}
|
|
@@ -332,30 +256,16 @@ export class GenericMessageMapper {
|
|
|
332
256
|
};
|
|
333
257
|
|
|
334
258
|
return {
|
|
259
|
+
...baseMessage,
|
|
335
260
|
content,
|
|
336
|
-
conversation: event.conversation,
|
|
337
|
-
from: event.from,
|
|
338
|
-
fromClientId: event.data.sender,
|
|
339
|
-
id: genericMessage.messageId,
|
|
340
|
-
messageTimer: 0,
|
|
341
|
-
source,
|
|
342
|
-
state: PayloadBundleState.INCOMING,
|
|
343
|
-
timestamp: new Date(event.time).getTime(),
|
|
344
261
|
type: PayloadBundleType.REACTION,
|
|
345
262
|
};
|
|
346
263
|
}
|
|
347
264
|
default: {
|
|
348
265
|
this.logger.warn(`Unhandled event type "${genericMessage.content}": ${JSON.stringify(genericMessage)}`);
|
|
349
266
|
return {
|
|
267
|
+
...baseMessage,
|
|
350
268
|
content: genericMessage.content,
|
|
351
|
-
conversation: event.conversation,
|
|
352
|
-
from: event.from,
|
|
353
|
-
fromClientId: event.data.sender,
|
|
354
|
-
id: genericMessage.messageId,
|
|
355
|
-
messageTimer: 0,
|
|
356
|
-
source,
|
|
357
|
-
state: PayloadBundleState.INCOMING,
|
|
358
|
-
timestamp: new Date(event.time).getTime(),
|
|
359
269
|
type: PayloadBundleType.UNKNOWN,
|
|
360
270
|
};
|
|
361
271
|
}
|