(()=>{function e(e,t,i,r){Object.defineProperty(e,t,{get:i,set:r,enumerable:!0,configurable:!0})}function t(e){return e&&e.__esModule?e.default:e}class i{constructor(e,t){if(this.autoPair=!1,this.connected=!1,this.autoReconnect=!0,this.autoReconnectTimeout=3e3,this.recaivePackEvent=[],this.activeConnectionEvent=[],this.passiveConnectionEvent=[],"auto"==t.endpoint){let e=new URL(document.currentScript.src),t="https:"==e.protocol,i=new URL(e.pathname.split("/").slice(0,-1).join("/")+"/",e);i.protocol=t?"wss:":"ws:",this.endpoint=new URL(i.href)}else try{this.endpoint=new URL(t.endpoint)}catch{throw Error("endpoint is required")}"boolean"==typeof t.autoReconnect?this.autoReconnect=!0:t.autoReconnect&&(this.autoReconnect=!0,this.autoReconnectTimeout=t.autoReconnect.timeout)}connect(){this.autoReconnectTimer&&clearTimeout(this.autoReconnectTimer),this.ws=new WebSocket(this.endpoint.href),this.addWSEvents()}disconnect(){this.autoReconnect=!1,this.ws.close()}addWSEvents(){this.ws.addEventListener("open",()=>this.eventOpen()),this.ws.addEventListener("close",()=>this.eventClose()),this.ws.addEventListener("error",()=>this.eventError()),this.ws.addEventListener("message",({data:e})=>this.eventMessage(e))}eventOpen(){for(let e of(this.connected=!0,this.activeConnectionEvent))e(void 0)}eventClose(){for(let e of this.passiveConnectionEvent)e(void 0);this.connected=!1,this.autoReconnect&&(this.autoReconnectTimer=setTimeout(()=>this.connect(),this.autoReconnectTimeout))}eventError(){this.connected=!1}onRecaivePack(e){this.recaivePackEvent.push(e)}onActive(e){this.connected?e():this.activeConnectionEvent.push(e)}onPassive(e){this.connected?this.passiveConnectionEvent.push(e):e()}eventMessage(e){if("string"==typeof e){let t=JSON.parse(e);for(let e of this.recaivePackEvent)e(t)}}tranferToServer(e){this.connected&&this.ws.send(JSON.stringify(e))}}class r{constructor(e){this.events=new Map,this.signals=new Map,this.requests=new Map,this.count=0,this.wsts=e}request(e){return new Promise((t,i)=>{let r=++this.count;this.events.set(r,[e=>{t(e)},e=>{i(e)}]),this.wsts.WSTSProtocol.SendRequest(e,r)})}stream(e,t){let i=++this.count;this.wsts.WSTSProtocol.StartStream(e,i),this.events.set(i,[e=>{t(e)},()=>{}])}signal(e,t){let i=this.signals.get(e);i?i.push(t):this.signals.set(e,[t])}}class n{emit(e,...t){if(this.events[e])for(let i of this.events[e])i(...t)}on(e,t){this.events[e]?this.events[e].push(t):this.events[e]=[t]}scope(e){this.activeScope?e():this.on("scope",e)}constructor(){this.events={},this.activeScope=!1}}class s{constructor(e){this.mwse=e}async allocAPIPAddress(){let{status:e,ip:t}=await this.mwse.EventPooling.request({type:"alloc/APIPAddress"});if("success"==e)return this.APIPAddress=t,t;throw Error("Error Allocated Access Point IP Address")}async allocAPNumber(){let{status:e,number:t}=await this.mwse.EventPooling.request({type:"alloc/APNumber"});if("success"==e)return this.APNumber=t,t;throw Error("Error Allocated Access Point Number")}async allocAPShortCode(){let{status:e,code:t}=await this.mwse.EventPooling.request({type:"alloc/APShortCode"});if("success"==e)return this.APShortCode=t,t;throw Error("Error Allocated Access Point Short Code")}async reallocAPIPAddress(){let{status:e,ip:t}=await this.mwse.EventPooling.request({type:"realloc/APIPAddress"});if("success"==e)return this.APIPAddress=t,t;throw Error("Error Reallocated Access Point IP Address")}async reallocAPNumber(){let{status:e,number:t}=await this.mwse.EventPooling.request({type:"realloc/APNumber"});if("success"==e)return this.APNumber=t,t;throw Error("Error Reallocated Access Point Number")}async reallocAPShortCode(){let{status:e,code:t}=await this.mwse.EventPooling.request({type:"realloc/APShortCode"});if("success"==e)return this.APShortCode=t,t;throw Error("Error Reallocated Access Point Short Code")}async releaseAPIPAddress(){let{status:e}=await this.mwse.EventPooling.request({type:"release/APIPAddress"});if("success"==e)this.APIPAddress=void 0;else throw Error("Error release Access Point IP Address")}async releaseAPNumber(){let{status:e}=await this.mwse.EventPooling.request({type:"release/APNumber"});if("success"==e)this.APNumber=void 0;else throw Error("Error release Access Point Number")}async releaseAPShortCode(){let{status:e}=await this.mwse.EventPooling.request({type:"release/APShortCode"});if("success"==e)this.APShortCode=void 0;else throw Error("Error release Access Point Short Code")}async queryAPIPAddress(e){let{status:t,socket:i}=await this.mwse.EventPooling.request({type:"whois/APIPAddress",whois:e});return"success"==t?i:null}async queryAPNumber(e){let{status:t,socket:i}=await this.mwse.EventPooling.request({type:"whois/APNumber",whois:e});return"success"==t?i:null}async queryAPShortCode(e){let{status:t,socket:i}=await this.mwse.EventPooling.request({type:"whois/APShortCode",whois:e});return"success"==t?i:null}}class o{constructor(e){this.info={},this.peer=e}async fetch(e){if(e){let t=await this.peer.mwse.EventPooling.request({type:"peer/info",peer:this.peer.socketId,name:e});"success"==t.status?this.info=t.info:console.warn(t.message)}else{let e=await this.peer.mwse.EventPooling.request({type:"peer/info",peer:this.peer.socketId});"success"==e.status?this.info=e.info:console.warn(e.message)}return this.info}set(e,t){this.info[e]=t,this.peer.mwse.WSTSProtocol.SendOnly({type:"auth/info",name:e,value:t})}get(e){return e?this.info[e]:this.info}}"use strict";let a=!0,c=!0;function d(e,t,i){let r=e.match(t);return r&&r.length>=i&&parseInt(r[i],10)}function p(e,t,i){if(!e.RTCPeerConnection)return;let r=e.RTCPeerConnection.prototype,n=r.addEventListener;r.addEventListener=function(e,r){if(e!==t)return n.apply(this,arguments);let s=e=>{let t=i(e);t&&(r.handleEvent?r.handleEvent(t):r(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(r,s),n.apply(this,[e,s])};let s=r.removeEventListener;r.removeEventListener=function(e,i){if(e!==t||!this._eventMap||!this._eventMap[t]||!this._eventMap[t].has(i))return s.apply(this,arguments);let r=this._eventMap[t].get(i);return this._eventMap[t].delete(i),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,s.apply(this,[e,r])},Object.defineProperty(r,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})}function h(e){return"boolean"!=typeof e?Error("Argument type: "+typeof e+". Please use a boolean."):(a=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function l(e){return"boolean"!=typeof e?Error("Argument type: "+typeof e+". Please use a boolean."):(c=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function m(){"object"==typeof window&&(a||"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments))}function u(e,t){c&&console.warn(e+" is deprecated, please use "+t+" instead.")}function f(e){return"[object Object]"===Object.prototype.toString.call(e)}function g(e,t,i){let r=i?"outbound-rtp":"inbound-rtp",n=new Map;if(null===t)return n;let s=[];return e.forEach(e=>{"track"===e.type&&e.trackIdentifier===t.id&&s.push(e)}),s.forEach(t=>{e.forEach(i=>{i.type===r&&i.trackId===t.id&&function e(t,i,r){!i||r.has(i.id)||(r.set(i.id,i),Object.keys(i).forEach(n=>{n.endsWith("Id")?e(t,t.get(i[n]),r):n.endsWith("Ids")&&i[n].forEach(i=>{e(t,t.get(i),r)})}))}(e,i,n)})}),n}"use strict";var y={};function v(e,t){let i=e&&e.navigator;if(!i.mediaDevices)return;let r=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;let t={};return Object.keys(e).forEach(i=>{if("require"===i||"advanced"===i||"mediaSource"===i)return;let r="object"==typeof e[i]?e[i]:{ideal:e[i]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);let n=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==r.ideal){t.optional=t.optional||[];let e={};"number"==typeof r.ideal?(e[n("min",i)]=r.ideal,t.optional.push(e),(e={})[n("max",i)]=r.ideal):e[n("",i)]=r.ideal,t.optional.push(e)}void 0!==r.exact&&"number"!=typeof r.exact?(t.mandatory=t.mandatory||{},t.mandatory[n("",i)]=r.exact):["min","max"].forEach(e=>{void 0!==r[e]&&(t.mandatory=t.mandatory||{},t.mandatory[n(e,i)]=r[e])})}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},n=function(e,n){if(t.version>=61)return n(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){let t=function(e,t,i){t in e&&!(i in e)&&(e[i]=e[t],delete e[t])};t((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),t(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=r(e.audio)}if(e&&"object"==typeof e.video){let s=e.video.facingMode;s=s&&("object"==typeof s?s:{ideal:s});let o=t.version<66;if(s&&("user"===s.exact||"environment"===s.exact||"user"===s.ideal||"environment"===s.ideal)&&!(i.mediaDevices.getSupportedConstraints&&i.mediaDevices.getSupportedConstraints().facingMode&&!o)){let t;if(delete e.video.facingMode,"environment"===s.exact||"environment"===s.ideal?t=["back","rear"]:("user"===s.exact||"user"===s.ideal)&&(t=["front"]),t)return i.mediaDevices.enumerateDevices().then(i=>{let o=(i=i.filter(e=>"videoinput"===e.kind)).find(e=>t.some(t=>e.label.toLowerCase().includes(t)));return!o&&i.length&&t.includes("back")&&(o=i[i.length-1]),o&&(e.video.deviceId=s.exact?{exact:o.deviceId}:{ideal:o.deviceId}),e.video=r(e.video),m("chrome: "+JSON.stringify(e)),n(e)})}e.video=r(e.video)}return m("chrome: "+JSON.stringify(e)),n(e)},s=function(e){return t.version>=64?e:{name:({PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"})[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(i.getUserMedia=(function(e,t,r){n(e,e=>{i.webkitGetUserMedia(e,t,e=>{r&&r(s(e))})})}).bind(i),i.mediaDevices.getUserMedia){let e=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(t){return n(t,t=>e(t).then(e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEach(e=>{e.stop()}),new DOMException("","NotFoundError");return e},e=>Promise.reject(s(e))))}}}"use strict";function C(e,t){if((!e.navigator.mediaDevices||!("getDisplayMedia"in e.navigator.mediaDevices))&&e.navigator.mediaDevices){if("function"!=typeof t)return void console.error("shimGetDisplayMedia: getSourceId argument is not a function");e.navigator.mediaDevices.getDisplayMedia=function(i){return t(i).then(t=>{let r=i.video&&i.video.width,n=i.video&&i.video.height,s=i.video&&i.video.frameRate;return i.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxFrameRate:s||3}},r&&(i.video.mandatory.maxWidth=r),n&&(i.video.mandatory.maxHeight=n),e.navigator.mediaDevices.getUserMedia(i)})}}}"use strict";function P(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function S(e){if("object"!=typeof e||!e.RTCPeerConnection||"ontrack"in e.RTCPeerConnection.prototype)p(e,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e));else{Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",i=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===i.track.id):{track:i.track};let n=new Event("track");n.track=i.track,n.receiver=r,n.transceiver={receiver:r},n.streams=[t.stream],this.dispatchEvent(n)}),t.stream.getTracks().forEach(i=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===i.id):{track:i};let n=new Event("track");n.track=i,n.receiver=r,n.transceiver={receiver:r},n.streams=[t.stream],this.dispatchEvent(n)})},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}}function T(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){let t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};let i=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){let n=i.apply(this,arguments);return n||(n=t(this,e),this._senders.push(n)),n};let r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){r.apply(this,arguments);let t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}let i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],i.apply(this,[e]),e.getTracks().forEach(e=>{this._senders.push(t(this,e))})};let r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach(e=>{let t=this._senders.find(t=>t.track===e);t&&this._senders.splice(this._senders.indexOf(t),1)})}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){let t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function R(e){if(!e.RTCPeerConnection)return;let t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){let[e,i,r]=arguments;if(arguments.length>0&&"function"==typeof e)return t.apply(this,arguments);if(0===t.length&&(0==arguments.length||"function"!=typeof e))return t.apply(this,[]);let n=function(e){let t={};return e.result().forEach(e=>{let i={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach(t=>{i[t]=e.stat(t)}),t[i.id]=i}),t},s=function(e){return new Map(Object.keys(e).map(t=>[t,e[t]]))};return arguments.length>=2?t.apply(this,[function(e){i(s(n(e)))},e]):new Promise((e,i)=>{t.apply(this,[function(t){e(s(n(t)))},i])}).then(i,r)}}function w(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){let t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});let i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){let e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){let e=this;return this._pc.getStats().then(t=>g(t,e.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){let t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),p(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){let e=this;return this._pc.getStats().then(t=>g(t,e.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype&&"getStats"in e.RTCRtpReceiver.prototype))return;let t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){let e,t,i,r=arguments[0];return(this.getSenders().forEach(t=>{t.track===r&&(e?i=!0:e=t)}),this.getReceivers().forEach(e=>(e.track===r&&(t?i=!0:t=e),e.track===r)),i||e&&t)?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):e?e.getStats():t?t.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function E(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(e=>this._shimmedLocalStreams[e][0])};let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,i){if(!i)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let r=t.apply(this,arguments);return this._shimmedLocalStreams[i.id]?-1===this._shimmedLocalStreams[i.id].indexOf(r)&&this._shimmedLocalStreams[i.id].push(r):this._shimmedLocalStreams[i.id]=[i,r],r};let i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException("Track already exists.","InvalidAccessError")});let t=this.getSenders();i.apply(this,arguments);let r=this.getSenders().filter(e=>-1===t.indexOf(e));this._shimmedLocalStreams[e.id]=[e].concat(r)};let r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],r.apply(this,arguments)};let n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach(t=>{let i=this._shimmedLocalStreams[t].indexOf(e);-1!==i&&this._shimmedLocalStreams[t].splice(i,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]}),n.apply(this,arguments)}}function b(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return E(e);let i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){let e=i.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map(e=>this._reverseStreams[e.id])};let r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[t.id]){let i=new e.MediaStream(t.getTracks());this._streams[t.id]=i,this._reverseStreams[i.id]=t,t=i}r.apply(this,[t])};let n=e.RTCPeerConnection.prototype.removeStream;function s(e,t){let i=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{let r=e._reverseStreams[t],n=e._streams[r.id];i=i.replace(RegExp(n.id,"g"),r.id)}),new RTCSessionDescription({type:t.type,sdp:i})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},n.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,i){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let r=[].slice.call(arguments,1);if(1!==r.length||!r[0].getTracks().find(e=>e===t))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(e=>e.track===t))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let n=this._streams[i.id];if(n)n.addTrack(t),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{let r=new e.MediaStream([t]);this._streams[i.id]=r,this._reverseStreams[r.id]=i,this.addStream(r)}return this.getSenders().find(e=>e.track===t)},["createOffer","createAnswer"].forEach(function(t){let i=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=({[t](){let e=arguments,t=arguments.length&&"function"==typeof arguments[0];return t?i.apply(this,[t=>{let i=s(this,t);e[0].apply(null,[i])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):i.apply(this,arguments).then(e=>s(this,e))}})[t]});let o=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){var e,t;let i;return arguments.length&&arguments[0].type?(arguments[0]=(e=this,t=arguments[0],i=t.sdp,Object.keys(e._reverseStreams||[]).forEach(t=>{let r=e._reverseStreams[t],n=e._streams[r.id];i=i.replace(RegExp(r.id,"g"),n.id)}),new RTCSessionDescription({type:t.type,sdp:i})),o.apply(this,arguments)):o.apply(this,arguments)};let a=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){let e=a.get.apply(this);return""===e.type?e:s(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){let t;if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(e._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{},Object.keys(this._streams).forEach(i=>{this._streams[i].getTracks().find(t=>e.track===t)&&(t=this._streams[i])}),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function k(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){let i=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=({[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}})[t]})}function I(e,t){p(e,"negotiationneeded",e=>{let i=e.target;if(!(t.version<72)&&(!i.getConfiguration||"plan-b"!==i.getConfiguration().sdpSemantics)||"stable"===i.signalingState)return e})}"use strict";e(y,"shimMediaStream",()=>P),e(y,"shimOnTrack",()=>S),e(y,"shimGetSendersWithDtmf",()=>T),e(y,"shimGetStats",()=>R),e(y,"shimSenderReceiverGetStats",()=>w),e(y,"shimAddTrackRemoveTrackWithNative",()=>E),e(y,"shimAddTrackRemoveTrack",()=>b),e(y,"shimPeerConnection",()=>k),e(y,"fixNegotiationNeeded",()=>I),e(y,"shimGetUserMedia",()=>v),e(y,"shimGetDisplayMedia",()=>C);var _={};function A(e,t){let i=e&&e.navigator,r=e&&e.MediaStreamTrack;if(i.getUserMedia=function(e,t,r){u("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(e).then(t,r)},!(t.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){let e=function(e,t,i){t in e&&!(i in e)&&(e[i]=e[t],delete e[t])},t=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(i){return"object"==typeof i&&"object"==typeof i.audio&&(e((i=JSON.parse(JSON.stringify(i))).audio,"autoGainControl","mozAutoGainControl"),e(i.audio,"noiseSuppression","mozNoiseSuppression")),t(i)},r&&r.prototype.getSettings){let t=r.prototype.getSettings;r.prototype.getSettings=function(){let i=t.apply(this,arguments);return e(i,"mozAutoGainControl","autoGainControl"),e(i,"mozNoiseSuppression","noiseSuppression"),i}}if(r&&r.prototype.applyConstraints){let t=r.prototype.applyConstraints;r.prototype.applyConstraints=function(i){return"audio"===this.kind&&"object"==typeof i&&(e(i=JSON.parse(JSON.stringify(i)),"autoGainControl","mozAutoGainControl"),e(i,"noiseSuppression","mozNoiseSuppression")),t.apply(this,[i])}}}}"use strict";function D(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(i){if(!(i&&i.video)){let e=new DOMException("getDisplayMedia without video constraints is undefined");return e.name="NotFoundError",e.code=8,Promise.reject(e)}return!0===i.video?i.video={mediaSource:t}:i.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(i)})}"use strict";function x(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function M(e,t){if("object"!=typeof e||!(e.RTCPeerConnection||e.mozRTCPeerConnection))return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){let i=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=({[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}})[t]});let i={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){let[e,n,s]=arguments;return r.apply(this,[e||null]).then(e=>{if(t.version<53&&!n)try{e.forEach(e=>{e.type=i[e.type]||e.type})}catch(t){if("TypeError"!==t.name)throw t;e.forEach((t,r)=>{e.set(r,Object.assign({},t,{type:i[t.type]||t.type}))})}return e}).then(n,s)}}function O(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;let t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});let i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){let e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function L(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;let t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),p(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function j(e){!e.RTCPeerConnection||"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){u("removeStream","removeTrack"),this.getSenders().forEach(t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)})})}function N(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function q(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]);let i=(e=[...e]).length>0;i&&e.forEach(e=>{if("rid"in e&&!/^[a-z0-9]{0,16}$/i.test(e.rid))throw TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw RangeError("max_framerate must be >= 0.0")});let r=t.apply(this,arguments);if(i){let{sender:t}=r,i=t.getParameters();"encodings"in i&&(1!==i.encodings.length||0!==Object.keys(i.encodings[0]).length)||(i.encodings=e,t.sendEncodings=e,this.setParametersPromises.push(t.setParameters(i).then(()=>{delete t.sendEncodings}).catch(()=>{delete t.sendEncodings})))}return r})}function F(e){if(!("object"==typeof e&&e.RTCRtpSender))return;let t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){let e=t.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function U(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}function z(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}"use strict";e(_,"shimOnTrack",()=>x),e(_,"shimPeerConnection",()=>M),e(_,"shimSenderGetStats",()=>O),e(_,"shimReceiverGetStats",()=>L),e(_,"shimRemoveStream",()=>j),e(_,"shimRTCDataChannel",()=>N),e(_,"shimAddTransceiver",()=>q),e(_,"shimGetParameters",()=>F),e(_,"shimCreateOffer",()=>U),e(_,"shimCreateAnswer",()=>z),e(_,"shimGetUserMedia",()=>A),e(_,"shimGetDisplayMedia",()=>D);var G={};function J(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach(i=>t.call(this,i,e)),e.getVideoTracks().forEach(i=>t.call(this,i,e))},e.RTCPeerConnection.prototype.addTrack=function(e,...i){return i&&i.forEach(e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]}),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);let t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);let i=e.getTracks();this.getSenders().forEach(e=>{i.includes(e.track)&&this.removeTrack(e)})})}}function W(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach(e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);let t=new Event("addstream");t.stream=e,this.dispatchEvent(t)})})}});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){let e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach(t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);let i=new Event("addstream");i.stream=t,e.dispatchEvent(i)})}),t.apply(e,arguments)}}}function V(e){if("object"!=typeof e||!e.RTCPeerConnection)return;let t=e.RTCPeerConnection.prototype,i=t.createOffer,r=t.createAnswer,n=t.setLocalDescription,s=t.setRemoteDescription,o=t.addIceCandidate;t.createOffer=function(e,t){let r=arguments.length>=2?arguments[2]:arguments[0],n=i.apply(this,[r]);return t?(n.then(e,t),Promise.resolve()):n},t.createAnswer=function(e,t){let i=arguments.length>=2?arguments[2]:arguments[0],n=r.apply(this,[i]);return t?(n.then(e,t),Promise.resolve()):n};let a=function(e,t,i){let r=n.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r};t.setLocalDescription=a,t.setRemoteDescription=a=function(e,t,i){let r=s.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r},t.addIceCandidate=function(e,t,i){let r=o.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r}}function B(e){let t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){let e=t.mediaDevices,i=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>i(K(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=(function(e,i,r){t.mediaDevices.getUserMedia(e).then(i,r)}).bind(t))}function K(e){return e&&void 0!==e.video?Object.assign({},e,{video:function e(t){return f(t)?Object.keys(t).reduce(function(i,r){let n=f(t[r]),s=n?e(t[r]):t[r],o=n&&!Object.keys(s).length;return void 0===s||o?i:Object.assign(i,{[r]:s})},{}):t}(e.video)}):e}function Y(e){if(!e.RTCPeerConnection)return;let t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,i){if(e&&e.iceServers){let t=[];for(let i=0;it.generateCertificate})}function H(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function X(e){let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);let t=this.getTransceivers().find(e=>"audio"===e.receiver.track.kind);!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);let i=this.getTransceivers().find(e=>"video"===e.receiver.track.kind);!1===e.offerToReceiveVideo&&i?"sendrecv"===i.direction?i.setDirection?i.setDirection("sendonly"):i.direction="sendonly":"recvonly"===i.direction&&(i.setDirection?i.setDirection("inactive"):i.direction="inactive"):!0!==e.offerToReceiveVideo||i||this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}}function Q(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}e(G,"shimLocalStreamsAPI",()=>J),e(G,"shimRemoteStreamsAPI",()=>W),e(G,"shimCallbacksAPI",()=>V),e(G,"shimGetUserMedia",()=>B),e(G,"shimConstraints",()=>K),e(G,"shimRTCIceServerUrls",()=>Y),e(G,"shimTrackEventTransceiver",()=>H),e(G,"shimCreateOfferLegacy",()=>X),e(G,"shimAudioContext",()=>Q);var $={};"use strict";e($,"shimRTCIceCandidate",()=>et),e($,"shimRTCIceCandidateRelayProtocol",()=>ei),e($,"shimMaxMessageSize",()=>er),e($,"shimSendThrowTypeError",()=>en),e($,"shimConnectionState",()=>es),e($,"removeExtmapAllowMixed",()=>eo),e($,"shimAddIceCandidateNullOrEmpty",()=>ea),e($,"shimParameterlessSetLocalDescription",()=>ec);var Z={};"use strict";let ee={};function et(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;let i=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substring(2)),e.candidate&&e.candidate.length){let r=new i(e),n=t(Z).parseCandidate(e.candidate);for(let e in n)e in r||Object.defineProperty(r,e,{value:n[e]});return r.toJSON=function(){return{candidate:r.candidate,sdpMid:r.sdpMid,sdpMLineIndex:r.sdpMLineIndex,usernameFragment:r.usernameFragment}},r}return new i(e)},e.RTCIceCandidate.prototype=i.prototype,p(e,"icecandidate",t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t))}function ei(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||p(e,"icecandidate",e=>{if(e.candidate){let i=t(Z).parseCandidate(e.candidate.candidate);"relay"===i.type&&(e.candidate.relayProtocol=({0:"tls",1:"tcp",2:"udp"})[i.priority>>24])}return e})}function er(e,i){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});let r=function(e){if(!e||!e.sdp)return!1;let i=t(Z).splitSections(e.sdp);return i.shift(),i.some(e=>{let i=t(Z).parseMLine(e);return i&&"application"===i.kind&&-1!==i.protocol.indexOf("SCTP")})},n=function(e){let t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return -1;let i=parseInt(t[1],10);return i!=i?-1:i},s=function(e){let t=65536;return"firefox"===i.browser&&(t=i.version<57?-1===e?16384:0x7ffffff5:i.version<60?57===i.version?65535:65536:0x7ffffff5),t},o=function(e,r){let n=65536;"firefox"===i.browser&&57===i.version&&(n=65535);let s=t(Z).matchPrefix(e.sdp,"a=max-message-size:");return s.length>0?n=parseInt(s[0].substring(19),10):"firefox"===i.browser&&-1!==r&&(n=0x7ffffff5),n},a=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===i.browser&&i.version>=76){let{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(r(arguments[0])){let e,t=n(arguments[0]),i=s(t),r=o(arguments[0],t);e=0===i&&0===r?Number.POSITIVE_INFINITY:0===i||0===r?Math.max(i,r):Math.min(i,r);let a={};Object.defineProperty(a,"maxMessageSize",{get:()=>e}),this._sctp=a}return a.apply(this,arguments)}}function en(e){if(!(e.RTCPeerConnection&&"createDataChannel"in e.RTCPeerConnection.prototype))return;function t(e,t){let i=e.send;e.send=function(){let r=arguments[0],n=r.length||r.size||r.byteLength;if("open"===e.readyState&&t.sctp&&n>t.sctp.maxMessageSize)throw TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return i.apply(e,arguments)}}let i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){let e=i.apply(this,arguments);return t(e,this),e},p(e,"datachannel",e=>(t(e.channel,e.target),e))}function es(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;let t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return({completed:"connected",checking:"connecting"})[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(e=>{let i=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{let t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;let i=new Event("connectionstatechange",e);t.dispatchEvent(i)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),i.apply(this,arguments)}})}function eo(e,t){if(!e.RTCPeerConnection||"chrome"===t.browser&&t.version>=71||"safari"===t.browser&&t.version>=605)return;let i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){let i=t.sdp.split("\n").filter(e=>"a=extmap-allow-mixed"!==e.trim()).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:i}):t.sdp=i}return i.apply(this,arguments)}}function ea(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let i=e.RTCPeerConnection.prototype.addIceCandidate;i&&0!==i.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function ec(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let i=e.RTCPeerConnection.prototype.setLocalDescription;i&&0!==i.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return i.apply(this,arguments);if(!(e={type:e.type,sdp:e.sdp}).type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}return e.sdp||"offer"!==e.type&&"answer"!==e.type?i.apply(this,[e]):("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then(e=>i.apply(this,[e]))})}"use strict";ee.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},ee.localCName=ee.generateIdentifier(),ee.splitLines=function(e){return e.trim().split("\n").map(e=>e.trim())},ee.splitSections=function(e){return e.split("\nm=").map((e,t)=>(t>0?"m="+e:e).trim()+"\r\n")},ee.getDescription=function(e){let t=ee.splitSections(e);return t&&t[0]},ee.getMediaSections=function(e){let t=ee.splitSections(e);return t.shift(),t},ee.matchPrefix=function(e,t){return ee.splitLines(e).filter(e=>0===e.indexOf(t))},ee.parseCandidate=function(e){let t,i={foundation:(t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" "))[0],component:{1:"rtp",2:"rtcp"}[t[1]]||t[1],protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]};for(let e=8;e0?t[0].split("/")[1]:"sendrecv",uri:t[1],attributes:t.slice(2).join(" ")}},ee.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+(e.attributes?" "+e.attributes:"")+"\r\n"},ee.parseFmtp=function(e){let t,i={},r=e.substring(e.indexOf(" ")+1).split(";");for(let e=0;e{void 0!==e.parameters[t]?r.push(t+"="+e.parameters[t]):r.push(t)}),t+="a=fmtp:"+i+" "+r.join(";")+"\r\n"}return t},ee.parseRtcpFb=function(e){let t=e.substring(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}},ee.writeRtcpFb=function(e){let t="",i=e.payloadType;return void 0!==e.preferredPayloadType&&(i=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach(e=>{t+="a=rtcp-fb:"+i+" "+e.type+(e.parameter&&e.parameter.length?" "+e.parameter:"")+"\r\n"}),t},ee.parseSsrcMedia=function(e){let t=e.indexOf(" "),i={ssrc:parseInt(e.substring(7,t),10)},r=e.indexOf(":",t);return r>-1?(i.attribute=e.substring(t+1,r),i.value=e.substring(r+1)):i.attribute=e.substring(t+1),i},ee.parseSsrcGroup=function(e){let t=e.substring(13).split(" ");return{semantics:t.shift(),ssrcs:t.map(e=>parseInt(e,10))}},ee.getMid=function(e){let t=ee.matchPrefix(e,"a=mid:")[0];if(t)return t.substring(6)},ee.parseFingerprint=function(e){let t=e.substring(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1].toUpperCase()}},ee.getDtlsParameters=function(e,t){return{role:"auto",fingerprints:ee.matchPrefix(e+t,"a=fingerprint:").map(ee.parseFingerprint)}},ee.writeDtlsParameters=function(e,t){let i="a=setup:"+t+"\r\n";return e.fingerprints.forEach(e=>{i+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"}),i},ee.parseCryptoLine=function(e){let t=e.substring(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},ee.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+("object"==typeof e.keyParams?ee.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+"\r\n"},ee.parseCryptoKeyParams=function(e){if(0!==e.indexOf("inline:"))return null;let t=e.substring(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}},ee.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")},ee.getCryptoParameters=function(e,t){return ee.matchPrefix(e+t,"a=crypto:").map(ee.parseCryptoLine)},ee.getIceParameters=function(e,t){let i=ee.matchPrefix(e+t,"a=ice-ufrag:")[0],r=ee.matchPrefix(e+t,"a=ice-pwd:")[0];return i&&r?{usernameFragment:i.substring(12),password:r.substring(10)}:null},ee.writeIceParameters=function(e){let t="a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n";return e.iceLite&&(t+="a=ice-lite\r\n"),t},ee.parseRtpParameters=function(e){let t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},i=ee.splitLines(e)[0].split(" ");t.profile=i[2];for(let r=3;r{t.headerExtensions.push(ee.parseExtmap(e))});let r=ee.matchPrefix(e,"a=rtcp-fb:* ").map(ee.parseRtcpFb);return t.codecs.forEach(e=>{r.forEach(t=>{e.rtcpFeedback.find(e=>e.type===t.type&&e.parameter===t.parameter)||e.rtcpFeedback.push(t)})}),t},ee.writeRtpDescription=function(e,t){let i="";i+="m="+e+" ",i+=t.codecs.length>0?"9":"0",i+=" "+(t.profile||"UDP/TLS/RTP/SAVPF")+" ",i+=t.codecs.map(e=>void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType).join(" ")+"\r\n",i+="c=IN IP4 0.0.0.0\r\n",i+="a=rtcp:9 IN IP4 0.0.0.0\r\n",t.codecs.forEach(e=>{i+=ee.writeRtpMap(e),i+=ee.writeFmtp(e),i+=ee.writeRtcpFb(e)});let r=0;return t.codecs.forEach(e=>{e.maxptime>r&&(r=e.maxptime)}),r>0&&(i+="a=maxptime:"+r+"\r\n"),t.headerExtensions&&t.headerExtensions.forEach(e=>{i+=ee.writeExtmap(e)}),i},ee.parseRtpEncodingParameters=function(e){let t,i=[],r=ee.parseRtpParameters(e),n=-1!==r.fecMechanisms.indexOf("RED"),s=-1!==r.fecMechanisms.indexOf("ULPFEC"),o=ee.matchPrefix(e,"a=ssrc:").map(e=>ee.parseSsrcMedia(e)).filter(e=>"cname"===e.attribute),a=o.length>0&&o[0].ssrc,c=ee.matchPrefix(e,"a=ssrc-group:FID").map(e=>e.substring(17).split(" ").map(e=>parseInt(e,10)));c.length>0&&c[0].length>1&&c[0][0]===a&&(t=c[0][1]),r.codecs.forEach(e=>{if("RTX"===e.name.toUpperCase()&&e.parameters.apt){let r={ssrc:a,codecPayloadType:parseInt(e.parameters.apt,10)};a&&t&&(r.rtx={ssrc:t}),i.push(r),n&&((r=JSON.parse(JSON.stringify(r))).fec={ssrc:a,mechanism:s?"red+ulpfec":"red"},i.push(r))}}),0===i.length&&a&&i.push({ssrc:a});let d=ee.matchPrefix(e,"b=");return d.length&&(d=0===d[0].indexOf("b=TIAS:")?parseInt(d[0].substring(7),10):0===d[0].indexOf("b=AS:")?950*parseInt(d[0].substring(5),10)-16e3:void 0,i.forEach(e=>{e.maxBitrate=d})),i},ee.parseRtcpParameters=function(e){let t={},i=ee.matchPrefix(e,"a=ssrc:").map(e=>ee.parseSsrcMedia(e)).filter(e=>"cname"===e.attribute)[0];i&&(t.cname=i.value,t.ssrc=i.ssrc);let r=ee.matchPrefix(e,"a=rtcp-rsize");return t.reducedSize=r.length>0,t.compound=0===r.length,t.mux=ee.matchPrefix(e,"a=rtcp-mux").length>0,t},ee.writeRtcpParameters=function(e){let t="";return e.reducedSize&&(t+="a=rtcp-rsize\r\n"),e.mux&&(t+="a=rtcp-mux\r\n"),void 0!==e.ssrc&&e.cname&&(t+="a=ssrc:"+e.ssrc+" cname:"+e.cname+"\r\n"),t},ee.parseMsid=function(e){let t,i=ee.matchPrefix(e,"a=msid:");if(1===i.length)return{stream:(t=i[0].substring(7).split(" "))[0],track:t[1]};let r=ee.matchPrefix(e,"a=ssrc:").map(e=>ee.parseSsrcMedia(e)).filter(e=>"msid"===e.attribute);if(r.length>0)return{stream:(t=r[0].value.split(" "))[0],track:t[1]}},ee.parseSctpDescription=function(e){let t,i=ee.parseMLine(e),r=ee.matchPrefix(e,"a=max-message-size:");r.length>0&&(t=parseInt(r[0].substring(19),10)),isNaN(t)&&(t=65536);let n=ee.matchPrefix(e,"a=sctp-port:");if(n.length>0)return{port:parseInt(n[0].substring(12),10),protocol:i.fmt,maxMessageSize:t};let s=ee.matchPrefix(e,"a=sctpmap:");if(s.length>0){let e=s[0].substring(10).split(" ");return{port:parseInt(e[0],10),protocol:e[1],maxMessageSize:t}}},ee.writeSctpDescription=function(e,t){let i=[];return i="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&i.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),i.join("")},ee.generateSessionId=function(){return Math.random().toString().substr(2,22)},ee.writeSessionBoilerplate=function(e,t,i){return"v=0\r\no="+(i||"thisisadapterortc")+" "+(e||ee.generateSessionId())+" "+(void 0!==t?t:2)+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},ee.getDirection=function(e,t){let i=ee.splitLines(e);for(let e=0;e{let r=0,o=0,a=0,c=[];e.onmessage=function({data:t}){if(0==o){let{size:i,part:r}=JSON.parse(t);o=i,a=r,e.send("READY")}else r+=t.byteLength,c.push(t),r==o&&(s[a]=new Blob(c),c=[],o=0,a=0,r=0,e.send("TOTAL_RECAIVED"))},e.onclose=()=>{0==--i&&n(new File(s,t.name,{type:t.type,lastModified:+new Date}))}})}async SendFile(e,t){this.isSending=!0,this.isStarted=!0;let i=await e.arrayBuffer(),r=Math.ceil(i.byteLength/1e7),n=Math.min(5,r);if("connected"!=this.webrtc.iceStatus)throw Error("WebRTC is a not ready");this.peer.send({type:"file",name:e.name,size:e.size,mimetype:e.type,partCount:r,channelCount:n,metadata:t});let s=[];for(let e=0;e{t.onopen=()=>{e(void 0)}}),s.push(t)}let o=0,a=()=>o{for(let t=0;t{0==--c&&(this.isSending=!1,this.isStarted=!1,e(void 0))})})}sendPartition(e,t,i,r){let[n,s]=t(),o=0,a=()=>{if(!(n instanceof ArrayBuffer))return;let e=n.slice(16e3*o,16e3*o+16e3);if(o++,0!=e.byteLength)return e};e.addEventListener("message",({data:i})=>{"READY"==i&&this.sendFileChannel(e,a),"TOTAL_RECAIVED"==i&&([n,s]=t(),o=0,!1!=n?e.send(JSON.stringify({size:n.byteLength,part:s})):(e.close(),r()))}),e.send(JSON.stringify({size:n.byteLength,part:s}))}sendFileChannel(e,t){e.addEventListener("bufferedamountlow",function(){let i=t();i&&e.send(i)}),e.bufferedAmountLowThreshold=15999;let i=t();i&&e.send(i)}}class ep{static{this.channels=new Map}static{this.requireGC=!1}static{this.defaultRTCConfig={iceCandidatePoolSize:0,iceTransportPolicy:"all",rtcpMuxPolicy:"require"}}isPolite(){return this.peer?.mwse.peer("me").socketId{this.eventConnectionState()}),this.rtc.addEventListener("icecandidate",(...e)=>{this.eventIcecandidate(...e)}),this.rtc.addEventListener("iceconnectionstatechange",()=>{this.eventICEConnectionState()}),this.rtc.addEventListener("icegatheringstatechange",()=>{this.eventICEGatherinState()}),this.rtc.addEventListener("negotiationneeded",()=>{this.eventNogationNeeded()}),this.rtc.addEventListener("signalingstatechange",()=>{this.eventSignalingState()}),this.rtc.addEventListener("track",(...e)=>{this.eventTrack(...e)}),this.rtc.addEventListener("datachannel",(...e)=>{this.eventDatachannel(...e)}),this.on("input",async e=>{switch(e.type){case"icecandidate":try{this.rtc.remoteDescription?await this.rtc.addIceCandidate(new RTCIceCandidate(e.value)):this.candicatePack.push(new RTCIceCandidate(e.value))}catch(e){}finally{console.log("ICE Canbet")}break;case"offer":{let t=!this.makingOffer&&("stable"==this.rtc.signalingState||this.isSettingRemoteAnswerPending);if(this.ignoreOffer=!this.isPolite()&&!t,this.ignoreOffer)return;for(let t of(this.isSettingRemoteAnswerPending=!1,await this.rtc.setRemoteDescription(new RTCSessionDescription(e.value)),this.isSettingRemoteAnswerPending=!1,this.candicatePack))await this.rtc.addIceCandidate(t);let i=await this.rtc.createAnswer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});await this.rtc.setLocalDescription(i),this.send({type:"answer",value:i});break}case"answer":for(let t of(await this.rtc.setRemoteDescription(new RTCSessionDescription(e.value)),this.candicatePack))await this.rtc.addIceCandidate(t);break;case"streamInfo":{let{id:t,value:i}=e,r=this.recaivingStream.get(t);r?this.recaivingStream.set(t,{...r,...i}):this.recaivingStream.set(t,i),this.send({type:"streamAccept",id:t});break}case"streamRemoved":{let{id:t}=e;this.emit("stream:stopped",this.recaivingStream.get(t)),this.recaivingStream.delete(t);break}case"streamAccept":{let{id:t}=e,i=this.sendingStream.get(t),r=[];if(i&&i.stream){for(let e of i.stream.getTracks())r.push(this.rtc.addTrack(e,i.stream));i.senders=r}break}case"message":this.emit("message",e.payload)}})}addEventListener(e,t){(this.events[e]||(this.events[e]=[])).push(t)}on(e,t){this.addEventListener(e,t)}async dispatch(e,...t){if(this.events[e])for(let i of this.events[e])await i(...t)}async emit(e,...t){await this.dispatch(e,...t)}connect(){this.channel||this.createDefaultDataChannel()}sendMessage(e){this.send({type:"message",payload:e})}createDefaultDataChannel(){let e=this.rtc.createDataChannel(":default:",{ordered:!0});e.addEventListener("open",()=>{this.channel=e,ep.channels.set(this.id,this),this.active=!0}),e.addEventListener("message",({data:e})=>{let t=JSON.parse(e);this.emit("input",t)}),e.addEventListener("close",()=>{this.channel=void 0,this.active=!1})}destroy(){this.active=!1,this.channel&&(this.channel.close(),this.channel=void 0),this.rtc&&this.rtc.close(),this.emit("disconnected"),ep.channels.delete(this.id)}eventDatachannel(e){":default:"==e.channel.label?(ep.channels.set(this.id,this),this.channel=e.channel,this.active=!0,e.channel.addEventListener("message",({data:e})=>{let t=JSON.parse(e);this.emit("input",t)}),e.channel.addEventListener("close",()=>{this.channel=void 0,ep.channels.delete(this.id),ep.requireGC=!0})):this.emit("datachannel",e.channel)}send(e){this.channel?.readyState=="open"?this.channel.send(JSON.stringify(e)):this.emit("output",e)}eventConnectionState(){this.connectionStatus=this.rtc.connectionState,"connected"==this.connectionStatus&&!1==this.active&&this.emit("connected"),"failed"==this.connectionStatus&&this.rtc.restartIce(),"closed"==this.connectionStatus&&this.active&&this.destroy()}eventIcecandidate(e){e.candidate&&this.send({type:"icecandidate",value:e.candidate})}eventICEConnectionState(){this.iceStatus=this.rtc.iceConnectionState}eventICEGatherinState(){this.gatheringStatus=this.rtc.iceGatheringState}async eventNogationNeeded(){try{this.makingOffer=!0;let e=await this.rtc.createOffer({iceRestart:!0,offerToReceiveAudio:!0,offerToReceiveVideo:!0});await this.rtc.setLocalDescription(e),this.send({type:"offer",value:e})}catch(e){console.error("Nogation Error:",e)}finally{this.makingOffer=!1}}eventSignalingState(){this.signalingStatus=this.rtc.signalingState}eventTrack(e){let t=e.receiver;if(e.streams.length)for(let i of e.streams){let e=this.recaivingStream.get(i.id);(e.recaivers||(e.recaivers=[])).push(t),null==this.recaivingStream.get(i.id).stream?(e.stream=i,this.emit("stream:added",this.recaivingStream.get(i.id))):e.stream=i}}sendStream(e,t,i){this.send({type:"streamInfo",id:e.id,value:{...i,name:t}}),this.sendingStream.set(e.id,{...i,id:e.id,name:t,stream:e})}stopStream(e){if("connected"==this.connectionStatus&&this.sendingStream.has(e.id)){let{stream:t}=this.sendingStream.get(e.id);for(let e of t.getTracks())for(let t of this.rtc.getSenders())t.track?.id==e.id&&this.rtc.removeTrack(t);this.send({type:"streamRemoved",id:t.id}),this.sendingStream.delete(e.id)}}stopAllStreams(){if("connected"==this.connectionStatus){for(let[,{stream:e}]of this.sendingStream)if(void 0!=e){for(let t of e.getTracks())for(let e of this.rtc.getSenders())e.track?.id==t.id&&this.rtc.removeTrack(e);this.send({type:"streamRemoved",id:e.id})}this.sendingStream.clear()}}async SendFile(e,t){if(!this.peer)throw Error("Peer is not ready");this.FileTransportChannel=new ed(this,this.peer),await this.FileTransportChannel.SendFile(e,t)}async RecaiveFile(e,t,i){if(!this.peer)throw Error("Peer is not ready");return this.FileTransportChannel=new ed(this,this.peer),await new Promise(r=>{this.FileTransportChannel&&this.FileTransportChannel.RecaiveFile(this.rtc,t,e,i,e=>{r(e)})})}}ep.requireGC=!1,setInterval(()=>{if(!1==ep.requireGC)return;let e=document.createElement("img");e.src=window.URL.createObjectURL(new Blob([new ArrayBuffer(5e7)])),e.onerror=function(){window.URL.revokeObjectURL(this.src)},ep.requireGC=!1},3e3);var eh=function(e){return e[e.PayloadMessagePack=-12873.54]="PayloadMessagePack",e[e.PayloadRTCBasePack=-12884.54]="PayloadRTCBasePack",e}(eh||{});class el extends n{constructor(e){super(),this.options={},this.selfSocket=!1,this.active=!1,this.peerConnection=!1,this.primaryChannel="datachannel",this.mwse=e,this.rtc=this.createRTC(),this.info=new o(this),this.on("pack",e=>{if(":rtcpack:"==e.type)return this.rtc.emit("input",e.payload);this.emit("message",e)})}createRTC(e,t){return this.rtc=new ep(e,t),this.rtc.peer=this,this.rtc.on("connected",()=>{this.peerConnection=!0}),this.rtc.on("disconnected",()=>{this.peerConnection=!1}),this.rtc.on("output",e=>{this.send({type:":rtcpack:",payload:e})}),this.rtc.on("message",e=>{this.emit("pack",e)}),this.rtc}setPeerOptions(e){"string"==typeof e?this.setSocketId(e):this.options=e}setSocketId(e){this.socketId=e}async metadata(){if("me"==this.socketId){let e=await this.mwse.EventPooling.request({type:"my/socketid"});return this.selfSocket=!0,this.active||=!0,this.socketId=e,this.emit("scope"),this.activeScope=!0,e}}async request(e){if(this.active)return await this.mwse.request(this.socketId,e)}equalTo(e){return this.socketId==e.socketId}async isReachable(){return await this.mwse.EventPooling.request({type:"is/reachable",to:this.socketId})}async enablePairAuth(){await this.mwse.EventPooling.request({type:"auth/pair-system",value:"everybody"})}async disablePairAuth(){await this.mwse.EventPooling.request({type:"auth/pair-system",value:"disable"})}async enablePairInfo(){await this.mwse.EventPooling.request({type:"connection/pairinfo",value:!0})}async disablePairInfo(){await this.mwse.EventPooling.request({type:"connection/pairinfo",value:!1})}async requestPair(){let{message:e,status:t}=await this.mwse.EventPooling.request({type:"request/pair",to:this.socketId});return("ALREADY-PAIRED"==e||"ALREADY-REQUESTED"==e)&&console.warn("Already paired or pair requested"),"fail"!=t||(console.error("Request Pair Error",t,e),!1)}async endPair(){await this.mwse.EventPooling.request({type:"end/pair",to:this.socketId}),this.forget()}async acceptPair(){let{message:e,status:t}=await this.mwse.EventPooling.request({type:"accept/pair",to:this.socketId});return"fail"!=t||(console.error("Pair Error",t,e),!1)}async rejectPair(){let{message:e,status:t}=await this.mwse.EventPooling.request({type:"reject/pair",to:this.socketId});return"fail"!=t||(console.error("Pair Error",t,e),!1)}async getPairedList(){let{value:e}=await this.mwse.EventPooling.request({type:"pair/list",to:this.socketId});return e}async send(e){let t,i=this.peerConnection&&this.rtc?.active,r=this.mwse.server.connected;if("websocket"==(i&&r?"websocket"==this.primaryChannel?"websocket":"datachannel":r?"websocket":"datachannel")){if(!this.mwse.writable)return console.warn("Socket is not writable");await this.mwse.EventPooling.request({type:"pack/to",pack:e,to:this.socketId})}else this.rtc?.sendMessage(e)}async forget(){this.mwse.peers.delete(this.socketId),this.mwse.pairs.delete(this.socketId)}}class em{constructor(e){this.info={},this.room=e,this.room.on("updateinfo",(e,t)=>{this.info[e]=t})}async fetch(e){if(e){let t=await this.room.mwse.EventPooling.request({type:"room/getinfo",roomId:this.room.roomId,name:e});"success"==t.status?this.info=t.value:console.warn(t.message)}else{let e=await this.room.mwse.EventPooling.request({type:"room/info",roomId:this.room.roomId});"success"==e.status?this.info=e.value:console.warn(e.message)}return this.info}set(e,t){this.info[e]=t,this.room.mwse.WSTSProtocol.SendOnly({type:"room/setinfo",roomId:this.room.roomId,name:e,value:t})}get(e){return e?this.info[e]:this.info}}class eu extends n{constructor(e){super(),this.peers=new Map,this.mwse=e,this.info=new em(this)}setRoomOptions(e){if("string"==typeof e)this.roomId=e;else{let t={joinType:"free",ifexistsJoin:!0,accessType:"private",notifyActionInvite:!0,notifyActionJoined:!0,notifyActionEjected:!0,autoFetchInfo:!0};Object.assign(t,e),this.config=t}}setRoomId(e){this.roomId=e}async createRoom(e){let t=this.config||e,i=await this.mwse.EventPooling.request({type:"create-room",...t});if("fail"==i.status){if("ALREADY-EXISTS"==i.message&&this.config.ifexistsJoin)return this.join();throw Error(i.message||i.messages)}this.options={...this.config,...i.room},this.roomId=i.room.id,this.mwse.rooms.set(this.roomId,this)}async join(){let e=await this.mwse.EventPooling.request({type:"joinroom",name:this.config.name,credential:this.config.credential,autoFetchInfo:this.config.autoFetchInfo||!1});if("fail"==e.status)throw Error(e.message);this.options={...this.config,...e.room},e.info&&(this.info.info=e.info),this.roomId=e.room.id,this.mwse.rooms.set(this.roomId,this)}async eject(){let{type:e}=await this.mwse.EventPooling.request({type:"ejectroom",roomId:this.roomId});this.peers.clear(),"success"==e&&this.mwse.rooms.delete(this.roomId)}async send(e,t=!1,i=!1){if(!this.mwse.writable)return console.warn("Socket is not writable");if(i){let{type:r}=await this.mwse.EventPooling.request({type:"pack/room",pack:e,to:this.roomId,wom:t,handshake:i});if("fail"==r)throw Error("Cant send message to room")}else await this.mwse.EventPooling.request({type:"pack/room",pack:e,to:this.roomId,wom:t,handshake:i})}async fetchPeers(e,t=!1){if(t){let{count:t}=await this.mwse.EventPooling.request({type:"room/peer-count",roomId:this.roomId,filter:e||{}});return t}{let{status:t,peers:i}=await this.mwse.EventPooling.request({type:"room-peers",roomId:this.roomId,filter:e||{}}),r=[];if("fail"==t)throw Error("Cant using peers on room");if("success"==t)for(let e of i){let t=this.mwse.peer(e,!0);r.push(t),this.peers.set(e,t)}return r}}}class ef{constructor(e){this.mwse=e,this.addListener()}addListener(){this.mwse.server?.onRecaivePack(e=>{this.PackAnalyze(e)})}SendRaw(e){this.mwse.server.tranferToServer(e)}SendOnly(e){this.mwse.server.tranferToServer([e,"R"])}SendRequest(e,t){this.mwse.server.tranferToServer([e,t,"R"])}StartStream(e,t){this.mwse.server.tranferToServer([e,t,"S"])}PackAnalyze(e){let[t,i,r]=e;if("number"==typeof i){let e=this.mwse.EventPooling.events.get(i);e?(e[0](t,r),"E"===r&&this.mwse.EventPooling.events.delete(i)):console.warn("Missing event sended from server")}else{let e=this.mwse.EventPooling.signals.get(i);if(e)for(let i of e)i(t);else console.warn("Missing event sended from server")}}}class eg extends n{constructor(e){super(),this.rooms=new Map,this.pairs=new Map,this.peers=new Map,this.writable=1,this.readable=1,eg.rtc=eg,this.server=new i(this,e),this.WSTSProtocol=new ef(this),this.EventPooling=new r(this),this.virtualPressure=new s(this),this.server.connect(),this.me=new el(this),this.me.scope(()=>{this.peers.set("me",this.me),this.peers.set(this.me.socketId,this.me)}),this.server.onActive(async()=>{this.me.setSocketId("me"),await this.me.metadata(),this.emit("scope"),this.activeScope=!0}),this.server.onPassive(async()=>{this.emit("close")}),this.packMessagingSystem()}destroy(){this.server.disconnect()}enableRecaiveData(){this.WSTSProtocol.SendOnly({type:"connection/packrecaive",value:1}),this.readable=1}disableRecaiveData(){this.WSTSProtocol.SendOnly({type:"connection/packrecaive",value:0}),this.readable=0}enableSendData(){this.WSTSProtocol.SendOnly({type:"connection/packsending",value:1}),this.writable=1}disableSendData(){this.WSTSProtocol.SendOnly({type:"connection/packsending",value:0}),this.writable=0}enableNotifyRoomInfo(){this.WSTSProtocol.SendOnly({type:"connection/roominfo",value:1})}disableNotifyRoomInfo(){this.WSTSProtocol.SendOnly({type:"connection/roominfo",value:0})}async request(e,t){let{pack:i}=await this.EventPooling.request({type:"request/to",to:e,pack:t});return i}async response(e,t,i){this.WSTSProtocol.SendOnly({type:"response/to",to:e,pack:i,id:t})}packMessagingSystem(){this.EventPooling.signal("pack",e=>{if(this.readable){let{from:t,pack:i}=e;this.peer(t,!0).emit("pack",i)}}),this.EventPooling.signal("request",e=>{let{from:t,pack:i,id:r}=e,n={body:i,response:e=>{this.response(t,r,e)},peer:this.peer(t,!0)};this.peer(t,!0).emit("request",n),this.peer("me").emit("request",n)}),this.EventPooling.signal("pack/room",e=>{if(this.readable){let{from:t,pack:i,sender:r}=e;this.room(t).emit("message",i,this.peer(r))}}),this.EventPooling.signal("room/joined",e=>{let{id:t,roomid:i}=e,r=this.room(i),n=this.peer(t,!0);r.peers.set(n.socketId,n),r.emit("join",n)}),this.EventPooling.signal("room/info",e=>{let{roomId:t,name:i,value:r}=e;this.room(t).emit("updateinfo",i,r)}),this.EventPooling.signal("room/ejected",e=>{let{id:t,roomid:i}=e,r=this.room(i),n=this.peer(t,!0);r.peers.delete(n.socketId),r.emit("eject",n)}),this.EventPooling.signal("room/closed",e=>{let{roomid:t}=e,i=this.room(t);i.peers.clear(),i.emit("close"),this.rooms.delete(t)}),this.EventPooling.signal("pair/info",e=>{let{from:t,name:i,value:r}=e,n=this.peer(t,!0);n.info.info[i]=r,n.emit("info",i,r)}),this.EventPooling.signal("request/pair",e=>{let{from:t,info:i}=e,r=this.peer(t,!0);r.info.info=i,r.emit("request/pair",r),this.peer("me").emit("request/pair",r)}),this.EventPooling.signal("peer/disconnect",e=>{let{id:t}=e,i=this.peer(t,!0);i.emit("disconnect",i)}),this.EventPooling.signal("accepted/pair",e=>{let{from:t,info:i}=e,r=this.peer(t,!0);r.info.info=i,r.emit("accepted/pair",r),this.peer("me").emit("accepted/pairr",r)}),this.EventPooling.signal("end/pair",e=>{let{from:t,info:i}=e;this.peer(t,!0).emit("endPair",i),this.peer("me").emit("endPair",t,i)})}room(e){if("string"==typeof e&&this.rooms.has(e))return this.rooms.get(e);let t=new eu(this);return t.setRoomOptions(e),this.emit("room"),t}peer(e,t=!1){if("string"==typeof e){if(this.peers.has(e))return this.peers.get(e);if(this.pairs.has(e))return this.pairs.get(e)}let i=new el(this);return i.setPeerOptions(e),i.active=t,this.peers.set(i.socketId,i),this.emit("peer",i),i}}window.MWSE=eg})(); //# sourceMappingURL=index.js.map