From 926a28b7f9be96c8e3189d037b701ac118076f66 Mon Sep 17 00:00:00 2001 From: chatenium Date: Fri, 10 Apr 2026 19:18:13 +0200 Subject: [PATCH] SessionManager hotfix --- package.json | 2 +- src/services/sessionManager.ts | 26 +++++++++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index c9b06e6..a2aa4b1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@chatenium/chatenium-sdk", - "version": "1.1.3", + "version": "1.1.4", "description": "A library for interacting with the Chatenium API", "type": "module", "main": "dist/index.js", diff --git a/src/services/sessionManager.ts b/src/services/sessionManager.ts index ec6220b..7f278f3 100644 --- a/src/services/sessionManager.ts +++ b/src/services/sessionManager.ts @@ -36,14 +36,21 @@ export class SessionManager { async loadSessions(): Promise { const tokens = await this.keyring.getAll() const sessions: Session[] = [] + for (const tokenKey of tokens) { - const token = await this.keyring.get(tokenKey) - const userData = await this.database.get("sessions", tokenKey) - if (userData) { - sessions.push({ - token: token, - userData: JSON.parse(userData) - }) + try { + const token = await this.keyring.get(tokenKey) + const userData = await this.database.get("sessions", tokenKey) + + if (userData && userData.trim().length > 0) { + sessions.push({ + token: token, + userData: JSON.parse(userData) + }) + } + } catch (e) { + console.error(`Failed to parse session for ${tokenKey}:`, e) + continue } } @@ -70,6 +77,11 @@ export class SessionManager { */ async loadPreferredSession() { const sessions = await this.loadSessions() + + if (sessions.length == 0) { + throw new Error("No sessions found") + } + let preferredUser = await this.getPreferredUser() if (preferredUser == "") { preferredUser = sessions[0].userData.userid