@budibase/server 2.6.19-alpha.52 → 2.6.19-alpha.54

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.
package/dist/index.js CHANGED
@@ -31187,7 +31187,8 @@ var init_websocket2 = __esm({
31187
31187
  email,
31188
31188
  firstName,
31189
31189
  lastName,
31190
- sessionId: socket.id
31190
+ sessionId: socket.id,
31191
+ connectedAt: Date.now()
31191
31192
  };
31192
31193
  next();
31193
31194
  }
@@ -31267,7 +31268,9 @@ var init_websocket2 = __esm({
31267
31268
  );
31268
31269
  const prunedSessionIds = sessionIds.filter((id, idx) => {
31269
31270
  if (!sessionsExist[idx]) {
31270
- this.io.to(room).emit("UserDisconnect" /* UserDisconnect */, sessionIds[idx]);
31271
+ this.io.to(room).emit("UserDisconnect" /* UserDisconnect */, {
31272
+ sessionId: sessionIds[idx]
31273
+ });
31271
31274
  return false;
31272
31275
  }
31273
31276
  return true;
@@ -31297,7 +31300,9 @@ var init_websocket2 = __esm({
31297
31300
  if (!sessionIds.includes(sessionId)) {
31298
31301
  await this.setRoomSessionIds(room, [...sessionIds, sessionId]);
31299
31302
  }
31300
- socket.to(room).emit("UserUpdate" /* UserUpdate */, user2);
31303
+ socket.to(room).emit("UserUpdate" /* UserUpdate */, {
31304
+ user: user2
31305
+ });
31301
31306
  }
31302
31307
  // Disconnects a socket from its current room
31303
31308
  async leaveRoom(socket) {
@@ -31316,7 +31321,7 @@ var init_websocket2 = __esm({
31316
31321
  room,
31317
31322
  sessionIds.filter((id) => id !== sessionId)
31318
31323
  );
31319
- socket.to(room).emit("UserDisconnect" /* UserDisconnect */, sessionId);
31324
+ socket.to(room).emit("UserDisconnect" /* UserDisconnect */, { sessionId });
31320
31325
  }
31321
31326
  // Updates a connected user's metadata, assuming a room change is not required.
31322
31327
  async updateUser(socket, patch4) {
@@ -31682,12 +31687,12 @@ var init_grid = __esm({
31682
31687
  super(app2, server2, "/socket/grid", [authorized_default(permissions_exports.BUILDER)]);
31683
31688
  }
31684
31689
  async onConnect(socket) {
31685
- socket.on("SelectTable" /* SelectTable */, async (tableId, callback) => {
31690
+ socket.on("SelectTable" /* SelectTable */, async ({ tableId }, callback) => {
31686
31691
  await this.joinRoom(socket, tableId);
31687
31692
  const sessions = await this.getRoomSessions(tableId);
31688
31693
  callback({ users: sessions });
31689
31694
  });
31690
- socket.on("SelectCell" /* SelectCell */, (cellId) => {
31695
+ socket.on("SelectCell" /* SelectCell */, ({ cellId }) => {
31691
31696
  this.updateUser(socket, { focusedCellId: cellId });
31692
31697
  });
31693
31698
  }
@@ -31730,7 +31735,7 @@ var init_builder2 = __esm({
31730
31735
  super(app2, server2, "/socket/builder", [authorized_default(permissions_exports.BUILDER)]);
31731
31736
  }
31732
31737
  async onConnect(socket) {
31733
- socket == null ? void 0 : socket.on("SelectApp" /* SelectApp */, async (appId, callback) => {
31738
+ socket == null ? void 0 : socket.on("SelectApp" /* SelectApp */, async ({ appId }, callback) => {
31734
31739
  await this.joinRoom(socket, appId);
31735
31740
  const sessions = await this.getRoomSessions(appId);
31736
31741
  callback({ users: sessions });
@@ -31747,6 +31752,19 @@ var init_builder2 = __esm({
31747
31752
  if (!hasOtherSession && room) {
31748
31753
  const user2 = { _id: socket.data._id };
31749
31754
  await clearLock(room, user2);
31755
+ let otherSessions = sessions.filter((x) => x._id !== _id).slice();
31756
+ otherSessions.sort((a, b) => {
31757
+ return a.connectedAt < b.connectedAt ? -1 : 1;
31758
+ });
31759
+ const nextSession = otherSessions[0];
31760
+ if (nextSession) {
31761
+ const { _id: _id2, email, firstName, lastName } = nextSession;
31762
+ const nextUser = { _id: _id2, email, firstName, lastName };
31763
+ await updateLock(room, nextUser);
31764
+ this.io.to(room).emit("LockTransfer" /* LockTransfer */, {
31765
+ userId: _id2
31766
+ });
31767
+ }
31750
31768
  }
31751
31769
  } catch (e) {
31752
31770
  }