diff --git a/src/simple-server.ts b/src/simple-server.ts index 934c0e5..c9dfc79 100644 --- a/src/simple-server.ts +++ b/src/simple-server.ts @@ -298,6 +298,27 @@ class SimpleProcessHandlers { throw new Error(errorMessage); } } + + async handleGetPairingId(event: ServerMessageEvent): Promise { + if (event.data.type !== MessageType.GET_PAIRING_ID) { + throw new Error('Invalid message type'); + } + + if (!this.service.isPaired()) { + throw new Error('Device not paired'); + } + + try { + const pairingId = this.service.getPairingProcessId(); + return { + type: MessageType.GET_PAIRING_ID, + pairingId, + messageId: event.data.messageId + }; + } catch (e) { + const errorMessage = e instanceof Error ? e.message : String(e || 'Unknown error'); + throw new Error(errorMessage); + } } async handleMessage(event: ServerMessageEvent): Promise { @@ -313,6 +334,8 @@ class SimpleProcessHandlers { return await this.handleUpdateProcess(event); case MessageType.GET_MY_PROCESSES: return await this.handleGetMyProcesses(event); + case MessageType.GET_PAIRING_ID: + return await this.handleGetPairingId(event); default: throw new Error(`Unhandled message type: ${event.data.type}`); }