@baasix/baasix 0.1.36 → 0.1.38

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,27 +57,29 @@ 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
  */
34
- handleRoomJoin(socket: SocketWithAuth, roomName: string): Promise<void>;
64
+ handleRoomJoin(socket: SocketWithAuth, roomName: string, metadata?: Record<string, any>): Promise<void>;
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
- * Returns userId, socketId, and whether each member is the room creator.
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>;
82
+ }>>;
52
83
  /**
53
84
  * Kick a user from a custom room. Only the room creator may do this.
54
85
  * All sockets belonging to the target user that are in the room will be removed.
@@ -110,21 +141,25 @@ declare class SocketService {
110
141
  */
111
142
  sendToUser(userId: string | number, event: string, payload: any): void;
112
143
  /**
113
- * Get list of users in a custom room
144
+ * Get list of users in a custom room (server-side utility for extensions)
114
145
  */
115
- getRoomMembers(roomName: string): string[];
146
+ getRoomMembers(roomName: string): Promise<Array<{
147
+ socketId: string;
148
+ userId: string | number;
149
+ metadata: Record<string, any>;
150
+ }>>;
116
151
  /**
117
152
  * Get count of users in a custom room
118
153
  */
119
- getRoomMemberCount(roomName: string): number;
154
+ getRoomMemberCount(roomName: string): Promise<number>;
120
155
  /**
121
156
  * Check if a room exists
122
157
  */
123
- roomExists(roomName: string): boolean;
158
+ roomExists(roomName: string): Promise<boolean>;
124
159
  /**
125
- * Get all custom rooms
160
+ * Get all custom rooms with member counts
126
161
  */
127
- getCustomRooms(): Map<string, number>;
162
+ getCustomRooms(): Promise<Map<string, number>>;
128
163
  checkCollectionAccess(socket: SocketWithAuth, collection: string): Promise<boolean>;
129
164
  getCollectionRoom(collection: string, tenantId?: string | number): string;
130
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,12 +14,140 @@ class SocketService {
14
14
  redisPublisher = null;
15
15
  redisSubscriber = null;
16
16
  // Custom room management
17
- customRooms = new Map(); // roomName -> Set of socket IDs
17
+ // roomName -> Map<socketId, memberMeta> (in-memory fallback)
18
+ customRooms = new Map();
18
19
  roomCreators = new Map(); // roomName -> current creator's socketId
19
20
  roomOriginalCreators = new Map(); // roomName -> original creator's userId (persistent)
20
21
  socketIdToUserId = new Map(); // socketId -> userId (reverse lookup)
21
22
  customMessageHandlers = new Map();
22
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
+ }
23
151
  constructor() {
24
152
  console.info("Socket Service instance created");
25
153
  }
@@ -183,17 +311,18 @@ class SocketService {
183
311
  // Handle custom room join
184
312
  socket.on("room:join", async (data, callback) => {
185
313
  try {
186
- await this.handleRoomJoin(socket, data.room);
187
- callback?.({ status: "success", room: data.room });
314
+ await this.handleRoomJoin(socket, data.room, data.metadata);
315
+ const history = await this.rHistoryGet(data.room);
316
+ callback?.({ status: "success", room: data.room, history });
188
317
  }
189
318
  catch (error) {
190
319
  callback?.({ status: "error", message: error.message });
191
320
  }
192
321
  });
193
322
  // Handle custom room leave
194
- socket.on("room:leave", (data, callback) => {
323
+ socket.on("room:leave", async (data, callback) => {
195
324
  try {
196
- this.handleRoomLeave(socket, data.room);
325
+ await this.handleRoomLeave(socket, data.room);
197
326
  callback?.({ status: "success", room: data.room });
198
327
  }
199
328
  catch (error) {
@@ -203,7 +332,7 @@ class SocketService {
203
332
  // Handle custom room message (client -> server -> room)
204
333
  socket.on("room:message", async (data, callback) => {
205
334
  try {
206
- await this.handleRoomMessage(socket, data.room, data.event, data.payload);
335
+ await this.handleRoomMessage(socket, data.room, data.event, data.payload, data.history ?? true);
207
336
  callback?.({ status: "success" });
208
337
  }
209
338
  catch (error) {
@@ -211,9 +340,9 @@ class SocketService {
211
340
  }
212
341
  });
213
342
  // Handle room members request — any room member can call this
214
- socket.on("room:members", (data, callback) => {
343
+ socket.on("room:members", async (data, callback) => {
215
344
  try {
216
- const members = this.handleRoomMembers(socket, data.room);
345
+ const members = await this.handleRoomMembers(socket, data.room);
217
346
  callback?.({ status: "success", members });
218
347
  }
219
348
  catch (error) {
@@ -286,15 +415,31 @@ class SocketService {
286
415
  }
287
416
  // Clean up reverse socket ID lookup
288
417
  this.socketIdToUserId.delete(socket.id);
289
- // Clean up custom room memberships
290
- for (const [roomName, members] of this.customRooms.entries()) {
291
- if (members.has(socket.id)) {
292
- members.delete(socket.id);
293
- // Transfer creator if the disconnecting socket was the room owner
294
- if (this.roomCreators.get(roomName) === socket.id) {
295
- const remaining = Array.from(members);
418
+ // Async cleanup fire-and-forget (disconnect handler can't be async in Socket.IO)
419
+ this.handleDisconnectRoomCleanup(socket).catch((err) => console.error("Room cleanup error on disconnect:", err));
420
+ }
421
+ async handleDisconnectRoomCleanup(socket) {
422
+ // In-memory: iterate local map; Redis: we need to find rooms this socket was in.
423
+ // We track socket->rooms in socketIdToRooms for the Redis path.
424
+ const rooms = this.useRedis
425
+ ? (await this.redisPublisher.smembers(`socket:${socket.id}:rooms`))
426
+ : Array.from(this.customRooms.keys()).filter((r) => this.customRooms.get(r)?.has(socket.id));
427
+ for (const roomName of rooms) {
428
+ await this.rRoomMemberDel(roomName, socket.id);
429
+ if (this.useRedis)
430
+ await this.redisPublisher.srem(`socket:${socket.id}:rooms`, roomName);
431
+ const count = await this.rRoomMemberCount(roomName);
432
+ if (count === 0) {
433
+ await this.rRoomDestroy(roomName);
434
+ }
435
+ else {
436
+ // Transfer creator if necessary
437
+ const creatorSocketId = await this.rCreatorGet(roomName);
438
+ if (creatorSocketId === socket.id) {
439
+ const members = await this.rRoomMembersAll(roomName);
440
+ const remaining = members ? Array.from(members.keys()) : [];
296
441
  if (remaining.length > 0) {
297
- this.roomCreators.set(roomName, remaining[0]);
442
+ await this.rCreatorSet(roomName, remaining[0]);
298
443
  this.io?.to(`room:${roomName}`).emit("room:creator:changed", {
299
444
  room: roomName,
300
445
  newCreatorSocketId: remaining[0],
@@ -303,22 +448,20 @@ class SocketService {
303
448
  });
304
449
  }
305
450
  else {
306
- this.roomCreators.delete(roomName);
451
+ await this.rCreatorDel(roomName);
307
452
  }
308
453
  }
309
- // Emit leave event to room
310
- this.io?.to(`room:${roomName}`).emit("room:user:left", {
311
- room: roomName,
312
- userId: socket.userId,
313
- socketId: socket.id,
314
- timestamp: new Date().toISOString(),
315
- });
316
- // Clean up empty rooms
317
- if (members.size === 0) {
318
- this.customRooms.delete(roomName);
319
- this.roomOriginalCreators.delete(roomName);
320
- }
321
454
  }
455
+ this.io?.to(`room:${roomName}`).emit("room:user:left", {
456
+ room: roomName,
457
+ userId: socket.userId,
458
+ socketId: socket.id,
459
+ timestamp: new Date().toISOString(),
460
+ });
461
+ }
462
+ // Clean up socket->rooms index in Redis
463
+ if (this.useRedis) {
464
+ await this.redisPublisher.del(`socket:${socket.id}:rooms`);
322
465
  }
323
466
  }
324
467
  // ==========================================
@@ -327,7 +470,7 @@ class SocketService {
327
470
  /**
328
471
  * Handle a user joining a custom room
329
472
  */
330
- async handleRoomJoin(socket, roomName) {
473
+ async handleRoomJoin(socket, roomName, metadata = {}) {
331
474
  // Validate room name
332
475
  if (!roomName || typeof roomName !== "string") {
333
476
  throw new APIError("Invalid room name", 400);
@@ -342,26 +485,27 @@ class SocketService {
342
485
  break;
343
486
  }
344
487
  }
345
- // Add socket to custom room tracking
346
- if (!this.customRooms.has(roomName)) {
347
- this.customRooms.set(roomName, new Set());
488
+ // Add socket to room member store (with metadata)
489
+ await this.rRoomMemberSet(roomName, socket.id, metadata);
490
+ // Track which rooms this socket is in (needed for fast Redis disconnect lookup)
491
+ if (this.useRedis) {
492
+ await this.redisPublisher.sadd(`socket:${socket.id}:rooms`, roomName);
348
493
  }
349
- this.customRooms.get(roomName).add(socket.id);
350
- if (!this.roomCreators.has(roomName)) {
351
- // First joiner creates the room record them as both current and original creator
352
- this.roomCreators.set(roomName, socket.id);
353
- this.roomOriginalCreators.set(roomName, socket.userId);
494
+ const creatorSocketId = await this.rCreatorGet(roomName);
495
+ if (!creatorSocketId) {
496
+ // First joiner — becomes both current and original creator
497
+ await this.rCreatorSet(roomName, socket.id);
498
+ await this.rOriginalCreatorSet(roomName, socket.userId);
354
499
  }
355
500
  else {
356
501
  // Room already exists — check if the original creator is rejoining
357
- const originalCreatorId = this.roomOriginalCreators.get(roomName);
358
- const currentCreatorSocketId = this.roomCreators.get(roomName);
359
- const currentCreatorUserId = this.socketIdToUserId.get(currentCreatorSocketId);
360
- if (originalCreatorId !== undefined &&
502
+ const originalCreatorId = await this.rOriginalCreatorGet(roomName);
503
+ const currentCreatorUserId = this.socketIdToUserId.get(creatorSocketId);
504
+ if (originalCreatorId !== null &&
361
505
  String(socket.userId) === String(originalCreatorId) &&
362
506
  String(socket.userId) !== String(currentCreatorUserId)) {
363
507
  // Restore original creator's ownership
364
- this.roomCreators.set(roomName, socket.id);
508
+ await this.rCreatorSet(roomName, socket.id);
365
509
  this.io?.to(`room:${roomName}`).emit("room:creator:changed", {
366
510
  room: roomName,
367
511
  newCreatorSocketId: socket.id,
@@ -378,25 +522,35 @@ class SocketService {
378
522
  room: roomName,
379
523
  userId: socket.userId,
380
524
  socketId: socket.id,
525
+ metadata,
381
526
  timestamp: new Date().toISOString(),
382
527
  });
383
528
  }
384
529
  /**
385
530
  * Handle a user leaving a custom room
386
531
  */
387
- handleRoomLeave(socket, roomName) {
532
+ async handleRoomLeave(socket, roomName) {
388
533
  if (!roomName || typeof roomName !== "string") {
389
534
  throw new APIError("Invalid room name", 400);
390
535
  }
391
- // Remove from custom room tracking
392
- if (this.customRooms.has(roomName)) {
393
- this.customRooms.get(roomName).delete(socket.id);
394
- // Transfer creator role to the next member if the creator is leaving
395
- if (this.roomCreators.get(roomName) === socket.id) {
396
- const remaining = Array.from(this.customRooms.get(roomName) || []);
536
+ const isMember = await this.rRoomMemberHas(roomName, socket.id);
537
+ if (!isMember)
538
+ return;
539
+ await this.rRoomMemberDel(roomName, socket.id);
540
+ if (this.useRedis)
541
+ await this.redisPublisher.srem(`socket:${socket.id}:rooms`, roomName);
542
+ const count = await this.rRoomMemberCount(roomName);
543
+ if (count === 0) {
544
+ await this.rRoomDestroy(roomName);
545
+ }
546
+ else {
547
+ // Transfer creator role if the leaving socket was the room owner
548
+ const creatorSocketId = await this.rCreatorGet(roomName);
549
+ if (creatorSocketId === socket.id) {
550
+ const members = await this.rRoomMembersAll(roomName);
551
+ const remaining = members ? Array.from(members.keys()) : [];
397
552
  if (remaining.length > 0) {
398
- this.roomCreators.set(roomName, remaining[0]);
399
- // Notify room of ownership change
553
+ await this.rCreatorSet(roomName, remaining[0]);
400
554
  this.io?.to(`room:${roomName}`).emit("room:creator:changed", {
401
555
  room: roomName,
402
556
  newCreatorSocketId: remaining[0],
@@ -405,13 +559,9 @@ class SocketService {
405
559
  });
406
560
  }
407
561
  else {
408
- this.roomCreators.delete(roomName);
562
+ await this.rCreatorDel(roomName);
409
563
  }
410
564
  }
411
- if (this.customRooms.get(roomName).size === 0) {
412
- this.customRooms.delete(roomName);
413
- this.roomOriginalCreators.delete(roomName);
414
- }
415
565
  }
416
566
  // Leave the Socket.IO room
417
567
  socket.leave(`room:${roomName}`);
@@ -427,35 +577,39 @@ class SocketService {
427
577
  /**
428
578
  * Handle a message sent to a custom room
429
579
  */
430
- async handleRoomMessage(socket, roomName, event, payload) {
580
+ async handleRoomMessage(socket, roomName, event, payload, storeInHistory = true) {
431
581
  if (!roomName || typeof roomName !== "string") {
432
582
  throw new APIError("Invalid room name", 400);
433
583
  }
434
584
  // Check if the socket is in the room
435
- if (!this.customRooms.has(roomName) || !this.customRooms.get(roomName).has(socket.id)) {
585
+ if (!(await this.rRoomMemberHas(roomName, socket.id))) {
436
586
  throw new APIError("Not a member of this room", 403);
437
587
  }
438
- // Broadcast to all room members (including sender)
439
- this.io?.to(`room:${roomName}`).emit(`room:${event}`, {
440
- room: roomName,
588
+ const record = {
441
589
  event,
442
590
  payload,
443
- sender: {
444
- userId: socket.userId,
445
- socketId: socket.id,
446
- },
591
+ sender: { userId: socket.userId, socketId: socket.id },
447
592
  timestamp: new Date().toISOString(),
593
+ };
594
+ // Broadcast to all room members (including sender)
595
+ this.io?.to(`room:${roomName}`).emit(`room:${event}`, {
596
+ room: roomName,
597
+ ...record,
448
598
  });
599
+ // Append to history only if requested
600
+ if (storeInHistory) {
601
+ await this.rHistoryPush(roomName, record);
602
+ }
449
603
  }
450
604
  /**
451
605
  * Return member list for a room. Only callable by current room members.
452
- * Returns userId, socketId, and whether each member is the room creator.
606
+ * Returns userId, socketId, metadata, and whether each member is the room creator.
453
607
  */
454
- handleRoomMembers(socket, roomName) {
608
+ async handleRoomMembers(socket, roomName) {
455
609
  if (!roomName || typeof roomName !== "string") {
456
610
  throw new APIError("Invalid room name", 400);
457
611
  }
458
- const members = this.customRooms.get(roomName);
612
+ const members = await this.rRoomMembersAll(roomName);
459
613
  if (!members) {
460
614
  throw new APIError("Room not found", 404);
461
615
  }
@@ -463,11 +617,12 @@ class SocketService {
463
617
  if (!members.has(socket.id)) {
464
618
  throw new APIError("Not a member of this room", 403);
465
619
  }
466
- const creatorSocketId = this.roomCreators.get(roomName);
467
- return Array.from(members).map((socketId) => ({
620
+ const creatorSocketId = await this.rCreatorGet(roomName);
621
+ return Array.from(members.entries()).map(([socketId, metadata]) => ({
468
622
  socketId,
469
623
  userId: this.socketIdToUserId.get(socketId) ?? socketId,
470
624
  isCreator: socketId === creatorSocketId,
625
+ metadata,
471
626
  }));
472
627
  }
473
628
  /**
@@ -478,12 +633,13 @@ class SocketService {
478
633
  if (!roomName || typeof roomName !== "string") {
479
634
  throw new APIError("Invalid room name", 400);
480
635
  }
481
- const members = this.customRooms.get(roomName);
636
+ const members = await this.rRoomMembersAll(roomName);
482
637
  if (!members) {
483
638
  throw new APIError("Room not found", 404);
484
639
  }
485
640
  // Only the room creator may kick
486
- if (this.roomCreators.get(roomName) !== socket.id) {
641
+ const creatorSocketId = await this.rCreatorGet(roomName);
642
+ if (creatorSocketId !== socket.id) {
487
643
  throw new APIError("Only the room creator can kick users", 403);
488
644
  }
489
645
  // A creator cannot kick themselves
@@ -497,7 +653,9 @@ class SocketService {
497
653
  let kicked = false;
498
654
  for (const targetSocket of targetSockets) {
499
655
  if (members.has(targetSocket.id)) {
500
- members.delete(targetSocket.id);
656
+ await this.rRoomMemberDel(roomName, targetSocket.id);
657
+ if (this.useRedis)
658
+ await this.redisPublisher.srem(`socket:${targetSocket.id}:rooms`, roomName);
501
659
  targetSocket.leave(`room:${roomName}`);
502
660
  // Tell the kicked socket it was removed
503
661
  targetSocket.emit("room:kicked", {
@@ -519,10 +677,9 @@ class SocketService {
519
677
  throw new APIError("Target user is not in this room", 404);
520
678
  }
521
679
  // Clean up empty room
522
- if (members.size === 0) {
523
- this.customRooms.delete(roomName);
524
- this.roomCreators.delete(roomName);
525
- this.roomOriginalCreators.delete(roomName);
680
+ const remaining = await this.rRoomMemberCount(roomName);
681
+ if (remaining === 0) {
682
+ await this.rRoomDestroy(roomName);
526
683
  }
527
684
  }
528
685
  /**
@@ -636,30 +793,47 @@ class SocketService {
636
793
  }
637
794
  }
638
795
  /**
639
- * Get list of users in a custom room
796
+ * Get list of users in a custom room (server-side utility for extensions)
640
797
  */
641
- getRoomMembers(roomName) {
642
- return Array.from(this.customRooms.get(roomName) || []);
798
+ async getRoomMembers(roomName) {
799
+ const members = await this.rRoomMembersAll(roomName);
800
+ if (!members)
801
+ return [];
802
+ return Array.from(members.entries()).map(([socketId, metadata]) => ({
803
+ socketId,
804
+ userId: this.socketIdToUserId.get(socketId) ?? socketId,
805
+ metadata,
806
+ }));
643
807
  }
644
808
  /**
645
809
  * Get count of users in a custom room
646
810
  */
647
- getRoomMemberCount(roomName) {
648
- return this.customRooms.get(roomName)?.size || 0;
811
+ async getRoomMemberCount(roomName) {
812
+ return this.rRoomMemberCount(roomName);
649
813
  }
650
814
  /**
651
815
  * Check if a room exists
652
816
  */
653
- roomExists(roomName) {
654
- return this.customRooms.has(roomName) && this.customRooms.get(roomName).size > 0;
817
+ async roomExists(roomName) {
818
+ return (await this.rRoomMemberCount(roomName)) > 0;
655
819
  }
656
820
  /**
657
- * Get all custom rooms
821
+ * Get all custom rooms with member counts
658
822
  */
659
- getCustomRooms() {
823
+ async getCustomRooms() {
660
824
  const rooms = new Map();
661
- for (const [name, members] of this.customRooms.entries()) {
662
- rooms.set(name, members.size);
825
+ if (this.useRedis) {
826
+ // Scan for all room member keys
827
+ const keys = await this.redisPublisher.keys("room:*:members");
828
+ for (const key of keys) {
829
+ const name = key.replace(/^room:/, "").replace(/:members$/, "");
830
+ rooms.set(name, await this.redisPublisher.hlen(key));
831
+ }
832
+ }
833
+ else {
834
+ for (const [name, members] of this.customRooms.entries()) {
835
+ rooms.set(name, members.size);
836
+ }
663
837
  }
664
838
  return rooms;
665
839
  }
@@ -735,19 +909,19 @@ class SocketService {
735
909
  registeredHandlers: 0,
736
910
  };
737
911
  }
738
- // Build custom rooms summary
912
+ // Build custom rooms summary (in-memory only; Redis path is async so omitted here)
739
913
  const customRoomsSummary = {};
740
914
  for (const [name, members] of this.customRooms.entries()) {
741
915
  customRoomsSummary[name] = members.size;
742
916
  }
743
917
  return {
744
- status: env.get("SOCKET_REDIS_ENABLED") === "true" ? "redis" : "in-memory",
918
+ status: this.useRedis ? "redis" : "in-memory",
745
919
  totalConnections: this.io.engine.clientsCount,
746
920
  uniqueUsers: this.userSockets.size,
747
921
  rooms: this.io.sockets.adapter.rooms,
748
922
  customRooms: {
749
- count: this.customRooms.size,
750
- rooms: customRoomsSummary,
923
+ count: this.useRedis ? "(see Redis)" : this.customRooms.size,
924
+ rooms: this.useRedis ? "(see Redis)" : customRoomsSummary,
751
925
  },
752
926
  registeredHandlers: Array.from(this.customMessageHandlers.keys()),
753
927
  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.36",
3
+ "version": "0.1.38",
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",