From 1237462065f1c6b410381887912ee2c972cc8f97 Mon Sep 17 00:00:00 2001 From: Milton Moura Date: Tue, 11 Feb 2025 11:16:46 -0100 Subject: [PATCH] Replacing MatrixClient with trimmed down RTCClient Signed-off-by: Milton Moura --- src/matrixrtc/EncryptionManager.ts | 4 ++-- src/matrixrtc/MatrixRTCSession.ts | 9 ++++++--- src/matrixrtc/MembershipManager.ts | 12 ++---------- src/matrixrtc/types.ts | 15 ++++++++++++++- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/matrixrtc/EncryptionManager.ts b/src/matrixrtc/EncryptionManager.ts index 0ddaf7f874..1fdf3eb125 100644 --- a/src/matrixrtc/EncryptionManager.ts +++ b/src/matrixrtc/EncryptionManager.ts @@ -4,7 +4,7 @@ import { type MatrixEvent } from "../models/event.ts"; import { type Room } from "../models/room.ts"; import { type EncryptionConfig } from "./MatrixRTCSession.ts"; import { secureRandomBase64Url } from "../randomstring.ts"; -import { type EncryptionKeysEventContent } from "./types.ts"; +import { RTCClient, type EncryptionKeysEventContent } from "./types.ts"; import { decodeBase64, encodeUnpaddedBase64 } from "../base64.ts"; import { type MatrixError, safeGetRetryAfterMs } from "../http-api/errors.ts"; import { type CallMembership } from "./CallMembership.ts"; @@ -99,7 +99,7 @@ export class EncryptionManager implements IEncryptionManager { private joinConfig: EncryptionConfig | undefined; public constructor( - private client: Pick, + private client: RTCClient, private room: Pick, private getMemberships: () => CallMembership[], private onEncryptionKeysChanged: ( diff --git a/src/matrixrtc/MatrixRTCSession.ts b/src/matrixrtc/MatrixRTCSession.ts index 64672500ab..ebddc784e8 100644 --- a/src/matrixrtc/MatrixRTCSession.ts +++ b/src/matrixrtc/MatrixRTCSession.ts @@ -18,7 +18,6 @@ import { logger as rootLogger } from "../logger.ts"; import { TypedEventEmitter } from "../models/typed-event-emitter.ts"; import { EventTimeline } from "../models/event-timeline.ts"; import { type Room } from "../models/room.ts"; -import { type MatrixClient } from "../client.ts"; import { EventType } from "../@types/event.ts"; import { CallMembership } from "./CallMembership.ts"; import { RoomStateEvent } from "../models/room-state.ts"; @@ -27,6 +26,7 @@ import { KnownMembership } from "../@types/membership.ts"; import { type MatrixEvent } from "../models/event.ts"; import { LegacyMembershipManager, type IMembershipManager } from "./MembershipManager.ts"; import { EncryptionManager, type IEncryptionManager, type Statistics } from "./EncryptionManager.ts"; +import { RTCClient } from "./types.ts"; const logger = rootLogger.getChild("MatrixRTCSession"); @@ -219,14 +219,17 @@ export class MatrixRTCSession extends TypedEventEmitter, - private client: Pick< - MatrixClient, - | "getUserId" - | "getDeviceId" - | "sendStateEvent" - | "_unstable_sendDelayedEvent" - | "_unstable_sendDelayedStateEvent" - | "_unstable_updateDelayedEvent" - >, + private client: RTCClient, private getOldestMembership: () => CallMembership | undefined, ) {} diff --git a/src/matrixrtc/types.ts b/src/matrixrtc/types.ts index 998a444452..656ac6d26d 100644 --- a/src/matrixrtc/types.ts +++ b/src/matrixrtc/types.ts @@ -13,7 +13,20 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ -import { type IMentions } from "../matrix.ts"; +import { MatrixClient, type IMentions } from "../matrix.ts"; + +export type RTCClient = Pick< + MatrixClient, + | "cancelPendingEvent" + | "getUserId" + | "getDeviceId" + | "sendEvent" + | "sendStateEvent" + | "_unstable_sendDelayedEvent" + | "_unstable_sendDelayedStateEvent" + | "_unstable_updateDelayedEvent" + >; + export interface EncryptionKeyEntry { index: number; key: string;