@wireapp/core 46.0.16 → 46.0.18

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