From 5527bb714bc9bda2cdbcc266acf53226a073abf2 Mon Sep 17 00:00:00 2001
From: Timo <toger5@hotmail.de>
Date: Mon, 7 Apr 2025 10:32:55 +0200
Subject: [PATCH] fixups  - circular deps  - singleAsyncExecution  - 0 falsy
 fix

---
 src/client.ts                         |  5 ++---
 src/http-api/fetch.ts                 |  2 +-
 src/matrixrtc/MatrixRTCSession.ts     |  2 +-
 src/matrixrtc/ToDeviceKeyTransport.ts | 12 +++++++-----
 4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/client.ts b/src/client.ts
index 08a243d02..b28594c30 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -207,7 +207,7 @@ import {
 import { M_BEACON_INFO, type MBeaconInfoEventContent } from "./@types/beacon.ts";
 import { NamespacedValue, UnstableValue } from "./NamespacedValue.ts";
 import { ToDeviceMessageQueue } from "./ToDeviceMessageQueue.ts";
-import {type ToDeviceBatch, ToDevicePayload} from "./models/ToDeviceMessage.ts";
+import { type ToDeviceBatch, type ToDevicePayload } from "./models/ToDeviceMessage.ts";
 import { IgnoredInvites } from "./models/invites-ignorer.ts";
 import { type UIARequest } from "./@types/uia.ts";
 import { type LocalNotificationSettings } from "./@types/local_notifications.ts";
@@ -7957,8 +7957,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
         await this.queueToDevice(batch);
     }
 
-
-        /**
+    /**
      * Sends events directly to specific devices using Matrix's to-device
      * messaging system. The batch will be split up into appropriately sized
      * batches for sending and stored in the store so they can be retried
diff --git a/src/http-api/fetch.ts b/src/http-api/fetch.ts
index 7e9988429..9a54b7360 100644
--- a/src/http-api/fetch.ts
+++ b/src/http-api/fetch.ts
@@ -218,7 +218,7 @@ export class FetchHttpApi<O extends IHttpOpts> {
      * On success, sets new access and refresh tokens in opts.
      * @returns Promise that resolves to a boolean - true when token was refreshed successfully
      */
-    // @singleAsyncExecution
+    @singleAsyncExecution
     private async tryRefreshToken(): Promise<TokenRefreshOutcome> {
         if (!this.opts.refreshToken || !this.opts.tokenRefreshFunction) {
             return TokenRefreshOutcome.Logout;
diff --git a/src/matrixrtc/MatrixRTCSession.ts b/src/matrixrtc/MatrixRTCSession.ts
index 6772a6892..7de322bd7 100644
--- a/src/matrixrtc/MatrixRTCSession.ts
+++ b/src/matrixrtc/MatrixRTCSession.ts
@@ -31,7 +31,7 @@ import { logDurationSync } from "../utils.ts";
 import { ToDeviceKeyTransport } from "./ToDeviceKeyTransport.ts";
 import { type Statistics } from "./types.ts";
 import { RoomKeyTransport } from "./RoomKeyTransport.ts";
-import { IMembershipManager } from "./IMembershipManager.ts";
+import type { IMembershipManager } from "./IMembershipManager.ts";
 
 const logger = rootLogger.getChild("MatrixRTCSession");
 
diff --git a/src/matrixrtc/ToDeviceKeyTransport.ts b/src/matrixrtc/ToDeviceKeyTransport.ts
index 80dcd1c39..70f4b3c16 100644
--- a/src/matrixrtc/ToDeviceKeyTransport.ts
+++ b/src/matrixrtc/ToDeviceKeyTransport.ts
@@ -14,12 +14,14 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
-import { ClientEvent, EventType, type MatrixClient, MatrixEvent } from "../matrix.ts";
 import { TypedEventEmitter } from "../models/typed-event-emitter.ts";
-import { IKeyTransport, KeyTransportEvents, KeyTransportEventsHandlerMap } from "./IKeyTransport.ts";
+import { type IKeyTransport, KeyTransportEvents, type KeyTransportEventsHandlerMap } from "./IKeyTransport.ts";
 import { type Logger, logger } from "../logger.ts";
-import { CallMembership } from "./CallMembership.ts";
-import { EncryptionKeysToDeviceEventContent, Statistics } from "./types.ts";
+import type { CallMembership } from "./CallMembership.ts";
+import type { EncryptionKeysToDeviceEventContent, Statistics } from "./types.ts";
+import { ClientEvent, MatrixClient } from "../client.ts";
+import { MatrixEvent } from "../models/event.ts";
+import { EventType } from "../@types/event.ts";
 
 export class ToDeviceKeyTransport
     extends TypedEventEmitter<KeyTransportEvents, KeyTransportEventsHandlerMap>
@@ -145,7 +147,7 @@ export class ToDeviceKeyTransport
             return;
         }
 
-        if (!content.keys || !content.keys.key || !content.keys.index) {
+        if (!content.keys || !content.keys.key || typeof content.keys.index !== "number") {
             this.prefixedLogger.warn("Malformed Event: Missing keys field");
             return;
         }
-- 
GitLab