@webex/plugin-meetings 1.159.5 → 1.161.0
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/analyzer/analyzer.js.map +1 -1
- package/dist/analyzer/calculator.js.map +1 -1
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js.map +1 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/errors/captcha-error.js +3 -1
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +3 -1
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +3 -1
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +3 -1
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +3 -1
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +3 -1
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +3 -1
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +3 -1
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +3 -1
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +3 -1
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +9 -7
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +2 -2
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +4 -3
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +2 -2
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2 -2
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +3 -1
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +2 -2
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +2 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +6 -6
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +219 -219
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +1 -1
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/mqa-processor.js +2 -2
- package/dist/metrics/mqa-processor.js.map +1 -1
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.js.map +1 -1
- package/dist/peer-connection-manager/util.js.map +1 -1
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +4 -3
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/collection.js.map +1 -1
- package/dist/roap/handler.js.map +1 -1
- package/dist/roap/index.js +7 -7
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +2 -2
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.js.map +1 -1
- package/dist/roap/util.js.map +1 -1
- package/dist/stats/data.js.map +1 -1
- package/dist/stats/events.js.map +1 -1
- package/dist/stats/filter.js.map +1 -1
- package/dist/stats/history.js.map +1 -1
- package/dist/stats/index.js +126 -126
- package/dist/stats/index.js.map +1 -1
- package/dist/stats/metrics.js.map +1 -1
- package/dist/stats/stats.js.map +1 -1
- package/dist/stats/stream.js.map +1 -1
- package/dist/stats/transformer.js.map +1 -1
- package/dist/stats/util.js.map +1 -1
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +1 -1
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js.map +1 -1
- package/package.json +6 -6
- package/src/common/errors/webex-errors.js +1 -1
- package/src/locus-info/parser.js +2 -2
- package/src/meeting/index.js +1 -2
- package/src/meeting/util.js +2 -2
- package/src/meetings/index.js +554 -557
- package/src/roap/index.js +48 -48
- package/src/stats/index.js +142 -142
- package/src/statsAnalyzer/index.js +1 -1
package/dist/roap/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["request.js"],"names":["RoapRequest","localSdp","reachabilityData","window","localStorage","getItem","REACHABILITY","reachabilityResult","JSON","parse","length","reachability","e","LoggerProxy","logger","error","options","info","roapMessage","resolve","then","deviceUrl","webex","internal","device","url","body","usingResource","resourceId","correlationId","localMedias","attachRechabilityData","audioMuted","videoMuted","clientMediaPreferences","preferTranscoding","locusUrl","PARTICIPANT","sipUrl","services","waitForCatalog","get","LOCI","CALL","invitee","address","sipTarget","ParameterError","request","method","HTTP_VERBS","POST","uri","res","locus","roapSeq","seq","id","split","pop","fullState","lastActive","catch","err","locusSelfUrl","mediaId","meetingId","mediaUrl","MEDIA","messageType","Metrics","postEvent","event","eventType","MEDIA_REQUEST","PUT","deviceType","config","meetings","MEDIA_RESPONSE","mediaConnections","statusCode","data","parseLocusError","StatelessWebexPlugin"],"mappings":"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","sourcesContent":["\n/* global window */\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n PARTICIPANT,\n LOCI,\n CALL,\n MEDIA,\n HTTP_VERBS,\n REACHABILITY\n} from '../constants';\nimport Metrics from '../metrics';\nimport {eventType} from '../metrics/config';\nimport ParameterError from '../common/errors/parameter';\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Joins a meeting via ROAP\n * @param {Object} options\n * @returns {Promise} returns a promise that resolves/rejects whatever the request does\n */\n\n\n attachRechabilityData(localSdp) {\n const reachabilityData = window.localStorage.getItem(REACHABILITY.localStorage);\n\n if (reachabilityData) {\n try {\n const reachabilityResult = JSON.parse(reachabilityData);\n\n /* istanbul ignore else */\n if (reachabilityResult && Object.keys(reachabilityResult).length) {\n localSdp.reachability = reachabilityResult;\n }\n }\n catch (e) {\n LoggerProxy.logger.error(`Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`);\n }\n }\n\n return localSdp;\n }\n\n joinMeetingWithRoap(options) {\n LoggerProxy.logger.info('Roap:request#joinMeetingWithRoap --> Join locus with roap');\n LoggerProxy.logger.info(`Roap:request#joinMeetingWithRoap --> Local SDP: ${options.roapMessage}`);\n\n return Promise.resolve().then(async () => {\n const deviceUrl = this.webex.internal.device.url;\n let url = '';\n\n const body = {\n deviceUrl,\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n localMedias: [\n {\n localSdp: JSON.stringify(this.attachRechabilityData({\n roapMessage: options.roapMessage,\n audioMuted: false,\n videoMuted: false\n }))\n }\n ],\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true\n }\n };\n\n if (options.locusUrl) {\n url = `${options.locusUrl}/${PARTICIPANT}`;\n }\n else if (options.sipUrl) {\n try {\n await this.webex.internal.services.waitForCatalog('postauth');\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: options.sipTarget\n };\n }\n catch (e) {\n LoggerProxy.logger.error(`Roap:request#joinMeetingWithRoap --> ${e}`);\n throw (e);\n }\n }\n else {\n throw new ParameterError('Must provide a locusUrl or sipTarget');\n }\n\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: url,\n body\n })\n .then((res) => {\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n locus.id = locus.url.split('/').pop();\n LoggerProxy.logger.info(`Roap:request#joinMeetingWithRoap --> Joined locus [${locus.id}][${locus.fullState.lastActive}]`);\n\n return locus;\n })\n .catch((err) => {\n LoggerProxy.logger.error(`Roap:request#joinMeetingWithRoap --> failed with error: ${err}`);\n throw err;\n });\n });\n }\n\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {String} options.roapMessage\n * @param {String} options.locusId\n * @param {String} options.locusSelfId\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @returns {Promise} returns the response/failure of the request\n */\n sendRoap(options) {\n const {\n roapMessage, locusSelfUrl, mediaId, correlationId, meetingId\n } = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> Race Condition /call mediaID not present');\n }\n\n const mediaUrl = `${locusSelfUrl}/${MEDIA}`;\n const deviceUrl = this.webex.internal.device.url;\n\n LoggerProxy.logger.info(`Roap:request#sendRoap --> ${mediaUrl} \\n ${roapMessage.messageType} \\n seq:${roapMessage.seq}`);\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meetingId});\n\n return this.webex\n .request({\n uri: mediaUrl,\n method: HTTP_VERBS.PUT,\n body: {\n device: {\n url: deviceUrl,\n deviceType: this.config.meetings.deviceType\n },\n correlationId,\n localMedias: [\n {\n localSdp: JSON.stringify(this.attachRechabilityData({\n roapMessage,\n // eslint-disable-next-line no-warning-comments\n // TODO: check whats the need for video and audiomute\n audioMuted: !!options.audioMuted,\n videoMuted: !!options.videoMuted\n })),\n mediaId: options.mediaId\n }\n ],\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true\n }\n }\n })\n .then((res) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meetingId});\n\n // always it will be the first mediaConnection Object\n const mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> response:${JSON.stringify(mediaConnections, null, 2)}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections})\n };\n })\n .catch((err) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meetingId, data: {error: Metrics.parseLocusError(err, true)}});\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:${JSON.stringify(err, null, 2)}`);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> errorBody:${JSON.stringify(roapMessage, null, 2)} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"names":["RoapRequest","localSdp","reachabilityData","window","localStorage","getItem","REACHABILITY","reachabilityResult","JSON","parse","length","reachability","e","LoggerProxy","logger","error","options","info","roapMessage","resolve","then","deviceUrl","webex","internal","device","url","body","usingResource","resourceId","correlationId","localMedias","attachRechabilityData","audioMuted","videoMuted","clientMediaPreferences","preferTranscoding","locusUrl","PARTICIPANT","sipUrl","services","waitForCatalog","get","LOCI","CALL","invitee","address","sipTarget","ParameterError","request","method","HTTP_VERBS","POST","uri","res","locus","roapSeq","seq","id","split","pop","fullState","lastActive","catch","err","locusSelfUrl","mediaId","meetingId","mediaUrl","MEDIA","messageType","Metrics","postEvent","event","eventType","MEDIA_REQUEST","PUT","deviceType","config","meetings","MEDIA_RESPONSE","mediaConnections","statusCode","data","parseLocusError","StatelessWebexPlugin"],"sources":["request.js"],"sourcesContent":["\n/* global window */\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n PARTICIPANT,\n LOCI,\n CALL,\n MEDIA,\n HTTP_VERBS,\n REACHABILITY\n} from '../constants';\nimport Metrics from '../metrics';\nimport {eventType} from '../metrics/config';\nimport ParameterError from '../common/errors/parameter';\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Joins a meeting via ROAP\n * @param {Object} options\n * @returns {Promise} returns a promise that resolves/rejects whatever the request does\n */\n\n\n attachRechabilityData(localSdp) {\n const reachabilityData = window.localStorage.getItem(REACHABILITY.localStorage);\n\n if (reachabilityData) {\n try {\n const reachabilityResult = JSON.parse(reachabilityData);\n\n /* istanbul ignore else */\n if (reachabilityResult && Object.keys(reachabilityResult).length) {\n localSdp.reachability = reachabilityResult;\n }\n }\n catch (e) {\n LoggerProxy.logger.error(`Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`);\n }\n }\n\n return localSdp;\n }\n\n joinMeetingWithRoap(options) {\n LoggerProxy.logger.info('Roap:request#joinMeetingWithRoap --> Join locus with roap');\n LoggerProxy.logger.info(`Roap:request#joinMeetingWithRoap --> Local SDP: ${options.roapMessage}`);\n\n return Promise.resolve().then(async () => {\n const deviceUrl = this.webex.internal.device.url;\n let url = '';\n\n const body = {\n deviceUrl,\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n localMedias: [\n {\n localSdp: JSON.stringify(this.attachRechabilityData({\n roapMessage: options.roapMessage,\n audioMuted: false,\n videoMuted: false\n }))\n }\n ],\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true\n }\n };\n\n if (options.locusUrl) {\n url = `${options.locusUrl}/${PARTICIPANT}`;\n }\n else if (options.sipUrl) {\n try {\n await this.webex.internal.services.waitForCatalog('postauth');\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: options.sipTarget\n };\n }\n catch (e) {\n LoggerProxy.logger.error(`Roap:request#joinMeetingWithRoap --> ${e}`);\n throw (e);\n }\n }\n else {\n throw new ParameterError('Must provide a locusUrl or sipTarget');\n }\n\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: url,\n body\n })\n .then((res) => {\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n locus.id = locus.url.split('/').pop();\n LoggerProxy.logger.info(`Roap:request#joinMeetingWithRoap --> Joined locus [${locus.id}][${locus.fullState.lastActive}]`);\n\n return locus;\n })\n .catch((err) => {\n LoggerProxy.logger.error(`Roap:request#joinMeetingWithRoap --> failed with error: ${err}`);\n throw err;\n });\n });\n }\n\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {String} options.roapMessage\n * @param {String} options.locusId\n * @param {String} options.locusSelfId\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @returns {Promise} returns the response/failure of the request\n */\n sendRoap(options) {\n const {\n roapMessage, locusSelfUrl, mediaId, correlationId, meetingId\n } = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> Race Condition /call mediaID not present');\n }\n\n const mediaUrl = `${locusSelfUrl}/${MEDIA}`;\n const deviceUrl = this.webex.internal.device.url;\n\n LoggerProxy.logger.info(`Roap:request#sendRoap --> ${mediaUrl} \\n ${roapMessage.messageType} \\n seq:${roapMessage.seq}`);\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meetingId});\n\n return this.webex\n .request({\n uri: mediaUrl,\n method: HTTP_VERBS.PUT,\n body: {\n device: {\n url: deviceUrl,\n deviceType: this.config.meetings.deviceType\n },\n correlationId,\n localMedias: [\n {\n localSdp: JSON.stringify(this.attachRechabilityData({\n roapMessage,\n // eslint-disable-next-line no-warning-comments\n // TODO: check whats the need for video and audiomute\n audioMuted: !!options.audioMuted,\n videoMuted: !!options.videoMuted\n })),\n mediaId: options.mediaId\n }\n ],\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true\n }\n }\n })\n .then((res) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meetingId});\n\n // always it will be the first mediaConnection Object\n const mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> response:${JSON.stringify(mediaConnections, null, 2)}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections})\n };\n })\n .catch((err) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meetingId, data: {error: Metrics.parseLocusError(err, true)}});\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:${JSON.stringify(err, null, 2)}`);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> errorBody:${JSON.stringify(roapMessage, null, 2)} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"],"mappings":"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"}
|
package/dist/roap/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["shouldStep","roap","meeting","messageType","msg","_OFFER_","remote","shareStatus","_REQUESTED_","mediaProperties","peerConnection","_ANSWER_","LoggerProxy","logger","log","signalingState","handleTransition","value","signal","ROAP","ROAP_STATE","INIT","ROAP_SIGNAL","RX_OFFER","WAIT_TX_ANSWER","TX_OFFER","WAIT_RX_ANSWER","WAIT_RX_OFFER","RX_ANSWER","mediaId","WAIT_TX_OK","error","GLARE","WAIT_TX_OFFER","TX_ANSWER","WAIT_RX_OK","TX_OK","RX_OK","ERROR","RoapStateMachine","createState","RoapState","StateMachine","factory","init","transitions","name","ROAP_TRANSITIONS","STEP","from","to","state","methods","onAfterStep","transition"],"sources":["state.js"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ROAP, _OFFER_, _ANSWER_, _REQUESTED_} from '../constants';\n\nconst shouldStep = (roap, meeting) => {\n const {messageType} = roap.msg;\n\n if (meeting) {\n if (messageType === _OFFER_ && roap.remote && meeting.shareStatus === _REQUESTED_) {\n // The peer-connection is waiting for answer but got an offer Reset. Try to\n // send the offer later after you accept the answer\n return false;\n }\n // Assuming the mercury event has come first before the response for the event\n // we have to wait for the response and trigger the ROAP request later on\n if (!meeting.mediaProperties.peerConnection && messageType === _ANSWER_) {\n return false;\n }\n }\n LoggerProxy.logger.log('Roap:state#shouldStep --> RoapStateMachine: PeerConnectionState, ', meeting.mediaProperties.peerConnection.signalingState);\n LoggerProxy.logger.log('Roap:state#shouldStep --> RoapStateMachine: success save proceeding with transition, ', roap.msg);\n\n return true;\n};\n\nconst handleTransition = (value, signal, meeting) => {\n LoggerProxy.logger.log(`Roap:state#handleTransition --> current ${value} to ${signal}`);\n\n switch (value) {\n case ROAP.ROAP_STATE.INIT:\n if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {\n return ROAP.ROAP_STATE.WAIT_TX_ANSWER;\n }\n if (signal === ROAP.ROAP_SIGNAL.TX_OFFER) {\n return ROAP.ROAP_STATE.WAIT_RX_ANSWER;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_OFFER:\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_ANSWER:\n if (signal === ROAP.ROAP_SIGNAL.RX_ANSWER) {\n // There is a race condition where the /call response comes after mercury event from the server\n // As mercury sends roap event if it didnt get back a response. We can send the roap ok after that\n if (meeting.mediaId) {\n return ROAP.ROAP_STATE.WAIT_TX_OK;\n }\n LoggerProxy.logger.error('Roap:state#handleTransition --> Race Condition no mediaId, continuing.');\n\n return value;\n }\n\n if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {\n return ROAP.ROAP_STATE.GLARE;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_OFFER:\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_ANSWER:\n if (signal === ROAP.ROAP_SIGNAL.TX_ANSWER) {\n return ROAP.ROAP_STATE.WAIT_RX_OK;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_OK:\n if (signal === ROAP.ROAP_SIGNAL.TX_OK) {\n return ROAP.ROAP_STATE.INIT;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_OK:\n if (signal === ROAP.ROAP_SIGNAL.RX_OK) {\n return ROAP.ROAP_STATE.INIT;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.ERROR:\n // eslint-disable-next-line no-warning-comments\n // TODO: resolve error state. Add a signal constant and handle the cleanup\n return ROAP.ROAP_STATE.INIT;\n\n case ROAP.ROAP_STATE.GLARE:\n return ROAP.ROAP_STATE.WAIT_RX_ANSWER;\n default:\n return value;\n }\n};\n\nconst RoapStateMachine = {\n /**\n * @param {Roap} roapRef\n * initializes the state machine\n * @returns {StateMachine} an instance of a state machine\n */\n createState() {\n const RoapState = StateMachine.factory({\n init: ROAP.ROAP_STATE.INIT,\n transitions: [\n {\n name: ROAP.ROAP_TRANSITIONS.STEP,\n from: '*',\n /**\n * Method to handle the transitions between states\n * @param {String} signal\n * @param {Meeting} meeting instance of a Meeting\n * @param {Object} roap\n * @returns {String} new state value\n */\n to(signal, meeting, roap) {\n const value = this.state;\n\n if (!shouldStep(roap, meeting)) {\n return value;\n }\n\n return handleTransition(value, signal, meeting);\n }\n }\n ],\n methods: {\n /**\n * Event that fires after we've transitioned to a new state\n * @param {Object} transition\n * @returns {null}\n */\n onAfterStep(transition) {\n LoggerProxy.logger.log(\n `Roap:state#onAfterStep --> RoapStateMachine->onAfterStep#fired! State changed from '${transition.from}' to '${\n transition.to\n }' with transition '${transition.transition}''.`\n );\n }\n }\n });\n\n return new RoapState();\n }\n};\n\nexport default RoapStateMachine;\n"],"mappings":"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"}
|
package/dist/roap/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["RoapUtil","ROAP_ANSWER","_ANSWER_","toLowerCase","shouldHandleMedia","meeting","offer","mediaProperties","peerConnection","signalingState","SDP","HAVE_LOCAL_OFFER","handleError","pc","PeerConnectionManager","rollBackLocalDescription","then","resolve","catch","err","LoggerProxy","logger","error","reject","findError","messageType","errorType","type","ROAP","RECEIVE_ROAP_MSG","SEND_ROAP_MSG","_ERROR_","_CONFLICT_","ensureMeeting","SEND_ROAP_MSG_SUCCESS","updatePeerConnection","session","offerSdp","OFFER","sdps","meetingId","id","remoteQualityLevel","res","roap","lastRoapOffer","setRemoteDescription","info","correlationId","ParameterError","setRemoteSessionDetails","ANSWER","seq","locusId","locusSelfId","locusInfo","self","mediaId"],"sources":["util.js"],"sourcesContent":["\nimport PeerConnectionManager from '../peer-connection-manager';\nimport {\n _ANSWER_,\n _ERROR_,\n _CONFLICT_,\n ROAP,\n SDP\n} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport ParameterError from '../common/errors/parameter';\n\nconst RoapUtil = {};\nconst ROAP_ANSWER = _ANSWER_.toLowerCase();\n\nRoapUtil.shouldHandleMedia = (meeting) => {\n const offer =\n meeting.mediaProperties.peerConnection &&\n meeting.mediaProperties.peerConnection.signalingState === SDP.HAVE_LOCAL_OFFER;\n\n if (offer) {\n return false;\n }\n\n return true;\n};\n\nRoapUtil.handleError = (pc) =>\n PeerConnectionManager.rollBackLocalDescription({peerConnection: pc})\n .then(() => Promise.resolve(true))\n .catch((err) => {\n LoggerProxy.logger.error(`Roap:util#handleError --> ${err}`);\n\n return Promise.reject(err);\n });\n\nRoapUtil.findError = (messageType, errorType, type) =>\n (type === ROAP.RECEIVE_ROAP_MSG || type === ROAP.SEND_ROAP_MSG) && messageType === _ERROR_ && errorType === _CONFLICT_;\n\nRoapUtil.ensureMeeting = (meeting, type) => {\n if (type === ROAP.RECEIVE_ROAP_MSG || type === ROAP.SEND_ROAP_MSG || type === ROAP.SEND_ROAP_MSG_SUCCESS) {\n if (!meeting) {\n return false;\n }\n }\n\n return true;\n};\n\nRoapUtil.updatePeerConnection = (meeting, session) => PeerConnectionManager.updatePeerConnection({\n offerSdp: session.OFFER.sdps,\n peerConnection: meeting.mediaProperties.peerConnection\n},\n{\n meetingId: meeting.id,\n remoteQualityLevel: meeting.mediaProperties.remoteQualityLevel\n})\n .then((res) => {\n meeting.roap.lastRoapOffer = session.OFFER.sdps;\n\n return res;\n });\n\n\nRoapUtil.setRemoteDescription = (meeting, session) => {\n LoggerProxy.logger.info(`Roap:util#setRemoteDescription --> Transmit WAIT_TX_OK, correlationId: ${meeting.correlationId}`);\n if (!(meeting && (meeting.mediaProperties.peerConnection))) {\n LoggerProxy.logger.error(`Roap:util#setRemoteDescription --> DANGER no media or screen peer connection, correlationId: ${meeting.correlationId}`);\n\n return Promise.reject(new ParameterError('Must provide a media or screen peer connection'));\n }\n\n return PeerConnectionManager.setRemoteSessionDetails(\n meeting.mediaProperties.peerConnection,\n ROAP_ANSWER,\n session.ANSWER.sdps[0],\n meeting.id\n ).then(() => {\n LoggerProxy.logger.info(`Roap:util#setRemoteDescription --> Success for correlationId: ${meeting.correlationId}`);\n\n return {\n seq: session.ANSWER.seq,\n locusId: meeting.locusId,\n locusSelfId: meeting.locusInfo.self.id,\n mediaId: meeting.mediaId,\n correlationId: meeting.correlationId\n };\n })\n .catch((err) => {\n LoggerProxy.logger.error(`Roap:util#setRemoteDescription --> ${err}`);\n throw err;\n });\n};\n\nexport default RoapUtil;\n"],"mappings":"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"}
|
package/dist/stats/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["WebRTCData","data","id","uuid","v4","flat","forEach","key","DEFAULT_OMISSION_DATA_KEYS"],"sources":["data.js"],"sourcesContent":["import uuid from 'uuid';\nimport {isEmpty, omit} from 'lodash';\n\nimport {DEFAULT_OMISSION_DATA_KEYS} from '../constants';\n\n// TODO: Break this up a bit more, so that consumers aren't calling data.data.getData()\n/**\n * @class WebRTCData\n */\nexport default class WebRTCData {\n /**\n * @param {Object} data\n */\n constructor(data) {\n this.data = data;\n this.id = uuid.v4();\n }\n\n /**\n * get omitted rtc/rtcp/rtp/track/transport/candidate data with omitted data (default)\n * @returns {Object}\n */\n omit() {\n const flat = {};\n\n Object.keys(this.data).forEach((key) => {\n flat[key] = omit(this.data[key], DEFAULT_OMISSION_DATA_KEYS);\n });\n\n return flat;\n }\n\n /**\n * returns if the data is empty\n * @returns {Boolean};\n */\n isEmpty() {\n return isEmpty(this.data);\n }\n\n /**\n * get the unique id for this specific stat pull\n * @returns {String};\n */\n getId() {\n return this.id;\n }\n\n /**\n * get the transformed data\n * @returns {Object}\n */\n getData() {\n return this.data;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;AAGA;;AAEA;;AACA;AACA;AACA;IACqBA,U;EACnB;AACF;AACA;EACE,oBAAYC,IAAZ,EAAkB;IAAA;IAChB,KAAKA,IAAL,GAAYA,IAAZ;IACA,KAAKC,EAAL,GAAUC,cAAKC,EAAL,EAAV;EACD;EAED;AACF;AACA;AACA;;;;;WACE,gBAAO;MAAA;;MACL,IAAMC,IAAI,GAAG,EAAb;MAEA,mBAAY,KAAKJ,IAAjB,EAAuBK,OAAvB,CAA+B,UAACC,GAAD,EAAS;QACtCF,IAAI,CAACE,GAAD,CAAJ,GAAY,oBAAK,KAAI,CAACN,IAAL,CAAUM,GAAV,CAAL,EAAqBC,qCAArB,CAAZ;MACD,CAFD;MAIA,OAAOH,IAAP;IACD;IAED;AACF;AACA;AACA;;;;WACE,mBAAU;MACR,OAAO,uBAAQ,KAAKJ,IAAb,CAAP;IACD;IAED;AACF;AACA;AACA;;;;WACE,iBAAQ;MACN,OAAO,KAAKC,EAAZ;IACD;IAED;AACF;AACA;AACA;;;;WACE,mBAAU;MACR,OAAO,KAAKD,IAAZ;IACD"}
|
package/dist/stats/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["events.js"],"names":["operateEvent","operate","type","keys","stat","kind","foundMatch","found","some","key","match","data","StatsEvents","series","callback","MEETINGS","first","sendRemainStopped","recvRemainStopped","getData","operator","EVENT_TYPES","LOCAL","DEFAULT_EVENT_AUDIO_SEND_KEYS","EVENT_STATS_MAP","BYTES_SENT","AUDIO","DEFAULT_EVENT_VIDEO_SEND_KEYS","VIDEO","REMOTE","DEFAULT_EVENT_VIDEO_RECEIVE_KEYS","BYTES_RECEIVED","DEFAULT_EVENT_AUDIO_RECEIVE_KEYS","somethingMatched","find","element","get","length","fiveSecondsData","getSlice","prop","rtpOutAudio","rtpInAudio","rtpInVideo","rtpOutVideo","sendAnalysis","StatsAnalyzer","analyze","analysisKeys","check","ANALYSIS_CHECKS","INCREASING","receiveAnalysis","valid","bytesSent","reports","ret","stop","bytesReceived","start"],"mappings":"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","sourcesContent":["import StatsAnalyzer from '../analyzer/analyzer';\nimport {\n DEFAULT_EVENT_VIDEO_SEND_KEYS,\n DEFAULT_EVENT_AUDIO_SEND_KEYS,\n DEFAULT_EVENT_AUDIO_RECEIVE_KEYS,\n DEFAULT_EVENT_VIDEO_RECEIVE_KEYS,\n EVENT_TYPES,\n EVENT_STATS_MAP,\n MEETINGS,\n AUDIO,\n VIDEO,\n ANALYSIS_CHECKS\n} from '../constants';\n\n/**\n * @param {Object} operate the filtered, parsed, converted, transformed, simplified data point to check against\n * @param {String} type - local or remote\n * @param {String} keys - the stat keys for types of stats defined by DEFAULT_TRANSFORM_REGEX\n * @param {String} stat - the accessor to get the actual stat\n * @param {String} kind - audio or video\n * @returns {Object} always whatever the first sentFirstVideoBytes were, in the past or if it happened now, or undefined if never\n * @private\n * @memberof StatsEvents\n */\nconst operateEvent = (operate, type, keys, stat, kind) => {\n const foundMatch = {};\n\n foundMatch.found = keys.some((key) => {\n if (operate[key] && operate[key][stat] && operate[key][stat] > 0) {\n foundMatch.match = {\n type,\n key,\n data: operate[key],\n stat,\n kind\n };\n\n return true;\n }\n\n return false;\n });\n\n return foundMatch;\n};\n\n/**\n * @export\n * @class StatsEvents\n */\nexport default class StatsEvents {\n namespace = MEETINGS;\n\n /**\n * constructs an instance\n * @constructor\n * @param {StatsHistory} series\n * @param {Function} callback\n * @memberof StatsEvents\n */\n constructor(series = null, callback = () => {}) {\n /**\n * @instance\n * @type {StatsHistory}\n * @private\n * @memberof StatsEvents\n */\n this.series = series;\n /**\n * @instance\n * @type {Function}\n * @private\n * @memberof StatsEvents\n */\n this.callback = callback;\n /**\n * @instance\n * @type {WebRTCData}\n * @private\n * @memberof StatsEvents\n */\n this.first = null;\n /**\n * @instance\n * @type {Boolean}\n * @private\n * @memberof StatsEvents\n */\n this.sendRemainStopped = false;\n /**\n * @instance\n * @type {Boolean}\n * @private\n * @memberof StatsEvents\n */\n this.recvRemainStopped = false;\n }\n\n /**\n * looks for data starting to flow through\n * @param {WebRTCData} data\n * @returns {Object}\n */\n start(data) {\n if (data && data.data && data.data.getData()) {\n const operate = data.data.getData();\n\n if (operate && !this.first) {\n const operator = [\n operateEvent(operate, EVENT_TYPES.LOCAL, DEFAULT_EVENT_AUDIO_SEND_KEYS, EVENT_STATS_MAP.BYTES_SENT, AUDIO),\n operateEvent(operate, EVENT_TYPES.LOCAL, DEFAULT_EVENT_VIDEO_SEND_KEYS, EVENT_STATS_MAP.BYTES_SENT, VIDEO),\n operateEvent(operate, EVENT_TYPES.REMOTE, DEFAULT_EVENT_VIDEO_RECEIVE_KEYS, EVENT_STATS_MAP.BYTES_RECEIVED, VIDEO),\n operateEvent(operate, EVENT_TYPES.REMOTE, DEFAULT_EVENT_AUDIO_RECEIVE_KEYS, EVENT_STATS_MAP.BYTES_RECEIVED, AUDIO)\n ];\n const somethingMatched = operator.find((element) => element && element.found && element.match);\n\n if (somethingMatched) {\n this.first = somethingMatched.match;\n this.callback(this.first);\n\n return somethingMatched;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Looks for data to stop coming through\n * @returns {Object}\n */\n stop() {\n if (!this.series || this.series.get().length < 5) {\n return null;\n }\n const fiveSecondsData = this.series.getSlice(5);\n const prop = fiveSecondsData[0] && fiveSecondsData[0].rtpOutAudio || fiveSecondsData[0].rtpInAudio || fiveSecondsData[0].rtpInVideo || fiveSecondsData[0].rtpOutVideo;\n const sendAnalysis = StatsAnalyzer.analyze(fiveSecondsData, {analysisKeys: [{key: EVENT_STATS_MAP.BYTES_SENT, check: ANALYSIS_CHECKS.INCREASING, prop}]});\n const receiveAnalysis = StatsAnalyzer.analyze(fiveSecondsData, {analysisKeys: [{key: EVENT_STATS_MAP.BYTES_RECEIVED, check: ANALYSIS_CHECKS.INCREASING, prop}]});\n\n if (!sendAnalysis.valid && sendAnalysis.data.bytesSent.reports.length > 0) {\n if (!this.sendRemainStopped) {\n const ret = {stop: true, stat: EVENT_STATS_MAP.BYTES_SENT};\n\n this.callback(ret);\n this.sendRemainStopped = true;\n this.first = null;\n\n return ret;\n }\n }\n else if (sendAnalysis.valid && sendAnalysis.data.bytesSent.reports.length > 0) {\n this.sendRemainStopped = false;\n }\n if (!receiveAnalysis.valid && receiveAnalysis.data.bytesReceived.reports.length > 0) {\n if (!this.recvRemainStopped) {\n const ret = {stop: true, stat: EVENT_STATS_MAP.BYTES_RECEIVED};\n\n this.callback(ret);\n this.recvRemainStopped = true;\n this.first = null;\n\n return ret;\n }\n }\n else if (receiveAnalysis.valid && receiveAnalysis.data.bytesReceived.reports.length > 0) {\n this.recvRemainStopped = false;\n }\n\n return null;\n }\n\n /**\n * handles all the types of events that need to be sent when they happen from getStats API\n * @param {WebRTCData} data\n * @returns {Object}\n */\n event(data) {\n return {\n start: this.start(data),\n stop: this.stop()\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"names":["operateEvent","operate","type","keys","stat","kind","foundMatch","found","some","key","match","data","StatsEvents","series","callback","MEETINGS","first","sendRemainStopped","recvRemainStopped","getData","operator","EVENT_TYPES","LOCAL","DEFAULT_EVENT_AUDIO_SEND_KEYS","EVENT_STATS_MAP","BYTES_SENT","AUDIO","DEFAULT_EVENT_VIDEO_SEND_KEYS","VIDEO","REMOTE","DEFAULT_EVENT_VIDEO_RECEIVE_KEYS","BYTES_RECEIVED","DEFAULT_EVENT_AUDIO_RECEIVE_KEYS","somethingMatched","find","element","get","length","fiveSecondsData","getSlice","prop","rtpOutAudio","rtpInAudio","rtpInVideo","rtpOutVideo","sendAnalysis","StatsAnalyzer","analyze","analysisKeys","check","ANALYSIS_CHECKS","INCREASING","receiveAnalysis","valid","bytesSent","reports","ret","stop","bytesReceived","start"],"sources":["events.js"],"sourcesContent":["import StatsAnalyzer from '../analyzer/analyzer';\nimport {\n DEFAULT_EVENT_VIDEO_SEND_KEYS,\n DEFAULT_EVENT_AUDIO_SEND_KEYS,\n DEFAULT_EVENT_AUDIO_RECEIVE_KEYS,\n DEFAULT_EVENT_VIDEO_RECEIVE_KEYS,\n EVENT_TYPES,\n EVENT_STATS_MAP,\n MEETINGS,\n AUDIO,\n VIDEO,\n ANALYSIS_CHECKS\n} from '../constants';\n\n/**\n * @param {Object} operate the filtered, parsed, converted, transformed, simplified data point to check against\n * @param {String} type - local or remote\n * @param {String} keys - the stat keys for types of stats defined by DEFAULT_TRANSFORM_REGEX\n * @param {String} stat - the accessor to get the actual stat\n * @param {String} kind - audio or video\n * @returns {Object} always whatever the first sentFirstVideoBytes were, in the past or if it happened now, or undefined if never\n * @private\n * @memberof StatsEvents\n */\nconst operateEvent = (operate, type, keys, stat, kind) => {\n const foundMatch = {};\n\n foundMatch.found = keys.some((key) => {\n if (operate[key] && operate[key][stat] && operate[key][stat] > 0) {\n foundMatch.match = {\n type,\n key,\n data: operate[key],\n stat,\n kind\n };\n\n return true;\n }\n\n return false;\n });\n\n return foundMatch;\n};\n\n/**\n * @export\n * @class StatsEvents\n */\nexport default class StatsEvents {\n namespace = MEETINGS;\n\n /**\n * constructs an instance\n * @constructor\n * @param {StatsHistory} series\n * @param {Function} callback\n * @memberof StatsEvents\n */\n constructor(series = null, callback = () => {}) {\n /**\n * @instance\n * @type {StatsHistory}\n * @private\n * @memberof StatsEvents\n */\n this.series = series;\n /**\n * @instance\n * @type {Function}\n * @private\n * @memberof StatsEvents\n */\n this.callback = callback;\n /**\n * @instance\n * @type {WebRTCData}\n * @private\n * @memberof StatsEvents\n */\n this.first = null;\n /**\n * @instance\n * @type {Boolean}\n * @private\n * @memberof StatsEvents\n */\n this.sendRemainStopped = false;\n /**\n * @instance\n * @type {Boolean}\n * @private\n * @memberof StatsEvents\n */\n this.recvRemainStopped = false;\n }\n\n /**\n * looks for data starting to flow through\n * @param {WebRTCData} data\n * @returns {Object}\n */\n start(data) {\n if (data && data.data && data.data.getData()) {\n const operate = data.data.getData();\n\n if (operate && !this.first) {\n const operator = [\n operateEvent(operate, EVENT_TYPES.LOCAL, DEFAULT_EVENT_AUDIO_SEND_KEYS, EVENT_STATS_MAP.BYTES_SENT, AUDIO),\n operateEvent(operate, EVENT_TYPES.LOCAL, DEFAULT_EVENT_VIDEO_SEND_KEYS, EVENT_STATS_MAP.BYTES_SENT, VIDEO),\n operateEvent(operate, EVENT_TYPES.REMOTE, DEFAULT_EVENT_VIDEO_RECEIVE_KEYS, EVENT_STATS_MAP.BYTES_RECEIVED, VIDEO),\n operateEvent(operate, EVENT_TYPES.REMOTE, DEFAULT_EVENT_AUDIO_RECEIVE_KEYS, EVENT_STATS_MAP.BYTES_RECEIVED, AUDIO)\n ];\n const somethingMatched = operator.find((element) => element && element.found && element.match);\n\n if (somethingMatched) {\n this.first = somethingMatched.match;\n this.callback(this.first);\n\n return somethingMatched;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Looks for data to stop coming through\n * @returns {Object}\n */\n stop() {\n if (!this.series || this.series.get().length < 5) {\n return null;\n }\n const fiveSecondsData = this.series.getSlice(5);\n const prop = fiveSecondsData[0] && fiveSecondsData[0].rtpOutAudio || fiveSecondsData[0].rtpInAudio || fiveSecondsData[0].rtpInVideo || fiveSecondsData[0].rtpOutVideo;\n const sendAnalysis = StatsAnalyzer.analyze(fiveSecondsData, {analysisKeys: [{key: EVENT_STATS_MAP.BYTES_SENT, check: ANALYSIS_CHECKS.INCREASING, prop}]});\n const receiveAnalysis = StatsAnalyzer.analyze(fiveSecondsData, {analysisKeys: [{key: EVENT_STATS_MAP.BYTES_RECEIVED, check: ANALYSIS_CHECKS.INCREASING, prop}]});\n\n if (!sendAnalysis.valid && sendAnalysis.data.bytesSent.reports.length > 0) {\n if (!this.sendRemainStopped) {\n const ret = {stop: true, stat: EVENT_STATS_MAP.BYTES_SENT};\n\n this.callback(ret);\n this.sendRemainStopped = true;\n this.first = null;\n\n return ret;\n }\n }\n else if (sendAnalysis.valid && sendAnalysis.data.bytesSent.reports.length > 0) {\n this.sendRemainStopped = false;\n }\n if (!receiveAnalysis.valid && receiveAnalysis.data.bytesReceived.reports.length > 0) {\n if (!this.recvRemainStopped) {\n const ret = {stop: true, stat: EVENT_STATS_MAP.BYTES_RECEIVED};\n\n this.callback(ret);\n this.recvRemainStopped = true;\n this.first = null;\n\n return ret;\n }\n }\n else if (receiveAnalysis.valid && receiveAnalysis.data.bytesReceived.reports.length > 0) {\n this.recvRemainStopped = false;\n }\n\n return null;\n }\n\n /**\n * handles all the types of events that need to be sent when they happen from getStats API\n * @param {WebRTCData} data\n * @returns {Object}\n */\n event(data) {\n return {\n start: this.start(data),\n stop: this.stop()\n };\n }\n}\n"],"mappings":"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"}
|
package/dist/stats/filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["StatsFilter","objectMode","report","encoding","callback","data","StatsTransformer","transform","push","WebRTCData","Transform"],"sources":["filter.js"],"sourcesContent":["import {Transform} from 'readable-stream';\n\nimport StatsTransformer from '../stats/transformer';\nimport WebRTCData from '../stats/data';\n\n/**\n * Reforms the interesting data from an RTCStatsReport to a new format\n */\nexport default class StatsFilter extends Transform {\n /**\n * Tells the Stream we're operating in objectMode\n * @private\n */\n constructor() {\n super({objectMode: true});\n }\n\n /**\n * Filters out data on the RTCStatsReport to the data around call quality and pushes it as a WebRTCData object\n * @param {RTCStatsReport} report\n * @param {*} encoding\n * @param {Function} callback\n * @private\n * @returns {undefined}\n */\n _transform(report, encoding, callback) {\n if (!report) {\n callback();\n\n return;\n }\n const data = StatsTransformer.transform(report);\n const push = new WebRTCData(data);\n\n this.push({\n data: push\n });\n callback();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;;;AAEA;AACA;AACA;IACqBA,W;;;;;EACnB;AACF;AACA;AACA;EACE,uBAAc;IAAA;IAAA,yBACN;MAACC,UAAU,EAAE;IAAb,CADM;EAEb;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;;WACE,oBAAWC,MAAX,EAAmBC,QAAnB,EAA6BC,QAA7B,EAAuC;MACrC,IAAI,CAACF,MAAL,EAAa;QACXE,QAAQ;QAER;MACD;;MACD,IAAMC,IAAI,GAAGC,qBAAiBC,SAAjB,CAA2BL,MAA3B,CAAb;;MACA,IAAMM,IAAI,GAAG,IAAIC,aAAJ,CAAeJ,IAAf,CAAb;MAEA,KAAKG,IAAL,CAAU;QACRH,IAAI,EAAEG;MADE,CAAV;MAGAJ,QAAQ;IACT;;;EA9BsCM,yB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["StatsHistory","max","history","index","length","getAt","previous","getMostRecent","current","exclusiveEnd","slice","data","removed","pop","unshift"],"sources":["history.js"],"sourcesContent":["/**\n * stores the last x filtered stream datas\n */\n/**\n * @export\n * @class StatsHistory\n */\nexport default class StatsHistory {\n /**\n * instantiate our wrapped history array\n * @param {Number} max\n */\n constructor(max) {\n /**\n * @instance\n * @type {Array}\n * @public\n * @memberof StatsHistory\n */\n this.history = [];\n /**\n * @instance\n * @type {Number}\n * @public\n * @memberof StatsHistory\n */\n this.max = max;\n }\n\n /**\n * @returns {Array} the array of stats reports, read from [0] = most recent to [length - 1] = least recent\n * @public\n * @memberof StatsHistory\n */\n get() {\n return this.history;\n }\n\n /**\n * deletes the history array and resets it\n * @returns {undefined}\n * @public\n * @memberof StatsHistory\n */\n clear() {\n this.history = [];\n }\n\n /**\n * gets the stored stat\n * @param {Number} index the location\n * @returns {Object} the stat at location index\n * @public\n * @memberof StatsHistory\n */\n getAt(index) {\n return this.history[index];\n }\n\n /**\n * gets the most recently stored stat\n * @returns {Object} the most recently added stat to the history recorder\n * @public\n * @memberof StatsHistory\n */\n getMostRecent() {\n return this.history.length > 1 ? this.getAt(0) : null;\n }\n\n /**\n * gets the last two values, that can be used to compare\n * @returns {Object} {previous: WebRTCData, current: WebRTCData}\n */\n getComparable() {\n return {\n previous: this.getMostRecent(),\n current: this.history.length > 2 ? this.getAt(1) : null\n };\n }\n\n /**\n * gets a cut of the n most recent WebRTC datas stored\n * @param {Number} exclusiveEnd\n * @returns {Array}\n */\n getSlice(exclusiveEnd) {\n return this.history.slice(0, exclusiveEnd);\n }\n\n /**\n * adds a history entry into tshe array at the head, removes from the tail\n * if too large, returns the old tail if removed\n * @param {WebRTCData} data filtered stats report to add to the history array\n * @returns {Object} the removed stats report at the end if that had to be removed\n * to make space for the new stats data report to be added to the front\n */\n add(data) {\n let removed = null;\n\n if (this.history.length >= this.max) {\n removed = this.history.pop();\n }\n this.history.unshift(data);\n\n return removed;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;;AACA;AACA;AACA;AACA;IACqBA,Y;EACnB;AACF;AACA;AACA;EACE,sBAAYC,GAAZ,EAAiB;IAAA;;IACf;AACJ;AACA;AACA;AACA;AACA;IACI,KAAKC,OAAL,GAAe,EAAf;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKD,GAAL,GAAWA,GAAX;EACD;EAED;AACF;AACA;AACA;AACA;;;;;WACE,eAAM;MACJ,OAAO,KAAKC,OAAZ;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,iBAAQ;MACN,KAAKA,OAAL,GAAe,EAAf;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,eAAMC,KAAN,EAAa;MACX,OAAO,KAAKD,OAAL,CAAaC,KAAb,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,yBAAgB;MACd,OAAO,KAAKD,OAAL,CAAaE,MAAb,GAAsB,CAAtB,GAA0B,KAAKC,KAAL,CAAW,CAAX,CAA1B,GAA0C,IAAjD;IACD;IAED;AACF;AACA;AACA;;;;WACE,yBAAgB;MACd,OAAO;QACLC,QAAQ,EAAE,KAAKC,aAAL,EADL;QAELC,OAAO,EAAE,KAAKN,OAAL,CAAaE,MAAb,GAAsB,CAAtB,GAA0B,KAAKC,KAAL,CAAW,CAAX,CAA1B,GAA0C;MAF9C,CAAP;IAID;IAED;AACF;AACA;AACA;AACA;;;;WACE,kBAASI,YAAT,EAAuB;MACrB,OAAO,KAAKP,OAAL,CAAaQ,KAAb,CAAmB,CAAnB,EAAsBD,YAAtB,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,aAAIE,IAAJ,EAAU;MACR,IAAIC,OAAO,GAAG,IAAd;;MAEA,IAAI,KAAKV,OAAL,CAAaE,MAAb,IAAuB,KAAKH,GAAhC,EAAqC;QACnCW,OAAO,GAAG,KAAKV,OAAL,CAAaW,GAAb,EAAV;MACD;;MACD,KAAKX,OAAL,CAAaY,OAAb,CAAqBH,IAArB;MAEA,OAAOC,OAAP;IACD"}
|
package/dist/stats/index.js
CHANGED
|
@@ -49,63 +49,63 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
49
49
|
var _super = _createSuper(WebRTCStats);
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
*
|
|
53
|
+
* @param {Object} attrs
|
|
54
|
+
* @param {Object} options
|
|
55
|
+
* @param {Object} [optionalCreateOptions]
|
|
56
|
+
*/
|
|
57
57
|
function WebRTCStats(attrs, options, optionalCreateOptions) {
|
|
58
58
|
var _this;
|
|
59
59
|
|
|
60
60
|
(0, _classCallCheck2.default)(this, WebRTCStats);
|
|
61
61
|
_this = _super.call(this, {}, options);
|
|
62
62
|
/**
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
* @instance
|
|
64
|
+
* @type {Object}
|
|
65
|
+
* @private
|
|
66
|
+
* @memberof WebRTCStats
|
|
67
|
+
*/
|
|
68
68
|
|
|
69
69
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
|
|
70
70
|
_this.attrs = attrs;
|
|
71
71
|
/**
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
* @instance
|
|
73
|
+
* @type {Object}
|
|
74
|
+
* @private
|
|
75
|
+
* @memberof WebRTCStats
|
|
76
|
+
*/
|
|
77
77
|
|
|
78
78
|
_this.options = options;
|
|
79
79
|
/**
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
* @instance
|
|
81
|
+
* @type {Object}
|
|
82
|
+
* @public
|
|
83
|
+
* @memberof WebRTCStats
|
|
84
|
+
*/
|
|
85
85
|
|
|
86
86
|
_this.senders = {};
|
|
87
87
|
/**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
88
|
+
* @instance
|
|
89
|
+
* @type {Object}
|
|
90
|
+
* @public
|
|
91
|
+
* @memberof WebRTCStats
|
|
92
|
+
*/
|
|
93
93
|
|
|
94
94
|
_this.receivers = {};
|
|
95
95
|
/**
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
96
|
+
* @instance
|
|
97
|
+
* @type {Meeting}
|
|
98
|
+
* @private
|
|
99
|
+
* @memberof WebRTCStats
|
|
100
|
+
*/
|
|
101
101
|
|
|
102
102
|
_this.meetingRef = null;
|
|
103
103
|
/**
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
* @instance
|
|
105
|
+
* @type {Object}
|
|
106
|
+
* @public
|
|
107
|
+
* @memberof WebRTCStats
|
|
108
|
+
*/
|
|
109
109
|
|
|
110
110
|
_this.statsConfig = null;
|
|
111
111
|
|
|
@@ -114,15 +114,15 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
114
114
|
return _this;
|
|
115
115
|
}
|
|
116
116
|
/**
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
117
|
+
* @param {Object} [optionalCreateOptions]
|
|
118
|
+
* @param {Object} optionalCreateOptions.config
|
|
119
|
+
* @param {Meeting} optionalCreateOptions.meeting
|
|
120
|
+
* @param {Object} optionalCreateOptions.senders
|
|
121
|
+
* @param {Object} optionalCreateOptions.receivers
|
|
122
|
+
* @returns {WebRTCStats}
|
|
123
|
+
* @private
|
|
124
|
+
* @memberof WebRTCStats
|
|
125
|
+
*/
|
|
126
126
|
|
|
127
127
|
|
|
128
128
|
(0, _createClass2.default)(WebRTCStats, [{
|
|
@@ -149,11 +149,11 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
149
149
|
return this;
|
|
150
150
|
}
|
|
151
151
|
/**
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
152
|
+
* @param {Object} config
|
|
153
|
+
* @returns {WebRTCStats}
|
|
154
|
+
* @public
|
|
155
|
+
* @memberof WebRTCStats
|
|
156
|
+
*/
|
|
157
157
|
|
|
158
158
|
}, {
|
|
159
159
|
key: "setConfig",
|
|
@@ -161,11 +161,11 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
161
161
|
this.statsConfig = config;
|
|
162
162
|
}
|
|
163
163
|
/**
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
164
|
+
* @param {Meeting} meeting
|
|
165
|
+
* @returns {WebRTCStats}
|
|
166
|
+
* @public
|
|
167
|
+
* @memberof WebRTCStats
|
|
168
|
+
*/
|
|
169
169
|
|
|
170
170
|
}, {
|
|
171
171
|
key: "associateMeeting",
|
|
@@ -174,12 +174,12 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
174
174
|
return this;
|
|
175
175
|
}
|
|
176
176
|
/**
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
177
|
+
* @param {Object} senders
|
|
178
|
+
* @param {Boolean} useConfig
|
|
179
|
+
* @returns {WebRTCStats}
|
|
180
|
+
* @public
|
|
181
|
+
* @memberof WebRTCStats
|
|
182
|
+
*/
|
|
183
183
|
|
|
184
184
|
}, {
|
|
185
185
|
key: "addSenders",
|
|
@@ -198,12 +198,12 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
198
198
|
return this;
|
|
199
199
|
}
|
|
200
200
|
/**
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
201
|
+
* @param {Object} sender
|
|
202
|
+
* @param {Boolean} useConfig
|
|
203
|
+
* @returns {WebRTCStats}
|
|
204
|
+
* @public
|
|
205
|
+
* @memberof WebRTCStats
|
|
206
|
+
*/
|
|
207
207
|
|
|
208
208
|
}, {
|
|
209
209
|
key: "addSender",
|
|
@@ -222,12 +222,12 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
222
222
|
return this;
|
|
223
223
|
}
|
|
224
224
|
/**
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
225
|
+
*
|
|
226
|
+
* @param {String} id
|
|
227
|
+
* @returns {WebRTCStats}
|
|
228
|
+
* @public
|
|
229
|
+
* @memberof WebRTCStats
|
|
230
|
+
*/
|
|
231
231
|
|
|
232
232
|
}, {
|
|
233
233
|
key: "addSenderStats",
|
|
@@ -237,12 +237,12 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
237
237
|
return newSender;
|
|
238
238
|
}
|
|
239
239
|
/**
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
240
|
+
*
|
|
241
|
+
* @param {String} id
|
|
242
|
+
* @returns {WebRTCStats}
|
|
243
|
+
* @public
|
|
244
|
+
* @memberof WebRTCStats
|
|
245
|
+
*/
|
|
246
246
|
|
|
247
247
|
}, {
|
|
248
248
|
key: "addReceiverStats",
|
|
@@ -252,12 +252,12 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
252
252
|
return newReceiver;
|
|
253
253
|
}
|
|
254
254
|
/**
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
255
|
+
* @param {Object} receivers
|
|
256
|
+
* @param {boolean} useConfig
|
|
257
|
+
* @returns {WebRTCStats}
|
|
258
|
+
* @public
|
|
259
|
+
* @memberof WebRTCStats
|
|
260
|
+
*/
|
|
261
261
|
|
|
262
262
|
}, {
|
|
263
263
|
key: "addReceivers",
|
|
@@ -276,12 +276,12 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
276
276
|
return this;
|
|
277
277
|
}
|
|
278
278
|
/**
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
279
|
+
* @param {Object} receiver
|
|
280
|
+
* @param {boolean} useConfig
|
|
281
|
+
* @returns {WebRTCStats}
|
|
282
|
+
* @public
|
|
283
|
+
* @memberof WebRTCStats
|
|
284
|
+
*/
|
|
285
285
|
|
|
286
286
|
}, {
|
|
287
287
|
key: "addReceiver",
|
|
@@ -300,10 +300,10 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
300
300
|
return this;
|
|
301
301
|
}
|
|
302
302
|
/**
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
303
|
+
* @returns {Object}
|
|
304
|
+
* @public
|
|
305
|
+
* @memberof WebRTCStats
|
|
306
|
+
*/
|
|
307
307
|
|
|
308
308
|
}, {
|
|
309
309
|
key: "getReceivers",
|
|
@@ -311,10 +311,10 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
311
311
|
return this.receivers;
|
|
312
312
|
}
|
|
313
313
|
/**
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
314
|
+
* @returns {Object}
|
|
315
|
+
* @public
|
|
316
|
+
* @memberof WebRTCStats
|
|
317
|
+
*/
|
|
318
318
|
|
|
319
319
|
}, {
|
|
320
320
|
key: "getSenders",
|
|
@@ -322,11 +322,11 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
322
322
|
return this.senders;
|
|
323
323
|
}
|
|
324
324
|
/**
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
325
|
+
* @param {String} id
|
|
326
|
+
* @returns {Object}
|
|
327
|
+
* @public
|
|
328
|
+
* @memberof WebRTCStats
|
|
329
|
+
*/
|
|
330
330
|
|
|
331
331
|
}, {
|
|
332
332
|
key: "getSender",
|
|
@@ -334,11 +334,11 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
334
334
|
return this.senders[id];
|
|
335
335
|
}
|
|
336
336
|
/**
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
337
|
+
* @param {String} id
|
|
338
|
+
* @returns {Object}
|
|
339
|
+
* @public
|
|
340
|
+
* @memberof WebRTCStats
|
|
341
|
+
*/
|
|
342
342
|
|
|
343
343
|
}, {
|
|
344
344
|
key: "getReceiver",
|
|
@@ -346,10 +346,10 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
346
346
|
return this.receivers[id];
|
|
347
347
|
}
|
|
348
348
|
/**
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
349
|
+
* @returns {Object}
|
|
350
|
+
* @public
|
|
351
|
+
* @memberof WebRTCStats
|
|
352
|
+
*/
|
|
353
353
|
|
|
354
354
|
}, {
|
|
355
355
|
key: "destroySenders",
|
|
@@ -361,10 +361,10 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
361
361
|
});
|
|
362
362
|
}
|
|
363
363
|
/**
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
364
|
+
* @returns {undefined}
|
|
365
|
+
* @public
|
|
366
|
+
* @memberof WebRTCStats
|
|
367
|
+
*/
|
|
368
368
|
|
|
369
369
|
}, {
|
|
370
370
|
key: "destroyReceivers",
|
|
@@ -376,11 +376,11 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
376
376
|
});
|
|
377
377
|
}
|
|
378
378
|
/**
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
379
|
+
* @param {String} id
|
|
380
|
+
* @returns {undefined}
|
|
381
|
+
* @public
|
|
382
|
+
* @memberof WebRTCStats
|
|
383
|
+
*/
|
|
384
384
|
|
|
385
385
|
}, {
|
|
386
386
|
key: "destroySender",
|
|
@@ -397,11 +397,11 @@ var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
397
397
|
delete this.receivers[id];
|
|
398
398
|
}
|
|
399
399
|
/**
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
400
|
+
* @param {String} id
|
|
401
|
+
* @returns {undefined}
|
|
402
|
+
* @public
|
|
403
|
+
* @memberof WebRTCStats
|
|
404
|
+
*/
|
|
405
405
|
|
|
406
406
|
}, {
|
|
407
407
|
key: "destroyReceiver",
|