UNPKG

sinch-rtc

Version:

RTC JavaScript/Web SDK

159 lines 6.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MxpEventsCollector = exports.EventSubType = exports.EventType = void 0; const mxp_1 = require("../../mxp"); var EventType; (function (EventType) { EventType["In"] = "IN"; EventType["Out"] = "OUT"; EventType["Error"] = "ERROR"; })(EventType || (exports.EventType = EventType = {})); const MessageType = new Map([ [mxp_1.Method.Ack, "ACK"], [mxp_1.Method.Cancel, "CANCEL"], [mxp_1.Method.Deny, "DENY"], [mxp_1.Method.Error, "ERROR"], [mxp_1.Method.Invite, "INVITE"], [mxp_1.Method.Join, "JOIN"], [mxp_1.Method.Joined, "JOINED"], [mxp_1.Method.Leave, "LEAVE"], [mxp_1.Method.PeerEvent, "PEEREVENT"], [mxp_1.Method.Undefined, "UNDEFINED"], ]); var EventSubType; (function (EventSubType) { EventSubType["RECEIVED"] = "RECEIVED"; EventSubType["IGNORED"] = "IGNORED"; EventSubType["WARNING"] = "WARNING"; EventSubType["SENDING"] = "SENDING"; EventSubType["SENDING_ABORTED"] = "SENDING_ABORTED"; EventSubType["SENDING_FAILED"] = "SENDING_FAILED"; EventSubType["SENT"] = "SENT"; })(EventSubType || (exports.EventSubType = EventSubType = {})); class MxpEventsCollector { constructor() { this.addSendingEventLog = this.addIgnoredWarningOrSendingEventLog(EventSubType.SENDING); this.addSentEventLog = this.addSentOrReceivedEventLog(EventSubType.SENT); this.addReceivedEventLog = this.addSentOrReceivedEventLog(EventSubType.RECEIVED); this.addErrorEventLog = (errorEvent) => { const { sessionId, localTimeStamp, additionalInfo } = errorEvent; const event = [ EventType.Error, EventSubType.SENDING_FAILED, sessionId, localTimeStamp, additionalInfo, ]; this.addEvent(event); }; this.mxpEventLog = { Version: "5", Events: [], }; } addEvent(event) { this.mxpEventLog.Events.push(event); } addIgnoredEventLog() { return this.addIgnoredWarningOrSendingEventLog(EventSubType.IGNORED); } addWarningEventLog() { return this.addIgnoredWarningOrSendingEventLog(EventSubType.WARNING); } addSendingEventLogForMessage(outboundMessage) { const { channelId, message } = outboundMessage; const { method: messageType, sessionId } = message; const headers = outboundMessage.message.stringifiedValues(); this.addSendingEventLog({ sessionId, localTimeStamp: Date.now().toString(), messageType, headers, additionalInfo: this.extractAdditionalInfoFromMessage(message, channelId), }); } addSentEventLogForMessage(outboundMessage) { const { channelId, message } = outboundMessage; const { method: messageType, sessionId } = message; const headers = outboundMessage.message.stringifiedValues(); this.addSentEventLog({ sessionId, localTimeStamp: Date.now().toString(), pubsubTimeStamp: Date.now().toString(), messageType, headers, additionalInfo: this.extractAdditionalInfoFromMessage(message, channelId), }); } addErrorEventLogForMessage(outboundMessage) { const { channelId, message } = outboundMessage; const { sessionId } = message; this.addErrorEventLog({ sessionId, localTimeStamp: Date.now().toString(), additionalInfo: this.extractAdditionalInfoFromMessage(message, channelId), }); } addReceivedEventLogForMessage(inboundMessage) { const { sessionId, method, values } = inboundMessage; this.addReceivedEventLog({ sessionId, localTimeStamp: Date.now().toString(), pubsubTimeStamp: Date.now().toString(), messageType: method, headers: values ? JSON.stringify(values) : "", additionalInfo: this.extractAdditionalInfoFromMessage(inboundMessage, undefined), }); } extractAdditionalInfoFromMessage(message, channelId) { var _a, _b, _c, _d, _e; const clientEventBody = ((_a = message.body) === null || _a === void 0 ? void 0 : _a.isClientEvent()) === true ? (_b = message.body) === null || _b === void 0 ? void 0 : _b.data : undefined; const errorBody = ((_c = message.body) === null || _c === void 0 ? void 0 : _c.isError()) === true ? (_d = message.body) === null || _d === void 0 ? void 0 : _d.data : undefined; return JSON.stringify({ body_type: (_e = message.body) === null || _e === void 0 ? void 0 : _e.type, channel: channelId, cand: message.getIceCandidate(), client_event: clientEventBody, error_body: errorBody, }); } addIgnoredWarningOrSendingEventLog(eventSubType) { return (incomingOrOutgoingEvent) => { const { sessionId, localTimeStamp, messageType, headers, additionalInfo, } = incomingOrOutgoingEvent; const event = [ EventType.Out, eventSubType, sessionId, localTimeStamp, MessageType.get(messageType), headers, additionalInfo, ]; this.addEvent(event); }; } addSentOrReceivedEventLog(eventSubType) { return (sentOrReceivedMXPEvent) => { const { sessionId, localTimeStamp, pubsubTimeStamp, messageType, headers, additionalInfo, } = sentOrReceivedMXPEvent; const event = [ eventSubType === EventSubType.RECEIVED ? EventType.In : EventType.Out, eventSubType, sessionId, localTimeStamp, pubsubTimeStamp, MessageType.get(messageType), headers, additionalInfo, ]; this.addEvent(event); }; } get eventLog() { return this.mxpEventLog; } get events() { return this.mxpEventLog.Events; } } exports.MxpEventsCollector = MxpEventsCollector; //# sourceMappingURL=MxpEventsCollector.js.map