import { MessageType, ResponseCode, Module, WEBHOOK_EVENT_NAMES, RESERVED_STORE_PREFIX, COMMENTS_STORE_NAME } from '@collab-kit/utils';
MessageType
All WebSocket message types for the real-time protocol.enum MessageType {
// Client -> Server
AUTHENTICATION_HANDSHAKE = 'authenticationHandshake',
UPDATE_USER = 'updateUser',
DELETE_USER = 'deleteUser',
GET_USER = 'getUser',
GET_USERS = 'getUsers',
JOIN_ROOM = 'joinRoom',
GET_ROOM = 'getRoom',
BROADCAST_MESSAGE = 'broadcastMessage',
STORE_GET = 'storeGet',
STORE_GET_ALL = 'storeGetAll',
STORE_SET = 'storeSet',
STORE_UPDATE = 'storeUpdate',
STORE_DELETE = 'storeDelete',
COMMENT_ADD = 'commentAdd',
COMMENT_DELETE = 'commentDelete',
COMMENT_GET_ALL = 'commentGetAll',
COMMENT_ADD_REACTION = 'commentAddReaction',
COMMENT_DELETE_REACTION = 'commentDeleteReaction',
COMMENT_ADD_TAG = 'commentAddTag',
COMMENT_DELETE_TAG = 'commentDeleteTag',
PRESENCE_UPDATE = 'presenceUpdate',
CRDT_SYNC_REQUEST = 'crdtSyncRequest',
CRDT_UPDATE = 'crdtUpdate',
FOLLOW_USER = 'followUser',
UNFOLLOW_USER = 'unfollowUser',
// Server -> Client (responses)
AUTHENTICATION_HANDSHAKE_RESPONSE = 'authenticationHandshakeResponse',
UPDATE_USER_RESPONSE = 'updateUserResponse',
DELETE_USER_RESPONSE = 'deleteUserResponse',
GET_USER_RESPONSE = 'getUserResponse',
GET_USERS_RESPONSE = 'getUsersResponse',
JOIN_ROOM_RESPONSE = 'joinRoomResponse',
GET_ROOM_RESPONSE = 'getRoomResponse',
BROADCAST_MESSAGE_RESPONSE = 'broadcastMessageResponse',
STORE_GET_RESPONSE = 'storeGetResponse',
STORE_GET_ALL_RESPONSE = 'storeGetAllResponse',
STORE_SET_RESPONSE = 'storeSetResponse',
STORE_UPDATE_RESPONSE = 'storeUpdateResponse',
STORE_DELETE_RESPONSE = 'storeDeleteResponse',
COMMENT_ADD_RESPONSE = 'commentAddResponse',
COMMENT_DELETE_RESPONSE = 'commentDeleteResponse',
COMMENT_GET_ALL_RESPONSE = 'commentGetAllResponse',
COMMENT_ADD_REACTION_RESPONSE = 'commentAddReactionResponse',
COMMENT_DELETE_REACTION_RESPONSE = 'commentDeleteReactionResponse',
COMMENT_ADD_TAG_RESPONSE = 'commentAddTagResponse',
COMMENT_DELETE_TAG_RESPONSE = 'commentDeleteTagResponse',
CRDT_SYNC_REQUEST_RESPONSE = 'crdtSyncRequestResponse',
FOLLOW_USER_RESPONSE = 'followUserResponse',
UNFOLLOW_USER_RESPONSE = 'unfollowUserResponse',
// Server -> Client (broadcasts)
USER_JOINED = 'userJoined',
USER_LEFT = 'userLeft',
STORE_UPDATED = 'storeUpdated',
COMMENT_ADDED = 'commentAdded',
COMMENT_DELETED = 'commentDeleted',
COMMENT_UPDATED = 'commentUpdated',
PRESENCE_UPDATED = 'presenceUpdated',
CRDT_UPDATED = 'crdtUpdated',
}
ResponseCode
Machine-readable error codes returned inServerResponseError.
enum ResponseCode {
OK = 'OK',
CREATED = 'CREATED',
ACCEPTED = 'ACCEPTED',
NO_CONTENT = 'NO_CONTENT',
NOT_MODIFIED = 'NOT_MODIFIED',
BAD_REQUEST = 'BAD_REQUEST',
UNAUTHORIZED = 'UNAUTHORIZED',
FORBIDDEN = 'FORBIDDEN',
NOT_FOUND = 'NOT_FOUND',
METHOD_NOT_ALLOWED = 'METHOD_NOT_ALLOWED',
INVALID_PAYLOAD = 'INVALID_PAYLOAD',
TIMEOUT = 'TIMEOUT',
CONFLICT = 'CONFLICT',
FILE_TOO_LARGE = 'FILE_TOO_LARGE',
UNPROCESSABLE_ENTITY = 'UNPROCESSABLE_ENTITY',
TOO_MANY_REQUESTS = 'TOO_MANY_REQUESTS',
ACCESS_DENIED = 'ACCESS_DENIED',
ALREADY_EXISTS = 'ALREADY_EXISTS',
UNKNOWN_MESSAGE_TYPE = 'UNKNOWN_MESSAGE_TYPE',
INTERNAL_SERVER_ERROR = 'INTERNAL_SERVER_ERROR',
NOT_IMPLEMENTED = 'NOT_IMPLEMENTED',
BAD_GATEWAY = 'BAD_GATEWAY',
SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE',
INTERNAL_ERROR = 'INTERNAL_ERROR',
CREATION_FAILED = 'CREATION_FAILED',
UPDATE_FAILED = 'UPDATE_FAILED',
DELETION_FAILED = 'DELETION_FAILED',
UPLOAD_FAILED = 'UPLOAD_FAILED',
}
Module
Server module identifiers used in error responses.enum Module {
AUTH = 'AUTH',
USER = 'USER',
ROOM = 'ROOM',
STORAGE = 'STORAGE',
BROADCAST = 'BROADCAST',
STORE = 'STORE',
COMMENT = 'COMMENT',
ORGANIZATION = 'ORGANIZATION',
GENERAL = 'GENERAL',
UNKNOWN = 'UNKNOWN',
PRESENCE = 'PRESENCE',
CRDT = 'CRDT',
WEBSOCKET = 'WEBSOCKET',
WEBHOOK = 'WEBHOOK',
WORKFLOW = 'WORKFLOW',
}
WEBHOOK_EVENT_NAMES
Array of all valid webhook event name strings. Useful for validation or building UI selectors.const WEBHOOK_EVENT_NAMES: WebhookEventName[] = [
'participant.joined',
'participant.left',
'session.started',
'session.closed',
'user.created',
'user.updated',
'user.deleted',
];
RESERVED_STORE_PREFIX
The prefix reserved for internal store names. User-defined stores must not start with this prefix.const RESERVED_STORE_PREFIX = '__collabkit-';
COMMENTS_STORE_NAME
The internal store name used by the comments system. This store is managed automatically and should not be written to directly.const COMMENTS_STORE_NAME = '__collabkit-comments';