@observertc/client-monitor-js 4.0.3 → 4.0.4-e4c5845.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/sources/Sources.js +1 -1
- package/package.json +1 -1
package/dist/sources/Sources.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fetchUserAgentData as e}from"./fetchUserAgentData";import{PeerConnectionMonitor as i}from"../monitors/PeerConnectionMonitor";import{watchMediaDevices as n}from"./watchMediaDevice";import{createLogger as t}from"../utils/logger";import{RtcPeerConnectionStatsCollector as o}from"../collectors/RtcPeerConnectionStatsCollector";import{MediasoupTransportStatsCollector as r}from"../collectors/MediasoupTransportStatsCollector";import{Firefox94StatsAdapter as s}from"../adapters/Firefox94StatsAdapter";import{FirefoxTransportStatsAdapter as a}from"../adapters/FirefoxTransportStatsAdapter";import{RtcPeerConnectionBinding as d}from"./RtcPeerConnectionBinding";import{MediasoupTransportBinding as c}from"./MediasoupTransportBinding";import{MediasoupDeviceBinding as p}from"./MediasoupDeviceBinding";const m=t("Sources");export class Sources{monitor;mediaDevicesAreWatched=!1;userAgentMetaDataSent=!1;userAgentStatsAdapterAdded=!1;mediasoupStatsAdapterAdded=!1;_peerConnectionBindings=new Map;_mediasoupTransportBindings=new Map;_mediasoupDeviceBindings=[];constructor(e){this.monitor=e}addRTCPeerConnection(e){if([...this._peerConnectionBindings.values()].find((i=>i.peerConnection===e.peerConnection)))return m.warn("RTCPeerConnection already exists in sources, not adding again");const{peerConnectionId:n=crypto.randomUUID(),peerConnection:t}=e,r=new i(n,new o(t,this.monitor),this.monitor),s=new d(t,r);r.once("close",(()=>{this._peerConnectionBindings.delete(n)})),this._peerConnectionBindings.set(n,s),this._addPeerConnectionMonitor(r)}removeRTCPeerConnection(e){const i=[...this._peerConnectionBindings.values()].find((i=>i.peerConnection===e));i?i.unbind():m.warn("RTCPeerConnection not found in sources, cannot remove")}addMediasoupDevice(e){if(this._mediasoupDeviceBindings.find((i=>i.device===e)))return m.warn("Mediasoup device already exists in sources, not adding again"),this;const i=new p(e,this);return this._mediasoupDeviceBindings.push(i),i.bind(),this}removeMediasoupDevice(e){const i=this._mediasoupDeviceBindings.find((i=>i.device===e));return i?(i.unbind(),this._mediasoupDeviceBindings=this._mediasoupDeviceBindings.filter((e=>e!==i)),this):(m.warn("Mediasoup device not found in sources, cannot remove"),this)}addMediasoupTransport(e){if(this._mediasoupTransportBindings.has(e.id))return m.warn(`Mediasoup transport (${e.id}) already exists in sources, not adding again`),this;const n={direction:e.direction},t=new i(e.id,new r(e,this.monitor),this.monitor,n),o=new c(e,t);return t.once("close",(()=>{this._mediasoupTransportBindings.delete(e.id)})),this._mediasoupTransportBindings.set(e.id,o),o.bind(),this._addPeerConnectionMonitor(t),this}removeMediasoupTransport(e){const i=this._mediasoupTransportBindings.get(e.id);return i?(i.unbind(),this._mediasoupTransportBindings.delete(e.id),this):(m.warn(`Mediasoup transport (${e.id}) not found in sources, cannot remove`),this)}fetchUserAgentData(){const i=e();if(i){if(this.userAgentMetaDataSent||(this.monitor.addMetaData({type:"USER_AGENT_DATA",payload:{...i}}),this.userAgentMetaDataSent=!0),!this.userAgentStatsAdapterAdded&&(this.userAgentStatsAdapterAdded=!0,!this.monitor.browser&&i.browser)){const e=i.browser.name.toLowerCase();["chrome","firefox","safari","edge"].includes(e)?this.monitor.browser={name:e,version:i.browser?.version}:this.monitor.browser={name:"unknown",version:"unknown"}}return i}}watchNavigatorMediaDevices(){if(!this.mediaDevicesAreWatched)try{n(this.monitor),this.mediaDevicesAreWatched=!0}catch(e){m.error("Failed to watch media devices",e)}}_addPeerConnectionMonitor(e){this.monitor.addPeerConnectionMonitor(e),this.addStatsAdapters(e)}addStatsAdapters(e){if(this.monitor.browser)switch(this.monitor.browser.name){case"chrome":case"edge":case"opera":case"safari":case"unknown":break;case"firefox":e.statsAdapters.add(new s),e.statsAdapters.add(new a)}}}
|
|
1
|
+
import{fetchUserAgentData as e}from"./fetchUserAgentData";import{PeerConnectionMonitor as i}from"../monitors/PeerConnectionMonitor";import{watchMediaDevices as n}from"./watchMediaDevice";import{createLogger as t}from"../utils/logger";import{RtcPeerConnectionStatsCollector as o}from"../collectors/RtcPeerConnectionStatsCollector";import{MediasoupTransportStatsCollector as r}from"../collectors/MediasoupTransportStatsCollector";import{Firefox94StatsAdapter as s}from"../adapters/Firefox94StatsAdapter";import{FirefoxTransportStatsAdapter as a}from"../adapters/FirefoxTransportStatsAdapter";import{RtcPeerConnectionBinding as d}from"./RtcPeerConnectionBinding";import{MediasoupTransportBinding as c}from"./MediasoupTransportBinding";import{MediasoupDeviceBinding as p}from"./MediasoupDeviceBinding";const m=t("Sources");export class Sources{monitor;mediaDevicesAreWatched=!1;userAgentMetaDataSent=!1;userAgentStatsAdapterAdded=!1;mediasoupStatsAdapterAdded=!1;_peerConnectionBindings=new Map;_mediasoupTransportBindings=new Map;_mediasoupDeviceBindings=[];constructor(e){this.monitor=e}addRTCPeerConnection(e){if([...this._peerConnectionBindings.values()].find((i=>i.peerConnection===e.peerConnection)))return m.warn("RTCPeerConnection already exists in sources, not adding again");const{peerConnectionId:n=crypto.randomUUID(),peerConnection:t}=e,r=new i(n,new o(t,this.monitor),this.monitor),s=new d(t,r);s.bind(),r.once("close",(()=>{this._peerConnectionBindings.delete(n)})),this._peerConnectionBindings.set(n,s),this._addPeerConnectionMonitor(r)}removeRTCPeerConnection(e){const i=[...this._peerConnectionBindings.values()].find((i=>i.peerConnection===e));i?i.unbind():m.warn("RTCPeerConnection not found in sources, cannot remove")}addMediasoupDevice(e){if(this._mediasoupDeviceBindings.find((i=>i.device===e)))return m.warn("Mediasoup device already exists in sources, not adding again"),this;const i=new p(e,this);return this._mediasoupDeviceBindings.push(i),i.bind(),this}removeMediasoupDevice(e){const i=this._mediasoupDeviceBindings.find((i=>i.device===e));return i?(i.unbind(),this._mediasoupDeviceBindings=this._mediasoupDeviceBindings.filter((e=>e!==i)),this):(m.warn("Mediasoup device not found in sources, cannot remove"),this)}addMediasoupTransport(e){if(this._mediasoupTransportBindings.has(e.id))return m.warn(`Mediasoup transport (${e.id}) already exists in sources, not adding again`),this;const n={direction:e.direction},t=new i(e.id,new r(e,this.monitor),this.monitor,n),o=new c(e,t);return t.once("close",(()=>{this._mediasoupTransportBindings.delete(e.id)})),this._mediasoupTransportBindings.set(e.id,o),o.bind(),this._addPeerConnectionMonitor(t),this}removeMediasoupTransport(e){const i=this._mediasoupTransportBindings.get(e.id);return i?(i.unbind(),this._mediasoupTransportBindings.delete(e.id),this):(m.warn(`Mediasoup transport (${e.id}) not found in sources, cannot remove`),this)}fetchUserAgentData(){const i=e();if(i){if(this.userAgentMetaDataSent||(this.monitor.addMetaData({type:"USER_AGENT_DATA",payload:{...i}}),this.userAgentMetaDataSent=!0),!this.userAgentStatsAdapterAdded&&(this.userAgentStatsAdapterAdded=!0,!this.monitor.browser&&i.browser)){const e=i.browser.name.toLowerCase();["chrome","firefox","safari","edge"].includes(e)?this.monitor.browser={name:e,version:i.browser?.version}:this.monitor.browser={name:"unknown",version:"unknown"}}return i}}watchNavigatorMediaDevices(){if(!this.mediaDevicesAreWatched)try{n(this.monitor),this.mediaDevicesAreWatched=!0}catch(e){m.error("Failed to watch media devices",e)}}_addPeerConnectionMonitor(e){this.monitor.addPeerConnectionMonitor(e),this.addStatsAdapters(e)}addStatsAdapters(e){if(this.monitor.browser)switch(this.monitor.browser.name){case"chrome":case"edge":case"opera":case"safari":case"unknown":break;case"firefox":e.statsAdapters.add(new s),e.statsAdapters.add(new a)}}}
|