Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@bytesocket/client

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bytesocket/client - npm Package Compare versions

Comparing version
0.4.0
to
0.4.1
+550
-480
dist/index.cjs
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
let _bytesocket_core = require("@bytesocket/core");
//#region src/lifecycle.ts
var Lifecycle = class {
_onLifecycle;
_offLifecycle;
_onceLifecycle;
constructor(_onLifecycle, _offLifecycle, _onceLifecycle) {
this._onLifecycle = _onLifecycle;
this._offLifecycle = _offLifecycle;
this._onceLifecycle = _onceLifecycle;
}
onOpen(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.open, callback);
return this;
}
offOpen(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.open, callback);
return this;
}
onceOpen(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.open, callback);
return this;
}
onMessage(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.message, callback);
return this;
}
offMessage(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.message, callback);
return this;
}
onceMessage(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.message, callback);
return this;
}
onClose(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.close, callback);
return this;
}
offClose(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.close, callback);
return this;
}
onceClose(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.close, callback);
return this;
}
onError(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.error, callback);
return this;
}
offError(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.error, callback);
return this;
}
onceError(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.error, callback);
return this;
}
onAuthSuccess(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.auth_success, callback);
return this;
}
offAuthSuccess(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.auth_success, callback);
return this;
}
onceAuthSuccess(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.auth_success, callback);
return this;
}
onAuthError(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.auth_error, callback);
return this;
}
offAuthError(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.auth_error, callback);
return this;
}
onceAuthError(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.auth_error, callback);
return this;
}
onQueueFull(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.queue_full, callback);
return this;
}
offQueueFull(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.queue_full, callback);
return this;
}
onceQueueFull(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.queue_full, callback);
return this;
}
onReconnectFailed(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.reconnect_failed, callback);
return this;
}
offReconnectFailed(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.reconnect_failed, callback);
return this;
}
onceReconnectFailed(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.reconnect_failed, callback);
return this;
}
};
//#endregion
//#region src/rooms-bulk-lifecycle.ts
var RoomsBulkLifecycle = class {
_onLifecycle;
_offLifecycle;
_onceLifecycle;
constructor(_onLifecycle, _offLifecycle, _onceLifecycle) {
this._onLifecycle = _onLifecycle;
this._offLifecycle = _offLifecycle;
this._onceLifecycle = _onceLifecycle;
}
onJoinSuccess(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_success, callback);
return this;
}
offJoinSuccess(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_success, callback);
return this;
}
onceJoinSuccess(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_success, callback);
return this;
}
onJoinError(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_error, callback);
return this;
}
offJoinError(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_error, callback);
return this;
}
onceJoinError(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_error, callback);
return this;
}
onLeaveSuccess(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_success, callback);
return this;
}
offLeaveSuccess(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_success, callback);
return this;
}
onceLeaveSuccess(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_success, callback);
return this;
}
onLeaveError(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_error, callback);
return this;
}
offLeaveError(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_error, callback);
return this;
}
onceLeaveError(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_error, callback);
return this;
}
};
//#endregion
//#region src/rooms-bulk.ts
var RoomsBulk = class {
_debug;
getOrCreateRoomState;
send;
lifecycle;
constructor(_debug, _onLifecycle, _offLifecycle, _onceLifecycle, getOrCreateRoomState, send) {
this._debug = _debug;
this.getOrCreateRoomState = getOrCreateRoomState;
this.send = send;
this.lifecycle = new RoomsBulkLifecycle(_onLifecycle, _offLifecycle, _onceLifecycle);
}
emit(rooms, event, data) {
this.send({
rooms,
event,
data
});
return this;
}
join(rooms) {
if (rooms.length === 0) {
if (this._debug) console.warn("ByteSocket: can't join empty array of rooms - ignored");
return this;
}
const toJoin = [];
for (const room of rooms) {
const state = this.getOrCreateRoomState(room);
if (state.joined || state.pending === "join") continue;
state.wanted = true;
state.pending = "join";
toJoin.push(room);
}
if (toJoin.length === 0) {
if (this._debug) console.warn("ByteSocket: all rooms you requested to join are joined or pending joining already - ignored");
return this;
}
this.send({
type: _bytesocket_core.LifecycleTypes.join_rooms,
rooms: toJoin
});
return this;
}
leave(rooms) {
if (rooms.length === 0) {
if (this._debug) console.warn("ByteSocket: can't leave empty array of rooms - ignored");
return this;
}
const toLeave = [];
for (const room of rooms) {
const state = this.getOrCreateRoomState(room);
if (!state.joined || state.pending === "leave") continue;
state.wanted = false;
state.pending = "leave";
toLeave.push(room);
}
if (toLeave.length === 0) {
if (this._debug) console.warn("ByteSocket: all rooms you requested to leave are left or pending leaving already - ignored");
return this;
}
this.send({
type: _bytesocket_core.LifecycleTypes.leave_rooms,
rooms: toLeave
});
return this;
}
};
//#endregion
//#region src/rooms-lifecycle.ts
var RoomsLifecycle = class {
_onLifecycle;
_offLifecycle;
_onceLifecycle;
constructor(_onLifecycle, _offLifecycle, _onceLifecycle) {
this._onLifecycle = _onLifecycle;
this._offLifecycle = _offLifecycle;
this._onceLifecycle = _onceLifecycle;
}
onJoinSuccess(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.join_room_success, callback);
return this;
}
offJoinSuccess(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.join_room_success, callback);
return this;
}
onceJoinSuccess(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.join_room_success, callback);
return this;
}
onJoinError(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.join_room_error, callback);
return this;
}
offJoinError(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.join_room_error, callback);
return this;
}
onceJoinError(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.join_room_error, callback);
return this;
}
onLeaveSuccess(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.leave_room_success, callback);
return this;
}
offLeaveSuccess(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.leave_room_success, callback);
return this;
}
onceLeaveSuccess(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.leave_room_success, callback);
return this;
}
onLeaveError(callback) {
this._onLifecycle(_bytesocket_core.LifecycleTypes.leave_room_error, callback);
return this;
}
offLeaveError(callback) {
this._offLifecycle(_bytesocket_core.LifecycleTypes.leave_room_error, callback);
return this;
}
onceLeaveError(callback) {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.leave_room_error, callback);
return this;
}
};
//#endregion
//#region src/rooms.ts
var Rooms = class {
_debug;
_roomCallbacksMap;
_lifecycleCallbacksMap;
_triggerCallbacks;
_onRoom;
_offRoom;
_onceRoom;
send;
lifecycle;
bulk;
#roomStateMap = /* @__PURE__ */ new Map();
constructor(_debug, _roomCallbacksMap, _lifecycleCallbacksMap, _triggerCallbacks, _onRoom, _offRoom, _onceRoom, _onLifecycle, _offLifecycle, _onceLifecycle, send) {
this._debug = _debug;
this._roomCallbacksMap = _roomCallbacksMap;
this._lifecycleCallbacksMap = _lifecycleCallbacksMap;
this._triggerCallbacks = _triggerCallbacks;
this._onRoom = _onRoom;
this._offRoom = _offRoom;
this._onceRoom = _onceRoom;
this.send = send;
this.lifecycle = new RoomsLifecycle(_onLifecycle, _offLifecycle, _onceLifecycle);
this.bulk = new RoomsBulk(_debug, _onLifecycle, _offLifecycle, _onceLifecycle, this.#getOrCreateRoomState.bind(this), send);
}
list() {
return [...this.#roomStateMap].filter(([_room, state]) => state.joined).map(([room]) => room);
}
emit(room, event, data) {
this.send({
room,
event,
data
});
return this;
}
join(room) {
const state = this.#getOrCreateRoomState(room);
if (state.joined || state.pending === "join") return this;
state.wanted = true;
state.pending = "join";
this.send({
type: _bytesocket_core.LifecycleTypes.join_room,
room
});
return this;
}
leave(room) {
const state = this.#getOrCreateRoomState(room);
if (!state.joined || state.pending === "leave") return this;
state.wanted = false;
state.pending = "leave";
this.send({
type: _bytesocket_core.LifecycleTypes.leave_room,
room
});
return this;
}
on(room, event, callback) {
this._onRoom(room, event, callback);
return this;
}
off(room, event, callback) {
this._offRoom(room, event, callback);
return this;
}
once(room, event, callback) {
this._onceRoom(room, event, callback);
return this;
}
#getOrCreateRoomState(room) {
let state = this.#roomStateMap.get(room);
if (!state) {
state = {
wanted: false,
joined: false,
pending: null
};
this.#roomStateMap.set(room, state);
}
return state;
}
#cleanRoomState(room) {
const state = this.#roomStateMap.get(room);
if (!state) return;
if (state.wanted === false && state.joined === false && state.pending === null) this.#roomStateMap.delete(room);
}
clear() {
this.#roomStateMap.clear();
}
onOpen() {
const rooms = [];
const toClean = [];
for (const [room, state] of this.#roomStateMap) if (state.wanted && !state.joined) {
state.pending = "join";
rooms.push(room);
} else if (!state.wanted && state.joined) {
state.pending = null;
state.joined = false;
toClean.push(room);
}
for (const room of toClean) this.#cleanRoomState(room);
if (rooms.length === 0) return;
if (rooms.length === 1) this.send({
type: _bytesocket_core.LifecycleTypes.join_room,
room: rooms[0]
});
else this.send({
type: _bytesocket_core.LifecycleTypes.join_rooms,
rooms
});
}
onClose() {
for (const state of this.#roomStateMap.values()) {
state.joined = false;
state.pending = null;
}
}
handleMessage(payload) {
if (this.#handleJoinRoomSuccessMessage(payload)) return true;
if (this.#handleLeaveRoomSuccessMessage(payload)) return true;
if (this.#handleRoomErrorMessage(payload)) return true;
if (this.#handleJoinRoomsSuccessMessage(payload)) return true;
if (this.#handleLeaveRoomsSuccessMessage(payload)) return true;
if (this.#handleRoomsErrorMessage(payload)) return true;
if (this.#handleRoomsEventMessage(payload)) return true;
if (this.#handleRoomEventMessage(payload)) return true;
return false;
}
#handleJoinRoomSuccessMessage(payload) {
if (!(0, _bytesocket_core.isLifecycleRoomMessage)(_bytesocket_core.LifecycleTypes.join_room_success, payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.joined = true;
state.pending = null;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room);
return true;
}
#handleLeaveRoomSuccessMessage(payload) {
if (!(0, _bytesocket_core.isLifecycleRoomMessage)(_bytesocket_core.LifecycleTypes.leave_room_success, payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.joined = false;
state.pending = null;
this.#cleanRoomState(payload.room);
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room);
return true;
}
#handleRoomErrorMessage(payload) {
if (!(0, _bytesocket_core.isLifecycleRoomErrorMessage)(payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.pending = null;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room, payload.data);
return true;
}
#handleJoinRoomsSuccessMessage(payload) {
if (!(0, _bytesocket_core.isLifecycleRoomsMessage)(_bytesocket_core.LifecycleTypes.join_rooms_success, payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.joined = true;
state.pending = null;
actualRooms.push(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms);
return true;
}
#handleLeaveRoomsSuccessMessage(payload) {
if (!(0, _bytesocket_core.isLifecycleRoomsMessage)(_bytesocket_core.LifecycleTypes.leave_rooms_success, payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.joined = false;
state.pending = null;
actualRooms.push(room);
this.#cleanRoomState(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms);
return true;
}
#handleRoomsErrorMessage(payload) {
if (!(0, _bytesocket_core.isLifecycleRoomsErrorMessage)(payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.pending = null;
actualRooms.push(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms, payload.data);
return true;
}
#handleRoomsEventMessage(payload) {
if (!(0, _bytesocket_core.isRoomsEventMessage)(payload)) return false;
for (const room of payload.rooms) this._triggerCallbacks(this._roomCallbacksMap.get(room)?.get(payload.event), payload.data);
return true;
}
#handleRoomEventMessage(payload) {
if (!(0, _bytesocket_core.isRoomEventMessage)(payload)) return false;
this._triggerCallbacks(this._roomCallbacksMap.get(payload.room)?.get(payload.event), payload.data);
return true;
}
};
//#endregion
//#region src/byte-socket.ts

@@ -82,3 +617,3 @@ /**

lifecycle;
rooms;
#rooms;
#baseUrl;

@@ -91,3 +626,2 @@ #options;

#flushFailures = 0;
#roomStateMap = /* @__PURE__ */ new Map();
#manuallyClosed = false;

@@ -131,219 +665,9 @@ #flushing = false;

}
const lifecycle = {
onOpen: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.open, callback);
return lifecycle;
},
offOpen: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.open, callback);
return lifecycle;
},
onceOpen: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.open, callback);
return lifecycle;
},
onMessage: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.message, callback);
return lifecycle;
},
offMessage: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.message, callback);
return lifecycle;
},
onceMessage: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.message, callback);
return lifecycle;
},
onClose: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.close, callback);
return lifecycle;
},
offClose: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.close, callback);
return lifecycle;
},
onceClose: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.close, callback);
return lifecycle;
},
onError: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.error, callback);
return lifecycle;
},
offError: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.error, callback);
return lifecycle;
},
onceError: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.error, callback);
return lifecycle;
},
onAuthSuccess: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.auth_success, callback);
return lifecycle;
},
offAuthSuccess: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.auth_success, callback);
return lifecycle;
},
onceAuthSuccess: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.auth_success, callback);
return lifecycle;
},
onAuthError: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.auth_error, callback);
return lifecycle;
},
offAuthError: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.auth_error, callback);
return lifecycle;
},
onceAuthError: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.auth_error, callback);
return lifecycle;
},
onQueueFull: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.queue_full, callback);
return lifecycle;
},
offQueueFull: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.queue_full, callback);
return lifecycle;
},
onceQueueFull: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.queue_full, callback);
return lifecycle;
},
onReconnectFailed: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.reconnect_failed, callback);
return lifecycle;
},
offReconnectFailed: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.reconnect_failed, callback);
return lifecycle;
},
onceReconnectFailed: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.reconnect_failed, callback);
return lifecycle;
}
};
this.lifecycle = lifecycle;
const roomsLifecycle = {
onJoinSuccess: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.join_room_success, callback);
return roomsLifecycle;
},
offJoinSuccess: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.join_room_success, callback);
return roomsLifecycle;
},
onceJoinSuccess: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.join_room_success, callback);
return roomsLifecycle;
},
onJoinError: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.join_room_error, callback);
return roomsLifecycle;
},
offJoinError: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.join_room_error, callback);
return roomsLifecycle;
},
onceJoinError: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.join_room_error, callback);
return roomsLifecycle;
},
onLeaveSuccess: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.leave_room_success, callback);
return roomsLifecycle;
},
offLeaveSuccess: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.leave_room_success, callback);
return roomsLifecycle;
},
onceLeaveSuccess: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.leave_room_success, callback);
return roomsLifecycle;
},
onLeaveError: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.leave_room_error, callback);
return roomsLifecycle;
},
offLeaveError: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.leave_room_error, callback);
return roomsLifecycle;
},
onceLeaveError: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.leave_room_error, callback);
return roomsLifecycle;
}
};
const roomsBulkLifecycle = {
onJoinSuccess: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_success, callback);
return roomsBulkLifecycle;
},
offJoinSuccess: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_success, callback);
return roomsBulkLifecycle;
},
onceJoinSuccess: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_success, callback);
return roomsBulkLifecycle;
},
onJoinError: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_error, callback);
return roomsBulkLifecycle;
},
offJoinError: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_error, callback);
return roomsBulkLifecycle;
},
onceJoinError: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.join_rooms_error, callback);
return roomsBulkLifecycle;
},
onLeaveSuccess: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_success, callback);
return roomsBulkLifecycle;
},
offLeaveSuccess: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_success, callback);
return roomsBulkLifecycle;
},
onceLeaveSuccess: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_success, callback);
return roomsBulkLifecycle;
},
onLeaveError: (callback) => {
this._onLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_error, callback);
return roomsBulkLifecycle;
},
offLeaveError: (callback) => {
this._offLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_error, callback);
return roomsBulkLifecycle;
},
onceLeaveError: (callback) => {
this._onceLifecycle(_bytesocket_core.LifecycleTypes.leave_rooms_error, callback);
return roomsBulkLifecycle;
}
};
this.rooms = {
list: this.#listRooms.bind(this),
emit: this.#emitRoom.bind(this),
join: this.#joinRoom.bind(this),
leave: this.#leaveRoom.bind(this),
on: this.#onRoom.bind(this),
off: this.#offRoom.bind(this),
once: this.#onceRoom.bind(this),
lifecycle: roomsLifecycle,
bulk: {
emit: this.#emitRooms.bind(this),
join: this.#joinRooms.bind(this),
leave: this.#leaveRooms.bind(this),
lifecycle: roomsBulkLifecycle
}
};
this.lifecycle = new Lifecycle(this._onLifecycle.bind(this), this._offLifecycle.bind(this), this._onceLifecycle.bind(this));
this.#rooms = new Rooms(this._debug, this._roomCallbacksMap, this._lifecycleCallbacksMap, this._triggerCallbacks.bind(this), this._onRoom.bind(this), this._offRoom.bind(this), this._onceRoom.bind(this), this._onLifecycle.bind(this), this._offLifecycle.bind(this), this._onceLifecycle.bind(this), this.send.bind(this));
if (this.#options.autoConnect) this.connect();
}
get rooms() {
return this.#rooms;
}
get readyState() {

@@ -528,3 +852,3 @@ return this.#ws?.readyState ?? WebSocket.CLOSED;

this._triggerCallbacks(this._lifecycleCallbacksMap.get(_bytesocket_core.LifecycleTypes.open));
this.#onRoomsOpen();
this.#rooms.onOpen();
this.#startHeartbeat();

@@ -558,146 +882,2 @@ this.#flushQueue();

}
#emitRoom(room, event, data) {
this.send({
room,
event,
data
});
return this.rooms;
}
#joinRoom(room) {
const state = this.#getOrCreateRoomState(room);
if (state.joined || state.pending === "join") return this.rooms;
state.wanted = true;
state.pending = "join";
this.send({
type: _bytesocket_core.LifecycleTypes.join_room,
room
});
return this.rooms;
}
#leaveRoom(room) {
const state = this.#getOrCreateRoomState(room);
if (!state.joined || state.pending === "leave") return this.rooms;
state.wanted = false;
state.pending = "leave";
this.send({
type: _bytesocket_core.LifecycleTypes.leave_room,
room
});
return this.rooms;
}
#emitRooms(rooms, event, data) {
this.send({
rooms,
event,
data
});
return this.rooms.bulk;
}
#joinRooms(rooms) {
if (rooms.length === 0) {
if (this._debug) console.warn("ByteSocket: can't join empty array of rooms - ignored");
return this.rooms.bulk;
}
const toJoin = [];
for (const room of rooms) {
const state = this.#getOrCreateRoomState(room);
if (state.joined || state.pending === "join") continue;
state.wanted = true;
state.pending = "join";
toJoin.push(room);
}
if (toJoin.length === 0) {
if (this._debug) console.warn("ByteSocket: all rooms you requested to join are joined or pending joining already - ignored");
return this.rooms.bulk;
}
this.send({
type: _bytesocket_core.LifecycleTypes.join_rooms,
rooms: toJoin
});
return this.rooms.bulk;
}
#leaveRooms(rooms) {
if (rooms.length === 0) {
if (this._debug) console.warn("ByteSocket: can't leave empty array of rooms - ignored");
return this.rooms.bulk;
}
const toLeave = [];
for (const room of rooms) {
const state = this.#getOrCreateRoomState(room);
if (!state.joined || state.pending === "leave") continue;
state.wanted = false;
state.pending = "leave";
toLeave.push(room);
}
if (toLeave.length === 0) {
if (this._debug) console.warn("ByteSocket: all rooms you requested to leave are left or pending leaving already - ignored");
return this.rooms.bulk;
}
this.send({
type: _bytesocket_core.LifecycleTypes.leave_rooms,
rooms: toLeave
});
return this.rooms.bulk;
}
#listRooms() {
return [...this.#roomStateMap].filter(([_room, state]) => state.joined).map(([room]) => room);
}
#onRoom(room, event, callback) {
this._onRoom(room, event, callback);
return this.rooms;
}
#offRoom(room, event, callback) {
this._offRoom(room, event, callback);
return this.rooms;
}
#onceRoom(room, event, callback) {
this._onceRoom(room, event, callback);
return this.rooms;
}
#getOrCreateRoomState(room) {
let state = this.#roomStateMap.get(room);
if (!state) {
state = {
wanted: false,
joined: false,
pending: null
};
this.#roomStateMap.set(room, state);
}
return state;
}
#cleanRoomState(room) {
const state = this.#roomStateMap.get(room);
if (!state) return;
if (state.wanted === false && state.joined === false && state.pending === null) this.#roomStateMap.delete(room);
}
#onRoomsOpen() {
const rooms = [];
const toClean = [];
for (const [room, state] of this.#roomStateMap) if (state.wanted && !state.joined) {
state.pending = "join";
rooms.push(room);
} else if (!state.wanted && state.joined) {
state.pending = null;
state.joined = false;
toClean.push(room);
}
for (const room of toClean) this.#cleanRoomState(room);
if (rooms.length === 0) return;
if (rooms.length === 1) this.send({
type: _bytesocket_core.LifecycleTypes.join_room,
room: rooms[0]
});
else this.send({
type: _bytesocket_core.LifecycleTypes.join_rooms,
rooms
});
}
#onRoomsClose() {
for (const state of this.#roomStateMap.values()) {
state.joined = false;
state.pending = null;
}
}
#startHeartbeat() {

@@ -776,3 +956,3 @@ if (!this.#options.heartbeatEnabled) return;

this._triggerCallbacks(this._lifecycleCallbacksMap.get(_bytesocket_core.LifecycleTypes.open));
this.#onRoomsOpen();
this.#rooms.onOpen();
this.#startHeartbeat();

@@ -799,3 +979,3 @@ this.#flushQueue();

#handleAuthSuccessMessage(payload) {
if (!this._isLifecycleMessage(_bytesocket_core.LifecycleTypes.auth_success, payload)) return false;
if (!(0, _bytesocket_core.isLifecycleMessage)(_bytesocket_core.LifecycleTypes.auth_success, payload)) return false;
if (this._debug) console.log("ByteSocket: auth success");

@@ -806,3 +986,3 @@ this.#handleAuthSuccess();

#handleErrorMessage(payload) {
if (!this._isLifecyclePayloadMessage(_bytesocket_core.LifecycleTypes.error, payload)) return false;
if (!(0, _bytesocket_core.isLifecyclePayloadMessage)(_bytesocket_core.LifecycleTypes.error, payload)) return false;
if (this._debug) console.warn("ByteSocket: error", payload.data);

@@ -813,3 +993,3 @@ this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.data);

#handleAuthErrorMessage(payload) {
if (!this._isLifecyclePayloadMessage(_bytesocket_core.LifecycleTypes.auth_error, payload)) return false;
if (!(0, _bytesocket_core.isLifecyclePayloadMessage)(_bytesocket_core.LifecycleTypes.auth_error, payload)) return false;
if (this._debug) console.warn("ByteSocket: auth error", payload.data);

@@ -819,107 +999,4 @@ this.#handleAuthError(payload.data);

}
#handleJoinRoomSuccessMessage(payload) {
if (!this._isLifecycleRoomMessage(_bytesocket_core.LifecycleTypes.join_room_success, payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.joined = true;
state.pending = null;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room);
return true;
}
#handleLeaveRoomSuccessMessage(payload) {
if (!this._isLifecycleRoomMessage(_bytesocket_core.LifecycleTypes.leave_room_success, payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.joined = false;
state.pending = null;
this.#cleanRoomState(payload.room);
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room);
return true;
}
#handleRoomErrorMessage(payload) {
if (!this._isLifecycleRoomErrorMessage(payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.pending = null;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room, payload.data);
return true;
}
#handleJoinRoomsSuccessMessage(payload) {
if (!this._isLifecycleRoomsMessage(_bytesocket_core.LifecycleTypes.join_rooms_success, payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.joined = true;
state.pending = null;
actualRooms.push(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms);
return true;
}
#handleLeaveRoomsSuccessMessage(payload) {
if (!this._isLifecycleRoomsMessage(_bytesocket_core.LifecycleTypes.leave_rooms_success, payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.joined = false;
state.pending = null;
actualRooms.push(room);
this.#cleanRoomState(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms);
return true;
}
#handleRoomsErrorMessage(payload) {
if (!this._isLifecycleRoomsErrorMessage(payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.pending = null;
actualRooms.push(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${_bytesocket_core.LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms, payload.data);
return true;
}
#handleRoomsEventMessage(payload) {
if (!this._isRoomsEventMessage(payload)) return false;
for (const room of payload.rooms) this._triggerCallbacks(this._roomCallbacksMap.get(room)?.get(payload.event), payload.data);
return true;
}
#handleRoomEventMessage(payload) {
if (!this._isRoomEventMessage(payload)) return false;
this._triggerCallbacks(this._roomCallbacksMap.get(payload.room)?.get(payload.event), payload.data);
return true;
}
#handleEventMessage(payload) {
if (!this._isEventMessage(payload)) return false;
if (!(0, _bytesocket_core.isEventMessage)(payload)) return false;
this._triggerCallbacks(this._callbacksMap.get(payload.event), payload.data);

@@ -940,10 +1017,3 @@ return true;

if (this.#handleErrorMessage(payload)) return;
if (this.#handleJoinRoomSuccessMessage(payload)) return;
if (this.#handleLeaveRoomSuccessMessage(payload)) return;
if (this.#handleRoomErrorMessage(payload)) return;
if (this.#handleJoinRoomsSuccessMessage(payload)) return;
if (this.#handleLeaveRoomsSuccessMessage(payload)) return;
if (this.#handleRoomsErrorMessage(payload)) return;
if (this.#handleRoomsEventMessage(payload)) return;
if (this.#handleRoomEventMessage(payload)) return;
if (this.#rooms.handleMessage(payload)) return;
if (this.#handleEventMessage(payload)) return;

@@ -997,3 +1067,3 @@ if (this._debug) console.warn("ByteSocket: unhandled message", payload);

this._clearCallbacks();
this.#roomStateMap.clear();
this.#rooms.clear();
}

@@ -1010,3 +1080,3 @@ #cleanupConnection(keepQueue = false) {

this.#clearAuthTimeout();
this.#onRoomsClose();
this.#rooms.onClose();
if (!this.#destroyed) this._triggerCallbacks(this._lifecycleCallbacksMap.get(_bytesocket_core.LifecycleTypes.close), event);

@@ -1013,0 +1083,0 @@ if (this.#destroyed || this.#manuallyClosed || this.#authState === _bytesocket_core.AuthState.failed || this.#reconnectExhausted) return;

@@ -751,3 +751,2 @@ import { ByteSocketBase, ErrorContext, EventsForRooms, LifecycleMessage, MsgpackrOptions, SocketEvents, StringKeys, StringNumberKeys, UserMessage } from "@bytesocket/core";

readonly lifecycle: ILifecycle;
readonly rooms: IRooms<TEvents>;
/**

@@ -760,2 +759,3 @@ * Creates a new ByteSocket instance.

constructor(baseUrl: string, options?: ByteSocketOptions);
get rooms(): IRooms<TEvents>;
get readyState(): number;

@@ -762,0 +762,0 @@ get canSend(): boolean;

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/interfaces.ts","../src/byte-socket.ts"],"mappings":"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"}
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/interfaces.ts","../src/byte-socket.ts"],"mappings":"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"}

@@ -751,3 +751,2 @@ import { ByteSocketBase, ErrorContext, EventsForRooms, LifecycleMessage, MsgpackrOptions, SocketEvents, StringKeys, StringNumberKeys, UserMessage } from "@bytesocket/core";

readonly lifecycle: ILifecycle;
readonly rooms: IRooms<TEvents>;
/**

@@ -760,2 +759,3 @@ * Creates a new ByteSocket instance.

constructor(baseUrl: string, options?: ByteSocketOptions);
get rooms(): IRooms<TEvents>;
get readyState(): number;

@@ -762,0 +762,0 @@ get canSend(): boolean;

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/interfaces.ts","../src/byte-socket.ts"],"mappings":"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"}
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/interfaces.ts","../src/byte-socket.ts"],"mappings":"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"}

@@ -1,5 +0,540 @@

import { AuthState, ByteSocketBase, LifecycleTypes } from "@bytesocket/core";
import { AuthState, ByteSocketBase, LifecycleTypes, isEventMessage, isLifecycleMessage, isLifecyclePayloadMessage, isLifecycleRoomErrorMessage, isLifecycleRoomMessage, isLifecycleRoomsErrorMessage, isLifecycleRoomsMessage, isRoomEventMessage, isRoomsEventMessage } from "@bytesocket/core";
export * from "@bytesocket/core"
//#region src/lifecycle.ts
var Lifecycle = class {
_onLifecycle;
_offLifecycle;
_onceLifecycle;
constructor(_onLifecycle, _offLifecycle, _onceLifecycle) {
this._onLifecycle = _onLifecycle;
this._offLifecycle = _offLifecycle;
this._onceLifecycle = _onceLifecycle;
}
onOpen(callback) {
this._onLifecycle(LifecycleTypes.open, callback);
return this;
}
offOpen(callback) {
this._offLifecycle(LifecycleTypes.open, callback);
return this;
}
onceOpen(callback) {
this._onceLifecycle(LifecycleTypes.open, callback);
return this;
}
onMessage(callback) {
this._onLifecycle(LifecycleTypes.message, callback);
return this;
}
offMessage(callback) {
this._offLifecycle(LifecycleTypes.message, callback);
return this;
}
onceMessage(callback) {
this._onceLifecycle(LifecycleTypes.message, callback);
return this;
}
onClose(callback) {
this._onLifecycle(LifecycleTypes.close, callback);
return this;
}
offClose(callback) {
this._offLifecycle(LifecycleTypes.close, callback);
return this;
}
onceClose(callback) {
this._onceLifecycle(LifecycleTypes.close, callback);
return this;
}
onError(callback) {
this._onLifecycle(LifecycleTypes.error, callback);
return this;
}
offError(callback) {
this._offLifecycle(LifecycleTypes.error, callback);
return this;
}
onceError(callback) {
this._onceLifecycle(LifecycleTypes.error, callback);
return this;
}
onAuthSuccess(callback) {
this._onLifecycle(LifecycleTypes.auth_success, callback);
return this;
}
offAuthSuccess(callback) {
this._offLifecycle(LifecycleTypes.auth_success, callback);
return this;
}
onceAuthSuccess(callback) {
this._onceLifecycle(LifecycleTypes.auth_success, callback);
return this;
}
onAuthError(callback) {
this._onLifecycle(LifecycleTypes.auth_error, callback);
return this;
}
offAuthError(callback) {
this._offLifecycle(LifecycleTypes.auth_error, callback);
return this;
}
onceAuthError(callback) {
this._onceLifecycle(LifecycleTypes.auth_error, callback);
return this;
}
onQueueFull(callback) {
this._onLifecycle(LifecycleTypes.queue_full, callback);
return this;
}
offQueueFull(callback) {
this._offLifecycle(LifecycleTypes.queue_full, callback);
return this;
}
onceQueueFull(callback) {
this._onceLifecycle(LifecycleTypes.queue_full, callback);
return this;
}
onReconnectFailed(callback) {
this._onLifecycle(LifecycleTypes.reconnect_failed, callback);
return this;
}
offReconnectFailed(callback) {
this._offLifecycle(LifecycleTypes.reconnect_failed, callback);
return this;
}
onceReconnectFailed(callback) {
this._onceLifecycle(LifecycleTypes.reconnect_failed, callback);
return this;
}
};
//#endregion
//#region src/rooms-bulk-lifecycle.ts
var RoomsBulkLifecycle = class {
_onLifecycle;
_offLifecycle;
_onceLifecycle;
constructor(_onLifecycle, _offLifecycle, _onceLifecycle) {
this._onLifecycle = _onLifecycle;
this._offLifecycle = _offLifecycle;
this._onceLifecycle = _onceLifecycle;
}
onJoinSuccess(callback) {
this._onLifecycle(LifecycleTypes.join_rooms_success, callback);
return this;
}
offJoinSuccess(callback) {
this._offLifecycle(LifecycleTypes.join_rooms_success, callback);
return this;
}
onceJoinSuccess(callback) {
this._onceLifecycle(LifecycleTypes.join_rooms_success, callback);
return this;
}
onJoinError(callback) {
this._onLifecycle(LifecycleTypes.join_rooms_error, callback);
return this;
}
offJoinError(callback) {
this._offLifecycle(LifecycleTypes.join_rooms_error, callback);
return this;
}
onceJoinError(callback) {
this._onceLifecycle(LifecycleTypes.join_rooms_error, callback);
return this;
}
onLeaveSuccess(callback) {
this._onLifecycle(LifecycleTypes.leave_rooms_success, callback);
return this;
}
offLeaveSuccess(callback) {
this._offLifecycle(LifecycleTypes.leave_rooms_success, callback);
return this;
}
onceLeaveSuccess(callback) {
this._onceLifecycle(LifecycleTypes.leave_rooms_success, callback);
return this;
}
onLeaveError(callback) {
this._onLifecycle(LifecycleTypes.leave_rooms_error, callback);
return this;
}
offLeaveError(callback) {
this._offLifecycle(LifecycleTypes.leave_rooms_error, callback);
return this;
}
onceLeaveError(callback) {
this._onceLifecycle(LifecycleTypes.leave_rooms_error, callback);
return this;
}
};
//#endregion
//#region src/rooms-bulk.ts
var RoomsBulk = class {
_debug;
getOrCreateRoomState;
send;
lifecycle;
constructor(_debug, _onLifecycle, _offLifecycle, _onceLifecycle, getOrCreateRoomState, send) {
this._debug = _debug;
this.getOrCreateRoomState = getOrCreateRoomState;
this.send = send;
this.lifecycle = new RoomsBulkLifecycle(_onLifecycle, _offLifecycle, _onceLifecycle);
}
emit(rooms, event, data) {
this.send({
rooms,
event,
data
});
return this;
}
join(rooms) {
if (rooms.length === 0) {
if (this._debug) console.warn("ByteSocket: can't join empty array of rooms - ignored");
return this;
}
const toJoin = [];
for (const room of rooms) {
const state = this.getOrCreateRoomState(room);
if (state.joined || state.pending === "join") continue;
state.wanted = true;
state.pending = "join";
toJoin.push(room);
}
if (toJoin.length === 0) {
if (this._debug) console.warn("ByteSocket: all rooms you requested to join are joined or pending joining already - ignored");
return this;
}
this.send({
type: LifecycleTypes.join_rooms,
rooms: toJoin
});
return this;
}
leave(rooms) {
if (rooms.length === 0) {
if (this._debug) console.warn("ByteSocket: can't leave empty array of rooms - ignored");
return this;
}
const toLeave = [];
for (const room of rooms) {
const state = this.getOrCreateRoomState(room);
if (!state.joined || state.pending === "leave") continue;
state.wanted = false;
state.pending = "leave";
toLeave.push(room);
}
if (toLeave.length === 0) {
if (this._debug) console.warn("ByteSocket: all rooms you requested to leave are left or pending leaving already - ignored");
return this;
}
this.send({
type: LifecycleTypes.leave_rooms,
rooms: toLeave
});
return this;
}
};
//#endregion
//#region src/rooms-lifecycle.ts
var RoomsLifecycle = class {
_onLifecycle;
_offLifecycle;
_onceLifecycle;
constructor(_onLifecycle, _offLifecycle, _onceLifecycle) {
this._onLifecycle = _onLifecycle;
this._offLifecycle = _offLifecycle;
this._onceLifecycle = _onceLifecycle;
}
onJoinSuccess(callback) {
this._onLifecycle(LifecycleTypes.join_room_success, callback);
return this;
}
offJoinSuccess(callback) {
this._offLifecycle(LifecycleTypes.join_room_success, callback);
return this;
}
onceJoinSuccess(callback) {
this._onceLifecycle(LifecycleTypes.join_room_success, callback);
return this;
}
onJoinError(callback) {
this._onLifecycle(LifecycleTypes.join_room_error, callback);
return this;
}
offJoinError(callback) {
this._offLifecycle(LifecycleTypes.join_room_error, callback);
return this;
}
onceJoinError(callback) {
this._onceLifecycle(LifecycleTypes.join_room_error, callback);
return this;
}
onLeaveSuccess(callback) {
this._onLifecycle(LifecycleTypes.leave_room_success, callback);
return this;
}
offLeaveSuccess(callback) {
this._offLifecycle(LifecycleTypes.leave_room_success, callback);
return this;
}
onceLeaveSuccess(callback) {
this._onceLifecycle(LifecycleTypes.leave_room_success, callback);
return this;
}
onLeaveError(callback) {
this._onLifecycle(LifecycleTypes.leave_room_error, callback);
return this;
}
offLeaveError(callback) {
this._offLifecycle(LifecycleTypes.leave_room_error, callback);
return this;
}
onceLeaveError(callback) {
this._onceLifecycle(LifecycleTypes.leave_room_error, callback);
return this;
}
};
//#endregion
//#region src/rooms.ts
var Rooms = class {
_debug;
_roomCallbacksMap;
_lifecycleCallbacksMap;
_triggerCallbacks;
_onRoom;
_offRoom;
_onceRoom;
send;
lifecycle;
bulk;
#roomStateMap = /* @__PURE__ */ new Map();
constructor(_debug, _roomCallbacksMap, _lifecycleCallbacksMap, _triggerCallbacks, _onRoom, _offRoom, _onceRoom, _onLifecycle, _offLifecycle, _onceLifecycle, send) {
this._debug = _debug;
this._roomCallbacksMap = _roomCallbacksMap;
this._lifecycleCallbacksMap = _lifecycleCallbacksMap;
this._triggerCallbacks = _triggerCallbacks;
this._onRoom = _onRoom;
this._offRoom = _offRoom;
this._onceRoom = _onceRoom;
this.send = send;
this.lifecycle = new RoomsLifecycle(_onLifecycle, _offLifecycle, _onceLifecycle);
this.bulk = new RoomsBulk(_debug, _onLifecycle, _offLifecycle, _onceLifecycle, this.#getOrCreateRoomState.bind(this), send);
}
list() {
return [...this.#roomStateMap].filter(([_room, state]) => state.joined).map(([room]) => room);
}
emit(room, event, data) {
this.send({
room,
event,
data
});
return this;
}
join(room) {
const state = this.#getOrCreateRoomState(room);
if (state.joined || state.pending === "join") return this;
state.wanted = true;
state.pending = "join";
this.send({
type: LifecycleTypes.join_room,
room
});
return this;
}
leave(room) {
const state = this.#getOrCreateRoomState(room);
if (!state.joined || state.pending === "leave") return this;
state.wanted = false;
state.pending = "leave";
this.send({
type: LifecycleTypes.leave_room,
room
});
return this;
}
on(room, event, callback) {
this._onRoom(room, event, callback);
return this;
}
off(room, event, callback) {
this._offRoom(room, event, callback);
return this;
}
once(room, event, callback) {
this._onceRoom(room, event, callback);
return this;
}
#getOrCreateRoomState(room) {
let state = this.#roomStateMap.get(room);
if (!state) {
state = {
wanted: false,
joined: false,
pending: null
};
this.#roomStateMap.set(room, state);
}
return state;
}
#cleanRoomState(room) {
const state = this.#roomStateMap.get(room);
if (!state) return;
if (state.wanted === false && state.joined === false && state.pending === null) this.#roomStateMap.delete(room);
}
clear() {
this.#roomStateMap.clear();
}
onOpen() {
const rooms = [];
const toClean = [];
for (const [room, state] of this.#roomStateMap) if (state.wanted && !state.joined) {
state.pending = "join";
rooms.push(room);
} else if (!state.wanted && state.joined) {
state.pending = null;
state.joined = false;
toClean.push(room);
}
for (const room of toClean) this.#cleanRoomState(room);
if (rooms.length === 0) return;
if (rooms.length === 1) this.send({
type: LifecycleTypes.join_room,
room: rooms[0]
});
else this.send({
type: LifecycleTypes.join_rooms,
rooms
});
}
onClose() {
for (const state of this.#roomStateMap.values()) {
state.joined = false;
state.pending = null;
}
}
handleMessage(payload) {
if (this.#handleJoinRoomSuccessMessage(payload)) return true;
if (this.#handleLeaveRoomSuccessMessage(payload)) return true;
if (this.#handleRoomErrorMessage(payload)) return true;
if (this.#handleJoinRoomsSuccessMessage(payload)) return true;
if (this.#handleLeaveRoomsSuccessMessage(payload)) return true;
if (this.#handleRoomsErrorMessage(payload)) return true;
if (this.#handleRoomsEventMessage(payload)) return true;
if (this.#handleRoomEventMessage(payload)) return true;
return false;
}
#handleJoinRoomSuccessMessage(payload) {
if (!isLifecycleRoomMessage(LifecycleTypes.join_room_success, payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.joined = true;
state.pending = null;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room);
return true;
}
#handleLeaveRoomSuccessMessage(payload) {
if (!isLifecycleRoomMessage(LifecycleTypes.leave_room_success, payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.joined = false;
state.pending = null;
this.#cleanRoomState(payload.room);
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room);
return true;
}
#handleRoomErrorMessage(payload) {
if (!isLifecycleRoomErrorMessage(payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.pending = null;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room, payload.data);
return true;
}
#handleJoinRoomsSuccessMessage(payload) {
if (!isLifecycleRoomsMessage(LifecycleTypes.join_rooms_success, payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.joined = true;
state.pending = null;
actualRooms.push(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms);
return true;
}
#handleLeaveRoomsSuccessMessage(payload) {
if (!isLifecycleRoomsMessage(LifecycleTypes.leave_rooms_success, payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.joined = false;
state.pending = null;
actualRooms.push(room);
this.#cleanRoomState(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms);
return true;
}
#handleRoomsErrorMessage(payload) {
if (!isLifecycleRoomsErrorMessage(payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.pending = null;
actualRooms.push(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms, payload.data);
return true;
}
#handleRoomsEventMessage(payload) {
if (!isRoomsEventMessage(payload)) return false;
for (const room of payload.rooms) this._triggerCallbacks(this._roomCallbacksMap.get(room)?.get(payload.event), payload.data);
return true;
}
#handleRoomEventMessage(payload) {
if (!isRoomEventMessage(payload)) return false;
this._triggerCallbacks(this._roomCallbacksMap.get(payload.room)?.get(payload.event), payload.data);
return true;
}
};
//#endregion
//#region src/byte-socket.ts

@@ -83,3 +618,3 @@ /**

lifecycle;
rooms;
#rooms;
#baseUrl;

@@ -92,3 +627,2 @@ #options;

#flushFailures = 0;
#roomStateMap = /* @__PURE__ */ new Map();
#manuallyClosed = false;

@@ -132,219 +666,9 @@ #flushing = false;

}
const lifecycle = {
onOpen: (callback) => {
this._onLifecycle(LifecycleTypes.open, callback);
return lifecycle;
},
offOpen: (callback) => {
this._offLifecycle(LifecycleTypes.open, callback);
return lifecycle;
},
onceOpen: (callback) => {
this._onceLifecycle(LifecycleTypes.open, callback);
return lifecycle;
},
onMessage: (callback) => {
this._onLifecycle(LifecycleTypes.message, callback);
return lifecycle;
},
offMessage: (callback) => {
this._offLifecycle(LifecycleTypes.message, callback);
return lifecycle;
},
onceMessage: (callback) => {
this._onceLifecycle(LifecycleTypes.message, callback);
return lifecycle;
},
onClose: (callback) => {
this._onLifecycle(LifecycleTypes.close, callback);
return lifecycle;
},
offClose: (callback) => {
this._offLifecycle(LifecycleTypes.close, callback);
return lifecycle;
},
onceClose: (callback) => {
this._onceLifecycle(LifecycleTypes.close, callback);
return lifecycle;
},
onError: (callback) => {
this._onLifecycle(LifecycleTypes.error, callback);
return lifecycle;
},
offError: (callback) => {
this._offLifecycle(LifecycleTypes.error, callback);
return lifecycle;
},
onceError: (callback) => {
this._onceLifecycle(LifecycleTypes.error, callback);
return lifecycle;
},
onAuthSuccess: (callback) => {
this._onLifecycle(LifecycleTypes.auth_success, callback);
return lifecycle;
},
offAuthSuccess: (callback) => {
this._offLifecycle(LifecycleTypes.auth_success, callback);
return lifecycle;
},
onceAuthSuccess: (callback) => {
this._onceLifecycle(LifecycleTypes.auth_success, callback);
return lifecycle;
},
onAuthError: (callback) => {
this._onLifecycle(LifecycleTypes.auth_error, callback);
return lifecycle;
},
offAuthError: (callback) => {
this._offLifecycle(LifecycleTypes.auth_error, callback);
return lifecycle;
},
onceAuthError: (callback) => {
this._onceLifecycle(LifecycleTypes.auth_error, callback);
return lifecycle;
},
onQueueFull: (callback) => {
this._onLifecycle(LifecycleTypes.queue_full, callback);
return lifecycle;
},
offQueueFull: (callback) => {
this._offLifecycle(LifecycleTypes.queue_full, callback);
return lifecycle;
},
onceQueueFull: (callback) => {
this._onceLifecycle(LifecycleTypes.queue_full, callback);
return lifecycle;
},
onReconnectFailed: (callback) => {
this._onLifecycle(LifecycleTypes.reconnect_failed, callback);
return lifecycle;
},
offReconnectFailed: (callback) => {
this._offLifecycle(LifecycleTypes.reconnect_failed, callback);
return lifecycle;
},
onceReconnectFailed: (callback) => {
this._onceLifecycle(LifecycleTypes.reconnect_failed, callback);
return lifecycle;
}
};
this.lifecycle = lifecycle;
const roomsLifecycle = {
onJoinSuccess: (callback) => {
this._onLifecycle(LifecycleTypes.join_room_success, callback);
return roomsLifecycle;
},
offJoinSuccess: (callback) => {
this._offLifecycle(LifecycleTypes.join_room_success, callback);
return roomsLifecycle;
},
onceJoinSuccess: (callback) => {
this._onceLifecycle(LifecycleTypes.join_room_success, callback);
return roomsLifecycle;
},
onJoinError: (callback) => {
this._onLifecycle(LifecycleTypes.join_room_error, callback);
return roomsLifecycle;
},
offJoinError: (callback) => {
this._offLifecycle(LifecycleTypes.join_room_error, callback);
return roomsLifecycle;
},
onceJoinError: (callback) => {
this._onceLifecycle(LifecycleTypes.join_room_error, callback);
return roomsLifecycle;
},
onLeaveSuccess: (callback) => {
this._onLifecycle(LifecycleTypes.leave_room_success, callback);
return roomsLifecycle;
},
offLeaveSuccess: (callback) => {
this._offLifecycle(LifecycleTypes.leave_room_success, callback);
return roomsLifecycle;
},
onceLeaveSuccess: (callback) => {
this._onceLifecycle(LifecycleTypes.leave_room_success, callback);
return roomsLifecycle;
},
onLeaveError: (callback) => {
this._onLifecycle(LifecycleTypes.leave_room_error, callback);
return roomsLifecycle;
},
offLeaveError: (callback) => {
this._offLifecycle(LifecycleTypes.leave_room_error, callback);
return roomsLifecycle;
},
onceLeaveError: (callback) => {
this._onceLifecycle(LifecycleTypes.leave_room_error, callback);
return roomsLifecycle;
}
};
const roomsBulkLifecycle = {
onJoinSuccess: (callback) => {
this._onLifecycle(LifecycleTypes.join_rooms_success, callback);
return roomsBulkLifecycle;
},
offJoinSuccess: (callback) => {
this._offLifecycle(LifecycleTypes.join_rooms_success, callback);
return roomsBulkLifecycle;
},
onceJoinSuccess: (callback) => {
this._onceLifecycle(LifecycleTypes.join_rooms_success, callback);
return roomsBulkLifecycle;
},
onJoinError: (callback) => {
this._onLifecycle(LifecycleTypes.join_rooms_error, callback);
return roomsBulkLifecycle;
},
offJoinError: (callback) => {
this._offLifecycle(LifecycleTypes.join_rooms_error, callback);
return roomsBulkLifecycle;
},
onceJoinError: (callback) => {
this._onceLifecycle(LifecycleTypes.join_rooms_error, callback);
return roomsBulkLifecycle;
},
onLeaveSuccess: (callback) => {
this._onLifecycle(LifecycleTypes.leave_rooms_success, callback);
return roomsBulkLifecycle;
},
offLeaveSuccess: (callback) => {
this._offLifecycle(LifecycleTypes.leave_rooms_success, callback);
return roomsBulkLifecycle;
},
onceLeaveSuccess: (callback) => {
this._onceLifecycle(LifecycleTypes.leave_rooms_success, callback);
return roomsBulkLifecycle;
},
onLeaveError: (callback) => {
this._onLifecycle(LifecycleTypes.leave_rooms_error, callback);
return roomsBulkLifecycle;
},
offLeaveError: (callback) => {
this._offLifecycle(LifecycleTypes.leave_rooms_error, callback);
return roomsBulkLifecycle;
},
onceLeaveError: (callback) => {
this._onceLifecycle(LifecycleTypes.leave_rooms_error, callback);
return roomsBulkLifecycle;
}
};
this.rooms = {
list: this.#listRooms.bind(this),
emit: this.#emitRoom.bind(this),
join: this.#joinRoom.bind(this),
leave: this.#leaveRoom.bind(this),
on: this.#onRoom.bind(this),
off: this.#offRoom.bind(this),
once: this.#onceRoom.bind(this),
lifecycle: roomsLifecycle,
bulk: {
emit: this.#emitRooms.bind(this),
join: this.#joinRooms.bind(this),
leave: this.#leaveRooms.bind(this),
lifecycle: roomsBulkLifecycle
}
};
this.lifecycle = new Lifecycle(this._onLifecycle.bind(this), this._offLifecycle.bind(this), this._onceLifecycle.bind(this));
this.#rooms = new Rooms(this._debug, this._roomCallbacksMap, this._lifecycleCallbacksMap, this._triggerCallbacks.bind(this), this._onRoom.bind(this), this._offRoom.bind(this), this._onceRoom.bind(this), this._onLifecycle.bind(this), this._offLifecycle.bind(this), this._onceLifecycle.bind(this), this.send.bind(this));
if (this.#options.autoConnect) this.connect();
}
get rooms() {
return this.#rooms;
}
get readyState() {

@@ -529,3 +853,3 @@ return this.#ws?.readyState ?? WebSocket.CLOSED;

this._triggerCallbacks(this._lifecycleCallbacksMap.get(LifecycleTypes.open));
this.#onRoomsOpen();
this.#rooms.onOpen();
this.#startHeartbeat();

@@ -559,146 +883,2 @@ this.#flushQueue();

}
#emitRoom(room, event, data) {
this.send({
room,
event,
data
});
return this.rooms;
}
#joinRoom(room) {
const state = this.#getOrCreateRoomState(room);
if (state.joined || state.pending === "join") return this.rooms;
state.wanted = true;
state.pending = "join";
this.send({
type: LifecycleTypes.join_room,
room
});
return this.rooms;
}
#leaveRoom(room) {
const state = this.#getOrCreateRoomState(room);
if (!state.joined || state.pending === "leave") return this.rooms;
state.wanted = false;
state.pending = "leave";
this.send({
type: LifecycleTypes.leave_room,
room
});
return this.rooms;
}
#emitRooms(rooms, event, data) {
this.send({
rooms,
event,
data
});
return this.rooms.bulk;
}
#joinRooms(rooms) {
if (rooms.length === 0) {
if (this._debug) console.warn("ByteSocket: can't join empty array of rooms - ignored");
return this.rooms.bulk;
}
const toJoin = [];
for (const room of rooms) {
const state = this.#getOrCreateRoomState(room);
if (state.joined || state.pending === "join") continue;
state.wanted = true;
state.pending = "join";
toJoin.push(room);
}
if (toJoin.length === 0) {
if (this._debug) console.warn("ByteSocket: all rooms you requested to join are joined or pending joining already - ignored");
return this.rooms.bulk;
}
this.send({
type: LifecycleTypes.join_rooms,
rooms: toJoin
});
return this.rooms.bulk;
}
#leaveRooms(rooms) {
if (rooms.length === 0) {
if (this._debug) console.warn("ByteSocket: can't leave empty array of rooms - ignored");
return this.rooms.bulk;
}
const toLeave = [];
for (const room of rooms) {
const state = this.#getOrCreateRoomState(room);
if (!state.joined || state.pending === "leave") continue;
state.wanted = false;
state.pending = "leave";
toLeave.push(room);
}
if (toLeave.length === 0) {
if (this._debug) console.warn("ByteSocket: all rooms you requested to leave are left or pending leaving already - ignored");
return this.rooms.bulk;
}
this.send({
type: LifecycleTypes.leave_rooms,
rooms: toLeave
});
return this.rooms.bulk;
}
#listRooms() {
return [...this.#roomStateMap].filter(([_room, state]) => state.joined).map(([room]) => room);
}
#onRoom(room, event, callback) {
this._onRoom(room, event, callback);
return this.rooms;
}
#offRoom(room, event, callback) {
this._offRoom(room, event, callback);
return this.rooms;
}
#onceRoom(room, event, callback) {
this._onceRoom(room, event, callback);
return this.rooms;
}
#getOrCreateRoomState(room) {
let state = this.#roomStateMap.get(room);
if (!state) {
state = {
wanted: false,
joined: false,
pending: null
};
this.#roomStateMap.set(room, state);
}
return state;
}
#cleanRoomState(room) {
const state = this.#roomStateMap.get(room);
if (!state) return;
if (state.wanted === false && state.joined === false && state.pending === null) this.#roomStateMap.delete(room);
}
#onRoomsOpen() {
const rooms = [];
const toClean = [];
for (const [room, state] of this.#roomStateMap) if (state.wanted && !state.joined) {
state.pending = "join";
rooms.push(room);
} else if (!state.wanted && state.joined) {
state.pending = null;
state.joined = false;
toClean.push(room);
}
for (const room of toClean) this.#cleanRoomState(room);
if (rooms.length === 0) return;
if (rooms.length === 1) this.send({
type: LifecycleTypes.join_room,
room: rooms[0]
});
else this.send({
type: LifecycleTypes.join_rooms,
rooms
});
}
#onRoomsClose() {
for (const state of this.#roomStateMap.values()) {
state.joined = false;
state.pending = null;
}
}
#startHeartbeat() {

@@ -777,3 +957,3 @@ if (!this.#options.heartbeatEnabled) return;

this._triggerCallbacks(this._lifecycleCallbacksMap.get(LifecycleTypes.open));
this.#onRoomsOpen();
this.#rooms.onOpen();
this.#startHeartbeat();

@@ -800,3 +980,3 @@ this.#flushQueue();

#handleAuthSuccessMessage(payload) {
if (!this._isLifecycleMessage(LifecycleTypes.auth_success, payload)) return false;
if (!isLifecycleMessage(LifecycleTypes.auth_success, payload)) return false;
if (this._debug) console.log("ByteSocket: auth success");

@@ -807,3 +987,3 @@ this.#handleAuthSuccess();

#handleErrorMessage(payload) {
if (!this._isLifecyclePayloadMessage(LifecycleTypes.error, payload)) return false;
if (!isLifecyclePayloadMessage(LifecycleTypes.error, payload)) return false;
if (this._debug) console.warn("ByteSocket: error", payload.data);

@@ -814,3 +994,3 @@ this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.data);

#handleAuthErrorMessage(payload) {
if (!this._isLifecyclePayloadMessage(LifecycleTypes.auth_error, payload)) return false;
if (!isLifecyclePayloadMessage(LifecycleTypes.auth_error, payload)) return false;
if (this._debug) console.warn("ByteSocket: auth error", payload.data);

@@ -820,107 +1000,4 @@ this.#handleAuthError(payload.data);

}
#handleJoinRoomSuccessMessage(payload) {
if (!this._isLifecycleRoomMessage(LifecycleTypes.join_room_success, payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.joined = true;
state.pending = null;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room);
return true;
}
#handleLeaveRoomSuccessMessage(payload) {
if (!this._isLifecycleRoomMessage(LifecycleTypes.leave_room_success, payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.joined = false;
state.pending = null;
this.#cleanRoomState(payload.room);
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room);
return true;
}
#handleRoomErrorMessage(payload) {
if (!this._isLifecycleRoomErrorMessage(payload)) return false;
const state = this.#roomStateMap.get(payload.room);
if (!state) {
if (this._debug) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${payload.room}" - ignored`);
return true;
}
state.pending = null;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), payload.room, payload.data);
return true;
}
#handleJoinRoomsSuccessMessage(payload) {
if (!this._isLifecycleRoomsMessage(LifecycleTypes.join_rooms_success, payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.joined = true;
state.pending = null;
actualRooms.push(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms);
return true;
}
#handleLeaveRoomsSuccessMessage(payload) {
if (!this._isLifecycleRoomsMessage(LifecycleTypes.leave_rooms_success, payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.joined = false;
state.pending = null;
actualRooms.push(room);
this.#cleanRoomState(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms);
return true;
}
#handleRoomsErrorMessage(payload) {
if (!this._isLifecycleRoomsErrorMessage(payload)) return false;
const staleRooms = [];
const actualRooms = [];
for (const room of payload.rooms) {
const state = this.#roomStateMap.get(room);
if (!state) {
staleRooms.push(room);
continue;
}
state.pending = null;
actualRooms.push(room);
}
if (this._debug && staleRooms.length) console.warn(`ByteSocket: stale ${LifecycleTypes[payload.type]} for "${staleRooms.join(", ")}" - ignored`);
if (actualRooms.length === 0) return true;
this._triggerCallbacks(this._lifecycleCallbacksMap.get(payload.type), actualRooms, payload.data);
return true;
}
#handleRoomsEventMessage(payload) {
if (!this._isRoomsEventMessage(payload)) return false;
for (const room of payload.rooms) this._triggerCallbacks(this._roomCallbacksMap.get(room)?.get(payload.event), payload.data);
return true;
}
#handleRoomEventMessage(payload) {
if (!this._isRoomEventMessage(payload)) return false;
this._triggerCallbacks(this._roomCallbacksMap.get(payload.room)?.get(payload.event), payload.data);
return true;
}
#handleEventMessage(payload) {
if (!this._isEventMessage(payload)) return false;
if (!isEventMessage(payload)) return false;
this._triggerCallbacks(this._callbacksMap.get(payload.event), payload.data);

@@ -941,10 +1018,3 @@ return true;

if (this.#handleErrorMessage(payload)) return;
if (this.#handleJoinRoomSuccessMessage(payload)) return;
if (this.#handleLeaveRoomSuccessMessage(payload)) return;
if (this.#handleRoomErrorMessage(payload)) return;
if (this.#handleJoinRoomsSuccessMessage(payload)) return;
if (this.#handleLeaveRoomsSuccessMessage(payload)) return;
if (this.#handleRoomsErrorMessage(payload)) return;
if (this.#handleRoomsEventMessage(payload)) return;
if (this.#handleRoomEventMessage(payload)) return;
if (this.#rooms.handleMessage(payload)) return;
if (this.#handleEventMessage(payload)) return;

@@ -998,3 +1068,3 @@ if (this._debug) console.warn("ByteSocket: unhandled message", payload);

this._clearCallbacks();
this.#roomStateMap.clear();
this.#rooms.clear();
}

@@ -1011,3 +1081,3 @@ #cleanupConnection(keepQueue = false) {

this.#clearAuthTimeout();
this.#onRoomsClose();
this.#rooms.onClose();
if (!this.#destroyed) this._triggerCallbacks(this._lifecycleCallbacksMap.get(LifecycleTypes.close), event);

@@ -1014,0 +1084,0 @@ if (this.#destroyed || this.#manuallyClosed || this.#authState === AuthState.failed || this.#reconnectExhausted) return;

{
"name": "@bytesocket/client",
"version": "0.4.0",
"version": "0.4.1",
"description": "High-performance WebSocket client for browsers",

@@ -44,3 +44,3 @@ "keywords": [

"dependencies": {
"@bytesocket/core": "0.4.0"
"@bytesocket/core": "0.4.1"
},

@@ -47,0 +47,0 @@ "engines": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display