@baasix/baasix 0.1.37 → 0.1.39

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.
@@ -14,6 +14,35 @@ declare class SocketService {
14
14
  private socketIdToUserId;
15
15
  private customMessageHandlers;
16
16
  private roomValidators;
17
+ private static readonly ROOM_HISTORY_LIMIT;
18
+ private roomMessageHistory;
19
+ private get useRedis();
20
+ /** Add / update a member in the room's member store */
21
+ private rRoomMemberSet;
22
+ /** Remove a member from the room's member store */
23
+ private rRoomMemberDel;
24
+ /** Check if a socket is in a room */
25
+ private rRoomMemberHas;
26
+ /** Get all members of a room as Map<socketId, meta> */
27
+ private rRoomMembersAll;
28
+ /** Number of members in a room */
29
+ private rRoomMemberCount;
30
+ /** Delete the entire room (all member keys + creator keys + history) */
31
+ private rRoomDestroy;
32
+ /** Get current creator socketId */
33
+ private rCreatorGet;
34
+ /** Set current creator socketId */
35
+ private rCreatorSet;
36
+ /** Delete current creator entry */
37
+ private rCreatorDel;
38
+ /** Get original creator userId */
39
+ private rOriginalCreatorGet;
40
+ /** Set original creator userId (only set once — NX) */
41
+ private rOriginalCreatorSet;
42
+ /** Append a message to history, trimming to ROOM_HISTORY_LIMIT */
43
+ private rHistoryPush;
44
+ /** Fetch all history entries for a room */
45
+ private rHistoryGet;
17
46
  constructor();
18
47
  initialize(server: HTTPServer): Promise<void>;
19
48
  initializeRedisAdapter(): Promise<void>;
@@ -28,6 +57,7 @@ declare class SocketService {
28
57
  collection: string;
29
58
  }): void;
30
59
  handleDisconnect(socket: SocketWithAuth): void;
60
+ private handleDisconnectRoomCleanup;
31
61
  /**
32
62
  * Handle a user joining a custom room
33
63
  */
@@ -35,21 +65,21 @@ declare class SocketService {
35
65
  /**
36
66
  * Handle a user leaving a custom room
37
67
  */
38
- handleRoomLeave(socket: SocketWithAuth, roomName: string): void;
68
+ handleRoomLeave(socket: SocketWithAuth, roomName: string): Promise<void>;
39
69
  /**
40
70
  * Handle a message sent to a custom room
41
71
  */
42
- handleRoomMessage(socket: SocketWithAuth, roomName: string, event: string, payload: any): Promise<void>;
72
+ handleRoomMessage(socket: SocketWithAuth, roomName: string, event: string, payload: any, storeInHistory?: boolean): Promise<void>;
43
73
  /**
44
74
  * Return member list for a room. Only callable by current room members.
45
75
  * Returns userId, socketId, metadata, and whether each member is the room creator.
46
76
  */
47
- handleRoomMembers(socket: SocketWithAuth, roomName: string): Array<{
77
+ handleRoomMembers(socket: SocketWithAuth, roomName: string): Promise<Array<{
48
78
  socketId: string;
49
79
  userId: string | number;
50
80
  isCreator: boolean;
51
81
  metadata: Record<string, any>;
52
- }>;
82
+ }>>;
53
83
  /**
54
84
  * Kick a user from a custom room. Only the room creator may do this.
55
85
  * All sockets belonging to the target user that are in the room will be removed.
@@ -113,23 +143,23 @@ declare class SocketService {
113
143
  /**
114
144
  * Get list of users in a custom room (server-side utility for extensions)
115
145
  */
116
- getRoomMembers(roomName: string): Array<{
146
+ getRoomMembers(roomName: string): Promise<Array<{
117
147
  socketId: string;
118
148
  userId: string | number;
119
149
  metadata: Record<string, any>;
120
- }>;
150
+ }>>;
121
151
  /**
122
152
  * Get count of users in a custom room
123
153
  */
124
- getRoomMemberCount(roomName: string): number;
154
+ getRoomMemberCount(roomName: string): Promise<number>;
125
155
  /**
126
156
  * Check if a room exists
127
157
  */
128
- roomExists(roomName: string): boolean;
158
+ roomExists(roomName: string): Promise<boolean>;
129
159
  /**
130
- * Get all custom rooms
160
+ * Get all custom rooms with member counts
131
161
  */
132
- getCustomRooms(): Map<string, number>;
162
+ getCustomRooms(): Promise<Map<string, number>>;
133
163
  checkCollectionAccess(socket: SocketWithAuth, collection: string): Promise<boolean>;
134
164
  getCollectionRoom(collection: string, tenantId?: string | number): string;
135
165
  broadcastChange(collection: string, action: string, data: any, accountability?: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"SocketService.d.ts","sourceRoot":"","sources":["../../baasix/services/SocketService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SocketService.d.ts","sourceRoot":"","sources":["../../baasix/services/SocketService.ts"],"names":[],"mappings":"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"}
@@ -14,13 +14,140 @@ class SocketService {
14
14
  redisPublisher = null;
15
15
  redisSubscriber = null;
16
16
  // Custom room management
17
- // roomName -> Map<socketId, memberMeta>
17
+ // roomName -> Map<socketId, memberMeta> (in-memory fallback)
18
18
  customRooms = new Map();
19
19
  roomCreators = new Map(); // roomName -> current creator's socketId
20
20
  roomOriginalCreators = new Map(); // roomName -> original creator's userId (persistent)
21
21
  socketIdToUserId = new Map(); // socketId -> userId (reverse lookup)
22
22
  customMessageHandlers = new Map();
23
23
  roomValidators = new Map();
24
+ // Message history per room — capped at ROOM_HISTORY_LIMIT entries
25
+ // Cleared automatically when the room is destroyed (last member leaves)
26
+ static ROOM_HISTORY_LIMIT = 200;
27
+ roomMessageHistory = new Map();
28
+ // ==========================================
29
+ // Redis-aware room storage helpers
30
+ // ==========================================
31
+ get useRedis() {
32
+ return !!(this.redisPublisher && this.redisSubscriber);
33
+ }
34
+ /** Add / update a member in the room's member store */
35
+ async rRoomMemberSet(roomName, socketId, meta) {
36
+ if (this.useRedis) {
37
+ await this.redisPublisher.hset(`room:${roomName}:members`, socketId, JSON.stringify(meta));
38
+ }
39
+ else {
40
+ if (!this.customRooms.has(roomName))
41
+ this.customRooms.set(roomName, new Map());
42
+ this.customRooms.get(roomName).set(socketId, meta);
43
+ }
44
+ }
45
+ /** Remove a member from the room's member store */
46
+ async rRoomMemberDel(roomName, socketId) {
47
+ if (this.useRedis) {
48
+ await this.redisPublisher.hdel(`room:${roomName}:members`, socketId);
49
+ }
50
+ else {
51
+ this.customRooms.get(roomName)?.delete(socketId);
52
+ }
53
+ }
54
+ /** Check if a socket is in a room */
55
+ async rRoomMemberHas(roomName, socketId) {
56
+ if (this.useRedis) {
57
+ return (await this.redisPublisher.hexists(`room:${roomName}:members`, socketId)) === 1;
58
+ }
59
+ return this.customRooms.get(roomName)?.has(socketId) ?? false;
60
+ }
61
+ /** Get all members of a room as Map<socketId, meta> */
62
+ async rRoomMembersAll(roomName) {
63
+ if (this.useRedis) {
64
+ const raw = await this.redisPublisher.hgetall(`room:${roomName}:members`);
65
+ if (!raw || Object.keys(raw).length === 0)
66
+ return null;
67
+ const m = new Map();
68
+ for (const [k, v] of Object.entries(raw))
69
+ m.set(k, JSON.parse(v));
70
+ return m;
71
+ }
72
+ return this.customRooms.get(roomName) ?? null;
73
+ }
74
+ /** Number of members in a room */
75
+ async rRoomMemberCount(roomName) {
76
+ if (this.useRedis) {
77
+ return await this.redisPublisher.hlen(`room:${roomName}:members`);
78
+ }
79
+ return this.customRooms.get(roomName)?.size ?? 0;
80
+ }
81
+ /** Delete the entire room (all member keys + creator keys + history) */
82
+ async rRoomDestroy(roomName) {
83
+ if (this.useRedis) {
84
+ await this.redisPublisher.del(`room:${roomName}:members`, `room:${roomName}:creator`, `room:${roomName}:original_creator`, `room:${roomName}:history`);
85
+ }
86
+ else {
87
+ this.customRooms.delete(roomName);
88
+ this.roomCreators.delete(roomName);
89
+ this.roomOriginalCreators.delete(roomName);
90
+ this.roomMessageHistory.delete(roomName);
91
+ }
92
+ }
93
+ /** Get current creator socketId */
94
+ async rCreatorGet(roomName) {
95
+ if (this.useRedis)
96
+ return await this.redisPublisher.get(`room:${roomName}:creator`);
97
+ return this.roomCreators.get(roomName) ?? null;
98
+ }
99
+ /** Set current creator socketId */
100
+ async rCreatorSet(roomName, socketId) {
101
+ if (this.useRedis)
102
+ await this.redisPublisher.set(`room:${roomName}:creator`, socketId);
103
+ else
104
+ this.roomCreators.set(roomName, socketId);
105
+ }
106
+ /** Delete current creator entry */
107
+ async rCreatorDel(roomName) {
108
+ if (this.useRedis)
109
+ await this.redisPublisher.del(`room:${roomName}:creator`);
110
+ else
111
+ this.roomCreators.delete(roomName);
112
+ }
113
+ /** Get original creator userId */
114
+ async rOriginalCreatorGet(roomName) {
115
+ if (this.useRedis)
116
+ return await this.redisPublisher.get(`room:${roomName}:original_creator`);
117
+ const v = this.roomOriginalCreators.get(roomName);
118
+ return v !== undefined ? String(v) : null;
119
+ }
120
+ /** Set original creator userId (only set once — NX) */
121
+ async rOriginalCreatorSet(roomName, userId) {
122
+ if (this.useRedis)
123
+ await this.redisPublisher.setnx(`room:${roomName}:original_creator`, String(userId));
124
+ else if (!this.roomOriginalCreators.has(roomName))
125
+ this.roomOriginalCreators.set(roomName, userId);
126
+ }
127
+ /** Append a message to history, trimming to ROOM_HISTORY_LIMIT */
128
+ async rHistoryPush(roomName, record) {
129
+ if (this.useRedis) {
130
+ const key = `room:${roomName}:history`;
131
+ await this.redisPublisher.rpush(key, JSON.stringify(record));
132
+ await this.redisPublisher.ltrim(key, -SocketService.ROOM_HISTORY_LIMIT, -1);
133
+ }
134
+ else {
135
+ if (!this.roomMessageHistory.has(roomName))
136
+ this.roomMessageHistory.set(roomName, []);
137
+ const h = this.roomMessageHistory.get(roomName);
138
+ h.push(record);
139
+ if (h.length > SocketService.ROOM_HISTORY_LIMIT)
140
+ h.shift();
141
+ }
142
+ }
143
+ /** Fetch all history entries for a room */
144
+ async rHistoryGet(roomName) {
145
+ if (this.useRedis) {
146
+ const items = await this.redisPublisher.lrange(`room:${roomName}:history`, 0, -1);
147
+ return items.map((i) => JSON.parse(i));
148
+ }
149
+ return this.roomMessageHistory.get(roomName) ?? [];
150
+ }
24
151
  constructor() {
25
152
  console.info("Socket Service instance created");
26
153
  }
@@ -185,16 +312,17 @@ class SocketService {
185
312
  socket.on("room:join", async (data, callback) => {
186
313
  try {
187
314
  await this.handleRoomJoin(socket, data.room, data.metadata);
188
- callback?.({ status: "success", room: data.room });
315
+ const history = await this.rHistoryGet(data.room);
316
+ callback?.({ status: "success", room: data.room, history });
189
317
  }
190
318
  catch (error) {
191
319
  callback?.({ status: "error", message: error.message });
192
320
  }
193
321
  });
194
322
  // Handle custom room leave
195
- socket.on("room:leave", (data, callback) => {
323
+ socket.on("room:leave", async (data, callback) => {
196
324
  try {
197
- this.handleRoomLeave(socket, data.room);
325
+ await this.handleRoomLeave(socket, data.room);
198
326
  callback?.({ status: "success", room: data.room });
199
327
  }
200
328
  catch (error) {
@@ -204,7 +332,7 @@ class SocketService {
204
332
  // Handle custom room message (client -> server -> room)
205
333
  socket.on("room:message", async (data, callback) => {
206
334
  try {
207
- await this.handleRoomMessage(socket, data.room, data.event, data.payload);
335
+ await this.handleRoomMessage(socket, data.room, data.event, data.payload, data.history ?? true);
208
336
  callback?.({ status: "success" });
209
337
  }
210
338
  catch (error) {
@@ -212,9 +340,9 @@ class SocketService {
212
340
  }
213
341
  });
214
342
  // Handle room members request — any room member can call this
215
- socket.on("room:members", (data, callback) => {
343
+ socket.on("room:members", async (data, callback) => {
216
344
  try {
217
- const members = this.handleRoomMembers(socket, data.room);
345
+ const members = await this.handleRoomMembers(socket, data.room);
218
346
  callback?.({ status: "success", members });
219
347
  }
220
348
  catch (error) {
@@ -231,6 +359,23 @@ class SocketService {
231
359
  callback?.({ status: "error", message: error.message });
232
360
  }
233
361
  });
362
+ // Handle room list request — returns all rooms (optionally filtered by prefix)
363
+ socket.on("room:list", async (data = {}, callback) => {
364
+ try {
365
+ const allRooms = await this.getCustomRooms();
366
+ const prefix = data?.prefix ?? "";
367
+ const rooms = [];
368
+ for (const [name, memberCount] of allRooms.entries()) {
369
+ if (!prefix || name.startsWith(prefix)) {
370
+ rooms.push({ name, memberCount });
371
+ }
372
+ }
373
+ callback?.({ status: "success", rooms });
374
+ }
375
+ catch (error) {
376
+ callback?.({ status: "error", message: error.message });
377
+ }
378
+ });
234
379
  // Handle custom events with registered handlers
235
380
  socket.on("custom", async (data, callback) => {
236
381
  try {
@@ -287,15 +432,31 @@ class SocketService {
287
432
  }
288
433
  // Clean up reverse socket ID lookup
289
434
  this.socketIdToUserId.delete(socket.id);
290
- // Clean up custom room memberships
291
- for (const [roomName, members] of this.customRooms.entries()) {
292
- if (members.has(socket.id)) {
293
- members.delete(socket.id);
294
- // Transfer creator if the disconnecting socket was the room owner
295
- if (this.roomCreators.get(roomName) === socket.id) {
296
- const remaining = Array.from(members.keys());
435
+ // Async cleanup fire-and-forget (disconnect handler can't be async in Socket.IO)
436
+ this.handleDisconnectRoomCleanup(socket).catch((err) => console.error("Room cleanup error on disconnect:", err));
437
+ }
438
+ async handleDisconnectRoomCleanup(socket) {
439
+ // In-memory: iterate local map; Redis: we need to find rooms this socket was in.
440
+ // We track socket->rooms in socketIdToRooms for the Redis path.
441
+ const rooms = this.useRedis
442
+ ? (await this.redisPublisher.smembers(`socket:${socket.id}:rooms`))
443
+ : Array.from(this.customRooms.keys()).filter((r) => this.customRooms.get(r)?.has(socket.id));
444
+ for (const roomName of rooms) {
445
+ await this.rRoomMemberDel(roomName, socket.id);
446
+ if (this.useRedis)
447
+ await this.redisPublisher.srem(`socket:${socket.id}:rooms`, roomName);
448
+ const count = await this.rRoomMemberCount(roomName);
449
+ if (count === 0) {
450
+ await this.rRoomDestroy(roomName);
451
+ }
452
+ else {
453
+ // Transfer creator if necessary
454
+ const creatorSocketId = await this.rCreatorGet(roomName);
455
+ if (creatorSocketId === socket.id) {
456
+ const members = await this.rRoomMembersAll(roomName);
457
+ const remaining = members ? Array.from(members.keys()) : [];
297
458
  if (remaining.length > 0) {
298
- this.roomCreators.set(roomName, remaining[0]);
459
+ await this.rCreatorSet(roomName, remaining[0]);
299
460
  this.io?.to(`room:${roomName}`).emit("room:creator:changed", {
300
461
  room: roomName,
301
462
  newCreatorSocketId: remaining[0],
@@ -304,22 +465,20 @@ class SocketService {
304
465
  });
305
466
  }
306
467
  else {
307
- this.roomCreators.delete(roomName);
468
+ await this.rCreatorDel(roomName);
308
469
  }
309
470
  }
310
- // Emit leave event to room
311
- this.io?.to(`room:${roomName}`).emit("room:user:left", {
312
- room: roomName,
313
- userId: socket.userId,
314
- socketId: socket.id,
315
- timestamp: new Date().toISOString(),
316
- });
317
- // Clean up empty rooms
318
- if (members.size === 0) {
319
- this.customRooms.delete(roomName);
320
- this.roomOriginalCreators.delete(roomName);
321
- }
322
471
  }
472
+ this.io?.to(`room:${roomName}`).emit("room:user:left", {
473
+ room: roomName,
474
+ userId: socket.userId,
475
+ socketId: socket.id,
476
+ timestamp: new Date().toISOString(),
477
+ });
478
+ }
479
+ // Clean up socket->rooms index in Redis
480
+ if (this.useRedis) {
481
+ await this.redisPublisher.del(`socket:${socket.id}:rooms`);
323
482
  }
324
483
  }
325
484
  // ==========================================
@@ -343,26 +502,27 @@ class SocketService {
343
502
  break;
344
503
  }
345
504
  }
346
- // Add socket to custom room tracking (with metadata)
347
- if (!this.customRooms.has(roomName)) {
348
- this.customRooms.set(roomName, new Map());
505
+ // Add socket to room member store (with metadata)
506
+ await this.rRoomMemberSet(roomName, socket.id, metadata);
507
+ // Track which rooms this socket is in (needed for fast Redis disconnect lookup)
508
+ if (this.useRedis) {
509
+ await this.redisPublisher.sadd(`socket:${socket.id}:rooms`, roomName);
349
510
  }
350
- this.customRooms.get(roomName).set(socket.id, metadata);
351
- if (!this.roomCreators.has(roomName)) {
352
- // First joiner creates the room record them as both current and original creator
353
- this.roomCreators.set(roomName, socket.id);
354
- this.roomOriginalCreators.set(roomName, socket.userId);
511
+ const creatorSocketId = await this.rCreatorGet(roomName);
512
+ if (!creatorSocketId) {
513
+ // First joiner — becomes both current and original creator
514
+ await this.rCreatorSet(roomName, socket.id);
515
+ await this.rOriginalCreatorSet(roomName, socket.userId);
355
516
  }
356
517
  else {
357
518
  // Room already exists — check if the original creator is rejoining
358
- const originalCreatorId = this.roomOriginalCreators.get(roomName);
359
- const currentCreatorSocketId = this.roomCreators.get(roomName);
360
- const currentCreatorUserId = this.socketIdToUserId.get(currentCreatorSocketId);
361
- if (originalCreatorId !== undefined &&
519
+ const originalCreatorId = await this.rOriginalCreatorGet(roomName);
520
+ const currentCreatorUserId = this.socketIdToUserId.get(creatorSocketId);
521
+ if (originalCreatorId !== null &&
362
522
  String(socket.userId) === String(originalCreatorId) &&
363
523
  String(socket.userId) !== String(currentCreatorUserId)) {
364
524
  // Restore original creator's ownership
365
- this.roomCreators.set(roomName, socket.id);
525
+ await this.rCreatorSet(roomName, socket.id);
366
526
  this.io?.to(`room:${roomName}`).emit("room:creator:changed", {
367
527
  room: roomName,
368
528
  newCreatorSocketId: socket.id,
@@ -386,19 +546,28 @@ class SocketService {
386
546
  /**
387
547
  * Handle a user leaving a custom room
388
548
  */
389
- handleRoomLeave(socket, roomName) {
549
+ async handleRoomLeave(socket, roomName) {
390
550
  if (!roomName || typeof roomName !== "string") {
391
551
  throw new APIError("Invalid room name", 400);
392
552
  }
393
- // Remove from custom room tracking
394
- if (this.customRooms.has(roomName)) {
395
- this.customRooms.get(roomName).delete(socket.id);
396
- // Transfer creator role to the next member if the creator is leaving
397
- if (this.roomCreators.get(roomName) === socket.id) {
398
- const remaining = Array.from(this.customRooms.get(roomName).keys());
553
+ const isMember = await this.rRoomMemberHas(roomName, socket.id);
554
+ if (!isMember)
555
+ return;
556
+ await this.rRoomMemberDel(roomName, socket.id);
557
+ if (this.useRedis)
558
+ await this.redisPublisher.srem(`socket:${socket.id}:rooms`, roomName);
559
+ const count = await this.rRoomMemberCount(roomName);
560
+ if (count === 0) {
561
+ await this.rRoomDestroy(roomName);
562
+ }
563
+ else {
564
+ // Transfer creator role if the leaving socket was the room owner
565
+ const creatorSocketId = await this.rCreatorGet(roomName);
566
+ if (creatorSocketId === socket.id) {
567
+ const members = await this.rRoomMembersAll(roomName);
568
+ const remaining = members ? Array.from(members.keys()) : [];
399
569
  if (remaining.length > 0) {
400
- this.roomCreators.set(roomName, remaining[0]);
401
- // Notify room of ownership change
570
+ await this.rCreatorSet(roomName, remaining[0]);
402
571
  this.io?.to(`room:${roomName}`).emit("room:creator:changed", {
403
572
  room: roomName,
404
573
  newCreatorSocketId: remaining[0],
@@ -407,13 +576,9 @@ class SocketService {
407
576
  });
408
577
  }
409
578
  else {
410
- this.roomCreators.delete(roomName);
579
+ await this.rCreatorDel(roomName);
411
580
  }
412
581
  }
413
- if (this.customRooms.get(roomName).size === 0) {
414
- this.customRooms.delete(roomName);
415
- this.roomOriginalCreators.delete(roomName);
416
- }
417
582
  }
418
583
  // Leave the Socket.IO room
419
584
  socket.leave(`room:${roomName}`);
@@ -429,35 +594,39 @@ class SocketService {
429
594
  /**
430
595
  * Handle a message sent to a custom room
431
596
  */
432
- async handleRoomMessage(socket, roomName, event, payload) {
597
+ async handleRoomMessage(socket, roomName, event, payload, storeInHistory = true) {
433
598
  if (!roomName || typeof roomName !== "string") {
434
599
  throw new APIError("Invalid room name", 400);
435
600
  }
436
601
  // Check if the socket is in the room
437
- if (!this.customRooms.has(roomName) || !this.customRooms.get(roomName).has(socket.id)) {
602
+ if (!(await this.rRoomMemberHas(roomName, socket.id))) {
438
603
  throw new APIError("Not a member of this room", 403);
439
604
  }
440
- // Broadcast to all room members (including sender)
441
- this.io?.to(`room:${roomName}`).emit(`room:${event}`, {
442
- room: roomName,
605
+ const record = {
443
606
  event,
444
607
  payload,
445
- sender: {
446
- userId: socket.userId,
447
- socketId: socket.id,
448
- },
608
+ sender: { userId: socket.userId, socketId: socket.id },
449
609
  timestamp: new Date().toISOString(),
610
+ };
611
+ // Broadcast to all room members (including sender)
612
+ this.io?.to(`room:${roomName}`).emit(`room:${event}`, {
613
+ room: roomName,
614
+ ...record,
450
615
  });
616
+ // Append to history only if requested
617
+ if (storeInHistory) {
618
+ await this.rHistoryPush(roomName, record);
619
+ }
451
620
  }
452
621
  /**
453
622
  * Return member list for a room. Only callable by current room members.
454
623
  * Returns userId, socketId, metadata, and whether each member is the room creator.
455
624
  */
456
- handleRoomMembers(socket, roomName) {
625
+ async handleRoomMembers(socket, roomName) {
457
626
  if (!roomName || typeof roomName !== "string") {
458
627
  throw new APIError("Invalid room name", 400);
459
628
  }
460
- const members = this.customRooms.get(roomName);
629
+ const members = await this.rRoomMembersAll(roomName);
461
630
  if (!members) {
462
631
  throw new APIError("Room not found", 404);
463
632
  }
@@ -465,7 +634,7 @@ class SocketService {
465
634
  if (!members.has(socket.id)) {
466
635
  throw new APIError("Not a member of this room", 403);
467
636
  }
468
- const creatorSocketId = this.roomCreators.get(roomName);
637
+ const creatorSocketId = await this.rCreatorGet(roomName);
469
638
  return Array.from(members.entries()).map(([socketId, metadata]) => ({
470
639
  socketId,
471
640
  userId: this.socketIdToUserId.get(socketId) ?? socketId,
@@ -481,12 +650,13 @@ class SocketService {
481
650
  if (!roomName || typeof roomName !== "string") {
482
651
  throw new APIError("Invalid room name", 400);
483
652
  }
484
- const members = this.customRooms.get(roomName);
653
+ const members = await this.rRoomMembersAll(roomName);
485
654
  if (!members) {
486
655
  throw new APIError("Room not found", 404);
487
656
  }
488
657
  // Only the room creator may kick
489
- if (this.roomCreators.get(roomName) !== socket.id) {
658
+ const creatorSocketId = await this.rCreatorGet(roomName);
659
+ if (creatorSocketId !== socket.id) {
490
660
  throw new APIError("Only the room creator can kick users", 403);
491
661
  }
492
662
  // A creator cannot kick themselves
@@ -500,7 +670,9 @@ class SocketService {
500
670
  let kicked = false;
501
671
  for (const targetSocket of targetSockets) {
502
672
  if (members.has(targetSocket.id)) {
503
- members.delete(targetSocket.id);
673
+ await this.rRoomMemberDel(roomName, targetSocket.id);
674
+ if (this.useRedis)
675
+ await this.redisPublisher.srem(`socket:${targetSocket.id}:rooms`, roomName);
504
676
  targetSocket.leave(`room:${roomName}`);
505
677
  // Tell the kicked socket it was removed
506
678
  targetSocket.emit("room:kicked", {
@@ -522,10 +694,9 @@ class SocketService {
522
694
  throw new APIError("Target user is not in this room", 404);
523
695
  }
524
696
  // Clean up empty room
525
- if (members.size === 0) {
526
- this.customRooms.delete(roomName);
527
- this.roomCreators.delete(roomName);
528
- this.roomOriginalCreators.delete(roomName);
697
+ const remaining = await this.rRoomMemberCount(roomName);
698
+ if (remaining === 0) {
699
+ await this.rRoomDestroy(roomName);
529
700
  }
530
701
  }
531
702
  /**
@@ -641,8 +812,8 @@ class SocketService {
641
812
  /**
642
813
  * Get list of users in a custom room (server-side utility for extensions)
643
814
  */
644
- getRoomMembers(roomName) {
645
- const members = this.customRooms.get(roomName);
815
+ async getRoomMembers(roomName) {
816
+ const members = await this.rRoomMembersAll(roomName);
646
817
  if (!members)
647
818
  return [];
648
819
  return Array.from(members.entries()).map(([socketId, metadata]) => ({
@@ -654,22 +825,32 @@ class SocketService {
654
825
  /**
655
826
  * Get count of users in a custom room
656
827
  */
657
- getRoomMemberCount(roomName) {
658
- return this.customRooms.get(roomName)?.size || 0;
828
+ async getRoomMemberCount(roomName) {
829
+ return this.rRoomMemberCount(roomName);
659
830
  }
660
831
  /**
661
832
  * Check if a room exists
662
833
  */
663
- roomExists(roomName) {
664
- return this.customRooms.has(roomName) && this.customRooms.get(roomName).size > 0;
834
+ async roomExists(roomName) {
835
+ return (await this.rRoomMemberCount(roomName)) > 0;
665
836
  }
666
837
  /**
667
- * Get all custom rooms
838
+ * Get all custom rooms with member counts
668
839
  */
669
- getCustomRooms() {
840
+ async getCustomRooms() {
670
841
  const rooms = new Map();
671
- for (const [name, members] of this.customRooms.entries()) {
672
- rooms.set(name, members.size);
842
+ if (this.useRedis) {
843
+ // Scan for all room member keys
844
+ const keys = await this.redisPublisher.keys("room:*:members");
845
+ for (const key of keys) {
846
+ const name = key.replace(/^room:/, "").replace(/:members$/, "");
847
+ rooms.set(name, await this.redisPublisher.hlen(key));
848
+ }
849
+ }
850
+ else {
851
+ for (const [name, members] of this.customRooms.entries()) {
852
+ rooms.set(name, members.size);
853
+ }
673
854
  }
674
855
  return rooms;
675
856
  }
@@ -745,19 +926,19 @@ class SocketService {
745
926
  registeredHandlers: 0,
746
927
  };
747
928
  }
748
- // Build custom rooms summary
929
+ // Build custom rooms summary (in-memory only; Redis path is async so omitted here)
749
930
  const customRoomsSummary = {};
750
931
  for (const [name, members] of this.customRooms.entries()) {
751
932
  customRoomsSummary[name] = members.size;
752
933
  }
753
934
  return {
754
- status: env.get("SOCKET_REDIS_ENABLED") === "true" ? "redis" : "in-memory",
935
+ status: this.useRedis ? "redis" : "in-memory",
755
936
  totalConnections: this.io.engine.clientsCount,
756
937
  uniqueUsers: this.userSockets.size,
757
938
  rooms: this.io.sockets.adapter.rooms,
758
939
  customRooms: {
759
- count: this.customRooms.size,
760
- rooms: customRoomsSummary,
940
+ count: this.useRedis ? "(see Redis)" : this.customRooms.size,
941
+ rooms: this.useRedis ? "(see Redis)" : customRoomsSummary,
761
942
  },
762
943
  registeredHandlers: Array.from(this.customMessageHandlers.keys()),
763
944
  registeredValidators: Array.from(this.roomValidators.keys()),
@@ -1 +1 @@
1
- {"version":3,"file":"SocketService.js","sourceRoot":"","sources":["../../baasix/services/SocketService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SocketService.js","sourceRoot":"","sources":["../../baasix/services/SocketService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baasix/baasix",
3
- "version": "0.1.37",
3
+ "version": "0.1.39",
4
4
  "description": "Baasix - Backend-as-a-Service with 40+ tools for schema management, CRUD operations with 50+ filter operators, relationships, permissions, files, workflows, and more",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",