@wireapp/core 38.8.0 → 38.8.2
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/conversation/ConversationService/ConversationService.d.ts.map +1 -1
- package/lib/conversation/ConversationService/ConversationService.js +2 -4
- package/lib/messagingProtocols/mls/MLSService/MLSService.d.ts +9 -2
- package/lib/messagingProtocols/mls/MLSService/MLSService.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/MLSService/MLSService.js +18 -12
- package/lib/util/fullyQualifiedClientIdUtils.d.ts +1 -1
- package/lib/util/fullyQualifiedClientIdUtils.d.ts.map +1 -1
- package/lib/util/fullyQualifiedClientIdUtils.js +1 -2
- package/lib/util/fullyQualifiedClientIdUtils.test.js +3 -4
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationService.d.ts","sourceRoot":"","sources":["../../../src/conversation/ConversationService/ConversationService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ConversationService.d.ts","sourceRoot":"","sources":["../../../src/conversation/ConversationService/ConversationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -250,10 +250,9 @@ class ConversationService {
|
|
|
250
250
|
};
|
|
251
251
|
}
|
|
252
252
|
async removeUsersFromMLSConversation({ groupId, conversationId, qualifiedUserIds, }) {
|
|
253
|
-
const groupIdBytes = bazinga64_1.Decoder.fromBase64(groupId).asBytes;
|
|
254
253
|
const clientsToRemove = await this.apiClient.api.user.postListClients({ qualified_users: qualifiedUserIds });
|
|
255
254
|
const fullyQualifiedClientIds = (0, fullyQualifiedClientIdUtils_1.mapQualifiedUserClientIdsToFullyQualifiedClientIds)(clientsToRemove.qualified_user_map);
|
|
256
|
-
const messageResponse = await this.mlsService.removeClientsFromConversation(
|
|
255
|
+
const messageResponse = await this.mlsService.removeClientsFromConversation(groupId, fullyQualifiedClientIds);
|
|
257
256
|
//key material gets updated after removing a user from the group, so we can reset last key update time value in the store
|
|
258
257
|
this.mlsService.resetKeyMaterialRenewal(groupId);
|
|
259
258
|
const conversation = await this.getConversation(conversationId);
|
|
@@ -286,8 +285,7 @@ class ConversationService {
|
|
|
286
285
|
});
|
|
287
286
|
}
|
|
288
287
|
async isMLSConversationEstablished(groupId) {
|
|
289
|
-
|
|
290
|
-
return this.mlsService.conversationExists(groupIdBytes);
|
|
288
|
+
return this.mlsService.conversationExists(groupId);
|
|
291
289
|
}
|
|
292
290
|
async wipeMLSConversation(groupId) {
|
|
293
291
|
return this.mlsService.wipeConversation(groupId);
|
|
@@ -28,6 +28,8 @@ export declare class MLSService extends TypedEventEmitter<Events> {
|
|
|
28
28
|
logger: logdown.Logger;
|
|
29
29
|
config: MLSServiceConfig;
|
|
30
30
|
groupIdFromConversationId?: MLSCallbacks['groupIdFromConversationId'];
|
|
31
|
+
private readonly textEncoder;
|
|
32
|
+
private readonly textDecoder;
|
|
31
33
|
constructor(apiClient: APIClient, coreCryptoClient: CoreCrypto, { keyingMaterialUpdateThreshold, nbKeyPackages, }: Partial<MLSServiceConfig>);
|
|
32
34
|
initClient(userId: QualifiedId, clientId: string): Promise<void>;
|
|
33
35
|
createClient(userId: QualifiedId, clientId: string): Promise<void>;
|
|
@@ -74,9 +76,14 @@ export declare class MLSService extends TypedEventEmitter<Events> {
|
|
|
74
76
|
user: QualifiedId;
|
|
75
77
|
client?: string;
|
|
76
78
|
}): Promise<PostMlsMessageResponse | null | undefined>;
|
|
77
|
-
|
|
79
|
+
/**
|
|
80
|
+
* Will send a removal commit for given clients
|
|
81
|
+
* @param groupId groupId of the conversation
|
|
82
|
+
* @param clientIds the list of **qualified** ids of the clients we want to remove from the group
|
|
83
|
+
*/
|
|
84
|
+
removeClientsFromConversation(groupId: string, clientIds: string[]): Promise<PostMlsMessageResponse | null>;
|
|
78
85
|
private commitProposals;
|
|
79
|
-
conversationExists(
|
|
86
|
+
conversationExists(groupId: string): Promise<boolean>;
|
|
80
87
|
clientValidKeypackagesCount(): Promise<number>;
|
|
81
88
|
clientKeypackages(amountRequested: number): Promise<Uint8Array[]>;
|
|
82
89
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MLSService.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/MLSService/MLSService.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,sBAAsB,EAAqB,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAC,eAAe,EAAC,MAAM,sDAAsD,CAAC;AACrF,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAIzD,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EACL,eAAe,EAGf,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAC,gBAAgB,EAAsB,MAAM,oBAAoB,CAAC;AAKzE,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAKrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAqB,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAC,4BAA4B,EAAE,4BAA4B,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AAIlG,eAAO,MAAM,oBAAoB,UAAW,UAAU,GAAG,EAAE,KAAG,UAE7D,CAAC;AAOF,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC;CAC5C,CAAC;AACF,qBAAa,UAAW,SAAQ,iBAAiB,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MLSService.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/MLSService/MLSService.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,15 +65,16 @@ class MLSService extends TypedEventEmitter_1.TypedEventEmitter {
|
|
|
65
65
|
this.apiClient = apiClient;
|
|
66
66
|
this.coreCryptoClient = coreCryptoClient;
|
|
67
67
|
this.logger = (0, logdown_1.default)('@wireapp/core/MLSService');
|
|
68
|
+
this.textEncoder = new TextEncoder();
|
|
69
|
+
this.textDecoder = new TextDecoder();
|
|
68
70
|
this.config = {
|
|
69
71
|
keyingMaterialUpdateThreshold,
|
|
70
72
|
nbKeyPackages,
|
|
71
73
|
};
|
|
72
74
|
}
|
|
73
75
|
async initClient(userId, clientId) {
|
|
74
|
-
const encoder = new TextEncoder();
|
|
75
76
|
const qualifiedClientId = (0, fullyQualifiedClientIdUtils_1.constructFullyQualifiedClientId)(userId.id, clientId, userId.domain);
|
|
76
|
-
await this.coreCryptoClient.mlsInit(
|
|
77
|
+
await this.coreCryptoClient.mlsInit(this.textEncoder.encode(qualifiedClientId));
|
|
77
78
|
}
|
|
78
79
|
async createClient(userId, clientId) {
|
|
79
80
|
await this.initClient(userId, clientId);
|
|
@@ -123,10 +124,9 @@ class MLSService extends TypedEventEmitter_1.TypedEventEmitter {
|
|
|
123
124
|
configureMLSCallbacks(_a) {
|
|
124
125
|
var { groupIdFromConversationId } = _a, coreCryptoCallbacks = __rest(_a, ["groupIdFromConversationId"]);
|
|
125
126
|
this.coreCryptoClient.registerCallbacks(Object.assign(Object.assign({}, coreCryptoCallbacks), { clientIsExistingGroupUser: (client, otherClients) => {
|
|
126
|
-
const
|
|
127
|
-
const { user } = (0, fullyQualifiedClientIdUtils_1.parseFullQualifiedClientId)(decoder.decode(client));
|
|
127
|
+
const { user } = (0, fullyQualifiedClientIdUtils_1.parseFullQualifiedClientId)(this.textDecoder.decode(client));
|
|
128
128
|
return otherClients.some(client => {
|
|
129
|
-
const { user: otherUser } = (0, fullyQualifiedClientIdUtils_1.parseFullQualifiedClientId)(
|
|
129
|
+
const { user: otherUser } = (0, fullyQualifiedClientIdUtils_1.parseFullQualifiedClientId)(this.textDecoder.decode(client));
|
|
130
130
|
return otherUser.toLowerCase() === user.toLowerCase();
|
|
131
131
|
});
|
|
132
132
|
} }));
|
|
@@ -284,15 +284,22 @@ class MLSService extends TypedEventEmitter_1.TypedEventEmitter {
|
|
|
284
284
|
this.scheduleKeyMaterialRenewal(groupId);
|
|
285
285
|
return response;
|
|
286
286
|
}
|
|
287
|
-
|
|
288
|
-
|
|
287
|
+
/**
|
|
288
|
+
* Will send a removal commit for given clients
|
|
289
|
+
* @param groupId groupId of the conversation
|
|
290
|
+
* @param clientIds the list of **qualified** ids of the clients we want to remove from the group
|
|
291
|
+
*/
|
|
292
|
+
removeClientsFromConversation(groupId, clientIds) {
|
|
293
|
+
const groupIdBytes = bazinga64_1.Decoder.fromBase64(groupId).asBytes;
|
|
294
|
+
return this.processCommitAction(groupIdBytes, () => this.coreCryptoClient.removeClientsFromConversation(groupIdBytes, clientIds.map(id => this.textEncoder.encode(id))));
|
|
289
295
|
}
|
|
290
296
|
async commitProposals(groupId) {
|
|
291
297
|
const commitBundle = await this.coreCryptoClient.commitPendingProposals(groupId);
|
|
292
298
|
return commitBundle ? void (await this.uploadCommitBundle(groupId, commitBundle)) : undefined;
|
|
293
299
|
}
|
|
294
|
-
async conversationExists(
|
|
295
|
-
|
|
300
|
+
async conversationExists(groupId) {
|
|
301
|
+
const groupIdBytes = bazinga64_1.Decoder.fromBase64(groupId).asBytes;
|
|
302
|
+
return this.coreCryptoClient.conversationExists(groupIdBytes);
|
|
296
303
|
}
|
|
297
304
|
async clientValidKeypackagesCount() {
|
|
298
305
|
return this.coreCryptoClient.clientValidKeypackagesCount();
|
|
@@ -307,7 +314,7 @@ class MLSService extends TypedEventEmitter_1.TypedEventEmitter {
|
|
|
307
314
|
*/
|
|
308
315
|
async renewKeyMaterial(groupId) {
|
|
309
316
|
try {
|
|
310
|
-
const groupConversationExists = await this.conversationExists(
|
|
317
|
+
const groupConversationExists = await this.conversationExists(groupId);
|
|
311
318
|
if (!groupConversationExists) {
|
|
312
319
|
keyMaterialUpdatesStore_1.keyMaterialUpdatesStore.deleteLastKeyMaterialUpdateDate({ groupId });
|
|
313
320
|
return;
|
|
@@ -492,10 +499,9 @@ class MLSService extends TypedEventEmitter_1.TypedEventEmitter {
|
|
|
492
499
|
*/
|
|
493
500
|
async getClientIds(groupId) {
|
|
494
501
|
const groupIdBytes = bazinga64_1.Decoder.fromBase64(groupId).asBytes;
|
|
495
|
-
const decoder = new TextDecoder();
|
|
496
502
|
const rawClientIds = await this.coreCryptoClient.getClientIds(groupIdBytes);
|
|
497
503
|
const clientIds = rawClientIds.map(id => {
|
|
498
|
-
const { user, client, domain } = (0, fullyQualifiedClientIdUtils_1.parseFullQualifiedClientId)(
|
|
504
|
+
const { user, client, domain } = (0, fullyQualifiedClientIdUtils_1.parseFullQualifiedClientId)(this.textDecoder.decode(id));
|
|
499
505
|
return { userId: user, clientId: client, domain };
|
|
500
506
|
});
|
|
501
507
|
return clientIds;
|
|
@@ -9,6 +9,6 @@ export declare const parseFullQualifiedClientId: (qualifiedId: string) => {
|
|
|
9
9
|
client: ClientId;
|
|
10
10
|
domain: Domain;
|
|
11
11
|
};
|
|
12
|
-
export declare const mapQualifiedUserClientIdsToFullyQualifiedClientIds: (qualifiedUserMap: QualifiedUserClientMap) =>
|
|
12
|
+
export declare const mapQualifiedUserClientIdsToFullyQualifiedClientIds: (qualifiedUserMap: QualifiedUserClientMap) => `${string}:${string}@${string}`[];
|
|
13
13
|
export {};
|
|
14
14
|
//# sourceMappingURL=fullyQualifiedClientIdUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fullyQualifiedClientIdUtils.d.ts","sourceRoot":"","sources":["../../src/util/fullyQualifiedClientIdUtils.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AAEtE,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,MAAM,MAAM,kBAAkB,GAAG,GAAG,MAAM,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAEnE,eAAO,MAAM,+BAA+B,WAClC,MAAM,YACJ,QAAQ,UACV,MAAM,KACb,kBAAuD,CAAC;AAE3D,eAAO,MAAM,0BAA0B,gBAAiB,MAAM;UAAU,MAAM;YAAU,QAAQ;YAAU,MAAM;CAO/G,CAAC;AAEF,eAAO,MAAM,kDAAkD,qBAAsB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"fullyQualifiedClientIdUtils.d.ts","sourceRoot":"","sources":["../../src/util/fullyQualifiedClientIdUtils.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AAEtE,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,MAAM,MAAM,kBAAkB,GAAG,GAAG,MAAM,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAEnE,eAAO,MAAM,+BAA+B,WAClC,MAAM,YACJ,QAAQ,UACV,MAAM,KACb,kBAAuD,CAAC;AAE3D,eAAO,MAAM,0BAA0B,gBAAiB,MAAM;UAAU,MAAM;YAAU,QAAQ;YAAU,MAAM;CAO/G,CAAC;AAEF,eAAO,MAAM,kDAAkD,qBAAsB,sBAAsB,sCAO1G,CAAC"}
|
|
@@ -32,10 +32,9 @@ const parseFullQualifiedClientId = (qualifiedId) => {
|
|
|
32
32
|
};
|
|
33
33
|
exports.parseFullQualifiedClientId = parseFullQualifiedClientId;
|
|
34
34
|
const mapQualifiedUserClientIdsToFullyQualifiedClientIds = (qualifiedUserMap) => {
|
|
35
|
-
const encoder = new TextEncoder();
|
|
36
35
|
return Object.entries(qualifiedUserMap).flatMap(([domain, users]) => {
|
|
37
36
|
const clients = Object.entries(users);
|
|
38
|
-
return clients.flatMap(([userId, clients]) => clients.map(client =>
|
|
37
|
+
return clients.flatMap(([userId, clients]) => clients.map(client => (0, exports.constructFullyQualifiedClientId)(userId, client.id, domain)));
|
|
39
38
|
});
|
|
40
39
|
};
|
|
41
40
|
exports.mapQualifiedUserClientIdsToFullyQualifiedClientIds = mapQualifiedUserClientIdsToFullyQualifiedClientIds;
|
|
@@ -36,7 +36,6 @@ var MOCKED_CLIENT_IDS;
|
|
|
36
36
|
MOCKED_CLIENT_IDS["CLIENT2"] = "4130002c222";
|
|
37
37
|
MOCKED_CLIENT_IDS["CLIENT3"] = "4130002c223";
|
|
38
38
|
})(MOCKED_CLIENT_IDS || (MOCKED_CLIENT_IDS = {}));
|
|
39
|
-
const encoder = new TextEncoder();
|
|
40
39
|
describe('constructFullyQualifiedClientId', () => {
|
|
41
40
|
it('construct fullyQualifiedClientId client id', () => {
|
|
42
41
|
expect((0, fullyQualifiedClientIdUtils_1.constructFullyQualifiedClientId)(MOCKED_USER_IDS.USER1, MOCKED_CLIENT_IDS.CLIENT1, MOCKED_DOMAINS.DOMAIN1)).toEqual(`${MOCKED_USER_IDS.USER1}:${MOCKED_CLIENT_IDS.CLIENT1}@${MOCKED_DOMAINS.DOMAIN1}`);
|
|
@@ -67,7 +66,7 @@ describe('mapQualifiedUserClientIdsToFullyQualifiedClientIds', () => {
|
|
|
67
66
|
],
|
|
68
67
|
},
|
|
69
68
|
};
|
|
70
|
-
const expectedResult = [`${MOCKED_USER_IDS.USER1}:${MOCKED_CLIENT_IDS.CLIENT1}@${MOCKED_DOMAINS.DOMAIN1}`]
|
|
69
|
+
const expectedResult = [`${MOCKED_USER_IDS.USER1}:${MOCKED_CLIENT_IDS.CLIENT1}@${MOCKED_DOMAINS.DOMAIN1}`];
|
|
71
70
|
const result = (0, fullyQualifiedClientIdUtils_1.mapQualifiedUserClientIdsToFullyQualifiedClientIds)(qualified_user_map3);
|
|
72
71
|
expect(result).toEqual(expectedResult);
|
|
73
72
|
});
|
|
@@ -98,7 +97,7 @@ describe('mapQualifiedUserClientIdsToFullyQualifiedClientIds', () => {
|
|
|
98
97
|
`${MOCKED_USER_IDS.USER1}:${MOCKED_CLIENT_IDS.CLIENT1}@${MOCKED_DOMAINS.DOMAIN1}`,
|
|
99
98
|
`${MOCKED_USER_IDS.USER1}:${MOCKED_CLIENT_IDS.CLIENT2}@${MOCKED_DOMAINS.DOMAIN2}`,
|
|
100
99
|
`${MOCKED_USER_IDS.USER1}:${MOCKED_CLIENT_IDS.CLIENT3}@${MOCKED_DOMAINS.DOMAIN2}`,
|
|
101
|
-
]
|
|
100
|
+
];
|
|
102
101
|
const result = (0, fullyQualifiedClientIdUtils_1.mapQualifiedUserClientIdsToFullyQualifiedClientIds)(qualified_user_map3);
|
|
103
102
|
expect(result).toEqual(expectedResult);
|
|
104
103
|
});
|
|
@@ -143,7 +142,7 @@ describe('mapQualifiedUserClientIdsToFullyQualifiedClientIds', () => {
|
|
|
143
142
|
`${MOCKED_USER_IDS.USER1}:${MOCKED_CLIENT_IDS.CLIENT2}@${MOCKED_DOMAINS.DOMAIN2}`,
|
|
144
143
|
`${MOCKED_USER_IDS.USER1}:${MOCKED_CLIENT_IDS.CLIENT3}@${MOCKED_DOMAINS.DOMAIN2}`,
|
|
145
144
|
`${MOCKED_USER_IDS.USER2}:${MOCKED_CLIENT_IDS.CLIENT2}@${MOCKED_DOMAINS.DOMAIN2}`,
|
|
146
|
-
]
|
|
145
|
+
];
|
|
147
146
|
const result = (0, fullyQualifiedClientIdUtils_1.mapQualifiedUserClientIdsToFullyQualifiedClientIds)(qualified_user_map3);
|
|
148
147
|
expect(result).toEqual(expectedResult);
|
|
149
148
|
});
|
package/package.json
CHANGED