@webex/plugin-meetings 2.60.0-next.7 → 2.60.0-next.9
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/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +0 -128
- package/dist/mediaQualityMetrics/config.js +1 -202
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/index.d.ts +5 -1
- package/dist/meeting/index.js +15 -8
- package/dist/meeting/index.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +0 -10
- package/dist/statsAnalyzer/index.js +41 -154
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +21 -22
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +24 -24
- package/src/mediaQualityMetrics/config.ts +0 -135
- package/src/meeting/index.ts +16 -7
- package/src/statsAnalyzer/index.ts +49 -226
- package/src/statsAnalyzer/mqaUtil.ts +13 -21
- package/test/unit/spec/meeting/index.js +93 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","require","_constants","getAudioReceiverMqa","exports","_ref","_lastMqaDataSent$medi","_lastMqaDataSent$medi2","_lastMqaDataSent$medi3","_lastMqaDataSent$medi4","_lastMqaDataSent$medi5","_lastMqaDataSent$medi6","_lastMqaDataSent$medi7","_lastMqaDataSent$medi8","audioReceiver","statsResults","lastMqaDataSent","mediaType","sendrecvType","STATS","RECEIVE_DIRECTION","lastPacketsReceived","totalPacketsReceived","lastPacketsLost","totalPacketsLost","lastPacketsDecoded","totalSamplesDecoded","lastSamplesReceived","totalSamplesReceived","lastConcealedSamples","concealedSamples","lastBytesReceived","totalBytesReceived","lastFecPacketsReceived","fecPacketsReceived","lastFecPacketsDiscarded","fecPacketsDiscarded","csi","streams","common","includes","push","direction","transportType","connectionType","local","transport","rtpPackets","mediaHopByHopLost","rtpHopByHopLost","maxRtpJitter","max","meanRtpJitter","mean","rtpJitter","fecRecovered","rtpEndToEndLost","framesDropped","renderedFrameRate","framesReceived","concealedFrames","receivedBitrate","rtpBitrate","getAudioSenderMqa","_ref2","_lastMqaDataSent$medi9","_lastMqaDataSent$medi10","_lastMqaDataSent$medi11","_lastMqaDataSent$medi12","_lastMqaDataSent$medi13","audioSender","SEND_DIRECTION","lastPacketsSent","totalPacketsSent","totalPacketsLostOnReceiver","lastBytesSent","totalBytesSent","lastFramesEncoded","totalKeyFramesEncoded","lastFirCount","totalFirCount","maxRemoteJitter","meanRemoteJitter","availableBitrate","availableOutgoingBitrate","totalpacketsLostForaMin","remoteLossRate","maxRoundTripTime","meanRoundTripTime","roundTripTime","totalBytesSentInaMin","transmittedBitrate","transmittedKeyFrames","requestedKeyFrames","getVideoReceiverMqa","_ref3","_lastMqaDataSent$medi14","_lastMqaDataSent$medi15","_lastMqaDataSent$medi16","_lastMqaDataSent$reso","_lastMqaDataSent$reso2","_lastMqaDataSent$reso3","_lastMqaDataSent$medi17","_lastMqaDataSent$medi18","videoReceiver","lastFramesReceived","resolutions","lastFramesDecoded","framesDecoded","lastFramesDropped","lastKeyFramesDecoded","keyFramesDecoded","lastPliCount","totalPliCount","totalPacketLoss","totalBytesReceivedInaMin","totalFrameReceivedInaMin","totalFrameDecodedInaMin","receivedFrameRate","Math","round","receivedHeight","height","receivedWidth","width","receivedFrameSize","receivedKeyFrames","getVideoSenderMqa","_ref4","_lastMqaDataSent$medi19","_lastMqaDataSent$medi20","_lastMqaDataSent$medi21","_lastMqaDataSent$reso4","_lastMqaDataSent$medi22","_lastMqaDataSent$reso5","videoSender","lastKeyFramesEncoded","lastFramesSent","framesSent","totalFrameSentInaMin","transmittedFrameRate","transmittedHeight","transmittedWidth","transmittedFrameSize"],"sources":["mqaUtil.ts"],"sourcesContent":["/* eslint-disable no-param-reassign, prefer-destructuring */\n\nimport {mean, max} from 'lodash';\n\nimport {STATS} from '../constants';\n\nexport const getAudioReceiverMqa = ({audioReceiver, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n const lastPacketsDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesDecoded || 0;\n const lastSamplesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesReceived || 0;\n const lastConcealedSamples = lastMqaDataSent[mediaType]?.[sendrecvType].concealedSamples || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFecPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsReceived || 0;\n const lastFecPacketsDiscarded =\n lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsDiscarded || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioReceiver.streams[0].common.csi.includes(csi)) {\n audioReceiver.streams[0].common.csi.push(csi);\n }\n\n audioReceiver.common.common.direction = statsResults[mediaType].direction;\n audioReceiver.common.transportType = statsResults.connectionType.local.transport;\n\n // add rtpPacket info inside common as also for call analyzer\n audioReceiver.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n // Hop by hop are numbers and not percentage so we compare on what we sent the last min\n // collect the packets received for the last min\n audioReceiver.streams[0].common.rtpPackets = audioReceiver.common.rtpPackets;\n audioReceiver.common.mediaHopByHopLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n audioReceiver.common.rtpHopByHopLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n\n audioReceiver.streams[0].common.maxRtpJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiver.streams[0].common.meanRtpJitter =\n mean(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiver.streams[0].common.rtpJitter = audioReceiver.streams[0].common.maxRtpJitter;\n\n // Fec packets do come in as part of the FEC only for audio\n const fecRecovered =\n statsResults[mediaType][sendrecvType].fecPacketsReceived -\n lastFecPacketsReceived -\n (statsResults[mediaType][sendrecvType].fecPacketsDiscarded - lastFecPacketsDiscarded);\n\n audioReceiver.streams[0].common.rtpEndToEndLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost - fecRecovered || 0;\n\n audioReceiver.streams[0].common.framesDropped =\n statsResults[mediaType][sendrecvType].totalSamplesDecoded - lastPacketsDecoded || 0;\n audioReceiver.streams[0].common.renderedFrameRate =\n (audioReceiver.streams[0].common.framesDropped * 100) / 60 || 0;\n\n audioReceiver.streams[0].common.framesReceived =\n statsResults[mediaType][sendrecvType].totalSamplesReceived - lastSamplesReceived || 0;\n audioReceiver.streams[0].common.concealedFrames =\n statsResults[mediaType][sendrecvType].concealedSamples - lastConcealedSamples || 0;\n audioReceiver.streams[0].common.receivedBitrate =\n ((statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived) * 8) / 60 || 0;\n\n audioReceiver.common.rtpBitrate = audioReceiver.streams[0].common.receivedBitrate;\n};\n\nexport const getAudioSenderMqa = ({audioSender, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n const lastPacketsLost =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLostOnReceiver || 0;\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastFramesEncoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioSender.streams[0].common.csi.includes(csi)) {\n audioSender.streams[0].common.csi.push(csi);\n }\n\n audioSender.common.common.direction = statsResults[mediaType].direction;\n audioSender.common.transportType = statsResults.connectionType.local.transport;\n\n audioSender.common.maxRemoteJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n audioSender.common.meanRemoteJitter =\n mean(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n audioSender.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n audioSender.streams[0].common.rtpPackets = audioSender.common.rtpPackets;\n // From candidate-pair\n audioSender.common.availableBitrate =\n statsResults[mediaType][sendrecvType].availableOutgoingBitrate || 0;\n // Calculate based on how much packets lost of received compated to how to the client sent\n\n const totalpacketsLostForaMin =\n statsResults[mediaType][sendrecvType].totalPacketsLostOnReceiver - lastPacketsLost;\n\n audioSender.common.remoteLossRate =\n totalpacketsLostForaMin > 0\n ? (totalpacketsLostForaMin * 100) / audioSender.common.rtpPackets\n : 0; // This is the packets sent with in last min || 0;\n\n audioSender.common.maxRoundTripTime =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n audioSender.common.meanRoundTripTime =\n mean(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n audioSender.common.roundTripTime = audioSender.common.maxRoundTripTime;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n\n audioSender.streams[0].common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n audioSender.common.rtpBitrate = audioSender.streams[0].common.transmittedBitrate;\n\n audioSender.streams[0].transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastFramesEncoded || 0;\n audioSender.streams[0].requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n};\n\nexport const getVideoReceiverMqa = ({videoReceiver, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFramesReceived =\n lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].framesReceived || 0;\n const lastFramesDecoded =\n lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].framesDecoded || 0;\n const lastFramesDropped =\n lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].framesDropped || 0;\n const lastKeyFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].keyFramesDecoded || 0;\n const lastPliCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalPliCount || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !videoReceiver.streams[0].common.csi.includes(csi)) {\n videoReceiver.streams[0].common.csi.push(csi);\n }\n\n videoReceiver.common.common.direction = statsResults[mediaType].direction;\n videoReceiver.common.transportType = statsResults.connectionType.local.transport;\n\n // collect the packets received for the last min\n videoReceiver.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n videoReceiver.streams[0].common.rtpPackets = videoReceiver.common.rtpPackets;\n\n const totalPacketLoss =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n\n // Hope by hop are numbers and not percentage so we compare on what we sent the last min\n // this is including packet lost\n videoReceiver.common.mediaHopByHopLost = totalPacketLoss;\n videoReceiver.common.rtpHopByHopLost = totalPacketLoss;\n\n // End to end packetloss is after recovery\n videoReceiver.streams[0].common.rtpEndToEndLost = totalPacketLoss;\n\n // calculate this values\n\n videoReceiver.common.maxRemoteJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n videoReceiver.common.meanRemoteJitter =\n mean(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n videoReceiver.streams[0].common.rtpJitter = videoReceiver.common.maxRemoteJitter;\n // videoReceiver.streams[0].common.rtpJitter = (statsResults.resolutions[mediaType][sendrecvType].jitterBufferDelay - lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].jitterBufferDelay) / (statsResults.resolutions[mediaType][sendrecvType].jitterBufferEmittedCount - lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].jitterBufferEmittedCount) * 1000 || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesReceivedInaMin =\n statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived;\n\n videoReceiver.streams[0].common.receivedBitrate = totalBytesReceivedInaMin\n ? (totalBytesReceivedInaMin * 8) / 60\n : 0;\n videoReceiver.common.rtpBitrate = videoReceiver.streams[0].common.receivedBitrate;\n\n // From tracks //TODO: calculate a proper one\n const totalFrameReceivedInaMin =\n statsResults.resolutions[mediaType][sendrecvType].framesReceived - lastFramesReceived;\n const totalFrameDecodedInaMin =\n statsResults.resolutions[mediaType][sendrecvType].framesDecoded - lastFramesDecoded;\n\n videoReceiver.streams[0].common.receivedFrameRate = Math.round(\n totalFrameReceivedInaMin ? totalFrameReceivedInaMin / 60 : 0\n );\n videoReceiver.streams[0].common.renderedFrameRate = Math.round(\n totalFrameDecodedInaMin ? totalFrameDecodedInaMin / 60 : 0\n );\n\n videoReceiver.streams[0].common.framesDropped =\n statsResults.resolutions[mediaType][sendrecvType].framesDropped - lastFramesDropped;\n videoReceiver.streams[0].receivedHeight =\n statsResults.resolutions[mediaType][sendrecvType].height || 0;\n videoReceiver.streams[0].receivedWidth =\n statsResults.resolutions[mediaType][sendrecvType].width || 0;\n videoReceiver.streams[0].receivedFrameSize =\n (videoReceiver.streams[0].receivedHeight * videoReceiver.streams[0].receivedWidth) / 256;\n\n videoReceiver.streams[0].receivedKeyFrames =\n statsResults[mediaType][sendrecvType].keyFramesDecoded - lastKeyFramesDecoded || 0;\n videoReceiver.streams[0].requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalPliCount - lastPliCount || 0;\n};\n\nexport const getVideoSenderMqa = ({videoSender, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n const lastPacketsLost =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLostOnReceiver || 0;\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastKeyFramesEncoded =\n lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n const lastFramesSent = lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].framesSent || 0;\n const {csi} = statsResults[mediaType];\n if (csi && !videoSender.streams[0].common.csi.includes(csi)) {\n videoSender.streams[0].common.csi.push(csi);\n }\n\n videoSender.common.common.direction = statsResults[mediaType].direction;\n videoSender.common.transportType = statsResults.connectionType.local.transport;\n\n // @ts-ignore\n videoSender.common.maxRemoteJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n videoSender.common.meanRemoteJitter =\n mean(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n videoSender.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n videoSender.common.availableBitrate =\n statsResults[mediaType][sendrecvType].availableOutgoingBitrate || 0;\n // Calculate based on how much packets lost of received compated to how to the client sent\n\n const totalpacketsLostForaMin =\n statsResults[mediaType][sendrecvType].totalPacketsLostOnReceiver - lastPacketsLost;\n\n videoSender.common.remoteLossRate =\n totalpacketsLostForaMin > 0\n ? (totalpacketsLostForaMin * 100) / (videoSender.common.rtpPackets + totalpacketsLostForaMin)\n : 0; // This is the packets sent with in last min || 0;\n\n videoSender.common.maxRoundTripTime =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n videoSender.common.meanRoundTripTime =\n mean(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n videoSender.common.roundTripTime = videoSender.common.maxRoundTripTime;\n\n videoSender.streams[0].common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n\n videoSender.streams[0].common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n\n videoSender.common.rtpBitrate = videoSender.streams[0].common.transmittedBitrate;\n\n videoSender.streams[0].transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastKeyFramesEncoded || 0;\n videoSender.streams[0].requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n\n // From tracks //TODO: calculate a proper one\n const totalFrameSentInaMin =\n statsResults.resolutions[mediaType][sendrecvType].framesSent - (lastFramesSent || 0);\n\n videoSender.streams[0].common.transmittedFrameRate = Math.round(\n totalFrameSentInaMin ? totalFrameSentInaMin / 60 : 0\n );\n videoSender.streams[0].transmittedHeight =\n statsResults.resolutions[mediaType][sendrecvType].height || 0;\n videoSender.streams[0].transmittedWidth =\n statsResults.resolutions[mediaType][sendrecvType].width || 0;\n videoSender.streams[0].transmittedFrameSize =\n (videoSender.streams[0].transmittedHeight * videoSender.streams[0].transmittedWidth) / 256;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_lodash","require","_constants","getAudioReceiverMqa","exports","_ref","_lastMqaDataSent$medi","_lastMqaDataSent$medi2","_lastMqaDataSent$medi3","_lastMqaDataSent$medi4","_lastMqaDataSent$medi5","_lastMqaDataSent$medi6","_lastMqaDataSent$medi7","_lastMqaDataSent$medi8","audioReceiver","statsResults","lastMqaDataSent","mediaType","sendrecvType","STATS","RECEIVE_DIRECTION","lastPacketsReceived","totalPacketsReceived","lastPacketsLost","totalPacketsLost","lastPacketsDecoded","totalSamplesDecoded","lastSamplesReceived","totalSamplesReceived","lastConcealedSamples","concealedSamples","lastBytesReceived","totalBytesReceived","lastFecPacketsReceived","fecPacketsReceived","lastFecPacketsDiscarded","fecPacketsDiscarded","csi","streams","common","includes","push","direction","transportType","connectionType","local","transport","rtpPackets","mediaHopByHopLost","rtpHopByHopLost","maxRtpJitter","max","meanRtpJitter","mean","rtpJitter","fecRecovered","rtpEndToEndLost","framesDropped","renderedFrameRate","framesReceived","concealedFrames","receivedBitrate","rtpBitrate","getAudioSenderMqa","_ref2","_lastMqaDataSent$medi9","_lastMqaDataSent$medi10","_lastMqaDataSent$medi11","_lastMqaDataSent$medi12","_lastMqaDataSent$medi13","audioSender","SEND_DIRECTION","lastPacketsSent","totalPacketsSent","totalPacketsLostOnReceiver","lastBytesSent","totalBytesSent","lastFramesEncoded","totalKeyFramesEncoded","lastFirCount","totalFirCount","maxRemoteJitter","meanRemoteJitter","availableBitrate","availableOutgoingBitrate","totalpacketsLostForaMin","remoteLossRate","maxRoundTripTime","meanRoundTripTime","roundTripTime","totalBytesSentInaMin","transmittedBitrate","transmittedKeyFrames","requestedKeyFrames","getVideoReceiverMqa","_ref3","_lastMqaDataSent$medi14","_lastMqaDataSent$medi15","_lastMqaDataSent$medi16","_lastMqaDataSent$medi17","_lastMqaDataSent$medi18","_lastMqaDataSent$medi19","_lastMqaDataSent$medi20","_lastMqaDataSent$medi21","videoReceiver","lastFramesReceived","lastFramesDecoded","framesDecoded","lastFramesDropped","lastKeyFramesDecoded","keyFramesDecoded","lastPliCount","totalPliCount","totalPacketLoss","totalBytesReceivedInaMin","totalFrameReceivedInaMin","totalFrameDecodedInaMin","receivedFrameRate","Math","round","receivedHeight","height","receivedWidth","width","receivedFrameSize","receivedKeyFrames","getVideoSenderMqa","_ref4","_lastMqaDataSent$medi22","_lastMqaDataSent$medi23","_lastMqaDataSent$medi24","_lastMqaDataSent$medi25","_lastMqaDataSent$medi26","_lastMqaDataSent$medi27","videoSender","lastKeyFramesEncoded","lastFramesSent","framesSent","totalFrameSentInaMin","transmittedFrameRate","transmittedHeight","transmittedWidth","transmittedFrameSize"],"sources":["mqaUtil.ts"],"sourcesContent":["/* eslint-disable no-param-reassign, prefer-destructuring */\n\nimport {mean, max} from 'lodash';\n\nimport {STATS} from '../constants';\n\nexport const getAudioReceiverMqa = ({audioReceiver, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n const lastPacketsDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesDecoded || 0;\n const lastSamplesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalSamplesReceived || 0;\n const lastConcealedSamples = lastMqaDataSent[mediaType]?.[sendrecvType].concealedSamples || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFecPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsReceived || 0;\n const lastFecPacketsDiscarded =\n lastMqaDataSent[mediaType]?.[sendrecvType].fecPacketsDiscarded || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioReceiver.streams[0].common.csi.includes(csi)) {\n audioReceiver.streams[0].common.csi.push(csi);\n }\n\n audioReceiver.common.common.direction = statsResults[mediaType].direction;\n audioReceiver.common.transportType = statsResults.connectionType.local.transport;\n\n // add rtpPacket info inside common as also for call analyzer\n audioReceiver.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n // Hop by hop are numbers and not percentage so we compare on what we sent the last min\n // collect the packets received for the last min\n audioReceiver.streams[0].common.rtpPackets = audioReceiver.common.rtpPackets;\n audioReceiver.common.mediaHopByHopLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n audioReceiver.common.rtpHopByHopLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n\n audioReceiver.streams[0].common.maxRtpJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiver.streams[0].common.meanRtpJitter =\n mean(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;\n audioReceiver.streams[0].common.rtpJitter = audioReceiver.streams[0].common.maxRtpJitter;\n\n // Fec packets do come in as part of the FEC only for audio\n const fecRecovered =\n statsResults[mediaType][sendrecvType].fecPacketsReceived -\n lastFecPacketsReceived -\n (statsResults[mediaType][sendrecvType].fecPacketsDiscarded - lastFecPacketsDiscarded);\n\n audioReceiver.streams[0].common.rtpEndToEndLost =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost - fecRecovered || 0;\n\n audioReceiver.streams[0].common.framesDropped =\n statsResults[mediaType][sendrecvType].totalSamplesDecoded - lastPacketsDecoded || 0;\n audioReceiver.streams[0].common.renderedFrameRate =\n (audioReceiver.streams[0].common.framesDropped * 100) / 60 || 0;\n\n audioReceiver.streams[0].common.framesReceived =\n statsResults[mediaType][sendrecvType].totalSamplesReceived - lastSamplesReceived || 0;\n audioReceiver.streams[0].common.concealedFrames =\n statsResults[mediaType][sendrecvType].concealedSamples - lastConcealedSamples || 0;\n audioReceiver.streams[0].common.receivedBitrate =\n ((statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived) * 8) / 60 || 0;\n\n audioReceiver.common.rtpBitrate = audioReceiver.streams[0].common.receivedBitrate;\n};\n\nexport const getAudioSenderMqa = ({audioSender, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n const lastPacketsLost =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLostOnReceiver || 0;\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastFramesEncoded = lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !audioSender.streams[0].common.csi.includes(csi)) {\n audioSender.streams[0].common.csi.push(csi);\n }\n\n audioSender.common.common.direction = statsResults[mediaType].direction;\n audioSender.common.transportType = statsResults.connectionType.local.transport;\n\n audioSender.common.maxRemoteJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n audioSender.common.meanRemoteJitter =\n mean(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n audioSender.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n audioSender.streams[0].common.rtpPackets = audioSender.common.rtpPackets;\n // From candidate-pair\n audioSender.common.availableBitrate =\n statsResults[mediaType][sendrecvType].availableOutgoingBitrate || 0;\n // Calculate based on how much packets lost of received compated to how to the client sent\n\n const totalpacketsLostForaMin =\n statsResults[mediaType][sendrecvType].totalPacketsLostOnReceiver - lastPacketsLost;\n\n audioSender.common.remoteLossRate =\n totalpacketsLostForaMin > 0\n ? (totalpacketsLostForaMin * 100) / audioSender.common.rtpPackets\n : 0; // This is the packets sent with in last min || 0;\n\n audioSender.common.maxRoundTripTime =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n audioSender.common.meanRoundTripTime =\n mean(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n audioSender.common.roundTripTime = audioSender.common.maxRoundTripTime;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n\n audioSender.streams[0].common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n audioSender.common.rtpBitrate = audioSender.streams[0].common.transmittedBitrate;\n\n audioSender.streams[0].transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastFramesEncoded || 0;\n audioSender.streams[0].requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n};\n\nexport const getVideoReceiverMqa = ({videoReceiver, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.RECEIVE_DIRECTION;\n\n const lastPacketsReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsReceived || 0;\n const lastPacketsLost = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLost || 0;\n const lastBytesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesReceived || 0;\n const lastFramesReceived = lastMqaDataSent[mediaType]?.[sendrecvType].framesReceived || 0;\n const lastFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].framesDecoded || 0;\n const lastFramesDropped = lastMqaDataSent[mediaType]?.[sendrecvType].framesDropped || 0;\n const lastKeyFramesDecoded = lastMqaDataSent[mediaType]?.[sendrecvType].keyFramesDecoded || 0;\n const lastPliCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalPliCount || 0;\n\n const {csi} = statsResults[mediaType];\n if (csi && !videoReceiver.streams[0].common.csi.includes(csi)) {\n videoReceiver.streams[0].common.csi.push(csi);\n }\n\n videoReceiver.common.common.direction = statsResults[mediaType].direction;\n videoReceiver.common.transportType = statsResults.connectionType.local.transport;\n\n // collect the packets received for the last min\n videoReceiver.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;\n videoReceiver.streams[0].common.rtpPackets = videoReceiver.common.rtpPackets;\n\n const totalPacketLoss =\n statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;\n\n // Hope by hop are numbers and not percentage so we compare on what we sent the last min\n // this is including packet lost\n videoReceiver.common.mediaHopByHopLost = totalPacketLoss;\n videoReceiver.common.rtpHopByHopLost = totalPacketLoss;\n\n // End to end packetloss is after recovery\n videoReceiver.streams[0].common.rtpEndToEndLost = totalPacketLoss;\n\n // calculate this values\n\n videoReceiver.common.maxRemoteJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n videoReceiver.common.meanRemoteJitter =\n mean(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n videoReceiver.streams[0].common.rtpJitter = videoReceiver.common.maxRemoteJitter;\n\n // Calculate the outgoing bitrate\n const totalBytesReceivedInaMin =\n statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived;\n\n videoReceiver.streams[0].common.receivedBitrate = totalBytesReceivedInaMin\n ? (totalBytesReceivedInaMin * 8) / 60\n : 0;\n videoReceiver.common.rtpBitrate = videoReceiver.streams[0].common.receivedBitrate;\n\n // From tracks //TODO: calculate a proper one\n const totalFrameReceivedInaMin =\n statsResults[mediaType][sendrecvType].framesReceived - lastFramesReceived;\n const totalFrameDecodedInaMin =\n statsResults[mediaType][sendrecvType].framesDecoded - lastFramesDecoded;\n\n videoReceiver.streams[0].common.receivedFrameRate = Math.round(\n totalFrameReceivedInaMin ? totalFrameReceivedInaMin / 60 : 0\n );\n videoReceiver.streams[0].common.renderedFrameRate = Math.round(\n totalFrameDecodedInaMin ? totalFrameDecodedInaMin / 60 : 0\n );\n\n videoReceiver.streams[0].common.framesDropped =\n statsResults[mediaType][sendrecvType].framesDropped - lastFramesDropped;\n videoReceiver.streams[0].receivedHeight = statsResults[mediaType][sendrecvType].height || 0;\n videoReceiver.streams[0].receivedWidth = statsResults[mediaType][sendrecvType].width || 0;\n videoReceiver.streams[0].receivedFrameSize =\n (videoReceiver.streams[0].receivedHeight * videoReceiver.streams[0].receivedWidth) / 256;\n\n videoReceiver.streams[0].receivedKeyFrames =\n statsResults[mediaType][sendrecvType].keyFramesDecoded - lastKeyFramesDecoded || 0;\n videoReceiver.streams[0].requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalPliCount - lastPliCount || 0;\n};\n\nexport const getVideoSenderMqa = ({videoSender, statsResults, lastMqaDataSent, mediaType}) => {\n const sendrecvType = STATS.SEND_DIRECTION;\n\n const lastPacketsSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsSent || 0;\n const lastPacketsLost =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalPacketsLostOnReceiver || 0;\n const lastBytesSent = lastMqaDataSent[mediaType]?.[sendrecvType].totalBytesSent || 0;\n const lastKeyFramesEncoded =\n lastMqaDataSent[mediaType]?.[sendrecvType].totalKeyFramesEncoded || 0;\n const lastFirCount = lastMqaDataSent[mediaType]?.[sendrecvType].totalFirCount || 0;\n const lastFramesSent = lastMqaDataSent[mediaType]?.[sendrecvType].framesSent || 0;\n const {csi} = statsResults[mediaType];\n if (csi && !videoSender.streams[0].common.csi.includes(csi)) {\n videoSender.streams[0].common.csi.push(csi);\n }\n\n videoSender.common.common.direction = statsResults[mediaType].direction;\n videoSender.common.transportType = statsResults.connectionType.local.transport;\n\n // @ts-ignore\n videoSender.common.maxRemoteJitter =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n videoSender.common.meanRemoteJitter =\n mean(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;\n\n videoSender.common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n videoSender.common.availableBitrate =\n statsResults[mediaType][sendrecvType].availableOutgoingBitrate || 0;\n // Calculate based on how much packets lost of received compated to how to the client sent\n\n const totalpacketsLostForaMin =\n statsResults[mediaType][sendrecvType].totalPacketsLostOnReceiver - lastPacketsLost;\n\n videoSender.common.remoteLossRate =\n totalpacketsLostForaMin > 0\n ? (totalpacketsLostForaMin * 100) / (videoSender.common.rtpPackets + totalpacketsLostForaMin)\n : 0; // This is the packets sent with in last min || 0;\n\n videoSender.common.maxRoundTripTime =\n // @ts-ignore\n max(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n videoSender.common.meanRoundTripTime =\n mean(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;\n videoSender.common.roundTripTime = videoSender.common.maxRoundTripTime;\n\n videoSender.streams[0].common.rtpPackets =\n statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;\n\n // Calculate the outgoing bitrate\n const totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;\n\n videoSender.streams[0].common.transmittedBitrate = totalBytesSentInaMin\n ? (totalBytesSentInaMin * 8) / 60\n : 0;\n\n videoSender.common.rtpBitrate = videoSender.streams[0].common.transmittedBitrate;\n\n videoSender.streams[0].transmittedKeyFrames =\n statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastKeyFramesEncoded || 0;\n videoSender.streams[0].requestedKeyFrames =\n statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;\n\n // From tracks //TODO: calculate a proper one\n const totalFrameSentInaMin =\n statsResults[mediaType][sendrecvType].framesSent - (lastFramesSent || 0);\n\n videoSender.streams[0].common.transmittedFrameRate = Math.round(\n totalFrameSentInaMin ? totalFrameSentInaMin / 60 : 0\n );\n videoSender.streams[0].transmittedHeight = statsResults[mediaType][sendrecvType].height || 0;\n videoSender.streams[0].transmittedWidth = statsResults[mediaType][sendrecvType].width || 0;\n videoSender.streams[0].transmittedFrameSize =\n (videoSender.streams[0].transmittedHeight * videoSender.streams[0].transmittedWidth) / 256;\n};\n"],"mappings":";;;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAJA;;AAMO,IAAME,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,SAAtBA,mBAAmBA,CAAAE,IAAA,EAAkE;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAAA,IAA7DC,aAAa,GAAAT,IAAA,CAAbS,aAAa;IAAEC,YAAY,GAAAV,IAAA,CAAZU,YAAY;IAAEC,eAAe,GAAAX,IAAA,CAAfW,eAAe;IAAEC,SAAS,GAAAZ,IAAA,CAATY,SAAS;EAC1F,IAAMC,YAAY,GAAGC,gBAAK,CAACC,iBAAiB;EAE5C,IAAMC,mBAAmB,GAAG,EAAAf,qBAAA,GAAAU,eAAe,CAACC,SAAS,CAAC,cAAAX,qBAAA,uBAA1BA,qBAAA,CAA6BY,YAAY,CAAC,CAACI,oBAAoB,KAAI,CAAC;EAChG,IAAMC,eAAe,GAAG,EAAAhB,sBAAA,GAAAS,eAAe,CAACC,SAAS,CAAC,cAAAV,sBAAA,uBAA1BA,sBAAA,CAA6BW,YAAY,CAAC,CAACM,gBAAgB,KAAI,CAAC;EACxF,IAAMC,kBAAkB,GAAG,EAAAjB,sBAAA,GAAAQ,eAAe,CAACC,SAAS,CAAC,cAAAT,sBAAA,uBAA1BA,sBAAA,CAA6BU,YAAY,CAAC,CAACQ,mBAAmB,KAAI,CAAC;EAC9F,IAAMC,mBAAmB,GAAG,EAAAlB,sBAAA,GAAAO,eAAe,CAACC,SAAS,CAAC,cAAAR,sBAAA,uBAA1BA,sBAAA,CAA6BS,YAAY,CAAC,CAACU,oBAAoB,KAAI,CAAC;EAChG,IAAMC,oBAAoB,GAAG,EAAAnB,sBAAA,GAAAM,eAAe,CAACC,SAAS,CAAC,cAAAP,sBAAA,uBAA1BA,sBAAA,CAA6BQ,YAAY,CAAC,CAACY,gBAAgB,KAAI,CAAC;EAC7F,IAAMC,iBAAiB,GAAG,EAAApB,sBAAA,GAAAK,eAAe,CAACC,SAAS,CAAC,cAAAN,sBAAA,uBAA1BA,sBAAA,CAA6BO,YAAY,CAAC,CAACc,kBAAkB,KAAI,CAAC;EAC5F,IAAMC,sBAAsB,GAAG,EAAArB,sBAAA,GAAAI,eAAe,CAACC,SAAS,CAAC,cAAAL,sBAAA,uBAA1BA,sBAAA,CAA6BM,YAAY,CAAC,CAACgB,kBAAkB,KAAI,CAAC;EACjG,IAAMC,uBAAuB,GAC3B,EAAAtB,sBAAA,GAAAG,eAAe,CAACC,SAAS,CAAC,cAAAJ,sBAAA,uBAA1BA,sBAAA,CAA6BK,YAAY,CAAC,CAACkB,mBAAmB,KAAI,CAAC;EAErE,IAAOC,GAAG,GAAItB,YAAY,CAACE,SAAS,CAAC,CAA9BoB,GAAG;EACV,IAAIA,GAAG,IAAI,CAACvB,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACF,GAAG,CAACG,QAAQ,CAACH,GAAG,CAAC,EAAE;IAC7DvB,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACF,GAAG,CAACI,IAAI,CAACJ,GAAG,CAAC;EAC/C;EAEAvB,aAAa,CAACyB,MAAM,CAACA,MAAM,CAACG,SAAS,GAAG3B,YAAY,CAACE,SAAS,CAAC,CAACyB,SAAS;EACzE5B,aAAa,CAACyB,MAAM,CAACI,aAAa,GAAG5B,YAAY,CAAC6B,cAAc,CAACC,KAAK,CAACC,SAAS;;EAEhF;EACAhC,aAAa,CAACyB,MAAM,CAACQ,UAAU,GAC7BhC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACI,oBAAoB,GAAGD,mBAAmB,IAAI,CAAC;EACvF;EACA;EACAP,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACQ,UAAU,GAAGjC,aAAa,CAACyB,MAAM,CAACQ,UAAU;EAC5EjC,aAAa,CAACyB,MAAM,CAACS,iBAAiB,GACpCjC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACM,gBAAgB,GAAGD,eAAe,IAAI,CAAC;EAC/ET,aAAa,CAACyB,MAAM,CAACU,eAAe,GAClClC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACM,gBAAgB,GAAGD,eAAe,IAAI,CAAC;EAE/ET,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACW,YAAY;EAC1C;EACA,IAAAC,WAAG,EAACpC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACkC,aAAa,CAAC,GAAG,IAAI,IAAI,CAAC;EACtEtC,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACa,aAAa,GAC3C,IAAAC,YAAI,EAACtC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACkC,aAAa,CAAC,GAAG,IAAI,IAAI,CAAC;EACvEtC,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACe,SAAS,GAAGxC,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACW,YAAY;;EAExF;EACA,IAAMK,YAAY,GAChBxC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACgB,kBAAkB,GACxDD,sBAAsB,IACrBlB,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACkB,mBAAmB,GAAGD,uBAAuB,CAAC;EAEvFrB,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACiB,eAAe,GAC7CzC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACM,gBAAgB,GAAGD,eAAe,GAAGgC,YAAY,IAAI,CAAC;EAE9FzC,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACkB,aAAa,GAC3C1C,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACQ,mBAAmB,GAAGD,kBAAkB,IAAI,CAAC;EACrFX,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACmB,iBAAiB,GAC9C5C,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACkB,aAAa,GAAG,GAAG,GAAI,EAAE,IAAI,CAAC;EAEjE3C,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACoB,cAAc,GAC5C5C,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACU,oBAAoB,GAAGD,mBAAmB,IAAI,CAAC;EACvFb,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACqB,eAAe,GAC7C7C,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACY,gBAAgB,GAAGD,oBAAoB,IAAI,CAAC;EACpFf,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACsB,eAAe,GAC5C,CAAC9C,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACc,kBAAkB,GAAGD,iBAAiB,IAAI,CAAC,GAAI,EAAE,IAAI,CAAC;EAEhGjB,aAAa,CAACyB,MAAM,CAACuB,UAAU,GAAGhD,aAAa,CAACwB,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACsB,eAAe;AACnF,CAAC;AAEM,IAAME,iBAAiB,GAAA3D,OAAA,CAAA2D,iBAAA,GAAG,SAApBA,iBAAiBA,CAAAC,KAAA,EAAgE;EAAA,IAAAC,sBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA;EAAA,IAA3DC,WAAW,GAAAN,KAAA,CAAXM,WAAW;IAAEvD,YAAY,GAAAiD,KAAA,CAAZjD,YAAY;IAAEC,eAAe,GAAAgD,KAAA,CAAfhD,eAAe;IAAEC,SAAS,GAAA+C,KAAA,CAAT/C,SAAS;EACtF,IAAMC,YAAY,GAAGC,gBAAK,CAACoD,cAAc;EAEzC,IAAMC,eAAe,GAAG,EAAAP,sBAAA,GAAAjD,eAAe,CAACC,SAAS,CAAC,cAAAgD,sBAAA,uBAA1BA,sBAAA,CAA6B/C,YAAY,CAAC,CAACuD,gBAAgB,KAAI,CAAC;EACxF,IAAMlD,eAAe,GACnB,EAAA2C,uBAAA,GAAAlD,eAAe,CAACC,SAAS,CAAC,cAAAiD,uBAAA,uBAA1BA,uBAAA,CAA6BhD,YAAY,CAAC,CAACwD,0BAA0B,KAAI,CAAC;EAC5E,IAAMC,aAAa,GAAG,EAAAR,uBAAA,GAAAnD,eAAe,CAACC,SAAS,CAAC,cAAAkD,uBAAA,uBAA1BA,uBAAA,CAA6BjD,YAAY,CAAC,CAAC0D,cAAc,KAAI,CAAC;EACpF,IAAMC,iBAAiB,GAAG,EAAAT,uBAAA,GAAApD,eAAe,CAACC,SAAS,CAAC,cAAAmD,uBAAA,uBAA1BA,uBAAA,CAA6BlD,YAAY,CAAC,CAAC4D,qBAAqB,KAAI,CAAC;EAC/F,IAAMC,YAAY,GAAG,EAAAV,uBAAA,GAAArD,eAAe,CAACC,SAAS,CAAC,cAAAoD,uBAAA,uBAA1BA,uBAAA,CAA6BnD,YAAY,CAAC,CAAC8D,aAAa,KAAI,CAAC;EAElF,IAAO3C,GAAG,GAAItB,YAAY,CAACE,SAAS,CAAC,CAA9BoB,GAAG;EACV,IAAIA,GAAG,IAAI,CAACiC,WAAW,CAAChC,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACF,GAAG,CAACG,QAAQ,CAACH,GAAG,CAAC,EAAE;IAC3DiC,WAAW,CAAChC,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACF,GAAG,CAACI,IAAI,CAACJ,GAAG,CAAC;EAC7C;EAEAiC,WAAW,CAAC/B,MAAM,CAACA,MAAM,CAACG,SAAS,GAAG3B,YAAY,CAACE,SAAS,CAAC,CAACyB,SAAS;EACvE4B,WAAW,CAAC/B,MAAM,CAACI,aAAa,GAAG5B,YAAY,CAAC6B,cAAc,CAACC,KAAK,CAACC,SAAS;EAE9EwB,WAAW,CAAC/B,MAAM,CAAC0C,eAAe;EAChC;EACA,IAAA9B,WAAG,EAACpC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACgE,gBAAgB,CAAC,GAAG,IAAI,IAAI,CAAC;EACzEZ,WAAW,CAAC/B,MAAM,CAAC2C,gBAAgB,GACjC,IAAA7B,YAAI,EAACtC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACgE,gBAAgB,CAAC,GAAG,IAAI,IAAI,CAAC;EAE1EZ,WAAW,CAAC/B,MAAM,CAACQ,UAAU,GAC3BhC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACuD,gBAAgB,GAAGD,eAAe,IAAI,CAAC;EAC/EF,WAAW,CAAChC,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACQ,UAAU,GAAGuB,WAAW,CAAC/B,MAAM,CAACQ,UAAU;EACxE;EACAuB,WAAW,CAAC/B,MAAM,CAAC4C,gBAAgB,GACjCpE,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACkE,wBAAwB,IAAI,CAAC;EACrE;;EAEA,IAAMC,uBAAuB,GAC3BtE,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACwD,0BAA0B,GAAGnD,eAAe;EAEpF+C,WAAW,CAAC/B,MAAM,CAAC+C,cAAc,GAC/BD,uBAAuB,GAAG,CAAC,GACtBA,uBAAuB,GAAG,GAAG,GAAIf,WAAW,CAAC/B,MAAM,CAACQ,UAAU,GAC/D,CAAC,CAAC,CAAC;;EAETuB,WAAW,CAAC/B,MAAM,CAACgD,gBAAgB;EACjC;EACA,IAAApC,WAAG,EAACpC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACsE,iBAAiB,CAAC,GAAG,IAAI,IAAI,CAAC;EAC1ElB,WAAW,CAAC/B,MAAM,CAACiD,iBAAiB,GAClC,IAAAnC,YAAI,EAACtC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACsE,iBAAiB,CAAC,GAAG,IAAI,IAAI,CAAC;EAC3ElB,WAAW,CAAC/B,MAAM,CAACkD,aAAa,GAAGnB,WAAW,CAAC/B,MAAM,CAACgD,gBAAgB;;EAEtE;EACA,IAAMG,oBAAoB,GAAG3E,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAAC0D,cAAc,GAAGD,aAAa;EAEjGL,WAAW,CAAChC,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACoD,kBAAkB,GAAGD,oBAAoB,GAClEA,oBAAoB,GAAG,CAAC,GAAI,EAAE,GAC/B,CAAC;EACLpB,WAAW,CAAC/B,MAAM,CAACuB,UAAU,GAAGQ,WAAW,CAAChC,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACoD,kBAAkB;EAEhFrB,WAAW,CAAChC,OAAO,CAAC,CAAC,CAAC,CAACsD,oBAAoB,GACzC7E,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAAC4D,qBAAqB,GAAGD,iBAAiB,IAAI,CAAC;EACtFP,WAAW,CAAChC,OAAO,CAAC,CAAC,CAAC,CAACuD,kBAAkB,GACvC9E,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAAC8D,aAAa,GAAGD,YAAY,IAAI,CAAC;AAC3E,CAAC;AAEM,IAAMe,mBAAmB,GAAA1F,OAAA,CAAA0F,mBAAA,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAAkE;EAAA,IAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA;EAAA,IAA7DC,aAAa,GAAAT,KAAA,CAAbS,aAAa;IAAEzF,YAAY,GAAAgF,KAAA,CAAZhF,YAAY;IAAEC,eAAe,GAAA+E,KAAA,CAAf/E,eAAe;IAAEC,SAAS,GAAA8E,KAAA,CAAT9E,SAAS;EAC1F,IAAMC,YAAY,GAAGC,gBAAK,CAACC,iBAAiB;EAE5C,IAAMC,mBAAmB,GAAG,EAAA2E,uBAAA,GAAAhF,eAAe,CAACC,SAAS,CAAC,cAAA+E,uBAAA,uBAA1BA,uBAAA,CAA6B9E,YAAY,CAAC,CAACI,oBAAoB,KAAI,CAAC;EAChG,IAAMC,eAAe,GAAG,EAAA0E,uBAAA,GAAAjF,eAAe,CAACC,SAAS,CAAC,cAAAgF,uBAAA,uBAA1BA,uBAAA,CAA6B/E,YAAY,CAAC,CAACM,gBAAgB,KAAI,CAAC;EACxF,IAAMO,iBAAiB,GAAG,EAAAmE,uBAAA,GAAAlF,eAAe,CAACC,SAAS,CAAC,cAAAiF,uBAAA,uBAA1BA,uBAAA,CAA6BhF,YAAY,CAAC,CAACc,kBAAkB,KAAI,CAAC;EAC5F,IAAMyE,kBAAkB,GAAG,EAAAN,uBAAA,GAAAnF,eAAe,CAACC,SAAS,CAAC,cAAAkF,uBAAA,uBAA1BA,uBAAA,CAA6BjF,YAAY,CAAC,CAACyC,cAAc,KAAI,CAAC;EACzF,IAAM+C,iBAAiB,GAAG,EAAAN,uBAAA,GAAApF,eAAe,CAACC,SAAS,CAAC,cAAAmF,uBAAA,uBAA1BA,uBAAA,CAA6BlF,YAAY,CAAC,CAACyF,aAAa,KAAI,CAAC;EACvF,IAAMC,iBAAiB,GAAG,EAAAP,uBAAA,GAAArF,eAAe,CAACC,SAAS,CAAC,cAAAoF,uBAAA,uBAA1BA,uBAAA,CAA6BnF,YAAY,CAAC,CAACuC,aAAa,KAAI,CAAC;EACvF,IAAMoD,oBAAoB,GAAG,EAAAP,uBAAA,GAAAtF,eAAe,CAACC,SAAS,CAAC,cAAAqF,uBAAA,uBAA1BA,uBAAA,CAA6BpF,YAAY,CAAC,CAAC4F,gBAAgB,KAAI,CAAC;EAC7F,IAAMC,YAAY,GAAG,EAAAR,uBAAA,GAAAvF,eAAe,CAACC,SAAS,CAAC,cAAAsF,uBAAA,uBAA1BA,uBAAA,CAA6BrF,YAAY,CAAC,CAAC8F,aAAa,KAAI,CAAC;EAElF,IAAO3E,GAAG,GAAItB,YAAY,CAACE,SAAS,CAAC,CAA9BoB,GAAG;EACV,IAAIA,GAAG,IAAI,CAACmE,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACF,GAAG,CAACG,QAAQ,CAACH,GAAG,CAAC,EAAE;IAC7DmE,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACF,GAAG,CAACI,IAAI,CAACJ,GAAG,CAAC;EAC/C;EAEAmE,aAAa,CAACjE,MAAM,CAACA,MAAM,CAACG,SAAS,GAAG3B,YAAY,CAACE,SAAS,CAAC,CAACyB,SAAS;EACzE8D,aAAa,CAACjE,MAAM,CAACI,aAAa,GAAG5B,YAAY,CAAC6B,cAAc,CAACC,KAAK,CAACC,SAAS;;EAEhF;EACA0D,aAAa,CAACjE,MAAM,CAACQ,UAAU,GAC7BhC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACI,oBAAoB,GAAGD,mBAAmB,IAAI,CAAC;EACvFmF,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACQ,UAAU,GAAGyD,aAAa,CAACjE,MAAM,CAACQ,UAAU;EAE5E,IAAMkE,eAAe,GACnBlG,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACM,gBAAgB,GAAGD,eAAe,IAAI,CAAC;;EAE/E;EACA;EACAiF,aAAa,CAACjE,MAAM,CAACS,iBAAiB,GAAGiE,eAAe;EACxDT,aAAa,CAACjE,MAAM,CAACU,eAAe,GAAGgE,eAAe;;EAEtD;EACAT,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACiB,eAAe,GAAGyD,eAAe;;EAEjE;;EAEAT,aAAa,CAACjE,MAAM,CAAC0C,eAAe;EAClC;EACA,IAAA9B,WAAG,EAACpC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACgE,gBAAgB,CAAC,GAAG,IAAI,IAAI,CAAC;EACzEsB,aAAa,CAACjE,MAAM,CAAC2C,gBAAgB,GACnC,IAAA7B,YAAI,EAACtC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACgE,gBAAgB,CAAC,GAAG,IAAI,IAAI,CAAC;EAE1EsB,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACe,SAAS,GAAGkD,aAAa,CAACjE,MAAM,CAAC0C,eAAe;;EAEhF;EACA,IAAMiC,wBAAwB,GAC5BnG,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACc,kBAAkB,GAAGD,iBAAiB;EAE9EyE,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACsB,eAAe,GAAGqD,wBAAwB,GACrEA,wBAAwB,GAAG,CAAC,GAAI,EAAE,GACnC,CAAC;EACLV,aAAa,CAACjE,MAAM,CAACuB,UAAU,GAAG0C,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACsB,eAAe;;EAEjF;EACA,IAAMsD,wBAAwB,GAC5BpG,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACyC,cAAc,GAAG8C,kBAAkB;EAC3E,IAAMW,uBAAuB,GAC3BrG,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACyF,aAAa,GAAGD,iBAAiB;EAEzEF,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAAC8E,iBAAiB,GAAGC,IAAI,CAACC,KAAK,CAC5DJ,wBAAwB,GAAGA,wBAAwB,GAAG,EAAE,GAAG,CAC7D,CAAC;EACDX,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACmB,iBAAiB,GAAG4D,IAAI,CAACC,KAAK,CAC5DH,uBAAuB,GAAGA,uBAAuB,GAAG,EAAE,GAAG,CAC3D,CAAC;EAEDZ,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACkB,aAAa,GAC3C1C,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACuC,aAAa,GAAGmD,iBAAiB;EACzEJ,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACkF,cAAc,GAAGzG,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACuG,MAAM,IAAI,CAAC;EAC3FjB,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACoF,aAAa,GAAG3G,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACyG,KAAK,IAAI,CAAC;EACzFnB,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACsF,iBAAiB,GACvCpB,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACkF,cAAc,GAAGhB,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACoF,aAAa,GAAI,GAAG;EAE1FlB,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACuF,iBAAiB,GACxC9G,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAAC4F,gBAAgB,GAAGD,oBAAoB,IAAI,CAAC;EACpFL,aAAa,CAAClE,OAAO,CAAC,CAAC,CAAC,CAACuD,kBAAkB,GACzC9E,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAAC8F,aAAa,GAAGD,YAAY,IAAI,CAAC;AAC3E,CAAC;AAEM,IAAMe,iBAAiB,GAAA1H,OAAA,CAAA0H,iBAAA,GAAG,SAApBA,iBAAiBA,CAAAC,KAAA,EAAgE;EAAA,IAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA;EAAA,IAA3DC,WAAW,GAAAP,KAAA,CAAXO,WAAW;IAAEvH,YAAY,GAAAgH,KAAA,CAAZhH,YAAY;IAAEC,eAAe,GAAA+G,KAAA,CAAf/G,eAAe;IAAEC,SAAS,GAAA8G,KAAA,CAAT9G,SAAS;EACtF,IAAMC,YAAY,GAAGC,gBAAK,CAACoD,cAAc;EAEzC,IAAMC,eAAe,GAAG,EAAAwD,uBAAA,GAAAhH,eAAe,CAACC,SAAS,CAAC,cAAA+G,uBAAA,uBAA1BA,uBAAA,CAA6B9G,YAAY,CAAC,CAACuD,gBAAgB,KAAI,CAAC;EACxF,IAAMlD,eAAe,GACnB,EAAA0G,uBAAA,GAAAjH,eAAe,CAACC,SAAS,CAAC,cAAAgH,uBAAA,uBAA1BA,uBAAA,CAA6B/G,YAAY,CAAC,CAACwD,0BAA0B,KAAI,CAAC;EAC5E,IAAMC,aAAa,GAAG,EAAAuD,uBAAA,GAAAlH,eAAe,CAACC,SAAS,CAAC,cAAAiH,uBAAA,uBAA1BA,uBAAA,CAA6BhH,YAAY,CAAC,CAAC0D,cAAc,KAAI,CAAC;EACpF,IAAM2D,oBAAoB,GACxB,EAAAJ,uBAAA,GAAAnH,eAAe,CAACC,SAAS,CAAC,cAAAkH,uBAAA,uBAA1BA,uBAAA,CAA6BjH,YAAY,CAAC,CAAC4D,qBAAqB,KAAI,CAAC;EACvE,IAAMC,YAAY,GAAG,EAAAqD,uBAAA,GAAApH,eAAe,CAACC,SAAS,CAAC,cAAAmH,uBAAA,uBAA1BA,uBAAA,CAA6BlH,YAAY,CAAC,CAAC8D,aAAa,KAAI,CAAC;EAClF,IAAMwD,cAAc,GAAG,EAAAH,uBAAA,GAAArH,eAAe,CAACC,SAAS,CAAC,cAAAoH,uBAAA,uBAA1BA,uBAAA,CAA6BnH,YAAY,CAAC,CAACuH,UAAU,KAAI,CAAC;EACjF,IAAOpG,GAAG,GAAItB,YAAY,CAACE,SAAS,CAAC,CAA9BoB,GAAG;EACV,IAAIA,GAAG,IAAI,CAACiG,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACF,GAAG,CAACG,QAAQ,CAACH,GAAG,CAAC,EAAE;IAC3DiG,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACF,GAAG,CAACI,IAAI,CAACJ,GAAG,CAAC;EAC7C;EAEAiG,WAAW,CAAC/F,MAAM,CAACA,MAAM,CAACG,SAAS,GAAG3B,YAAY,CAACE,SAAS,CAAC,CAACyB,SAAS;EACvE4F,WAAW,CAAC/F,MAAM,CAACI,aAAa,GAAG5B,YAAY,CAAC6B,cAAc,CAACC,KAAK,CAACC,SAAS;;EAE9E;EACAwF,WAAW,CAAC/F,MAAM,CAAC0C,eAAe;EAChC;EACA,IAAA9B,WAAG,EAACpC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACgE,gBAAgB,CAAC,GAAG,IAAI,IAAI,CAAC;EACzEoD,WAAW,CAAC/F,MAAM,CAAC2C,gBAAgB,GACjC,IAAA7B,YAAI,EAACtC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACgE,gBAAgB,CAAC,GAAG,IAAI,IAAI,CAAC;EAE1EoD,WAAW,CAAC/F,MAAM,CAACQ,UAAU,GAC3BhC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACuD,gBAAgB,GAAGD,eAAe,IAAI,CAAC;EAC/E8D,WAAW,CAAC/F,MAAM,CAAC4C,gBAAgB,GACjCpE,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACkE,wBAAwB,IAAI,CAAC;EACrE;;EAEA,IAAMC,uBAAuB,GAC3BtE,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACwD,0BAA0B,GAAGnD,eAAe;EAEpF+G,WAAW,CAAC/F,MAAM,CAAC+C,cAAc,GAC/BD,uBAAuB,GAAG,CAAC,GACtBA,uBAAuB,GAAG,GAAG,IAAKiD,WAAW,CAAC/F,MAAM,CAACQ,UAAU,GAAGsC,uBAAuB,CAAC,GAC3F,CAAC,CAAC,CAAC;;EAETiD,WAAW,CAAC/F,MAAM,CAACgD,gBAAgB;EACjC;EACA,IAAApC,WAAG,EAACpC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACsE,iBAAiB,CAAC,GAAG,IAAI,IAAI,CAAC;EAC1E8C,WAAW,CAAC/F,MAAM,CAACiD,iBAAiB,GAClC,IAAAnC,YAAI,EAACtC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACsE,iBAAiB,CAAC,GAAG,IAAI,IAAI,CAAC;EAC3E8C,WAAW,CAAC/F,MAAM,CAACkD,aAAa,GAAG6C,WAAW,CAAC/F,MAAM,CAACgD,gBAAgB;EAEtE+C,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACQ,UAAU,GACtChC,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACuD,gBAAgB,GAAGD,eAAe,IAAI,CAAC;;EAE/E;EACA,IAAMkB,oBAAoB,GAAG3E,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAAC0D,cAAc,GAAGD,aAAa;EAEjG2D,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACoD,kBAAkB,GAAGD,oBAAoB,GAClEA,oBAAoB,GAAG,CAAC,GAAI,EAAE,GAC/B,CAAC;EAEL4C,WAAW,CAAC/F,MAAM,CAACuB,UAAU,GAAGwE,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACoD,kBAAkB;EAEhF2C,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACsD,oBAAoB,GACzC7E,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAAC4D,qBAAqB,GAAGyD,oBAAoB,IAAI,CAAC;EACzFD,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACuD,kBAAkB,GACvC9E,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAAC8D,aAAa,GAAGD,YAAY,IAAI,CAAC;;EAEzE;EACA,IAAM2D,oBAAoB,GACxB3H,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACuH,UAAU,IAAID,cAAc,IAAI,CAAC,CAAC;EAE1EF,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAACoG,oBAAoB,GAAGrB,IAAI,CAACC,KAAK,CAC7DmB,oBAAoB,GAAGA,oBAAoB,GAAG,EAAE,GAAG,CACrD,CAAC;EACDJ,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACsG,iBAAiB,GAAG7H,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACuG,MAAM,IAAI,CAAC;EAC5Fa,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACuG,gBAAgB,GAAG9H,YAAY,CAACE,SAAS,CAAC,CAACC,YAAY,CAAC,CAACyG,KAAK,IAAI,CAAC;EAC1FW,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACwG,oBAAoB,GACxCR,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACsG,iBAAiB,GAAGN,WAAW,CAAChG,OAAO,CAAC,CAAC,CAAC,CAACuG,gBAAgB,GAAI,GAAG;AAC9F,CAAC"}
|
package/dist/webinar/index.js
CHANGED
|
@@ -62,7 +62,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
62
62
|
updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
|
|
63
63
|
this.set('canManageWebcast', canManageWebcast);
|
|
64
64
|
},
|
|
65
|
-
version: "2.60.0-next.
|
|
65
|
+
version: "2.60.0-next.9"
|
|
66
66
|
});
|
|
67
67
|
var _default = exports.default = Webinar;
|
|
68
68
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -40,17 +40,17 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@babel/core": "^7.17.10",
|
|
42
42
|
"@types/jsdom": "^21",
|
|
43
|
-
"@webex/babel-config-legacy": "
|
|
44
|
-
"@webex/eslint-config-legacy": "
|
|
45
|
-
"@webex/jest-config-legacy": "
|
|
46
|
-
"@webex/legacy-tools": "
|
|
47
|
-
"@webex/plugin-meetings": "
|
|
48
|
-
"@webex/plugin-rooms": "
|
|
49
|
-
"@webex/test-helper-chai": "
|
|
50
|
-
"@webex/test-helper-mocha": "
|
|
51
|
-
"@webex/test-helper-mock-webex": "
|
|
52
|
-
"@webex/test-helper-retry": "
|
|
53
|
-
"@webex/test-helper-test-users": "
|
|
43
|
+
"@webex/babel-config-legacy": "0.0.0",
|
|
44
|
+
"@webex/eslint-config-legacy": "0.0.0",
|
|
45
|
+
"@webex/jest-config-legacy": "0.0.0",
|
|
46
|
+
"@webex/legacy-tools": "0.0.0",
|
|
47
|
+
"@webex/plugin-meetings": "2.60.0-next.9",
|
|
48
|
+
"@webex/plugin-rooms": "2.60.0-next.6",
|
|
49
|
+
"@webex/test-helper-chai": "2.60.0-next.6",
|
|
50
|
+
"@webex/test-helper-mocha": "2.60.0-next.6",
|
|
51
|
+
"@webex/test-helper-mock-webex": "2.60.0-next.6",
|
|
52
|
+
"@webex/test-helper-retry": "2.60.0-next.6",
|
|
53
|
+
"@webex/test-helper-test-users": "2.60.0-next.6",
|
|
54
54
|
"chai": "^4.3.4",
|
|
55
55
|
"chai-as-promised": "^7.1.1",
|
|
56
56
|
"eslint": "^8.24.0",
|
|
@@ -62,19 +62,19 @@
|
|
|
62
62
|
"typescript": "^4.7.4"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@webex/common": "
|
|
65
|
+
"@webex/common": "2.60.0-next.6",
|
|
66
66
|
"@webex/internal-media-core": "2.2.3",
|
|
67
|
-
"@webex/internal-plugin-conversation": "
|
|
68
|
-
"@webex/internal-plugin-device": "
|
|
69
|
-
"@webex/internal-plugin-llm": "
|
|
70
|
-
"@webex/internal-plugin-mercury": "
|
|
71
|
-
"@webex/internal-plugin-metrics": "
|
|
72
|
-
"@webex/internal-plugin-support": "
|
|
73
|
-
"@webex/internal-plugin-user": "
|
|
74
|
-
"@webex/media-helpers": "
|
|
75
|
-
"@webex/plugin-people": "
|
|
76
|
-
"@webex/plugin-rooms": "
|
|
77
|
-
"@webex/webex-core": "
|
|
67
|
+
"@webex/internal-plugin-conversation": "2.60.0-next.6",
|
|
68
|
+
"@webex/internal-plugin-device": "2.60.0-next.6",
|
|
69
|
+
"@webex/internal-plugin-llm": "2.60.0-next.6",
|
|
70
|
+
"@webex/internal-plugin-mercury": "2.60.0-next.6",
|
|
71
|
+
"@webex/internal-plugin-metrics": "2.60.0-next.6",
|
|
72
|
+
"@webex/internal-plugin-support": "2.60.0-next.6",
|
|
73
|
+
"@webex/internal-plugin-user": "2.60.0-next.6",
|
|
74
|
+
"@webex/media-helpers": "3.0.0-next.17",
|
|
75
|
+
"@webex/plugin-people": "2.60.0-next.6",
|
|
76
|
+
"@webex/plugin-rooms": "2.60.0-next.6",
|
|
77
|
+
"@webex/webex-core": "2.60.0-next.6",
|
|
78
78
|
"ampersand-collection": "^2.0.2",
|
|
79
79
|
"bowser": "^2.11.0",
|
|
80
80
|
"btoa": "^1.2.1",
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"uuid": "^3.3.2",
|
|
89
89
|
"webrtc-adapter": "^8.1.2"
|
|
90
90
|
},
|
|
91
|
-
"version": "2.60.0-next.
|
|
91
|
+
"version": "2.60.0-next.9"
|
|
92
92
|
}
|
|
@@ -247,138 +247,3 @@ export const emptyVideoTransmit = {
|
|
|
247
247
|
},
|
|
248
248
|
],
|
|
249
249
|
};
|
|
250
|
-
|
|
251
|
-
export const emptyVideoShareReceive = {
|
|
252
|
-
common: {
|
|
253
|
-
common: {
|
|
254
|
-
direction: 'inactive',
|
|
255
|
-
isMain: false, // Not avaliable
|
|
256
|
-
mariFecEnabled: true, // Not avaliable
|
|
257
|
-
mariQosEnabled: true, // Not avaliable
|
|
258
|
-
multistreamEnabled: true, // Not avaliable
|
|
259
|
-
},
|
|
260
|
-
dtlsBitrate: 0, // Not avaliable
|
|
261
|
-
dtlsPackets: 0, // Not avaliable
|
|
262
|
-
fecBitrate: 0, // Not avaliable
|
|
263
|
-
fecPackets: 0, // Not avaliable
|
|
264
|
-
maxBitrate: 0,
|
|
265
|
-
mediaHopByHopLost: 0,
|
|
266
|
-
rtcpBitrate: 0, // Not avaliable
|
|
267
|
-
rtcpPackets: 0, // Not avaliable
|
|
268
|
-
rtpBitrate: 0,
|
|
269
|
-
rtpHopByHopLost: 0,
|
|
270
|
-
rtpPackets: 0,
|
|
271
|
-
rtpRecovered: 0, // Not avaliable
|
|
272
|
-
rtxBitrate: 0, // Not avaliable
|
|
273
|
-
rtxPackets: 0, // Not avaliable
|
|
274
|
-
srtcpUnprotectErrors: 0, // Not avaliable
|
|
275
|
-
srtpUnprotectErrors: 0, // Not avaliable
|
|
276
|
-
stunBitrate: 0, // Not avaliable
|
|
277
|
-
stunPackets: 0, // Not avaliable
|
|
278
|
-
transportType: 'UDP',
|
|
279
|
-
},
|
|
280
|
-
streams: [
|
|
281
|
-
{
|
|
282
|
-
common: {
|
|
283
|
-
codec: 'H264',
|
|
284
|
-
concealedFrames: 0, // Not avaliable
|
|
285
|
-
csi: [],
|
|
286
|
-
maxConcealRunLength: 0, // Not avaliable
|
|
287
|
-
optimalBitrate: 0,
|
|
288
|
-
optimalFrameRate: 0,
|
|
289
|
-
receivedBitrate: 0,
|
|
290
|
-
receivedFrameRate: 0,
|
|
291
|
-
renderedFrameRate: 0, // Not avaliable
|
|
292
|
-
requestedBitrate: 0,
|
|
293
|
-
requestedFrameRate: 0,
|
|
294
|
-
rtpEndToEndLost: 0,
|
|
295
|
-
rtpJitter: 0,
|
|
296
|
-
rtpPackets: 0,
|
|
297
|
-
ssci: 0, // Not avaliable
|
|
298
|
-
},
|
|
299
|
-
h264CodecProfile: 'BP',
|
|
300
|
-
isActiveSpeaker: true,
|
|
301
|
-
optimalFrameSize: 0, // Not avaliable
|
|
302
|
-
receivedFrameSize: 0,
|
|
303
|
-
receivedHeight: 0,
|
|
304
|
-
receivedKeyFrames: 0,
|
|
305
|
-
receivedKeyFramesForRequest: 0,
|
|
306
|
-
receivedKeyFramesSourceChange: 0,
|
|
307
|
-
receivedKeyFramesUnknown: 0,
|
|
308
|
-
receivedWidth: 0,
|
|
309
|
-
requestedFrameSize: 0,
|
|
310
|
-
requestedKeyFrames: 0,
|
|
311
|
-
},
|
|
312
|
-
],
|
|
313
|
-
};
|
|
314
|
-
|
|
315
|
-
export const emptyVideoShareTransmit = {
|
|
316
|
-
// sceen sharing
|
|
317
|
-
common: {
|
|
318
|
-
availableBitrate: 0, // Not avaliable currently hardcoded
|
|
319
|
-
common: {
|
|
320
|
-
direction: 'inactive',
|
|
321
|
-
isMain: false,
|
|
322
|
-
mariFecEnabled: false, // Not avaliable
|
|
323
|
-
mariQosEnabled: false, // Not avaliable
|
|
324
|
-
multistreamEnabled: false, // Not avaliable
|
|
325
|
-
},
|
|
326
|
-
dtlsBitrate: 0, // Not avaliable
|
|
327
|
-
dtlsPackets: 0, // Not avaliable
|
|
328
|
-
fecBitrate: 0, // Not avaliable
|
|
329
|
-
fecPackets: 0, // TODO: check inbound-rtp// Not avaliable
|
|
330
|
-
maxBitrate: 0, // Currently hardcoded
|
|
331
|
-
queueDelay: 0, // outboundRtp.totalPacketSentDelay // TODO: check if totalInterFrameDelay/ packetSentDelay/ jitterBufferDalay
|
|
332
|
-
remoteJitter: 0, // remoteInboundRtp.jitter
|
|
333
|
-
remoteLossRate: 0, // comparedResults.lossRate
|
|
334
|
-
remoteReceiveRate: 0, // compareResults.packetsLost
|
|
335
|
-
roundTripTime: 0, // compareResults.roundTripTime
|
|
336
|
-
rtcpBitrate: 0, // Dont have access to it
|
|
337
|
-
rtcpPackets: 0, // Dont have access to rtcp
|
|
338
|
-
rtpBitrate: 0, // Dont have access
|
|
339
|
-
rtpPackets: 0, // outboundRtp.packetsSent
|
|
340
|
-
rtxBitrate: 0, // Dont have access to it
|
|
341
|
-
rtxPackets: 0, // Dont have access to it
|
|
342
|
-
stunBitrate: 0, // Dont have access to it
|
|
343
|
-
stunPackets: 0, // Dont have access to it
|
|
344
|
-
transportType: 'UDP', // TODO: need to calculate
|
|
345
|
-
},
|
|
346
|
-
streams: [
|
|
347
|
-
{
|
|
348
|
-
common: {
|
|
349
|
-
codec: 'H264',
|
|
350
|
-
csi: [],
|
|
351
|
-
duplicateSsci: 0, // Not Avaliable
|
|
352
|
-
requestedBitrate: 0, // TODO: from remote SDP
|
|
353
|
-
requestedFrames: 0, // TODO: from remote SDP
|
|
354
|
-
rtpPackets: 0, // same as rtp packets
|
|
355
|
-
ssci: 0,
|
|
356
|
-
transmittedBitrate: 0, // TODO: get in the candidate pair
|
|
357
|
-
transmittedFrameRate: 0, // TODO: from track info
|
|
358
|
-
},
|
|
359
|
-
h264CodecProfile: 'BP', // TODO: from localSDP
|
|
360
|
-
isAvatar: false, // Not Avaliable
|
|
361
|
-
isHardwareEncoded: false, // Not Avaliable
|
|
362
|
-
localConfigurationChanges: 2, // Not Avaliable
|
|
363
|
-
maxFrameQp: 0, // Not Avaliable
|
|
364
|
-
maxNoiseLevel: 0, // Not Avaliable
|
|
365
|
-
minRegionQp: 0, // Not Avaliable
|
|
366
|
-
remoteConfigurationChanges: 0, // Not Avaliable
|
|
367
|
-
requestedFrameSize: 0, // TODO: from remote SDP
|
|
368
|
-
requestedKeyFrames: 0, // outbound Fir request
|
|
369
|
-
transmittedFrameSize: 0, // Not Avaliable
|
|
370
|
-
transmittedHeight: 0,
|
|
371
|
-
transmittedKeyFrames: 0, // Key frames encoded
|
|
372
|
-
transmittedKeyFramesClient: 0, // Not Avaliable
|
|
373
|
-
transmittedKeyFramesConfigurationChange: 0, // Not Avaliable
|
|
374
|
-
transmittedKeyFramesFeedback: 0, // Not Avaliable
|
|
375
|
-
transmittedKeyFramesLocalDrop: 0, // Not Avaliable
|
|
376
|
-
transmittedKeyFramesOtherLayer: 0, // Not Avaliable
|
|
377
|
-
transmittedKeyFramesPeriodic: 0, // Not Avaliable
|
|
378
|
-
transmittedKeyFramesSceneChange: 0, // Not Avaliable
|
|
379
|
-
transmittedKeyFramesStartup: 0, // Not Avaliable
|
|
380
|
-
transmittedKeyFramesUnknown: 0, // Not Avaliable
|
|
381
|
-
transmittedWidth: 0,
|
|
382
|
-
},
|
|
383
|
-
],
|
|
384
|
-
};
|
package/src/meeting/index.ts
CHANGED
|
@@ -567,6 +567,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
567
567
|
meetingState: any;
|
|
568
568
|
permissionToken: string;
|
|
569
569
|
permissionTokenPayload: any;
|
|
570
|
+
permissionTokenReceivedLocalTime: number;
|
|
570
571
|
resourceId: any;
|
|
571
572
|
resourceUrl: string;
|
|
572
573
|
selfId: string;
|
|
@@ -3549,6 +3550,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
3549
3550
|
*/
|
|
3550
3551
|
public setPermissionTokenPayload(permissionToken: string) {
|
|
3551
3552
|
this.permissionTokenPayload = decode(permissionToken);
|
|
3553
|
+
this.permissionTokenReceivedLocalTime = new Date().getTime();
|
|
3552
3554
|
}
|
|
3553
3555
|
|
|
3554
3556
|
/**
|
|
@@ -7981,24 +7983,31 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
7981
7983
|
* Gets permission token expiry information including timeLeft, expiryTime, currentTime
|
|
7982
7984
|
* (from the time the function has been fired)
|
|
7983
7985
|
*
|
|
7984
|
-
* @returns {object}
|
|
7986
|
+
* @returns {object} permissionTokenExpiryInfo
|
|
7987
|
+
* @returns {number} permissionTokenExpiryInfo.timeLeft The time left for token to expire
|
|
7988
|
+
* @returns {number} permissionTokenExpiryInfo.expiryTime The expiry time of permission token from the server
|
|
7989
|
+
* @returns {number} permissionTokenExpiryInfo.currentTime The current time of the local machine
|
|
7985
7990
|
*/
|
|
7986
7991
|
public getPermissionTokenExpiryInfo() {
|
|
7987
7992
|
if (!this.permissionTokenPayload) {
|
|
7988
7993
|
return undefined;
|
|
7989
7994
|
}
|
|
7990
7995
|
|
|
7991
|
-
const
|
|
7996
|
+
const permissionTokenExpiryFromServer = Number(this.permissionTokenPayload.exp);
|
|
7997
|
+
const permissionTokenIssuedTimeFromServer = Number(this.permissionTokenPayload.iat);
|
|
7998
|
+
|
|
7999
|
+
const shiftInTime = this.permissionTokenReceivedLocalTime - permissionTokenIssuedTimeFromServer;
|
|
7992
8000
|
|
|
7993
8001
|
// using new Date instead of Date.now() to allow for accurate unit testing
|
|
7994
8002
|
// https://github.com/sinonjs/fake-timers/issues/321
|
|
7995
|
-
const
|
|
8003
|
+
const currentTime = new Date().getTime();
|
|
8004
|
+
|
|
8005
|
+
// adjusted time is calculated in case your machine time is wrong
|
|
8006
|
+
const adjustedCurrentTime = currentTime - shiftInTime;
|
|
7996
8007
|
|
|
7997
|
-
|
|
7998
|
-
// (permissionTokenExp is a epoch timestamp, not a time to live duration)
|
|
7999
|
-
const timeLeft = (permissionTokenExpValue - now) / 1000;
|
|
8008
|
+
const timeLeft = (permissionTokenExpiryFromServer - adjustedCurrentTime) / 1000;
|
|
8000
8009
|
|
|
8001
|
-
return {timeLeft, expiryTime:
|
|
8010
|
+
return {timeLeft, expiryTime: permissionTokenExpiryFromServer, currentTime};
|
|
8002
8011
|
}
|
|
8003
8012
|
|
|
8004
8013
|
/**
|