"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.handleStanza = handleStanza;
var _stanzaHandlers = require("../stanzaHandlers");
function handleStanza(stanza, xmppWs) {
  if (stanza?.attrs?.type === 'headline') {
    return;
  }
  switch (stanza.name) {
    case 'message':
      (0, _stanzaHandlers.onMessageError)(stanza, xmppWs);
      (0, _stanzaHandlers.onReactionMessage)(stanza);
      (0, _stanzaHandlers.onReactionHistory)(stanza);
      (0, _stanzaHandlers.onDeleteMessage)(stanza);
      (0, _stanzaHandlers.onEditMessage)(stanza);
      (0, _stanzaHandlers.onChatInvite)(stanza, xmppWs);
      (0, _stanzaHandlers.onRealtimeMessage)(stanza);
      (0, _stanzaHandlers.onMessageHistory)(stanza);
      (0, _stanzaHandlers.handleComposing)(stanza, xmppWs.username);
      (0, _stanzaHandlers.onPresenceInRoom)(stanza);
      break;
    case 'presence':
      (0, _stanzaHandlers.onRoomKicked)(stanza);
      (0, _stanzaHandlers.onPresenceInRoom)(stanza);
      break;
    case 'iq':
      (0, _stanzaHandlers.onGetChatRooms)(stanza, xmppWs);
      (0, _stanzaHandlers.onRealtimeMessage)(stanza);
      (0, _stanzaHandlers.onPresenceInRoom)(stanza);
      (0, _stanzaHandlers.onGetMembers)(stanza);
      (0, _stanzaHandlers.onGetRoomInfo)(stanza);
      (0, _stanzaHandlers.onGetLastMessageArchive)(stanza, xmppWs);
      break;
    case 'room-config':
      (0, _stanzaHandlers.onNewRoomCreated)(stanza, xmppWs);
      break;
    default:
      console.log('Unhandled stanza type:', stanza.name);
  }
}
//# sourceMappingURL=handleStanzas.xmpp.js.map