@wireapp/core 46.46.6-beta.10.d7a6c4c53 → 46.46.6-beta.14.f6fd03fe6
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.d.ts +51 -168
- package/lib/Account.d.ts.map +1 -1
- package/lib/Account.js +127 -517
- package/lib/Account.test.js +147 -158
- package/lib/broadcast/AvailabilityType.d.ts +1 -1
- package/lib/broadcast/AvailabilityType.d.ts.map +1 -1
- package/lib/broadcast/BroadcastService.d.ts +1 -1
- package/lib/broadcast/BroadcastService.d.ts.map +1 -1
- package/lib/broadcast/BroadcastService.js +1 -1
- package/lib/client/ClientService.d.ts +3 -4
- package/lib/client/ClientService.d.ts.map +1 -1
- package/lib/client/ClientService.js +5 -19
- package/lib/conversation/AbortReason.d.ts +1 -1
- package/lib/conversation/AbortReason.d.ts.map +1 -1
- package/lib/conversation/AssetService/AssetService.d.ts +30 -12
- package/lib/conversation/AssetService/AssetService.d.ts.map +1 -1
- package/lib/conversation/AssetService/AssetService.js +10 -1
- package/lib/conversation/AssetService/AssetService.test.js +3 -8
- package/lib/conversation/ClientActionType.d.ts +1 -1
- package/lib/conversation/ClientActionType.d.ts.map +1 -1
- package/lib/conversation/ClientActionType.js +1 -1
- package/lib/conversation/ConversationService/ConversationService.d.ts +14 -98
- package/lib/conversation/ConversationService/ConversationService.d.ts.map +1 -1
- package/lib/conversation/ConversationService/ConversationService.js +101 -314
- package/lib/conversation/ConversationService/ConversationService.test.js +47 -441
- package/lib/conversation/ConversationService/ConversationService.types.d.ts +4 -5
- package/lib/conversation/ConversationService/ConversationService.types.d.ts.map +1 -1
- package/lib/conversation/ConversationService/Utility/getConversationQualifiedMembers.d.ts.map +1 -1
- package/lib/conversation/ConversationService/Utility/getConversationQualifiedMembers.js +3 -6
- package/lib/conversation/SubconversationService/SubconversationService.d.ts.map +1 -1
- package/lib/conversation/SubconversationService/SubconversationService.js +11 -158
- package/lib/conversation/SubconversationService/SubconversationService.test.js +2 -8
- package/lib/conversation/content/AssetContent.d.ts +1 -1
- package/lib/conversation/content/AssetContent.d.ts.map +1 -1
- package/lib/conversation/content/ButtonActionConfirmationContent.d.ts +1 -1
- package/lib/conversation/content/ButtonActionConfirmationContent.d.ts.map +1 -1
- package/lib/conversation/content/ButtonActionContent.d.ts +1 -1
- package/lib/conversation/content/ButtonActionContent.d.ts.map +1 -1
- package/lib/conversation/content/ClearedContent.d.ts +1 -1
- package/lib/conversation/content/ClearedContent.d.ts.map +1 -1
- package/lib/conversation/content/ClientActionContent.d.ts +1 -1
- package/lib/conversation/content/ClientActionContent.d.ts.map +1 -1
- package/lib/conversation/content/CompositeContent.d.ts +1 -1
- package/lib/conversation/content/CompositeContent.d.ts.map +1 -1
- package/lib/conversation/content/ConfirmationContent.d.ts +1 -1
- package/lib/conversation/content/ConfirmationContent.d.ts.map +1 -1
- package/lib/conversation/content/DeletedContent.d.ts +1 -1
- package/lib/conversation/content/DeletedContent.d.ts.map +1 -1
- package/lib/conversation/content/HiddenContent.d.ts +1 -1
- package/lib/conversation/content/HiddenContent.d.ts.map +1 -1
- package/lib/conversation/content/KnockContent.d.ts +1 -1
- package/lib/conversation/content/KnockContent.d.ts.map +1 -1
- package/lib/conversation/content/LinkPreviewContent.d.ts +1 -1
- package/lib/conversation/content/LinkPreviewContent.d.ts.map +1 -1
- package/lib/conversation/content/MentionContent.d.ts +1 -1
- package/lib/conversation/content/MentionContent.d.ts.map +1 -1
- package/lib/conversation/content/MultipartContent.d.ts +1 -1
- package/lib/conversation/content/MultipartContent.d.ts.map +1 -1
- package/lib/conversation/content/QuoteContent.d.ts +1 -1
- package/lib/conversation/content/QuoteContent.d.ts.map +1 -1
- package/lib/conversation/content/TweetContent.d.ts +1 -1
- package/lib/conversation/content/TweetContent.d.ts.map +1 -1
- package/lib/conversation/content/index.d.ts +1 -1
- package/lib/conversation/content/index.d.ts.map +1 -1
- package/lib/conversation/content/index.js +1 -1
- package/lib/conversation/message/MessageBuilder.d.ts +1 -1
- package/lib/conversation/message/MessageBuilder.d.ts.map +1 -1
- package/lib/conversation/message/MessageBuilder.js +1 -1
- package/lib/conversation/message/MessageService.d.ts.map +1 -1
- package/lib/conversation/message/MessageService.js +1 -1
- package/lib/conversation/message/MessageService.test.js +1 -7
- package/lib/conversation/message/MessageToProtoMapper.d.ts +1 -1
- package/lib/conversation/message/MessageToProtoMapper.d.ts.map +1 -1
- package/lib/conversation/message/MessageToProtoMapper.js +1 -1
- package/lib/conversation/message/messageSender.js +2 -2
- package/lib/cryptography/AssetCryptography/EncryptedAsset.d.ts +2 -2
- package/lib/cryptography/AssetCryptography/EncryptedAsset.d.ts.map +1 -1
- package/lib/messagingProtocols/common.types.d.ts +0 -9
- package/lib/messagingProtocols/common.types.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIService.types.d.ts +2 -2
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIService.types.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIService.types.js +1 -2
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.d.ts +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.js +11 -13
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.test.js +16 -21
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.d.ts +3 -9
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.js +12 -31
- package/lib/messagingProtocols/mls/E2EIdentityService/Helper/index.d.ts +0 -6
- package/lib/messagingProtocols/mls/E2EIdentityService/Helper/index.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Helper/index.js +1 -19
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingMessagesQueue/IncomingMesssagesQueue.d.ts +4 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingMessagesQueue/IncomingMesssagesQueue.d.ts.map +1 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingMessagesQueue/IncomingMesssagesQueue.js +69 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingMessagesQueue/index.d.ts +2 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/{IncomingProposalsQueue → IncomingMessagesQueue}/index.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/{IncomingProposalsQueue → IncomingMessagesQueue}/index.js +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/index.d.ts +1 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/index.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/index.js +1 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.js +14 -23
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.test.d.ts +2 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.test.d.ts.map +1 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.test.js +98 -0
- package/lib/messagingProtocols/mls/EventHandler/events/welcomeMessage/welcomeMessage.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/welcomeMessage/welcomeMessage.js +2 -5
- package/lib/messagingProtocols/mls/EventHandler/events/welcomeMessage/welcomeMessage.test.js +3 -13
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.d.ts +2 -38
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.js +6 -41
- package/lib/messagingProtocols/mls/MLSService/MLSService.d.ts +34 -38
- package/lib/messagingProtocols/mls/MLSService/MLSService.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/MLSService/MLSService.js +208 -267
- package/lib/messagingProtocols/mls/MLSService/MLSService.test.js +160 -157
- package/lib/messagingProtocols/mls/MLSService/commitBundleUtil.js +3 -3
- package/lib/messagingProtocols/mls/MLSService/commitBundleUtil.test.js +5 -5
- package/lib/messagingProtocols/mls/conversationRejoinQueue.js +2 -2
- package/lib/messagingProtocols/mls/types.d.ts +8 -0
- package/lib/messagingProtocols/mls/types.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/EventHandler/events/otrMessageAdd/otrMessageAdd.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/EventHandler/events/otrMessageAdd/otrMessageAdd.js +1 -7
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/CoreCryptoWrapper.d.ts +15 -8
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/CoreCryptoWrapper.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/CoreCryptoWrapper.js +62 -97
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.types.d.ts +6 -0
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.types.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.d.ts +6 -1
- package/lib/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.js +22 -19
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.d.ts +3 -5
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.js +24 -11
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.mocks.d.ts +0 -1
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.mocks.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.mocks.js +2 -11
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.test.js +9 -13
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.types.d.ts +2 -3
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.types.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/WithMockedGenerics.test.js +4 -11
- package/lib/messagingProtocols/proteus/ProteusService/cryptoMigrationStateStore.d.ts +4 -0
- package/lib/messagingProtocols/proteus/ProteusService/cryptoMigrationStateStore.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/cryptoMigrationStateStore.js +5 -0
- package/lib/messagingProtocols/proteus/ProteusService/identityClearer.d.ts +1 -2
- package/lib/messagingProtocols/proteus/ProteusService/identityClearer.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/identityClearer.js +2 -8
- package/lib/messagingProtocols/proteus/Utility/SessionHandler/SessionHandler.test.js +0 -4
- package/lib/messagingProtocols/proteus/Utility/getGenericMessageParams.d.ts +1 -1
- package/lib/messagingProtocols/proteus/Utility/getGenericMessageParams.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/Utility/getGenericMessageParams.js +1 -1
- package/lib/notification/NotificationService.d.ts +6 -20
- package/lib/notification/NotificationService.d.ts.map +1 -1
- package/lib/notification/NotificationService.js +14 -23
- package/lib/notification/NotificationService.test.js +0 -8
- package/lib/secretStore/secretKeyGenerator.d.ts +0 -1
- package/lib/secretStore/secretKeyGenerator.d.ts.map +1 -1
- package/lib/secretStore/secretKeyGenerator.js +1 -3
- package/lib/self/SelfService.d.ts +2 -2
- package/lib/self/SelfService.d.ts.map +1 -1
- package/lib/self/SelfService.test.js +2 -5
- package/lib/team/TeamService.d.ts +2 -5
- package/lib/team/TeamService.d.ts.map +1 -1
- package/lib/team/TeamService.js +2 -12
- package/lib/user/UserService.d.ts +2 -2
- package/lib/user/UserService.d.ts.map +1 -1
- package/lib/user/UserService.js +3 -3
- package/lib/util/TypePredicateUtil.d.ts.map +1 -1
- package/lib/util/TypePredicateUtil.js +2 -2
- package/package.json +3 -3
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingProposalsQueue/IncomingProposalsQueue.d.ts +0 -7
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingProposalsQueue/IncomingProposalsQueue.d.ts.map +0 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingProposalsQueue/IncomingProposalsQueue.js +0 -48
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingProposalsQueue/index.d.ts +0 -2
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.test.d.ts +0 -2
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.test.d.ts.map +0 -1
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.test.js +0 -124
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.d.ts +0 -78
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.d.ts.map +0 -1
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.js +0 -173
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.test.d.ts +0 -2
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.test.d.ts.map +0 -1
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.test.js +0 -117
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.d.ts +0 -167
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.d.ts.map +0 -1
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.js +0 -317
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.test.d.ts +0 -2
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.test.d.ts.map +0 -1
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.test.js +0 -248
- package/lib/messagingProtocols/mls/recovery/index.d.ts +0 -5
- package/lib/messagingProtocols/mls/recovery/index.d.ts.map +0 -1
- package/lib/messagingProtocols/mls/recovery/index.js +0 -28
- package/lib/test/StoreHelper.d.ts +0 -2
- package/lib/test/StoreHelper.d.ts.map +0 -1
- package/lib/test/StoreHelper.js +0 -27
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GenericMessage } from '@pydio/protocol-messaging';
|
|
2
|
+
import { QualifiedUserClients, ConversationProtocol, MessageSendingStatus, Conversation } from '@wireapp/api-client/lib/conversation';
|
|
2
3
|
import { ConversationEvent, ConversationMemberJoinEvent } from '@wireapp/api-client/lib/event';
|
|
3
|
-
import { CONVERSATION_PROTOCOL } from '@wireapp/api-client/lib/team';
|
|
4
4
|
import { QualifiedId } from '@wireapp/api-client/lib/user';
|
|
5
|
-
import { GenericMessage } from '@wireapp/protocol-messaging';
|
|
6
5
|
import { MessageSendingState } from '..';
|
|
7
6
|
export declare enum MessageTargetMode {
|
|
8
7
|
NONE = 0,
|
|
@@ -49,7 +48,7 @@ export interface MessageSendingCallbacks {
|
|
|
49
48
|
* The protocol to use to send the message (MLS or Proteus)
|
|
50
49
|
*/
|
|
51
50
|
export type ProtocolParam = {
|
|
52
|
-
protocol:
|
|
51
|
+
protocol: ConversationProtocol;
|
|
53
52
|
};
|
|
54
53
|
/**
|
|
55
54
|
* The message to send to the conversation
|
|
@@ -63,7 +62,7 @@ export type SendMlsMessageParams = SendCommonParams & {
|
|
|
63
62
|
* The groupId of the conversation to send the message to (Needed only for MLS)
|
|
64
63
|
*/
|
|
65
64
|
groupId: string;
|
|
66
|
-
protocol:
|
|
65
|
+
protocol: ConversationProtocol.MLS;
|
|
67
66
|
};
|
|
68
67
|
export type KeyPackageClaimUser = QualifiedId & {
|
|
69
68
|
skipOwnClientId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationService.types.d.ts","sourceRoot":"","sources":["../../../src/conversation/ConversationService/ConversationService.types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ConversationService.types.d.ts","sourceRoot":"","sources":["../../../src/conversation/ConversationService/ConversationService.types.ts"],"names":[],"mappings":"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"}
|
package/lib/conversation/ConversationService/Utility/getConversationQualifiedMembers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getConversationQualifiedMembers.d.ts","sourceRoot":"","sources":["../../../../src/conversation/ConversationService/Utility/getConversationQualifiedMembers.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAEzD,UAAU,MAAM;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,WAAW,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"getConversationQualifiedMembers.d.ts","sourceRoot":"","sources":["../../../../src/conversation/ConversationService/Utility/getConversationQualifiedMembers.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAEzD,UAAU,MAAM;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,WAAW,CAAC;CAC7B;AACD,QAAA,MAAM,+BAA+B,kCAAuC,MAAM,KAAG,OAAO,CAAC,WAAW,EAAE,CAWzG,CAAC;AAEF,OAAO,EAAC,+BAA+B,EAAC,CAAC"}
|
|
@@ -26,12 +26,9 @@ const getConversationQualifiedMembers = async ({ apiClient, conversationId }) =>
|
|
|
26
26
|
* yourself in the list of users if you want to sync a message also to your
|
|
27
27
|
* other clients.
|
|
28
28
|
*/
|
|
29
|
-
|
|
29
|
+
return conversation.members.others
|
|
30
30
|
.filter(member => !!member.qualified_id)
|
|
31
|
-
.map(member => member.qualified_id)
|
|
32
|
-
|
|
33
|
-
filteredConversations.push(conversation.members.self.qualified_id);
|
|
34
|
-
}
|
|
35
|
-
return filteredConversations;
|
|
31
|
+
.map(member => member.qualified_id)
|
|
32
|
+
.concat(conversation.members.self.qualified_id);
|
|
36
33
|
};
|
|
37
34
|
exports.getConversationQualifiedMembers = getConversationQualifiedMembers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubconversationService.d.ts","sourceRoot":"","sources":["../../../src/conversation/SubconversationService/SubconversationService.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,kBAAkB,EAAkB,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAGzD,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAa,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAI/D,OAAO,EAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"SubconversationService.d.ts","sourceRoot":"","sources":["../../../src/conversation/SubconversationService/SubconversationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,6 @@ const conversation_1 = require("@wireapp/api-client/lib/conversation");
|
|
|
23
23
|
const TimeUtil_1 = require("@wireapp/commons/lib/util/TimeUtil");
|
|
24
24
|
const commons_1 = require("@wireapp/commons");
|
|
25
25
|
const subconversationUtil_1 = require("./subconversationUtil");
|
|
26
|
-
const mls_1 = require("../../messagingProtocols/mls");
|
|
27
26
|
const fullyQualifiedClientIdUtils_1 = require("../../util/fullyQualifiedClientIdUtils");
|
|
28
27
|
const MLS_CONVERSATION_KEY_LENGTH = 32;
|
|
29
28
|
class SubconversationService extends commons_1.TypedEventEmitter {
|
|
@@ -52,10 +51,7 @@ class SubconversationService extends commons_1.TypedEventEmitter {
|
|
|
52
51
|
*/
|
|
53
52
|
async joinConferenceSubconversation(conversationId, groupId, shouldRetry = true) {
|
|
54
53
|
try {
|
|
55
|
-
this.logger.info('Joining conference subconversation', { conversationId, groupId });
|
|
56
54
|
const { group_id: subconversationGroupId, epoch: subconversationEpoch, epoch_timestamp: subconversationEpochTimestamp, subconv_id: subconversationId, } = await this.getConferenceSubconversation(conversationId);
|
|
57
|
-
// We store the mapping between the subconversation and the parent conversation
|
|
58
|
-
await this.saveSubconversationGroupId(conversationId, subconversationId, subconversationGroupId);
|
|
59
55
|
if (subconversationEpoch === 0) {
|
|
60
56
|
const doesConversationExistsLocally = await this.mlsService.conversationExists(subconversationGroupId);
|
|
61
57
|
if (doesConversationExistsLocally) {
|
|
@@ -79,10 +75,11 @@ class SubconversationService extends commons_1.TypedEventEmitter {
|
|
|
79
75
|
await this.joinSubconversationByExternalCommit(conversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
80
76
|
}
|
|
81
77
|
const epoch = Number(await this.mlsService.getEpoch(subconversationGroupId));
|
|
78
|
+
// We store the mapping between the subconversation and the parent conversation
|
|
79
|
+
await this.saveSubconversationGroupId(conversationId, subconversationId, subconversationGroupId);
|
|
82
80
|
return { groupId: subconversationGroupId, epoch };
|
|
83
81
|
}
|
|
84
82
|
catch (error) {
|
|
85
|
-
this.logger.error('Failed to join conference subconversation', { conversationId, groupId, error, shouldRetry });
|
|
86
83
|
if (shouldRetry) {
|
|
87
84
|
return this.joinConferenceSubconversation(conversationId, groupId, false);
|
|
88
85
|
}
|
|
@@ -95,159 +92,87 @@ class SubconversationService extends commons_1.TypedEventEmitter {
|
|
|
95
92
|
* @param conversationId Id of the parent conversation which subconversation we want to leave
|
|
96
93
|
*/
|
|
97
94
|
async leaveConferenceSubconversation(conversationId) {
|
|
98
|
-
this.logger.info('Leaving conference subconversation', { conversationId });
|
|
99
95
|
const subconversationGroupId = await this.getSubconversationGroupId(conversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
100
96
|
if (!subconversationGroupId) {
|
|
101
|
-
this.logger.warn('No subconversation groupId found when leaving conference subconversation', { conversationId });
|
|
102
97
|
return;
|
|
103
98
|
}
|
|
104
99
|
const doesGroupExistLocally = await this.mlsService.conversationExists(subconversationGroupId);
|
|
105
100
|
if (!doesGroupExistLocally) {
|
|
106
101
|
// If the subconversation was known by a client but is does not exist locally, we can remove it from the store.
|
|
107
|
-
this.logger.info('Subconversation not found locally; clearing stored mapping', {
|
|
108
|
-
conversationId,
|
|
109
|
-
subconversationId: conversation_1.SUBCONVERSATION_ID.CONFERENCE,
|
|
110
|
-
subconversationGroupId,
|
|
111
|
-
});
|
|
112
102
|
return this.clearSubconversationGroupId(conversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
113
103
|
}
|
|
114
104
|
try {
|
|
115
105
|
await this.apiClient.api.conversation.deleteSubconversationSelf(conversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
116
106
|
}
|
|
117
107
|
catch (error) {
|
|
118
|
-
this.logger.error(
|
|
119
|
-
conversationId,
|
|
120
|
-
subconversationId: conversation_1.SUBCONVERSATION_ID.CONFERENCE,
|
|
121
|
-
subconversationGroupId,
|
|
122
|
-
error,
|
|
123
|
-
});
|
|
108
|
+
this.logger.error(`Failed to leave conference subconversation:`, error);
|
|
124
109
|
}
|
|
125
110
|
await this.mlsService.wipeConversation(subconversationGroupId);
|
|
126
111
|
// once we've left the subconversation, we can remove it from the store
|
|
127
|
-
this.logger.info('Clearing stored mapping after leaving conference subconversation', {
|
|
128
|
-
conversationId,
|
|
129
|
-
subconversationId: conversation_1.SUBCONVERSATION_ID.CONFERENCE,
|
|
130
|
-
subconversationGroupId,
|
|
131
|
-
});
|
|
132
112
|
await this.clearSubconversationGroupId(conversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
133
113
|
}
|
|
134
114
|
async leaveStaleConferenceSubconversations() {
|
|
135
|
-
this.logger.info('Leaving all stale conference subconversations');
|
|
136
115
|
const conversationIds = await this.getAllGroupIdsBySubconversationId(conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
137
116
|
for (const { parentConversationId } of conversationIds) {
|
|
138
|
-
this.logger.debug('Leaving stale conference subconversation for parent conversation', {
|
|
139
|
-
parentConversationId,
|
|
140
|
-
});
|
|
141
117
|
await this.leaveConferenceSubconversation(parentConversationId);
|
|
142
118
|
}
|
|
143
119
|
}
|
|
144
120
|
async getSubconversationEpochInfo(parentConversationId, parentConversationGroupId, shouldAdvanceEpoch = false) {
|
|
145
|
-
this.logger.info('Getting subconversation epoch info', {
|
|
146
|
-
parentConversationId,
|
|
147
|
-
parentConversationGroupId,
|
|
148
|
-
shouldAdvanceEpoch,
|
|
149
|
-
});
|
|
150
121
|
const subconversationGroupId = await this.getSubconversationGroupId(parentConversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
151
122
|
// this method should not be called if the subconversation (and its parent conversation) is not established
|
|
152
123
|
if (!subconversationGroupId) {
|
|
153
|
-
this.logger.error(
|
|
154
|
-
parentConversationId,
|
|
155
|
-
});
|
|
124
|
+
this.logger.error(`Could not obtain epoch info for conference subconversation of conversation ${JSON.stringify(parentConversationId)}: parent or subconversation group ID is missing`);
|
|
156
125
|
return null;
|
|
157
126
|
}
|
|
158
127
|
//we don't want to react to avs callbacks when conversation was not yet established
|
|
159
128
|
const doesMLSGroupExist = await this.mlsService.conversationExists(subconversationGroupId);
|
|
160
129
|
if (!doesMLSGroupExist) {
|
|
161
|
-
this.logger.debug('Subconversation MLS group does not exist locally; skipping epoch info', {
|
|
162
|
-
parentConversationId,
|
|
163
|
-
parentConversationGroupId,
|
|
164
|
-
subconversationGroupId,
|
|
165
|
-
});
|
|
166
130
|
return null;
|
|
167
131
|
}
|
|
168
132
|
const members = await this.generateSubconversationMembers(subconversationGroupId, parentConversationGroupId);
|
|
169
133
|
if (shouldAdvanceEpoch) {
|
|
170
|
-
this.logger.info('Advancing epoch and renewing key material for subconversation', { subconversationGroupId });
|
|
171
134
|
await this.mlsService.renewKeyMaterial(subconversationGroupId);
|
|
172
135
|
}
|
|
173
136
|
const epoch = Number(await this.mlsService.getEpoch(subconversationGroupId));
|
|
174
137
|
const secretKey = await this.mlsService.exportSecretKey(subconversationGroupId, MLS_CONVERSATION_KEY_LENGTH);
|
|
175
|
-
this.logger.debug('Obtained subconversation epoch info', {
|
|
176
|
-
parentConversationId,
|
|
177
|
-
parentConversationGroupId,
|
|
178
|
-
subconversationGroupId,
|
|
179
|
-
epoch,
|
|
180
|
-
membersCount: members.length,
|
|
181
|
-
keyLength: MLS_CONVERSATION_KEY_LENGTH,
|
|
182
|
-
});
|
|
183
138
|
return { members, epoch, keyLength: MLS_CONVERSATION_KEY_LENGTH, secretKey };
|
|
184
139
|
}
|
|
185
140
|
async subscribeToEpochUpdates(parentConversationId, parentConversationGroupId, findConversationByGroupId, onEpochUpdate) {
|
|
186
|
-
this.logger.info('Subscribing to subconversation epoch updates', {
|
|
187
|
-
parentConversationId,
|
|
188
|
-
parentConversationGroupId,
|
|
189
|
-
});
|
|
190
141
|
const { epoch: initialEpoch, groupId: subconversationGroupId } = await this.joinConferenceSubconversation(parentConversationId, parentConversationGroupId);
|
|
191
142
|
const forwardNewEpoch = async ({ groupId }) => {
|
|
192
|
-
this.logger.debug('Received MLS NEW_EPOCH event', { eventGroupId: groupId, subconversationGroupId });
|
|
193
143
|
if (groupId !== subconversationGroupId) {
|
|
194
144
|
// if the epoch update did not happen in the subconversation directly, check if it happened in the parent conversation
|
|
195
145
|
const parentConversationId = findConversationByGroupId(groupId);
|
|
196
146
|
if (!parentConversationId) {
|
|
197
|
-
this.logger.debug('Ignoring NEW_EPOCH event: could not map to parent conversation');
|
|
198
147
|
return;
|
|
199
148
|
}
|
|
200
149
|
const foundSubconversationGroupId = await this.getSubconversationGroupId(parentConversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
201
150
|
// if the conference subconversation of parent conversation is not known, ignore the epoch update
|
|
202
151
|
if (foundSubconversationGroupId !== subconversationGroupId) {
|
|
203
|
-
this.logger.debug('Ignoring NEW_EPOCH event: not related to subscribed subconversation', {
|
|
204
|
-
eventGroupId: groupId,
|
|
205
|
-
foundSubconversationGroupId,
|
|
206
|
-
expectedSubconversationGroupId: subconversationGroupId,
|
|
207
|
-
});
|
|
208
152
|
return;
|
|
209
153
|
}
|
|
210
154
|
}
|
|
211
155
|
const subconversationEpochInfo = await this.getSubconversationEpochInfo(parentConversationId, parentConversationGroupId);
|
|
212
156
|
if (!subconversationEpochInfo) {
|
|
213
|
-
this.logger.debug('No subconversation epoch info available; skipping callback', {
|
|
214
|
-
parentConversationId,
|
|
215
|
-
parentConversationGroupId,
|
|
216
|
-
});
|
|
217
157
|
return;
|
|
218
158
|
}
|
|
219
159
|
const newSubconversationEpoch = Number(await this.mlsService.getEpoch(subconversationGroupId));
|
|
220
|
-
this.logger.info('Forwarding epoch update to subscriber', {
|
|
221
|
-
subconversationGroupId,
|
|
222
|
-
epoch: newSubconversationEpoch,
|
|
223
|
-
});
|
|
224
160
|
return onEpochUpdate({
|
|
225
161
|
...subconversationEpochInfo,
|
|
226
162
|
epoch: newSubconversationEpoch,
|
|
227
163
|
});
|
|
228
164
|
};
|
|
229
|
-
this.mlsService.on(
|
|
165
|
+
this.mlsService.on('newEpoch', forwardNewEpoch);
|
|
230
166
|
await forwardNewEpoch({ groupId: subconversationGroupId, epoch: initialEpoch });
|
|
231
|
-
this.
|
|
232
|
-
return () => this.mlsService.off(mls_1.MLSServiceEvents.NEW_EPOCH, forwardNewEpoch);
|
|
167
|
+
return () => this.mlsService.off('newEpoch', forwardNewEpoch);
|
|
233
168
|
}
|
|
234
169
|
async removeClientFromConferenceSubconversation(conversationId, clientToRemove) {
|
|
235
|
-
this.logger.info('Removing client from conference subconversation', {
|
|
236
|
-
conversationId,
|
|
237
|
-
user: clientToRemove.user,
|
|
238
|
-
clientId: clientToRemove.clientId,
|
|
239
|
-
});
|
|
240
170
|
const subconversationGroupId = await this.getSubconversationGroupId(conversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
241
171
|
if (!subconversationGroupId) {
|
|
242
|
-
this.logger.warn('Cannot remove client: subconversation groupId missing', { conversationId });
|
|
243
172
|
return;
|
|
244
173
|
}
|
|
245
174
|
const doesMLSGroupExist = await this.mlsService.conversationExists(subconversationGroupId);
|
|
246
175
|
if (!doesMLSGroupExist) {
|
|
247
|
-
this.logger.debug('Cannot remove client: subconversation MLS group does not exist locally', {
|
|
248
|
-
conversationId,
|
|
249
|
-
subconversationGroupId,
|
|
250
|
-
});
|
|
251
176
|
return;
|
|
252
177
|
}
|
|
253
178
|
const { user: { id: userId, domain }, clientId, } = clientToRemove;
|
|
@@ -255,70 +180,23 @@ class SubconversationService extends commons_1.TypedEventEmitter {
|
|
|
255
180
|
const subconversationMembers = await this.mlsService.getClientIds(subconversationGroupId);
|
|
256
181
|
const isSubconversationMember = subconversationMembers.some(({ userId, clientId, domain }) => (0, fullyQualifiedClientIdUtils_1.constructFullyQualifiedClientId)(userId, clientId, domain) === clientToRemoveQualifiedId);
|
|
257
182
|
if (!isSubconversationMember) {
|
|
258
|
-
this.logger.info('Client is not a member of the subconversation; nothing to remove', {
|
|
259
|
-
conversationId,
|
|
260
|
-
subconversationGroupId,
|
|
261
|
-
clientToRemoveQualifiedId,
|
|
262
|
-
});
|
|
263
183
|
return;
|
|
264
184
|
}
|
|
265
|
-
this.
|
|
266
|
-
subconversationGroupId,
|
|
267
|
-
clientToRemoveQualifiedId,
|
|
268
|
-
});
|
|
269
|
-
try {
|
|
270
|
-
await this.mlsService.removeClientsFromConversation(subconversationGroupId, [clientToRemoveQualifiedId]);
|
|
271
|
-
}
|
|
272
|
-
catch (error) {
|
|
273
|
-
this.logger.error('Failed to remove client from subconversation', {
|
|
274
|
-
subconversationGroupId,
|
|
275
|
-
clientToRemoveQualifiedId,
|
|
276
|
-
error,
|
|
277
|
-
});
|
|
278
|
-
}
|
|
185
|
+
return void this.mlsService.removeClientsFromConversation(subconversationGroupId, [clientToRemoveQualifiedId]);
|
|
279
186
|
}
|
|
280
187
|
async joinSubconversationByExternalCommit(conversationId, subconversation) {
|
|
281
|
-
|
|
282
|
-
this.logger.info('Joining subconversation by external commit', { conversationId, subconversation });
|
|
283
|
-
await this.mlsService.joinByExternalCommit(() => this.apiClient.api.conversation.getSubconversationGroupInfo(conversationId, subconversation));
|
|
284
|
-
}
|
|
285
|
-
catch (error) {
|
|
286
|
-
this.logger.error('Failed to join subconversation by external commit', {
|
|
287
|
-
conversationId,
|
|
288
|
-
subconversation,
|
|
289
|
-
error,
|
|
290
|
-
});
|
|
291
|
-
throw error;
|
|
292
|
-
}
|
|
188
|
+
await this.mlsService.joinByExternalCommit(() => this.apiClient.api.conversation.getSubconversationGroupInfo(conversationId, subconversation));
|
|
293
189
|
}
|
|
294
190
|
async getConferenceSubconversation(conversationId) {
|
|
295
|
-
this.
|
|
296
|
-
try {
|
|
297
|
-
return await this.apiClient.api.conversation.getSubconversation(conversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
298
|
-
}
|
|
299
|
-
catch (error) {
|
|
300
|
-
this.logger.error('Failed to fetch conference subconversation metadata', { conversationId, error });
|
|
301
|
-
throw error;
|
|
302
|
-
}
|
|
191
|
+
return this.apiClient.api.conversation.getSubconversation(conversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE);
|
|
303
192
|
}
|
|
304
193
|
async deleteConferenceSubconversation(conversationId, data) {
|
|
305
|
-
this.
|
|
306
|
-
try {
|
|
307
|
-
return await this.apiClient.api.conversation.deleteSubconversation(conversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE, data);
|
|
308
|
-
}
|
|
309
|
-
catch (error) {
|
|
310
|
-
this.logger.error('Failed to delete conference subconversation', { conversationId, data, error });
|
|
311
|
-
throw error;
|
|
312
|
-
}
|
|
194
|
+
return this.apiClient.api.conversation.deleteSubconversation(conversationId, conversation_1.SUBCONVERSATION_ID.CONFERENCE, data);
|
|
313
195
|
}
|
|
314
196
|
async generateSubconversationMembers(subconversationGroupId, parentGroupId) {
|
|
315
|
-
this.logger.debug('Generating subconversation members info', {
|
|
316
|
-
subconversationGroupId,
|
|
317
|
-
parentGroupId,
|
|
318
|
-
});
|
|
319
197
|
const subconversationMemberIds = await this.mlsService.getClientIds(subconversationGroupId);
|
|
320
198
|
const parentMemberIds = await this.mlsService.getClientIds(parentGroupId);
|
|
321
|
-
|
|
199
|
+
return parentMemberIds.map(parentMember => {
|
|
322
200
|
const isSubconversationMember = subconversationMemberIds.some(({ userId, clientId, domain }) => (0, fullyQualifiedClientIdUtils_1.constructFullyQualifiedClientId)(userId, clientId, domain) ===
|
|
323
201
|
(0, fullyQualifiedClientIdUtils_1.constructFullyQualifiedClientId)(parentMember.userId, parentMember.clientId, parentMember.domain));
|
|
324
202
|
return {
|
|
@@ -329,45 +207,20 @@ class SubconversationService extends commons_1.TypedEventEmitter {
|
|
|
329
207
|
in_subconv: isSubconversationMember,
|
|
330
208
|
};
|
|
331
209
|
});
|
|
332
|
-
this.logger.debug('Generated subconversation members info', {
|
|
333
|
-
subconversationGroupId,
|
|
334
|
-
parentGroupId,
|
|
335
|
-
membersCount: members.length,
|
|
336
|
-
});
|
|
337
|
-
return members;
|
|
338
210
|
}
|
|
339
211
|
getSubconversationGroupId = async (parentConversationId, subconversationId) => {
|
|
340
212
|
const foundSubconversation = await this.coreDatabase.get('subconversations', (0, subconversationUtil_1.generateSubconversationStoreKey)(parentConversationId, subconversationId));
|
|
341
|
-
this.logger.debug('Loaded subconversation groupId from store', {
|
|
342
|
-
parentConversationId,
|
|
343
|
-
subconversationId,
|
|
344
|
-
found: Boolean(foundSubconversation?.groupId),
|
|
345
|
-
});
|
|
346
213
|
return foundSubconversation?.groupId;
|
|
347
214
|
};
|
|
348
215
|
getAllGroupIdsBySubconversationId = async (subconversationId) => {
|
|
349
|
-
this.logger.debug('Retrieving all subconversations by subconversationId', { subconversationId });
|
|
350
216
|
const allSubconversations = await this.coreDatabase.getAll('subconversations');
|
|
351
217
|
const foundSubconversations = allSubconversations.filter(subconversation => subconversation.subconversationId === subconversationId);
|
|
352
|
-
this.logger.debug('Found subconversations by id', {
|
|
353
|
-
subconversationId,
|
|
354
|
-
count: foundSubconversations.length,
|
|
355
|
-
});
|
|
356
218
|
return foundSubconversations;
|
|
357
219
|
};
|
|
358
220
|
saveSubconversationGroupId = async (parentConversationId, subconversationId, groupId) => {
|
|
359
|
-
this.logger.debug('Saving subconversation groupId mapping', {
|
|
360
|
-
parentConversationId,
|
|
361
|
-
subconversationId,
|
|
362
|
-
groupId,
|
|
363
|
-
});
|
|
364
221
|
return this.coreDatabase.put('subconversations', { parentConversationId, subconversationId, groupId }, (0, subconversationUtil_1.generateSubconversationStoreKey)(parentConversationId, subconversationId));
|
|
365
222
|
};
|
|
366
223
|
clearSubconversationGroupId = async (parentConversationId, subconversationId) => {
|
|
367
|
-
this.logger.debug('Clearing subconversation groupId mapping', {
|
|
368
|
-
parentConversationId,
|
|
369
|
-
subconversationId,
|
|
370
|
-
});
|
|
371
224
|
return this.coreDatabase.delete('subconversations', (0, subconversationUtil_1.generateSubconversationStoreKey)(parentConversationId, subconversationId));
|
|
372
225
|
};
|
|
373
226
|
}
|
|
@@ -22,7 +22,6 @@ const conversation_1 = require("@wireapp/api-client/lib/conversation");
|
|
|
22
22
|
const http_1 = require("@wireapp/api-client/lib/http");
|
|
23
23
|
const api_client_1 = require("@wireapp/api-client");
|
|
24
24
|
const SubconversationService_1 = require("./SubconversationService");
|
|
25
|
-
const mls_1 = require("../../messagingProtocols/mls");
|
|
26
25
|
const CoreDB_1 = require("../../storage/CoreDB");
|
|
27
26
|
const fullyQualifiedClientIdUtils_1 = require("../../util/fullyQualifiedClientIdUtils");
|
|
28
27
|
const getSubconversationResponse = ({ epoch, epochTimestamp, parentConversationId, groupId, members = [], subconversationId = conversation_1.SUBCONVERSATION_ID.CONFERENCE, }) => {
|
|
@@ -36,10 +35,8 @@ const getSubconversationResponse = ({ epoch, epochTimestamp, parentConversationI
|
|
|
36
35
|
epoch_timestamp: epochTimestamp,
|
|
37
36
|
};
|
|
38
37
|
};
|
|
39
|
-
const apiClients = [];
|
|
40
38
|
const buildSubconversationService = async (isFederated = false) => {
|
|
41
39
|
const apiClient = new api_client_1.APIClient({ urls: api_client_1.APIClient.BACKEND.STAGING });
|
|
42
|
-
apiClients.push(apiClient);
|
|
43
40
|
apiClient.backendFeatures.isFederated = isFederated;
|
|
44
41
|
const mlsService = {
|
|
45
42
|
conversationExists: jest.fn(),
|
|
@@ -60,9 +57,6 @@ const buildSubconversationService = async (isFederated = false) => {
|
|
|
60
57
|
return [subconversationService, { apiClient, mlsService, coreDatabase }];
|
|
61
58
|
};
|
|
62
59
|
describe('SubconversationService', () => {
|
|
63
|
-
afterAll(() => {
|
|
64
|
-
apiClients.forEach(client => client.disconnect());
|
|
65
|
-
});
|
|
66
60
|
describe('joinConferenceSubconversation', () => {
|
|
67
61
|
afterEach(() => {
|
|
68
62
|
jest.useRealTimers();
|
|
@@ -319,11 +313,11 @@ describe('SubconversationService', () => {
|
|
|
319
313
|
const onEpochUpdateCallback = jest.fn();
|
|
320
314
|
const unsubscribe = await subconversationService.subscribeToEpochUpdates(parentConversationId, parentConversationGroupId, findConversationByGroupId, onEpochUpdateCallback);
|
|
321
315
|
expect(mlsService.getEpoch).toHaveBeenCalledWith(subconversationGroupId);
|
|
322
|
-
expect(mlsService.on).toHaveBeenCalledWith(
|
|
316
|
+
expect(mlsService.on).toHaveBeenCalledWith('newEpoch', expect.any(Function));
|
|
323
317
|
expect(subconversationService.getSubconversationEpochInfo).toHaveBeenCalledWith(parentConversationId, parentConversationGroupId);
|
|
324
318
|
expect(onEpochUpdateCallback).toHaveBeenCalledWith(mockedEpochInfo);
|
|
325
319
|
unsubscribe();
|
|
326
|
-
expect(mlsService.off).toHaveBeenCalledWith(
|
|
320
|
+
expect(mlsService.off).toHaveBeenCalledWith('newEpoch', expect.any(Function));
|
|
327
321
|
});
|
|
328
322
|
});
|
|
329
323
|
describe('removeClientFromConferenceSubconversation', () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Asset } from '@
|
|
1
|
+
import { Asset } from '@pydio/protocol-messaging';
|
|
2
2
|
import { AbortReason, AssetTransferState } from '..';
|
|
3
3
|
import { EncryptedAssetUploaded } from '../../cryptography';
|
|
4
4
|
import { FileContent, FileMetaDataContent, ImageContent, LegalHoldStatus } from '.';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/AssetContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,KAAK,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"AssetContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/AssetContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,KAAK,EAAC,MAAM,2BAA2B,CAAC;AAEhD,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAC,MAAM,IAAI,CAAC;AACnD,OAAO,EAAC,sBAAsB,EAAC,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAC,MAAM,GAAG,CAAC;AAElF,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC;AACjD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAGD,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,WAAW;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;IAC5B,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,oBAAoB,CAAC;IACrF,kBAAkB,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,KAAK,EAAE,sBAAsB,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,KAAK,EAAE,sBAAsB,CAAC;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAyB,SAAQ,SAAS;IACzD,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,MAAM,EAAE,WAAW,CAAC;CACrB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { IButtonActionConfirmation } from '@
|
|
1
|
+
import { IButtonActionConfirmation } from '@pydio/protocol-messaging';
|
|
2
2
|
export { IButtonActionConfirmation as ButtonActionConfirmationContent };
|
|
3
3
|
//# sourceMappingURL=ButtonActionConfirmationContent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonActionConfirmationContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/ButtonActionConfirmationContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,yBAAyB,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"ButtonActionConfirmationContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/ButtonActionConfirmationContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,yBAAyB,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAC,yBAAyB,IAAI,+BAA+B,EAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonActionContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/ButtonActionContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,aAAa,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"ButtonActionContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/ButtonActionContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,aAAa,IAAI,mBAAmB,EAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearedContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/ClearedContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,QAAQ,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"ClearedContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/ClearedContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAC,QAAQ,IAAI,cAAc,EAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientActionContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/ClientActionContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,eAAe,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"ClientActionContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/ClientActionContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE1D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompositeContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/CompositeContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,UAAU,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"CompositeContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/CompositeContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAC,UAAU,IAAI,gBAAgB,EAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmationContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/ConfirmationContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,aAAa,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"ConfirmationContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/ConfirmationContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,aAAa,IAAI,mBAAmB,EAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeletedContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/DeletedContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,cAAc,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"DeletedContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/DeletedContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAC,cAAc,IAAI,cAAc,EAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HiddenContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/HiddenContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,YAAY,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"HiddenContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/HiddenContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,YAAY,IAAI,aAAa,EAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnockContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/KnockContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"KnockContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/KnockContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ILinkPreview } from '@
|
|
1
|
+
import { ILinkPreview } from '@pydio/protocol-messaging';
|
|
2
2
|
import { ImageAssetContent, ImageContent, LegalHoldStatus } from '.';
|
|
3
3
|
export interface LinkPreviewContent extends Omit<ILinkPreview, 'image'> {
|
|
4
4
|
expectsReadConfirmation?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkPreviewContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/LinkPreviewContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,YAAY,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"LinkPreviewContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/LinkPreviewContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAC,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAC,MAAM,GAAG,CAAC;AAEnE,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;IACrE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACnF,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/MentionContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,QAAQ,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"MentionContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/MentionContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAC,QAAQ,IAAI,cAAc,EAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IMultipart, IAttachment, ICellAsset, IAsset } from '@
|
|
1
|
+
import { IMultipart, IAttachment, ICellAsset, IAsset } from '@pydio/protocol-messaging';
|
|
2
2
|
export { IMultipart as MultiPartContent };
|
|
3
3
|
export { IAttachment as MultiPartAttachment };
|
|
4
4
|
export { ICellAsset as MultiPartCellAsset };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultipartContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/MultipartContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"MultipartContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/MultipartContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAC,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAC,UAAU,IAAI,gBAAgB,EAAC,CAAC;AACxC,OAAO,EAAC,WAAW,IAAI,mBAAmB,EAAC,CAAC;AAC5C,OAAO,EAAC,UAAU,IAAI,kBAAkB,EAAC,CAAC;AAC1C,OAAO,EAAC,MAAM,IAAI,cAAc,EAAC,CAAC"}
|