@wireapp/core 46.0.18 → 46.1.0-hotfix-1.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/lib/Account.js +56 -43
- package/lib/account/AccountService.js +0 -1
- package/lib/broadcast/BroadcastService.js +0 -3
- package/lib/client/ClientBackendRepository.js +0 -1
- package/lib/client/ClientDatabaseRepository.js +7 -16
- package/lib/client/ClientService.d.ts.map +1 -1
- package/lib/client/ClientService.js +13 -14
- package/lib/connection/ConnectionService.js +0 -1
- package/lib/conversation/AssetService/AssetService.d.ts +1 -0
- package/lib/conversation/AssetService/AssetService.d.ts.map +1 -1
- package/lib/conversation/AssetService/AssetService.js +6 -13
- package/lib/conversation/AssetService/AssetService.test.js +1 -1
- package/lib/conversation/ConversationService/ConversationService.d.ts.map +1 -1
- package/lib/conversation/ConversationService/ConversationService.js +80 -90
- package/lib/conversation/ConversationService/ConversationService.test.js +5 -12
- package/lib/conversation/ConversationService/Utility/getConversationQualifiedMembers.d.ts.map +1 -1
- package/lib/conversation/MessageTimer/MessageTimer.js +0 -2
- package/lib/conversation/SubconversationService/SubconversationService.d.ts +8 -0
- package/lib/conversation/SubconversationService/SubconversationService.d.ts.map +1 -1
- package/lib/conversation/SubconversationService/SubconversationService.js +51 -23
- package/lib/conversation/content/AssetContent.d.ts +1 -0
- package/lib/conversation/content/AssetContent.d.ts.map +1 -1
- package/lib/conversation/content/ContentType.js +19 -18
- package/lib/conversation/content/FileContent.d.ts +1 -0
- package/lib/conversation/content/FileContent.d.ts.map +1 -1
- package/lib/conversation/content/ImageContent.d.ts +1 -0
- package/lib/conversation/content/ImageContent.d.ts.map +1 -1
- package/lib/conversation/message/MessageBuilder.js +23 -22
- package/lib/conversation/message/MessageService.js +4 -5
- package/lib/conversation/message/MessageService.test.js +9 -20
- package/lib/conversation/message/MessageToProtoMapper.js +2 -2
- package/lib/conversation/message/RecipientsHelper.js +2 -1
- package/lib/conversation/message/TextContentBuilder.js +2 -3
- package/lib/conversation/message/UserClientsUtil.js +3 -2
- package/lib/conversation/message/messageSender.js +6 -5
- package/lib/cryptography/AssetCryptography/AssetCryptography.d.ts.map +1 -1
- package/lib/cryptography/GenericMessageMapper.js +22 -74
- package/lib/cryptography/MessageHashService.d.ts +1 -0
- package/lib/cryptography/MessageHashService.d.ts.map +1 -1
- package/lib/cryptography/MessageHashService.js +0 -2
- package/lib/errors/DecryptionError.js +0 -2
- package/lib/errors/FederatedBackendsError.js +2 -3
- package/lib/giphy/GiphyService.js +0 -1
- package/lib/linkPreview/LinkPreviewService.js +12 -2
- package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/AcmeService.d.ts +4 -4
- package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/AcmeService.js +8 -9
- package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/schema.d.ts +8 -8
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.js +3 -33
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.test.js +11 -11
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.js +5 -15
- package/lib/messagingProtocols/mls/E2EIdentityService/Helper/index.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Helper/index.js +0 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Steps/Account.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Steps/Account.js +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Steps/Authorization.d.ts +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Steps/Authorization.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Steps/Authorization.js +3 -2
- package/lib/messagingProtocols/mls/E2EIdentityService/Steps/Certificate.js +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Steps/Order.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Steps/Order.js +2 -2
- package/lib/messagingProtocols/mls/E2EIdentityService/Storage/E2EIStorage.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Storage/E2EIStorage.js +2 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Storage/E2EIStorage.schema.d.ts +4 -4
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingMessagesQueue/IncomingMesssagesQueue.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.js +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/welcomeMessage/welcomeMessage.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/welcomeMessage/welcomeMessage.js +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/welcomeMessage/welcomeMessage.test.js +3 -7
- package/lib/messagingProtocols/mls/MLSService/ClientMLSError.js +0 -1
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/MLSService/MLSService.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/MLSService/MLSService.js +115 -110
- package/lib/messagingProtocols/mls/MLSService/MLSService.test.js +9 -31
- package/lib/messagingProtocols/mls/MLSService/commitBundleUtil.js +2 -1
- package/lib/messagingProtocols/mls/conversationRejoinQueue.js +4 -3
- package/lib/messagingProtocols/mls/utils/MLSId.js +3 -2
- package/lib/messagingProtocols/proteus/EventHandler/events/otrMessageAdd/otrMessageAdd.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/CoreCryptoWrapper.js +2 -6
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/PrekeysTracker/PrekeysTracker.js +0 -3
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/PrekeysTracker/PrekeysTracker.store.js +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoboxWrapper.js +4 -5
- package/lib/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.js +2 -1
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.js +16 -20
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.mocks.d.ts +7 -4
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.mocks.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.test.js +15 -15
- package/lib/messagingProtocols/proteus/ProteusService/cryptoMigrationStateStore.js +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/identityClearer.js +2 -1
- package/lib/messagingProtocols/proteus/ProteusService/sessionIdMigrator.js +3 -2
- package/lib/messagingProtocols/proteus/ProteusService/userDomainFilters.js +2 -1
- package/lib/messagingProtocols/proteus/Utility/Recipients.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/Utility/SessionHandler/SessionHandler.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/Utility/SessionHandler/SessionHandler.js +14 -14
- package/lib/messagingProtocols/proteus/Utility/SessionHandler/SessionHandler.test.js +2 -5
- package/lib/messagingProtocols/proteus/Utility/getGenericMessageParams.d.ts.map +1 -1
- package/lib/notification/NotificationBackendRepository.d.ts +1 -1
- package/lib/notification/NotificationBackendRepository.js +0 -1
- package/lib/notification/NotificationDatabaseRepository.js +0 -1
- package/lib/notification/NotificationService.js +49 -38
- package/lib/secretStore/encryptedStore.js +22 -10
- package/lib/secretStore/secretKeyGenerator.js +2 -2
- package/lib/secretStore/secretKeyGenerator.test.js +1 -1
- package/lib/self/SelfService.js +1 -2
- package/lib/storage/CoreDB.js +3 -2
- package/lib/team/TeamService.js +0 -1
- package/lib/test/PayloadHelper.js +4 -3
- package/lib/testUtils/index.js +3 -2
- package/lib/user/UserService.d.ts +2 -2
- package/lib/user/UserService.js +0 -1
- package/lib/util/LocalStorageStore/index.d.ts.map +1 -1
- package/lib/util/LowPrecisionTaskScheduler/LowPrecisionTaskScheduler.js +6 -4
- package/lib/util/RecurringTaskScheduler/RecurringTaskScheduler.d.ts.map +1 -1
- package/lib/util/RecurringTaskScheduler/RecurringTaskScheduler.js +33 -34
- package/lib/util/TaskScheduler/TaskScheduler.d.ts +1 -1
- package/lib/util/TaskScheduler/TaskScheduler.d.ts.map +1 -1
- package/lib/util/TypePredicateUtil.js +10 -7
- package/lib/util/fullyQualifiedClientIdUtils.js +2 -1
- package/package.json +4 -4
|
@@ -18,28 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.createId =
|
|
22
|
-
exports.buildButtonActionMessage = buildButtonActionMessage;
|
|
23
|
-
exports.buildButtonActionConfirmationMessage = buildButtonActionConfirmationMessage;
|
|
24
|
-
exports.buildCompositeMessage = buildCompositeMessage;
|
|
25
|
-
exports.buildConfirmationMessage = buildConfirmationMessage;
|
|
26
|
-
exports.buildEditedTextMessage = buildEditedTextMessage;
|
|
27
|
-
exports.buildFileDataMessage = buildFileDataMessage;
|
|
28
|
-
exports.buildFileMetaDataMessage = buildFileMetaDataMessage;
|
|
29
|
-
exports.buildFileAbortMessage = buildFileAbortMessage;
|
|
30
|
-
exports.buildLastReadMessage = buildLastReadMessage;
|
|
31
|
-
exports.buildDataTransferMessage = buildDataTransferMessage;
|
|
32
|
-
exports.buildClearedMessage = buildClearedMessage;
|
|
33
|
-
exports.buildImageMessage = buildImageMessage;
|
|
34
|
-
exports.buildLocationMessage = buildLocationMessage;
|
|
35
|
-
exports.buildPingMessage = buildPingMessage;
|
|
36
|
-
exports.buildReactionMessage = buildReactionMessage;
|
|
37
|
-
exports.buildSessionResetMessage = buildSessionResetMessage;
|
|
38
|
-
exports.buildCallMessage = buildCallMessage;
|
|
39
|
-
exports.buildDeleteMessage = buildDeleteMessage;
|
|
40
|
-
exports.buildHideMessage = buildHideMessage;
|
|
41
|
-
exports.buildTextMessage = buildTextMessage;
|
|
42
|
-
exports.wrapInEphemeral = wrapInEphemeral;
|
|
21
|
+
exports.wrapInEphemeral = exports.buildTextMessage = exports.buildHideMessage = exports.buildDeleteMessage = exports.buildCallMessage = exports.buildSessionResetMessage = exports.buildReactionMessage = exports.buildPingMessage = exports.buildLocationMessage = exports.buildImageMessage = exports.buildClearedMessage = exports.buildDataTransferMessage = exports.buildLastReadMessage = exports.buildFileAbortMessage = exports.buildFileMetaDataMessage = exports.buildFileDataMessage = exports.buildEditedTextMessage = exports.buildConfirmationMessage = exports.buildCompositeMessage = exports.buildButtonActionConfirmationMessage = exports.buildButtonActionMessage = exports.createId = void 0;
|
|
43
22
|
const uuid_1 = require("uuid");
|
|
44
23
|
const protocol_messaging_1 = require("@wireapp/protocol-messaging");
|
|
45
24
|
const AssetTransferState_1 = require("../AssetTransferState");
|
|
@@ -48,24 +27,28 @@ const MessageToProtoMapper_1 = require("../message/MessageToProtoMapper");
|
|
|
48
27
|
function createId() {
|
|
49
28
|
return (0, uuid_1.v4)();
|
|
50
29
|
}
|
|
30
|
+
exports.createId = createId;
|
|
51
31
|
function buildButtonActionMessage(payloadBundle) {
|
|
52
32
|
return protocol_messaging_1.GenericMessage.create({
|
|
53
33
|
[GenericMessageType_1.GenericMessageType.BUTTON_ACTION]: protocol_messaging_1.ButtonAction.create(payloadBundle),
|
|
54
34
|
messageId: createId(),
|
|
55
35
|
});
|
|
56
36
|
}
|
|
37
|
+
exports.buildButtonActionMessage = buildButtonActionMessage;
|
|
57
38
|
function buildButtonActionConfirmationMessage(payloadBundle) {
|
|
58
39
|
return protocol_messaging_1.GenericMessage.create({
|
|
59
40
|
[GenericMessageType_1.GenericMessageType.BUTTON_ACTION_CONFIRMATION]: protocol_messaging_1.ButtonActionConfirmation.create(payloadBundle),
|
|
60
41
|
messageId: createId(),
|
|
61
42
|
});
|
|
62
43
|
}
|
|
44
|
+
exports.buildButtonActionConfirmationMessage = buildButtonActionConfirmationMessage;
|
|
63
45
|
function buildCompositeMessage(payload) {
|
|
64
46
|
return protocol_messaging_1.GenericMessage.create({
|
|
65
47
|
[GenericMessageType_1.GenericMessageType.COMPOSITE]: protocol_messaging_1.Composite.create(payload),
|
|
66
48
|
messageId: createId(),
|
|
67
49
|
});
|
|
68
50
|
}
|
|
51
|
+
exports.buildCompositeMessage = buildCompositeMessage;
|
|
69
52
|
function buildConfirmationMessage(payloadBundle) {
|
|
70
53
|
const content = protocol_messaging_1.Confirmation.create(payloadBundle);
|
|
71
54
|
return protocol_messaging_1.GenericMessage.create({
|
|
@@ -73,6 +56,7 @@ function buildConfirmationMessage(payloadBundle) {
|
|
|
73
56
|
messageId: createId(),
|
|
74
57
|
});
|
|
75
58
|
}
|
|
59
|
+
exports.buildConfirmationMessage = buildConfirmationMessage;
|
|
76
60
|
function buildEditedTextMessage(payloadBundle, messageId = createId()) {
|
|
77
61
|
const editedMessage = protocol_messaging_1.MessageEdit.create({
|
|
78
62
|
replacingMessageId: payloadBundle.originalMessageId,
|
|
@@ -83,6 +67,7 @@ function buildEditedTextMessage(payloadBundle, messageId = createId()) {
|
|
|
83
67
|
messageId,
|
|
84
68
|
});
|
|
85
69
|
}
|
|
70
|
+
exports.buildEditedTextMessage = buildEditedTextMessage;
|
|
86
71
|
function buildFileDataMessage(payloadBundle, messageId = createId()) {
|
|
87
72
|
const { asset, expectsReadConfirmation, legalHoldStatus } = payloadBundle;
|
|
88
73
|
const remoteData = protocol_messaging_1.Asset.RemoteData.create({
|
|
@@ -104,6 +89,7 @@ function buildFileDataMessage(payloadBundle, messageId = createId()) {
|
|
|
104
89
|
});
|
|
105
90
|
return genericMessage;
|
|
106
91
|
}
|
|
92
|
+
exports.buildFileDataMessage = buildFileDataMessage;
|
|
107
93
|
function buildFileMetaDataMessage(payloadBundle, messageId = createId()) {
|
|
108
94
|
const { expectsReadConfirmation, legalHoldStatus, metaData } = payloadBundle;
|
|
109
95
|
const original = protocol_messaging_1.Asset.Original.create({
|
|
@@ -125,6 +111,7 @@ function buildFileMetaDataMessage(payloadBundle, messageId = createId()) {
|
|
|
125
111
|
});
|
|
126
112
|
return genericMessage;
|
|
127
113
|
}
|
|
114
|
+
exports.buildFileMetaDataMessage = buildFileMetaDataMessage;
|
|
128
115
|
function buildFileAbortMessage(payloadBundle, messageId = createId()) {
|
|
129
116
|
const { expectsReadConfirmation, legalHoldStatus, reason } = payloadBundle;
|
|
130
117
|
const assetMessage = protocol_messaging_1.Asset.create({
|
|
@@ -139,6 +126,7 @@ function buildFileAbortMessage(payloadBundle, messageId = createId()) {
|
|
|
139
126
|
});
|
|
140
127
|
return genericMessage;
|
|
141
128
|
}
|
|
129
|
+
exports.buildFileAbortMessage = buildFileAbortMessage;
|
|
142
130
|
function buildLastReadMessage(conversationId, lastReadTimestamp) {
|
|
143
131
|
const lastRead = new protocol_messaging_1.LastRead({
|
|
144
132
|
conversationId: conversationId.id,
|
|
@@ -150,6 +138,7 @@ function buildLastReadMessage(conversationId, lastReadTimestamp) {
|
|
|
150
138
|
messageId: createId(),
|
|
151
139
|
});
|
|
152
140
|
}
|
|
141
|
+
exports.buildLastReadMessage = buildLastReadMessage;
|
|
153
142
|
function buildDataTransferMessage(identifier) {
|
|
154
143
|
const dataTransfer = new protocol_messaging_1.DataTransfer({
|
|
155
144
|
trackingIdentifier: {
|
|
@@ -161,6 +150,7 @@ function buildDataTransferMessage(identifier) {
|
|
|
161
150
|
messageId: createId(),
|
|
162
151
|
});
|
|
163
152
|
}
|
|
153
|
+
exports.buildDataTransferMessage = buildDataTransferMessage;
|
|
164
154
|
function buildClearedMessage(conversationId, timestamp = Date.now()) {
|
|
165
155
|
const clearedMessage = protocol_messaging_1.Cleared.create({
|
|
166
156
|
clearedTimestamp: timestamp,
|
|
@@ -171,6 +161,7 @@ function buildClearedMessage(conversationId, timestamp = Date.now()) {
|
|
|
171
161
|
messageId: createId(),
|
|
172
162
|
});
|
|
173
163
|
}
|
|
164
|
+
exports.buildClearedMessage = buildClearedMessage;
|
|
174
165
|
function buildImageMessage(payloadBundle, messageId = createId()) {
|
|
175
166
|
const imageAsset = buildAsset(payloadBundle);
|
|
176
167
|
const genericMessage = protocol_messaging_1.GenericMessage.create({
|
|
@@ -179,6 +170,7 @@ function buildImageMessage(payloadBundle, messageId = createId()) {
|
|
|
179
170
|
});
|
|
180
171
|
return genericMessage;
|
|
181
172
|
}
|
|
173
|
+
exports.buildImageMessage = buildImageMessage;
|
|
182
174
|
function buildLocationMessage(payloadBundle) {
|
|
183
175
|
const { expectsReadConfirmation, latitude, legalHoldStatus, longitude, name, zoom } = payloadBundle;
|
|
184
176
|
const locationMessage = protocol_messaging_1.Location.create({
|
|
@@ -195,6 +187,7 @@ function buildLocationMessage(payloadBundle) {
|
|
|
195
187
|
});
|
|
196
188
|
return genericMessage;
|
|
197
189
|
}
|
|
190
|
+
exports.buildLocationMessage = buildLocationMessage;
|
|
198
191
|
function buildPingMessage(payloadBundle) {
|
|
199
192
|
const content = protocol_messaging_1.Knock.create(payloadBundle);
|
|
200
193
|
const genericMessage = protocol_messaging_1.GenericMessage.create({
|
|
@@ -203,6 +196,7 @@ function buildPingMessage(payloadBundle) {
|
|
|
203
196
|
});
|
|
204
197
|
return genericMessage;
|
|
205
198
|
}
|
|
199
|
+
exports.buildPingMessage = buildPingMessage;
|
|
206
200
|
function buildReactionMessage(payloadBundle) {
|
|
207
201
|
const { legalHoldStatus, originalMessageId, type } = payloadBundle;
|
|
208
202
|
const reaction = protocol_messaging_1.Reaction.create({
|
|
@@ -216,12 +210,14 @@ function buildReactionMessage(payloadBundle) {
|
|
|
216
210
|
});
|
|
217
211
|
return genericMessage;
|
|
218
212
|
}
|
|
213
|
+
exports.buildReactionMessage = buildReactionMessage;
|
|
219
214
|
function buildSessionResetMessage() {
|
|
220
215
|
return protocol_messaging_1.GenericMessage.create({
|
|
221
216
|
[GenericMessageType_1.GenericMessageType.CLIENT_ACTION]: protocol_messaging_1.ClientAction.RESET_SESSION,
|
|
222
217
|
messageId: createId(),
|
|
223
218
|
});
|
|
224
219
|
}
|
|
220
|
+
exports.buildSessionResetMessage = buildSessionResetMessage;
|
|
225
221
|
function buildCallMessage(payload) {
|
|
226
222
|
const callMessage = protocol_messaging_1.Calling.create(payload);
|
|
227
223
|
return protocol_messaging_1.GenericMessage.create({
|
|
@@ -229,6 +225,7 @@ function buildCallMessage(payload) {
|
|
|
229
225
|
messageId: createId(),
|
|
230
226
|
});
|
|
231
227
|
}
|
|
228
|
+
exports.buildCallMessage = buildCallMessage;
|
|
232
229
|
function buildDeleteMessage(payload) {
|
|
233
230
|
const content = protocol_messaging_1.MessageDelete.create(payload);
|
|
234
231
|
return protocol_messaging_1.GenericMessage.create({
|
|
@@ -236,6 +233,7 @@ function buildDeleteMessage(payload) {
|
|
|
236
233
|
messageId: createId(),
|
|
237
234
|
});
|
|
238
235
|
}
|
|
236
|
+
exports.buildDeleteMessage = buildDeleteMessage;
|
|
239
237
|
function buildHideMessage(payload) {
|
|
240
238
|
const content = protocol_messaging_1.MessageHide.create(payload);
|
|
241
239
|
return protocol_messaging_1.GenericMessage.create({
|
|
@@ -243,6 +241,7 @@ function buildHideMessage(payload) {
|
|
|
243
241
|
messageId: createId(),
|
|
244
242
|
});
|
|
245
243
|
}
|
|
244
|
+
exports.buildHideMessage = buildHideMessage;
|
|
246
245
|
function buildTextMessage(payloadBundle, messageId = createId()) {
|
|
247
246
|
const genericMessage = protocol_messaging_1.GenericMessage.create({
|
|
248
247
|
messageId,
|
|
@@ -250,6 +249,7 @@ function buildTextMessage(payloadBundle, messageId = createId()) {
|
|
|
250
249
|
});
|
|
251
250
|
return genericMessage;
|
|
252
251
|
}
|
|
252
|
+
exports.buildTextMessage = buildTextMessage;
|
|
253
253
|
function buildAsset(payloadBundle) {
|
|
254
254
|
const { asset, expectsReadConfirmation, image, legalHoldStatus } = payloadBundle;
|
|
255
255
|
const imageMetadata = protocol_messaging_1.Asset.ImageMetaData.create({
|
|
@@ -289,3 +289,4 @@ function wrapInEphemeral(originalGenericMessage, expireAfterMillis) {
|
|
|
289
289
|
});
|
|
290
290
|
return genericMessage;
|
|
291
291
|
}
|
|
292
|
+
exports.wrapInEphemeral = wrapInEphemeral;
|
|
@@ -30,8 +30,6 @@ const long_1 = __importDefault(require("long"));
|
|
|
30
30
|
const UserClientsUtil_1 = require("./UserClientsUtil");
|
|
31
31
|
const util_1 = require("../../util");
|
|
32
32
|
class MessageService {
|
|
33
|
-
apiClient;
|
|
34
|
-
proteusService;
|
|
35
33
|
constructor(apiClient, proteusService) {
|
|
36
34
|
this.apiClient = apiClient;
|
|
37
35
|
this.proteusService = proteusService;
|
|
@@ -52,7 +50,7 @@ class MessageService {
|
|
|
52
50
|
const encryptionResults = await this.proteusService.encrypt(plainText, recipients);
|
|
53
51
|
const send = async ({ payloads, unknowns, failed }) => {
|
|
54
52
|
const result = await this.sendOtrMessage(sendingClientId, payloads, options);
|
|
55
|
-
const extras = { failed, deleted: unknowns
|
|
53
|
+
const extras = { failed, deleted: unknowns !== null && unknowns !== void 0 ? unknowns : {} };
|
|
56
54
|
return (0, deepmerge_ts_1.deepmerge)(result, extras);
|
|
57
55
|
};
|
|
58
56
|
try {
|
|
@@ -65,7 +63,7 @@ class MessageService {
|
|
|
65
63
|
const mismatch = error.response.data;
|
|
66
64
|
const shouldStopSending = options.onClientMismatch && (await options.onClientMismatch(mismatch)) === false;
|
|
67
65
|
if (shouldStopSending) {
|
|
68
|
-
return {
|
|
66
|
+
return Object.assign(Object.assign({}, mismatch), { canceled: true });
|
|
69
67
|
}
|
|
70
68
|
const reEncryptedPayload = await this.reencryptAfterMismatch(mismatch, encryptionResults, plainText);
|
|
71
69
|
return send(reEncryptedPayload);
|
|
@@ -119,7 +117,8 @@ class MessageService {
|
|
|
119
117
|
return this.apiClient.api.conversation.postOTRMessage(id, domain, protoMessage);
|
|
120
118
|
}
|
|
121
119
|
isClientMismatchError(error) {
|
|
122
|
-
|
|
120
|
+
var _a;
|
|
121
|
+
return ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === http_status_codes_1.StatusCodes.PRECONDITION_FAILED;
|
|
123
122
|
}
|
|
124
123
|
/**
|
|
125
124
|
* Will re-encrypt a message when there were some missing clients in the initial send (typically when the server replies with a client mismatch error)
|
|
@@ -45,7 +45,7 @@ const user2 = {
|
|
|
45
45
|
function generateQualifiedRecipients(users) {
|
|
46
46
|
const payload = {};
|
|
47
47
|
users.forEach(({ id, domain, clients }) => {
|
|
48
|
-
payload[domain]
|
|
48
|
+
payload[domain] || (payload[domain] = {});
|
|
49
49
|
payload[domain][id] = clients;
|
|
50
50
|
});
|
|
51
51
|
return payload;
|
|
@@ -104,7 +104,7 @@ describe('MessageService', () => {
|
|
|
104
104
|
conversationId: { id: 'convid', domain: 'domain' },
|
|
105
105
|
});
|
|
106
106
|
expect(apiClient.api.conversation.postOTRMessage).toHaveBeenCalled();
|
|
107
|
-
expect(result).toEqual({
|
|
107
|
+
expect(result).toEqual(Object.assign(Object.assign({}, baseMessageSendingStatus), { failed: undefined }));
|
|
108
108
|
});
|
|
109
109
|
it('should send regular to conversation', async () => {
|
|
110
110
|
const [messageService, { apiClient }] = await buildMessageService();
|
|
@@ -137,10 +137,7 @@ describe('MessageService', () => {
|
|
|
137
137
|
it('handles client mismatch when no other clients from that domain are known', async () => {
|
|
138
138
|
const [messageService, { apiClient }] = await buildMessageService();
|
|
139
139
|
let spyCounter = 0;
|
|
140
|
-
const clientMismatch = {
|
|
141
|
-
...baseClientMismatch,
|
|
142
|
-
missing: { [user1.domain]: { [user1.id]: ['client'] } },
|
|
143
|
-
};
|
|
140
|
+
const clientMismatch = Object.assign(Object.assign({}, baseClientMismatch), { missing: { [user1.domain]: { [user1.id]: ['client'] } } });
|
|
144
141
|
jest.spyOn(apiClient.api.conversation, 'postOTRMessage').mockImplementation(() => {
|
|
145
142
|
spyCounter++;
|
|
146
143
|
if (spyCounter === 1) {
|
|
@@ -166,11 +163,7 @@ describe('MessageService', () => {
|
|
|
166
163
|
it('handles client mismatch internally if no onClientMismatch is given', async () => {
|
|
167
164
|
const [messageService, { apiClient }] = await buildMessageService();
|
|
168
165
|
let spyCounter = 0;
|
|
169
|
-
const clientMismatch = {
|
|
170
|
-
...baseClientMismatch,
|
|
171
|
-
deleted: { [user1.domain]: { [user1.id]: [user1.clients[0]] } },
|
|
172
|
-
missing: { [user2.domain]: { [user2.id]: ['client22'] } },
|
|
173
|
-
};
|
|
166
|
+
const clientMismatch = Object.assign(Object.assign({}, baseClientMismatch), { deleted: { [user1.domain]: { [user1.id]: [user1.clients[0]] } }, missing: { [user2.domain]: { [user2.id]: ['client22'] } } });
|
|
174
167
|
jest.spyOn(apiClient.api.conversation, 'postOTRMessage').mockImplementation(() => {
|
|
175
168
|
spyCounter++;
|
|
176
169
|
if (spyCounter === 1) {
|
|
@@ -196,7 +189,7 @@ describe('MessageService', () => {
|
|
|
196
189
|
it('continues message sending if onClientMismatch returns true', async () => {
|
|
197
190
|
const [messageService, { apiClient }] = await buildMessageService();
|
|
198
191
|
const onClientMismatch = jest.fn().mockReturnValue(Promise.resolve(true));
|
|
199
|
-
const clientMismatch = {
|
|
192
|
+
const clientMismatch = Object.assign(Object.assign({}, baseClientMismatch), { missing: { [user2.domain]: { [user2.id]: ['client22'] } } });
|
|
200
193
|
let spyCounter = 0;
|
|
201
194
|
jest.spyOn(apiClient.api.conversation, 'postOTRMessage').mockImplementation(() => {
|
|
202
195
|
spyCounter++;
|
|
@@ -225,7 +218,7 @@ describe('MessageService', () => {
|
|
|
225
218
|
it('stops message sending if onClientMismatch returns false', async () => {
|
|
226
219
|
const [messageService, { apiClient }] = await buildMessageService();
|
|
227
220
|
const onClientMismatch = jest.fn().mockReturnValue(Promise.resolve(false));
|
|
228
|
-
const clientMismatch = {
|
|
221
|
+
const clientMismatch = Object.assign(Object.assign({}, baseMessageSendingStatus), { missing: { [user2.id]: ['client22'] } });
|
|
229
222
|
jest.spyOn(apiClient.api.conversation, 'postOTRMessage').mockImplementation(() => {
|
|
230
223
|
const error = new Error();
|
|
231
224
|
error.response = {
|
|
@@ -251,11 +244,7 @@ describe('MessageService', () => {
|
|
|
251
244
|
it('handles client mismatch internally if no onClientMismatch is given', async () => {
|
|
252
245
|
const [messageService, { apiClient }] = await buildMessageService();
|
|
253
246
|
let spyCounter = 0;
|
|
254
|
-
const clientMismatch = {
|
|
255
|
-
...baseMessageSendingStatus,
|
|
256
|
-
deleted: { [user1.domain]: { [user1.id]: [user1.clients[0]] } },
|
|
257
|
-
missing: { '2.wire.test': { [user2.id]: ['client22'] } },
|
|
258
|
-
};
|
|
247
|
+
const clientMismatch = Object.assign(Object.assign({}, baseMessageSendingStatus), { deleted: { [user1.domain]: { [user1.id]: [user1.clients[0]] } }, missing: { '2.wire.test': { [user2.id]: ['client22'] } } });
|
|
259
248
|
jest.spyOn(apiClient.api.conversation, 'postOTRMessage').mockImplementation(() => {
|
|
260
249
|
spyCounter++;
|
|
261
250
|
if (spyCounter === 1) {
|
|
@@ -281,7 +270,7 @@ describe('MessageService', () => {
|
|
|
281
270
|
it('continues message sending if onClientMismatch returns true', async () => {
|
|
282
271
|
const [messageService, { apiClient }] = await buildMessageService();
|
|
283
272
|
const onClientMismatch = jest.fn().mockReturnValue(true);
|
|
284
|
-
const clientMismatch = {
|
|
273
|
+
const clientMismatch = Object.assign(Object.assign({}, baseMessageSendingStatus), { missing: { '2.wire.test': { [user2.id]: ['client22'] } } });
|
|
285
274
|
let spyCounter = 0;
|
|
286
275
|
jest.spyOn(apiClient.api.conversation, 'postOTRMessage').mockImplementation(() => {
|
|
287
276
|
spyCounter++;
|
|
@@ -331,7 +320,7 @@ describe('MessageService', () => {
|
|
|
331
320
|
it('stops message sending if onClientMismatch returns false', async () => {
|
|
332
321
|
const [messageService, { apiClient }] = await buildMessageService();
|
|
333
322
|
const onClientMismatch = jest.fn().mockReturnValue(false);
|
|
334
|
-
const clientMismatch = {
|
|
323
|
+
const clientMismatch = Object.assign(Object.assign({}, baseMessageSendingStatus), { missing: { '2.wire.test': { [user2.id]: ['client22'] } } });
|
|
335
324
|
jest.spyOn(apiClient.api.conversation, 'postOTRMessage').mockImplementation(() => {
|
|
336
325
|
const error = new Error();
|
|
337
326
|
error.response = {
|
|
@@ -80,10 +80,10 @@ class MessageToProtoMapper {
|
|
|
80
80
|
expectsReadConfirmation,
|
|
81
81
|
legalHoldStatus,
|
|
82
82
|
});
|
|
83
|
-
if (linkPreviews
|
|
83
|
+
if (linkPreviews === null || linkPreviews === void 0 ? void 0 : linkPreviews.length) {
|
|
84
84
|
textMessage.linkPreview = MessageToProtoMapper.mapLinkPreviews(linkPreviews);
|
|
85
85
|
}
|
|
86
|
-
if (mentions
|
|
86
|
+
if (mentions === null || mentions === void 0 ? void 0 : mentions.length) {
|
|
87
87
|
textMessage.mentions = mentions.map(mention => protocol_messaging_1.Mention.create(mention));
|
|
88
88
|
}
|
|
89
89
|
if (quote) {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.recipientsToBase64 =
|
|
21
|
+
exports.recipientsToBase64 = void 0;
|
|
22
22
|
const bazinga64_1 = require("bazinga64");
|
|
23
23
|
function recipientsToBase64(recipients) {
|
|
24
24
|
return Object.fromEntries(Object.entries(recipients).map(([userId, otrClientMap]) => {
|
|
@@ -28,3 +28,4 @@ function recipientsToBase64(recipients) {
|
|
|
28
28
|
return [userId, otrClientMapWithBase64];
|
|
29
29
|
}));
|
|
30
30
|
}
|
|
31
|
+
exports.recipientsToBase64 = recipientsToBase64;
|
|
@@ -21,7 +21,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
exports.TextContentBuilder = void 0;
|
|
22
22
|
const content_1 = require("../content");
|
|
23
23
|
class TextContentBuilder {
|
|
24
|
-
content;
|
|
25
24
|
constructor(textContent) {
|
|
26
25
|
this.content = textContent;
|
|
27
26
|
}
|
|
@@ -29,13 +28,13 @@ class TextContentBuilder {
|
|
|
29
28
|
return this.content;
|
|
30
29
|
}
|
|
31
30
|
withLinkPreviews(linkPreviews) {
|
|
32
|
-
if (linkPreviews
|
|
31
|
+
if (linkPreviews === null || linkPreviews === void 0 ? void 0 : linkPreviews.length) {
|
|
33
32
|
this.content.linkPreviews = linkPreviews;
|
|
34
33
|
}
|
|
35
34
|
return this;
|
|
36
35
|
}
|
|
37
36
|
withMentions(mentions) {
|
|
38
|
-
if (mentions
|
|
37
|
+
if (mentions === null || mentions === void 0 ? void 0 : mentions.length) {
|
|
39
38
|
this.content.mentions = mentions;
|
|
40
39
|
}
|
|
41
40
|
return this;
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.flattenUserMap =
|
|
22
|
-
exports.nestUsersList = nestUsersList;
|
|
21
|
+
exports.nestUsersList = exports.flattenUserMap = void 0;
|
|
23
22
|
/**
|
|
24
23
|
* Will flatten a container of domain=>users=>anything infos to an array
|
|
25
24
|
*
|
|
@@ -31,6 +30,7 @@ function flattenUserMap(userMap) {
|
|
|
31
30
|
return [...ids, ...Object.entries(userClients).map(([id, data]) => ({ data, userId: { domain, id } }))];
|
|
32
31
|
}, []);
|
|
33
32
|
}
|
|
33
|
+
exports.flattenUserMap = flattenUserMap;
|
|
34
34
|
/**
|
|
35
35
|
* Will convert a list of qualified users to a UserMap
|
|
36
36
|
* @param users the list of users to convert
|
|
@@ -44,3 +44,4 @@ function nestUsersList(users) {
|
|
|
44
44
|
return users;
|
|
45
45
|
}, {});
|
|
46
46
|
}
|
|
47
|
+
exports.nestUsersList = nestUsersList;
|
|
@@ -18,25 +18,26 @@
|
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.sendMessage =
|
|
22
|
-
exports.getQueueLength = getQueueLength;
|
|
23
|
-
exports.isSendingMessage = isSendingMessage;
|
|
24
|
-
exports.resumeMessageSending = resumeMessageSending;
|
|
25
|
-
exports.pauseMessageSending = pauseMessageSending;
|
|
21
|
+
exports.pauseMessageSending = exports.resumeMessageSending = exports.isSendingMessage = exports.getQueueLength = exports.sendMessage = void 0;
|
|
26
22
|
const promise_queue_1 = require("@wireapp/promise-queue");
|
|
27
23
|
const sendingQueue = new promise_queue_1.PromiseQueue({ name: 'message-sender', paused: true });
|
|
28
24
|
function sendMessage(sendingFunction) {
|
|
29
25
|
return sendingQueue.push(sendingFunction);
|
|
30
26
|
}
|
|
27
|
+
exports.sendMessage = sendMessage;
|
|
31
28
|
function getQueueLength() {
|
|
32
29
|
return sendingQueue.getLength();
|
|
33
30
|
}
|
|
31
|
+
exports.getQueueLength = getQueueLength;
|
|
34
32
|
function isSendingMessage() {
|
|
35
33
|
return sendingQueue.hasRunningTasks();
|
|
36
34
|
}
|
|
35
|
+
exports.isSendingMessage = isSendingMessage;
|
|
37
36
|
function resumeMessageSending() {
|
|
38
37
|
sendingQueue.pause(false);
|
|
39
38
|
}
|
|
39
|
+
exports.resumeMessageSending = resumeMessageSending;
|
|
40
40
|
function pauseMessageSending() {
|
|
41
41
|
sendingQueue.pause(true);
|
|
42
42
|
}
|
|
43
|
+
exports.pauseMessageSending = pauseMessageSending;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetCryptography.d.ts","sourceRoot":"","sources":["../../../src/cryptography/AssetCryptography/AssetCryptography.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAG5D,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAYhD,UAAU,cAAe,SAAQ,aAAa;IAC5C,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,uDAItB,cAAc,KAAG,
|
|
1
|
+
{"version":3,"file":"AssetCryptography.d.ts","sourceRoot":"","sources":["../../../src/cryptography/AssetCryptography/AssetCryptography.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAG5D,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAYhD,UAAU,cAAe,SAAQ,aAAa;IAC5C,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,uDAItB,cAAc,KAAG,QAAQ,UAAU,CAQrC,CAAC;AAEF,eAAO,MAAM,YAAY,6BAAkD,cAAc,KAAG,QAAQ,cAAc,CAiBjH,CAAC"}
|
|
@@ -25,10 +25,6 @@ exports.GenericMessageMapper = void 0;
|
|
|
25
25
|
const logdown_1 = __importDefault(require("logdown"));
|
|
26
26
|
const conversation_1 = require("../conversation");
|
|
27
27
|
class GenericMessageMapper {
|
|
28
|
-
static logger = (0, logdown_1.default)('@wireapp/core/GenericMessageMapper', {
|
|
29
|
-
logger: console,
|
|
30
|
-
markdown: false,
|
|
31
|
-
});
|
|
32
28
|
// TODO: Turn "any" into a specific type (or collection of types) and make the return type more specific based on the
|
|
33
29
|
// "genericMessage" input parameter.
|
|
34
30
|
static mapGenericMessage(genericMessage, event, source) {
|
|
@@ -48,10 +44,10 @@ class GenericMessageMapper {
|
|
|
48
44
|
case conversation_1.GenericMessageType.TEXT: {
|
|
49
45
|
const { content: text, expectsReadConfirmation, legalHoldStatus, linkPreview: linkPreviews, mentions, quote, } = genericMessage[conversation_1.GenericMessageType.TEXT];
|
|
50
46
|
const content = { expectsReadConfirmation, legalHoldStatus, text };
|
|
51
|
-
if (linkPreviews
|
|
47
|
+
if (linkPreviews === null || linkPreviews === void 0 ? void 0 : linkPreviews.length) {
|
|
52
48
|
content.linkPreviews = linkPreviews;
|
|
53
49
|
}
|
|
54
|
-
if (mentions
|
|
50
|
+
if (mentions === null || mentions === void 0 ? void 0 : mentions.length) {
|
|
55
51
|
content.mentions = mentions;
|
|
56
52
|
}
|
|
57
53
|
if (quote) {
|
|
@@ -60,51 +56,27 @@ class GenericMessageMapper {
|
|
|
60
56
|
if (typeof legalHoldStatus !== 'undefined') {
|
|
61
57
|
content.legalHoldStatus = legalHoldStatus;
|
|
62
58
|
}
|
|
63
|
-
return {
|
|
64
|
-
...baseMessage,
|
|
65
|
-
content,
|
|
66
|
-
type: conversation_1.PayloadBundleType.TEXT,
|
|
67
|
-
};
|
|
59
|
+
return Object.assign(Object.assign({}, baseMessage), { content, type: conversation_1.PayloadBundleType.TEXT });
|
|
68
60
|
}
|
|
69
61
|
case conversation_1.GenericMessageType.BUTTON_ACTION: {
|
|
70
|
-
return {
|
|
71
|
-
...baseMessage,
|
|
72
|
-
content: genericMessage.buttonAction,
|
|
73
|
-
type: conversation_1.PayloadBundleType.BUTTON_ACTION,
|
|
74
|
-
};
|
|
62
|
+
return Object.assign(Object.assign({}, baseMessage), { content: genericMessage.buttonAction, type: conversation_1.PayloadBundleType.BUTTON_ACTION });
|
|
75
63
|
}
|
|
76
64
|
case conversation_1.GenericMessageType.CALLING: {
|
|
77
|
-
return {
|
|
78
|
-
...baseMessage,
|
|
79
|
-
content: genericMessage.calling.content,
|
|
80
|
-
type: conversation_1.PayloadBundleType.CALL,
|
|
81
|
-
};
|
|
65
|
+
return Object.assign(Object.assign({}, baseMessage), { content: genericMessage.calling.content, type: conversation_1.PayloadBundleType.CALL });
|
|
82
66
|
}
|
|
83
67
|
case conversation_1.GenericMessageType.CONFIRMATION: {
|
|
84
68
|
const { firstMessageId, moreMessageIds, type } = genericMessage[conversation_1.GenericMessageType.CONFIRMATION];
|
|
85
69
|
const content = { firstMessageId, moreMessageIds, type };
|
|
86
|
-
return {
|
|
87
|
-
...baseMessage,
|
|
88
|
-
content,
|
|
89
|
-
type: conversation_1.PayloadBundleType.CONFIRMATION,
|
|
90
|
-
};
|
|
70
|
+
return Object.assign(Object.assign({}, baseMessage), { content, type: conversation_1.PayloadBundleType.CONFIRMATION });
|
|
91
71
|
}
|
|
92
72
|
case conversation_1.GenericMessageType.CLEARED: {
|
|
93
73
|
const content = genericMessage[conversation_1.GenericMessageType.CLEARED];
|
|
94
|
-
return {
|
|
95
|
-
...baseMessage,
|
|
96
|
-
content,
|
|
97
|
-
type: conversation_1.PayloadBundleType.CONVERSATION_CLEAR,
|
|
98
|
-
};
|
|
74
|
+
return Object.assign(Object.assign({}, baseMessage), { content, type: conversation_1.PayloadBundleType.CONVERSATION_CLEAR });
|
|
99
75
|
}
|
|
100
76
|
case conversation_1.GenericMessageType.DELETED: {
|
|
101
77
|
const originalMessageId = genericMessage[conversation_1.GenericMessageType.DELETED].messageId;
|
|
102
78
|
const content = { messageId: originalMessageId };
|
|
103
|
-
return {
|
|
104
|
-
...baseMessage,
|
|
105
|
-
content,
|
|
106
|
-
type: conversation_1.PayloadBundleType.MESSAGE_DELETE,
|
|
107
|
-
};
|
|
79
|
+
return Object.assign(Object.assign({}, baseMessage), { content, type: conversation_1.PayloadBundleType.MESSAGE_DELETE });
|
|
108
80
|
}
|
|
109
81
|
case conversation_1.GenericMessageType.EDITED: {
|
|
110
82
|
const { expectsReadConfirmation, text: { content: editedText, legalHoldStatus, linkPreview: editedLinkPreviews, mentions: editedMentions, quote: editedQuote, }, replacingMessageId, } = genericMessage[conversation_1.GenericMessageType.EDITED];
|
|
@@ -114,20 +86,16 @@ class GenericMessageMapper {
|
|
|
114
86
|
originalMessageId: replacingMessageId,
|
|
115
87
|
text: editedText,
|
|
116
88
|
};
|
|
117
|
-
if (editedLinkPreviews
|
|
89
|
+
if (editedLinkPreviews === null || editedLinkPreviews === void 0 ? void 0 : editedLinkPreviews.length) {
|
|
118
90
|
content.linkPreviews = editedLinkPreviews;
|
|
119
91
|
}
|
|
120
|
-
if (editedMentions
|
|
92
|
+
if (editedMentions === null || editedMentions === void 0 ? void 0 : editedMentions.length) {
|
|
121
93
|
content.mentions = editedMentions;
|
|
122
94
|
}
|
|
123
95
|
if (editedQuote) {
|
|
124
96
|
content.quote = editedQuote;
|
|
125
97
|
}
|
|
126
|
-
return {
|
|
127
|
-
...baseMessage,
|
|
128
|
-
content,
|
|
129
|
-
type: conversation_1.PayloadBundleType.MESSAGE_EDIT,
|
|
130
|
-
};
|
|
98
|
+
return Object.assign(Object.assign({}, baseMessage), { content, type: conversation_1.PayloadBundleType.MESSAGE_EDIT });
|
|
131
99
|
}
|
|
132
100
|
case conversation_1.GenericMessageType.HIDDEN: {
|
|
133
101
|
const { conversationId, messageId } = genericMessage[conversation_1.GenericMessageType.HIDDEN];
|
|
@@ -135,20 +103,12 @@ class GenericMessageMapper {
|
|
|
135
103
|
conversationId,
|
|
136
104
|
messageId,
|
|
137
105
|
};
|
|
138
|
-
return {
|
|
139
|
-
...baseMessage,
|
|
140
|
-
content,
|
|
141
|
-
type: conversation_1.PayloadBundleType.MESSAGE_HIDE,
|
|
142
|
-
};
|
|
106
|
+
return Object.assign(Object.assign({}, baseMessage), { content, type: conversation_1.PayloadBundleType.MESSAGE_HIDE });
|
|
143
107
|
}
|
|
144
108
|
case conversation_1.GenericMessageType.KNOCK: {
|
|
145
109
|
const { expectsReadConfirmation, legalHoldStatus } = genericMessage[conversation_1.GenericMessageType.KNOCK];
|
|
146
110
|
const content = { expectsReadConfirmation, hotKnock: false, legalHoldStatus };
|
|
147
|
-
return {
|
|
148
|
-
...baseMessage,
|
|
149
|
-
content,
|
|
150
|
-
type: conversation_1.PayloadBundleType.PING,
|
|
151
|
-
};
|
|
111
|
+
return Object.assign(Object.assign({}, baseMessage), { content, type: conversation_1.PayloadBundleType.PING });
|
|
152
112
|
}
|
|
153
113
|
case conversation_1.GenericMessageType.LOCATION: {
|
|
154
114
|
const { expectsReadConfirmation, latitude, legalHoldStatus, longitude, name, zoom } = genericMessage[conversation_1.GenericMessageType.LOCATION];
|
|
@@ -160,15 +120,11 @@ class GenericMessageMapper {
|
|
|
160
120
|
name,
|
|
161
121
|
zoom,
|
|
162
122
|
};
|
|
163
|
-
return {
|
|
164
|
-
...baseMessage,
|
|
165
|
-
content,
|
|
166
|
-
type: conversation_1.PayloadBundleType.LOCATION,
|
|
167
|
-
};
|
|
123
|
+
return Object.assign(Object.assign({}, baseMessage), { content, type: conversation_1.PayloadBundleType.LOCATION });
|
|
168
124
|
}
|
|
169
125
|
case conversation_1.GenericMessageType.ASSET: {
|
|
170
126
|
const { expectsReadConfirmation, legalHoldStatus, notUploaded, original, preview, status, uploaded } = genericMessage[conversation_1.GenericMessageType.ASSET];
|
|
171
|
-
const isImage = !!uploaded
|
|
127
|
+
const isImage = !!(uploaded === null || uploaded === void 0 ? void 0 : uploaded.assetId) && !!(original === null || original === void 0 ? void 0 : original.image);
|
|
172
128
|
const content = {
|
|
173
129
|
abortReason: notUploaded,
|
|
174
130
|
expectsReadConfirmation,
|
|
@@ -178,11 +134,7 @@ class GenericMessageMapper {
|
|
|
178
134
|
status,
|
|
179
135
|
uploaded,
|
|
180
136
|
};
|
|
181
|
-
return {
|
|
182
|
-
...baseMessage,
|
|
183
|
-
content,
|
|
184
|
-
type: isImage ? conversation_1.PayloadBundleType.ASSET_IMAGE : conversation_1.PayloadBundleType.ASSET,
|
|
185
|
-
};
|
|
137
|
+
return Object.assign(Object.assign({}, baseMessage), { content, type: isImage ? conversation_1.PayloadBundleType.ASSET_IMAGE : conversation_1.PayloadBundleType.ASSET });
|
|
186
138
|
}
|
|
187
139
|
case conversation_1.GenericMessageType.REACTION: {
|
|
188
140
|
const { emoji, legalHoldStatus, messageId } = genericMessage[conversation_1.GenericMessageType.REACTION];
|
|
@@ -191,21 +143,17 @@ class GenericMessageMapper {
|
|
|
191
143
|
originalMessageId: messageId,
|
|
192
144
|
type: emoji,
|
|
193
145
|
};
|
|
194
|
-
return {
|
|
195
|
-
...baseMessage,
|
|
196
|
-
content,
|
|
197
|
-
type: conversation_1.PayloadBundleType.REACTION,
|
|
198
|
-
};
|
|
146
|
+
return Object.assign(Object.assign({}, baseMessage), { content, type: conversation_1.PayloadBundleType.REACTION });
|
|
199
147
|
}
|
|
200
148
|
default: {
|
|
201
149
|
this.logger.warn(`Unhandled event type "${genericMessage.content}": ${JSON.stringify(genericMessage)}`);
|
|
202
|
-
return {
|
|
203
|
-
...baseMessage,
|
|
204
|
-
content: genericMessage.content,
|
|
205
|
-
type: conversation_1.PayloadBundleType.UNKNOWN,
|
|
206
|
-
};
|
|
150
|
+
return Object.assign(Object.assign({}, baseMessage), { content: genericMessage.content, type: conversation_1.PayloadBundleType.UNKNOWN });
|
|
207
151
|
}
|
|
208
152
|
}
|
|
209
153
|
}
|
|
210
154
|
}
|
|
211
155
|
exports.GenericMessageMapper = GenericMessageMapper;
|
|
156
|
+
GenericMessageMapper.logger = (0, logdown_1.default)('@wireapp/core/GenericMessageMapper', {
|
|
157
|
+
logger: console,
|
|
158
|
+
markdown: false,
|
|
159
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageHashService.d.ts","sourceRoot":"","sources":["../../src/cryptography/MessageHashService.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAC,YAAY,EAAoC,eAAe,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAErH,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,CAAC;AAEnF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,cAAc,EAAE,uBAAuB,EAAE,SAAS,GAAE,MAAmB;IAMnF,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,IAAI,MAAM;CAIlB"}
|
|
1
|
+
{"version":3,"file":"MessageHashService.d.ts","sourceRoot":"","sources":["../../src/cryptography/MessageHashService.ts"],"names":[],"mappings":";AAsBA,OAAO,EAAC,YAAY,EAAoC,eAAe,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAErH,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,CAAC;AAEnF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,cAAc,EAAE,uBAAuB,EAAE,SAAS,GAAE,MAAmB;IAMnF,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,IAAI,MAAM;CAIlB"}
|
|
@@ -49,8 +49,6 @@ const hash = __importStar(require("hash.js"));
|
|
|
49
49
|
const long_1 = __importDefault(require("long"));
|
|
50
50
|
const content_1 = require("../conversation/content");
|
|
51
51
|
class MessageHashService {
|
|
52
|
-
messageContent;
|
|
53
|
-
timestamp;
|
|
54
52
|
constructor(messageContent, timestamp = Date.now()) {
|
|
55
53
|
this.messageContent = messageContent;
|
|
56
54
|
const unixTimestamp = new Date(timestamp).getTime();
|