samvyo-js-sdk
Version:
This is the client js sdk for cutting-edge Samvyo real-time voice/video cloud.
1 lines • 9.42 MB
JavaScript
!function(A,I){"object"==typeof exports&&"undefined"!=typeof module?I(exports):"function"==typeof define&&define.amd?define(["exports"],I):I((A="undefined"!=typeof globalThis?globalThis:A||self).samvyo={})}(this,function(A){"use strict";function I(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var g,C,Q,B,E,i={},D={exports:{}};function n(){if(C)return g;C=1;var A=1e3,I=60*A,Q=60*I,B=24*Q,E=7*B,i=365.25*B;function D(A,I,g,C){var Q=I>=1.5*g;return Math.round(A/g)+" "+C+(Q?"s":"")}return g=function(g,C){C=C||{};var n=typeof g;if("string"===n&&g.length>0)return function(g){if((g=String(g)).length>100)return;var C=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(g);if(!C)return;var D=parseFloat(C[1]);switch((C[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return D*i;case"weeks":case"week":case"w":return D*E;case"days":case"day":case"d":return D*B;case"hours":case"hour":case"hrs":case"hr":case"h":return D*Q;case"minutes":case"minute":case"mins":case"min":case"m":return D*I;case"seconds":case"second":case"secs":case"sec":case"s":return D*A;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return D;default:return}}(g);if("number"===n&&isFinite(g))return C.long?function(g){var C=Math.abs(g);if(C>=B)return D(g,C,B,"day");if(C>=Q)return D(g,C,Q,"hour");if(C>=I)return D(g,C,I,"minute");if(C>=A)return D(g,C,A,"second");return g+" ms"}(g):function(g){var C=Math.abs(g);if(C>=B)return Math.round(g/B)+"d";if(C>=Q)return Math.round(g/Q)+"h";if(C>=I)return Math.round(g/I)+"m";if(C>=A)return Math.round(g/A)+"s";return g+"ms"}(g);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(g))}}function o(){return E||(E=1,function(A,I){I.formatArgs=function(I){if(I[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+I[0]+(this.useColors?"%c ":" ")+"+"+A.exports.humanize(this.diff),!this.useColors)return;const g="color: "+this.color;I.splice(1,0,g,"color: inherit");let C=0,Q=0;I[0].replace(/%[a-zA-Z%]/g,A=>{"%%"!==A&&(C++,"%c"===A&&(Q=C))}),I.splice(Q,0,g)},I.save=function(A){try{A?I.storage.setItem("debug",A):I.storage.removeItem("debug")}catch(g){}},I.load=function(){let A;try{A=I.storage.getItem("debug")||I.storage.getItem("DEBUG")}catch(g){}!A&&"undefined"!=typeof process&&"env"in process&&(A=process.env.DEBUG);return A},I.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let A;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(A=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(A[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},I.storage=function(){try{return localStorage}catch(A){}}(),I.destroy=(()=>{let A=!1;return()=>{A||(A=!0)}})(),I.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],I.log=console.debug||console.log||(()=>{}),A.exports=(B?Q:(B=1,Q=function(A){function I(A){let C,Q,B,E=null;function i(...A){if(!i.enabled)return;const g=i,Q=Number(new Date),B=Q-(C||Q);g.diff=B,g.prev=C,g.curr=Q,C=Q,A[0]=I.coerce(A[0]),"string"!=typeof A[0]&&A.unshift("%O");let E=0;A[0]=A[0].replace(/%([a-zA-Z%])/g,(C,Q)=>{if("%%"===C)return"%";E++;const B=I.formatters[Q];if("function"==typeof B){const I=A[E];C=B.call(g,I),A.splice(E,1),E--}return C}),I.formatArgs.call(g,A),(g.log||I.log).apply(g,A)}return i.namespace=A,i.useColors=I.useColors(),i.color=I.selectColor(A),i.extend=g,i.destroy=I.destroy,Object.defineProperty(i,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==E?E:(Q!==I.namespaces&&(Q=I.namespaces,B=I.enabled(A)),B),set:A=>{E=A}}),"function"==typeof I.init&&I.init(i),i}function g(A,g){const C=I(this.namespace+(void 0===g?":":g)+A);return C.log=this.log,C}function C(A,I){let g=0,C=0,Q=-1,B=0;for(;g<A.length;)if(C<I.length&&(I[C]===A[g]||"*"===I[C]))"*"===I[C]?(Q=C,B=g,C++):(g++,C++);else{if(-1===Q)return!1;C=Q+1,B++,g=B}for(;C<I.length&&"*"===I[C];)C++;return C===I.length}return I.debug=I,I.default=I,I.coerce=function(A){return A instanceof Error?A.stack||A.message:A},I.disable=function(){const A=[...I.names,...I.skips.map(A=>"-"+A)].join(",");return I.enable(""),A},I.enable=function(A){I.save(A),I.namespaces=A,I.names=[],I.skips=[];const g=("string"==typeof A?A:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const C of g)"-"===C[0]?I.skips.push(C.slice(1)):I.names.push(C)},I.enabled=function(A){for(const g of I.skips)if(C(A,g))return!1;for(const g of I.names)if(C(A,g))return!0;return!1},I.humanize=n(),I.destroy=function(){},Object.keys(A).forEach(g=>{I[g]=A[g]}),I.names=[],I.skips=[],I.formatters={},I.selectColor=function(A){let g=0;for(let I=0;I<A.length;I++)g=(g<<5)-g+A.charCodeAt(I),g|=0;return I.colors[Math.abs(g)%I.colors.length]},I.enable(I.load()),I}))(I);const{formatters:g}=A.exports;g.j=function(A){try{return JSON.stringify(A)}catch(I){return"[UnexpectedJSONParseError]: "+I.message}}}(D,D.exports)),D.exports}var s,w={};var a,y,G={};function R(){if(y)return a;y=1;var A,I=Object.defineProperty,g=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,Q=Object.prototype.hasOwnProperty,B={};((A,g)=>{for(var C in g)I(A,C,{get:g[C],enumerable:!0})})(B,{BrowserDetector:()=>o,KnownBrowsers:()=>E,KnownPlatforms:()=>i,default:()=>s}),A=B,a=((A,B,E,i)=>{if(B&&"object"==typeof B||"function"==typeof B)for(let D of C(B))!Q.call(A,D)&&D!==E&&I(A,D,{get:()=>B[D],enumerable:!(i=g(B,D))||i.enumerable});return A})(I({},"__esModule",{value:!0}),A);var E={chrome:"Google Chrome",brave:"Brave",crios:"Google Chrome",edge:"Microsoft Edge",edg:"Microsoft Edge",edgios:"Microsoft Edge",fennec:"Mozilla Firefox",jsdom:"JsDOM",mozilla:"Mozilla Firefox",fxios:"Mozilla Firefox",msie:"Microsoft Internet Explorer",opera:"Opera",opios:"Opera",opr:"Opera",opt:"Opera",rv:"Microsoft Internet Explorer",safari:"Safari",samsungbrowser:"Samsung Browser",electron:"Electron"},i={android:"Android",androidTablet:"Android Tablet",cros:"Chrome OS",fennec:"Android Tablet",ipad:"IPad",ipod:"IPod",iphone:"IPhone",jsdom:"JsDOM",linux:"Linux",mac:"Macintosh",tablet:"Android Tablet",win:"Windows","windows phone":"Windows Phone",xbox:"Microsoft Xbox"},D=(A,I=-1)=>{let g=new RegExp(`^-?\\d+(?:.\\d{0,${I}})?`),C=Number(A).toString().match(g);return C?C[0]:null},n=()=>typeof window<"u"?window.navigator:null,o=class{userAgent;constructor(A){this.userAgent=A||n()?.userAgent||null}static get VERSION(){return"4.1.0"}parseUserAgent(A){let I={},g=A||this.userAgent||"",C=g.toLowerCase().replace(/\s\s+/g," "),Q=/(edge)\/([\w.]+)/.exec(C)||/(edg)[/]([\w.]+)/.exec(C)||/(opr)[/]([\w.]+)/.exec(C)||/(opt)[/]([\w.]+)/.exec(C)||/(fxios)[/]([\w.]+)/.exec(C)||/(edgios)[/]([\w.]+)/.exec(C)||/(jsdom)[/]([\w.]+)/.exec(C)||/(samsungbrowser)[/]([\w.]+)/.exec(C)||/(electron)[/]([\w.]+)/.exec(C)||/(chrome)[/]([\w.]+)/.exec(C)||/(crios)[/]([\w.]+)/.exec(C)||/(opios)[/]([\w.]+)/.exec(C)||/(version)(applewebkit)[/]([\w.]+).*(safari)[/]([\w.]+)/.exec(C)||/(webkit)[/]([\w.]+).*(version)[/]([\w.]+).*(safari)[/]([\w.]+)/.exec(C)||/(applewebkit)[/]([\w.]+).*(safari)[/]([\w.]+)/.exec(C)||/(webkit)[/]([\w.]+)/.exec(C)||/(opera)(?:.*version|)[/]([\w.]+)/.exec(C)||/(msie) ([\w.]+)/.exec(C)||/(fennec)[/]([\w.]+)/.exec(C)||C.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(C)||C.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(C)||[],B=/(ipad)/.exec(C)||/(ipod)/.exec(C)||/(iphone)/.exec(C)||/(jsdom)/.exec(C)||/(windows phone)/.exec(C)||/(xbox)/.exec(C)||/(win)/.exec(C)||/(tablet)/.exec(C)||/(android)/.test(C)&&!1===/(mobile)/.test(C)&&["androidTablet"]||/(android)/.exec(C)||/(mac)/.exec(C)||/(linux)/.exec(C)||/(cros)/.exec(C)||[],o=Q[5]||Q[3]||Q[1]||null,s=B[0]||null,w=Q[4]||Q[2]||null,a=n();"chrome"===o&&"function"==typeof a?.brave?.isBrave&&(o="brave"),o&&(I[o]=!0),s&&(I[s]=!0);let y=!!(I.tablet||I.android||I.androidTablet),G=!!(I.ipad||I.tablet||I.androidTablet),R=!!(I.android||I.androidTablet||I.tablet||I.ipad||I.ipod||I.iphone||I["windows phone"]),S=!!(I.cros||I.mac||I.linux||I.win),h=!!(I.brave||I.chrome||I.crios||I.opr||I.safari||I.edg||I.electron),N=!(!I.msie&&!I.rv),K=!(!I.chrome&&!I.crios),M=!!(I.fxios||I.fennec||I.mozilla),F=!!I.safari,L=!!(I.opera||I.opios||I.opr||I.opt),k=!!(I.edg||I.edge||I.edgios);return{name:E[o]??null,platform:i[s]??null,userAgent:g,version:w,shortVersion:w?D(parseFloat(w),2):null,isAndroid:y,isTablet:G,isMobile:R,isDesktop:S,isWebkit:h,isIE:N,isChrome:K,isFireFox:M,isSafari:F,isOpera:L,isEdge:k}}getBrowserInfo(){let A=this.parseUserAgent();return{name:A.name,platform:A.platform,userAgent:A.userAgent,version:A.version,shortVersion:A.shortVersion}}},s=o;return a}var S,h={};function N(){if(S)return h;S=1,Object.defineProperty(h,"__esModule",{value:!0}),h.Logger=void 0;const A=o(),I="mediasoup-client";return h.Logger=class{_debug;_warn;_error;constructor(g){g?(this._debug=(0,A.default)(`${I}:${g}`),this._warn=(0,A.default)(`${I}:WARN:${g}`),this._error=(0,A.default)(`${I}:ERROR:${g}`)):(this._debug=(0,A.default)(I),this._warn=(0,A.default)(`${I}:WARN`),this._error=(0,A.default)(`${I}:ERROR`)),this._debug.log=function(){}.bind(),this._warn.log=function(){}.bind(),this._error.log=function(){}.bind()}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}},h}var K,M,F={},L={exports:{}};function k(){if(K)return L.exports;K=1;var A,I="object"==typeof Reflect?Reflect:null,g=I&&"function"==typeof I.apply?I.apply:function(A,I,g){return Function.prototype.apply.call(A,I,g)};A=I&&"function"==typeof I.ownKeys?I.ownKeys:Object.getOwnPropertySymbols?function(A){return Object.getOwnPropertyNames(A).concat(Object.getOwnPropertySymbols(A))}:function(A){return Object.getOwnPropertyNames(A)};var C=Number.isNaN||function(A){return A!=A};function Q(){Q.init.call(this)}L.exports=Q,L.exports.once=function(A,I){return new Promise(function(g,C){function Q(g){A.removeListener(I,B),C(g)}function B(){"function"==typeof A.removeListener&&A.removeListener("error",Q),g([].slice.call(arguments))}y(A,I,B,{once:!0}),"error"!==I&&function(A,I,g){"function"==typeof A.on&&y(A,"error",I,g)}(A,Q,{once:!0})})},Q.EventEmitter=Q,Q.prototype._events=void 0,Q.prototype._eventsCount=0,Q.prototype._maxListeners=void 0;var B=10;function E(A){if("function"!=typeof A)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof A)}function i(A){return void 0===A._maxListeners?Q.defaultMaxListeners:A._maxListeners}function D(A,I,g,C){var Q,B,D;if(E(g),void 0===(B=A._events)?(B=A._events=Object.create(null),A._eventsCount=0):(void 0!==B.newListener&&(A.emit("newListener",I,g.listener?g.listener:g),B=A._events),D=B[I]),void 0===D)D=B[I]=g,++A._eventsCount;else if("function"==typeof D?D=B[I]=C?[g,D]:[D,g]:C?D.unshift(g):D.push(g),(Q=i(A))>0&&D.length>Q&&!D.warned){D.warned=!0;var n=new Error("Possible EventEmitter memory leak detected. "+D.length+" "+String(I)+" listeners added. Use emitter.setMaxListeners() to increase limit");n.name="MaxListenersExceededWarning",n.emitter=A,n.type=I,n.count=D.length,console&&console.warn}return A}function n(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function o(A,I,g){var C={fired:!1,wrapFn:void 0,target:A,type:I,listener:g},Q=n.bind(C);return Q.listener=g,C.wrapFn=Q,Q}function s(A,I,g){var C=A._events;if(void 0===C)return[];var Q=C[I];return void 0===Q?[]:"function"==typeof Q?g?[Q.listener||Q]:[Q]:g?function(A){for(var I=new Array(A.length),g=0;g<I.length;++g)I[g]=A[g].listener||A[g];return I}(Q):a(Q,Q.length)}function w(A){var I=this._events;if(void 0!==I){var g=I[A];if("function"==typeof g)return 1;if(void 0!==g)return g.length}return 0}function a(A,I){for(var g=new Array(I),C=0;C<I;++C)g[C]=A[C];return g}function y(A,I,g,C){if("function"==typeof A.on)C.once?A.once(I,g):A.on(I,g);else{if("function"!=typeof A.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof A);A.addEventListener(I,function Q(B){C.once&&A.removeEventListener(I,Q),g(B)})}}return Object.defineProperty(Q,"defaultMaxListeners",{enumerable:!0,get:function(){return B},set:function(A){if("number"!=typeof A||A<0||C(A))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+A+".");B=A}}),Q.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Q.prototype.setMaxListeners=function(A){if("number"!=typeof A||A<0||C(A))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+A+".");return this._maxListeners=A,this},Q.prototype.getMaxListeners=function(){return i(this)},Q.prototype.emit=function(A){for(var I=[],C=1;C<arguments.length;C++)I.push(arguments[C]);var Q="error"===A,B=this._events;if(void 0!==B)Q=Q&&void 0===B.error;else if(!Q)return!1;if(Q){var E;if(I.length>0&&(E=I[0]),E instanceof Error)throw E;var i=new Error("Unhandled error."+(E?" ("+E.message+")":""));throw i.context=E,i}var D=B[A];if(void 0===D)return!1;if("function"==typeof D)g(D,this,I);else{var n=D.length,o=a(D,n);for(C=0;C<n;++C)g(o[C],this,I)}return!0},Q.prototype.addListener=function(A,I){return D(this,A,I,!1)},Q.prototype.on=Q.prototype.addListener,Q.prototype.prependListener=function(A,I){return D(this,A,I,!0)},Q.prototype.once=function(A,I){return E(I),this.on(A,o(this,A,I)),this},Q.prototype.prependOnceListener=function(A,I){return E(I),this.prependListener(A,o(this,A,I)),this},Q.prototype.removeListener=function(A,I){var g,C,Q,B,i;if(E(I),void 0===(C=this._events))return this;if(void 0===(g=C[A]))return this;if(g===I||g.listener===I)0===--this._eventsCount?this._events=Object.create(null):(delete C[A],C.removeListener&&this.emit("removeListener",A,g.listener||I));else if("function"!=typeof g){for(Q=-1,B=g.length-1;B>=0;B--)if(g[B]===I||g[B].listener===I){i=g[B].listener,Q=B;break}if(Q<0)return this;0===Q?g.shift():function(A,I){for(;I+1<A.length;I++)A[I]=A[I+1];A.pop()}(g,Q),1===g.length&&(C[A]=g[0]),void 0!==C.removeListener&&this.emit("removeListener",A,i||I)}return this},Q.prototype.off=Q.prototype.removeListener,Q.prototype.removeAllListeners=function(A){var I,g,C;if(void 0===(g=this._events))return this;if(void 0===g.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==g[A]&&(0===--this._eventsCount?this._events=Object.create(null):delete g[A]),this;if(0===arguments.length){var Q,B=Object.keys(g);for(C=0;C<B.length;++C)"removeListener"!==(Q=B[C])&&this.removeAllListeners(Q);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(I=g[A]))this.removeListener(A,I);else if(void 0!==I)for(C=I.length-1;C>=0;C--)this.removeListener(A,I[C]);return this},Q.prototype.listeners=function(A){return s(this,A,!0)},Q.prototype.rawListeners=function(A){return s(this,A,!1)},Q.listenerCount=function(A,I){return"function"==typeof A.listenerCount?A.listenerCount(I):w.call(A,I)},Q.prototype.listenerCount=w,Q.prototype.eventNames=function(){return this._eventsCount>0?A(this._events):[]},L.exports}function J(){if(M)return F;M=1,Object.defineProperty(F,"__esModule",{value:!0}),F.EnhancedEventEmitter=void 0;const A=k(),I=new(N().Logger)("EnhancedEventEmitter");class g extends A.EventEmitter{constructor(){super(),this.setMaxListeners(1/0)}close(){super.removeAllListeners()}emit(A,...I){return super.emit(A,...I)}safeEmit(A,...g){try{return super.emit(A,...g)}catch(C){I.error("safeEmit() | event listener threw an error [eventName:%s]:%o",A,C);try{super.emit("listenererror",A,C)}catch(Q){}return Boolean(super.listenerCount(A))}}on(A,I){return super.on(A,I),this}off(A,I){return super.off(A,I),this}addListener(A,I){return super.on(A,I),this}prependListener(A,I){return super.prependListener(A,I),this}once(A,I){return super.once(A,I),this}prependOnceListener(A,I){return super.prependOnceListener(A,I),this}removeListener(A,I){return super.off(A,I),this}removeAllListeners(A){return super.removeAllListeners(A),this}listenerCount(A){return super.listenerCount(A)}listeners(A){return super.listeners(A)}rawListeners(A){return super.rawListeners(A)}}return F.EnhancedEventEmitter=g,F}var U,q={};function t(){if(U)return q;U=1,Object.defineProperty(q,"__esModule",{value:!0}),q.InvalidStateError=q.UnsupportedError=void 0;class A extends Error{constructor(I){super(I),this.name="UnsupportedError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,A):this.stack=new Error(I).stack}}q.UnsupportedError=A;class I extends Error{constructor(A){super(A),this.name="InvalidStateError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,I):this.stack=new Error(A).stack}}return q.InvalidStateError=I,q}var r,c={};function H(){if(r)return c;return r=1,Object.defineProperty(c,"__esModule",{value:!0}),c.clone=function(A){return void 0===A?void 0:Number.isNaN(A)?NaN:"function"==typeof structuredClone?structuredClone(A):JSON.parse(JSON.stringify(A))},c.generateRandomNumber=function(){return Math.round(1e7*Math.random())},c.deepFreeze=function A(I){const g=Reflect.ownKeys(I);for(const C of g){const g=I[C];(g&&"object"==typeof g||"function"==typeof g)&&A(g)}return Object.freeze(I)},c}var Y,e,d,b={},x={},u={};function p(){if(e)return x;e=1,Object.defineProperty(x,"__esModule",{value:!0}),x.ProfileLevelId=x.Level=x.Profile=void 0,x.parseProfileLevelId=w,x.profileLevelIdToString=a,x.profileToString=function(g){switch(g){case I.ConstrainedBaseline:return"ConstrainedBaseline";case I.Baseline:return"Baseline";case I.Main:return"Main";case I.ConstrainedHigh:return"ConstrainedHigh";case I.High:return"High";case I.PredictiveHigh444:return"PredictiveHigh444";default:return void A.warn(`profileToString() | unrecognized profile ${g}`)}},x.levelToString=function(I){switch(I){case C.L1_b:return"1b";case C.L1:return"1";case C.L1_1:return"1.1";case C.L1_2:return"1.2";case C.L1_3:return"1.3";case C.L2:return"2";case C.L2_1:return"2.1";case C.L2_2:return"2.2";case C.L3:return"3";case C.L3_1:return"3.1";case C.L3_2:return"3.2";case C.L4:return"4";case C.L4_1:return"4.1";case C.L4_2:return"4.2";case C.L5:return"5";case C.L5_1:return"5.1";case C.L5_2:return"5.2";default:return void A.warn(`levelToString() | unrecognized level ${I}`)}},x.parseSdpProfileLevelId=y,x.isSameProfile=function(A={},I={}){const g=y(A),C=y(I);return Boolean(g&&C&&g.profile===C.profile)},x.isSameProfileAndLevel=function(A={},I={}){const g=y(A),C=y(I);return Boolean(g&&C&&g.profile===C.profile&&g.level==C.level)},x.generateProfileLevelIdStringForAnswer=function(I={},g={}){if(!I["profile-level-id"]&&!g["profile-level-id"])return void A.warn("generateProfileLevelIdStringForAnswer() | profile-level-id missing in local and remote params");const Q=y(I),E=y(g);if(!Q)throw new TypeError("invalid local_profile_level_id");if(!E)throw new TypeError("invalid remote_profile_level_id");if(Q.profile!==E.profile)throw new TypeError("H264 Profile mismatch");const i=R(I)&&R(g),D=Q.level,n=E.level,o=(w=D,G=n,function(A,I){return A===C.L1_b?I!==C.L1&&I!==C.L1_b:I===C.L1_b?A!==C.L1:A<I}(w,G)?w:G),s=i?D:o;var w,G;return A.debug(`generateProfileLevelIdStringForAnswer() | result [profile:${Q.profile}, level:${s}]`),a(new B(Q.profile,s))},x.supportedLevel=function(I,g){for(let C=s.length-1;C>=0;--C){const Q=s[C];if(256*Q.max_macroblock_frame_size<=I&&Q.max_macroblocks_per_second<=g*Q.max_macroblock_frame_size)return A.debug(`supportedLevel() | result [max_frame_pixel_count:${I}, max_fps:${g}, level:${Q.level}]`),Q.level}return void A.warn(`supportedLevel() | no level supported [max_frame_pixel_count:${I}, max_fps:${g}]`)};const A=new(function(){if(Y)return u;Y=1;var A=u&&u.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(u,"__esModule",{value:!0}),u.Logger=void 0;const I=A(o()),g="h264-profile-level-id";return u.Logger=class{constructor(A){A?(this._debug=(0,I.default)(`${g}:${A}`),this._warn=(0,I.default)(`${g}:WARN:${A}`),this._error=(0,I.default)(`${g}:ERROR:${A}`)):(this._debug=(0,I.default)(g),this._warn=(0,I.default)(`${g}:WARN`),this._error=(0,I.default)(`${g}:ERROR`)),this._debug.log=function(){}.bind(),this._warn.log=function(){}.bind(),this._error.log=function(){}.bind()}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}},u}().Logger);var I,g,C,Q;(g=I||(x.Profile=I={}))[g.ConstrainedBaseline=1]="ConstrainedBaseline",g[g.Baseline=2]="Baseline",g[g.Main=3]="Main",g[g.ConstrainedHigh=4]="ConstrainedHigh",g[g.High=5]="High",g[g.PredictiveHigh444=6]="PredictiveHigh444",(Q=C||(x.Level=C={}))[Q.L1_b=0]="L1_b",Q[Q.L1=10]="L1",Q[Q.L1_1=11]="L1_1",Q[Q.L1_2=12]="L1_2",Q[Q.L1_3=13]="L1_3",Q[Q.L2=20]="L2",Q[Q.L2_1=21]="L2_1",Q[Q.L2_2=22]="L2_2",Q[Q.L3=30]="L3",Q[Q.L3_1=31]="L3_1",Q[Q.L3_2=32]="L3_2",Q[Q.L4=40]="L4",Q[Q.L4_1=41]="L4_1",Q[Q.L4_2=42]="L4_2",Q[Q.L5=50]="L5",Q[Q.L5_1=51]="L5_1",Q[Q.L5_2=52]="L5_2";class B{constructor(A,I){this.profile=A,this.level=I}}x.ProfileLevelId=B;const E=new B(I.ConstrainedBaseline,C.L3_1);class i{constructor(A){this.mask=~G("x",A),this.masked_value=G("1",A)}isMatch(A){return this.masked_value===(A&this.mask)}}class D{constructor(A,I,g){this.profile_idc=A,this.profile_iop=I,this.profile=g}}const n=[new D(66,new i("x1xx0000"),I.ConstrainedBaseline),new D(77,new i("1xxx0000"),I.ConstrainedBaseline),new D(88,new i("11xx0000"),I.ConstrainedBaseline),new D(66,new i("x0xx0000"),I.Baseline),new D(88,new i("10xx0000"),I.Baseline),new D(77,new i("0x0x0000"),I.Main),new D(100,new i("00000000"),I.High),new D(100,new i("00001100"),I.ConstrainedHigh),new D(244,new i("00000000"),I.PredictiveHigh444)],s=[{max_macroblocks_per_second:1485,max_macroblock_frame_size:99,level:C.L1},{max_macroblocks_per_second:1485,max_macroblock_frame_size:99,level:C.L1_b},{max_macroblocks_per_second:3e3,max_macroblock_frame_size:396,level:C.L1_1},{max_macroblocks_per_second:6e3,max_macroblock_frame_size:396,level:C.L1_2},{max_macroblocks_per_second:11880,max_macroblock_frame_size:396,level:C.L1_3},{max_macroblocks_per_second:11880,max_macroblock_frame_size:396,level:C.L2},{max_macroblocks_per_second:19800,max_macroblock_frame_size:792,level:C.L2_1},{max_macroblocks_per_second:20250,max_macroblock_frame_size:1620,level:C.L2_2},{max_macroblocks_per_second:40500,max_macroblock_frame_size:1620,level:C.L3},{max_macroblocks_per_second:108e3,max_macroblock_frame_size:3600,level:C.L3_1},{max_macroblocks_per_second:216e3,max_macroblock_frame_size:5120,level:C.L3_2},{max_macroblocks_per_second:245760,max_macroblock_frame_size:8192,level:C.L4},{max_macroblocks_per_second:245760,max_macroblock_frame_size:8192,level:C.L4_1},{max_macroblocks_per_second:522240,max_macroblock_frame_size:8704,level:C.L4_2},{max_macroblocks_per_second:589824,max_macroblock_frame_size:22080,level:C.L5},{max_macroblocks_per_second:983040,max_macroblock_frame_size:36864,level:C.L5_1},{max_macroblocks_per_second:2073600,max_macroblock_frame_size:36864,level:C.L5_2}];function w(I){if("string"!=typeof I||6!==I.length)return;const g=parseInt(I,16);if(0===g)return;const Q=255&g,E=g>>8&255,i=g>>16&255;let D;switch(Q){case C.L1_1:D=16&E?C.L1_b:C.L1_1;break;case C.L1:case C.L1_2:case C.L1_3:case C.L2:case C.L2_1:case C.L2_2:case C.L3:case C.L3_1:case C.L3_2:case C.L4:case C.L4_1:case C.L4_2:case C.L5:case C.L5_1:case C.L5_2:D=Q;break;default:return void A.warn(`parseProfileLevelId() | unrecognized level_idc [str:${I}, level_idc:${Q}]`)}for(const C of n)if(i===C.profile_idc&&C.profile_iop.isMatch(E))return A.debug(`parseProfileLevelId() | result [str:${I}, profile:${C.profile}, level:${D}]`),new B(C.profile,D);A.warn(`parseProfileLevelId() | unrecognized profile_idc/profile_iop combination [str:${I}, profile_idc:${i}, profile_iop:${E}]`)}function a(g){if(g.level==C.L1_b)switch(g.profile){case I.ConstrainedBaseline:return"42f00b";case I.Baseline:return"42100b";case I.Main:return"4d100b";default:return void A.warn(`profileLevelIdToString() | Level 1_b not is allowed for profile ${g.profile}`)}let Q;switch(g.profile){case I.ConstrainedBaseline:Q="42e0";break;case I.Baseline:Q="4200";break;case I.Main:Q="4d00";break;case I.ConstrainedHigh:Q="640c";break;case I.High:Q="6400";break;case I.PredictiveHigh444:Q="f400";break;default:return void A.warn(`profileLevelIdToString() | unrecognized profile ${g.profile}`)}let B=g.level.toString(16);return 1===B.length&&(B=`0${B}`),`${Q}${B}`}function y(A={}){const I=A["profile-level-id"];return I?w(I):E}function G(A,I){return Number(I[0]===A)<<7|Number(I[1]===A)<<6|Number(I[2]===A)<<5|Number(I[3]===A)<<4|Number(I[4]===A)<<3|Number(I[5]===A)<<2|Number(I[6]===A)<<1|Number(I[7]===A)}function R(A={}){const I=A["level-asymmetry-allowed"];return!0===I||1===I||"1"===I}return x}function T(){if(d)return b;d=1,Object.defineProperty(b,"__esModule",{value:!0}),b.validateAndNormalizeRtpCapabilities=function(A){if("object"!=typeof A)throw new TypeError("caps is not an object");if(A.codecs&&!Array.isArray(A.codecs))throw new TypeError("caps.codecs is not an array");A.codecs||(A.codecs=[]);for(const I of A.codecs)E(I);if(A.headerExtensions&&!Array.isArray(A.headerExtensions))throw new TypeError("caps.headerExtensions is not an array");A.headerExtensions||(A.headerExtensions=[]);for(const I of A.headerExtensions)D(I)},b.validateAndNormalizeRtpParameters=B,b.validateAndNormalizeSctpStreamParameters=function(A){if("object"!=typeof A)throw new TypeError("params is not an object");if("number"!=typeof A.streamId)throw new TypeError("missing params.streamId");let I=!1;"boolean"==typeof A.ordered?I=!0:A.ordered=!0;if(A.maxPacketLifeTime&&"number"!=typeof A.maxPacketLifeTime)throw new TypeError("invalid params.maxPacketLifeTime");if(A.maxRetransmits&&"number"!=typeof A.maxRetransmits)throw new TypeError("invalid params.maxRetransmits");if(A.maxPacketLifeTime&&A.maxRetransmits)throw new TypeError("cannot provide both maxPacketLifeTime and maxRetransmits");if(I&&A.ordered&&(A.maxPacketLifeTime||A.maxRetransmits))throw new TypeError("cannot be ordered with maxPacketLifeTime or maxRetransmits");I||!A.maxPacketLifeTime&&!A.maxRetransmits||(A.ordered=!1);if(A.label&&"string"!=typeof A.label)throw new TypeError("invalid params.label");if(A.protocol&&"string"!=typeof A.protocol)throw new TypeError("invalid params.protocol")},b.validateSctpCapabilities=function(A){if("object"!=typeof A)throw new TypeError("caps is not an object");if(!A.numStreams||"object"!=typeof A.numStreams)throw new TypeError("missing caps.numStreams");!function(A){if("object"!=typeof A)throw new TypeError("numStreams is not an object");if("number"!=typeof A.OS)throw new TypeError("missing numStreams.OS");if("number"!=typeof A.MIS)throw new TypeError("missing numStreams.MIS")}(A.numStreams)},b.getExtendedRtpCapabilities=function(A,I,g){const C={codecs:[],headerExtensions:[]};if(g)for(const Q of A.codecs??[]){if(w(Q))continue;const A=(I.codecs??[]).find(A=>a(A,Q,{strict:!0,modify:!0}));if(!A)continue;const g={kind:Q.kind,mimeType:Q.mimeType,clockRate:Q.clockRate,channels:Q.channels,localPayloadType:Q.preferredPayloadType,localRtxPayloadType:void 0,remotePayloadType:A.preferredPayloadType,remoteRtxPayloadType:void 0,localParameters:Q.parameters??{},remoteParameters:A.parameters??{},rtcpFeedback:G(Q,A)};C.codecs.push(g)}else for(const Q of I.codecs??[]){if(w(Q))continue;const I=(A.codecs??[]).find(A=>a(A,Q,{strict:!0,modify:!0}));if(!I)continue;const g={kind:I.kind,mimeType:I.mimeType,clockRate:I.clockRate,channels:I.channels,localPayloadType:I.preferredPayloadType,localRtxPayloadType:void 0,remotePayloadType:Q.preferredPayloadType,remoteRtxPayloadType:void 0,localParameters:I.parameters??{},remoteParameters:Q.parameters??{},rtcpFeedback:G(I,Q)};C.codecs.push(g)}for(const Q of C.codecs){const g=A.codecs.find(A=>w(A)&&A.parameters?.apt===Q.localPayloadType),C=I.codecs.find(A=>w(A)&&A.parameters?.apt===Q.remotePayloadType);g&&C&&(Q.localRtxPayloadType=g.preferredPayloadType,Q.remoteRtxPayloadType=C.preferredPayloadType)}for(const Q of I.headerExtensions){const I=A.headerExtensions.find(A=>y(A,Q));if(!I)continue;const g={kind:Q.kind,uri:Q.uri,sendId:I.preferredId,recvId:Q.preferredId,encrypt:I.preferredEncrypt??!1,direction:"sendrecv"};switch(Q.direction){case"sendrecv":g.direction="sendrecv";break;case"recvonly":g.direction="sendonly";break;case"sendonly":g.direction="recvonly";break;case"inactive":g.direction="inactive"}C.headerExtensions.push(g)}return C},b.getRecvRtpCapabilities=function(A){const I={codecs:[],headerExtensions:[]};for(const g of A.codecs){const A={kind:g.kind,mimeType:g.mimeType,preferredPayloadType:g.remotePayloadType,clockRate:g.clockRate,channels:g.channels,parameters:g.localParameters,rtcpFeedback:g.rtcpFeedback};if(I.codecs.push(A),!g.remoteRtxPayloadType)continue;const C={kind:g.kind,mimeType:`${g.kind}/rtx`,preferredPayloadType:g.remoteRtxPayloadType,clockRate:g.clockRate,parameters:{apt:g.remotePayloadType},rtcpFeedback:[]};I.codecs.push(C)}for(const g of A.headerExtensions){if("sendrecv"!==g.direction&&"recvonly"!==g.direction)continue;const A={kind:g.kind,uri:g.uri,preferredId:g.recvId,preferredEncrypt:g.encrypt??!1,direction:g.direction};I.headerExtensions.push(A)}return I},b.getSendingRtpParameters=function(A,I){const g={mid:void 0,codecs:[],headerExtensions:[],encodings:[],rtcp:{}};for(const C of I.codecs){if(C.kind!==A)continue;const I={mimeType:C.mimeType,payloadType:C.localPayloadType,clockRate:C.clockRate,channels:C.channels,parameters:C.localParameters,rtcpFeedback:C.rtcpFeedback};if(g.codecs.push(I),C.localRtxPayloadType){const A={mimeType:`${C.kind}/rtx`,payloadType:C.localRtxPayloadType,clockRate:C.clockRate,parameters:{apt:C.localPayloadType},rtcpFeedback:[]};g.codecs.push(A)}}for(const C of I.headerExtensions){if(C.kind&&C.kind!==A||"sendrecv"!==C.direction&&"sendonly"!==C.direction)continue;const I={uri:C.uri,id:C.sendId,encrypt:C.encrypt,parameters:{}};g.headerExtensions.push(I)}return g},b.getSendingRemoteRtpParameters=function(A,I){const g={mid:void 0,codecs:[],headerExtensions:[],encodings:[],rtcp:{}};for(const C of I.codecs){if(C.kind!==A)continue;const I={mimeType:C.mimeType,payloadType:C.localPayloadType,clockRate:C.clockRate,channels:C.channels,parameters:C.remoteParameters,rtcpFeedback:C.rtcpFeedback};if(g.codecs.push(I),C.localRtxPayloadType){const A={mimeType:`${C.kind}/rtx`,payloadType:C.localRtxPayloadType,clockRate:C.clockRate,parameters:{apt:C.localPayloadType},rtcpFeedback:[]};g.codecs.push(A)}}for(const C of I.headerExtensions){if(C.kind&&C.kind!==A||"sendrecv"!==C.direction&&"sendonly"!==C.direction)continue;const I={uri:C.uri,id:C.sendId,encrypt:C.encrypt,parameters:{}};g.headerExtensions.push(I)}if(g.headerExtensions.some(A=>"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"===A.uri))for(const C of g.codecs)C.rtcpFeedback=(C.rtcpFeedback??[]).filter(A=>"goog-remb"!==A.type);else if(g.headerExtensions.some(A=>"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"===A.uri))for(const C of g.codecs)C.rtcpFeedback=(C.rtcpFeedback??[]).filter(A=>"transport-cc"!==A.type);else for(const C of g.codecs)C.rtcpFeedback=(C.rtcpFeedback??[]).filter(A=>"transport-cc"!==A.type&&"goog-remb"!==A.type);return g},b.reduceCodecs=function(A,I){const g=[];if(I){for(let C=0;C<A.length;++C)if(a(A[C],I,{strict:!0})){g.push(A[C]),w(A[C+1])&&g.push(A[C+1]);break}if(0===g.length)throw new TypeError("no matching codec found")}else g.push(A[0]),w(A[1])&&g.push(A[1]);return g},b.generateProbatorRtpParameters=function(A){B(A=I.clone(A));const E={mid:g,codecs:[],headerExtensions:[],encodings:[{ssrc:C}],rtcp:{cname:"probator"}};return E.codecs.push(A.codecs[0]),E.codecs[0].payloadType=Q,E.headerExtensions=A.headerExtensions,E},b.canSend=function(A,I){return(I.codecs??[]).some(I=>I.kind===A)},b.canReceive=function(A,I){if(B(A),0===A.codecs.length)return!1;const g=A.codecs[0];return(I.codecs??[]).some(A=>A.preferredPayloadType===g.payloadType)};const A=p(),I=H(),g="probator",C=1234,Q=127;function B(A){if("object"!=typeof A)throw new TypeError("params is not an object");if(A.mid&&"string"!=typeof A.mid)throw new TypeError("params.mid is not a string");if(!Array.isArray(A.codecs))throw new TypeError("missing params.codecs");for(const I of A.codecs)n(I);if(A.headerExtensions&&!Array.isArray(A.headerExtensions))throw new TypeError("params.headerExtensions is not an array");A.headerExtensions||(A.headerExtensions=[]);for(const I of A.headerExtensions)o(I);if(A.encodings&&!Array.isArray(A.encodings))throw new TypeError("params.encodings is not an array");A.encodings||(A.encodings=[]);for(const I of A.encodings)s(I);if(A.rtcp&&"object"!=typeof A.rtcp)throw new TypeError("params.rtcp is not an object");A.rtcp||(A.rtcp={}),function(A){if("object"!=typeof A)throw new TypeError("rtcp is not an object");if(A.cname&&"string"!=typeof A.cname)throw new TypeError("invalid rtcp.cname");A.reducedSize&&"boolean"==typeof A.reducedSize||(A.reducedSize=!0)}(A.rtcp)}function E(A){const I=new RegExp("^(audio|video)/(.+)","i");if("object"!=typeof A)throw new TypeError("codec is not an object");if(!A.mimeType||"string"!=typeof A.mimeType)throw new TypeError("missing codec.mimeType");const g=I.exec(A.mimeType);if(!g)throw new TypeError("invalid codec.mimeType");if(A.kind=g[1].toLowerCase(),"number"!=typeof A.preferredPayloadType)throw new TypeError("missing codec.preferredPayloadType");if("number"!=typeof A.clockRate)throw new TypeError("missing codec.clockRate");"audio"===A.kind?"number"!=typeof A.channels&&(A.channels=1):delete A.channels,A.parameters&&"object"==typeof A.parameters||(A.parameters={});for(const C of Object.keys(A.parameters)){let I=A.parameters[C];if(void 0===I&&(A.parameters[C]="",I=""),"string"!=typeof I&&"number"!=typeof I)throw new TypeError(`invalid codec parameter [key:${C}s, value:${I}]`);if("apt"===C&&"number"!=typeof I)throw new TypeError("invalid codec apt parameter")}A.rtcpFeedback&&Array.isArray(A.rtcpFeedback)||(A.rtcpFeedback=[]);for(const C of A.rtcpFeedback)i(C)}function i(A){if("object"!=typeof A)throw new TypeError("fb is not an object");if(!A.type||"string"!=typeof A.type)throw new TypeError("missing fb.type");A.parameter&&"string"==typeof A.parameter||(A.parameter="")}function D(A){if("object"!=typeof A)throw new TypeError("ext is not an object");if("audio"!==A.kind&&"video"!==A.kind)throw new TypeError("invalid ext.kind");if(!A.uri||"string"!=typeof A.uri)throw new TypeError("missing ext.uri");if("number"!=typeof A.preferredId)throw new TypeError("missing ext.preferredId");if(A.preferredEncrypt&&"boolean"!=typeof A.preferredEncrypt)throw new TypeError("invalid ext.preferredEncrypt");if(A.preferredEncrypt||(A.preferredEncrypt=!1),A.direction&&"string"!=typeof A.direction)throw new TypeError("invalid ext.direction");A.direction||(A.direction="sendrecv")}function n(A){const I=new RegExp("^(audio|video)/(.+)","i");if("object"!=typeof A)throw new TypeError("codec is not an object");if(!A.mimeType||"string"!=typeof A.mimeType)throw new TypeError("missing codec.mimeType");const g=I.exec(A.mimeType);if(!g)throw new TypeError("invalid codec.mimeType");if("number"!=typeof A.payloadType)throw new TypeError("missing codec.payloadType");if("number"!=typeof A.clockRate)throw new TypeError("missing codec.clockRate");"audio"===g[1].toLowerCase()?"number"!=typeof A.channels&&(A.channels=1):delete A.channels,A.parameters&&"object"==typeof A.parameters||(A.parameters={});for(const C of Object.keys(A.parameters)){let I=A.parameters[C];if(void 0===I&&(A.parameters[C]="",I=""),"string"!=typeof I&&"number"!=typeof I)throw new TypeError(`invalid codec parameter [key:${C}s, value:${I}]`);if("apt"===C&&"number"!=typeof I)throw new TypeError("invalid codec apt parameter")}A.rtcpFeedback&&Array.isArray(A.rtcpFeedback)||(A.rtcpFeedback=[]);for(const C of A.rtcpFeedback)i(C)}function o(A){if("object"!=typeof A)throw new TypeError("ext is not an object");if(!A.uri||"string"!=typeof A.uri)throw new TypeError("missing ext.uri");if("number"!=typeof A.id)throw new TypeError("missing ext.id");if(A.encrypt&&"boolean"!=typeof A.encrypt)throw new TypeError("invalid ext.encrypt");A.encrypt||(A.encrypt=!1),A.parameters&&"object"==typeof A.parameters||(A.parameters={});for(const I of Object.keys(A.parameters)){let g=A.parameters[I];if(void 0===g&&(A.parameters[I]="",g=""),"string"!=typeof g&&"number"!=typeof g)throw new TypeError("invalid header extension parameter")}}function s(A){if("object"!=typeof A)throw new TypeError("encoding is not an object");if(A.ssrc&&"number"!=typeof A.ssrc)throw new TypeError("invalid encoding.ssrc");if(A.rid&&"string"!=typeof A.rid)throw new TypeError("invalid encoding.rid");if(A.rtx&&"object"!=typeof A.rtx)throw new TypeError("invalid encoding.rtx");if(A.rtx&&"number"!=typeof A.rtx.ssrc)throw new TypeError("missing encoding.rtx.ssrc");if(A.dtx&&"boolean"==typeof A.dtx||(A.dtx=!1),A.scalabilityMode&&"string"!=typeof A.scalabilityMode)throw new TypeError("invalid encoding.scalabilityMode")}function w(A){return!!A&&/.+\/rtx$/i.test(A.mimeType)}function a(I,g,{strict:C=!1,modify:Q=!1}={}){const B=I.mimeType.toLowerCase();if(B!==g.mimeType.toLowerCase())return!1;if(I.clockRate!==g.clockRate)return!1;if(I.channels!==g.channels)return!1;switch(B){case"video/h264":if(C){if((I.parameters["packetization-mode"]??0)!==(g.parameters["packetization-mode"]??0))return!1;if(!A.isSameProfile(I.parameters,g.parameters))return!1;let C;try{C=A.generateProfileLevelIdStringForAnswer(I.parameters,g.parameters)}catch(E){return!1}Q&&(C?(I.parameters["profile-level-id"]=C,g.parameters["profile-level-id"]=C):(delete I.parameters["profile-level-id"],delete g.parameters["profile-level-id"]))}break;case"video/vp9":if(C){if((I.parameters["profile-id"]??0)!==(g.parameters["profile-id"]??0))return!1}}return!0}function y(A,I){return(!A.kind||!I.kind||A.kind===I.kind)&&A.uri===I.uri}function G(A,I){const g=[];for(const C of A.rtcpFeedback??[]){const A=(I.rtcpFeedback??[]).find(A=>A.type===C.type&&(A.parameter===C.parameter||!A.parameter&&!C.parameter));A&&g.push(A)}return g}return b}var m,O={},l={},f={},P={};var W,z,j,V={};function v(){if(W)return V;W=1,Object.defineProperty(V,"__esModule",{value:!0}),V.AwaitQueueRemovedTaskError=V.AwaitQueueStoppedError=void 0;class A extends Error{constructor(I){super(I??"queue stopped"),this.name="AwaitQueueStoppedError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,A)}}V.AwaitQueueStoppedError=A;class I extends Error{constructor(A){super(A??"queue task removed"),this.name="AwaitQueueRemovedTaskError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,I)}}return V.AwaitQueueRemovedTaskError=I,V}function Z(){if(z)return f;z=1,Object.defineProperty(f,"__esModule",{value:!0}),f.AwaitQueue=void 0;const A=function(){if(m)return P;m=1,Object.defineProperty(P,"__esModule",{value:!0}),P.Logger=void 0;const A=o(),I="awaitqueue";return P.Logger=class{_debug;_warn;_error;constructor(g){g?(this._debug=A(`${I}:${g}`),this._warn=A(`${I}:WARN:${g}`),this._error=A(`${I}:ERROR:${g}`)):(this._debug=A(I),this._warn=A(`${I}:WARN`),this._error=A(`${I}:ERROR`)),this._debug.log=function(){}.bind(),this._warn.log=function(){}.bind(),this._error.log=function(){}.bind()}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}},P}(),I=v(),g=new A.Logger("AwaitQueue");return f.AwaitQueue=class{pendingTasks=new Map;nextTaskId=0;stopping=!1;constructor(){g.debug("constructor()")}get size(){return this.pendingTasks.size}async push(A,I){if(I=I??A.name,g.debug(`push() [name:${I}]`),"function"!=typeof A)throw new TypeError("given task is not a function");if(I)try{Object.defineProperty(A,"name",{value:I})}catch(C){}return new Promise((C,Q)=>{const B={id:this.nextTaskId++,task:A,name:I,enqueuedAt:Date.now(),executedAt:void 0,completed:!1,resolve:A=>{if(B.completed)return;B.completed=!0,this.pendingTasks.delete(B.id),g.debug(`resolving task [name:${B.name}]`),C(A);const[I]=this.pendingTasks.values();I&&!I.executedAt&&this.execute(I)},reject:A=>{if(!B.completed&&(B.completed=!0,this.pendingTasks.delete(B.id),g.debug(`rejecting task [name:${B.name}]: %s`,String(A)),Q(A),!this.stopping)){const[A]=this.pendingTasks.values();A&&!A.executedAt&&this.execute(A)}}};this.pendingTasks.set(B.id,B),1===this.pendingTasks.size&&this.execute(B)})}stop(){g.debug("stop()"),this.stopping=!0;for(const A of this.pendingTasks.values())g.debug(`stop() | stopping task [name:${A.name}]`),A.reject(new I.AwaitQueueStoppedError);this.stopping=!1}remove(A){g.debug(`remove() [taskIdx:${A}]`);const C=Array.from(this.pendingTasks.values())[A];C?C.reject(new I.AwaitQueueRemovedTaskError):g.debug(`stop() | no task with given idx [taskIdx:${A}]`)}dump(){const A=Date.now();let I=0;return Array.from(this.pendingTasks.values()).map(g=>({idx:I++,task:g.task,name:g.name,enqueuedTime:g.executedAt?g.executedAt-g.enqueuedAt:A-g.enqueuedAt,executionTime:g.executedAt?A-g.executedAt:0}))}async execute(A){if(g.debug(`execute() [name:${A.name}]`),A.executedAt)throw new Error("task already being executed");A.executedAt=Date.now();try{const I=await A.task();A.resolve(I)}catch(I){A.reject(I)}}},f}var X,_={};var $,AA={};var IA,gA={};var CA,QA,BA={};function EA(){if(QA)return O;QA=1,Object.defineProperty(O,"__esModule",{value:!0}),O.Transport=void 0;const A=(j||(j=1,function(A){Object.defineProperty(A,"__esModule",{value:!0}),A.AwaitQueueRemovedTaskError=A.AwaitQueueStoppedError=A.AwaitQueue=void 0;var I=Z();Object.defineProperty(A,"AwaitQueue",{enumerable:!0,get:function(){return I.AwaitQueue}});var g=v();Object.defineProperty(A,"AwaitQueueStoppedError",{enumerable:!0,get:function(){return g.AwaitQueueStoppedError}}),Object.defineProperty(A,"AwaitQueueRemovedTaskError",{enumerable:!0,get:function(){return g.AwaitQueueRemovedTaskError}})}(l)),l),I=N(),g=J(),C=t(),Q=H(),B=T(),E=function(){if(X)return _;X=1,Object.defineProperty(_,"__esModule",{value:!0}),_.Producer=void 0;const A=N(),I=J(),g=t(),C=new A.Logger("Producer");let Q=class extends I.EnhancedEventEmitter{_id;_localId;_closed=!1;_rtpSender;_track;_kind;_rtpParameters;_paused;_maxSpatialLayer;_stopTracks;_disableTrackOnPause;_zeroRtpOnPause;_appData;_observer=new I.EnhancedEventEmitter;constructor({id:A,localId:I,rtpSender:g,track:Q,rtpParameters:B,stopTracks:E,disableTrackOnPause:i,zeroRtpOnPause:D,appData:n}){super(),C.debug("constructor()"),this._id=A,this._localId=I,this._rtpSender=g,this._track=Q,this._kind=Q.kind,this._rtpParameters=B,this._paused=!!i&&!Q.enabled,this._maxSpatialLayer=void 0,this._stopTracks=E,this._disableTrackOnPause=i,this._zeroRtpOnPause=D,this._appData=n??{},this.onTrackEnded=this.onTrackEnded.bind(this),this.handleTrack()}get id(){return this._id}get localId(){return this._localId}get closed(){return this._closed}get kind(){return this._kind}get rtpSender(){return this._rtpSender}get track(){return this._track}get rtpParameters(){return this._rtpParameters}get paused(){return this._paused}get maxSpatialLayer(){return this._maxSpatialLayer}get appData(){return this._appData}set appData(A){this._appData=A}get observer(){return this._observer}close(){this._closed||(C.debug("close()"),this._closed=!0,this.destroyTrack(),this.emit("@close"),this._observer.safeEmit("close"),super.close(),this._observer.close())}transportClosed(){this._closed||(C.debug("transportClosed()"),this._closed=!0,this.destroyTrack(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}async getStats(){if(this._closed)throw new g.InvalidStateError("closed");return new Promise((A,I)=>{this.safeEmit("@getstats",A,I)})}pause(){C.debug("pause()"),this._closed?C.error("pause() | Producer closed"):(this._paused=!0,this._track&&this._disableTrackOnPause&&(this._track.enabled=!1),this._zeroRtpOnPause&&new Promise((A,I)=>{this.safeEmit("@pause",A,I)}).catch(()=>{}),this._observer.safeEmit("pause"))}resume(){C.debug("resume()"),this._closed?C.error("resume() | Producer closed"):(this._paused=!1,this._track&&this._disableTrackOnPause&&(this._track.enabled=!0),this._zeroRtpOnPause&&new Promise((A,I)=>{this.safeEmit("@resume",A,I)}).catch(()=>{}),this._observer.safeEmit("resume"))}async replaceTrack({track:A}){if(C.debug("replaceTrack() [track:%o]",A),this._closed){if(A&&this._stopTracks)try{A.stop()}catch(I){}throw new g.InvalidStateError("closed")}if(A&&"ended"===A.readyState)throw new g.InvalidStateError("track ended");A!==this._track?(await new Promise((I,g)=>{this.safeEmit("@replacetrack",A,I,g)}),this.destroyTrack(),this._track=A,this._track&&this._disableTrackOnPause&&(this._paused?this._paused&&(this._track.enabled=!1):this._track.enabled=!0),this.handleTrack()):C.debug("replaceTrack() | same track, ignored")}async setMaxSpatialLayer(A){if(this._closed)throw new g.InvalidStateError("closed");if("video"!==this._kind)throw new g.UnsupportedError("not a video Producer");if("number"!=typeof A)throw new TypeError("invalid spatialLayer");A!==this._maxSpatialLayer&&(await new Promise((I,g)=>{this.safeEmit("@setmaxspatiallayer",A,I,g)}).catch(()=>{}),this._maxSpatialLayer=A)}async setRtpEncodingParameters(A){if(this._closed)throw new g.InvalidStateError("closed");if("object"!=typeof A)throw new TypeError("invalid params");await new Promise((I,g)=>{this.safeEmit("@setrtpencodingparameters",A,I,g)})}onTrackEnded(){C.debug('track "ended" event'),this.safeEmit("trackended"),this._observer.safeEmit("trackended")}handleTrack(){this._track&&this._track.addEventListener("ended",this.onTrackEnded)}destroyTrack(){if(this._track)try{this._track.removeEventListener("ended",this.onTrackEnded),this._stopTracks&&this._track.stop()}catch(A){}}};return _.Producer=Q,_}(),i=function(){if($)return AA;$=1,Object.defineProperty(AA,"__esModule",{value:!0}),AA.Consumer=void 0;const A=N(),I=J(),g=t(),C=new A.Logger("Consumer");let Q=class extends I.EnhancedEventEmitter{_id;_localId;_producerId;_closed=!1;_rtpReceiver;_track;_rtpParameters;_paused;_appData;_observer=new I.EnhancedEventEmitter;constructor({id:A,localId:I,producerId:g,rtpReceiver:Q,track:B,rtpParameters:E,appData:i}){super(),C.debug("constructor()"),this._id=A,this._localId=I,this._producerId=g,this._rtpReceiver=Q,this._track=B,this._rtpParameters=E,this._paused=!B.enabled,this._appData=i??{},this.onTrackEnded=this.onTrackEnded.bind(this),this.handleTrack()}get id(){return this._id}get localId(){return this._localId}get producerId(){return this._producerId}get closed(){return this._closed}get kind(){return this._track.kind}get rtpReceiver(){return this._rtpReceiver}get track(){return this._track}get rtpParameters(){return this._rtpParameters}get paused(){return this._paused}get appData(){return this._appData}set appData(A){this._appData=A}get observer(){return this._observer}close(){this._closed||(C.debug("close()"),this._closed=!0,this.destroyTrack(),this.emit("@close"),this._observer.safeEmit("close"),super.close(),this._observer.close())}transportClosed(){this._closed||(C.debug("transportClosed()"),this._closed=!0,this.destroyTrack(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}async getStats(){if(this._closed)throw new g.InvalidStateError("closed");return new Promise((A,I)=>{this.safeEmit("@getstats",A,I)})}pause(){C.debug("pause()"),this._closed?C.error("pause() | Consumer closed"):this._paused?C.debug("pause() | Consumer is already paused"):(this._paused=!0,this._track.enabled=!1,this.emit("@pause"),this._observer.safeEmit("pause"))}resume(){C.debug("resume()"),this._closed?C.error("resume() | Consumer closed"):this._paused?(this._paused=!1,this._track.enabled=!0,this.emit("@resume"),this._observer.safeEmit("resume")):C.debug("resume() | Consumer is already resumed")}onTrackEnded(){C.debug('track "ended" event'),this.safeEmit("trackended"),this._observer.safeEmit("trackended")}handleTrack(){this._track.addEventListener("ended",this.onTrackEnded)}destroyTrack(){try{this._track.removeEventListener("ended",this.onTrackEnded),this._track.stop()}catch(A){}}};return AA.Consumer=Q,AA}(),D=function(){if(IA)return gA;IA=1,Object.defineProperty(gA,"__esModule",{value:!0}),gA.DataProducer=void 0;const A=N(),I=J(),g=t(),C=new A.Logger("DataProducer");let Q=class extends I.EnhancedEventEmitter{_id;_dataChannel;_closed=!1;_sctpStreamParameters;_appData;_observer=new I.EnhancedEventEmitter;constructor({id:A,dataChannel:I,sctpStreamParameters:g,appData:Q}){super(),C.debug("constructor()"),this._id=A,this._dataChannel=I,this._sctpStreamParameters=g,this._appData=Q??{},this.han