@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.
Files changed (26) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/package.json +2 -2
  3. package/src/main/conversation/ConversationMapper.js +2 -0
  4. package/src/main/conversation/ConversationMapper.js.map +1 -1
  5. package/src/main/conversation/ConversationMapper.ts +2 -0
  6. package/src/main/conversation/ConversationService.d.ts +5 -2
  7. package/src/main/conversation/ConversationService.js +2 -4
  8. package/src/main/conversation/ConversationService.js.map +1 -1
  9. package/src/main/conversation/ConversationService.test.node.js +4 -2
  10. package/src/main/conversation/ConversationService.test.node.js.map +1 -1
  11. package/src/main/conversation/ConversationService.test.node.ts +4 -2
  12. package/src/main/conversation/ConversationService.ts +8 -4
  13. package/src/main/conversation/message/MessageService.js +10 -2
  14. package/src/main/conversation/message/MessageService.js.map +1 -1
  15. package/src/main/conversation/message/MessageService.test.node.js +6 -6
  16. package/src/main/conversation/message/MessageService.test.node.js.map +1 -1
  17. package/src/main/conversation/message/MessageService.test.node.ts +6 -10
  18. package/src/main/conversation/message/MessageService.ts +8 -2
  19. package/src/main/conversation/message/PayloadBundle.d.ts +5 -1
  20. package/src/main/conversation/message/PayloadBundle.js +1 -0
  21. package/src/main/conversation/message/PayloadBundle.js.map +1 -1
  22. package/src/main/conversation/message/PayloadBundle.ts +4 -0
  23. package/src/main/cryptography/GenericMessageMapper.d.ts +0 -1
  24. package/src/main/cryptography/GenericMessageMapper.js +23 -158
  25. package/src/main/cryptography/GenericMessageMapper.js.map +1 -1
  26. 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 GenericMessageMapper.mapButtonActionMessage(genericMessage, event, source);
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
  }