@towns-protocol/encryption 0.0.381 → 0.0.382
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/dist/base.d.ts +11 -7
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js.map +1 -1
- package/dist/groupEncryption.d.ts +2 -4
- package/dist/groupEncryption.d.ts.map +1 -1
- package/dist/groupEncryption.js +5 -6
- package/dist/groupEncryption.js.map +1 -1
- package/dist/groupEncryptionCrypto.d.ts +2 -4
- package/dist/groupEncryptionCrypto.d.ts.map +1 -1
- package/dist/groupEncryptionCrypto.js.map +1 -1
- package/dist/hybridGroupEncryption.d.ts +3 -7
- package/dist/hybridGroupEncryption.d.ts.map +1 -1
- package/dist/hybridGroupEncryption.js +6 -7
- package/dist/hybridGroupEncryption.js.map +1 -1
- package/package.json +5 -5
package/dist/base.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { GroupEncryptionAlgorithmId, GroupEncryptionSession
|
|
1
|
+
import { GroupEncryptionAlgorithmId, GroupEncryptionSession } from './olmLib';
|
|
2
2
|
import { EncryptionDevice } from './encryptionDevice';
|
|
3
3
|
import { EncryptedData } from '@towns-protocol/proto';
|
|
4
4
|
export interface IGroupEncryptionClient {
|
|
5
|
-
|
|
6
|
-
encryptAndShareGroupSessions(streamId: string, sessions: GroupEncryptionSession[], devicesInRoom: UserDeviceCollection, algorithm: GroupEncryptionAlgorithmId): Promise<void>;
|
|
7
|
-
getDevicesInStream(streamId: string): Promise<UserDeviceCollection>;
|
|
5
|
+
encryptAndShareGroupSessionsToStream(streamId: string, sessions: GroupEncryptionSession[], algorithm: GroupEncryptionAlgorithmId, priorityUserIds: string[]): Promise<void>;
|
|
8
6
|
getMiniblockInfo(streamId: string): Promise<{
|
|
9
7
|
miniblockNum: bigint;
|
|
10
8
|
miniblockHash: Uint8Array;
|
|
@@ -19,6 +17,14 @@ export interface IEncryptionParams {
|
|
|
19
17
|
/** olm.js wrapper */
|
|
20
18
|
device: EncryptionDevice;
|
|
21
19
|
}
|
|
20
|
+
export interface EnsureOutboundSessionOpts {
|
|
21
|
+
shareShareSessionTimeoutMs?: number;
|
|
22
|
+
priorityUserIds?: string[];
|
|
23
|
+
miniblockInfo?: {
|
|
24
|
+
miniblockNum: bigint;
|
|
25
|
+
miniblockHash: Uint8Array;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
22
28
|
/**
|
|
23
29
|
* base type for encryption implementations
|
|
24
30
|
*/
|
|
@@ -29,9 +35,7 @@ export declare abstract class EncryptionAlgorithm implements IEncryptionParams {
|
|
|
29
35
|
* @param params - parameters
|
|
30
36
|
*/
|
|
31
37
|
constructor(params: IEncryptionParams);
|
|
32
|
-
abstract ensureOutboundSession(streamId: string, opts?:
|
|
33
|
-
awaitInitialShareSession: boolean;
|
|
34
|
-
}): Promise<void>;
|
|
38
|
+
abstract ensureOutboundSession(streamId: string, opts?: EnsureOutboundSessionOpts): Promise<void>;
|
|
35
39
|
abstract hasOutboundSession(streamId: string): Promise<boolean>;
|
|
36
40
|
abstract encrypt_deprecated_v0(streamId: string, payload: string): Promise<EncryptedData>;
|
|
37
41
|
abstract encrypt(streamId: string, payload: Uint8Array): Promise<EncryptedData>;
|
package/dist/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
package/dist/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAgCA;;GAEG;AACH,MAAM,OAAgB,mBAAmB;IACrB,MAAM,CAAkB;IACxB,MAAM,CAAwB;IAE9C;;OAEG;IACH,YAAmB,MAAyB;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC/B,CAAC;CAWJ;AAED;;GAEG;AACH,MAAM,OAAgB,mBAAmB;IACrB,MAAM,CAAkB;IAExC,YAAmB,MAAyB;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC/B,CAAC;CAcJ;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAElB;IADpB,YACoB,IAAY,EAC5B,GAAW;QAEX,KAAK,CAAC,GAAG,CAAC,CAAA;QAHM,SAAI,GAAJ,IAAI,CAAQ;QAI5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IACjC,CAAC;CACJ;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAQ;IACtC,OAAO,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAA;AACvC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EncryptedData } from '@towns-protocol/proto';
|
|
2
|
-
import { EncryptionAlgorithm, IEncryptionParams } from './base';
|
|
2
|
+
import { EncryptionAlgorithm, EnsureOutboundSessionOpts, IEncryptionParams } from './base';
|
|
3
3
|
import { GroupEncryptionAlgorithmId } from './olmLib';
|
|
4
4
|
/** Note Jterzis 07/26/23: Several features are intentionally left out of this module,
|
|
5
5
|
* that we may want to implement in the future:
|
|
@@ -18,9 +18,7 @@ import { GroupEncryptionAlgorithmId } from './olmLib';
|
|
|
18
18
|
export declare class GroupEncryption extends EncryptionAlgorithm {
|
|
19
19
|
readonly algorithm = GroupEncryptionAlgorithmId.GroupEncryption;
|
|
20
20
|
constructor(params: IEncryptionParams);
|
|
21
|
-
ensureOutboundSession(streamId: string, opts?:
|
|
22
|
-
awaitInitialShareSession: boolean;
|
|
23
|
-
}): Promise<void>;
|
|
21
|
+
ensureOutboundSession(streamId: string, opts?: EnsureOutboundSessionOpts): Promise<void>;
|
|
24
22
|
hasOutboundSession(streamId: string): Promise<boolean>;
|
|
25
23
|
private shareSession;
|
|
26
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupEncryption.d.ts","sourceRoot":"","sources":["../src/groupEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6C,MAAM,uBAAuB,CAAA;AAChG,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"groupEncryption.d.ts","sourceRoot":"","sources":["../src/groupEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6C,MAAM,uBAAuB,CAAA;AAChG,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAMrD;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,mBAAmB;IACpD,SAAgB,SAAS,8CAA6C;gBACnD,MAAM,EAAE,iBAAiB;IAI/B,qBAAqB,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC;IA0BH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YASrD,YAAY;IAiB1B;;OAEG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAY7F;;;;OAIG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;CAYtF"}
|
package/dist/groupEncryption.js
CHANGED
|
@@ -33,13 +33,13 @@ export class GroupEncryption extends EncryptionAlgorithm {
|
|
|
33
33
|
const sessionId = await this.device.createOutboundGroupSession(streamId);
|
|
34
34
|
log(`Started new megolm session ${sessionId}`);
|
|
35
35
|
// don't wait for the session to be shared
|
|
36
|
-
const promise = this.shareSession(streamId, sessionId);
|
|
37
|
-
if (opts?.
|
|
36
|
+
const promise = this.shareSession(streamId, sessionId, opts?.priorityUserIds ?? []);
|
|
37
|
+
if (opts?.shareShareSessionTimeoutMs === 0) {
|
|
38
38
|
await promise;
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
41
|
// await the promise but timeout after N seconds
|
|
42
|
-
const waitTimeBeforeMovingOn = 30000;
|
|
42
|
+
const waitTimeBeforeMovingOn = opts?.shareShareSessionTimeoutMs ?? 30000;
|
|
43
43
|
await Promise.race([
|
|
44
44
|
promise,
|
|
45
45
|
new Promise((resolve, _) => setTimeout(() => resolve(), waitTimeBeforeMovingOn)),
|
|
@@ -56,13 +56,12 @@ export class GroupEncryption extends EncryptionAlgorithm {
|
|
|
56
56
|
return false;
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
async shareSession(streamId, sessionId) {
|
|
60
|
-
const devicesInRoom = await this.client.getDevicesInStream(streamId);
|
|
59
|
+
async shareSession(streamId, sessionId, priorityUserIds) {
|
|
61
60
|
const session = await this.device.exportInboundGroupSession(streamId, sessionId);
|
|
62
61
|
if (!session) {
|
|
63
62
|
throw new Error('Session key not found for session ' + sessionId);
|
|
64
63
|
}
|
|
65
|
-
await this.client.
|
|
64
|
+
await this.client.encryptAndShareGroupSessionsToStream(streamId, [session], this.algorithm, priorityUserIds);
|
|
66
65
|
}
|
|
67
66
|
/**
|
|
68
67
|
* @deprecated
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupEncryption.js","sourceRoot":"","sources":["../src/groupEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAChG,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"groupEncryption.js","sourceRoot":"","sources":["../src/groupEncryption.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EncryptedData, ExportedDevice } from '@towns-protocol/proto';
|
|
2
2
|
import { GroupEncryptionAlgorithmId, GroupEncryptionSession, UserDevice } from './olmLib';
|
|
3
|
-
import { DecryptionAlgorithm, EncryptionAlgorithm, IGroupEncryptionClient } from './base';
|
|
3
|
+
import { DecryptionAlgorithm, EncryptionAlgorithm, EnsureOutboundSessionOpts, IGroupEncryptionClient } from './base';
|
|
4
4
|
import { type EncryptionDeviceInitOpts } from './encryptionDevice';
|
|
5
5
|
import type { CryptoStore } from './cryptoStore';
|
|
6
6
|
export interface ImportRoomKeysOpts {
|
|
@@ -55,9 +55,7 @@ export declare class GroupEncryptionCrypto {
|
|
|
55
55
|
* @returns Promise which resolves when the event has been
|
|
56
56
|
* created, use options to await the initial share
|
|
57
57
|
*/
|
|
58
|
-
ensureOutboundSession(streamId: string, algorithm: GroupEncryptionAlgorithmId, opts?:
|
|
59
|
-
awaitInitialShareSession: boolean;
|
|
60
|
-
}): Promise<void>;
|
|
58
|
+
ensureOutboundSession(streamId: string, algorithm: GroupEncryptionAlgorithmId, opts?: EnsureOutboundSessionOpts): Promise<void>;
|
|
61
59
|
/**
|
|
62
60
|
*
|
|
63
61
|
* @param streamId - the id of the stream to check
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupEncryptionCrypto.d.ts","sourceRoot":"","sources":["../src/groupEncryptionCrypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EACH,0BAA0B,EAC1B,sBAAsB,EAEtB,UAAU,EACb,MAAM,UAAU,CAAA;AAEjB,OAAO,EACH,mBAAmB,EAEnB,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,QAAQ,CAAA;AAGf,OAAO,EAAoB,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAKpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,MAAM,WAAW,kBAAkB;IAC/B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAA;CAChE;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAgC;IAEhD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,SAAgB,eAAe,EAAE,MAAM,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,CAAA;IACxF,SAAgB,eAAe,EAAE,MAAM,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,CAAA;IACxF,SAAgB,WAAW,EAAE,WAAW,CAAA;IACjC,gCAAgC,UAAQ;IACxC,2BAA2B,UAAO;gBAEtB,MAAM,EAAE,sBAAsB,EAAE,WAAW,EAAE,WAAW;IA+B3E;;OAEG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAajE;;;;;;;;OAQG;IACU,qBAAqB,CAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EAAE,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAgBlC;;;;;OAKG;IACU,oBAAoB,CAC7B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;OAKG;IACU,qBAAqB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,0BAA0B,EACrC,IAAI,CAAC,EAAE
|
|
1
|
+
{"version":3,"file":"groupEncryptionCrypto.d.ts","sourceRoot":"","sources":["../src/groupEncryptionCrypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupEncryptionCrypto.js","sourceRoot":"","sources":["../src/groupEncryptionCrypto.ts"],"names":[],"mappings":"AACA,OAAO,EACH,0BAA0B,EAE1B,+BAA+B,GAElC,MAAM,UAAU,CAAA;AAEjB,OAAO,EAEH,eAAe,
|
|
1
|
+
{"version":3,"file":"groupEncryptionCrypto.js","sourceRoot":"","sources":["../src/groupEncryptionCrypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EncryptedData, HybridGroupSessionKey } from '@towns-protocol/proto';
|
|
2
|
-
import { EncryptionAlgorithm, IEncryptionParams } from './base';
|
|
2
|
+
import { EncryptionAlgorithm, EnsureOutboundSessionOpts, IEncryptionParams } from './base';
|
|
3
3
|
import { GroupEncryptionAlgorithmId } from './olmLib';
|
|
4
4
|
/**
|
|
5
5
|
* Hybrid Group encryption implementation
|
|
@@ -9,12 +9,8 @@ import { GroupEncryptionAlgorithmId } from './olmLib';
|
|
|
9
9
|
export declare class HybridGroupEncryption extends EncryptionAlgorithm {
|
|
10
10
|
readonly algorithm = GroupEncryptionAlgorithmId.HybridGroupEncryption;
|
|
11
11
|
constructor(params: IEncryptionParams);
|
|
12
|
-
ensureOutboundSession(streamId: string, opts?:
|
|
13
|
-
|
|
14
|
-
}): Promise<void>;
|
|
15
|
-
_ensureOutboundSession(streamId: string, opts?: {
|
|
16
|
-
awaitInitialShareSession: boolean;
|
|
17
|
-
}): Promise<HybridGroupSessionKey>;
|
|
12
|
+
ensureOutboundSession(streamId: string, opts?: EnsureOutboundSessionOpts): Promise<void>;
|
|
13
|
+
_ensureOutboundSession(streamId: string, opts?: EnsureOutboundSessionOpts): Promise<HybridGroupSessionKey>;
|
|
18
14
|
hasOutboundSession(streamId: string): Promise<boolean>;
|
|
19
15
|
private shareSession;
|
|
20
16
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybridGroupEncryption.d.ts","sourceRoot":"","sources":["../src/hybridGroupEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAGb,qBAAqB,EACxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"hybridGroupEncryption.d.ts","sourceRoot":"","sources":["../src/hybridGroupEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAGb,qBAAqB,EACxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAOrD;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,mBAAmB;IAC1D,SAAgB,SAAS,oDAAmD;gBACzD,MAAM,EAAE,iBAAiB;IAI/B,qBAAqB,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC;IAIH,sBAAsB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,qBAAqB,CAAC;IAiCpB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YASrD,YAAY;IAiB1B;;OAEG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAe7F;;;;OAIG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;CActF"}
|
|
@@ -24,18 +24,18 @@ export class HybridGroupEncryption extends EncryptionAlgorithm {
|
|
|
24
24
|
return sessionKey;
|
|
25
25
|
}
|
|
26
26
|
catch (error) {
|
|
27
|
-
const { miniblockNum, miniblockHash } = await this.client.getMiniblockInfo(streamId);
|
|
27
|
+
const { miniblockNum, miniblockHash } = opts?.miniblockInfo ?? (await this.client.getMiniblockInfo(streamId));
|
|
28
28
|
// if we don't have a cached session at this point, create a new one
|
|
29
29
|
const { sessionId, sessionKey } = await this.device.createHybridGroupSession(streamId, miniblockNum, miniblockHash);
|
|
30
30
|
log(`Started new hybrid group session ${sessionId}`);
|
|
31
31
|
// don't wait for the session to be shared
|
|
32
|
-
const promise = this.shareSession(streamId, sessionId);
|
|
33
|
-
if (opts?.
|
|
32
|
+
const promise = this.shareSession(streamId, sessionId, opts?.priorityUserIds ?? []);
|
|
33
|
+
if (opts?.shareShareSessionTimeoutMs === 0) {
|
|
34
34
|
await promise;
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
37
|
// await the promise but timeout after N seconds
|
|
38
|
-
const waitTimeBeforeMovingOn = 30000;
|
|
38
|
+
const waitTimeBeforeMovingOn = opts?.shareShareSessionTimeoutMs ?? 30000;
|
|
39
39
|
await Promise.race([
|
|
40
40
|
promise,
|
|
41
41
|
new Promise((resolve, _) => setTimeout(() => resolve(), waitTimeBeforeMovingOn)),
|
|
@@ -53,13 +53,12 @@ export class HybridGroupEncryption extends EncryptionAlgorithm {
|
|
|
53
53
|
return false;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
async shareSession(streamId, sessionId) {
|
|
57
|
-
const devicesInRoom = await this.client.getDevicesInStream(streamId);
|
|
56
|
+
async shareSession(streamId, sessionId, priorityUserIds) {
|
|
58
57
|
const session = await this.device.exportHybridGroupSession(streamId, sessionId);
|
|
59
58
|
if (!session) {
|
|
60
59
|
throw new Error('Session key not found for session ' + sessionId);
|
|
61
60
|
}
|
|
62
|
-
await this.client.
|
|
61
|
+
await this.client.encryptAndShareGroupSessionsToStream(streamId, [session], this.algorithm, priorityUserIds);
|
|
63
62
|
}
|
|
64
63
|
/**
|
|
65
64
|
* @deprecated
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybridGroupEncryption.js","sourceRoot":"","sources":["../src/hybridGroupEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,mBAAmB,EACnB,oBAAoB,GAEvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"hybridGroupEncryption.js","sourceRoot":"","sources":["../src/hybridGroupEncryption.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@towns-protocol/encryption",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.382",
|
|
4
4
|
"packageManager": "yarn@3.8.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@bufbuild/protobuf": "^2.9.0",
|
|
22
22
|
"@towns-protocol/olm": "3.2.28",
|
|
23
|
-
"@towns-protocol/proto": "^0.0.
|
|
24
|
-
"@towns-protocol/utils": "^0.0.
|
|
25
|
-
"@towns-protocol/web3": "^0.0.
|
|
23
|
+
"@towns-protocol/proto": "^0.0.382",
|
|
24
|
+
"@towns-protocol/utils": "^0.0.382",
|
|
25
|
+
"@towns-protocol/web3": "^0.0.382",
|
|
26
26
|
"debug": "^4.3.4",
|
|
27
27
|
"dexie": "^4.2.1",
|
|
28
28
|
"ethers": "^5.8.0",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "ae612e5f1485e9ba169db247ad0fa413b23ca2bc"
|
|
53
53
|
}
|