PageSourceSearch

https://smartconsult.ai/assets/twilio-vendor-CKV-ZanP.js

js smartconsult.ai collected 2026-10-05 12:38:21 UTC 336,700 bytes, 38 lines download raw bytes

1import{a as e,n as t,r as n,t as r}from"./rolldown-runtime-C0FnF6B9.js";var i=n({__addDisposableResource:()=>M,__assign:()=>I,__asyncDelegator:()=>w,__asyncGenerator:()=>C,__asyncValues:()=>T,__await:()=>S,__awaiter:()=>m,__classPrivateFieldGet:()=>k,__classPrivateFieldIn:()=>j,__classPrivateFieldSet:()=>A,__createBinding:()=>L,__decorate:()=>s,__disposeResources:()=>N,__esDecorate:()=>l,__exportStar:()=>g,__extends:()=>a,__generator:()=>h,__importDefault:()=>O,__importStar:()=>D,__makeTemplateObject:()=>E,__metadata:()=>p,__param:()=>c,__propKey:()=>d,__read:()=>v,__rest:()=>o,__rewriteRelativeImportExtension:()=>P,__runInitializers:()=>u,__setFunctionName:()=>f,__spread:()=>y,__spreadArray:()=>x,__spreadArrays:()=>b,__values:()=>_,default:()=>ee});function a(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);F(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function o(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function s(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function c(e,t){return function(n,r){t(n,r,e)}}function l(e,t,n,r,i,a){function o(e){if(e!==void 0&&typeof e!=`function`)throw TypeError(`Function expected`);return e}for(var s=r.kind,c=s===`getter`?`get`:s===`setter`?`set`:`value`,l=!t&&e?r.static?e:e.prototype:null,u=t||(l?Object.getOwnPropertyDescriptor(l,r.name):{}),d,f=!1,p=n.length-1;p>=0;p--){var m={};for(var h in r)m[h]=h===`access`?{}:r[h];for(var h in r.access)m.access[h]=r.access[h];m.addInitializer=function(e){if(f)throw TypeError(`Cannot add initializers after decoration has completed`);a.push(o(e||null))};var g=(0,n[p])(s===`accessor`?{get:u.get,set:u.set}:u[c],m);if(s===`accessor`){if(g===void 0)continue;if(typeof g!=`object`||!g)throw TypeError(`Object expected`);(d=o(g.get))&&(u.get=d),(d=o(g.set))&&(u.set=d),(d=o(g.init))&&i.unshift(d)}else(d=o(g))&&(s===`field`?i.unshift(d):u[c]=d)}l&&Object.defineProperty(l,r.name,u),f=!0}function u(e,t,n){for(var r=arguments.length>2,i=0;i<t.length;i++)n=r?t[i].call(e,n):t[i].call(e);return r?n:void 0}function d(e){return typeof e==`symbol`?e:`${e}`}function f(e,t,n){return typeof t==`symbol`&&(t=t.description?`[${t.description}]`:``),Object.defineProperty(e,"name",{configurable:!0,value:n?`${n} ${t}`:t})}function p(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function m(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function h(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),typeof Symbol==`function`&&(o[Symbol.iterator]=function(){return this}),o;function s(e){return function(t){return c([e,t])}}function c(s){if(r)throw TypeError(`Generator is already executing.`);for(;o&&(o=0,s[0]&&(n=0)),n;)try{if(r=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return n.label++,{value:s[1],done:!1};case 5:n.label++,i=s[1],s=[0];continue;case 7:s=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]<a[3])){n.label=s[1];break}if(s[0]===6&&n.label<a[1]){n.label=a[1],a=s;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(s);break}a[2]&&n.ops.pop(),n.trys.pop();continue}s=t.call(e,n)}catch(e){s=[6,e],i=0}finally{r=a=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}function g(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&L(t,e,n)}function _(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);
vendor: 4,503 bytes, line 1
1if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function v(e,t){var n=typeof Symbol==`function`&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-->0)&&!(i=r.next()).done;)a.push(i.value)}catch(e){o={error:e}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function y(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}function b(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var r=Array(e),i=0,t=0;t<n;t++)for(var a=arguments[t],o=0,s=a.length;o<s;o++,i++)r[i]=a[o];return r}function x(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}function S(e){return this instanceof S?(this.v=e,this):new S(e)}function C(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var r=n.apply(e,t||[]),i,a=[];return i=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),s(`next`),s(`throw`),s(`return`,o),i[Symbol.asyncIterator]=function(){return this},i;function o(e){return function(t){return Promise.resolve(t).then(e,d)}}function s(e,t){r[e]&&(i[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||c(e,t)})},t&&(i[e]=t(i[e])))}function c(e,t){try{l(r[e](t))}catch(e){f(a[0][3],e)}}function l(e){e.value instanceof S?Promise.resolve(e.value.v).then(u,d):f(a[0][2],e)}function u(e){c(`next`,e)}function d(e){c(`throw`,e)}function f(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}}function w(e){var t={},n;return r(`next`),r(`throw`,function(e){throw e}),r(`return`),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:S(e[r](t)),done:!1}:i?i(t):t}:i}}function T(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof _==`function`?_(e):e[Symbol.iterator](),n={},r(`next`),r(`throw`),r(`return`),n[Symbol.asyncIterator]=function(){return this},n);function r(t){n[t]=e[t]&&function(n){return new Promise(function(r,a){n=e[t](n),i(r,a,n.done,n.value)})}}function i(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}}function E(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function D(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=z(e),r=0;r<n.length;r++)n[r]!=="default"&&L(t,e,n[r]);return R(t,e),t}function O(e){return e&&e.__esModule?e:{default:e}}function k(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)}function A(e,t,n,r,i){if(r===`m`)throw TypeError(`Private method is not writable`);if(r===`a`&&!i)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!i:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return r===`a`?i.call(e,n):i?i.value=n:t.set(e,n),n}function j(e,t){if(t===null||typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Cannot use 'in' operator on non-object`);return typeof e==`function`?t===e:e.has(t)}function M(e,t,n){if(t!=null){if(typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Object expected.`);var r,i;if(n){if(!Symbol.asyncDispose)throw TypeError(`Symbol.asyncDispose is not defined.`);r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw TypeError(`Symbol.dispose is not defined.`);r=t[Symbol.dispose],n&&(i=r)}if(typeof r!=`function`)throw TypeError(`Object not disposable.`);i&&(r=function(){try{i.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}function N(e){function t(t){e.error=e.hasError?new B(t,e.error,`An error was suppressed during disposal.`):t,e.hasError=!0}var n,r=0;function i(){for(;n=e.stack.pop();)try{if(!n.async&&r===1)return r=0,e.stack.push(n),Promise.resolve().then(i);if(n.dispose){var a=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(a).then(i,function(e){return t(e),i()})}else r|=1}catch(e){t(e)}
1if(r===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return i()}function P(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e}var F,I,L,R,z,B,ee,V=t((()=>{F=function(e,t){return F=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},F(e,t)},I=function(){return I=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},I.apply(this,arguments)},L=Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]}),R=Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t},z=function(e){return z=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},z(e)},B=typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var r=Error(n);return r.name=`SuppressedError`,r.error=e,r.suppressed=t,r},ee={__extends:a,__assign:I,__rest:o,__decorate:s,__param:c,__esDecorate:l,__runInitializers:u,__propKey:d,__setFunctionName:f,__metadata:p,__awaiter:m,__generator:h,__createBinding:L,__exportStar:g,__values:_,__read:v,__spread:y,__spreadArrays:b,__spreadArray:x,__await:S,__asyncGenerator:C,__asyncDelegator:w,__asyncValues:T,__makeTemplateOb
1ject:E,__importStar:D,__importDefault:O,__classPrivateFieldGet:k,__classPrivateFieldSet:A,__classPrivateFieldIn:j,__addDisposableResource:M,__disposeResources:N,__rewriteRelativeImportExtension:P}})),H=r(((e,t)=>{var n=typeof AudioContext<`u`?AudioContext:typeof webkitAudioContext<`u`?webkitAudioContext:null;t.exports=new class e{constructor(t){t=Object.assign({AudioContext:n},t),Object.defineProperties(this,{_AudioContext:{value:t.AudioContext},_audioContext:{value:null,writable:!0},_holders:{value:new Set},AudioContextFactory:{enumerable:!0,value:e}})}getOrCreate(e){if(!this._holders.has(e)&&(this._holders.add(e),this._AudioContext&&!this._audioContext))try{this._audioContext=new this._AudioContext}catch{}return this._audioContext}release(e){this._holders.has(e)&&(this._holders.delete(e),!this._holders.size&&this._audioContext&&(this._audioContext.close(),this._audioContext=null))}}})),te=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.LegacyPluginAdapter=void 0;var t=H();e.LegacyPluginAdapter=class{constructor(e){this.legacy=e}init(e){return this.legacy.init(e)}isInitialized(){return this.legacy.isInitialized()}isConnected(){return this.legacy.isConnected()}isEnabled(){return this.legacy.isEnabled()}connect(e){return this.legacy.connect(e)}disconnect(){this.legacy.disconnect()}enable(){this.legacy.enable()}disable(){this.legacy.disable()}setLogging(e){this.legacy.setLogging(e)}getVersion(){return this.legacy.getVersion()}isSupported(){let e={},n=t.getOrCreate(e);try{return!!n&&this.legacy.isSupported(n)}finally{t.release(e)}}destroy(){return Promise.resolve().then(()=>{this.legacy.destroy()})}}})),ne=r(((e,t)=>{t.exports=function(e){let{location:t,URL:n}=e;if([t,n].some(e=>!e))return function(e){return Promise.reject(Error(`Failed to import: ${e}: dynamicImport is not supported`))};e.__twilioVideoImportedModules={};let r=Function(`url`,`return import(url);`);return function(i){return i in e.__twilioVideoImportedModules?Promise.resolve(e.__twilioVideoImportedModules[i]):r(new n(i,t).toString()).then(t=>(e.__twilioVideoImportedModules[i]=t,t))}}(globalThis)})),U=r(((e,t)=>{var n=function(){},r=`undefined`,i=typeof window!==r&&typeof window.navigator!==r&&/Trident\/|MSIE /.test(window.navigator.userAgent),a=[`trace`,`debug`,`info`,`warn`,`error`];function o(e,t){var n=e[t];if(typeof n.bind==`function`)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch{return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(e){return e===`debug`&&(e=`log`),typeof console===r?!1:e===`trace`&&i?s:console[e]===void 0?console.log===void 0?n:o(console,`log`):o(console,e)}function l(e,t){for(var r=0;r<a.length;r++){var i=a[r];this[i]=r<e?n:this.methodFactory(i,e,t)}this.log=this.debug}function u(e,t,n){return function(){typeof console!==r&&(l.call(this,t,n),this[e].apply(this,arguments))}}function d(e,t,n){return c(e)||u.apply(this,arguments)}function f(e,t,n){var i=this,o,s=`loglevel`;typeof e==`string`?s+=`:`+e:typeof e==`symbol`&&(s=void 0);function c(e){var t=(a[e]||`silent`).toUpperCase();if(typeof window!==r&&s){try{window.localStorage[s]=t;return}catch{}try{window.document.cookie=encodeURIComponent(s)+`=`+t+`;`}catch{}}}function u(){var e;if(typeof window!==r&&s){try{e=window.localStorage[s]}catch{}if(typeof e===r)try{var t=window.document.cookie,n=t.indexOf(encodeURIComponent(s)+`=`);n!==-1&&(e=/^([^;]+)/.exec(t.slice(n))[1])}catch{}return i.levels[e]===void 0&&(e=void 0),e}}i.name=e,i.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},i.methodFactory=n||d,i.getLevel=function(){return o},i.setLevel=function(t,n){if(typeof t==`string`&&i.levels[t.toUpperCase()]!==void 0&&(t=i.levels[t.toUpperCase()]),typeof t==`number`&&t>=0&&t<=i.levels.SILENT){if(o=t,n!==!1&&c(t),l.call(i,t,e),typeof console===r&&t<i.levels.SILENT)return`No console available for logging`}else throw`log.setLevel() called with invalid level: `+t},i.setDefaultLevel=function(e){u()||i.setLevel(e,!1)},i.enableAll=function(e){i.setLevel(i.levels.TRACE,e)},i.disableAll=function(e){i.setLevel(i.levels.SILENT,e)};var f=u();
1f??=t??`WARN`,i.setLevel(f,!1)}var p=new f,m={};p.getLogger=function(e){if(typeof e!=`symbol`&&typeof e!=`string`||e===``)throw TypeError(`You must supply a name when creating a logger.`);var t=m[e];return t||=m[e]=new f(e,p.getLevel(),p.methodFactory),t};var h=typeof window===r?void 0:window.log;p.noConflict=function(){return typeof window!==r&&window.log===p&&(window.log=h),p},p.getLoggers=function(){return m},p.default=p,t.exports=p})),W=n({author:()=>ae,browser:()=>ge,contributors:()=>oe,default:()=>_e,dependencies:()=>he,description:()=>re,devDependencies:()=>le,engines:()=>ue,homepage:()=>ie,keywords:()=>se,license:()=>de,main:()=>fe,name:()=>G,repository:()=>ce,scripts:()=>me,title:()=>K,types:()=>pe,version:()=>q}),G,K,re,q,ie,ae,oe,se,ce,le,ue,de,fe,pe,me,he,ge,_e,ve=t((()=>{G=`twilio-video`,K=`Twilio Video`,re=`Twilio Video JavaScript Library`,q=`2.36.0`,ie=`https://twilio.com`,ae=`Mark Andrus Roberts <[email protected]>`,oe=[`Ryan Rowland <[email protected]>`,`Manjesh Malavalli <[email protected]>`,`Makarand Patwardhan <[email protected]>`,`Luis Rivas <[email protected]>`],se=[`twilio`,`webrtc`,`library`,`javascript`,`video`,`rooms`],ce={type:`git`,url:`https://github.com/twilio/twilio-video.js.git`},le={"@babel/core":`^7.14.2`,"@babel/plugin-proposal-class-properties":`^7.18.6`,"@babel/plugin-proposal-object-rest-spread":`^7.20.7`,"@babel/preset-env":`^7.14.2`,"@babel/preset-typescript":`^7.13.0`,"@eslint/js":`^9.20.0`,"@rollup/plugin-alias":`^5.1.1`,"@rollup/plugin-commonjs":`^28.0.6`,"@rollup/plugin-json":`^6.1.0`,"@rollup/plugin-node-resolve":`^16.0.3`,"@rollup/plugin-terser":`^1.0.0`,"@stylistic/eslint-plugin":`^2.12.1`,"@types/express":`^4.17.21`,"@types/mocha":`^10.0.10`,"@types/node":`^24.7.2`,"@types/selenium-webdriver":`^3.0.8`,"@types/sinon":`^17.0.4`,"@types/ws":`^8.5.10`,"@typescript-eslint/eslint-plugin":`^8.18.2`,"@typescript-eslint/parser":`^8.18.2`,browserify:`^17.0.1`,cheerio:`^0.22.0`,cors:`^2.8.5`,envify:`^4.0.0`,eslint:`^9.37.0`,"eslint-plugin-import":`^2.29.1`,"eslint-plugin-n":`^16.6.2`,"eslint-plugin-promise":`^6.6.0`,express:`^4.16.2`,glob:`^7.1.7`,globals:`^15.14.0`,"ink-docstrap":`^1.3.2`,inquirer:`^7.0.0`,"is-docker":`^2.0.0`,jsdoc:`^3.5.5`,"jsdoc-babel":`^0.5.0`,"json-loader":`^0.5.7`,karma:`^6.4.4`,"karma-browserify":`^8.0.0`,"karma-chrome-launcher":`^2.0.0`,"karma-edgium-launcher":`^4.0.0-0`,"karma-firefox-launcher":`^2.1.3`,"karma-htmlfile-reporter":`^0.3.8`,"karma-junit-reporter":`^1.2.0`,"karma-mocha":`^2.0.1`,"karma-safari-launcher":`^1.0.0`,"karma-spec-reporter":`0.0.32`,"karma-typescript":`^5.5.1`,"karma-typescript-es6-transform":`^5.5.1`,mocha:`^10.8.2`,"mock-require":`^3.0.3`,ncp:`^2.0.0`,"node-http-server":`^8.1.2`,"npm-run-all":`^4.1.5`,nyc:`^15.1.0`,puppeteer:`24.42.0`,"regex-replace":`^2.3.1`,requirejs:`^2.3.3`,rimraf:`^2.6.1`,rollup:`^4.41.0`,"simple-git":`^1.126.0`,sinon:`^4.0.1`,"ts-node":`^10.9.2`,twilio:`^3.49.0`,"twilio-release-tool":`^1.0.2`,typescript:`5.9.3`,"vinyl-fs":`^2.4.4`,"webrtc-adapter":`^7.7.1`},ue={node:`>=22`},de=`BSD-3-Clause`,fe=`./es5/index.js`,pe=`./tsdef/index.d.ts`,me={"lint:js":`eslint ./lib ./test/*.js ./docker/**/*.js ./test/framework/*.js ./test/lib/*.js ./test/integration/** ./test/unit/** `,"lint:ts":`eslint ./tsdef/*.ts ./lib/**/*.ts`,lint:`npm-run-all lint:js lint:ts`,"patch-linkifyit-111":`regex-replace "readonly linkify: LinkifyIt.LinkifyIt;" "readonly linkify: typeof LinkifyIt;" "node_modules/@types/markdown-it/lib/index.d.ts" --filecontents`,printVersion:`node --version && npm --version`,"test:unit":`npm-run-all printVersion build:es5 && nyc --report-dir=./coverage --include=lib/**/* --reporter=html --reporter=lcov --reporter=text mocha -r ts-node/register/transpile-only --exit ./test/unit/*`,"test:unit:quick":`nyc --report-dir=./coverage --include=lib/**/* --reporter=html --reporter=lcov mocha -r ts-node/register/transpile-only --exit`,"test:serversiderender":`mocha --exit ./test/serversiderender/index.js`,"test:integration:adapter":`node ./scripts/karma.js karma/integration.adapter.conf.js`,"test:integration":`npm run build:es5 && node ./scripts/karma.js karma/integration.conf.js`,"test:umd":`mocha --exit ./test/umd/index.js`,"test:crossbrowser:build:clean":`rimraf ./test/crossbrowser/lib ./test/crossbrowser/src/browser/index.js`,"test:crossbrowser:build:lint":`cd ./test/crossbrowser && eslint '**/*.ts'`,"test:crossbrowser:build:tsc":`cd ./test/crossbrowser && tsc`,"test:crossbrowser:build:browser":`cd ./test/crossbrowser && browserify lib/crossbrowser/src/browser/index.js > src/browser/index.js`,"test:crossbrowser:build":`npm-run-all test:crossbrowser:build:*`,"test:crossbrowser:test":`cd ./test/crossbrowser && mocha -r ts-node/register/transpile-only --exit test/integration/spec/**/*.ts`,"test:crossbrowser":`npm-run-all test:crossbrowser:*`,"test:sdkdriver:build:clean":`rimraf ./test/lib/sdkdriver/lib ./test/lib/sdkdriver/test/integration/browser/index.js`,"test:sdkdriver:build:lint":`cd ./test/lib/sdkdriver && eslint '**/*.ts'`,"test:sdkdriver:build:tsc":`cd ./test/lib/sdkdriver && tsc --rootDir src`,"test:sdkdriver:build":`npm-run-all test:sdkdriver:build:*`,"test:sdkdriver:test:unit":`cd ./test/lib/sdkdriver && mocha -r ts-node/register/transpile-only --exit test/unit/spec/**/*.ts`,"test:sdkdriver:test:integration:browser":`cd ./test/lib/sdkdriver/test/integration && browserify browser/browser.js > browser/index.js`,"test:sdkdriver:test:integration:run":`cd ./test/lib/sdkdriver && mocha -r ts-node/register/transpile-only --exit test/integration/spec/**/*.ts`,"test:sdkdriver:test:integration":`npm-run-all test:sdkdriver:test:integration:*`,"test:sdkdriver:test":`npm-run-all test:sdkdriver:test:*`,"test:sdkdriver":`npm-run-all test:sdkdriver:*`,"test:framework:angular:install":`cd ./test/framework/twilio-video-angular && rimraf ./node_modules package-lock.json && npm install`,"test:framework:angular:run":`mocha ./test/framework/twilio-video-angular.js`,"test:framework:angular":`npm-run-all test:framework:angular:*`,"test:framework:no-framework:run":`mocha ./test/framework/twilio-video-no-framework.js`,"test:framework:no-framework":`npm-run-all test:framework:no-framework:*`,"test:framework:react:install":`cd ./test/framework/twilio-video-react && rimraf ./node_modules package-lock.json && npm install`,"test:framework:react:test":`node ./scripts/framework.js twilio-video-react`,"test:framework:react:build":`cd ./test/framework/twilio-video-react && npm run build`,"test:framework:react:run":`mocha ./test/framework/twilio-video-react.js`,"test:framework:react":`npm-run-all test:framework:react:*`,"test:framework:install":`npm install chromedriver && npm install selenium-webdriver && npm install geckodriver && npm install puppeteer`,"test:framework":`npm-run-all test:framework:install test:framework:no-framework test:framework:react`,test:`npm-run-all test:unit test:integration`,typecheck:`npm run patch-linkifyit-111 && tsc tsdef/twil
1io-video-tests.ts --noEmit --lib es2018,dom && tsc --noEmit`,"build:es5":`rimraf ./es5 && npm run typecheck && tsc && rollup -c rollup.config.mjs`,build:`npm-run-all clean lint docs test:unit test:integration build:es5 test:umd`,"build:quick":`npm-run-all clean lint docs build:es5`,docs:`node ./scripts/docs.js ./dist/docs`,"watch:tsc":`tsc -w`,"watch:rollup":`rollup -c rollup.config.mjs --watch`,watch:`npm-run-all -p watch:tsc watch:rollup`,clean:`rimraf ./coverage ./es5 ./dist`},he={events:`^3.3.0`,tslib:`^2.8.1`,util:`^0.12.4`,ws:`^8.21.0`},ge={ws:`./src/ws.js`},_e={name:G,title:K,description:re,version:q,homepage:ie,author:ae,contributors:oe,keywords:se,repository:ce,devDependencies:le,engines:ue,license:de,main:fe,types:pe,scripts:me,dependencies:he,browser:ge}})),J=r(((t,n)=>{var r=(ve(),e(W).default);n.exports.SDK_NAME=`${r.name}.js`,n.exports.SDK_VERSION=r.version,n.exports.SDP_FORMAT=`unified`,n.exports.hardwareDevicePublisheriPad={hwDeviceManufacturer:`Apple`,hwDeviceModel:`iPad`,hwDeviceType:`tablet`,platformName:`iOS`},n.exports.hardwareDevicePublisheriPhone={hwDeviceManufacturer:`Apple`,hwDeviceModel:`iPhone`,hwDeviceType:`mobile`,platformName:`iOS`},n.exports.DEFAULT_ENVIRONMENT=`prod`,n.exports.DEFAULT_REALM=`us1`,n.exports.DEFAULT_REGION=`gll`,n.exports.DEFAULT_LOG_LEVEL=`warn`,n.exports.DEFAULT_LOGGER_NAME=`twilio-video`,n.exports.WS_SERVER=(e,t)=>(t=t===`gll`?`global`:encodeURIComponent(t),e===`prod`?`wss://${t}.vss.twilio.com/signaling`:`wss://${t}.vss.${e}.twilio.com/signaling`),n.exports.PUBLISH_MAX_ATTEMPTS=5,n.exports.PUBLISH_BACKOFF_JITTER=10,n.exports.PUBLISH_BACKOFF_MS=20;function i(e){return[`a`,`e`,`i`,`o`,`u`].includes(e.toLowerCase()[0])?`an`:`a`}n.exports.typeErrors={ILLEGAL_INVOKE(e,t){return TypeError(`Illegal call to ${e}: ${t}`)},INVALID_TYPE(e,t){return TypeError(`${e} must be ${i(t)} ${t}`)},INVALID_VALUE(e,t){return RangeError(`${e} must be one of ${t.join(`, `)}`)},REQUIRED_ARGUMENT(e){return TypeError(`${e} must be specified`)}},n.exports.DEFAULT_FRAME_RATE=24,n.exports.DEFAULT_VIDEO_PROCESSOR_STATS_INTERVAL_MS=1e4,n.exports.DEFAULT_ICE_GATHERING_TIMEOUT_MS=15e3,n.exports.DEFAULT_SESSION_TIMEOUT_SEC=30,n.exports.DEFAULT_NQ_LEVEL_LOCAL=1,n.exports.DEFAULT_NQ_LEVEL_REMOTE=0,n.exports.MAX_NQ_LEVEL=3,n.exports.ICE_ACTIVITY_CHECK_PERIOD_MS=1e3,n.exports.ICE_INACTIVITY_THRESHOLD_MS=3e3,n.exports.iceRestartBackoffConfig={factor:1.1,min:1,max:n.exports.DEFAULT_SESSION_TIMEOUT_SEC*1e3,jitter:1},n.exports.reconnectBackoffConfig={factor:1.5,min:80,jitter:1},n.exports.subscriptionMode={MODE_COLLABORATION:`collaboration`,MODE_GRID:`grid`,MODE_PRESENTATION:`presentation`},n.exports.trackSwitchOffMode={MODE_DISABLED:`disabled`,MODE_DETECTED:`detected`,MODE_PREDICTED:`predicted`},n.exports.trackPriority={PRIORITY_HIGH:`high`,PRIORITY_LOW:`low`,PRIORITY_STANDARD:`standard`},n.exports.clientTrackSwitchOffControl={MODE_AUTO:`auto`,MODE_MANUAL:`manual`},n.exports.videoContentPreferencesMode={MODE_AUTO:`auto`,MODE_MANUAL:`manual`}})),Y=r(((e,t)=>{var n=U().getLogger,{DEFAULT_LOG_LEVEL:r,DEFAULT_LOGGER_NAME:i}=J(),a=J().typeErrors,o;function s(e){if(o||=new Map,o.has(e))return o.get(e);let t=new Set;return o.set(e,t),t}var c=class e{constructor(t,o,s,c,l){if(typeof t!=`string`)throw a.INVALID_TYPE(`moduleName`,`string`);if(!o)throw a.REQUIRED_ARGUMENT(`component`);typeof s!=`object`&&(s={}),l||=n,p(s),Object.defineProperties(this,{_component:{value:o},_logLevels:{value:s},_warnings:{value:new Set},_loggerName:{get:function(){let e=c&&typeof c==`string`?c:i;return this._logLevelsEqual||(e=`${e}-${t}`),e}},_logger:{get:function(){let e=l(this._loggerName),n=this._logLevels[t]||r;return n=n===`off`?`silent`:n,e.setDefaultLevel(n),e}},_logLevelsEqual:{get:function(){return new Set(Object.values(this._logLevels)).size===1}},logLevel:{get:function(){return e.getLevelByName(s[t]||r)}},name:{get:o.toString.bind(o)}})}static getLevelByName(t){return isNaN(t)?(t=t.toUpperCase(),f(t),e[t]):parseInt(t,10)}createLog(t,n){let r=this._loggerName;return this._logLevelsEqual||(r=r.substring(0,r.lastIndexOf(`-`))),new e(t,n,this._logLevels,r)}setLevels(e){return p(e),Object.assign(this._logLevels,e),this}log(t,n){let r=e._levels[t];if(!r)throw a.INVALID_VALUE(`logLevel`,u);r=r.toLowerCase();let i=[new Date().toISOString(),r,this.name];return(this._logger[r]||function(){})(...i.concat(n)),this}debug(){return this.log(e.DEBUG,[].slice.call(arguments))}deprecated(e){let t=s(this._component.constructor);return t.has(e)?this:(t.add(e),this.warn(e))}info(){return this.log(e.INFO,[].slice.call(arguments))}warn(){return this.log(e.WARN,[].slice.call(arguments))}warnOnce(e){return this._warnings.has(e)?this:(this._warnings.add(e),this.warn(e))}error(){return this.log(e.ERROR,[].slice.call(arguments))}throw(t,n){throw t.clone&&(t=t.clone(n)),this.log(e.ERROR,t),t}};Object.defineProperties(c,{DEBUG:{value:0},INFO:{value:1},WARN:{value:2},ERROR:{value:3},OFF:{value:4},_levels:{value:[`DEBUG`,`INFO`,`WARN`,`ERROR`,`OFF`]}});var l={},u=[],d=c._levels.map((e,t)=>(l[e]=!0,u.push(t),e));function f(e){if(!(e in l))throw a.INVALID_VALUE(`level`,d)}function p(e){Object.keys(e).forEach(t=>{f(e[t].toUpperCase())})}t.exports=c})),ye=r((t=>
1{Object.defineProperty(t,"__esModule",{value:!0}),t.createNoiseCancellationAudioProcessor=d;var n=(V(),e(i)),r=te(),a=ne();Y();var o={krisp:{supportedVersions:[`1.0.0`,`2.0.0`],pluginFile:`krispsdk.mjs`},rnnoise:{supportedVersions:[`0.6.0`],pluginFile:`rnnoise_sdk.mjs`}},s=e=>{let t=e.split(`-`)[0].split(`.`).map(e=>Number(e));if(t.length!==3||t.some(Number.isNaN))throw Error(`Unsupported Plugin version format: ${e}`);return t},c=({supportedVersions:e,pluginVersion:t})=>{let n=s(t),r=e.map(s).find(e=>e[0]===n[0]);if(!r)throw Error(`Major version mismatch: [Plugin version ${t}], [Supported Versions ${e.join(`, `)}]`);if(n[1]<r[1])throw Error(`Minor version mismatch: [Plugin version ${t}] < [Supported Version ${r.join(`.`)}]`)},l=(e,t)=>t===2?e:new r.LegacyPluginAdapter(e),u=new Map;function d(e,t){return n.__awaiter(this,void 0,void 0,function*(){let n=u.get(e.vendor);if(!n){let r=o[e.vendor];if(!r)throw Error(`Unsupported NoiseCancellationOptions.vendor: ${e.vendor}`);let{supportedVersions:i,pluginFile:d}=r,f=e.sdkAssetsPath,p=`${f}/${d}`;try{t.debug(`loading noise cancellation sdk: `,p);let r=yield a(p);t.debug(`Loaded noise cancellation sdk:`,r);let o=r.default;if(!o||typeof o.getVersion!=`function`)throw Error(`Invalid noise cancellation plugin module: ${p}`);let d=o.getVersion();t.debug(`Plugin Version =`,d),c({supportedVersions:i,pluginVersion:d});let m=s(d)[0],h=l(o,m);if(!h.isSupported())throw Error(`Noise Cancellation plugin is not supported on your browser`);h.isInitialized()||(t.debug(`initializing noise cancellation sdk: `,f),yield h.init({rootDir:f}),t.debug(`noise cancellation sdk initialized!`)),n={vendor:e.vendor,isInitialized:()=>h.isInitialized(),isConnected:()=>h.isConnected(),isEnabled:()=>h.isEnabled(),disconnect:()=>h.disconnect(),enable:()=>h.enable(),disable:()=>h.disable(),destroy:()=>h.destroy(),setLogging:e=>h.setLogging(e),connect:e=>{t.debug(`connect: `,e.id),h.isConnected()&&h.disconnect();let n=h.connect(new MediaStream([e]));if(!n)throw Error(`Error connecting with noise cancellation sdk`);let r=n.getAudioTracks()[0];if(!r)throw Error(`Error getting clean track from noise cancellation sdk`);return h.enable(),r}},u.set(e.vendor,n)}catch(e){throw t.error(`Error loading noise cancellation sdk:${p}`,e),e}}return n})}})),be=r((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoiseCancellationImpl=void 0,t.applyNoiseCancellation=o;var n=(V(),e(i)),r=ye();Y();var a=class{constructor(e,t){this._processor=e,this._sourceTrack=t,this._disabledPermanent=!1}
1get vendor(){return this._processor.vendor}get sourceTrack(){return this._sourceTrack}get isEnabled(){return this._processor.isEnabled()}enable(){if(this._disabledPermanent)throw Error(`${this.vendor} noise cancellation is disabled permanently for this track`);return this._processor.enable(),Promise.resolve()}disable(){return this._processor.disable(),Promise.resolve()}reacquireTrack(e){return n.__awaiter(this,void 0,void 0,function*(){let t=this._processor.isEnabled();this._processor.disconnect();let n=yield e();this._sourceTrack=n;let r=this._processor.connect(n);return t?this._processor.enable():this._processor.disable(),r})}disablePermanently(){return this._disabledPermanent=!0,this.disable()}stop(){this._processor.disconnect(),this._sourceTrack.stop()}};t.NoiseCancellationImpl=a;function o(e,t,i){return n.__awaiter(this,void 0,void 0,function*(){try{let n=yield(0,r.createNoiseCancellationAudioProcessor)(t,i);return{cleanTrack:n.connect(e),noiseCancellation:new a(n,e)}}catch(t){return i.warn(`Failed to create noise cancellation. Returning normal audio track: ${t}`),{cleanTrack:e}}})}})),X=r((e=>{function t(){let e={};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}function n(e,t,n,r){if(r in t||r.match(/^on[a-z]+$/))return;let i=!1;try{let t=Object.getOwnPropertyDescriptor(e,r);i=t&&!!t.get}catch{}if(i)return;let a;try{a=typeof e[r]}catch{}a===`function`&&(t[r]=function(){return this[n][r].apply(this[n],arguments)})}function r(e,t,r){for(let i in e)n(e,t,r,i)}function i(e,t){e=Array.isArray(e)?new Set(e):new Set(e.values()),t=Array.isArray(t)?new Set(t):new Set(t.values());let n=new Set;return e.forEach(e=>{t.has(e)||n.add(e)}),n}function a(e,t){return(e instanceof Map||e instanceof Set?Array.from(e.values()):e).reduce((e,n)=>e.concat(t(n)),[])}function o(){return typeof navigator<`u`&&typeof navigator.userAgent==`string`?navigator.userAgent:null}function s(e){return e===void 0&&(e=o()),/Chrome|CriOS/.test(e)?`chrome`:/Firefox|FxiOS/.test(e)?`firefox`:/Safari|iPhone|iPad|iPod/.test(e)?`safari`:null}function c(e){e===void 0&&(e=o());let t={chrome:`Chrome|CriOS`,firefox:`Firefox|FxiOS`,safari:`Version`}[s(e)];if(!t)return null;let n=RegExp(`(${t})/([^\\s]+)`),[,,r]=e.match(n)||[];if(!r)return null;let i=r.split(`.`).map(Number);return{major:isNaN(i[0])?null:i[0],minor:isNaN(i[1])?null:i[1]}}function l(e){return e===void 0&&(e=o()),/Mobi/.test(e)&&s()===`chrome`&&/iPad|iPhone|iPod/.test(e)}function u(e,t){let n=null;Object.defineProperty(e,`on`+t,{get:function(){return n},set:function(e){n&&this.removeEventListener(t,n),typeof e==`function`?(n=e,this.addEventListener(t,n)):n=null}})}function d(e,t,n){return t?e.then(t,n):e}function f(){return`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)})}function p(e,t,n){Object.getOwnPropertyNames(e).forEach(r=>{m(e,t,n,r)})}function m(e,t,n,r){if(!(r in t)){if(r.match(/^on[a-z]+$/)){Object.defineProperty(t,r,{value:null,writable:!0}),n.addEventListener(r.slice(2),(...e)=>t.dispatchEvent(...e));return}Object.defineProperty(t,r,{enumerable:!0,get:function(){return n[r]}})}}function h(){return typeof navigator==`object`&&typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.getUserMedia==`function`&&typeof RTCPeerConnection==`function`}function g(e){if(typeof RTCRtpSender<`u`&&typeof RTCRtpSender.getCapabilities==`function`)return Promise.resolve(new Set(RTCRtpSender.getCapabilities(e).codecs.map(({mimeType:e})=>e.split(`/`)[1].toLowerCase())));if(typeof RTCPeerConnection>`u`||RTCPeerConnection.prototype===void 0||typeof RTCPeerConnection.prototype.addTransceiver!=`function`||typeof RTCPeerConnection.prototype.close!=`function`||typeof RTCPeerConnection.prototype.createOffer!=`function`)return Promise.resolve(new Set);let t=new RTCPeerConnection;return t.addTransceiver(e),t.createOffer().then(({sdp:e})=>(t.close(),new Set((e.match(/^a=rtpmap:.+$/gm)||[]).map(e=>e.match(/^a=rtpmap:.+ ([^/]+)/)[1].toLowerCase()))),()=>(t.close(),new Set))}var _=new Map;function v(e,t){let n=_.get(t);return n?Promise.resolve(n.has(e.toLowerCase())):g(t).then(n=>(_.set(t,n),n.has(e.toLowerCase())))}function y(){_.clear()}e.clearCachedSupportedCodecs=y,e.defer=t,e.delegateMethods=r,e.difference=i,e.flatMap=a,e.guessBrowser=s,e.guessBrowserVersion=c,e.isCodecSupported=v,e.isIOSC
1hrome=l,e.interceptEvent=u,e.legacyPromise=d,e.makeUUID=f,e.proxyProperties=p,e.support=h})),xe=r((e=>{function t(e){let t=``;for(let e=0;e<32;e++)t+=`1234567890abcdef`.charAt(Math.floor(Math.random()*16));return`${e}${t}`}e.sessionSID=t(`SS`),e.createSID=t})),Se=r(((e,t)=>{t.exports={recordingMediaLost:`recording-media-lost`}})),Z=r((e=>{var t=J(),{typeErrors:n,trackPriority:r}=t,i=X(),{sessionSID:a}=xe(),o=Se();function s(e,t){if(e instanceof t.LocalAudioTrack||e instanceof t.LocalVideoTrack||e instanceof t.LocalDataTrack)return e;if(e instanceof t.MediaStreamTrack)return e.kind===`audio`?new t.LocalAudioTrack(e,t):new t.LocalVideoTrack(e,t);throw n.INVALID_TYPE(`track`,`LocalAudioTrack, LocalVideoTrack, LocalDataTrack, or MediaStreamTrack`)}function c(e,t,n,r){let i={audio:r.LocalAudioTrackPublication,video:r.LocalVideoTrackPublication,data:r.LocalDataTrackPublication}[e.kind];return new i(t,e,n,r)}function l(e){return e[0].toUpperCase()+e.slice(1)}function u(e,t,n,r){let i=new Set;t.on(`newListener`,function a(o){n.has(o)&&!i.has(o)&&(r.deprecated(`${e}#${o} has been deprecated and scheduled for removal in [email protected].${n.get(o)?` Use ${e}#${n.get(o)} instead.`:``}`),i.add(o)),i.size>=n.size&&t.removeListener(`newListener`,a)})}function d(e,t){e=Array.isArray(e)?new Set(e):new Set(e.values()),t=Array.isArray(t)?new Set(t):new Set(t.values());let n=new Set;return e.forEach(e=>{t.has(e)||n.add(e)}),n}function f(e,t){return Object.keys(e).reduce((n,r)=>(e[r]!==t&&(n[r]=e[r]),n),{})}function p(e,t){let n=e instanceof Map||e instanceof Set?Array.from(e.values()):e;return t||=function(e){return e},n.reduce((e,n)=>{let r=t(n);return e.concat(r)},[])}function m(){return typeof navigator<`u`&&navigator.userAgent?navigator.userAgent:`Unknown`}function h(){let[,e=`unknown`]=m().match(/\(([^)]+)\)/)||[],[t]=e.split(`;`).map(e=>e.trim());return t.toLowerCase()}function g(){return`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)})}function _(e){let t=null;function n(){t=null,e()}return function(){t&&clearTimeout(t),t=setTimeout(n)}}function v(e,t,n,r){return new Promise((i,a)=>{function o(){let e=[].slice.call(arguments);r&&t.removeListener(r,s),i(...e)}function s(){let e=[].slice.call(arguments);t.removeListener(n,o),a(...e)}t.once(n,o),r&&t.once(r,s),e()})}function y(e,t){return t.split(`.`).reduce((e,t)=>e?e[t]:null,e)}function b(){let e={};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}function x(e,t,n,r){if(r in t||r.match(/^on[a-z]+$/))return;let i;try{i=typeof e[r]}catch{}i===`function`&&(t[r]=function(...e){return this[n][r](...e)})}function S(e,t,n){for(let r in e)x(e,t,n,r)}function C(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e===null)return t===null;if(t===null)return!1;if(Array.isArray(e))return Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>C(e,t[n]));if(typeof e==`object`){let n=Object.keys(e).sort(),r=Object.keys(t).sort();return!Array.isArray(t)&&C(n,r)&&n.every(n=>C(e[n],t[n]))}return!1}function w(e){return typeof e==`object`&&!Array.isArray(e)}function T(e,t,n){Object.getOwnPropertyNames(e).forEach(r=>{E(e,t,n,r)})}function E(e,t,n,r){if(!(r in t)){if(r.match(/^on[a-z]+$/)){Object.defineProperty(t,r,{value:null,writable:!0}),n.addEventListener(r.slice(2),function(...e){t.dispatchEvent(...e)});return}Object.defineProperty(t,r,{enumerable:!0,get(){return n[r]}})}}function D(e,t,n){return t?e.then(e=>{t(e)},e=>{n(e)}):e}function O(e){return typeof e==`string`?{default:e,media:e,signaling:e,webrtc:e}:e}function k(e,t){return t=t?`Local`:``,`${t+(e.kind||``).replace(/\w{1}/,e=>e.toUpperCase())}Track`}function A(e,t){return t=t?`Local`:``,`${t+(e.kind||``).replace(/\w{1}/,e=>e.toUpperCase())}TrackPublication`}function j(e){Object.getOwnPropertyNames(e).forEach(t=>{t.startsWith(`_`)&&N(e,t)})}function M(e,t){return class extends e{constructor(...e){super(...e),j(this),P(this,t)}}}function N(e,t){let n=Object.getOwnPropertyDescriptor(e,t);n.enumerable=!1,Object.defineProperty(e,t,n)}function P(e,t=[]){t.forEach(t=>{e.hasOwnProperty(t)&&N(e,t)})}function F(e){return e.map(z)}function I(e){return F([...e])}function L(e){return[...e.entries()].reduce((e,[t,n])=>Object.assign({[t]:z(n)},e),{})}function R(e){return Object.entries(e).reduce((e,[t,n])=>Object.assign({[t]:z(n)},e),{})}function z(e){return Array.isArray(e)?F(e):e instanceof Set?I(e):e instanceof Map?L(e):e&&typeof e==`object`?R(e):e}function B(e){return e?`true`:`false`}function ee(e){let t={sessionSID:a,iceServers:(e.iceServers||[]).length,audioTracks:(e.tracks||[]).filter(e=>e.kind===`audio`).length,videoTracks:(e.tracks||[]).filter(e=>e.kind===`video`).length,dataTracks:(e.tracks||[]).filter(e=>e.kind===`data`).length};if([[`audio`],[`automaticSubscription`],[`enableDscp`],[`eventListener`],[`preflight`],[`video`],[`dominantSpeaker`,`enableDominantSpeaker`]].forEac
1h(([n,r])=>{r||=n,t[r]=B(!!e[n])}),[[`maxVideoBitrate`],[`maxAudioBitrate`]].forEach(([n,r])=>{r||=n,typeof e[n]==`number`?t[r]=e[n]:isNaN(Number(e[n]))||(t[r]=Number(e[n]))}),[[`iceTransportPolicy`],[`region`],[`name`,`roomName`]].forEach(([n,r])=>{r||=n,typeof e[n]==`string`?t[r]=e[n]:typeof e[n]==`number`&&n===`name`&&(t[r]=e[n].toString())}),[`preferredAudioCodecs`,`preferredVideoCodecs`].forEach(n=>{n in e&&(t[n]=JSON.stringify(e[n]))}),`networkQuality`in e&&(t.networkQualityConfiguration={},w(e.networkQuality)?[`local`,`remote`].forEach(n=>{typeof e.networkQuality[n]==`number`&&(t.networkQualityConfiguration[n]=e.networkQuality[n])}):(t.networkQualityConfiguration.remote=0,t.networkQualityConfiguration.local=+!!e.networkQuality)),e.bandwidthProfile&&e.bandwidthProfile.video){let n=e.bandwidthProfile.video||{};t.bandwidthProfileOptions={},[`mode`,`maxTracks`,`trackSwitchOffMode`,`dominantSpeakerPriority`,`maxSubscriptionBitrate`,`renderDimensions`,`contentPreferencesMode`,`clientTrackSwitchOffControl`].forEach(e=>{typeof n[e]==`number`||typeof n[e]==`string`?t.bandwidthProfileOptions[e]=n[e]:typeof n[e]==`boolean`?t.bandwidthProfileOptions[e]=B(n[e]):typeof n[e]==`object`&&(t.bandwidthProfileOptions[e]=JSON.stringify(n[e]))})}return Object.entries({RTCPeerConnection:`customRTCPeerConnectionImpl`,MediaStream:`customMediaStreamImpl`,getUserMedia:`customGetUserMediaImpl`,enumerateDevices:`customEnumerateDevicesImpl`}).forEach(([n,r])=>{t[r]=B(e[n]!==void 0)}),{group:`room`,name:`connecting`,level:`info`,payload:t}}function V(){return{group:`room`,name:`connected`,level:`info`}}function H(e){return G(e,[{prop:`video`,type:`object`,transform:te}])}function te(e){return G(e,[{prop:`dominantSpeakerPriority`,type:`string`,payloadProp:`active_speaker_priority`},{prop:`maxSubscriptionBitrate`,type:`number`,payloadProp:`max_subscription_bandwidth`},{prop:`maxTracks`,type:`number`,payloadProp:`max_tracks`},{prop:`mode`,type:`string`},{prop:`renderDimensions`,type:`object`,payloadProp:`render_dimensions`,transform:W},{prop:`trackSwitchOffMode`,type:`string`,payloadProp:`track_switch_off`}])}function ne(e,t,n,r,i,a,o){let s={transports:[{type:`data-channel`}]};return Object.assign(e?{active_speaker:s}:{},t?{network_quality:s}:{},a?{render_hints:s}:{},i?{publisher_hints:s}:{},n?{track_priority:s}:{},r?{track_switch_off:s}:{},o?{extension_transcriptions:s}:{})}function U(e){return G(e,[{prop:`height`,type:`number`},{prop:`width`,type:`number`}])}function W(e){let{PRIORITY_HIGH:t,PRIORITY_LOW:n,PRIORITY_STANDARD:i}=r;return G(e,[{prop:t,type:`object`,transform:U},{prop:n,type:`object`,transform:U},{prop:i,type:`object`,transform:U}])}function G(e,t){return t.reduce((t,{prop:n,type:r,payloadProp:i=n,transform:a=e=>e})=>typeof e[n]===r?Object.assign({[i]:a(e[n])},t):t,{})}function K(e){return{rules:[{type:e?`include`:`exclude`,all:!0}],revision:1}}function re(e){let t={[o.recordingMediaLost]:`recordings`};return e.map(e=>t[e]).filter(e=>!!e)}function q(e,t){let n=Math.random();return e-t+Math.floor(2*t*n+.5)}function ie(e,t,n){return t<=e&&e<=n}function ae(e){return i.guessBrowser()===`chrome`&&e.kind===`video`&&`displaySurface`in e.getSettings()}function oe(e=10){return new Promise(t=>setTimeout(t,e))}function se(e,t){return new Promise(n=>{e.addEventListener(t,function r(i){e.removeEventListener(t,r),n(i)})})}e.constants=t,e.createBandwidthProfilePayload=H,e.createMediaSignalingPayload=ne,e.createMediaWarningsPayload=re,e.createRoomConnectingEventPayload=ee,e.createRoomConnectedEventPayload=V,e.boolToString=B,e.createSubscribePayload=K,e.asLocalTrack=s,e.asLocalTrackPublication=c,e.capitalize=l,e.deprecateEvents=u,e.difference=d,e.filterObject=f,e.flatMap=p,e.getPlatform=h,e.getUserAgent=m,e.hidePrivateProperties=j,e.hidePrivateAndCertainPublicPropertiesInClass=M,e.isDeepEqual=C,e.isNonArrayObject=w,e.inRange=ie,e.makeUUID=g,e.oncePerTick=_,e.promiseFromEvents=v,e.getOrNull=y,e.defer=b,e.delegateMethods=S,e.proxyProperties=T,e.legacyPromise=D,e.buildLogLevels=O,e.trackClass=k,e.trackPublicationClass=A,e.valueToJSON=z,e.withJitter=q,e.isChromeScreenShareTrack=ae,e.waitForSometime=oe,e.waitForEvent=se})),Ce=r(((e,t)=>{var{flatMap:n,guessBrowser:r,guessBrowserVersion:i}=X(),a=r(),o=i(),s=a===`chrome`,c=a===`firefox`,l=a===`safari`,u=s?o.major:null,d=32767;function f(e,t){return typeof e.get==`function`?e.get(t):e.find(e=>e.id===t)}function p(e,t,n=!1){let r;if(Array.isArray(e))r=new Map(e.map(e=>[e.id||String(Math.random()),e]));else if(e instanceof Map)r=e;else if(typeof e==`object`&&e){let t=new Map;Object.keys(e).forEach(n=>{t.set(n,e[n])}),r=t}else return new Map;if(!r||!t)return new Map;let i=new Map,a=t.id,o=t.kind,s=null,c=null,l=null;
1for(let[e,t]of r)if(n&&t.type===`inbound-rtp`&&t.trackIdentifier===a){s=t,c=e,l=t.ssrc;break}else if(!n&&t.type===`media-source`&&t.trackIdentifier===a){s=t,c=e;break}else t.type===`track`&&t.trackIdentifier===a&&(s||(s=t,c=e));if(!s){if(n){let e=[];for(let[t,n]of r)n.type===`inbound-rtp`&&(n.kind===o||n.mediaType===o)&&e.push({id:t,stat:n});(e.length===1||e.length>1)&&(s=e[0].stat,c=e[0].id,l=s.ssrc)}else for(let[e,t]of r)if(t.type===`media-source`&&t.kind===o){s=t,c=e;break}}if(!s)return i;i.set(c,s);let u=new Set;if(n){if(s.codecId&&u.add(s.codecId),s.transportId&&u.add(s.transportId),s.remoteId&&u.add(s.remoteId),l)for(let[e,t]of r)t.type===`remote-outbound-rtp`&&t.ssrc===l&&u.add(e);for(let e of u)r.has(e)&&i.set(e,r.get(e));for(let[e,t]of r)t.type===`track`&&t.trackIdentifier===a&&i.set(e,t)}else{for(let[e,t]of r)if(t.type===`outbound-rtp`&&t.mediaSourceId===c){i.set(e,t),t.codecId&&u.add(t.codecId),t.transportId&&u.add(t.transportId);let n=e;for(let[e,t]of r)t.type===`remote-inbound-rtp`&&t.localId===n&&i.set(e,t)}for(let e of u)r.has(e)&&i.set(e,r.get(e))}let d=null,f=new Set;for(let e of i.values())e.transportId&&f.add(e.transportId);for(let e of f)if(r.has(e)){let t=r.get(e);i.set(e,t),t.selectedCandidatePairId&&(d=t.selectedCandidatePairId),t.localCertificateId&&r.has(t.localCertificateId)&&i.set(t.localCertificateId,r.get(t.localCertificateId)),t.remoteCertificateId&&r.has(t.remoteCertificateId)&&i.set(t.remoteCertificateId,r.get(t.remoteCertificateId))}if(d&&r.has(d)){let e=r.get(d);i.set(d,e),e.localCandidateId&&r.has(e.localCandidateId)&&i.set(e.localCandidateId,r.get(e.localCandidateId)),e.remoteCandidateId&&r.has(e.remoteCandidateId)&&i.set(e.remoteCandidateId,r.get(e.remoteCandidateId))}return i}function m(e,t){return e&&typeof e.getStats==`function`?h(e,t):Promise.reject(Error(`Given PeerConnection does not support getStats`))}function h(e,t){let r=y(e,`audio`,`local`),i=y(e,`video`,`local`),a=y(e,`audio`),o=y(e,`video`),s={activeIceCandidatePair:null,localAudioTrackStats:[],localVideoTrackStats:[],remoteAudioTrackStats:[],remoteVideoTrackStats:[]},c=n([[r,`localAudioTrackStats`,!1],[i,`localVideoTrackStats`,!1],[a,`remoteAudioTrackStats`,!0],[o,`remoteVideoTrackStats`,!0]],([n,r,i])=>n.map(n=>x(e,n,Object.assign({isRemote:i},t)).then(e=>{e.forEach(e=>{e.trackId=n.id,s[r].push(e)})})));return Promise.all(c).then(()=>g(e,t)).then(e=>(s.activeIceCandidatePair=e,s))}function g(e,t={}){return t.testForChrome!==void 0||s||t.testForSafari!==void 0||l?e.getStats().then(_):t.testForFirefox!==void 0||c?e.getStats().then(v):Promise.reject(Error(`RTCPeerConnection#getStats() not supported`))}function _(e){let t=Array.from(e.values()).find(({nominated:e,type:t})=>t===`candidate-pair`&&e);if(!t)return null;let n=f(e,t.localCandidateId),r=f(e,t.remoteCandidateId),i=[{key:`candidateType`,type:`string`},{key:`ip`,type:`string`},{key:`port`,type:`number`},{key:`priority`,type:`number`},{key:`protocol`,type:`string`},{key:`url`,type:`string`}],a=i.concat([{key:`deleted`,type:`boolean`},{key:`relayProtocol`,type:`string`},{key:`networkType`,type:`string`}]),o=n?a.reduce((e,{key:t,type:r})=>(e[t]=typeof n[t]===r?n[t]:t!==`deleted`&&null,e),{}):null,s=r?i.reduce((e,{key:t,type:n})=>(e[t]=typeof r[t]===n?r[t]:null,e),{}):null;return[{key:`availableIncomingBitrate`,type:`number`},{key:`availableOutgoingBitrate`,type:`number`},{key:`bytesReceived`,type:`number`},{key:`bytesSent`,type:`number`},{key:`consentRequestsSent`,type:`number`},{key:`currentRoundTripTime`,type:`number`},{key:`lastPacketReceivedTimestamp`,type:`number`},{key:`lastPacketSentTimestamp`,type:`number`},{key:`nominated`,type:`boolean`},{key:`priority`,type:`number`},{key:`readable`,type:`boolean`},{key:`requestsReceived`,type:`number`},{key:`requestsSent`,type:`number`},{key:`responsesReceived`,type:`number`},{key:`responsesSent`,type:`number`},{key:`retransmissionsReceived`,type:`number`},{key:`retransmissionsSent`,type:`number`},{key:`state`,type:`string`,fixup:e=>e===`inprogress`?`in-progress`:e},{key:`totalRoundTripTime`,type:`number`},{key:`transportId`,type:`string`},{key:`writable`,type:`boolean`}].reduce((e,{key:n,type:r,fixup:i})=>(e[n]=typeof t[n]===r?i?i(t[n]):t[n]:null,e),{localCandidate:o,remoteCandidate:s})}function v(e){let t=Array.from(e.values()).find(({nominated:e,type:t})=>t===`candidate-pair`&&e);if(!t)return null;let n=f(e,t.localCandidateId),r=f(e,t.remoteCandidateId),i=[{key:`candidateType`,type:`string`},{key:`ip`,ffKeys:[`address`,`ipAddress`],type:`string`},{key:`port`,ffKeys:[`portNumber`],type:`number`},{key:`priority`,type:`number`},{key:`protocol`,ffKeys:[`transport`],type:`string`},{key:`url`,type:`string`}
1],a=i.concat([{key:`deleted`,type:`boolean`},{key:`relayProtocol`,type:`string`}]),o={host:`host`,peerreflexive:`prflx`,relayed:`relay`,serverreflexive:`srflx`},s=n?a.reduce((e,{ffKeys:t,key:r,type:i})=>{let a=t&&t.find(e=>e in n)||r;return e[r]=typeof n[a]===i?a===`candidateType`&&o[n[a]]||n[a]:a!==`deleted`&&null,e},{}):null,c=r?i.reduce((e,{ffKeys:t,key:n,type:i})=>{let a=t&&t.find(e=>e in r)||n;return e[n]=typeof r[a]===i?a===`candidateType`&&o[r[a]]||r[a]:null,e},{}):null;return[{key:`availableIncomingBitrate`,type:`number`},{key:`availableOutgoingBitrate`,type:`number`},{key:`bytesReceived`,type:`number`},{key:`bytesSent`,type:`number`},{key:`consentRequestsSent`,type:`number`},{key:`currentRoundTripTime`,type:`number`},{key:`lastPacketReceivedTimestamp`,type:`number`},{key:`lastPacketSentTimestamp`,type:`number`},{key:`nominated`,type:`boolean`},{key:`priority`,type:`number`},{key:`readable`,type:`boolean`},{key:`requestsReceived`,type:`number`},{key:`requestsSent`,type:`number`},{key:`responsesReceived`,type:`number`},{key:`responsesSent`,type:`number`},{key:`retransmissionsReceived`,type:`number`},{key:`retransmissionsSent`,type:`number`},{key:`state`,type:`string`},{key:`totalRoundTripTime`,type:`number`},{key:`transportId`,type:`string`},{key:`writable`,type:`boolean`}].reduce((e,{key:n,type:r})=>(e[n]=typeof t[n]===r?t[n]:null,e),{localCandidate:s,remoteCandidate:c})}function y(e,t,n){return e[n===`local`?`getSenders`:`getReceivers`]().map(({track:e})=>e).filter(e=>e&&e.kind===t)}function b(e,t){if(!e||!t)return!1;if(e.getReceivers){let n=e.getReceivers();for(let e of n)if(e.track&&e.track.id===t.id)return!0}if(e.getRemoteStreams){let n=e.getRemoteStreams();for(let e of n){let n=e.getTracks();for(let e of n)if(e.id===t.id)return!0}}return!1}function x(e,t,n={}){return n.testForChrome!==void 0||s?S(e,t,n):n.testForFirefox!==void 0||c?C(e,t,n):n.testForSafari!==void 0||l?S(e,t,n):Promise.reject(Error(`RTCPeerConnection#getStats() not supported`))}function S(e,t,n){let r=n.log;return u&&u<67?new Promise((n,r)=>{e.getStats(e=>{n([w(e,t)])},null,r)}):e.getStats(t).then(e=>
1(r.info(`getStats by track successful`),T(e,n))).catch(()=>(r.warn(`getStats by track failed. Getting default stats`),e.getStats().then(i=>{r.info(`getStats by default successful`);let a=b(e,t);r.info(`Starting filtering stats for ${a?`remote`:`local`} track`);let o=p(i,t,a);return r.info(`Completed filtering stats for ${a?`remote`:`local`} track`),T(o,n)})))}function C(e,t,n){return e.getStats(t).then(e=>[E(e,n)])}function w(e,t){let n=e.result().find(e=>e.type===`ssrc`&&e.stat(`googTrackId`)===t.id),r={};return n&&(r.timestamp=Math.round(Number(n.timestamp)),r=n.names().reduce((e,t)=>{switch(t){case`googCodecName`:e.codecName=n.stat(t);break;case`googRtt`:e.roundTripTime=Number(n.stat(t));break;case`googJitterReceived`:e.jitter=Number(n.stat(t));break;case`googFrameWidthInput`:e.frameWidthInput=Number(n.stat(t));break;case`googFrameHeightInput`:e.frameHeightInput=Number(n.stat(t));break;case`googFrameWidthSent`:e.frameWidthSent=Number(n.stat(t));break;case`googFrameHeightSent`:e.frameHeightSent=Number(n.stat(t));break;case`googFrameWidthReceived`:e.frameWidthReceived=Number(n.stat(t));break;case`googFrameHeightReceived`:e.frameHeightReceived=Number(n.stat(t));break;case`googFrameRateInput`:e.frameRateInput=Number(n.stat(t));break;case`googFrameRateSent`:e.frameRateSent=Number(n.stat(t));break;case`googFrameRateReceived`:e.frameRateReceived=Number(n.stat(t));break;case`ssrc`:e[t]=n.stat(t);break;case`bytesReceived`:case`bytesSent`:case`packetsLost`:case`packetsReceived`:case`packetsSent`:case`audioInputLevel`:case`audioOutputLevel`:e[t]=Number(n.stat(t))}return e},r)),r}function T(e,{simulateExceptionWhileStandardizingStats:t=!1}){if(t)throw Error(`Error while gathering stats`);let n=null,r=[],i=null,a=null,o=null,s=null,c=null;e.forEach(e=>{let{type:t}=e;switch(t){case`inbound-rtp`:n=e;break;case`outbound-rtp`:r.push(e);break;case`media-source`:c=e;break;case`track`:o=e;break;case`codec`:s=e;break;case`remote-inbound-rtp`:i=e;break;case`remote-outbound-rtp`:a=e}});let l=o?o.remoteSource:!c,u=l?[n]:r,f=[],p=l?a:i;return u.forEach(e=>{let t={},n=[e,c,o,s,p&&p.ssrc===e.ssrc?p:null];function r(e){let t=n.find(t=>t&&t[e]!==void 0)||null;return t?t[e]:null}let i=r(`ssrc`);typeof i==`number`&&(t.ssrc=String(i));let a=r(`timestamp`);t.timestamp=Math.round(a);let u=r(`mimeType`);typeof u==`string`&&(u=u.split(`/`),t.codecName=u[u.length-1]);let m=r(`roundTripTime`);typeof m==`number`&&(t.roundTripTime=Math.round(m*1e3));let h=r(`jitter`);typeof h==`number`&&(t.jitter=Math.round(h*1e3));let g=r(`frameWidth`);typeof g==`number`&&(l?t.frameWidthReceived=g:(t.frameWidthSent=g,t.frameWidthInput=o?o.frameWidth:c.width));let _=r(`frameHeight`);typeof _==`number`&&(l?t.frameHeightReceived=_:(t.frameHeightSent=_,t.frameHeightInput=o?o.frameHeight:c.height));let v=r(`framesPerSecond`);(typeof v==`number`||v===null)&&(t[l?`frameRateReceived`:`frameRateSent`]=v);let y=r(`qualityLimitationReason`);typeof y==`string`&&(t.qualityLimitationReason=y);let b=r(`bytesReceived`);typeof b==`number`&&(t.bytesReceived=b);let x=r(`bytesSent`);typeof x==`number`&&(t.bytesSent=x);let S=r(`packetsLost`);typeof S==`number`&&(t.packetsLost=S);let C=r(`packetsReceived`);typeof C==`number`&&(t.packetsReceived=C);let w=r(`packetsSent`);typeof w==`number`&&(t.packetsSent=w);let T=r(`audioLevel`);typeof T==`number`&&(T=Math.round(T*d),l?t.audioOutputLevel=T:t.audioInputLevel=T);let E=r(`totalPacketSendDelay`);typeof E==`number`&&(t.totalPacketSendDelay=E);let D=r(`totalEncodeTime`);typeof D==`number`&&(t.totalEncodeTime=D);let O=r(`framesEncoded`);typeof O==`number`&&(t.framesEncoded=O);let k=r(`estimatedPlayoutTimestamp`);typeof k==`number`&&(t.estimatedPlayoutTimestamp=k);let A=r(`totalDecodeTime`);typeof A==`number`&&(t.totalDecodeTime=A);let j=r(`framesDecoded`);
1typeof j==`number`&&(t.framesDecoded=j);let M=r(`jitterBufferDelay`);typeof M==`number`&&(t.jitterBufferDelay=M);let N=r(`jitterBufferEmittedCount`);typeof N==`number`&&(t.jitterBufferEmittedCount=N);let P=r(`freezeCount`);typeof P==`number`&&(t.freezeCount=P),f.push(t)}),f}function E(e=new Map,{isRemote:t,simulateExceptionWhileStandardizingStats:n=!1}){if(n)throw Error(`Error while gathering stats`);let r=null,i=null;e.forEach(t=>{let{isRemote:n,remoteId:a,type:o}=t;if(!n)switch(o){case`inbound-rtp`:r=t,i=f(e,a);break;case`outbound-rtp`:i=t,r=f(e,a)}});let a=t?r:i,o=t?i:r;function s(e){return a&&a[e]!==void 0?a[e]:o&&o[e]!==void 0?o[e]:null}let c={},l=s(`timestamp`);c.timestamp=Math.round(l);let u=s(`ssrc`);typeof u==`number`&&(c.ssrc=String(u));let d=s(`bytesSent`);typeof d==`number`&&(c.bytesSent=d);let p=s(`packetsLost`);typeof p==`number`&&(c.packetsLost=p);let m=s(`packetsSent`);typeof m==`number`&&(c.packetsSent=m);let h=s(`roundTripTime`);typeof h==`number`&&(c.roundTripTime=Math.round(h*1e3));let g=s(`jitter`);typeof g==`number`&&(c.jitter=Math.round(g*1e3));let _=s(`framesPerSecond`);(typeof _==`number`||_===null)&&(c.frameRateSent=_);let v=s(`bytesReceived`);typeof v==`number`&&(c.bytesReceived=v);let y=s(`packetsReceived`);typeof y==`number`&&(c.packetsReceived=y);let b=s(`framesPerSecond`);(typeof b==`number`||b===null)&&(c.frameRateReceived=b);let x=s(`totalPacketSendDelay`);typeof x==`number`&&(c.totalPacketSendDelay=x);let S=s(`totalEncodeTime`);typeof S==`number`&&(c.totalEncodeTime=S);let C=s(`framesEncoded`);typeof C==`number`&&(c.framesEncoded=C);let w=s(`estimatedPlayoutTimestamp`);typeof w==`number`&&(c.estimatedPlayoutTimestamp=w);let T=s(`totalDecodeTime`);typeof T==`number`&&(c.totalDecodeTime=T);let E=s(`framesDecoded`);typeof E==`number`&&(c.framesDecoded=E);let D=s(`jitterBufferDelay`);typeof D==`number`&&(c.jitterBufferDelay=D);let O=s(`jitterBufferEmittedCount`);typeof O==`number`&&(c.jitterBufferEmittedCount=O);let k=s(`freezeCount`);return typeof k==`number`&&(c.freezeCount=k),c}t.exports=m})),we=r(((e,t)=>{function n(e={audio:!0,video:!0}){return typeof navigator==`object`&&typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.getUserMedia==`function`?navigator.mediaDevices.getUserMedia(e):Promise.reject(Error(`getUserMedia is not supported`))}t.exports=n})),Q=r(((e,t)=>{var n=typeof Reflect==`object`?Reflect:null,r=n&&typeof n.apply==`function`?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},i=n&&typeof n.ownKeys==`function`?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};function a(e){console&&console.warn&&console.warn(e)}var o=Number.isNaN||function(e){return e!==e};function s(){s.init.call(this)}t.exports=s,t.exports.once=y,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function l(e){if(typeof e!=`function`)throw TypeError(`The "listener" argument must be of type Function. Received type `+typeof e)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if(typeof e!=`number`||e<0||o(e))throw RangeError(`The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received `+e+`.`);c=e}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if(typeof e!=`number`||e<0||o(e))throw RangeError(`The value of "n" is out of range. It must be a non-negative number. Received `+e+`.`);return this._maxListeners=e,this};function u(e){return e._maxListeners===void 0?s.defaultMaxListeners:e._maxListeners}s.prototype.getMaxListeners=function(){return u(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i=e===`error`,a=this._events;if(a!==void 0)i&&=a.error===void 0;else if(!i)return!1;if(i){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var s=Error(`Unhandled error.`+(o?` (`+o.message+`)`:``));throw s.context=o,s}var c=a[e];if(c===void 0)return!1;if(typeof c==`function`)r(c,this,t);else for(var l=c.length,u=g(c,l),n=0;n<l;++n)r(u[n],this,t);return!0};function d(e,t,n,r){var i,o,s;if(l(n),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit(`newListener`,t,n.listener?n.listener:n),o=e._events),s=o[t]),s===void 0)s=o[t]=n,++e._eventsCount;else if(typeof s==`function`?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),i=u(e),i>0&&s.length>i&&!s.warned){s.warned=!0;var c=Error(`Possible EventEmitter memory leak detected. `+s.length+` `+String(t)+` listeners added. Use emitter.setMaxListeners() to increase limit`);c.name=`MaxListenersExceededWarning`,c.emitter=e,c.type=t,c.count=s.length,a(c)}return e}s.prototype.addListener=function(e,t){return d(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return d(this,e,t,!0)};function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}s.prototype.once=function(e,t){return l(t),this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return l(t),this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,i,a,o;if(l(t),r=this._events,r===void 0||(n=r[e],n===void 0))return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit
1(`removeListener`,e,n.listener||t));else if(typeof n!=`function`){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;i===0?n.shift():_(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit(`removeListener`,e,o||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n=this._events,r;if(n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),a;for(r=0;r<i.length;++r)a=i[r],a!==`removeListener`&&this.removeAllListeners(a);return this.removeAllListeners(`removeListener`),this._events=Object.create(null),this._eventsCount=0,this}if(t=n[e],typeof t==`function`)this.removeListener(e,t);else if(t!==void 0)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this};function m(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i==`function`?n?[i.listener||i]:[i]:n?v(i):g(i,i.length)}s.prototype.listeners=function(e){return m(this,e,!0)},s.prototype.rawListeners=function(e){return m(this,e,!1)},s.listenerCount=function(e,t){return typeof e.listenerCount==`function`?e.listenerCount(t):h.call(e,t)},s.prototype.listenerCount=h;function h(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n==`function`)return 1;if(n!==void 0)return n.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]};function g(e,t){for(var n=Array(t),r=0;r<t;++r)n[r]=e[r];return n}function _(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function v(e){for(var t=Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function y(e,t){return new Promise(function(n,r){function i(n){e.removeListener(t,a),r(n)}function a(){typeof e.removeListener==`function`&&e.removeListener(`error`,i),n([].slice.call(arguments))}x(e,t,a,{once:!0}),t!==`error`&&b(e,i,{once:!0})})}function b(e,t,n){typeof e.on==`function`&&x(e,`error`,t,n)}function x(e,t,n,r){if(typeof e.on==`function`)r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener==`function`)e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw TypeError(`The "emitter" argument must be of type EventEmitter. Received type `+typeof e)}})),Te=r(((e,t)=>{var{EventEmitter:n}=Q();t.exports=class{constructor(){Object.defineProperties(this,{_eventEmitter:{value:new n}})}dispatchEvent(e){return this._eventEmitter.emit(e.type,e)}addEventListener(){return this._eventEmitter.addListener(...arguments)}removeEventListener(){return this._eventEmitter.removeListener(...arguments)}}})),Ee=r(((e,t)=>{var{defer:n}=X(),r={high:new Set([`low`]),low:new Set([`high`])},i=class{constructor(e=`low`){let t=e;Object.defineProperties(this,{_state:{set:function(e){if(t!==e){t=e;let n=this._whenDeferreds.get(t);n.forEach(e=>e.resolve(this)),n.clear()}},get:function(){return t}},_whenDeferreds:{value:new Map([[`high`,new Set],[`low`,new Set]])}})}get state(){return this._state}lower(){return this.transition(`low`)}raise(){return this.transition(`high`)}transition(e){if(!r[this.state].has(e))throw a(this.state,e);return this._state=e,this}when(e){if(this.state===e)return Promise.resolve(this);if(!r[this.state].has(e))return Promise.reject(a(this.state,e));let t=n();return this._whenDeferreds.get(e).add(t),t.promise}};function a(e,t){return Error(`Cannot transition from "${e}" to "${t}"`)}t.exports=i})),De=r((e=>{var{flatMap:t}=X();function n(e,t){return(t.match(new RegExp(e,`gm`))||[]).reduce((t,n)=>{let r=n.match(new RegExp(e));return r?t.add(r[1]):t},new Set)}function r(e){return n(`^a=msid:.+ +(.+) *$`,e)}function i(e,t=`.*`,n=`.*`){return e.split(`\r
2m=`).slice(1).map(e=>`m=${e}`).filter(e=>{let r=RegExp(`m=${t}`,`gm`),i=RegExp(`a=${n}`,`gm`);return r.test(e)&&i.test(e)})}function a(e){return Array.from(n(`^a=ssrc:([0-9]+) +.*$`,e))}function o(e,n){let r=i(e),o=RegExp(`^a=msid:[^ ]+ +${n} *$`,`gm`),s=r.filter(e=>
2e.match(o));return new Set(t(s,a))}function s(e){return new Map(Array.from(r(e)).map(t=>[t,o(e,t)]))}function c(e,t){let n=s(t),r=new Map;n.forEach((n,i)=>{if(!e.has(i)){e.set(i,n);return}let a=Array.from(e.get(i)),o=Array.from(n);a.forEach((e,n)=>{let i=o[n];r.set(i,e);let a=`^a=ssrc:${i} (.*)$`,s=`a=ssrc:${e} $1`;t=t.replace(new RegExp(a,`gm`),s)})});let i=`^(a=ssrc-group:[^ ]+ +)(.*)$`;return(t.match(RegExp(i,`gm`))||[]).forEach(e=>{let n=e.match(RegExp(i));if(!n)return;let a=n[1],o=n[2].split(` `).map(e=>r.get(e)||e).join(` `);t=t.replace(n[0],a+o)}),t}e.getMediaSections=i,e.getTrackIds=r,e.getSSRCs=o,e.updateTrackIdsToSSRCs=c})),Oe=r(((e,t)=>{var n=Te(),r=Ee(),{updateTrackIdsToSSRCs:i}=De(),{delegateMethods:a,interceptEvent:o,isIOSChrome:s,legacyPromise:c,proxyProperties:l}=X(),u=class extends n{constructor(e={},t={}){super();let n=t.chromeSpecificConstraints,i=Object.assign(e.iceTransportPolicy?{iceTransports:e.iceTransportPolicy}:{},e);o(this,`datachannel`),o(this,`signalingstatechange`);let a=new RTCPeerConnection(i,n);Object.defineProperties(this,{_appliedTracksToSSRCs:{value:new Map,writable:!0},_applyCodecPreferences:{value:t.applyCodecPreferences||(()=>{})},_audioTransceiver:{value:null,writable:!0},_peerConnection:{value:a},_pendingLocalOffer:{value:null,writable:!0},_pendingRemoteOffer:{value:null,writable:!0},_rolledBackTracksToSSRCs:{value:new Map,writable:!0},_signalingStateLatch:{value:new r},_tracksToSSRCs:{value:new Map,writable:!0},_videoTransceiver:{value:null,writable:!0}}),a.addEventListener(`datachannel`,e=>{_(e.channel),this.dispatchEvent(e)}),a.addEventListener(`signalingstatechange`,(...e)=>{a.signalingState===`stable`&&(this._appliedTracksToSSRCs=new Map(this._tracksToSSRCs)),!this._pendingLocalOffer&&!this._pendingRemoteOffer&&this.dispatchEvent(...e)}),l(RTCPeerConnection.prototype,this,a)}get localDescription(){return this._pendingLocalOffer?this._pendingLocalOffer:this._peerConnection.localDescription}get remoteDescription(){return this._pendingRemoteOffer?this._pendingRemoteOffer:this._peerConnection.remoteDescription}get signalingState(){return this._pendingLocalOffer?`have-local-offer`:this._pendingRemoteOffer?`have-remote-offer`:this._peerConnection.signalingState}addIceCandidate(e,...t){let n;return n=this.signalingState===`have-remote-offer`?this._signalingStateLatch.when(`low`).then(()=>this._peerConnection.addIceCandidate(e)):this._peerConnection.addIceCandidate(e),t.length>0?c(n,...t):n}close(){this.signalingState!==`closed`&&(this._pendingLocalOffer=null,this._pendingRemoteOffer=null,this._peerConnection.close())}createAnswer(...e){let t;return t=this._pendingRemoteOffer?this._peerConnection.setRemoteDescription(this._pendingRemoteOffer).then(()=>(this._signalingStateLatch.lower(),this._peerConnection.createAnswer())).then(e=>(this._pendingRemoteOffer=null,this._rolledBackTracksToSSRCs.clear(),new RTCSessionDescription({type:`answer`,sdp:i(this._tracksToSSRCs,e.sdp)})),e=>{throw this._pendingRemoteOffer=null,e}):this._peerConnection.createAnswer().then(e=>(this._rolledBackTracksToSSRCs.clear(),new RTCSessionDescription({type:`answer`,sdp:i(this._tracksToSSRCs,e.sdp)}))),e.length>1?c(t,...e):t}createOffer(...e){let[t,n,r]=e,a=r||t||{};if(s()){if(a.offerToReceiveVideo&&!this._audioTransceiver&&!p(this,`audio`)){delete a.offerToReceiveAudio;try{this._audioTransceiver=this.addTransceiver(`audio`,{direction:`recvonly`}),this._applyCodecPreferences(this._audioTransceiver)}catch(e){return Promise.reject(e)}}if(a.offerToReceiveVideo&&!this._videoTransceiver&&!p(this,`video`)){delete a.offerToReceiveVideo;try{this._videoTransceiver=this.addTransceiver(`video`,{direction:`recvonly`}),this._applyCodecPreferences(this._videoTransceiver)}catch(e){return Promise.reject(e)}}}let o=this._peerConnection.createOffer(a).then(e=>(this._rolledBackTracksToSSRCs.clear(),new RTCSessionDescription({type:e.type,sdp:i(this._tracksToSSRCs,e.sdp)})));return e.length>1?c(o,t,n):o}createDataChannel(e,t){t=g(t);let n=this._peerConnection.createDataChannel(e,t);return _(n),n}setLocalDescription(...e){let[t,n,r]=e;this._rolledBackTracksToSSRCs.size>0&&(this._tracksToSSRCs=new Map(this._rolledBackTracksToSSRCs),this._rolledBackTracksToSSRCs.clear());let i=d(this,!0,t);return e.length>1?c(i,n,r):i}setRemoteDescription(...e){let[t,n,r]=e;this._rolledBackTracksToSSRCs.clear();let i=d(this,!1,t);return e.length>1?c(i,n,r):i}};a(RTCPeerConnection.prototype,u.prototype,`_peerConnection`);function d(e,t,n){function r(n){t?e._pendingLocalOffer=n:e._pendingRemoteOffer=n}function i(){t?e._pendingLocalOffer=null:e._pendingRemoteOffer=null}let a=t?e._pendingLocalOffer:e._pendingRemoteOffer,o=t?e._pendingRemoteOffer:e._pendingLocalOffer,s=t?`have-local-offer`:`have-remote-offer`,c=t?`setLocalDescription`:`setRemoteDescription`,l;if(!t&&o&&n.type===`answer`)l=f(e,n);else if(n.type===`offer`){if(e.signalingState!==s&&e.signalingState!==`stable`)return Promise.reject(Error(`Cannot set ${t?`local`:`remote`} offer in state ${e.signalingState}`));!a&&e._signalingStateLatch.state===`low`&&e._signalingStateLatch.raise();let i=e.signalingState;r(m(n)),l=Promise.resolve(),e.signalingState!==i&&l.then(()=>
2e.dispatchEvent(new Event(`signalingstatechange`)))}else n.type===`rollback`&&(e.signalingState===s?(i(),e._rolledBackTracksToSSRCs=new Map(e._tracksToSSRCs),e._tracksToSSRCs=new Map(e._appliedTracksToSSRCs),l=Promise.resolve(),l.then(()=>e.dispatchEvent(new Event(`signalingstatechange`)))):l=Promise.reject(Error(`Cannot rollback ${t?`local`:`remote`} description in ${e.signalingState}`)));return l||e._peerConnection[c](m(n))}function f(e,t){let n=e._pendingLocalOffer;return e._peerConnection.setLocalDescription(n).then(()=>(e._pendingLocalOffer=null,e.setRemoteDescription(t))).then(()=>{e._signalingStateLatch.lower()})}function p(e,t){return!!e.getTransceivers().find(({receiver:e={}})=>{let{track:n={}}=e;return n.kind===t})}function m(e){return e instanceof RTCSessionDescription?e:new RTCSessionDescription(e)}function h(){return`maxRetransmitTime`in RTCDataChannel.prototype&&!(`maxPacketLifeTime`in RTCDataChannel.prototype)}function g(e){return e=Object.assign({},e),h()&&`maxPacketLifeTime`in e&&(e.maxRetransmitTime=e.maxPacketLifeTime),e}function _(e){return Object.defineProperty(e,"maxRetransmits",{value:e.maxRetransmits===65535?null:e.maxRetransmits}),h()&&Object.defineProperty(e,"maxPacketLifeTime",{value:e.maxRetransmitTime===65535?null:e.maxRetransmitTime}),e}t.exports=u})),ke=r(((e,t)=>{var n=Te(),{updateTrackIdsToSSRCs:r}=De(),{delegateMethods:i,interceptEvent:a,legacyPromise:o,proxyProperties:s}=X(),c=class extends n{constructor(e){super(),a(this,`signalingstatechange`);let t=new RTCPeerConnection(e);Object.defineProperties(this,{_initiallyNegotiatedDtlsRole:{value:null,writable:!0},_isClosed:{value:!1,writable:!0},_peerConnection:{value:t},_rollingBack:{value:!1,writable:!0},_tracksToSSRCs:{value:new Map},peerIdentity:{enumerable:!0,value:Promise.resolve({idp:``,name:``})}});let n;t.addEventListener(`signalingstatechange`,(...e)=>{!this._rollingBack&&this.signalingState!==n&&(n=this.signalingState,this._isClosed?setTimeout(()=>this.dispatchEvent(...e)):this.dispatchEvent(...e))}),s(RTCPeerConnection.prototype,this,t)}get iceGatheringState(){return this._isClosed?`complete`:this._peerConnection.iceGatheringState}get localDescription(){return d(this._peerConnection.localDescription,this._initiallyNegotiatedDtlsRole)}get signalingState(){return this._isClosed?`closed`:this._peerConnection.signalingState}createAnswer(...e){let t;return t=this._peerConnection.createAnswer().then(e=>(u(this,e),d(e,this._initiallyNegotiatedDtlsRole))),typeof e[0]==`function`?o(t,...e):t}createOffer(...e){let[t,n,i]=e,a=i||t||{},s;if(this.signalingState===`have-local-offer`||this.signalingState===`have-remote-offer`){let e=this.signalingState===`have-local-offer`;s=l(this,e,()=>this.createOffer(a))}else s=this._peerConnection.createOffer(a);return s=s.then(e=>new RTCSessionDescription({type:e.type,sdp:r(this._tracksToSSRCs,e.sdp)})),e.length>1?o(s,t,n):s}setLocalDescription(...e){let[t,...n]=e,r;return t&&t.type===`answer`&&this.signalingState===`have-local-offer`&&(r=Promise.reject(Error(`Cannot set local answer in state have-local-offer`))),r?e.length>1?o(r,...n):r:this._peerConnection.setLocalDescription(...e)}setRemoteDescription(...e){let[t,...n]=e,r;return t&&this.signalingState===`have-remote-offer`&&(t.type===`answer`?r=Promise.reject(Error(`Cannot set remote answer in state have-remote-offer`)):t.type===`offer`&&(r=l(this,!1,()=>this._peerConnection.setRemoteDescription(t)))),r||=this._peerConnection.setRemoteDescription(t),r=r.then(()=>u(this,t,!0)),e.length>1?o(r,...n):r}close(){this.signalingState!==`closed`&&(this._isClosed=!0,this._peerConnection.close())}};i(RTCPeerConnection.prototype,c.prototype,`_peerConnection`);function l(e,t,n){let r=t?`setLocalDescription`:`setRemoteDescription`;return e._rollingBack=!0,e._peerConnection[r](new RTCSessionDescription({type:`rollback`})).then(n).then(t=>(e._rollingBack=!1,t),t=>{throw e._rollingBack=!1,t})}function u(e,t,n){if(e._initiallyNegotiatedDtlsRole||t.type===`offer`)return;let r=t.sdp.match(/a=setup:([a-z]+)/);if(!r)return;let i=r[1];e._initiallyNegotiatedDtlsRole=n?{active:`passive`,passive:`active`}[i]:i}function d(e,t){return e&&e.type===`answer`&&t?new RTCSessionDescription({type:e.type,sdp:e.sdp.replace(/a=setup:[a-z]+/g,`a=setup:`+t)}):e}t.exports=c})),Ae=r(((e,t)=>{var n=Te(),r=Ee(),{updateTrackIdsToSSRCs:i}=De(),{delegateMethods:a,interceptEvent:o,proxyProperties:s}=X(),c=class extends n{constructor(e,t={}){super(),o(this,`datachannel`),o(this,`iceconnectionstatechange`),o(this,`signalingstatechange`),o(this,`track`);let n=new RTCPeerConnection(e);Object.defineProperties(this,{_appliedTracksToSSRCs:{value:new Map,writable:!0},_applyCodecPreferences:{value:t.applyCodecPreferences||(()=>{})},_audioTransceiver:{value:null,writable:!0},_isClosed:{value:!1,writable:!0},_peerConnection:{value:n},_pendingLocalOffer:{value:null,writable:!0},_pendingRemoteOffer:{value:null,writable:!0},_rolledBackTracksToSSRCs:{value:new Map,writable:!0},_signalingStateLatch:{value:new r},_tracksToSSRCs:{value:new Map,writable:!0},_videoTransceiver:{value:null,writable:!0}}),n.addEventListener(`datachannel`,e=>{f(e.channel),this.dispatchEvent(e)}),n.addEventListener(`iceconnectionstatechange`,(...e)=>{this._isClosed||this.dispatchEvent(...e)}),n.addEventListener(`signalingstatechange`,(...e)=>{this._isClosed||(n.signalingState===`stable`&&(this._appliedTracksToSSRCs=new Map(this._tracksToSSRCs)),!this._pe
2ndingLocalOffer&&!this._pendingRemoteOffer&&this.dispatchEvent(...e))}),n.addEventListener(`track`,e=>{this._pendingRemoteOffer=null,this.dispatchEvent(e)}),s(RTCPeerConnection.prototype,this,n)}get localDescription(){return this._pendingLocalOffer||this._peerConnection.localDescription}get iceConnectionState(){return this._isClosed?`closed`:this._peerConnection.iceConnectionState}get iceGatheringState(){return this._isClosed?`complete`:this._peerConnection.iceGatheringState}get remoteDescription(){return this._pendingRemoteOffer||this._peerConnection.remoteDescription}get signalingState(){return this._isClosed?`closed`:this._pendingLocalOffer?`have-local-offer`:this._pendingRemoteOffer?`have-remote-offer`:this._peerConnection.signalingState}addIceCandidate(e){return this.signalingState===`have-remote-offer`?this._signalingStateLatch.when(`low`).then(()=>this._peerConnection.addIceCandidate(e)):this._peerConnection.addIceCandidate(e)}createOffer(e){if(e=Object.assign({},e),e.offerToReceiveVideo&&!this._audioTransceiver&&!d(this,`audio`)){delete e.offerToReceiveAudio;try{this._audioTransceiver=this.addTransceiver(`audio`,{direction:`recvonly`}),this._applyCodecPreferences(this._audioTransceiver)}catch(e){return Promise.reject(e)}}if(e.offerToReceiveVideo&&!this._videoTransceiver&&!d(this,`video`)){delete e.offerToReceiveVideo;try{this._videoTransceiver=this.addTransceiver(`video`,{direction:`recvonly`}),this._applyCodecPreferences(this._videoTransceiver)}catch(e){return Promise.reject(e)}}return this._peerConnection.createOffer(e).then(e=>(this._rolledBackTracksToSSRCs.clear(),new RTCSessionDescription({type:e.type,sdp:i(this._tracksToSSRCs,e.sdp)})))}createAnswer(e){return this._pendingRemoteOffer?this._peerConnection.setRemoteDescription(this._pendingRemoteOffer).then(()=>(this._signalingStateLatch.lower(),this._peerConnection.createAnswer())).then(e=>(this._pendingRemoteOffer=null,this._rolledBackTracksToSSRCs.clear(),new RTCSessionDescription({type:e.type,sdp:i(this._tracksToSSRCs,e.sdp)})),e=>{throw this._pendingRemoteOffer=null,e}):this._peerConnection.createAnswer(e).then(e=>(this._rolledBackTracksToSSRCs.clear(),new RTCSessionDescription({type:e.type,sdp:i(this._tracksToSSRCs,e.sdp)})))}createDataChannel(e,t){let n=this._peerConnection.createDataChannel(e,t);return f(n),n}removeTrack(e){e.replaceTrack(null),this._peerConnection.removeTrack(e)}setLocalDescription(e){return this._rolledBackTracksToSSRCs.size>0&&(this._tracksToSSRCs=new Map(this._rolledBackTracksToSSRCs),this._rolledBackTracksToSSRCs.clear()),l(this,!0,e)}setRemoteDescription(e){return this._rolledBackTracksToSSRCs.clear(),l(this,!1,e)}close(){this._isClosed||(this._isClosed=!0,this._peerConnection.close())}};a(RTCPeerConnection.prototype,c.prototype,`_peerConnection`);function l(e,t,n){function r(n){t?e._pendingLocalOffer=n:e._pendingRemoteOffer=n}function i(){t?e._pendingLocalOffer=null:e._pendingRemoteOffer=null}let a=t?e._pendingLocalOffer:e._pendingRemoteOffer,o=t?e._pendingRemoteOffer:e._pendingLocalOffer,s=t?`have-local-offer`:`have-remote-offer`,c=t?`setLocalDescription`:`setRemoteDescription`;if(!t&&o&&n.type===`answer`)return u(e,n);if(n.type===`offer`){if(e.signalingState!==s&&e.signalingState!==`stable`)return Promise.reject(Error(`Cannot set ${t?`local`:`remote`}
3        offer in state ${e.signalingState}`));!a&&e._signalingStateLatch.state===`low`&&e._signalingStateLatch.raise();let i=e.signalingState;return r(n),e.signalingState===i?Promise.resolve():Promise.resolve().then(()=>e.dispatchEvent(new Event(`signalingstatechange`)))}return n.type===`rollback`?e.signalingState===s?(i(),e._rolledBackTracksToSSRCs=new Map(e._tracksToSSRCs),e._tracksToSSRCs=new Map(e._appliedTracksToSSRCs),Promise.resolve().then(()=>e.dispatchEvent(new Event(`signalingstatechange`)))):Promise.reject(Error(`Cannot rollback 
4        ${t?`local`:`remote`} description in ${e.signalingState}`)):e._peerConnection[c](n)}function u(e,t){let n=e._pendingLocalOffer;return e._peerConnection.setLocalDescription(n).then(()=>(e._pendingLocalOffer=null,e.setRemoteDescription(t))).then(()=>e._signalingStateLatch.lower())}function d(e,t){return!!e.getTransceivers().find(({receiver:e={}})=>{let{track:n={}}=e;return n.kind===t})}function f(e){return Object.defineProperties(e,{maxPacketLifeTime:{value:e.maxPacketLifeTime===65535?null:e.maxPacketLifeTime},maxRetransmits:{value:e.maxRetransmits===65535?null:e.maxRetransmits}})}t.exports=c})),je=r(((e,t)=>{if(typeof RTCPeerConnection==`function`){let{guessBrowser:e}=X();switch(e()){case`chrome`:t.exports=Oe();break;case`firefox`:t.exports=ke();break;case`safari`:t.exports=Ae();break;default:t.exports=RTCPeerConnection}}
4else t.exports=function(){throw Error(`RTCPeerConnection is not supported`)}})),Me=r(((e,t)=>{var n={};Object.defineProperties(n,{getStats:{enumerable:!0,value:Ce()},getUserMedia:{enumerable:!0,value:we()},RTCPeerConnection:{enumerable:!0,value:je()}}),t.exports=n})),Ne=r(((e,t)=>{t.exports=function(e,t){if(e&&t){if(e.super_=t,typeof Object.create==`function`)e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}});else{class n{constructor(){}}n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}}})),Pe=r(((e,t)=>{function n(){return/Android/.test(navigator.userAgent)}function r(){return!!(navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)}function i(){return r()&&window.screen.width>=744&&(/Macintosh/i.test(navigator.userAgent)||/iPad/.test(navigator.userAgent)||/iPad/.test(navigator.platform))}function a(){return r()&&window.screen.width<=476&&(/Macintosh/i.test(navigator.userAgent)||/iPhone/.test(navigator.userAgent)||/iPhone/.test(navigator.platform))}function o(){return i()||a()}function s(){return/Mobi/.test(navigator.userAgent)}function c(e){return e===`chrome`&&/Edge/.test(navigator.userAgent)&&(typeof chrome>`u`||chrome.runtime===void 0)}function l(e){if(e!==`chrome`)return null;if(`brave`in navigator)return`brave`;let[,,...t]=(d(navigator.userAgent).reduce((e,t)=>e.replace(t,``),navigator.userAgent).match(/[^\s]+/g)||[]).map(e=>e.split(`/`)[0].toLowerCase());return t.find(e=>![`chrome`,`mobile`,`safari`].includes(e))||null}function u(e){return e===`safari`?`brave`in navigator?`brave`:[`edge`,`edg`].find(e=>navigator.userAgent.toLowerCase().includes(e))||null:null}function d(e){let t=[],n=[];for(let r=0;r<e.length;r++)if(e[r]===`(`)t.push(r);else if(e[r]===`)`&&t.length>0){let i=t.pop();t.length===0&&n.push(e.substring(i,r+1))}return n}t.exports={isAndroid:n,isIOS:o,isIpad:i,isIphone:a,isMobile:s,isNonChromiumEdge:c,mobileWebKitBrowser:u,rebrandedChromeBrowser:l}})),Fe=r(((e,t)=>{function n(e){return e=typeof e==`number`?e:0,new Promise(t=>setTimeout(t,e))}function r(e,t,r){r=typeof r==`number`?r:250;let i=e.createMediaStreamSource(t),a=e.createAnalyser();a.fftSize=2048,i.connect(a);let o=new Uint8Array(a.fftSize),s=!1;setTimeout(()=>{s=!0},r);function c(){return s?Promise.resolve(!0):(a.getByteTimeDomainData(o),o.some(e=>e!==128&&e!==0)?Promise.resolve(!1):n().then(c))}return c().then(e=>(i.disconnect(),e),e=>{throw i.disconnect(),e})}t.exports=r})),Ie=r(((e,t)=>{var n=Fe(),r=3,i=250;function a(e){let t=H(),a={},o=t.getOrCreate(a),s=r;function c(){return s--,n(o,e.srcObject,i).then(e=>e?s>0?c():!0:!1).catch(()=>!0)}return c().finally(()=>{t.release(a)})}t.exports=a})),Le=r(((e,t)=>{var{defer:n}=Z();t.exports=new class{constructor(){Object.defineProperties(this,{_audio:{value:n(),writable:!0},_video:{value:n(),writable:!0}}),this._audio.resolve(),this._video.resolve()}resolveDeferred(e){e===`audio`?this._audio.resolve():this._video.resolve()}startDeferred(e){e===`audio`?this._audio=n():this._video=n()}whenResolved(e){return e===`audio`?this._audio.promise:this._video.promise}}})),Re=r(((e,t)=>{var{EventEmitter:n}=Q(),{hidePrivateAndCertainPublicPropertiesInClass:r}=Z();t.exports=r(n,[`domain`])})),ze=r(((e,t)=>{var n=Re(),{buildLogLevels:r,valueToJSON:i}=Z(),a=J().DEFAULT_LOG_LEVEL,o=Y(),s=0;t.exports=class extends n{constructor(e,t,n){n=Object.assign({name:e,log:null,logLevel:a},n),super();let i=String(n.name),c=r(n.logLevel),l=n.log?n.log.createLog(`media`,this):new o(`media`,this,c,n.loggerName);Object.defineProperties(this,{_instanceId:{value:++s},_log:{value:l},kind:{enumerable:!0,value:t},name:{enumerable:!0,value:i}})}toJSON(){return i(this)}}})),Be=r(((e,t)=>{var{isIOS:n}=Pe(),{waitForEvent:r,waitForSometime:i}=Z(),a=Le(),o=ze(),s=class extends o{constructor(e,t){t=Object.assign({playPausedElementsIfNotBackgrounded:n()&&typeof document==`object`&&typeof document.addEventListener==`function`&&typeof document.visibilityState==`string`},t),super(e.id,e.kind,t);let r=!1;if(t=Object.assign({MediaStream},t),typeof t.MediaStream!=`function`)throw Error(`MediaTrack received an invali
4d MediaStream constructor: `+t.MediaStream);Object.defineProperties(this,{_attachments:{value:new Set},_dummyEl:{value:null,writable:!0},_elShims:{value:new WeakMap},_isStarted:{get(){return r},set(e){r=e}},_playPausedElementsIfNotBackgrounded:{value:t.playPausedElementsIfNotBackgrounded},_shouldShimAttachedElements:{value:t.workaroundWebKitBug212780||t.playPausedElementsIfNotBackgrounded},_unprocessedTrack:{value:null,writable:!0},_MediaStream:{value:t.MediaStream},_mapMediaElement:{value:t.mapMediaElement},_disposeMediaElement:{value:t.disposeMediaElement},isStarted:{enumerable:!0,get(){return r}},mediaStreamTrack:{enumerable:!0,get(){return this._unprocessedTrack||e.track}},processedTrack:{enumerable:!0,value:null,writable:!0}}),this._initialize()}_start(){this._log.debug(`Started`),this._isStarted=!0,this._dummyEl&&(this._dummyEl.oncanplay=null),this.emit(`started`,this)}_initialize(){let e=this;this._log.debug(`Initializing`),this._dummyEl=this._createElement(),this.mediaStreamTrack&&this.mediaStreamTrack.addEventListener?this.mediaStreamTrack.addEventListener(`ended`,function t(){e._end(),e.mediaStreamTrack.removeEventListener(`ended`,t)}):this.mediaStreamTrack&&(this.mediaStreamTrack.onended=function(){e._end(),e.mediaStreamTrack.onended=null}),this._dummyEl&&(this._dummyEl.muted=!0,this._dummyEl.oncanplay=this._start.bind(this,this._dummyEl),this._attach(this._dummyEl,this.mediaStreamTrack),this._attachments.delete(this._dummyEl))}_end(){this._log.debug(`Ended`),this._dummyEl&&=(this._dummyEl.remove(),this._disposeMediaElement?this._disposeMediaElement(this._dummyEl):this._dummyEl.srcObject=null,this._dummyEl.oncanplay=null,null)}attach(e){if(typeof e==`string`?e=this._selectElement(e):e||=this._createElement(),this._log.debug(`Attempting to attach to element:`,e),e=this._attach(e),this._shouldShimAttachedElements&&!this._elShims.has(e)){let t=this._playPausedElementsIfNotBackgrounded?()=>c(e,this._log):null;this._elShims.set(e,l(e,t))}return e}_attach(e,t=this.processedTrack||this.mediaStreamTrack){let n=e.srcObject;n instanceof this._MediaStream||(n=new this._MediaStream);let r=t.kind===`audio`?`getAudioTracks`:`getVideoTracks`;return n[r]().forEach(e=>{n.removeTrack(e)}),n.addTrack(t),this._mapMediaElement&&(this._log.debug(`Mapping element using mapMediaElement before attaching media to element`),this._mapMediaElement(e)),e.srcObject=n,e.autoplay=!0,e.playsInline=!0,this._attachments.has(e)||this._attachments.add(e),e}_selectElement(e){let t=document.querySelector(e);if(!t)throw Error(`Selector matched no element: ${e}`);return t}_updateElementsMediaStreamTrack(){this._log.debug(`Reattaching all elements to update mediaStreamTrack`),this._getAllAttachedElements().forEach(e=>this._attach(e))}_createElement(){return typeof document<`u`?document.createElement(this.kind):null}detach(e){let t;return t=typeof e==`string`?[this._selectElement(e)]:e?[e]:this._getAllAttachedElements(),this._log.debug(`Attempting to detach from elements:`,t),this._detachElements(t),e?t[0]:t}_detachElements(e){return e.map(this._detachElement.bind(this))}_detachElement(e){if(!this._attachments.has(e))return e;let t=e.srcObject;return t instanceof this._MediaStream&&t.removeTrack(this.processedTrack||this.mediaStreamTrack),this._disposeMediaElement&&(this._log.debug(`Disposing element using disposeMediaElement after removing media from element`),this._disposeMediaElement(e)),this._attachments.delete(e),this._shouldShimAttachedElements&&this._elShims.has(e)&&(this._elShims.get(e).unShim(),this._elShims.delete(e)),e}_getAllAttachedElements(){let e=[];return this._attachments.forEach(t=>{e.push(t)}),e}};function c(e,t){let n=e.tagName.toLowerCase();t.warn(`Unintentionally paused:`,e),Promise.race([r(document,`visibilitychange`),i(1e3)]).then(()=>{document.visibilityState===`visible`&&a.whenResolved(`audio`).then(()=>(t.info(`Playing unintentionally paused <${n}> element`),t.debug(`Element:`,e),e.play())).then(()=>{t.info(`Successfully played unintentionally paused <${n}> element`),t.debug(`Element:`,e)}).catch(r=>{t.warn(`Error while playing unintentionally paused <${n}> element:`,{error:r,el:e})})})}function l(e,t=null){let n=e.pause,r=e.play,i=!1;e.pause=()=>(i=!0,n.call(e)),e.play=()=>(i=!1,r.call(e));let a=t?()=>{i||t()}:null;return a&&e.addEventListener(`pause`,a),{pausedIntentionally(){return i},unShim(){e.pause=n,e.play=r,a&&e.removeEventListener(`pause`,a)}}}t.exports=s})),Ve=r(((e,t)=>{var n=Be();t.exports=class extends n{constructor(e,t){super(e,t)}attach(){return super.attach.apply(this,arguments)}detach(){return super.detach.apply(this,arguments)}}})),He=r(((e,t)=>{var n=null;function r(e){try{let t=n.getContext(`2d`);t.drawImage(e,0,0,50,50);let r=t.getImageData(0,0,50,50).data.filter((e,t)=>
4(t+1)%4);return Math.max.apply(Math,r)===0}catch(e){return console.log(`Error checking silence: `,e),!1}}function i(e){return n||=document.createElement(`canvas`),new Promise(t=>{let n=3;setTimeout(function i(){return n--,r(e)?n>0?setTimeout(i,250):t(!0):t(!1)},250)})}t.exports=i})),Ue=r(((e,t)=>{t.exports=new class{constructor(e=1){Object.defineProperties(this,{_listeners:{value:[]},_onVisibilityChange:{value:()=>{this._emitVisible(document.visibilityState===`visible`)}}});for(let t=0;t<e;t++)this._listeners.push([])}clear(){let e=this._listeners.length;for(let t=0;t<e;t++)this._listeners[t]=[]}_listenerCount(){return this._listeners.reduce((e,t)=>e+t.length,0)}_emitVisible(e){let t=Promise.resolve();for(let n=1;n<=this._listeners.length;n++)t=t.then(()=>this._emitVisiblePhase(n,e));return t}_emitVisiblePhase(e,t){let n=this._listeners[e-1];return Promise.all(n.map(e=>{let n=e(t);return n instanceof Promise?n:Promise.resolve(n)}))}_start(){document.addEventListener(`visibilitychange`,this._onVisibilityChange)}_stop(){document.removeEventListener(`visibilitychange`,this._onVisibilityChange)}onVisibilityChange(e,t){if(typeof e!=`number`||e<=0||e>this._listeners.length)throw Error(`invalid phase: `,e);return this._listeners[e-1].push(t),this._listenerCount()===1&&this._start(),this}offVisibilityChange(e,t){if(typeof e!=`number`||e<=0||e>this._listeners.length)throw Error(`invalid phase: `,e);let n=this._listeners[e-1],r=n.indexOf(t);return r!==-1&&(n.splice(r,1),this._listenerCount()===0&&this._stop()),this}}(2)})),We=r(((e,t)=>{var n=Fe();function r(e,t,r,i,a){i=typeof i==`number`?i:3;let o=0,s=H(),c={},l=s.getOrCreate(c);function u(){return t(r).then(t=>(r.audio?n(l,t,a).catch(t=>(e.warn(`Encountered an error while detecting silence`,t),!0)):Promise.resolve(!1)).then(n=>n?i<=0?(e.warn(`Got a silent audio MediaStreamTrack. Normally we would try to get a new one, but we've run out of retries; returning it anyway.`),t):(e.warn(`Got a silent audio MediaStreamTrack. Stopping all \
5MediaStreamTracks and calling getUserMedia again. This is retry \
6#${++o}.`),t.getTracks().forEach(e=>e.stop()),i--,u()):(e.info(`Got a non-silent audio MediaStreamTrack; returning it.`),t)))}return u().then(e=>(s.release(c),e),e=>{throw s.release(c),e})}t.exports=r})),Ge=r(((e,t)=>{var n=Q().EventEmitter;t.exports=class extends n{constructor(){super(),Object.defineProperties(this,{_queuedEvents:{value:new Map}})}dequeue(e){let t=!0;if(!e)return this._queuedEvents.forEach(function(e,n){t=this.dequeue(n)&&t},this),t;let n=this._queuedEvents.get(e)||[];return this._queuedEvents.delete(e),n.reduce((t,n)=>
6this.emit(...[e].concat(n))&&t,t)}queue(){let e=[].slice.call(arguments);if(this.emit(...e))return!0;let t=e[0];return this._queuedEvents.has(t)||this._queuedEvents.set(t,[]),this._queuedEvents.get(t).push(e.slice(1)),!1}}})),Ke=r(((e,t)=>{var n=Ge();t.exports=class extends n{constructor(e,t){super(),Object.defineProperties(this,{id:{enumerable:!0,value:e},kind:{enumerable:!0,value:t}})}stop(){this.emit(`stopped`)}}})),qe=r(((e,t)=>{var n=Ke();t.exports=class extends n{constructor(e,t){super(e,t.kind),Object.defineProperties(this,{_track:{value:t,writable:!0},enabled:{enumerable:!0,get(){return this._track.enabled}},readyState:{enumerable:!0,get(){return this._track.readyState}},track:{enumerable:!0,get(){return this._track}}})}stop(){this.track.stop(),super.stop()}}})),Je=r(((e,t)=>{var n=qe();t.exports=class e extends n{constructor(e){super(e.id,e),Object.defineProperties(this,{_clones:{value:new Set},_eventsToReemitters:{value:new Map([[`mute`,()=>this.queue(`muted`)],[`unmute`,()=>this.queue(`unmuted`)]])},_senders:{value:new Set},_senderToPublisherHintCallbacks:{value:new Map},isPublishing:{enumerable:!0,get(){return!!this._clones.size}},muted:{enumerable:!0,get(){return this._track.muted}}}),this._reemitMediaStreamTrackEvents()}_reemitMediaStreamTrackEvents(e=this._track){let{_eventsToReemitters:t,_track:n}=this;e.addEventListener?t.forEach((t,n)=>e.addEventListener(n,t)):t.forEach((t,n)=>{e[`on${n}`]=t}),n!==e&&(t.forEach((e,t)=>n.removeEventListener(t,e)),n.muted!==e.muted&&t.get(e.muted?`mute`:`unmute`)())}clone(){let t=new e(this.track.clone());return this._clones.add(t),t}removeClone(e){this._clones.delete(e)}setMediaStreamTrack(e){let t=Array.from(this._clones),n=Array.from(this._senders);return Promise.all(t.map(t=>t.setMediaStreamTrack(e.clone())).concat(n.map(t=>this._replaceTrack(t,e)))).finally(()=>{this._reemitMediaStreamTrackEvents(e),this._track=e})}addSender(e,t){return this._senders.add(e),t&&this._senderToPublisherHintCallbacks.set(e,t),this}removeSender(e){return this._senders.delete(e),this._senderToPublisherHintCallbacks.delete(e),this}setPublisherHint(e){let[t]=Array.from(this._senderToPublisherHintCallbacks.values());return t?t(e):Promise.resolve(`COULD_NOT_APPLY_HINT`)}_replaceTrack(e,t){return e.replaceTrack(t).then(e=>(this.setPublisherHint(null).catch(()=>{}),this.emit(`replaced`),e))}}})),Ye=r(((e,t)=>{var{getUserMedia:n}=Me(),{isIOS:r}=Pe(),{capitalize:i,defer:a,waitForSometime:o,waitForEvent:s}=Z(),{typeErrors:{ILLEGAL_INVOKE:c}}=J(),l=Ie(),u=He(),d=Ue(),f=Le(),p=We(),m=Je();function h(e){return class extends e{constructor(e,t){let i=r()&&typeof document==`object`&&typeof document.addEventListener==`function`&&typeof document.visibilityState==`string`;t=Object.assign({getUserMedia:n,isCreatedByCreateLocalTracks:!1,workaroundWebKitBug1208516:i,gUMSilentTrackWorkaround:p},t);let a=new m(e),{kind:o}=a;super(a,t),Object.defineProperties(this,{_constraints:{value:typeof t[o]==`object`?t[o]:{},writable:!0},_getUserMedia:{value:t.getUserMedia},_gUMSilentTrackWorkaround:{value:t.gUMSilentTrackWorkaround},_eventsToReemitters:{value:new Map([[`muted`,()=>
6this.emit(`muted`,this)],[`unmuted`,()=>this.emit(`unmuted`,this)]])},_workaroundWebKitBug1208516:{value:t.workaroundWebKitBug1208516},_workaroundWebKitBug1208516Cleanup:{value:null,writable:!0},_didCallEnd:{value:!1,writable:!0},_isCreatedByCreateLocalTracks:{value:t.isCreatedByCreateLocalTracks},_noiseCancellation:{value:t.noiseCancellation||null},_trackSender:{value:a},id:{enumerable:!0,value:a.id},isEnabled:{enumerable:!0,get(){return a.enabled}},isMuted:{enumerable:!0,get(){return a.muted}},isStopped:{enumerable:!0,get(){return a.readyState===`ended`}}}),this._workaroundWebKitBug1208516&&(this._workaroundWebKitBug1208516Cleanup=g(this)),this._reemitTrackSenderEvents()}_end(){this._didCallEnd||(super._end.call(this),this._didCallEnd=!0,this._eventsToReemitters.forEach((e,t)=>this._trackSender.removeListener(t,e)),this.emit(`stopped`,this))}_initialize(){this._didCallEnd&&=!1,this._eventsToReemitters&&this._reemitTrackSenderEvents(),super._initialize.call(this)}_reacquireTrack(e){let{_getUserMedia:t,_gUMSilentTrackWorkaround:n,_log:r,mediaStreamTrack:{kind:i}}=this;r.info(`Re-acquiring the MediaStreamTrack`),r.debug(`Constraints:`,e);let a=Object.assign({audio:!1,video:!1},{[i]:e});return(this._workaroundWebKitBug1208516Cleanup?n(r,t,a):t(a)).then(e=>e.getTracks()[0])}_reemitTrackSenderEvents(){this._eventsToReemitters.forEach((e,t)=>this._trackSender.on(t,e)),this._trackSender.dequeue(`muted`),this._trackSender.dequeue(`unmuted`)}_restart(e){let{_log:t}=this;return e||=this._constraints,this._stop(),this._reacquireTrack(e).catch(n=>{throw t.error(`Failed to re-acquire the MediaStreamTrack:`,{error:n,constraints:e}),n}).then(n=>(t.info(`Re-acquired the MediaStreamTrack`),t.debug(`MediaStreamTrack:`,n),this._constraints=Object.assign({},e),this._setMediaStreamTrack(n)))}_setMediaStreamTrack(e){return e.enabled=this.mediaStreamTrack.enabled,this._stop(),(this._unprocessedTrack?Promise.resolve().then(()=>{this._unprocessedTrack=e}):this._trackSender.setMediaStreamTrack(e).catch(t=>{this._log.warn(`setMediaStreamTrack failed:`,{error:t,mediaStreamTrack:e})})).then(()=>{this._initialize(),this._getAllAttachedElements().forEach(e=>this._attach(e))})}_stop(){return this.mediaStreamTrack.stop(),this._end(),this}enable(e){return e=typeof e!=`boolean`||e,e!==this.mediaStreamTrack.enabled&&(this._log.info(`${e?`En`:`Dis`}abling`),this.mediaStreamTrack.enabled=e,this.emit(e?`enabled`:`disabled`,this)),this}disable(){return this.enable(!1)}restart(e){let{kind:t}=this;if(!this._isCreatedByCreateLocalTracks)return Promise.reject(c(`restart`,`can only be called on a Local${i(t)}Track that is created using createLocalTracks or createLocal${i(t)}Track.`));this._workaroundWebKitBug1208516Cleanup&&=(this._workaroundWebKitBug1208516Cleanup(),null);let n=this._restart(e);return this._workaroundWebKitBug1208516&&(n=n.finally(()=>{this._workaroundWebKitBug1208516Cleanup=g(this)})),n}stop(){return this._log.info(`Stopping`),this._workaroundWebKitBug1208516Cleanup&&=(this._workaroundWebKitBug1208516Cleanup(),null),this._stop()}}}function g(e){let{_log:t,kind:n,_noiseCancellation:r}=e,i={audio:l,video:u}[n],c=()=>r?r.sourceTrack:e.mediaStreamTrack,{_dummyEl:p}=e,m=c(),h=null;function g(){return p.play().then(()=>i(p)).then(e=>(e?t.warn(`Silence detected`):t.info(`Non-silence detected`),e)).catch(e=>{t.warn(`Failed to detect silence:`,e)}).finally(()=>{e.processedTrack||p.pause()})}function _(){let{_workaroundWebKitBug1208516Cleanup:t,isStopped:n}=e,r=n&&!!t,{muted:i}=c();return Promise.resolve().then(()=>document.visibilityState===`visible`&&!h&&(i||r||g()))}function v(){return Promise.race([s(m,`unmute`),o(50)]).then(()=>_()).then(r=>(r&&!h&&(h=a(),e._restart().finally(()=>{p=e._dummyEl,x(),m=c(),b(),h.resolve(),h=null}).catch(e=>{t.error(`failed to restart track: `,e)})),(h&&h.promise||Promise.resolve()).finally(()=>f.resolveDeferred(n)))).catch(e=>{t.error(`error in maybeRestart: ${e.message}`)})}function y(){let{_log:t,kind:n}=e;t.info(`Muted`),t.debug(`LocalMediaTrack:`,e),f.startDeferred(n)}function b(){m.addEventListener?(m.addEventListener(`ended`,v),m.addEventListener(`mute`,y),m.addEventListener(`unmute`,v)):(m.onended=v,m.onmute=y,m.onunmute=v)}function x(){m.removeEventListener?(m.removeEventListener(`ended`,v),m.removeEventListener(`mute`,y),m.removeEventListener(`unmute`,v)):(m.onended=null,m.onmute=null,m.onunmute=null)}let S=e=>e?v():!1;return d.onVisibilityChange(1,S),b(),()=>{d.offVisibilityChange(1,S),x()}}t.exports=h})),Xe=r(((e,t)=>{var{isIOS:n}=Pe(),r=Ie(),{isIOSChrome:i}=X(),a=Ve(),o=Ye()(a);t.exports=class extends o{constructor(e,t){let r=t?.noiseCancellation||null;super(e,t);let{_log:i}=this,{label:a=``}=e,{deviceId:o=``,groupId:s=``}=e.getSettings();Object.defineProperties(this,{_currentDefaultDeviceInfo:{value:{deviceId:o,groupId:s,label:a},writable:!0},_enumerateDevices:{value:typeof t?.enumerateDevices==`function`?t.enumerateDevices:navigator.mediaDevices.enumerateDevices},_defaultDeviceCaptureMode:{value:(!n()||r)&&this._isCreatedByCreateLocalTracks&&typeof navigator==`object`&&typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.addEventListener==`function`&&(typeof t?.enumerateDevices==`function`||typeof navigator.mediaDevices.enumerateDevices==`function`)?t?.defaultDeviceCaptureMode||`auto`:`manual`},_onDeviceChange:{value:()=>{this._enumerateDevices().then(e=>{let t=e.find(({deviceId:e,kind:t})=>t===`audioinput`&&e!=="default");t&&[`deviceId`,`groupId`].some(e=>t[e]!==this._currentDefaultDeviceInfo[e])&&(i.info(`Default device changed, restarting the LocalAudioTrack`),i.debug(`Old default device: "${this._currentDefaultDeviceInfo.deviceId}" => "${this._currentDefaultDeviceInfo.label}"`),i.debug(`New default device: "${t.deviceId}" => "${t.label}"`),this._currentDefaultDeviceInfo=t,this._restartDefaultDevice().catch(e=>i.warn(`Failed to restart: ${e.message}`)))},e=>{i.warn(`Failed to run enumerateDevices(): ${e.message}`)})}},_restartOnDefaultDeviceChangeCleanup:{value:null,writable:!0},noiseCancellation:{enumerable:!0,value:r,writable:!1}}),i.debug(`defaultDeviceCaptureMode:`,this._defaultDeviceCaptureMode),this._maybeRestartOnDefaultDeviceChange()}toString(){return`[LocalAudioTrack #${this._instanceId}: ${this.id}]`}attach(e){return e=super.attach.call(this,e),e.muted=!0,e}_end(){return super._end.apply(this,arguments)}_maybeRestartOnDefaultDeviceChange(){let{_constraints:e,_defaultDeviceCaptureMode:t,_log:n}=this,{deviceId:r}=(this.noiseCancellation?this.noiseCancellation.sourceTrack:this.mediaStreamTrack).getSettings(),i=e=>e!==r||e==="default",a=function e(t={}){return typeof t==`string`?i(t):Array.isArray(t)?t.every(i):t.exact?e(t.exact):!t.ideal||e(t.ideal)}(e.deviceId);t===`auto`&&a?this._restartOnDefaultDeviceChangeCleanup||=(n.info(`LocalAudioTrack will be restarted if the default device changes`),navigator.mediaDevices.addEventListener(`devicechange`,this._onDeviceChange),()=>{n.info(`Cleaning up the listener to restart the LocalAudioTrack if the default device changes`),navigator.mediaDevices.removeEventListener(`devicechange`,this._onDeviceChange),this._restartOnDefaultDeviceChangeCleanup=null}):(n.info(`LocalAudioTrack will NOT be restarted if the default device changes`),this._restartOnDefaultDeviceChangeCleanup&&this._restartOnDefaultDeviceChangeCleanup())}_reacquireTrack(e){return this._log.debug(`_reacquireTrack: `,e),this.noiseCancellation?this.noiseCancellation.reacquireTrack(()=>super._reacquireTrack.call(this,e)):super._reacquireTrack.call(this,e)}_restartDefaultDevice(){let e=Object.assign({},this._constraints),t=Object.assign({},e,{deviceId:this._currentDefaultDeviceInfo.deviceId});return this.restart(t).then(()=>{this._constraints=e,this._maybeRestartOnDefaultDeviceChange()})}_setMediaStreamTrack(e){let{_log:t,noiseCancellation:n}=this,a=super._setMediaStreamTrack.call(this,e);return i()&&n&&(t.debug(`iOS Chrome detected, checking if the restarted Krisp audio is silent`),a=a.then(()=>r(this._dummyEl)).then(e=>(t.debug(`Krisp audio is ${e?`silent, using source audio`:`not silent`}`),e&&n.disablePermanently().then(()=>super._setMediaStreamTrack.call(this,n.sourceTrack))))),a}disable(){return super.disable.apply(this,arguments)}enable(){return super.enable.apply(this,arguments)}restart(){return super.restart.apply(this,arguments)}stop(){return this.noiseCancellation&&this.noiseCancellation.stop(),this._restartOnDefaultDeviceChangeCleanup&&this._restartOnDefaultDeviceChangeCleanup(),super.stop.apply(this,arguments)}}})),Ze=r(((e,t)=>{var n=Ne(),r=Xe();function i(e,t){let n=new r(e,t);return Object.setPrototypeOf(n,i.prototype),n}n(i,r),t.exports=i})),Qe=r(((e,t)=>{var{DEFAULT_FRAME_RATE:n}=J();function r(e,t){let[r]=e.srcObject.getVideoTracks(),{frameRate:i=n}=r.getSettings(),a,o=new ReadableStream({start(e){a=setInterval(()=>e.enqueue(),1e3/i)}}),s=new TransformStream({transform(){return t()}});
6return o.pipeThrough(s).pipeTo(new WritableStream).then(()=>{}),()=>{clearInterval(a)}}function i(e,t,n){let[r]=e.srcObject.getVideoTracks(),{readable:i}=new MediaStreamTrackProcessor({track:r}),a=new MediaStreamTrackGenerator({kind:`video`}),o=!1,s=new TransformStream({transform(e,r){return(n===`videoframe`?t(e):Promise.resolve(e.close()).then(t)).finally(()=>{o&&r.terminate()})}});return i.pipeThrough(s).pipeTo(a.writable).then(()=>{}),()=>{o=!0}}t.exports=typeof MediaStreamTrackGenerator==`function`&&typeof MediaStreamTrackProcessor==`function`?i:r})),$e=r(((e,t)=>{var{EventEmitter:n}=Q(),{DEFAULT_VIDEO_PROCESSOR_STATS_INTERVAL_MS:r}=J();t.exports=class extends n{constructor(e){super(),Object.defineProperties(this,{_lastStatsSaveTime:{value:null,writable:!0},_lastStatsPublishTime:{value:null,writable:!0},_log:{value:e},_processorInfo:{value:null,writable:!0},_stats:{value:null,writable:!0}}),this.on(`add`,e=>{this._lastStatsSaveTime=Date.now(),this._lastStatsPublishTime=Date.now(),this._processorInfo=e,this._stats=[],this._reemitEvent(`add`,this._getEventData())}),this.on(`remove`,()=>{let e=this._getEventData();this._lastStatsSaveTime=null,this._lastStatsPublishTime=null,this._processorInfo=null,this._stats=null,this._reemitEvent(`remove`,e)}),this.on(`start`,()=>{this._reemitEvent(`start`,this._getEventData())}),this.on(`stop`,e=>{this._reemitEvent(`stop`,Object.assign({message:e},this._getEventData()))}),this.on(`stats`,()=>this._maybeEmitStats())}_getEventData(){if(!this._processorInfo)return{};let{processor:e,captureHeight:t,captureWidth:n,inputFrameRate:r,isRemoteVideoTrack:i,inputFrameBufferType:a,outputFrameBufferContextType:o}=this._processorInfo,s={captureHeight:t,captureWidth:n,inputFrameRate:r,isRemoteVideoTrack:i,inputFrameBufferType:a,outputFrameBufferContextType:o};return s.name=e._name||`VideoProcessor`,[`assetsPath`,`blurFilterRadius`,`debounce`,`fitType`,`isSimdEnabled`,`maskBlurRadius`,`pipeline`,`version`].forEach(t=>{let n=e[`_${t}`];n!==void 0&&(s[t]=n)}),Object.keys(s).forEach(e=>{let t=s[e];typeof t==`boolean`&&(s[e]=t?`true`:`false`)}),s}_maybeEmitStats(){if(!this._stats||!this._processorInfo)return;let e=this._processorInfo.processor._benchmark;if(!e)return;let t=Date.now();if(t-this._lastStatsSaveTime<1e3)return;let n={outputFrameRate:e.getRate(`totalProcessingDelay`)};if([`captureFrameDelay`,`imageCompositionDelay`,`inputImageResizeDelay`,`processFrameDelay`,`segmentationDelay`].forEach(t=>{n[t]=e.getAverageDelay(t)}),this._lastStatsSaveTime=t,this._stats.push(n),t-this._lastStatsPublishTime<r)return;this._lastStatsPublishTime=t;let i=this._stats.splice(0).reduce((e,t,r)=>(Object.keys(n).forEach(n=>{e[n]||(e[n]=0),e[n]=(e[n]*r+t[n])/(r+1)}),e),{});
6Object.keys(i).forEach(e=>{i[e]=parseFloat(i[e].toFixed(2))}),this._reemitEvent(`stats`,Object.assign({},i,this._getEventData()))}_reemitEvent(e,t){this._log.debug(`VideoProcessor:${e}`,t),this.emit(`event`,{name:e,data:t})}}})),et=r(((e,t)=>{var n=Be(),r=Qe(),i=$e(),{DEFAULT_FRAME_RATE:a}=J(),o=class e extends n{constructor(e,t){return super(e,t),Object.defineProperties(this,{_isCapturing:{value:!1,writable:!0},_inputFrame:{value:null,writable:!0},_outputFrame:{value:null,writable:!0},_processorEventObserver:{value:null,writable:!0},_processorOptions:{value:{},writable:!0},_stopCapture:{value:()=>{},writable:!0},_unmuteHandler:{value:null,writable:!0},dimensions:{enumerable:!0,value:{width:null,height:null}},processor:{enumerable:!0,value:null,writable:!0},_documentPipWindow:{value:null,writable:!0},_documentPipEnterListener:{value:null,writable:!0},_documentPipExitListener:{value:null,writable:!0}}),this._processorEventObserver=new(t.VideoProcessorEventObserver||i)(this._log),this}_checkIfCanCaptureFrames(e=!1){let t=!0,n=``,{enabled:r,readyState:i}=this.mediaStreamTrack;return r||(t=!1,n=`MediaStreamTrack is disabled`),i===`ended`&&(t=!1,n=`MediaStreamTrack is ended`),this.processor||(t=!1,n=`VideoProcessor not detected.`),!this._attachments.size&&!e&&(t=!1,n=`VideoTrack is not publishing and there is no attached element.`),n&&this._log.debug(n),{canCaptureFrames:t,message:n}}_captureFrames(){if(this._isCapturing){this._log.debug(`Ignoring captureFrames call. Capture is already in progress`);return}if(!this._checkIfCanCaptureFrames().canCaptureFrames){this._isCapturing=!1,this._log.debug(`Cannot capture frames. Ignoring captureFrames call.`);return}this._isCapturing=!0,this._processorEventObserver.emit(`start`),this._log.debug(`Start capturing frames`);let{inputFrameBufferType:e}=this._processorOptions;this._dummyEl.play().then(()=>{let t=t=>{let n=this._checkIfCanCaptureFrames();if(!n.canCaptureFrames)return t&&t.close(),this._isCapturing=!1,this._stopCapture(),this._processorEventObserver.emit(`stop`,n.message),this._log.debug(`Cannot capture frames. Stopping capturing frames.`),Promise.resolve();let{width:r=0,height:i=0}=this.mediaStreamTrack.getSettings();this._outputFrame&&this._outputFrame.width!==r&&(this._outputFrame.width=r,this._outputFrame.height=i),this._inputFrame&&(this._inputFrame.width!==r&&(this._inputFrame.width=r,this._inputFrame.height=i),this._inputFrame.getContext(`2d`).drawImage(this._dummyEl,0,0,r,i));let a=t||([`video`,`videoframe`].includes(e)?this._dummyEl:this._inputFrame),o=null;try{o=this.processor.processFrame(a,this._outputFrame)}catch(e){this._log.debug(`Exception detected after calling processFrame.`,e)}return(o instanceof Promise?o:Promise.resolve(o)).then(()=>{this._outputFrame&&(typeof this.processedTrack.requestFrame==`function`&&this.processedTrack.requestFrame(),this._processorEventObserver.emit(`stats`))})};this._stopCapture=r(this._dummyEl,t,e)}).catch(e=>this._log.error(`Video element cannot be played`,{error:e,track:this}))}_initialize(){super._initialize(),this._dummyEl&&(this._dummyEl.onloadedmetadata=()=>{s(this,this._dummyEl)&&(this.dimensions.width=this._dummyEl.videoWidth,this.dimensions.height=this._dummyEl.videoHeight)},this._dummyEl.onresize=()=>{s(this,this._dummyEl)&&(this.dimensions.width=this._dummyEl.videoWidth,this.dimensions.height=this._dummyEl.videoHeight,this.isStarted&&(this._log.debug(`Dimensions changed:`,this.dimensions),this.emit(e.DIMENSIONS_CHANGED,this)))})}_restartProcessor(){let e=this.processor;if(e){let t=Object.assign({},this._processorOptions);this.removeProcessor(e),this.addProcessor(e,t)}}_start(t){return this.dimensions.width=t.videoWidth,this.dimensions.height=t.videoHeight,this._log.debug(`Dimensions:`,this.dimensions),this.emit(e.DIMENSIONS_CHANGED,this),super._start.call(this,t)}addProcessor(e,t){if(!e||typeof e.processFrame!=`function`)throw Error(`Received an invalid VideoProcessor from addProcessor.`);if(this.processor)throw Error(`A VideoProcessor has already been added.`);if(!this._dummyEl)throw Error(`VideoTrack has not been initialized.`);this._log.debug(`Adding VideoProcessor to the VideoTrack`,e),this._unmuteHandler||(this._unmuteHandler=()=>{this._log.debug(`mediaStreamTrack unmuted`),this.processedTrack.muted&&(this._log.debug(`mediaStreamTrack is unmuted but processedTrack is muted. Restarting processor.`),this._restartProcessor())},this.mediaStreamTrack.addEventListener?this.mediaStreamTrack.addEventListener(`unmute`,this._unmuteHandler):this.mediaStreamTrack.onunmute=this._unmuteHandler.bind(this)),this._processorOptions=t||{};let{inputFrameBufferType:n,outputFrameBufferContextType:r}=this._processorOptions;if(typeof OffscreenCanvas>`u`&&n===`offscreencanvas`)throw Error(`OffscreenCanvas is not supported by this browser.`);if(n&&n!==`videoframe`&&n!==`video`&&n!==`canvas`&&n!==`offscreencanvas`)throw Error(`Invalid inputFrameBufferType of ${n}`);n||=typeof OffscreenCanvas>`u`?`canvas`:`offscreencanvas`;let{width:i=0,height:o=0,frameRate:s=a}=this.mediaStreamTrack.getSettings();if(n===`offscreencanvas`&&(this._inputFrame=new OffscreenCanvas(i,o)),n===`canvas`&&(this._inputFrame=document.createElement(`canvas`)),this._inputFrame&&(this._inputFrame.width=i,this._inputFrame.height=o
6),this._outputFrame=document.createElement(`canvas`),this._outputFrame.width=i,this._outputFrame.height=o,r||=`2d`,!this._outputFrame.getContext(r))throw Error(`Cannot get outputFrameBufferContextType: ${r}.`);let c=typeof CanvasCaptureMediaStreamTrack<`u`&&CanvasCaptureMediaStreamTrack.prototype&&typeof CanvasCaptureMediaStreamTrack.prototype.requestFrame==`function`?0:void 0;return this.processedTrack=this._outputFrame.captureStream(c).getTracks()[0],this.processedTrack.enabled=this.mediaStreamTrack.enabled,this.processor=e,this._processorEventObserver.emit(`add`,{processor:e,captureHeight:o,captureWidth:i,inputFrameRate:s,isRemoteVideoTrack:this.toString().includes(`RemoteVideoTrack`),inputFrameBufferType:n,outputFrameBufferContextType:r}),this._updateElementsMediaStreamTrack(),this._captureFrames(),this}attach(){let e=super.attach.apply(this,arguments);return this._attachments.size===1&&c(this),this.processor&&this._captureFrames(),e}detach(){let e=super.detach.apply(this,arguments);return this._attachments.size===0&&l(this),e}removeProcessor(e){if(!e)throw Error(`Received an invalid VideoProcessor from removeProcessor.`);if(!this.processor)throw Error(`No existing VideoProcessor detected.`);if(e!==this.processor)throw Error(`The provided VideoProcessor is different than the existing one.`);return this._processorEventObserver.emit(`remove`),this._log.debug(`Removing VideoProcessor from the VideoTrack`,e),this._stopCapture(),this._stopCapture=()=>{},this.mediaStreamTrack.removeEventListener(`unmute`,this._unmuteHandler),this._processorOptions={},this._unmuteHandler=null,this._isCapturing=!1,this.processor=null,this.processedTrack=null,this._inputFrame=null,this._outputFrame=null,this._updateElementsMediaStreamTrack(),this}};o.DIMENSIONS_CHANGED=`dimensionsChanged`;function s(e,t){return e.dimensions.width!==t.videoWidth||e.dimensions.height!==t.videoHeight}function c(e){!e._documentPipEnterListener&&`documentPictureInPicture`in globalThis&&globalThis.documentPictureInPicture&&typeof globalThis.documentPictureInPicture.addEventListener==`function`&&(e._documentPipEnterListener=t=>{e._log.debug(`document pip entered`),e._documentPipWindow=t.window,e._documentPipExitListener=()=>{e._log.debug(`document pip exited`),e._documentPipWindow=null,typeof e._onDocumentPipExit==`function`&&e._onDocumentPipExit()},t.window&&typeof t.window.addEventListener==`function`&&t.window.addEventListener(`pagehide`,e._documentPipExitListener),u(e),typeof e._onDocumentPipEnter==`function`&&e._onDocumentPipEnter(t)},globalThis.documentPictureInPicture.addEventListener(`enter`,e._documentPipEnterListener))}function l(e){e._documentPipEnterListener&&(globalThis.documentPictureInPicture&&typeof globalThis.documentPictureInPicture.removeEventListener==`function`&&globalThis.documentPictureInPicture.removeEventListener(`enter`,e._documentPipEnterListener),e._documentPipWindow&&e._documentPipExitListener&&typeof e._documentPipWindow.removeEventListener==`function`&&e._documentPipWindow.removeEventListener(`pagehide`,e._documentPipExitListener),e._documentPipEnterListener=null,e._documentPipExitListener=null,e._documentPipWindow=null)}function u(e){if(e._documentPipWindow)try{let t=new WeakSet(e._documentPipWindow.document.querySelectorAll(`video`));e._attachments.forEach(n=>{t.has(n)&&n.paused&&n.play().then(()=>{e._log.debug(`Successfully played inadvertently paused video element in document PiP window`)}).catch(t=>{e._log.debug(`Failed to play inadvertently paused video element in document PiP window`,t)})})}catch(t){e._log.debug(`Error checking document PiP video playback:`,t)}}o._ensureDocumentPipVideosPlaying=u,t.exports=o})),tt=r(((e,t)=>{var{isIOS:n}=Pe(),r=He(),i=Ye(),a=et(),o=i(a),s=class extends o{constructor(e,t){t=Object.assign({workaroundSilentLocalVideo:n()&&typeof document<`u`&&typeof document.createElement==`function`},t),super(e,t),Object.defineProperties(this,{_workaroundSilentLocalVideo:{value:t.workaroundSilentLocalVideo?c:null},_workaroundSilentLocalVideoCleanup:{value:null,writable:!0},_pipIntersectionObserver:{value:null,writable:!0}}),this._workaroundSilentLocalVideo&&(this._workaroundSilentLocalVideoCleanup=this._workaroundSilentLocalVideo(this,document))}toString(){return`[LocalVideoTrack #${this._instanceId}: ${this.id}]`}_onDocumentPipEnter(){this._log.debug(`LocalVideoTrack: Setting up PiP intersection observer`),this._setupPipIntersectionObserver()}_onDocumentPipExit(){this._log.debug(`LocalVideoTrack: Cleaning up PiP intersection observer`),this._cleanupPipIntersectionObserver()}_setupPipIntersectionObserver(){!this._pipIntersectionObserver&&this._documentPipWindow&&(this._log.debug(`LocalVideoTrack: Creating PiP intersection observer`),this._pipIntersectionObserver=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(this._log.debug(`LocalVideoTrack: Element visible in PiP, ensuring videos are playing`),a._ensureDocumentPipVideosPlaying(this))},{threshold:.25}
6),this._attachments.forEach(e=>{this._log.debug(`LocalVideoTrack: Observing element for PiP visibility`),this._pipIntersectionObserver.observe(e)}))}_cleanupPipIntersectionObserver(){this._pipIntersectionObserver&&=(this._log.debug(`LocalVideoTrack: Disconnecting PiP intersection observer`),this._pipIntersectionObserver.disconnect(),null)}attach(){let e=super.attach.apply(this,arguments);return this._pipIntersectionObserver&&(this._log.debug(`LocalVideoTrack: Observing newly attached element for PiP visibility`),this._pipIntersectionObserver.observe(e)),e}detach(){let e=super.detach.apply(this,arguments),t=Array.isArray(e)?e:[e];return this._pipIntersectionObserver&&t.forEach(e=>{this._log.debug(`LocalVideoTrack: Unobserving detached element from PiP visibility`),this._pipIntersectionObserver.unobserve(e)}),e}_checkIfCanCaptureFrames(){return super._checkIfCanCaptureFrames.call(this,this._trackSender.isPublishing)}_end(){return super._end.apply(this,arguments)}_setSenderMediaStreamTrack(e){let t=this.mediaStreamTrack,n=e?this.processedTrack:t;return this._trackSender.setMediaStreamTrack(n).catch(e=>this._log.warn(`setMediaStreamTrack failed on LocalVideoTrack RTCRtpSender`,{error:e,mediaStreamTrack:n})).then(()=>{this._unprocessedTrack=e?t:null})}addProcessor(){this._log.debug(`Adding VideoProcessor to the LocalVideoTrack`);let e=super.addProcessor.apply(this,arguments);return this.processedTrack?(this._log.debug(`Updating LocalVideoTrack's MediaStreamTrack with the processed MediaStreamTrack`,this.processedTrack),this._setSenderMediaStreamTrack(!0),e):this._log.warn(`Unable to add a VideoProcessor to the LocalVideoTrack`)}removeProcessor(){this._log.debug(`Removing VideoProcessor from the LocalVideoTrack`);let e=super.removeProcessor.apply(this,arguments);return this._log.debug(`Updating LocalVideoTrack's MediaStreamTrack with the original MediaStreamTrack`),this._setSenderMediaStreamTrack().then(()=>this._updateElementsMediaStreamTrack()),e}disable(){let e=super.disable.apply(this,arguments);return this.processedTrack&&(this.processedTrack.enabled=!1),e}enable(e=!0){let t=super.enable.apply(this,arguments);return this.processedTrack&&(this.processedTrack.enabled=e,e&&(this._captureFrames(),this._log.debug(`Updating LocalVideoTrack's MediaStreamTrack with the processed MediaStreamTrack`,this.processedTrack),this._setSenderMediaStreamTrack(!0))),t}restart(){this._workaroundSilentLocalVideoCleanup&&=(this._workaroundSilentLocalVideoCleanup(),null);let e=super.restart.apply(this,arguments);return this.processor&&(e=e.then(()=>this._restartProcessor())),this._workaroundSilentLocalVideo&&e.finally(()=>{this._workaroundSilentLocalVideoCleanup=this._workaroundSilentLocalVideo(this,document)}),e}_restartProcessor(){let e=this.processor,t=Object.assign({},this._processorOptions);return super.removeProcessor.apply(this,[e]),super.addProcessor.apply(this,[e,t]),this._setSenderMediaStreamTrack(!0)}stop(){return this._workaroundSilentLocalVideoCleanup&&=(this._workaroundSilentLocalVideoCleanup(),null),this._cleanupPipIntersectionObserver(),super.stop.apply(this,arguments)}};function c(e,t){let{_log:n}=e,{_dummyEl:i,mediaStreamTrack:a}=e;function o(){e.isEnabled&&(n.info(`Unmuted, checking silence`),i.play().then(()=>r(i,t)).then(t=>{if(!t){n.info(`Non-silent frames detected, so no need to restart`);return}return n.warn(`Silence detected, restarting`),e._stop(),e._restart()}).catch(e=>{n.warn(`Failed to detect silence and restart:`,e)}).finally(()=>{i=e._dummyEl,i&&!i.paused&&!e.processedTrack&&i.pause(),a.removeEventListener(`unmute`,o),a=e.mediaStreamTrack,a.addEventListener?a.addEventListener(`unmute`,o):a.onunmute=o}))}return a.addEventListener?a.addEventListener(`unmute`,o):a.onunmute=o,()=>{a.removeEventListener?a.removeEventListener(`unmute`,o):a.onunmute=null}}t.exports=s})),nt=r(((e,t)=>{var n=Ne(),r=tt();function i(e,t){let n=new r(e,t);return Object.setPrototypeOf(n,i.prototype),n}n(i,r),t.exports=i})),rt=r(((e,t)=>{var n=Ke();t.exports=class extends n{constructor(e,t,n,r){super(e,`data`),Object.defineProperties(this,{maxPacketLifeTime:{enumerable:!0,value:t},maxRetransmits:{enumerable:!0,value:n},ordered:{enumerable:!0,value:r}})}}})),it=r(((e,t)=>{var n=rt(),r=Z().makeUUID;t.exports=class e extends n{constructor(e,t,n){super(r(),e,t,n),Object.defineProperties(this,{_clones:{value:new Set},_dataChannels:{value:new Set}})}_addClone(e){this._clones.add(e)}removeClone(e){this._clones.delete(e)}
6addDataChannel(e){return this._dataChannels.add(e),this}clone(){let t=new e(this.maxPacketLifeTime,this.maxRetransmits,this.ordered);return this._addClone(t),t.once(`stopped`,()=>this.removeClone(t)),t}removeDataChannel(e){return this._dataChannels.delete(e),this}send(e){return this._dataChannels.forEach(t=>{try{t.send(e)}catch{}}),this._clones.forEach(t=>{try{t.send(e)}catch{}}),this}stop(){this._dataChannels.forEach(e=>e.close()),this._clones.forEach(e=>e.stop()),super.stop()}}})),at=r(((e,t)=>{var n=ze(),r=it();t.exports=class extends n{constructor(e){e=Object.assign({DataTrackSender:r,maxPacketLifeTime:null,maxRetransmits:null,ordered:!0},e);let t=e.DataTrackSender,n=new t(e.maxPacketLifeTime,e.maxRetransmits,e.ordered);super(n.id,`data`,e),Object.defineProperties(this,{_trackSender:{value:n},id:{enumerable:!0,value:n.id},maxPacketLifeTime:{enumerable:!0,value:e.maxPacketLifeTime},maxRetransmits:{enumerable:!0,value:e.maxRetransmits},ordered:{enumerable:!0,value:e.ordered},reliable:{enumerable:!0,value:e.maxPacketLifeTime===null&&e.maxRetransmits===null}})}send(e){this._trackSender.send(e)}}})),ot=r(((e,t)=>{var n=Ne(),r=at();function i(e){let t=new r(e);return Object.setPrototypeOf(t,i.prototype),t}n(i,r),t.exports=i})),st=r(((e,t)=>{t.exports={LocalAudioTrack:Ze(),LocalVideoTrack:nt(),LocalDataTrack:ot()}})),ct=r(((e,t)=>{t.exports=class{constructor(e){this._telemetry=e}typeChanged(e){this._telemetry.info({group:`network`,name:`network-type-changed`,payload:{networkType:e}})}informationChanged({downlink:e,downlinkMax:t,effectiveType:n,rtt:r,saveData:i,type:a}){this._telemetry.info({group:`network`,name:`network-information-changed`,payload:{downlink:e,downlinkMax:t,effectiveType:n,rtt:r,saveData:i,type:a}})}}})),lt=r(((e,t)=>{t.exports=class{constructor(e){this._telemetry=e}succeeded(){this._telemetry.info({group:`get-user-media`,name:`succeeded`})}denied(){this._telemetry.info({group:`get-user-media`,name:`denied`})}failed(e){this._telemetry.info({group:`get-user-media`,name:`failed`,payload:{name:e.name,message:e.message}})}}})),ut=r(((e,t)=>{t.exports=class{constructor(e){this._telemetry=e}limitationChanged(e,t){this._telemetry.info({group:`quality`,name:`quality-limitation-state-changed`,payload:{trackSid:e,qualityLimitationReason:t}})}statsReport(e){this._telemetry.info({group:`quality`,name:`stats-report`,payload:e})}iceCandidatePair(e){this._telemetry.info({group:`quality`,name:`active-ice-candidate-pair`,payload:e})}}})),dt=r(((e,t)=>{t.exports=class{constructor(e){this._telemetry=e}stalled(e,t,n,r=`video`){this._telemetry.warning({group:`track-warning-raised`,name:`track-stalled`,payload:{trackSid:e,frameRate:t,threshold:n,trackType:r}})}resumed(e,t,n,r=`video`){this._telemetry.info({group:`track-warning-cleared`,name:`track-stalled`,payload:{trackSid:e,frameRate:t,threshold:n,trackType:r}})}}})),ft=r(((e,t)=>{t.exports=class{constructor(e){this._telemetry=e}resumed(){this._telemetry.info({group:`application`,name:`resumed`})}backgrounded(){this._telemetry.info({group:`application`,name:`backgrounded`})}terminated(){this._telemetry.info({group:`application`,name:`terminated`})}}})),pt=r(((e,t)=>{t.exports=class{constructor(e){this._telemetry=e}cpuPressureChanged(e){this._telemetry.info({group:`system`,name:`cpu-pressure-changed`,payload:{resourceType:`cpu`,pressure:e}})}}})),mt=r(((e,t)=>{var{filterObject:n}=Z();t.exports=class{constructor(e){this._telemetry=e}connectionState(e,t){this._telemetry.debug({group:`pc-connection-state`,name:t,payload:{peerConnectionId:e}})}signalingState(e,t){this._telemetry.debug({group:`pc-signaling-state`,name:t,payload:{peerConnectionId:e}})}iceGatheringState(e,t){this._telemetry.debug({group:`ice-gathering-state`,name:t,payload:{peerConnectionId:e}})}iceConnectionState(e,t){let n=t===`failed`?`error`:`debug`;this._telemetry[n]({group:`ice-connection-state`,name:t,payload:{peerConnectionId:e}})}dtlsTransportState(e,t){let n=t===`failed`?`error`:`debug`;this._telemetry[n]({group:`dtls-transport-state`,name:t,payload:{peerConnectionId:e}})}iceCandidate(e,t,n=!1){this._telemetry.debug({group:`ice-candidate`,name:`ice-candidate`,payload:Object.assign({peerConnectionId:e,isRemote:n?`true`:`false`},this._toIceCandidatePayload(t))})}selectedCandidatePair(e,t){this._telemetry.debug({group:`ice-candidate`,name:`selected-ice-candidate-pair`,payload:n({peerConnectionId:e,localCandidate:t.local?this._toIceCandidatePayload(t.local):null,remoteCandidate:t.remote?this._toIceCandidatePayload(t.remote):null},null)})}_toIceCandidatePayload(e){let t=e.candidate?.match(/network-cost\s+(\d+)/),r=t?parseInt(t[1],10):null;return n({candidateType:e.type,ip:e.address,port:e.port,priority:e.priority,protocol:e.protocol,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort,tcpType:e.tcpType,transportId:e.sdpMid,networkCost:r},null)}}})),ht=r(((e,t)=>
6{t.exports=class e extends Error{constructor(t){let n=[].slice.call(arguments,1);super(...n),Object.setPrototypeOf(this,e.prototype);let r=Error.apply(this,n);r.name=`TwilioError`,Object.defineProperty(this,"code",{value:t,enumerable:!0}),Object.getOwnPropertyNames(r).forEach(function(e){Object.defineProperty(this,e,{value:r[e],enumerable:!0})},this)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.name} ${this.code}${e}`}}})),$=r((e=>{var t=ht(),n={};e.createTwilioError=function(e,r){return e=typeof e==`number`?e:0,r=typeof r==`string`&&r?r:`Unknown error`,n[e]?new n[e]:new t(e,r)};var r=class e extends t{constructor(){super(20101,`Invalid Access Token`),Object.setPrototypeOf(this,e.prototype)}};e.AccessTokenInvalidError=r,Object.defineProperty(n,20101,{value:r});var i=class e extends t{constructor(){super(20102,`Invalid Access Token header`),Object.setPrototypeOf(this,e.prototype)}};e.AccessTokenHeaderInvalidError=i,Object.defineProperty(n,20102,{value:i});var a=class e extends t{constructor(){super(20103,`Invalid Access Token issuer/subject`),Object.setPrototypeOf(this,e.prototype)}};e.AccessTokenIssuerInvalidError=a,Object.defineProperty(n,20103,{value:a});var o=class e extends t{constructor(){super(20104,`Access Token expired or expiration date invalid`),Object.setPrototypeOf(this,e.prototype)}};e.AccessTokenExpiredError=o,Object.defineProperty(n,20104,{value:o});var s=class e extends t{constructor(){super(20105,`Access Token not yet valid`),Object.setPrototypeOf(this,e.prototype)}};e.AccessTokenNotYetValidError=s,Object.defineProperty(n,20105,{value:s});var c=class e extends t{constructor(){super(20106,`Invalid Access Token grants`),Object.setPrototypeOf(this,e.prototype)}};e.AccessTokenGrantsInvalidError=c,Object.defineProperty(n,20106,{value:c});var l=class e extends t{constructor(){super(20107,`Invalid Access Token signature`),Object.setPrototypeOf(this,e.prototype)}};e.AccessTokenSignatureInvalidError=l,Object.defineProperty(n,20107,{value:l});var u=class e extends t{constructor(){super(53e3,`Signaling connection error`),Object.setPrototypeOf(this,e.prototype)}};e.SignalingConnectionError=u,Object.defineProperty(n,53e3,{value:u});var d=class e extends t{constructor(){super(53001,`Signaling connection disconnected`),Object.setPrototypeOf(this,e.prototype)}};e.SignalingConnectionDisconnectedError=d,Object.defineProperty(n,53001,{value:d});var f=class e extends t{constructor(){super(53002,`Signaling connection timed out`),Object.setPrototypeOf(this,e.prototype)}};e.SignalingConnectionTimeoutError=f,Object.defineProperty(n,53002,{value:f});var p=class e extends t{constructor(){super(53003,`Client received an invalid signaling message`),Object.setPrototypeOf(this,e.prototype)}};e.SignalingIncomingMessageInvalidError=p,Object.defineProperty(n,53003,{value:p});var m=class e extends t{constructor(){super(53004,`Client sent an invalid signaling message`),Object.setPrototypeOf(this,e.prototype)}};e.SignalingOutgoingMessageInvalidError=m,Object.defineProperty(n,53004,{value:m});var h=class e extends t{constructor(){super(53006,`Video server is busy`),Object.setPrototypeOf(this,e.prototype)}};e.SignalingServerBusyError=h,Object.defineProperty(n,53006,{value:h});var g=class e extends t{constructor(){super(53100,`Room name is invalid`),Object.setPrototypeOf(this,e.prototype)}};e.RoomNameInvalidError=g,Object.defineProperty(n,53100,{value:g});var _=class e extends t{constructor(){super(53101,`Room name is too long`),Object.setPrototypeOf(this,e.prototype)}};e.RoomNameTooLongError=_,Object.defineProperty(n,53101,{value:_});var v=class e extends t{constructor(){super(53102,`Room name contains invalid characters`),Object.setPrototypeOf(this,e.prototype)}};e.RoomNameCharsInvalidError=v,Object.defineProperty(n,53102,{value:v});var y=class e extends t{constructor(){super(53103,`Unable to create Room`),Object.setPrototypeOf(this,e.prototype)}};e.RoomCreateFailedError=y,Object.defineProperty(n,53103,{value:y});var b=class e extends t{constructor(){super(53104,`Unable to connect to Room`),Object.setPrototypeOf(this,e.prototype)}};e.RoomConnectFailedError=b,Object.defineProperty(n,53104,{value:b});var x=class e extends t{constructor(){super(53105,`Room contains too many Participants`),Object.setPrototypeOf(this,e.prototype)}};e.RoomMaxParticipantsExceededError=x,Object.defineProperty(n,53105,{value:x});var S=class e extends t{constructor(){super(53106,`Room not found`),Object.setPrototypeOf(this,e.prototype)}};e.RoomNotFoundError=S,Object.defineProperty(n,53106,{value:S});var C=class e extends t{constructor(){super(53107,`MaxParticipants is out of range`),Object.setPrototypeOf(this,e.prototype)}};e.RoomMaxParticipantsOutOfRangeError=C,Object.defineProperty(n,53107,{value:C});var w=class e extends t{constructor(){super(53108,`RoomType is not val
6id`),Object.setPrototypeOf(this,e.prototype)}};e.RoomTypeInvalidError=w,Object.defineProperty(n,53108,{value:w});var T=class e extends t{constructor(){super(53109,`Timeout is out of range`),Object.setPrototypeOf(this,e.prototype)}};e.RoomTimeoutOutOfRangeError=T,Object.defineProperty(n,53109,{value:T});var E=class e extends t{constructor(){super(53110,`StatusCallbackMethod is invalid`),Object.setPrototypeOf(this,e.prototype)}};e.RoomStatusCallbackMethodInvalidError=E,Object.defineProperty(n,53110,{value:E});var D=class e extends t{constructor(){super(53111,`StatusCallback is invalid`),Object.setPrototypeOf(this,e.prototype)}};e.RoomStatusCallbackInvalidError=D,Object.defineProperty(n,53111,{value:D});var O=class e extends t{constructor(){super(53112,`Status is invalid`),Object.setPrototypeOf(this,e.prototype)}};e.RoomStatusInvalidError=O,Object.defineProperty(n,53112,{value:O});var k=class e extends t{constructor(){super(53113,`Room exists`),Object.setPrototypeOf(this,e.prototype)}};e.RoomRoomExistsError=k,Object.defineProperty(n,53113,{value:k});var A=class e extends t{constructor(){super(53114,`Room creation parameter(s) incompatible with the Room type`),Object.setPrototypeOf(this,e.prototype)}};e.RoomInvalidParametersError=A,Object.defineProperty(n,53114,{value:A});var j=class e extends t{constructor(){super(53115,`MediaRegion is invalid`),Object.setPrototypeOf(this,e.prototype)}};e.RoomMediaRegionInvalidError=j,Object.defineProperty(n,53115,{value:j});var M=class e extends t{constructor(){super(53116,`There are no media servers available in the MediaRegion`),Object.setPrototypeOf(this,e.prototype)}};e.RoomMediaRegionUnavailableError=M,Object.defineProperty(n,53116,{value:M});var N=class e extends t{constructor(){super(53117,`The subscription operation requested is not supported for the Room type`),Object.setPrototypeOf(this,e.prototype)}};e.RoomSubscriptionOperationNotSupportedError=N,Object.defineProperty(n,53117,{value:N});var P=class e extends t{constructor(){super(53118,`Room completed`),Object.setPrototypeOf(this,e.prototype)}};e.RoomCompletedError=P,Object.defineProperty(n,53118,{value:P});var F=class e extends t{constructor(){super(53124,`The AudioOnly flag is not supported for the Room type`),Object.setPrototypeOf(this,e.prototype)}};e.RoomAudioOnlyFlagNotSupportedError=F,Object.defineProperty(n,53124,{value:F});var I=class e extends t{constructor(){super(53125,`The track kind is not supported by the Room`),Object.setPrototypeOf(this,e.prototype)}};e.RoomTrackKindNotSupportedError=I,Object.defineProperty(n,53125,{value:I});var L=class e extends t{constructor(){super(53200,`Participant identity is invali
6d`),Object.setPrototypeOf(this,e.prototype)}};e.ParticipantIdentityInvalidError=L,Object.defineProperty(n,53200,{value:L});var R=class e extends t{constructor(){super(53201,`Participant identity is too long`),Object.setPrototypeOf(this,e.prototype)}};e.ParticipantIdentityTooLongError=R,Object.defineProperty(n,53201,{value:R});var z=class e extends t{constructor(){super(53202,`Participant identity contains invalid characters`),Object.setPrototypeOf(this,e.prototype)}};e.ParticipantIdentityCharsInvalidError=z,Object.defineProperty(n,53202,{value:z});var B=class e extends t{constructor(){super(53203,`The maximum number of published tracks allowed in the Room at the same time has been reached`),Object.setPrototypeOf(this,e.prototype)}};e.ParticipantMaxTracksExceededError=B,Object.defineProperty(n,53203,{value:B});var ee=class e extends t{constructor(){super(53204,`Participant not found`),Object.setPrototypeOf(this,e.prototype)}};e.ParticipantNotFoundError=ee,Object.defineProperty(n,53204,{value:ee});var V=class e extends t{constructor(){super(53205,`Participant disconnected because of duplicate identity`),Object.setPrototypeOf(this,e.prototype)}};e.ParticipantDuplicateIdentityError=V,Object.defineProperty(n,53205,{value:V});var H=class e extends t{constructor(){super(53300,`Track is invalid`),Object.setPrototypeOf(this,e.prototype)}};e.TrackInvalidError=H,Object.defineProperty(n,53300,{value:H});var te=class e extends t{constructor(){super(53301,`Track name is invalid`),Object.setPrototypeOf(this,e.prototype)}};e.TrackNameInvalidError=te,Object.defineProperty(n,53301,{value:te});var ne=class e extends t{constructor(){super(53302,`Track name is too long`),Object.setPrototypeOf(this,e.prototype)}};e.TrackNameTooLongError=ne,Object.defineProperty(n,53302,{value:ne});var U=class e extends t{constructor(){super(53303,`Track name contains invalid characters`),Object.setPrototypeOf(this,e.prototype)}};e.TrackNameCharsInvalidError=U,Object.defineProperty(n,53303,{value:U});var W=class e extends t{constructor(){super(53304,`Track name is duplicated`),Object.setPrototypeOf(this,e.prototype)}};e.TrackNameIsDuplicatedError=W,Object.defineProperty(n,53304,{value:W});var G=class e extends t{constructor(){super(53305,`The server has reached capacity and cannot fulfill this request`),Object.setPrototypeOf(this,e.prototype)}};e.TrackServerTrackCapacityReachedError=G,Object.defineProperty(n,53305,{value:G});var K=class e extends t{constructor(){super(53400,`Client is unable to create or apply a local media description`),Object.setPrototypeOf(this,e.prototype)}};e.MediaClientLocalDescFailedError=K,Object.defineProperty(n,53400,{value:K});var re=class e extends t{constructor(){super(53401,`Server is unable to create or apply a local media description`),Object.setPrototypeOf(this,e.prototype)}};e.MediaServerLocalDescFailedError=re,Object.defineProperty(n,53401,{value:re});var q=class e extends t{constructor(){super(53402,`Client is unable to apply a remote media description`),Object.setPrototypeOf(this,e.prototype)}};e.MediaClientRemoteDescFailedError=q,Object.defineProperty(n,53402,{value:q});var ie=class e extends t{constructor(){super(53403,`Server is unable to apply a remote media description`),Object.setPrototypeOf(this,e.prototype)}};e.MediaServerRemoteDescFailedError=ie,Object.defineProperty(n,53403,{value:ie});var ae=class e extends t{constructor(){super(53404,`No supported codec`),Object.setPrototypeOf(this,e.prototype)}};e.MediaNoSupportedCodecError=ae,Object.defineProperty(n,53404,{value:ae});var oe=class e extends t{constructor(){super(53405,`Media connection failed or Media activity ceased`),Object.setPrototypeOf(this,e.prototype)}};e.MediaConnectionError=oe,Object.defineProperty(n,53405,{value:oe});var se=class e extends t{constructor(){super(53407,`Media connection failed due to DTLS handshake failure`),Object.setPrototypeOf(this,e.prototype)}};e.MediaDTLSTransportFailedError=se,Object.defineProperty(n,53407,{value:se});var ce=class e extends t{constructor(){super(53500,`Unable to acquire configuration`),Object.setPrototypeOf(this,e.prototype)}};e.ConfigurationAcquireFailedError=ce,Object.defineProperty(n,53500,{value:ce});var le=class e extends t{constructor(){super(53501,`Unable to acquire TURN credentials`),Object.setPrototypeOf(this,e.prototype)}};e.ConfigurationAcquireTurnFailedError=le,Object.defineProperty(n,53501,{value:le})})),gt=r(((e,t)=>{var{MediaConnectionError:n}=$();t.exports=class{constructor(e){this._telemetry=e}reconnecting(e){let t=e instanceof n?`media`:`signaling`;this._telemetry.info({group:`room`,name:`reconnecting`,payload:{reason:t}})}reconnected(){this._telemetry.info({group:`room`,name:`reconnected`})}disconnected(){this._telemetry.info({group:`room`,name:`disconnected`})}}})),_t=r(((e,t)=>{var n=ct(),r=lt(),i=ut(),a=dt(),o=ft(),s=pt(),c=mt(),l=gt();t.exports=new class{constructor(){this._publisher=null,this._connectTimestamp=null,this._log=null,this._isConfigured=!1,this.network=new n(this),this.getUserMedia=new r(this),this.qual
6ity=new i(this),this.track=new a(this),this.application=new o(this),this.system=new s(this),this.pc=new c(this),this.room=new l(this)}configure({publisher:e,log:t,connectTimestamp:n}){if(!e||!t||typeof n!=`number`)throw Error(`Telemetry.configure requires publisher, log, and connectTimestamp`);return this._publisher=e,this._log=t,this._connectTimestamp=n,this._isConfigured=!0,this._publisher.on(`connected`,()=>{this._log.debug(`Telemetry publisher connected.`)}),this._publisher.on(`reconnecting`,()=>{this._log.warn(`Telemetry publisher reconnecting...`)}),this}_emit(e,t,n,r){if(!this._isConfigured)return;let i=Date.now(),a=i-this._connectTimestamp,o=Object.assign({elapsedTime:a,level:n},r||{});if(!this._publisher.publish(e,t,o)){this._log.warn(`Telemetry event "${e}:${t}" dropped - publisher unavailable.`);return}let s=Object.assign({elapsedTime:a,group:e,level:n,name:t,timestamp:i},r?{payload:r}:{}),c={debug:`debug`,error:`error`,info:`info`,warning:`warn`}[n];this._log[c](`telemetry`,s)}info({group:e,name:t,payload:n}){return this._emit(e,t,`info`,n)}warning({group:e,name:t,payload:n}){return this._emit(e,t,`warning`,n)}error({group:e,name:t,payload:n}){return this._emit(e,t,`error`,n)}debug({group:e,name:t,payload:n}){return this._emit(e,t,`debug`,n)}}})),vt=r((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createLocalTracks=_;var n=(V(),e(i)),r=be(),{buildLogLevels:a}=Z(),{getUserMedia:o}=Me(),{LocalAudioTrack:s,LocalDataTrack:c,LocalVideoTrack:l}=st(),u=Y(),{DEFAULT_LOG_LEVEL:d,DEFAULT_LOGGER_NAME:f,typeErrors:{INVALID_VALUE:p}}=J(),m=We(),h=_t(),g=0;function _(e){return n.__awaiter(this,void 0,void 0,function*(){let t=!(e&&(`audio`in e||`video`in e)),i=Object.assign({audio:t,getUserMedia:o,loggerName:f,logLevel:d,LocalAudioTrack:s,LocalDataTrack:c,LocalVideoTrack:l,MediaStreamTrack,Log:u,video:t},e),_=`[createLocalTracks #${++g}]`,v=a(i.logLevel),y=new i.Log(`default`,_,v,i.loggerName),b=Object.assign({log:y},i);if(delete b.name,i.audio===!1&&i.video===!1)return y.info(`Neither audio nor video requested, so returning empty LocalTracks`),[];if(i.tracks)return y.info(`Adding user-provided LocalTracks`),y.debug(`LocalTracks:`,i.tracks),i.tracks;let x={audio:typeof i.audio==`object`&&i.audio.name?{name:i.audio.name}:{defaultDeviceCaptureMode:`auto`},video:typeof i.video==`object`&&i.video.name?{name:i.video.name}:{}};x.audio.isCreatedByCreateLocalTracks=!0,x.video.isCreatedByCreateLocalTracks=!0;let S;if(typeof i.audio==`object`){if(typeof i.audio.workaroundWebKitBug1208516==`boolean`&&(x.audio.workaroundWebKitBug1208516=i.audio.workaroundWebKitBug1208516),`noiseCancellationOptions`in i.audio&&(S=i.audio.noiseCancellationOptions,delete i.audio.noiseCancellationOptions),!(`defaultDeviceCaptureMode`in i.audio))x.audio.defaultDeviceCaptureMode=`auto`;else if([`auto`,`manual`].every(e=>e!==i.audio.defaultDeviceCaptureMode))throw p(`CreateLocalAudioTrackOptions.defaultDeviceCaptureMode`,[`auto`,`manual`]);else x.audio.defaultDeviceCaptureMode=i.audio.defaultDeviceCaptureMode}typeof i.video==`object`&&typeof i.video.workaroundWebKitBug1208516==`boolean`&&(x.video.workaroundWebKitBug1208516=i.video.workaroundWebKitBug1208516),typeof i.audio==`object`&&delete i.audio.name,typeof i.video==`object`&&delete i.video.name;let C={audio:i.audio,video:i.video},w=typeof i.audio==`object`&&i.audio.workaroundWebKitBug180748;try{let e=yield w?m(y,i.getUserMedia,C):i.getUserMedia(C);h.getUserMedia.succeeded();let t=[...e.getAudioTracks(),...e.getVideoTracks()];return y.info(`Call to getUserMedia successful; got tracks:`,t),yield Promise.all(t.map(e=>n.__awaiter(this,void 0,void 0,function*(){if(e.kind===`audio`&&S){let{cleanTrack:t,noiseCancellation:n}=yield(0,r.applyNoiseCancellation)(e,S,y);return new b.LocalAudioTrack(t,Object.assign(Object.assign(Object.assign({},x.audio),b),{noiseCancellation:n}))}return e.kind===`audio`?new b.LocalAudioTrack(e,Object.assign(Object.assign({},x.audio),b)):new b.LocalVideoTrack(e,Object.assign(Object.assign({},x.video),b))})))}catch(e){throw e.name===`NotAllowedError`||e.name===`PermissionDeniedError`?h.getUserMedia.denied():h.getUserMedia.failed(e),y.warn(`Call to getUserMedia failed:`,e),e}})}})),yt=r((e=>
6{Object.defineProperty(e,"__esModule",{value:!0}),e.Timer=void 0,e.Timer=class{constructor(){this._end=void 0,this.start()}start(){return this._start=Date.now(),this}stop(){return this._end=Date.now(),this}getTimeMeasurement(){return{start:this._start,end:this._end,duration:this._end===void 0?void 0:this._end-this._start}}}})),bt=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.calculateMOS=n,e.mosToScore=r;var t=94.768;function n(e,n,r){let i=e+n*2+10,a=0;switch(!0){case i<160:a=t-i/40;break;case i<1e3:a=t-(i-120)/10}switch(!0){case r<=a/2.5:a=Math.max(a-r*2.5,6.52);break;default:a=0}return 1+.035*a+7e-6*a*(a-60)*(100-a)}function r(e){let t=0;return t=e?e>4.2?5:e>4?4:e>3.6?3:e>3?2:1:0,t}})),xt=r((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getCombinedConnectionStats=a;var n=(V(),e(i));function r(e,t,n,r){let i=[];return e.forEach(e=>{(r.length===0||r.includes(e.type))&&(n.length===0||n.includes(e.kind))&&typeof e[t]==`number`&&i.push(e[t])}),i}function a(e){return n.__awaiter(this,arguments,void 0,function*({publisher:e,subscriber:t}){let[n,i]=yield Promise.all([e,t].map(e=>e.getStats())),a=r(i,`timestamp`,[`audio`],[`inbound-rtp`]),c=a.length>0?a[0]:0,l=r(i,`jitter`,[`audio`],[`inbound-rtp`]).reduce((e,t)=>Math.max(e,t),0),u=r(i,`packetsReceived`,[`audio`,`video`],[`inbound-rtp`]).reduce((e,t)=>e+t,0),d=r(i,`packetsLost`,[`audio`,`video`],[`inbound-rtp`]).reduce((e,t)=>e+t,0),f=r(n,`roundTripTime`,[`audio`,`video`],[`remote-inbound-rtp`]).reduce((e,t)=>Math.max(e,t),0),p=(r(i,`currentRoundTripTime`,[],[`candidate-pair`]).reduce((e,t)=>Math.max(e,t),0)||f)*1e3,m=r(n,`bytesSent`,[],[`candidate-pair`]).reduce((e,t)=>e+t,0),h=r(i,`bytesReceived`,[],[`candidate-pair`]).reduce((e,t)=>e+t,0),g=s(i),_=[];return i.forEach(e=>{(e.type===`local-candidate`||e.type===`remote-candidate`)&&_.push(o(e))}),{timestamp:c,jitter:l,packets:u,packetsLost:d,roundTripTime:p,bytesSent:m,bytesReceived:h,selectedIceCandidatePairStats:g,iceCandidateStats:_}})}function o(e){return[{key:`transportId`,type:`string`},{key:`candidateType`,type:`string`},{key:`port`,altKeys:[`portNumber`],type:`number`},{key:`address`,altKeys:[`ip`,`ipAddress`],type:`string`},{key:`priority`,type:`number`},{key:`protocol`,altKeys:[`transport`],type:`string`},{key:`url`,type:`string`},{key:`relayProtocol`,type:`string`}].reduce(function(t,n){let r=[n.key];n.altKeys&&(r=r.concat(n.altKeys));var i=r.find(t=>t in e);return i&&typeof e[i]===n.type&&(t[n.key]=e[i]),t},{})}function s(e){let t=null,n=[];e.forEach(e=>{e.type===`transport`&&e.selectedCandidatePairId?t=e.selectedCandidatePairId:e.type===`candidate-pair`&&n.push(e)});let r=n.find(e=>e.selected||t&&e.id===t);if(!r)return null;let i=r,a=e.get(i.localCandidateId),s=e.get(i.remoteCandidateId);return!a||!s?null:{localCandidate:o(a),remoteCandidate:o(s)}}})),St=r(((e,t)=>{var n=Q().EventEmitter,r=Z(),i=class extends n{constructor(e,t){super();let n=null,r=e;t=l(t),Object.defineProperties(this,{_lock:{get(){return n},set(e){n=e}},_reachableStates:{value:s(t)},_state:{get(){return r},set(e){r=e}},_states:{value:t},_whenDeferreds:{value:new Set},isLocked:{enumerable:!0,get(){return n!==null}},state:{enumerable:!0,get(){return r}}}),this.on(`stateChanged`,e=>{this._whenDeferreds.forEach(t=>{t.when(e,t.resolve,t.reject)})})}_whenPromise(e){if(typeof e!=`function`)return Promise.reject(Error(`when() executor must be a function`));let t=r.defer();return t.when=e,this._whenDeferreds.add(t),t.promise.then(e=>(this._whenDeferreds.delete(t),e),e=>{throw this._whenDeferreds.delete(t),e})}bracket(e,t){let n,r=this;function i(e){if(r.hasLock(n)&&r.releaseLockCompletely(n),e)throw e}return this.takeLock(e).then(function(e){return n=e,t(n)}).then(function(e){return i(),e},i)}hasLock(e){return this._lock===e}preempt(e,t,n){if(!a(this._states,this.state,e))throw Error(`Cannot transition from "${this.state}" to "${e}"`);let r;this.isLocked&&(r=this._lock,this._lock=null);let i=null;t&&(i=this.takeLockSync(t));let o=i?null:this.takeLockSync(`preemption`);return this.transition(e,i||o,n),r&&r.resolve(),o&&this.releaseLock(o),i}releaseLock(e){if(!this.isLocked)throw Error(`Could not release the lock for ${e.name} because the StateMachine is not locked`);if(!this.hasLock(e))throw Error(`Could not release the lock for ${e.name} because ${this._lock.name} has the lock`);e.depth===0?(this._lock=null,e.resolve()):e.depth--}releaseLockCompletely(e){if(!this.isLocked)throw Error(`Could not release the lock for ${e.name} because the StateMachine is not locked`);if(!this.hasLock(e))throw Error(`Could not release the lock for ${e.name} because ${this._lock.name} has the lock`);e.depth=0,this._lock=null,e.resolve()}takeLock(e){if(typeof e==`object`){let t=e;return new Promise(e=>{e(this.takeLockSync(t))})}let t=e;if(this.isLocked){var n=this.takeLock.bind(this,t);return this._lock.promise.then(n)}return Promise.resolve(this.takeLockSync(t))}takeLockSync(e){let t=typeof e==`string`?null:e,n=t?t.name:e;if(t&&!this.hasLock(t)||!t&&this.isLocked)throw Error(`Could not take the lock for ${n} because the lock for ${this._lock.name} was not released`);if(t)return t.depth++,t;let r=o(n);return this._lock=r,r}transition(e,t,n){if(n||=[],this.isLocked){if(!t)throw Error(`You must provide the key in order to transition`);if(!this.hasLock(t))throw Error(`Could not transition using the key for ${t.name} because ${this._lock.name} has the lock`)}else if(t)throw Error(`Key provided for ${t.name}, but the StateMachine was not locked (possibly due to preemption)`);if(!a(this._states,this.state,e))throw Error(`Cannot transition from "${this.state}" to "${e}"`);
6this._state=e,this.emit(...[`stateChanged`,e].concat(n))}tryTransition(e,t,n){try{this.transition(e,t,n)}catch{return!1}return!0}when(e){return this.state===e?Promise.resolve(this):a(this._reachableStates,this.state,e)?this._whenPromise((t,n,r)=>{t===e?n(this):a(this._reachableStates,t,e)||r(u(t,e))}):Promise.reject(u(this.state,e))}};function a(e,t,n){return e.get(t).has(n)}function o(e){let t=r.defer();return t.name=e,t.depth=0,t}function s(e){return Array.from(e.keys()).reduce((t,n)=>t.set(n,c(e,n)),new Map)}function c(e,t,n){return n||=new Set,e.get(t).forEach(t=>{n.has(t)||(n.add(t),c(e,t,n).forEach(n.add,n))}),n}function l(e){let t=new Map;for(let n in e)t.set(n,new Set(e[n]));return t}function u(e,t){return Error(`"${t}" cannot be reached from "${e}"`)}t.exports=i})),Ct=r(((e,t)=>{t.exports=class{constructor(e,t){t=Object.assign({navigator,window},t);let n=t.navigator,r=n.connection||{type:null},i=r.type,{_events:a,_listener:o,_target:s}=r.type?{_events:{value:[`change`,`typechange`]},_listener:{value:()=>{let t=i!==this.type&&this.isOnline;i=this.type,t&&e()}},_target:{value:r}}:{_events:{value:[`online`]},_listener:{value:e},_target:{value:t.window}};Object.defineProperties(this,{isOnline:{enumerable:!0,get(){return typeof n.onLine!=`boolean`||n.onLine}},type:{enumerable:!0,get(){return r.type||null}},_listener:o,_events:a,_target:s})}start(){this._events.forEach(e=>{this._target.addEventListener(e,this._listener)})}stop(){this._events.forEach(e=>{this._target.removeEventListener(e,this._listener)})}}})),wt=r(((e,t)=>{t.exports=class{constructor(e,t,n=!0){Object.defineProperties(this,{_delay:{value:t,writable:!0},_fn:{value:e},_timeout:{value:null,writable:!0}}),n&&this.start()}get delay(){return this._delay}get isSet(){return!!this._timeout}setDelay(e){this._delay=e}start(){this.isSet||(this._timeout=setTimeout(()=>{let e=this._fn;this.clear(),e()},this._delay))}clear(){clearTimeout(this._timeout),this._timeout=null}reset(){this.clear(),this.start()}}})),Tt=r(((e,t)=>{t.exports=WebSocket})),Et=r(((e,t)=>{var n=St(),{buildLogLevels:r,makeUUID:i}=Z(),a=Y(),o=Ct(),s=wt(),c=0,l={closed:[],connecting:[`closed`,`open`,`waiting`],early:[`closed`,`connecting`],open:[`closed`],waiting:[`closed`,`connecting`,`early`,`open`]},u={closed:`close`,open:`open`,waiting:`waiting`},d=2,f=3,p=3,m=5e3,h=15e3,g=5e3,_=200,v=1e3,y=3e3,b=3001,x=3002,S=3003,C=3004,w=3005,T=3006,E=3007,D=globalThis,O=D.WebSocket?D.WebSocket:Tt(),k={BUSY:`busy`,FAILED:`failed`,LOCAL:`local`,REMOTE:`remote`,TIMEOUT:`timeout`},A=new Map([[y,k.TIMEOUT],[b,k.TIMEOUT],[x,k.FAILED],[S,k.FAILED],[C,k.TIMEOUT],[T,k.BUSY],[E,k.TIMEOUT]]),j=class extends n{constructor(e,t){super(`early`,l),t=Object.assign({helloBody:null,maxConsecutiveFailedHellos:p,maxConsecutiveMissedHeartbeats:f,requestedHeartbeatTimeout:m,openTimeout:h,welcomeTimeout:g,Log:a,WebSocket:O},t);let n=r(t.logLevel),i=new t.Log(`default`,this,n,t.loggerName),s=t.networkMonitor?new o(()=>{let{type:e}=s,t=`Network changed${e?` to ${e}`:``}`;i.debug(t),this._close({code:C,reason:t})}):null;Object.defineProperties(this,{_busyWaitTimeout:{value:null,writable:!0},_consecutiveHeartbeatsMissed:{value:0,writable:!0},_cookie:{value:null,writable:!0},_eventObserver:{value:t.eventObserver},_heartbeatTimeout:{value:null,writable:!0},_hellosLeft:{value:t.maxConsecutiveFailedHellos,writable:!0},_instanceId:{value:++c},_log:{value:i},_messageQueue:{value:[]},_networkMonitor:{value:s},_options:{value:t},_openTimeout:{value:null,writable:!0},_sendHeartbeatTimeout:{value:null,writable:!0},_serverUrl:{value:e},_welcomeTimeout:{value:null,writable:!0},_ws:{value:null,writable:!0}});let d={connecting:`info`,early:`info`,open:`info`,waiting:`warning`,closed:`info`};this.on(`stateChanged`,(e,...t)=>{e in u&&this.emit(u[e],...t);let n={name:e,group:`signaling`,level:d[this.state]};if(e===`closed`){let[e]=t;n.payload={reason:e},n.level=e===k.LOCAL?`info`:`error`}this._eventObserver.emit(`event`,n)}),this._eventObserver.emit(`event`,{name:this.state,group:`signaling`,level:d[this.state]}),this._connect()}toString(){return`[TwilioConnection #${this._instanceId}: ${this._ws.url}]`}_close({code:e,reason:t}){if(this.state===`closed`)return;this._openTimeout&&this._openTimeout.clear(),this._welcomeTimeout&&this._welcomeTimeout.clear(),this._heartbeatTimeout&&this._heartbeatTimeout.clear(),this._sendHeartbeatTimeout&&this._sendHeartbeatTimeout.clear(),this._networkMonitor&&this._networkMonitor.stop(),this._busyWaitTimeout&&e!==w&&this._busyWaitTimeout.clear(),this._messageQueue.splice(0);let n=this._log;e===v?(n.debug(`Closed`),this.transition(`closed`,null,[k.LOCAL])):(n.warn(`Closed: ${e} - ${t}`),e!==w&&this.transition(`closed`,null,[A.get(e)||k.REMOTE]));let{readyState:r}=this._ws,{WebSocket:i}=this._options;r!==i.CLOSING&&r!==i.CLOSED&&this._ws.close(e,t)}_connect(){let e=this._log;if(this.state===`waiting`)this.transition(`early`);else if(this.state!==`early`){e.warn(`Unexpected state "${this.state}" for connecting to the TCMP server.`);return}this._ws=new this._options.WebSocket(this._serverUrl);let t=this._ws;e.debug(`Created a new WebSocket:`,t),t.addEventListener(`close`,e=>this._close(e));let{openTimeout:n}=this._options;this._openTimeout=new s(()=>{let e=`Failed to open in ${n} ms`;this._close({code:E,reason:e})},n),t.addEventListener(`open`,()=>{e.debug(`WebSocket opened:`,t),this._openTimeout.clear(),this._startHandshake(),this._networkMonitor&&this._networkMonitor.start()}),t.addEventListener(`message`,t=>{e.debug(`Incoming: ${t.data}`);try{t=JSON.parse(t.data)}
6catch(e){this.emit(`error`,e);return}switch(t.type){case`bad`:this._handleBad(t);break;case`busy`:this._handleBusy(t);break;case`bye`:break;case`msg`:this._handleMessage(t);case`heartbeat`:this._handleHeartbeat();break;case`welcome`:this._handleWelcome(t);break;default:this._log.debug(`Unknown message type: ${t.type}`),this.emit(`error`,Error(`Unknown message type: ${t.type}`))}})}_handleBad({reason:e}){let t=this._log;if(![`connecting`,`open`].includes(this.state)){t.warn(`Unexpected state "${this.state}" for handling a "bad" message from the TCMP server.`);return}if(this.state===`connecting`){t.warn(`Closing: ${x} - ${e}`),this._close({code:x,reason:e});return}t.debug(`Error: ${e}`),this.emit(`error`,Error(e))}_handleBusy({cookie:e,keepAlive:t,retryAfter:n}){let r=this._log;if(![`connecting`,`waiting`].includes(this.state)){r.warn(`Unexpected state "${this.state}" for handling a "busy" message from the TCMP server.`);return}this._busyWaitTimeout&&this._busyWaitTimeout.clear(),this._welcomeTimeout&&this._welcomeTimeout.clear();let i=n<0?`Received terminal "busy" message`:`Received "busy" message, retrying after ${n} ms`;if(n<0){r.warn(`Closing: ${T} - ${i}`),this._close({code:T,reason:i});return}let{maxConsecutiveFailedHellos:a}=this._options;this._hellosLeft=a,this._cookie=e||null,t?(r.warn(i),this._busyWaitTimeout=new s(()=>this._startHandshake(),n)):(r.warn(`Closing: ${w} - ${i}`),this._close({code:w,reason:i}),this._busyWaitTimeout=new s(()=>this._connect(),n)),this.transition(`waiting`,null,[t,n])}_handleHeartbeat(){if(this.state!==`open`){this._log.warn(`Unexpected state "${this.state}" for handling a "heartbeat" message from the TCMP server.`);return}this._heartbeatTimeout.reset()}_handleHeartbeatTimeout(){if(this.state!==`open`)return;let e=this._log,{maxConsecutiveMissedHeartbeats:t}=this._options;e.debug(`Consecutive heartbeats missed: ${t}`);let n=`Missed ${t} "heartbeat" messages`;e.warn(`Closing: ${b} - ${n}`),this._close({code:b,reason:n})}_handleMessage({body:e}){if(this.state!==`open`){this._log.warn(`Unexpected state "${this.state}" for handling a "msg" message from the TCMP server.`);return}this.emit(`message`,e)}_handleWelcome({negotiatedTimeout:e}){let t=this._log;if(![`connecting`,`waiting`].includes(this.state)){t.warn(`Unexpected state "${this.state}" for handling a "welcome" message from the TCMP server.`);return}this.state===`waiting`&&(t.debug(`Received "welcome" message, no need to retry connection.`),this._busyWaitTimeout.clear());let{maxConsecutiveMissedHeartbeats:n}=this._options,r=e*n,i=e-_;this._welcomeTimeout.clear(),this._heartbeatTimeout=new s(()=>this._handleHeartbeatTimeout(),r),this._messageQueue.splice(0).forEach(e=>this._send(e)),this._sendHeartbeatTimeout=new s(()=>this._sendHeartbeat(),i),this.transition(`open`)}_handleWelcomeTimeout(){if(this.state!==`connecting`)return;let e=this._log;if(this._hellosLeft<=0){let t=`All handshake attempts failed`;e.warn(`Closing: ${y} - ${t}`),this._close({code:y,reason:t});return}let{maxConsecutiveFailedHellos:t}=this._options;e.warn(`Handshake attempt ${t-this._hellosLeft} failed`),this._startHandshake()}_send(e){let{readyState:t}=this._ws,{WebSocket:n}=this._options;if(t===n.OPEN){let t=JSON.stringify(e);this._log.debug(`Outgoing: ${t}`);try{this._ws.send(t),this._sendHeartbeatTimeout&&this._sendHeartbeatTimeout.reset()}catch{let e=`Failed to send message`;this._log.warn(`Closing: ${S} - ${e}`),this._close({code:S,reason:e})}}}_sendHeartbeat(){this.state!==`closed`&&this._send({type:`heartbeat`})}_sendHello(){let{helloBody:e,requestedHeartbeatTimeout:t}=this._options,n={id:i(),timeout:t,type:`hello`,version:d};this._cookie&&(n.cookie=this._cookie),e&&(n.body=e),this._send(n)}_sendOrEnqueue(e){this.state!==`closed`&&(this.state===`open`?e=>this._send(e):e=>this._messageQueue.push(e))(e)}_startHandshake(){if([`early`,`waiting`].includes(this.state)&&this.transition(`connecting`),this.state!==`connecting`)return;this._hellosLeft--,this._sendHello();let{welcomeTimeout:e}=this._options;this._welcomeTimeout=new s(()=>this._handleWelcomeTimeout(),e)}close(){this.state!==`closed`&&(this._sendOrEnqueue({type:`bye`}),this._close({code:v,reason:`Normal`}))}sendMessage(e){this._sendOrEnqueue({body:e,type:`msg`})}};
6j.CloseReason=k,t.exports=j})),Dt=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getTurnCredentials=o;var t=Et(),{ICE_VERSION:n}=J(),{createTwilioError:r,SignalingConnectionError:i}=$(),a=Q();function o(e,o){return new Promise((s,c)=>{let l=new t(o,{networkMonitor:null,eventObserver:new a.EventEmitter,helloBody:{edge:`roaming`,preflight:!0,token:e,type:`ice`,version:n}}),u=!1;l.once(`close`,()=>{u||(u=!0,c(new i))}),l.on(`message`,e=>{let{code:t,message:n,ice_servers:i,type:a}=e;(a===`iced`||a===`error`)&&!u&&(u=!0,a===`iced`?s(i):c(r(t,n)),l.close())})})}})),Ot=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.makeStat=t;function t(e){return e&&e.length?{min:Math.min(...e),max:Math.max(...e),average:e.reduce((e,t)=>e+t,0)/e.length}:null}})),kt=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.syntheticAudio=t;function t(){let e=H(),t={},n=e.getOrCreate(t),r=n.createOscillator(),i=r.connect(n.createMediaStreamDestination());r.start();let a=i.stream.getAudioTracks()[0],o=a.stop;return a.stop=()=>{o.call(a),e.release(t)},a}})),At=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.syntheticVideo=t;function t({width:e=640,height:t=480}={}){let n=Object.assign(document.createElement(`canvas`),{width:e,height:t}),r=n.getContext(`2d`);r.fillStyle=`green`,r.fillRect(0,0,n.width,n.height);let i=!1;requestAnimationFrame(function n(){if(!i){let i=Math.round(Math.random()*255),a=Math.round(Math.random()*255),o=Math.round(Math.random()*255),s=Math.round(Math.random()*255);r.fillStyle=`rgba(${i}, ${a}, ${o}, ${s})`,r.fillRect(Math.random()*e,Math.random()*t,50,50),requestAnimationFrame(n)}});let a=n.captureStream(30).getTracks()[0],o=a.stop;return a.stop=()=>{i=!0,o.call(a)},a}})),jt=r(((e,t)=>{t.exports=class{constructor(){Object.defineProperties(this,{_samples:{value:[{denominator:0,numerator:0},{denominator:0,numerator:0}]}})}get(){let{_samples:e}=this,t=e[1].denominator-e[0].denominator||1/0;return(e[1].numerator-e[0].numerator)/t}putSample(e,t){let{_samples:n}=this;n.shift(),n.push({denominator:t,numerator:e})}}})),Mt=r(((e,t)=>{var{EventEmitter:n}=Q(),r=[`signaling`,`room`,`media`,`quality`,`video-processor`,`preflight`],i=[`debug`,`error`,`info`,`warning`];t.exports=class extends n{constructor(e,t,n,a=null){super(),this.on(`event`,({name:o,group:s,level:c,payload:l})=>{if(typeof o!=`string`)throw n.error(`Unexpected name: `,o),Error(`Unexpected name: `,o);if(!r.includes(s))throw n.error(`Unexpected group: `,s),Error(`Unexpected group: `,s);if(!i.includes(c))throw n.error(`Unexpected level: `,c),Error(`Unexpected level: `,c);let u=Date.now(),d=u-t,f=Object.assign({elapsedTime:d,level:c},l||{});e.publish(s,o,f);let p=Object.assign({elapsedTime:d,group:s,level:c,name:o,timestamp:u},l?{payload:l}:{});n[{debug:`debug`,error:`error`,info:`info`,warning:`warn`}[c]](`event`,p),a&&s===`signaling`&&a.emit(`event`,p)})}}})),Nt=r(((e,t)=>{var n=Q().EventEmitter,{getUserAgent:r}=Z(),i=5,a=50,o=1e3,s=globalThis,c=s.WebSocket?s.WebSocket:Tt(),{hardwareDevicePublisheriPad:l,hardwareDevicePublisheriPhone:u}=J(),d=Z(),f=Pe(),p=class extends n{constructor(e,t,n,o,s,l){super(),l=Object.assign({gateway:`${h(o,s)}/v1/VideoEvents`,maxReconnectAttempts:i,reconnectIntervalMs:a,userAgent:r(),WebSocket:c},l),Object.defineProperties(this,{_connectTimestamp:{value:0,writable:!0},_eventQueue:{value:[]},_readyToConnect:{value:d.defer()},_reconnectAttemptsLeft:{value:l.maxReconnectAttempts,writable:!0},_ws:{value:null,writable:!0},_WebSocket:{value:l.WebSocket}}),this._readyToConnect.promise.then(({roomSid:r,participantSid:i})=>{let a=this;this.on(`disconnected`,function o(s){if(a._session=null,s&&a._reconnectAttemptsLeft>0){a.emit(`reconnecting`),_(a,e,t,n,r,i,l);return}a.removeListener(`disconnected`,o)}),m(this,e,t,n,r,i,l)}).catch(()=>{})}connect(e,t){this._readyToConnect.resolve({roomSid:e,participantSid:t})}_publish(e){e.session=this._session,this._ws.send(JSON.stringify(e))}disconnect(){if(this._ws===null||this._ws.readyState===this._WebSocket.CLOSING||this._ws.readyState===this._WebSocket.CLOSED)return!1;try{this._ws.close()}catch{}
6return this.emit(`disconnected`),!0}publish(e,t,n){return this._ws!==null&&(this._ws.readyState===this._WebSocket.CLOSING||this._ws.readyState===this._WebSocket.CLOSED)?!1:((typeof this._session==`string`?this._publish.bind(this):this._eventQueue.push.bind(this._eventQueue))({group:e,name:t,payload:n,timestamp:Date.now(),type:`event`,version:1}),!0)}};function m(e,t,n,r,i,a,s){e._connectTimestamp=Date.now(),e._reconnectAttemptsLeft--,e._ws=new s.WebSocket(s.gateway);let c=e._ws;c.addEventListener(`close`,t=>{if(t.code===o){e.emit(`disconnected`);return}e.emit(`disconnected`,Error(`WebSocket Error ${t.code}: ${t.reason}`))}),c.addEventListener(`message`,t=>{g(e,JSON.parse(t.data),s)}),c.addEventListener(`open`,()=>{let e={type:`connect`,token:t,version:1};e.publisher={name:n,sdkVersion:r,userAgent:s.userAgent,participantSid:a,roomSid:i},f.isIpad()?e.publisher=Object.assign(Object.assign({},e.publisher),l):f.isIphone()&&(e.publisher=Object.assign(Object.assign({},e.publisher),u)),c.send(JSON.stringify(e))})}function h(e,t){return e===`prod`?`wss://sdkgw.${t}.twilio.com`:`wss://sdkgw.${e}-${t}.twilio.com`}function g(e,t,n){switch(t.type){case`connected`:e._session=t.session,e._reconnectAttemptsLeft=n.maxReconnectAttempts,e._eventQueue.splice(0).forEach(e._publish,e),e.emit(`connected`);break;case`error`:e._ws.close(),e.emit(`disconnected`,Error(t.message))}}function _(e,t,n,r,i,a,o){let s=Date.now()-e._connectTimestamp,c=o.reconnectIntervalMs-s;if(c>0){setTimeout(()=>{m(e,t,n,r,i,a,o)},c);return}m(e,t,n,r,i,a,o)}t.exports=p})),Pt=r((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PreflightTest=void 0,t.runPreflight=A;var n=(V(),e(i)),r=J(),a=yt(),o=bt(),s=xt(),c=Dt(),l=Ot(),u=kt(),d=At(),f=Z(),{WS_SERVER:p}=J(),m=Y(),h=Re(),g=jt(),_=Mt(),v=Nt(),{createSID:y,sessionSID:b}=xe(),{SignalingConnectionTimeoutError:x,MediaConnectionError:S}=$(),C=1e3,w=10*C,T={mediaAcquired:`mediaAcquired`,connected:`connected`,mediaSubscribed:`mediaSubscribed`,mediaStarted:`mediaStarted`,dtlsConnected:`dtlsConnected`,peerConnectionConnected:`peerConnectionConnected`,iceConnected:`iceConnected`};function E(e){return e!=null}var D=0,O=class extends h{constructor(e,t){super(),this._testTiming=new a.Timer,this._dtlsTiming=new a.Timer,this._iceTiming=new a.Timer,this._peerConnectionTiming=new a.Timer,this._mediaTiming=new a.Timer,this._connectTiming=new a.Timer,this._sentBytesMovingAverage=new g,this._packetLossMovingAverage=new g,this._progressEvents=[],this._receivedBytesMovingAverage=new g;let n=t,{environment:i=`prod`,region:o=`gll`,duration:s=w}=n,c=n.wsServer||p(i,o);this._log=new m(`default`,this,r.DEFAULT_LOG_LEVEL,r.DEFAULT_LOGGER_NAME),this._testDuration=s,this._instanceId=D++,this._testTiming.start(),this._runPreflightTest(e,i,c)}toString(){return`[Preflight #${this._instanceId}]`}stop(){this._stopped=!0}_generatePreflightReport(e){return this._testTiming.stop(),{testTiming:this._testTiming.getTimeMeasurement(),networkTiming:{dtls:this._dtlsTiming.getTimeMeasurement(),ice:this._iceTiming.getTimeMeasurement(),peerConnection:this._peerConnectionTiming.getTimeMeasurement(),connect:this._connectTiming.getTimeMeasurement(),media:this._mediaTiming.getTimeMeasurement()},stats:{jitter:(0,l.makeStat)(e?.jitter),rtt:(0,l.makeStat)(e?.rtt),packetLoss:(0,l.makeStat)(e?.packetLoss)},selectedIceCandidatePairStats:e?e.selectedIceCandidatePairStats:null,iceCandidateStats:e?e.iceCandidateStats:[],progressEvents:this._progressEvents,mos:(0,l.makeStat)(e?.mos)}}_executePreflightStep(e,t,r){return n.__awaiter(this,void 0,void 0,function*(){this._log.debug(`Executing step: `,e);let n=this._testDuration+10*C;if(this._stopped)throw Error(`stopped`);let i=Promise.resolve().then(t),a=null,o=new Promise((t,i)=>{a=setTimeout(()=>{i(r||Error(`${e} timeout.`))},n)});try{return yield Promise.race([o,i])}finally{a!==null&&clearTimeout(a)}})}_collectNetworkTimings(e){return new Promise(t=>{let n;e.addEventListener(`iceconnectionstatechange`,()=>{e.iceConnectionState===`checking`&&this._iceTiming.start(),e.iceConnectionState===`connected`&&(this._iceTiming.stop(),this._updateProgress(T.iceConnected),(!n||n&&n.state===`connected`)&&t())}),e.addEventListener(`connectionstatechange`,()=>{e.connectionState===`connecting`&&this._peerConnectionTiming.start(),e.connectionState===`connected`&&(this._peerConnectionTiming.stop(),this._updateProgress(T.peerConnectionConnected))});let r=e.getSenders().map(e=>e.transport).find(E);r!==void 0&&(n=r,n.addEventListener(`statechange`,()=>{n.state===`connecting`&&this._dtlsTiming.start(),n.state===`connected`&&(this._dtlsTiming.stop(),this._updateProgress(T.dtlsConnected),e.iceConnectionState===`connected`&&t())}))})}_setupInsights({token:e,environment:t=r.DEFAULT_ENVIRONMENT,realm:n=r.DEFAULT_REALM}){let i=new v(e,r.SDK_NAME,r.SDK_VERSION,t,n,{});i.connect(`PREFLIGHT_ROOM_SID`,`PREFLIGHT_PARTICIPANT`);let a=new _(i,Date.now(),this._log);return{reportToInsights:({report:e})=>{let t=e.stats.jitter||void 0,n=e.stats.rtt||void 0,r=e.stats.packetLoss||void 0,o=e.mos||void 0,s=new Map;
6e.iceCandidateStats.forEach(e=>{if(e.candidateType&&e.protocol){let t=s.get(e.candidateType)||[];t.indexOf(e.protocol)<0&&t.push(e.protocol),s.set(e.candidateType,t)}});let c=JSON.stringify(Object.fromEntries(s)),l={name:`report`,group:`preflight`,level:e.error?`error`:`info`,payload:{sessionSID:b,preflightSID:y(`PF`),progressEvents:JSON.stringify(e.progressEvents),testTiming:e.testTiming,dtlsTiming:e.networkTiming.dtls,iceTiming:e.networkTiming.ice,peerConnectionTiming:e.networkTiming.peerConnection,connectTiming:e.networkTiming.connect,mediaTiming:e.networkTiming.media,selectedLocalCandidate:e.selectedIceCandidatePairStats?.localCandidate,selectedRemoteCandidate:e.selectedIceCandidatePairStats?.remoteCandidate,iceCandidateStats:c,jitterStats:t,rttStats:n,packetLossStats:r,mosStats:o,error:e.error}};a.emit(`event`,l),setTimeout(()=>i.disconnect(),2e3)}}}_runPreflightTest(e,t,r){return n.__awaiter(this,void 0,void 0,function*(){let i=[],a=[],{reportToInsights:o}=this._setupInsights({token:e,environment:t});try{let t=[];i=yield this._executePreflightStep(`Acquire media`,()=>[(0,u.syntheticAudio)(),(0,d.syntheticVideo)({width:640,height:480})]),this._updateProgress(T.mediaAcquired),this.emit(`debug`,{localTracks:i}),this._connectTiming.start();let s=yield this._executePreflightStep(`Get turn credentials`,()=>(0,c.getTurnCredentials)(e,r),new x);this._connectTiming.stop(),this._updateProgress(T.connected);let l=new RTCPeerConnection({iceServers:s,iceTransportPolicy:`relay`,bundlePolicy:`max-bundle`}),f=new RTCPeerConnection({iceServers:s,bundlePolicy:`max-bundle`});a.push(l),a.push(f),this._mediaTiming.start();let p=yield this._executePreflightStep(`Setup Peer Connections`,()=>n.__awaiter(this,void 0,void 0,function*(){l.addEventListener(`icecandidate`,e=>e.candidate&&f.addIceCandidate(e.candidate)),f.addEventListener(`icecandidate`,e=>e.candidate&&l.addIceCandidate(e.candidate)),i.forEach(e=>l.addTrack(e));let e=new Promise(e=>{let t=[];f.addEventListener(`track`,n=>{t.push(n.track),t.length===i.length&&e(t)})}),t=yield l.createOffer();yield l.setLocalDescription(t),yield f.setRemoteDescription(t);let n=yield f.createAnswer();return yield f.setLocalDescription(n),yield l.setRemoteDescription(n),yield this._collectNetworkTimings(l),e}),new S);this.emit(`debug`,{remoteTracks:p}),p.forEach(e=>{e.addEventListener(`ended`,()=>this._log.warn(e.kind+`:ended`)),e.addEventListener(`mute`,()=>this._log.warn(e.kind+`:muted`)),e.addEventListener(`unmute`,()=>this._log.warn(e.kind+`:unmuted`))}),this._updateProgress(T.mediaSubscribed),yield this._executePreflightStep(`Wait for tracks to start`,()=>new Promise(e=>{let n=document.createElement(`video`);n.autoplay=!0,n.playsInline=!0,n.muted=!0,n.srcObject=new MediaStream(p),t.push(n),this.emit(`debugElement`,n),n.oncanplay=e}),new S),this._mediaTiming.stop(),this._updateProgress(T.mediaStarted);let m=yield this._executePreflightStep(`Collect stats for duration`,()=>this._collectRTCStatsForDuration(this._testDuration,k(),l,f)),h=yield this._executePreflightStep(`Generate report`,()=>this._generatePreflightReport(m));o({report:h}),this.emit(`completed`,h)}catch(e){let t=this._generatePreflightReport();o({report:Object.assign(Object.assign({},t),{error:e?.toString()})}),this.emit(`failed`,e,t)}finally{a.forEach(e=>e.close()),i.forEach(e=>e.stop())}})}_collectRTCStats(e,t,r){return n.__awaiter(this,void 0,void 0,function*(){let{timestamp:n,bytesSent:i,bytesReceived:a,packets:c,packetsLost:l,roundTripTime:u,jitter:d,selectedIceCandidatePairStats:f,iceCandidateStats:p}=yield(0,s.getCombinedConnectionStats)({publisher:t,subscriber:r}),m=e.jitter.length>0;if(e.jitter.push(d),e.rtt.push(u),this._sentBytesMovingAverage.putSample(i,n),this._receivedBytesMovingAverage.putSample(a,n),this._packetLossMovingAverage.putSample(l,c),m){e.outgoingBitrate.push(this._sentBytesMovingAverage.get()*1e3*8),e.incomingBitrate.push(this._receivedBytesMovingAverage.get()*1e3*8);let t=this._packetLossMovingAverage.get(),n=Math.min(100,t*100);e.packetLoss.push(n);let r=(0,o.calculateMOS)(u,d,t);e.mos.push(r)}e.selectedIceCandidatePairStats||=f,e.iceCandidateStats.length===0&&(e.iceCandidateStats=p)})}_collectRTCStatsForDuration(e,t,r,i){return n.__awaiter(this,void 0,void 0,function*(){let n=Date.now(),a=Math.min(1e3,e);yield(0,f.waitForSometime)(a),yield this._collectRTCStats(t,r,i);let o=e-(Date.now()-n);return o>0&&(t=yield this._collectRTCStatsForDuration(o,t,r,i)),t})}_updateProgress(e){let t=Date.now()-this._testTiming.getTimeMeasurement().start;this._progressEvents.push({duration:t,name:e}
6),this.emit(`progress`,e)}};t.PreflightTest=O;function k(){return{mos:[],jitter:[],rtt:[],outgoingBitrate:[],incomingBitrate:[],packetLoss:[],selectedIceCandidatePairStats:null,iceCandidateStats:[]}}function A(e,t={}){return new O(e,t)}})),Ft=r(((e,t)=>{t.exports=class e{constructor(e,t){Object.defineProperties(this,{_isCancelable:{writable:!0,value:!0},_isCanceled:{writable:!0,value:!1},_onCancel:{value:t}}),Object.defineProperty(this,"_promise",{value:new Promise((t,n)=>{e(e=>{this._isCancelable=!1,t(e)},e=>{this._isCancelable=!1,n(e)},()=>this._isCanceled)})})}static reject(t){return new e(function(e,n){n(t)},function(){})}static resolve(t){return new e(function(e){e(t)},function(){})}cancel(){return this._isCancelable&&(this._isCanceled=!0,this._onCancel()),this}catch(){let t=[].slice.call(arguments),n=this._promise;return new e(function(e,r){n.catch(...t).then(e,r)},this._onCancel)}then(){let t=[].slice.call(arguments),n=this._promise;return new e(function(e,r){n.then(...t).then(e,r)},this._onCancel)}finally(){let t=[].slice.call(arguments),n=this._promise;return new e(function(e,r){n.finally(...t).then(e,r)},this._onCancel)}}})),It=r(((e,t)=>{var n=Ft();function r(e,t,r,i){let a,o=Error(`Canceled`);return new n(function(s,c,l){let u;e(function(e){return l()?n.reject(o):(u=t(e),r(u).then(function(e){if(l())throw o;return a=e(),a}))}).then(function(e){if(l())throw e.disconnect(),o;s(i(u,e))}).catch(function(e){c(e)})},function(){a&&a.cancel()})}t.exports=r})),Lt=r(((e,t)=>{var n=Q().EventEmitter;t.exports=class extends n{constructor(e,t){super(),e=Object.assign({maxAudioBitrate:null,maxVideoBitrate:null},e),Object.defineProperties(this,{maxAudioBitrate:{value:e.maxAudioBitrate,writable:!0},maxVideoBitrate:{value:e.maxVideoBitrate,writable:!0},adaptiveSimulcast:{value:t}})}toJSON(){return{maxAudioBitrate:this.maxAudioBitrate,maxVideoBitrate:this.maxVideoBitrate}}update(e){e=Object.assign({maxAudioBitrate:this.maxAudioBitrate,maxVideoBitrate:this.maxVideoBitrate},e),[`maxAudioBitrate`,`maxVideoBitrate`].reduce((t,n)=>(this[n]!==e[n]&&(this[n]=e[n],t=!0),t),!1)&&this.emit(`changed`)}}})),Rt=r((e=>{var{isNonArrayObject:t}=Z(),{typeErrors:n,clientTrackSwitchOffControl:r,videoContentPreferencesMode:i,subscriptionMode:a,trackPriority:o,trackSwitchOffMode:s}=J();function c(e){let t=u(e,`options.bandwidthProfile`);return!e||t||(t=u(e.video,`options.bandwidthProfile.video`,[{prop:`contentPreferencesMode`,values:Object.values(i)},{prop:`dominantSpeakerPriority`,values:Object.values(o)},{prop:`maxSubscriptionBitrate`,type:`number`},{prop:`maxTracks`,type:`number`},{prop:`mode`,values:Object.values(a)},{prop:`clientTrackSwitchOffControl`,values:Object.values(r)},{prop:`trackSwitchOffMode`,values:Object.values(s)}]),t)?t:e.video?`maxTracks`in e.video&&`clientTrackSwitchOffControl`in e.video?TypeError(`options.bandwidthProfile.video.maxTracks is deprecated. Use options.bandwidthProfile.video.clientTrackSwitchOffControl instead.`):`renderDimensions`in e.video&&`contentPreferencesMode`in e.video?TypeError(`options.bandwidthProfile.video.renderDimensions is deprecated. Use options.bandwidthProfile.video.contentPreferencesMode instead.`):d(e.video.renderDimensions):null}function l(e,t){if(!(e instanceof t.LocalAudioTrack||e instanceof t.LocalDataTrack||e instanceof t.LocalVideoTrack||e instanceof t.MediaStreamTrack))throw n.INVALID_TYPE(`track`,`LocalAudioTrack, LocalVideoTrack, LocalDataTrack, or MediaStreamTrack`)}function u(e,r,i=[]){return e===void 0?null:e===null||!t(e)?n.INVALID_TYPE(r,`object`):i.reduce((t,{prop:i,type:a,values:o})=>{if(t||!(i in e))return t;let s=e[i];return a&&typeof s!==a||a===`number`&&isNaN(s)?n.INVALID_TYPE(`${r}.${i}`,a):Array.isArray(o)&&!o.includes(s)?n.INVALID_VALUE(`${r}.${i}`,o):t},null)}function d(e){let t=`options.bandwidthProfile.video.renderDimensions`,n=u(e,t);return e?n||Object.values(o).reduce((n,r)=>n||u(e[r],`${t}.${r}`,[{prop:`height`,type:`number`},{prop:`width`,type:`number`}]),null):n}e.validateBandwidthProfile=c,e.validateLocalTrack=l,e.validateObject=u})),zt=r(((e,t)=>{var n=Re(),{buildLogLevels:r,valueToJSON:i}=Z(),{DEFAULT_LOG_LEVEL:a}=J(),o=Y(),s=0;t.exports=class extends n{constructor(e,t,n){super(),n=Object.assign({logLevel:a},n);let i=r(n.logLevel);Object.defineProperties(this,{_instanceId:{value:s++},_log:{value:n.log?n.log.createLog(`default`,this):new o(`default`,this,i,n.loggerName)}
6,trackName:{enumerable:!0,value:e},trackSid:{enumerable:!0,value:t}})}toJSON(){return i(this)}toString(){return`[TrackPublication #${this._instanceId}: ${this.trackSid}]`}}})),Bt=r(((e,t)=>{var n=zt(),{typeErrors:r,trackPriority:i}=J();t.exports=class extends n{constructor(e,t,n,r){super(t.name,e.sid,r),Object.defineProperties(this,{_reemitSignalingEvent:{value:(...e)=>this.emit(e&&e.length?`warning`:`warningsCleared`,...e)},_reemitTrackEvent:{value:()=>this.emit(this.isTrackEnabled?`trackEnabled`:`trackDisabled`)},_signaling:{value:e},_unpublish:{value:n},isTrackEnabled:{enumerable:!0,get(){return this.track.kind===`data`||this.track.isEnabled}},kind:{enumerable:!0,value:t.kind},priority:{enumerable:!0,get(){return e.updatedPriority}},track:{enumerable:!0,value:t}}),[`disabled`,`enabled`].forEach(e=>t.on(e,this._reemitTrackEvent)),[`warning`,`warningsCleared`].forEach(t=>e.on(t,this._reemitSignalingEvent))}toString(){return`[LocalTrackPublication #${this._instanceId}: ${this.trackSid}]`}setPriority(e){let t=Object.values(i);if(!t.includes(e))throw r.INVALID_VALUE(`priority`,t);return this._signaling.setPriority(e),this}unpublish(){return[`disabled`,`enabled`].forEach(e=>this.track.removeListener(e,this._reemitTrackEvent)),[`warning`,`warningsCleared`].forEach(e=>this._signaling.removeListener(e,this._reemitSignalingEvent)),this._unpublish(this),this}}})),Vt=r(((e,t)=>{var n=Bt();t.exports=class extends n{constructor(e,t,n,r){super(e,t,n,r)}toString(){return`[LocalAudioTrackPublication #${this._instanceId}: ${this.trackSid}]`}}})),Ht=r(((e,t)=>{var n=Bt();t.exports=class extends n{constructor(e,t,n,r){super(e,t,n,r)}toString(){return`[LocalDataTrackPublication #${this._instanceId}: ${this.trackSid}]`}}})),Ut=r(((e,t)=>{var n=Bt();t.exports=class extends n{constructor(e,t,n,r){super(e,t,n,r)}toString(){return`[LocalVideoTrackPublication #${this._instanceId}: ${this.trackSid}]`}}})),Wt=r(((e,t)=>{var{typeErrors:n,trackPriority:r}=J(),{isIOS:i}=Pe(),a=Ue();function o(e){return class extends e{constructor(e,t,n,r,a,o,s){s=Object.assign({workaroundWebKitBug212780:i()&&typeof document==`object`&&typeof document.addEventListener==`function`&&typeof document.visibilityState==`string`},s),super(t,s),Object.defineProperties(this,{_isEnabled:{value:n,writable:!0},_isSwitchedOff:{value:r,writable:!0},_priority:{value:null,writable:!0},_setPriority:{value:a},_setRenderHint:{value:e=>{this._log.debug(`updating render hint:`,e),o(e)}},isEnabled:{enumerable:!0,get(){return this._isEnabled}},isSwitchedOff:{enumerable:!0,get(){return this._isSwitchedOff}},priority:{enumerable:!0,get(){return this._priority}},sid:{enumerable:!0,value:e},_workaroundWebKitBug212780:{value:s.workaroundWebKitBug212780},_workaroundWebKitBug212780Cleanup:{value:null,writable:!0}})}setPriority(e){let t=[null,...Object.values(r)];if(!t.includes(e))throw n.INVALID_VALUE(`priority`,t);return this._priority!==e&&(this._priority=e,this._setPriority(e)),this}_setEnabled(e){this._isEnabled!==e&&(this._isEnabled=e,this.emit(this._isEnabled?`enabled`:`disabled`,this))}_setSwitchedOff(e){this._isSwitchedOff!==e&&(this._isSwitchedOff=e,this.emit(e?`switchedOff`:`switchedOn`,this))}attach(e){let t=super.attach(e);return this.mediaStreamTrack.enabled!==!0&&(this.mediaStreamTrack.enabled=!0,this.processedTrack&&(this.processedTrack.enabled=!0),this.processor&&this._captureFrames()),this._workaroundWebKitBug212780&&(this._workaroundWebKitBug212780Cleanup=this._workaroundWebKitBug212780Cleanup||s(this)),t}detach(e){let t=super.detach(e);return this._attachments.size===0&&(this.mediaStreamTrack.enabled=!1,this.processedTrack&&(this.processedTrack.enabled=!1),this._workaroundWebKitBug212780Cleanup&&=(this._workaroundWebKitBug212780Cleanup(),null)),t}}}function s(e){let{_log:t,kind:n}=e;function r(r){r&&e._attachments.forEach(r=>{let i=e._elShims.get(r);r.paused&&i&&!i.pausedIntentionally()&&(t.info(`Playing inadvertently paused <${n}> element`),t.debug(`Element:`,r),t.debug(`RemoteMediaTrack:`,e),r.play().then(()=>{t.info(`Successfully played inadvertently paused <${n}> element`),t.debug(`Element:`,r),t.debug(`RemoteMediaTrack:`,e)}).catch(i=>
6{t.warn(`Error while playing inadvertently paused <${n}> element:`,{err:i,el:r,remoteMediaTrack:e})}))})}return a.onVisibilityChange(2,r),()=>{a.offVisibilityChange(2,r)}}t.exports=o})),Gt=r(((e,t)=>{var n=Ve(),r=Wt()(n);t.exports=class extends r{constructor(e,t,n,r,i,a,o){super(e,t,n,r,i,a,o)}toString(){return`[RemoteAudioTrack #${this._instanceId}: ${this.sid}]`}_start(){super._start(),this._dummyEl&&=(this._disposeMediaElement?this._disposeMediaElement(this._dummyEl):this._dummyEl.srcObject=null,null)}setPriority(e){return super.setPriority(e)}}})),Kt=r(((e,t)=>{var n=zt();t.exports=class extends n{constructor(e,t){super(e.name,e.sid,t),Object.defineProperties(this,{_signaling:{value:e},_track:{value:null,writable:!0},isSubscribed:{enumerable:!0,get(){return!!this._track}},isTrackEnabled:{enumerable:!0,get(){return e.isEnabled}},kind:{enumerable:!0,value:e.kind},publishPriority:{enumerable:!0,get(){return e.priority}},track:{enumerable:!0,get(){return this._track}}});let{error:n,isEnabled:r,isSwitchedOff:i,priority:a}=e;e.on(`updated`,()=>{if(n!==e.error){n=e.error,this.emit(`subscriptionFailed`,e.error);return}r!==e.isEnabled&&(r=e.isEnabled,this.track&&this.track._setEnabled(e.isEnabled),this.emit(e.isEnabled?`trackEnabled`:`trackDisabled`)),i!==e.isSwitchedOff&&(this._log.debug(`${this.trackSid}: ${i?`OFF`:`ON`} => ${e.isSwitchedOff?`OFF`:`ON`}`),i=e.isSwitchedOff,this.track?(this.track._setSwitchedOff(e.isSwitchedOff),this.emit(i?`trackSwitchedOff`:`trackSwitchedOn`,this.track)):i&&this._log.warn(`Track was not subscribed when switched Off.`)),a!==e.priority&&(a=e.priority,this.emit(`publishPriorityChanged`,a))})}toString(){return`[RemoteTrackPublication #${this._instanceId}: ${this.trackSid}]`}_subscribed(e){!this._track&&e&&(this._track=e,this.emit(`subscribed`,e))}_unsubscribe(){if(this._track){let e=this._track;this._track=null,this.emit(`unsubscribed`,e)}}}})),qt=r(((e,t)=>{var n=Kt();t.exports=class extends n{constructor(e,t){super(e,t)}toString(){return`[RemoteAudioTrackPublication #${this._instanceId}: ${this.trackSid}]`}}})),Jt=r(((e,t)=>{var n=ze(),{typeErrors:r,trackPriority:i}=J();t.exports=class extends n{constructor(e,t,n){super(t.id,`data`,n),Object.defineProperties(this,{_isSwitchedOff:{value:!1,writable:!0},_priority:{value:null,writable:!0},isEnabled:{enumerable:!0,value:!0},isSwitchedOff:{enumerable:!0,get(){return this._isSwitchedOff}},maxPacketLifeTime:{enumerable:!0,value:t.maxPacketLifeTime},maxRetransmits:{enumerable:!0,value:t.maxRetransmits},ordered:{enumerable:!0,value:t.ordered},priority:{enumerable:!0,get(){return this._priority}},reliable:{enumerable:!0,value:t.maxPacketLifeTime===null&&t.maxRetransmits===null},sid:{enumerable:!0,value:e}}),t.on(`message`,e=>{this.emit(`message`,e,this)})}setPriority(e){let t=[null,...Object.values(i)];if(!t.includes(e))throw r.INVALID_VALUE(`priority`,t);return this._priority=e,this}_setEnabled(){}_setSwitchedOff(e){this._isSwitchedOff!==e&&(this._isSwitchedOff=e,this.emit(e?`switchedOff`:`switchedOn`,this))}}})),Yt=r(((e,t)=>{var n=Kt();t.exports=class extends n{constructor(e,t){super(e,t)}toString(){return`[RemoteDataTrackPublication #${this._instanceId}: ${this.trackSid}]`}}})),Xt=r(((e,t)=>{var n=class{constructor(e){Object.defineProperties(this,{_callback:{value:e}})}observe(){}unobserve(){}makeVisible(e){let t=this._makeFakeEntry(e,!0);this._callback([t])}makeInvisible(e){let t=this._makeFakeEntry(e,!1);this._callback([t])}_makeFakeEntry(e,t){return{target:e,isIntersecting:t}}};t.exports={NullIntersectionObserver:class extends n{},NullResizeObserver:class extends n{resize(e){let t=this._makeFakeEntry(e,!0);this._callback([t])}},NullObserver:n}})),Zt=r(((e,t)=>{var n=Wt(),r=et(),i=Ue(),{NullObserver:a}=Xt(),o=wt(),s=n(r),c=50,l=class extends s{constructor(e,t,n,r,i,s,l){l=Object.assign({clientTrackSwitchOffControl:`auto`,contentPreferencesMode:`auto`,enableDocumentVisibilityTurnOff:!0},l),l=Object.assign({IntersectionObserver:typeof IntersectionObserver>`u`||l.clientTrackSwitchOffControl!==`auto`?a:IntersectionObserver,ResizeObserver:typeof ResizeObserver>`u`||l.contentPreferencesMode!==`auto`?a:ResizeObserver},l),super(e,t,n,r,i,s,l),Object.defineProperties(this,{_enableDocumentVisibilityTurnOff:{value:l.enableDocumentVisibilityTurnOff===!0&&l.clientTrackSwitchOffControl===`auto`},_documentVisibilityTurnOffCleanup:{value:null,writable:!0},_clientTrackSwitchOffControl:{value:l.clientTrackSwitchOffControl},_contentPreferencesMode:{value:l.contentPreferencesMode},_invisibleElements:{value:new WeakSet},_elToPipCallbacks:{value:new WeakMap},_elToPipWindows:{value:new WeakMap},_turnOffTimer:{value:new o(()=>{this._setRenderHint({enabled:!1})},c,!1)},_resizeObserver:{value:new l.ResizeObserver(e=>{e.find(e=>!this._invisibleElements.has(e.target))&&f(this)})},_intersectionObserver:{value:new l.IntersectionObserver(e=>{let t=!1;
6e.forEach(e=>{!this._invisibleElements.has(e.target)!==e.isIntersecting&&(e.isIntersecting?(this._log.debug(`intersectionObserver detected: Off => On`),this._invisibleElements.delete(e.target)):(this._log.debug(`intersectionObserver detected: On => Off`),this._invisibleElements.add(e.target)),t=!0)}),t&&(d(this),f(this))},{threshold:.25})}})}_start(e){let t=super._start.call(this,e);return d(this),t}switchOn(){if(this._clientTrackSwitchOffControl!==`manual`)throw Error(`Invalid state. You can call switchOn only when bandwidthProfile.video.clientTrackSwitchOffControl is set to "manual"`);return this._setRenderHint({enabled:!0}),this}switchOff(){if(this._clientTrackSwitchOffControl!==`manual`)throw Error(`Invalid state. You can call switchOff only when bandwidthProfile.video.clientTrackSwitchOffControl is set to "manual"`);return this._setRenderHint({enabled:!1}),this}setContentPreferences(e){if(this._contentPreferencesMode!==`manual`)throw Error(`Invalid state. You can call switchOn only when bandwidthProfile.video.contentPreferencesMode is set to "manual"`);return e.renderDimensions&&this._setRenderHint({renderDimensions:e.renderDimensions}),this}_unObservePip(e){let t=this._elToPipCallbacks.get(e);t&&(e.removeEventListener(`enterpictureinpicture`,t.onEnterPip),e.removeEventListener(`leavepictureinpicture`,t.onLeavePip),this._elToPipCallbacks.delete(e))}_observePip(e){if(!this._elToPipCallbacks.get(e)){let t=t=>this._onEnterPip(t,e),n=t=>this._onLeavePip(t,e);e.addEventListener(`enterpictureinpicture`,t),e.addEventListener(`leavepictureinpicture`,n),this._elToPipCallbacks.set(e,{onEnterPip:t,onLeavePip:n,onResizePip:t=>this._onResizePip(t,e)})}}_onEnterPip(e,t){this._log.debug(`onEnterPip`);let n=e.pictureInPictureWindow;this._elToPipWindows.set(t,n);let{onResizePip:r}=this._elToPipCallbacks.get(t);n.addEventListener(`resize`,r),d(this)}_onLeavePip(e,t){this._log.debug(`onLeavePip`),this._elToPipWindows.delete(t);let{onResizePip:n}=this._elToPipCallbacks.get(t);e.pictureInPictureWindow.removeEventListener(`resize`,n),d(this)}_onResizePip(){f(this)}attach(e){let t=super.attach(e);return this._clientTrackSwitchOffControl===`auto`&&this._invisibleElements.add(t),this._intersectionObserver.observe(t),this._resizeObserver.observe(t),this._enableDocumentVisibilityTurnOff&&(this._documentVisibilityTurnOffCleanup=this._documentVisibilityTurnOffCleanup||p(this)),this._observePip(t),t}detach(e){let t=super.detach(e);return(Array.isArray(t)?t:[t]).forEach(e=>{this._intersectionObserver.unobserve(e),this._resizeObserver.unobserve(e),this._invisibleElements.delete(e),this._unObservePip(e)}),this._attachments.size===0&&(this._documentVisibilityTurnOffCleanup&&=(this._documentVisibilityTurnOffCleanup(),null)),d(this),f(this),t}addProcessor(){return super.addProcessor.apply(this,arguments)}removeProcessor(){return super.removeProcessor.apply(this,arguments)}toString(){return`[RemoteVideoTrack #${this._instanceId}: ${this.sid}]`}setPriority(e){return super.setPriority(e)}};function u(e){if(!(`documentPictureInPicture`in globalThis))return!1;let t=globalThis.documentPictureInPicture.window;if(!t)return!1;let n=new WeakSet(t.document.querySelectorAll(`video`));return e._getAllAttachedElements().some(e=>n.has(e))}function d(e){if(e._clientTrackSwitchOffControl!==`auto`)return;let t=e._getAllAttachedElements().filter(t=>!e._invisibleElements.has(t));(e._getAllAttachedElements().filter(t=>e._elToPipWindows.has(t)).length>0||u(e)||document.visibilityState===`visible`&&t.length>0)===!0?(e._turnOffTimer.clear(),e._setRenderHint({enabled:!0}),r._ensureDocumentPipVideosPlaying(e)):e._turnOffTimer.isSet||e._turnOffTimer.start()}function f(e){if(e._contentPreferencesMode!==`auto`)return;let t=e._getAllAttachedElements().filter(t=>!e._invisibleElements.has(t)),n=e._getAllAttachedElements().map(t=>{let n=e._elToPipWindows.get(t);return n?{clientHeight:n.height,clientWidth:n.width}:{clientHeight:0,clientWidth:0}}),r=t.concat(n);if(r.length>0){let[{clientHeight:t,clientWidth:n}]=r.sort((e,t)=>t.clientHeight+t.clientWidth-e.clientHeight-e.clientWidth-1),i={height:t,width:n};e._setRenderHint({renderDimensions:i})}}function p(e){function t(){d(e)}return i.onVisibilityChange(1,t),()=>{i.offVisibilityChange(1,t)}}t.exports=l})),Qt=r(((e,t)=>{var n=Kt();t.exports=class extends n{constructor(e,t){super(e,t)}toString(){return`[RemoteVideoTrackPublication #${this._instanceId}: ${this.trackSid}]`}}})),$t=r(((e,t)=>
6{var n=Re(),r=Gt(),i=qt(),a=Jt(),o=Yt(),s=Zt(),c=Qt(),l=Z(),u=0,d=class extends n{constructor(e,t){super(),t=Object.assign({RemoteAudioTrack:r,RemoteAudioTrackPublication:i,RemoteDataTrack:a,RemoteDataTrackPublication:o,RemoteVideoTrack:s,RemoteVideoTrackPublication:c,tracks:[]},t);let n=f(t.tracks),l=t.log.createLog(`default`,this),d=new Map(n.audioTracks),h=new Map(n.dataTracks),g=new Map(n.tracks),_=new Map(n.videoTracks);Object.defineProperties(this,{_RemoteAudioTrack:{value:t.RemoteAudioTrack},_RemoteAudioTrackPublication:{value:t.RemoteAudioTrackPublication},_RemoteDataTrack:{value:t.RemoteDataTrack},_RemoteDataTrackPublication:{value:t.RemoteDataTrackPublication},_RemoteVideoTrack:{value:t.RemoteVideoTrack},_RemoteVideoTrackPublication:{value:t.RemoteVideoTrackPublication},_audioTracks:{value:d},_dataTracks:{value:h},_instanceId:{value:++u},_clientTrackSwitchOffControl:{value:t.clientTrackSwitchOffControl},_contentPreferencesMode:{value:t.contentPreferencesMode},_log:{value:l},_signaling:{value:e},_tracks:{value:g},_trackEventReemitters:{value:new Map},_trackPublicationEventReemitters:{value:new Map},_trackSignalingUpdatedEventCallbacks:{value:new Map},_videoTracks:{value:_},audioTracks:{enumerable:!0,value:new Map},dataTracks:{enumerable:!0,value:new Map},identity:{enumerable:!0,get(){return e.identity}},networkQualityLevel:{enumerable:!0,get(){return e.networkQualityLevel}},networkQualityStats:{enumerable:!0,get(){return e.networkQualityStats}},sid:{enumerable:!0,get(){return e.sid}},state:{enumerable:!0,get(){return e.state}},tracks:{enumerable:!0,value:new Map},videoTracks:{enumerable:!0,value:new Map},_MediaStream:{value:t.MediaStream},_mapMediaElement:{value:t.mapMediaElement},_disposeMediaElement:{value:t.disposeMediaElement}}),this._tracks.forEach(m.bind(null,this)),e.on(`networkQualityLevelChanged`,()=>
6this.emit(`networkQualityLevelChanged`,this.networkQualityLevel,this.networkQualityStats&&(this.networkQualityStats.audio||this.networkQualityStats.video)?this.networkQualityStats:null)),p(this,e),l.info(`Created a new Participant${this.identity?`: ${this.identity}`:``}`)}_getTrackEvents(){return[[`dimensionsChanged`,`trackDimensionsChanged`],[`message`,`trackMessage`],[`started`,`trackStarted`]]}_getTrackPublicationEvents(){return[]}toString(){return`[Participant #${this._instanceId}: ${this.sid}]`}_addTrack(e,t){let n=this._log;return this._tracks.has(t)?null:(this._tracks.set(t,e),{audio:this._audioTracks,video:this._videoTracks,data:this._dataTracks}[e.kind].set(t,e),m(this,e,t),n.info(`Added a new ${l.trackClass(e)}:`,t),n.debug(`${l.trackClass(e)}:`,e),e)}_addTrackPublication(e){let t=this._log;return this.tracks.has(e.trackSid)?null:(this.tracks.set(e.trackSid,e),{audio:this.audioTracks,data:this.dataTracks,video:this.videoTracks}[e.kind].set(e.trackSid,e),h(this,e),t.info(`Added a new ${l.trackPublicationClass(e)}:`,e.trackSid),t.debug(`${l.trackPublicationClass(e)}:`,e),e)}_handleTrackSignalingEvents(){let{_log:e,_clientTrackSwitchOffControl:t,_contentPreferencesMode:n,_MediaStream:r,_mapMediaElement:i,_disposeMediaElement:a}=this,o=this;if(this.state===`disconnected`)return;let s=this._RemoteAudioTrack,c=this._RemoteAudioTrackPublication,l=this._RemoteVideoTrack,u=this._RemoteVideoTrackPublication,d=this._RemoteDataTrack,f=this._RemoteDataTrackPublication,p=this._signaling;function m(t){let n={audio:c,data:f,video:u}[t.kind],r=new n(t,{log:e});o._addTrackPublication(r);let i=t.isSubscribed;i&&g(t),o._trackSignalingUpdatedEventCallbacks.set(t.sid,()=>{if(i!==t.isSubscribed){if(i=t.isSubscribed,i){g(t);return}_(t)}}),t.on(`updated`,o._trackSignalingUpdatedEventCallbacks.get(t.sid))}function h(e){e.isSubscribed&&e.setTrackTransceiver(null);let t=o._trackSignalingUpdatedEventCallbacks.get(e.sid);t&&(e.removeListener(`updated`,t),o._trackSignalingUpdatedEventCallbacks.delete(e.sid));let n=o.tracks.get(e.sid);n&&o._removeTrackPublication(n)}function g(c){let{isEnabled:u,name:f,kind:m,sid:h,trackTransceiver:g,isSwitchedOff:_}=c,v={audio:s,video:l,data:d}[m],y=o.tracks.get(h);if(!v||m!==g.kind)return;let b={log:e,name:f,clientTrackSwitchOffControl:t,contentPreferencesMode:n,mapMediaElement:i,disposeMediaElement:a};r&&(b.MediaStream=r);let x=m===`data`?new v(h,g,b):new v(h,g,u,_,e=>p.updateSubscriberTrackPriority(h,e),e=>{c.isSubscribed&&p.updateTrackRenderHint(h,e)},b);o._addTrack(x,y,g.id)}function _(e){let[t,n]=Array.from(o._tracks.entries()).find(([,t])=>t.sid===e.sid),r=o.tracks.get(e.sid);n&&o._removeTrack(n,r,t)}p.on(`trackAdded`,m),p.on(`trackRemoved`,h),p.tracks.forEach(m),p.on(`stateChanged`,function t(n){n===`disconnected`?(e.debug(`Removing event listeners`),p.removeListener(`stateChanged`,t),p.removeListener(`trackAdded`,m),p.removeListener(`trackRemoved`,h)):n===`connected`&&(e.info(`reconnected`),setTimeout(()=>o.emit(`reconnected`),0))})}_removeTrack(e,t){if(!this._tracks.has(t))return null;this._tracks.delete(t),{audio:this._audioTracks,video:this._videoTracks,data:this._dataTracks}[e.kind].delete(t),(this._trackEventReemitters.get(t)||new Map).forEach((t,n)=>{e.removeListener(n,t)});let n=this._log;return n.info(`Removed a ${l.trackClass(e)}:`,t),n.debug(`${l.trackClass(e)}:`,e),e}_removeTrackPublication(e){if(e=this.tracks.get(e.trackSid),!e)return null;this.tracks.delete(e.trackSid),{audio:this.audioTracks,data:this.dataTracks,video:this.videoTracks}[e.kind].delete(e.trackSid),(this._trackPublicationEventReemitters.get(e.trackSid)||new Map).forEach((t,n)=>{e.removeListener(n,t)});let t=this._log;return t.info(`Removed a ${l.trackPublicationClass(e)}:`,e.trackSid),t.debug(`${l.trackPublicationClass(e)}:`,e),e}toJSON(){return l.valueToJSON(this)}};function f(e){let t=e.map(e=>[e.id,e]),n=t.filter(e=>e[1].kind===`audio`),r=t.filter(e=>e[1].kind===`video`);return{audioTracks:n,dataTracks:t.filter(e=>e[1].kind===`data`),tracks:t,videoTracks:r}}function p(e,t){let n=e._log;e.state!==`disconnected`&&t.on(`stateChanged`,function r(i){n.debug(`Transitioned to state:`,i),e.emit(i,e),i===`disconnected`&&(n.debug(`Removing Track event reemitters`),t.removeListener(`stateChanged`,r),e._tracks.forEach(t=>{let n=e._trackEventReemitters.get(t.id);
6t&&n&&n.forEach((e,n)=>{t.removeListener(n,e)})}),t.tracks.forEach(t=>{let n=e._tracks.get(t.id),r=e._trackEventReemitters.get(t.id);n&&r&&r.forEach((e,t)=>{n.removeListener(t,e)})}),e._trackEventReemitters.clear(),e.tracks.forEach(t=>{e._trackPublicationEventReemitters.get(t.trackSid).forEach((e,n)=>{t.removeListener(n,e)})}),e._trackPublicationEventReemitters.clear())})}function m(e,t,n){let r=new Map;e.state!==`disconnected`&&(e._getTrackEvents().forEach(n=>{let i=n[0],a=n[1];r.set(i,function(){let t=[a].concat([].slice.call(arguments));return e.emit(...t)}),t.on(i,r.get(i))}),e._trackEventReemitters.set(n,r))}function h(e,t){let n=new Map;e.state!==`disconnected`&&(e._getTrackPublicationEvents().forEach(([r,i])=>{n.set(r,(...n)=>{e.emit(i,...n,t)}),t.on(r,n.get(r))}),e._trackPublicationEventReemitters.set(t.trackSid,n))}t.exports=d})),en=r(((e,t)=>{var{asLocalTrack:n,asLocalTrackPublication:r,trackClass:i}=Z(),{typeErrors:a,trackPriority:o}=J(),{validateLocalTrack:s}=Rt(),{LocalAudioTrack:c,LocalDataTrack:l,LocalVideoTrack:u}=st(),d=Vt(),f=Ht(),p=Ut(),m=$t(),h=class extends m{constructor(e,t,n){n=Object.assign({LocalAudioTrack:c,LocalVideoTrack:u,LocalDataTrack:l,MediaStreamTrack,LocalAudioTrackPublication:d,LocalVideoTrackPublication:p,LocalDataTrackPublication:f,shouldStopLocalTracks:!1,tracks:t},n);let r=n.shouldStopLocalTracks?new Set(t.filter(e=>e.kind!==`data`)):new Set;super(e,n),Object.defineProperties(this,{_eventObserver:{value:n.eventObserver},_LocalAudioTrack:{value:n.LocalAudioTrack},_LocalDataTrack:{value:n.LocalDataTrack},_LocalVideoTrack:{value:n.LocalVideoTrack},_MediaStreamTrack:{value:n.MediaStreamTrack},_LocalAudioTrackPublication:{value:n.LocalAudioTrackPublication},_LocalDataTrackPublication:{value:n.LocalDataTrackPublication},_LocalVideoTrackPublication:{value:n.LocalVideoTrackPublication},_tracksToStop:{value:r},signalingRegion:{enumerable:!0,get(){return e.signalingRegion}}}),this._handleTrackSignalingEvents()}_addTrack(e,t,n){let r=super._addTrack(e,t);return r&&this.state!==`disconnected`&&this._addLocalTrack(e,n),r}_addLocalTrack(e,t){let n=e.noiseCancellation?.vendor;this._signaling.addTrack(e._trackSender,e.name,t,n),this._log.info(`Added a new ${i(e,!0)}:`,e.id),this._log.debug(`${i(e,!0)}:`,e)}_removeTrack(e,t){let n=super._removeTrack(e,t);return n&&this.state!==`disconnected`&&(this._signaling.removeTrack(e._trackSender),this._log.info(`Removed a ${i(e,!0)}:`,e.id),this._log.debug(`${i(e,!0)}:`,e)),n}_getTrackEvents(){return super._getTrackEvents.call(this).concat([[`disabled`,`trackDisabled`],[`enabled`,`trackEnabled`],[`stopped`,`trackStopped`]])}toString(){return`[LocalParticipant #${this._instanceId}${this.sid?`: ${this.sid}`:``}]`}_handleTrackSignalingEvents(){let e=this._log;if(this.state===`disconnected`)return;let t=t=>{let n=this._signaling.getPublication(t._trackSender);n&&(n.disable(),e.debug(`Disabled the ${i(t,!0)}:`,t.id))},n=t=>{let n=this._signaling.getPublication(t._trackSender);n&&(n.enable(),e.debug(`Enabled the ${i(t,!0)}:`,t.id))},r=e=>{let t=this._signaling.getPublication(e._trackSender);return t&&t.stop(),t},a=i=>{e.debug(`Transitioned to state:`,i),i===`disconnected`?(e.debug(`Removing LocalTrack event listeners`),this._signaling.removeListener(`stateChanged`,a),this.removeListener(`trackDisabled`,t),this.removeListener(`trackEnabled`,n),this.removeListener(`trackStopped`,r),this._tracks.forEach(e=>{let t=r(e);t&&e._trackSender.removeClone(t._trackTransceiver)}),e.info(`LocalParticipant disconnected. Stopping ${this._tracksToStop.size} automatically-acquired LocalTracks`),this._tracksToStop.forEach(e=>{e.stop()})):i===`connected`&&(e.info(`reconnected`),setTimeout(()=>
6this.emit(`reconnected`),0))};this.on(`trackDisabled`,t),this.on(`trackEnabled`,n),this.on(`trackStopped`,r),this._signaling.on(`stateChanged`,a),this._tracks.forEach(t=>{this._addLocalTrack(t,o.PRIORITY_STANDARD),this._getOrCreateLocalTrackPublication(t).catch(n=>{e.warn(`Failed to get or create LocalTrackPublication for ${t}:`,n)})})}_getOrCreateLocalTrackPublication(e){let t=g(this.tracks,e);if(t)return Promise.resolve(t);let n=this._log,a=this,o=this._signaling.getPublication(e._trackSender);return o?new Promise((s,c)=>{function l(){let u=o.error;if(u){o.removeListener(`updated`,l),n.warn(`Failed to publish the ${i(e,!0)}: ${u.message}`),a._removeTrack(e,e.id),setTimeout(()=>{a.emit(`trackPublicationFailed`,u,e)}),c(u);return}if(!a._tracks.has(e.id)){o.removeListener(`updated`,l),c(Error(`The ${e} was unpublished`));return}if(!o.sid)return;o.removeListener(`updated`,l);let d={log:n,LocalAudioTrackPublication:a._LocalAudioTrackPublication,LocalDataTrackPublication:a._LocalDataTrackPublication,LocalVideoTrackPublication:a._LocalVideoTrackPublication};t=g(a.tracks,e);let f=e=>a.emit(`trackWarning`,e,t),p=()=>a.emit(`trackWarningsCleared`,t);t||(t=r(e,o,e=>{t.removeListener(`trackWarning`,f),t.removeListener(`trackWarningsCleared`,p),a.unpublishTrack(e.track)},d),a._addTrackPublication(t)),t.on(`warning`,f),t.on(`warningsCleared`,p);let{state:m}=a._signaling;(m===`connected`||m===`connecting`)&&(e._processorEventObserver&&e._processorEventObserver.on(`event`,e=>{a._eventObserver.emit(`event`,{name:e.name,payload:e.data,group:`video-processor`,level:`info`})}),e.processedTrack&&(e._captureFrames(),e._setSenderMediaStreamTrack(!0))),m===`connected`&&setTimeout(()=>{a.emit(`trackPublished`,t)}),s(t)}o.on(`updated`,l)}):Promise.reject(Error(`Unexpected error: The ${e} cannot be published`))}publishTrack(e,t){let r=g(this.tracks,e);if(r)return Promise.resolve(r);t=Object.assign({log:this._log,priority:o.PRIORITY_STANDARD,LocalAudioTrack:this._LocalAudioTrack,LocalDataTrack:this._LocalDataTrack,LocalVideoTrack:this._LocalVideoTrack,MediaStreamTrack:this._MediaStreamTrack},t);let i;try{i=n(e,t)}catch(e){return Promise.reject(e)}let s=i.noiseCancellation,c=this._signaling.audioProcessors;s&&!c.includes(s.vendor)&&(this._log.warn(`${s.vendor} is not supported in this room. disabling it permanently`),s.disablePermanently());let l=Object.values(o);if(!l.includes(t.priority))return Promise.reject(a.INVALID_VALUE(`LocalTrackPublishOptions.priority`,l));let u=this._addTrack(i,i.id,t.priority)||this._tracks.get(i.id);return this._getOrCreateLocalTrackPublication(u)}publishTracks(e){if(!Array.isArray(e))throw a.INVALID_TYPE(`tracks`,`Array of LocalAudioTrack, LocalVideoTrack, LocalDataTrack, or MediaStreamTrack`);return Promise.all(e.map(this.publishTrack,this))}setBandwidthProfile(){this._log.warn(`setBandwidthProfile is not implemented yet and may be available in future versions of twilio-video.js`)}setNetworkQualityConfiguration(e){if(typeof e!=`object`||!e)throw a.INVALID_TYPE(`networkQualityConfiguration`,`NetworkQualityConfiguration`);return[`local`,`remote`].forEach(t=>{if(t in e&&(typeof e[t]!=`number`||isNaN(e[t])))throw a.INVALID_TYPE(`networkQualityConfiguration.${t}`,`number`)}),this._signaling.setNetworkQualityConfiguration(e),this}setParameters(e){if(e!==void 0&&typeof e!=`object`)throw a.INVALID_TYPE(`encodingParameters`,`EncodingParameters, null or undefined`);if(e){if(this._signaling.getParameters().adaptiveSimulcast&&e.maxVideoBitrate)throw a.INVALID_TYPE(`encodingParameters`,`encodingParameters.maxVideoBitrate is not compatible with "preferredVideoCodecs=auto"`);[`maxAudioBitrate`,`maxVideoBitrate`].forEach(t=>{if(e[t]!==void 0&&typeof e[t]!=`number`&&e[t]!==null)throw a.INVALID_TYPE(`encodingParameters.${t}`,`number, null or undefined`)})}else e===null&&(e={maxAudioBitrate:null,maxVideoBitrate:null});return this._signaling.setParameters(e),this}unpublishTrack(e){s(e,{LocalAudioTrack:this._LocalAudioTrack,LocalDataTrack:this._LocalDataTrack,LocalVideoTrack:this._LocalVideoTrack,MediaStreamTrack:this._MediaStreamTrack});let t=this._tracks.get(e.id);if(!t||(this._signaling.getPublication(t._trackSender).publishFailed(Error(`The ${t} was unpublished`)),t=this._removeTrack(t,t.id),!t))return null;let n=g(this.tracks,t);return n&&this._removeTrackPublication(n),n}unpublishTracks(e){if(!Array.isArray(e))throw a.INVALID_TYPE(`tracks`,`Array of LocalAudioTrack, LocalVideoTrack, LocalDataTrack, or MediaStreamTrack`);return e.reduce((e,t)=>
6{let n=this.unpublishTrack(t);return n?e.concat(n):e},[])}};function g(e,t){return Array.from(e.values()).find(e=>e.track===t||e.track.mediaStreamTrack===t)||null}t.exports=h})),tn=r(((e,t)=>{t.exports=class{constructor(){Object.defineProperties(this,{_connected:{writable:!0,value:!0}})}connect(){}disconnect(){return this._connected?(this._connected=!1,!0):!1}publish(){return this._connected}}})),nn=r(((e,t)=>{var{EventEmitter:n}=Q(),{DEFAULT_NQ_LEVEL_LOCAL:r,DEFAULT_NQ_LEVEL_REMOTE:i,MAX_NQ_LEVEL:a}=J(),{inRange:o}=Z();t.exports=class extends n{constructor(e){super(),e=Object.assign({local:r,remote:i},e),Object.defineProperties(this,{local:{value:o(e.local,r,a)?e.local:r,writable:!0},remote:{value:o(e.remote,i,a)?e.remote:i,writable:!0}})}update(e){e=Object.assign({local:this.local,remote:this.remote},e),[[`local`,r,3],[`remote`,i,3]].forEach(([t,n,r])=>{this[t]=typeof e[t]==`number`&&o(e[t],n,r)?e[t]:n})}}})),rn=r(((e,t)=>{var n=$t();t.exports=class extends n{constructor(e,t){super(e,t),this._handleTrackSignalingEvents(),this.once(`disconnected`,this._unsubscribeTracks.bind(this))}toString(){return`[RemoteParticipant #${this._instanceId}${this.sid?`: ${this.sid}`:``}]`}_addTrack(e,t,n){return super._addTrack(e,n)?(t._subscribed(e),this.emit(`trackSubscribed`,e,t),e):null}_addTrackPublication(e){let t=super._addTrackPublication(e);return t?(this.emit(`trackPublished`,t),t):null}_getTrackPublicationEvents(){return[...super._getTrackPublicationEvents(),[`subscriptionFailed`,`trackSubscriptionFailed`],[`trackDisabled`,`trackDisabled`],[`trackEnabled`,`trackEnabled`],[`publishPriorityChanged`,`trackPublishPriorityChanged`],[`trackSwitchedOff`,`trackSwitchedOff`],[`trackSwitchedOn`,`trackSwitchedOn`]]}_unsubscribeTracks(){this.tracks.forEach(e=>{if(e.isSubscribed){let t=e.track;e._unsubscribe(),this.emit(`trackUnsubscribed`,t,e)}})}_removeTrack(e,t,n){let r=this._tracks.get(n);return r?(super._removeTrack(r,n),t._unsubscribe(),this.emit(`trackUnsubscribed`,r,t),r):null}_removeTrackPublication(e){this._signaling.clearTrackHint(e.trackSid);let t=super._removeTrackPublication(e);return t?(this.emit(`trackUnpublished`,t),t):null}}})),an=r(((e,t)=>{t.exports=class{constructor(e,t){if(typeof e!=`string`)throw Error(`Track id must be a string`);Object.defineProperties(this,{trackId:{value:e,enumerable:!0},trackSid:{value:t.trackSid,enumerable:!0},timestamp:{value:t.timestamp,enumerable:!0},ssrc:{value:t.ssrc,enumerable:!0},packetsLost:{value:typeof t.packetsLost==`number`?t.packetsLost:null,enumerable:!0},codec:{value:typeof t.codecName==`string`?t.codecName:null,enumerable:!0}})}}})),on=r(((e,t)=>{var n=an();t.exports=class extends n{constructor(e,t,n){super(e,t),Object.defineProperties(this,{bytesSent:{value:typeof t.bytesSent==`number`?t.bytesSent:n?0:null,enumerable:!0},packetsSent:{value:typeof t.packetsSent==`number`?t.packetsSent:n?0:null,enumerable:!0},roundTripTime:{value:typeof t.roundTripTime==`number`?t.roundTripTime:n?0:null,enumerable:!0}})}}})),sn=r(((e,t)=>{var n=on();t.exports=class extends n{constructor(e,t,n){super(e,t,n),Object.defineProperties(this,{audioLevel:{value:typeof t.audioInputLevel==`number`?t.audioInputLevel:null,enumerable:!0},jitter:{value:typeof t.jitter==`number`?t.jitter:null,enumerable:!0}})}}})),cn=r(((e,t)=>{var n=on();t.exports=class extends n{constructor(e,t,n){super(e,t,n);let r=null;typeof t.frameWidthInput==`number`&&typeof t.frameHeightInput==`number`&&(r={},Object.defineProperties(r,{width:{value:t.frameWidthInput,enumerable:!0},height:{value:t.frameHeightInput,enumerable:!0}}));let i=null;typeof t.frameWidthSent==`number`&&typeof t.frameHeightSent==`number`&&(i={},Object.defineProperties(i,{width:{value:t.frameWidthSent,enumerable:!0},height:{value:t.frameHeightSent,enumerable:!0}})),Object.defineProperties(this,{captureDimensions:{value:r,enumerable:!0},dimensions:{value:i,enumerable:!0},captureFrameRate:{value:typeof t.frameRateInput==`number`?t.frameRateInput:null,enumerable:!0},frameRate:{value:typeof t.frameRateSent==`number`?t.frameRateSent:null,enumerable:!0},qualityLimitationReason:{value:[`none`,`bandwidth`,`cpu`,`other`].find(e=>e===t.qualityLimitationReason)||null,enumerable:!0}})}}})),ln=r(((e,t)=>{var n=an();t.exports=class extends n{constructor(e,t){super(e,t),Object.defineProperties(this,{bytesReceived:{value:typeof t.bytesReceived==`number`?t.bytesReceived:null,enumerable:!0},packetsReceived:{value:typeof t.packetsReceived==`number`?t.packetsReceived:null,enumerable:!0},jitter:{value:typeof t.jitter==`number`?t.jitter:null,enumerable:!0}})}}})),un=r(((e,t)=>{var n=ln();t.exports=class extends n{constructor(e,t){super(e,t),Object.defineProperties(this,{audioLevel:{value:typeof t.audioOutputLevel==`number`?t.audioOutputLevel:null,enumerable:!0}})}}})),dn=r(((e,t)=>{var n=ln();t.exports=class extends n{constructor(e,t){super(e,t);let n=null;typeof t.frameWidthReceived==`number`&&typeof t.frameHeightReceived==`number`&&(n={},Object.defineProperties(n,{width:{value:t.frameWidthReceived,enumerable:!0},height:{value:t.frameHeightReceived,enumerable:!0}})),Object.defineProperties(this,{dimensions:{value:n,enumerable:!0},frameRate:{value:typeof t.frameRateReceived==`number`?t.frameRateReceived:null,enumerable:!0},freezeCount:{value:typeof t.freezeCount==`number`?t.freezeCount:null,enumerable:!0}})}}})),fn=r(((e,t)=>{var n=sn(),r=cn(),i=un(),a=dn();t.exports=class{constructor(e,t,o){if(typeof e!=`string`)throw Error(`RTCPeerConnection id must be a string`);Object.defineProperties(this,{peerConnectionId:{value:e,enumerable:!0},localAudioTrackStats:{value:t.localAudioTrackStats.map(e=>new n(e.trackId,e,o)),enumerable:!0},localVideoTrackStats:{value:t.localVideoTrackStats.map(e=>new r(e.trackId,e,o)),enumerable:!0},remoteAudioTrackStats:{value:t.remoteAudioTrackStats.map(e=>new i(e.trackId,e)),enumerable:!0},remoteVideoTrackStats:{value:t.remoteVideoTrackStats.map(e=>new a(e.trackId,e)),enumerable:!0}})}}})),pn=r(((e,t)=>{var n=Ue(),r=_t();t.exports=class{constructor(e){if(!e)throw Error(`ApplicationMonitor requires a log instance`);this._log=e,this._visibilityChangeHandler=null,this._boundHandleBeforeUnload=this._handleBeforeUnload.bind(this),this._setupVisibilityMonitoring(),this._setupBeforeUnloadMonitoring()}_setupVisibilityMonitoring(){if(typeof window>`u`||typeof document>`u`){this._log.debug(`Not in browser environment, skipping setup of ApplicationMonitor`);return}this._visibilityChangeHandler=e=>this._handleVisibilityChange(e);try{n.onVisibilityChange(1,this._visibilityChangeHandler),this._log.debug(`ApplicationMonitor visibility monitoring initialized`)}catch(e){this._log.error(`Error initializing ApplicationMonitor visibility monitoring:`,e)}}_setupBeforeUnloadMonitoring(){try{window.addEventListener(`beforeunload`,this._boundHandleBeforeUnload),this._log.debug(`ApplicationMonitor beforeunload monitoring initialized`)}catch(e){this._log.error(`Error initializing ApplicationMonitor beforeunload monitoring:`,e)}}cleanup(){this._log.debug(`Cleaning up application event monitors`),this._visibilityChangeHandler&&=(n.offVisibilityChange(1,this._visibilityChangeHandler),null),typeof window<`u`&&this._boundHandleBeforeUnload&&window.removeEventListener(`beforeunload`,this._boundHandleBeforeUnload)}_handleVisibilityChange(e){e?r.application.resumed():r.application.backgrounded()}_handleBeforeUnload(){r.application.terminated()}}})),mn=r(((e,t)=>{var{boolToString:n}=Z(),r=_t();t.exports=class{constructor(e){if(!e)throw Error(`NetworkMonitor requires a log instance`);this._log=e,this._networkInformationHandler=null,this._setupNetworkInformationAPI()}_setupNetworkInformationAPI(){if(globalThis.navigator===void 0||!globalThis.navigator.connection){this._log.debug(`Network Information API not supported`);return}let e=()=>{let e=navigator.connection;r.network.informationChanged({downlink:e.downlink,downlinkMax:e.downlinkMax,effectiveType:e.effectiveType,rtt:e.rtt,saveData:typeof e.saveData==`boolean`?n(e.saveData):void 0,type:e.type})};try{let t=navigator.connection;[`change`,`typechange`].forEach(n=>{t.addEventListener(n,e)}),this._networkInformationHandler={stop:()=>{[`change`,`typechange`].forEach(n=>{t.removeEventListener(n,e)})}},this._log.debug(`Network Information API monitoring initialized`)}catch(e){this._log.error(`Error initializing Network Information API monitoring:`,e)}}cleanup(){this._log.debug(`Cleaning up network monitoring`),this._networkInformationHandler&&=(this._networkInformationHandler.stop(),null)}}})),hn=r(((t,n)=>{var r=(V(),e(i));function a(){return typeof globalThis<`u`&&typeof globalThis.PressureObserver==`function`?globalThis.PressureObserver:null}n.exports=new class{constructor(){this._lastCpuPressure=null,this._cpuPressureObserver=null,this._sampleInterval=2e3,this._cpuPressureChangeListeners=[]}watchCpuPressure(e){return r.__awaiter(this,void 0,void 0,function*(){if(typeof e!=`function`)throw Error(`The CPU pressure change callback must be a function`);let t=a();if(!t)throw Error(`PressureObserver is not supported in this environment`);this._cpuPressureChangeListeners.push(e),this._cpuPressureObserver||(this._cpuPressureObserver=new t(e=>this._handleCpuPressureRecords(e)),yield this._cpuPressureObserver.observe(`cpu`,{sampleInterval:this._sampleInterval}))})}isSupported(){return!!a()}unwatchCpuPressure(e){this._cpuPressureChangeListeners=this._cpuPressureChangeListeners.filter(t=>t!==e),this._cpuPressureChangeListeners.length===0&&this.cleanup()}_handleCpuPressureRecords(e){if(!Array.isArray(e)||e.length===0)return;let t=e[e.length-1];
6t&&t.state!==this._lastCpuPressure&&(this._lastCpuPressure=t.state,this._cpuPressureChangeListeners.forEach(e=>e(t)))}cleanup(){this._cpuPressureObserver&&=(this._cpuPressureObserver.disconnect(),null),this._cpuPressureChangeListeners=[],this._lastCpuPressure=null}}})),gn=r(((e,t)=>{var n=hn(),r=_t();t.exports=class{constructor(e){if(!e)throw Error(`ResourceMonitor requires a log instance`);this._log=e,this._cpuPressureHandler=null,this._setupCPUMonitoring()}_setupCPUMonitoring(){if(!n.isSupported()){this._log.debug(`CPU pressure monitoring not supported`);return}this._cpuPressureHandler=e=>{this._log.debug(`CPU pressure changed:`,e),r.system.cpuPressureChanged(e.state)},n.watchCpuPressure(this._cpuPressureHandler).then(()=>{this._log.debug(`CPU pressure monitoring initialized`)}).catch(e=>{this._log.error(`Error initializing CPU pressure monitoring:`,e)})}cleanup(){this._log.debug(`Cleaning up resource monitors`),this._cpuPressureHandler&&=(n.unwatchCpuPressure(this._cpuPressureHandler),null)}}})),_n=r(((e,t)=>{var n=pn(),r=mn(),i=gn();t.exports=class{constructor(e){if(!e)throw Error(`MonitorRegistry requires a log instance`);this._log=e,this._monitors=[new n(e),new r(e),new i(e)]}cleanup(){this._monitors.forEach(e=>{try{e.cleanup()}catch(e){this._log.warn(`Failed to cleanup monitor:`,e)}})}}})),vn=r(((e,t)=>{var n=Re(),r=rn(),i=fn(),a=_n(),o=_t(),{flatMap:s,valueToJSON:c}=Z(),l=0,u=class extends n{constructor(e,t,n){super();let r=n.log.createLog(`default`,this),i=new Map;Object.defineProperties(this,{_log:{value:r},_clientTrackSwitchOffControl:{value:n.clientTrackSwitchOffControl||`disabled`},_contentPreferencesMode:{value:n.contentPreferencesMode||`disabled`},_instanceId:{value:++l},_options:{value:n},_participants:{value:i},_signaling:{value:t},_insightsMonitors:{value:n.eventObserver&&n.insights?new a(r):null},dominantSpeaker:{enumerable:!0,get(){return this.participants.get(t.dominantSpeakerSid)||null}},isRecording:{enumerable:!0,get(){return t.recording.isEnabled||!1}},localParticipant:{enumerable:!0,value:e},name:{enumerable:!0,value:t.name},participants:{enumerable:!0,value:i},sid:{enumerable:!0,value:t.sid},state:{enumerable:!0,get(){return t.state}},mediaRegion:{enumerable:!0,value:t.mediaRegion}}),m(this,e),h(this,t.recording),g(this,t),d(this),r.info(`Created a new Room:`,this.name),r.debug(`Initial RemoteParticipants:`,Array.from(this._participants.values()))}toString(){return this._instanceId?`[Room #${this._instanceId}: ${this.sid}]`:`[Room (uninitialized)]`}disconnect(){return this._log.info(`Disconnecting`),this._signaling.disconnect(),this}getStats(){return this._signaling.getStats().then(e=>Array.from(e).map(([e,t])=>new i(e,Object.assign({},t,{localAudioTrackStats:f(this,t.localAudioTrackStats),localVideoTrackStats:f(this,t.localVideoTrackStats)}))))}refreshInactiveMedia(){let{tracks:e}=this.localParticipant,t=Array.from(e.values()).filter(({track:{kind:e}})=>e!==`data`).map(({track:e})=>e),n=s(this.participants,e=>Array.from(e.tracks.values())).filter(({track:e})=>e&&e.kind!==`data`).map(({track:e})=>e),r=t.concat(n),i=new Event(`unmute`);t.forEach(({isMuted:e,mediaStreamTrack:t})=>{e&&t.dispatchEvent(i)});let a=new Event(`pause`);return r.forEach(({_attachments:e,_elShims:t})=>e.forEach(e=>{let n=t.get(e);e.paused&&n&&!n.pausedIntentionally()&&e.dispatchEvent(a)}
6)),this}toJSON(){return c(this)}};function d(e){let t=e.localParticipant._signaling.audioProcessors;e.localParticipant.audioTracks.forEach(({track:n})=>{let r=n.noiseCancellation;r&&!t.includes(r.vendor)&&(e._log.warn(`${r.vendor} is not supported in this room. disabling it permanently`),r.disablePermanently())})}function f(e,t){let n=e.localParticipant._signaling;return t.reduce((e,t)=>{let r=n.tracks.get(t.trackId),i=n.getSender(r);return i?[Object.assign({},t,{trackId:i.id})].concat(e):e},[])}function p(e,t){let{_log:n,_clientTrackSwitchOffControl:i,_contentPreferencesMode:a,_options:{MediaStream:o,mapMediaElement:s,disposeMediaElement:c}}=e,l=new r(t,{log:n,clientTrackSwitchOffControl:i,contentPreferencesMode:a,MediaStream:o,mapMediaElement:s,disposeMediaElement:c});n.info(`A new RemoteParticipant connected:`,l),e._participants.set(l.sid,l),e.emit(`participantConnected`,l);let u=[[`reconnected`,`participantReconnected`],[`reconnecting`,`participantReconnecting`],`trackDimensionsChanged`,`trackDisabled`,`trackEnabled`,`trackMessage`,`trackPublished`,`trackPublishPriorityChanged`,`trackStarted`,`trackSubscribed`,`trackSubscriptionFailed`,`trackSwitchedOff`,`trackSwitchedOn`,`trackUnpublished`,`trackUnsubscribed`].map(t=>{let[n,r]=Array.isArray(t)?t:[t,t];function i(){let t=[].slice.call(arguments);t.unshift(r),t.push(l),e.emit(...t)}return l.on(n,i),[n,i]});l.once(`disconnected`,function(){let t=e.dominantSpeaker;n.info(`RemoteParticipant disconnected:`,l),e._participants.delete(l.sid),u.forEach(e=>{l.removeListener(e[0],e[1])}),e.emit(`participantDisconnected`,l),l===t&&e.emit(`dominantSpeakerChanged`,e.dominantSpeaker)})}function m(e,t){let n=[`trackWarning`,`trackWarningsCleared`].map(n=>({eventName:n,handler:(...r)=>e.emit(n,...r,t)}));n.forEach(({eventName:e,handler:n})=>t.on(e,n)),e.once(`disconnected`,()=>n.forEach(({eventName:e,handler:n})=>t.removeListener(e,n)))}function h(e,t){t.on(`updated`,function(){let n=t.isEnabled;e._log.info(`Recording ${n?`started`:`stopped`}`),e.emit(`recording${n?`Started`:`Stopped`}`)})}function g(e,t){let n=e._log;n.debug(`Creating a new RemoteParticipant for each ParticipantSignaling in the RoomSignaling`),t.participants.forEac
6h(p.bind(null,e)),n.debug(`Setting up RemoteParticipant creation for all subsequent ParticipantSignalings that connect to the RoomSignaling`),t.on(`participantConnected`,p.bind(null,e)),t.on(`dominantSpeakerChanged`,()=>e.emit(`dominantSpeakerChanged`,e.dominantSpeaker)),t.on(`transcription`,t=>e.emit(`transcription`,t)),t.on(`stateChanged`,function r(i,a){switch(n.info(`Transitioned to state:`,i),i){case`disconnected`:o.room.disconnected(),e.participants.forEach(e=>{e._unsubscribeTracks()}),e.emit(i,e,a),e.localParticipant.tracks.forEach(e=>{e.unpublish()}),e._insightsMonitors&&e._insightsMonitors.cleanup(),t.removeListener(`stateChanged`,r);break;case`reconnecting`:o.room.reconnecting(a),setTimeout(()=>e.emit(`reconnecting`,a),0);break;default:o.room.reconnected(),setTimeout(()=>e.emit(`reconnected`),0)}})}t.exports=u})),yn=r(((e,t)=>{t.exports=class{constructor(e){Object.defineProperties(this,{_min:{value:e.min||100},_max:{value:e.max||1e4},_jitter:{value:e.jitter>0&&e.jitter<=1?e.jitter:0},_factor:{value:e.factor||2},_attempts:{value:0,writable:!0},_duration:{enumerable:!1,get(){let e=this._min*this._factor**+this._attempts;if(this._jitter){let t=Math.random(),n=Math.floor(t*this._jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this._max)|0}},_timeoutID:{value:null,writable:!0}})}backoff(e){let t=this._duration;this._timeoutID&&=(clearTimeout(this._timeoutID),null),this._timeoutID=setTimeout(()=>{this._attempts++,e()},t)}reset(){this._attempts=0,this._timeoutID&&=(clearTimeout(this._timeoutID),null)}}})),bn=r(((e,t)=>{var{difference:n,flatMap:r}=Z();function i(){return String(Math.floor(Math.random()*4294967295))}var a=class{constructor(e,t,n){Object.defineProperties(this,{cName:{enumerable:!0,value:n},isSimulcastEnabled:{enumerable:!0,value:!1,writable:!0},primarySSRCs:{enumerable:!0,value:new Set},rtxPairs:{enumerable:!0,value:new Map},streamId:{enumerable:!0,value:t},trackId:{enumerable:!0,value:e}})}addSimulcastSSRCs(){if(this.isSimulcastEnabled)return;let e=[i(),i()];e.forEach(function(e){this.primarySSRCs.add(e)},this),this.rtxPairs.size&&e.forEach(function(e){this.rtxPairs.set(i(),e)},this)}addSSRC(e,t,n){t?this.rtxPairs.set(e,t):this.primarySSRCs.add(e),this.isSimulcastEnabled=this.isSimulcastEnabled||n}toSdpLines(e){let t=e?[]:Array.from(this.rtxPairs.entries()).map(e=>e.reverse()),n=Array.from(this.primarySSRCs.values()),i=r(t.length?r(t):n,e=>[`a=ssrc:${e} cname:${this.cName}`,`a=ssrc:${e} msid:${this.streamId} ${this.trackId}`]),a=t.map(e=>`a=ssrc-group:FID ${e.join(` `)}`),o=[`a=ssrc-group:SIM ${n.join(` `)}`];return a.concat(i).concat(o)}};function o(e,t){return(e.match(new RegExp(t,`gm`))||[]).map(e=>(e.match(new RegExp(t))||[]).slice(1))}function s(e){return new Set(r(o(e,`^a=ssrc-group:SIM ([0-9]+) ([0-9]+) ([0-9]+)$`)))}function c(e,t,n){let r=`a=ssrc:${t} ${n}:(.+)`;return e.match(new RegExp(r))[1]}function l(e){return new Map(o(e,`^a=ssrc-group:FID ([0-9]+) ([0-9]+)$`).map(e=>e.reverse()))}function u(e){let[t,n]=r(o(e,`^a=msid:(.+) (.+)$`));return r(o(e,`^a=ssrc:(.+) cname:.+$`)).map(e=>[e,t,n])}function d(e){let t=s(e),n=l(e);return u(e).reduce((r,i)=>{let o=i[0],s=i[1],l=i[2],u=r.get(l)||new a(l,s,c(e,o,`cname`)),d=n.get(o)||null;return u.addSSRC(o,d,t.has(o)),r.set(l,u)},new Map)}function f(e,t){let i=d(e),a=Array.from(i.keys()),o=Array.from(t.keys()),s=n(a,o),c=n(o,a);r(s,e=>i.get(e)).forEach(e=>{e.addSimulcastSSRCs(),t.set(e.trackId,e)}),o=Array.from(t.keys());let l=r(n(o,c),e=>t.get(e)),u=!e.match(/a=rtpmap:[0-9]+ rtx/),f=r(l,e=>e.toSdpLines(u)),p=r(new Set(e.split(`\r
7`).concat(f))),m=`a=x-google-flag:conference`;return e.match(m)||p.push(m),p.join(`\r
8`)}t.exports=f})),xn=r((e=>{var{difference:t,flatMap:n}=Z(),r=bn(),i={0:`PCMU`,8:`PCMA`};function a(e){return Array.from(s(e)).reduce((e,t)=>{let n=t[0],r=t[1],i=e.get(r)||[];return e.set(r,i.concat(n))},new Map)}function o(e){return u(e).reduce((e,t)=>{let n=l(t);return n?e.set(n,t):e},new Map)}function s(e){return d(e).reduce((t,n)=>{if(t.has(n))return t;let r=RegExp(`a=rtpmap:${n} ([^/]+)`),a=e.match(r),o=a?a[1].toLowerCase():i[n]?i[n].toLowerCase():``;return t.set(n,o)},new Map)}function c(e,t){let n=RegExp(`^a=fmtp:${e} (.+)$`,`m`),r=t.match(n);return r&&r[1].split(`;`).reduce((e,t)=>
8{let[n,r]=t.split(`=`);return e[n]=isNaN(r)?r:parseInt(r,10),e},{})}function l(e){let t=e.match(/^a=mid:(.+)$/m);return t&&t[1]}function u(e,t,n){return e.replace(/\r\n\r\n$/,`\r
9`).split(`\r
10m=`).slice(1).map(e=>`m=${e}`).filter(e=>{let r=RegExp(`m=${t||`.*`}`,`gm`),i=RegExp(`a=${n||`.*`}`,`gm`);return r.test(e)&&i.test(e)})}function d(e){let t=e.split(`\r
11`)[0].match(/([0-9]+)/g);return t?t.slice(1).map(e=>parseInt(e,10)):[]}function f(e,t){let n=t.split(`\r
12`),r=n[0],i=n.slice(1);return r=r.replace(/([0-9]+\s?)+$/,e.join(` `)),[r].concat(i).join(`\r
13`)}function p(e,t){let n=u(e);return[e.split(`\r
14m=`)[0]].concat(n.map(e=>{if(e=e.replace(/\r\n$/,``),!/^m=video/.test(e))return e;let n=a(e),i=d(e),o=new Set(n.get(`vp8`)||[]);return i.some(e=>o.has(e))?r(e,t):e}),``).join(`\r
15`)}function m(e,t,n,r=!1){let i=o(n),a=o(t),c=u(e);return[e.split(`\r
16m=`)[0]].concat(c.map(e=>{if(e=e.replace(/\r\n$/,``),!/^m=video/.test(e))return e;let t=e.match(/^a=mid:(.+)$/m),n=t&&t[1];if(!n)return e;let o=i.get(n),c=s(o),l=d(o),u=l.length&&c.get(l[0])===`vp8`;return r||!u?a.get(n).replace(/\r\n$/,``):e}),``).join(`\r
17`)}function h(e,t,n){return g(e,Array.from(n).reduce((n,[r,i])=>(u(e,r,`send(only|recv)`).map(l).filter(e=>!t.has(e)).forEach((e,t)=>n.set(e,i[t])),n),new Map))}function g(e,t){let n=u(e);return[e.split(`\r
18m=`)[0]].concat(n.map(e=>{if(!/^m=(audio|video)/.test(e))return e;let n=l(e);if(!n)return e;let r=t.get(n);if(!r)return e;let i=(e.match(/^a=msid:(.+)$/m)||[])[1];if(!i)return e;let[a,o]=i.split(` `),s=RegExp(`msid:${a}${o?` ${o}`:``}$`,`gm`);return e.replace(s,`msid:${a} ${r}`)})).join(`\r
19`)}function _(e,t){return e.split(`\r
20`).filter(e=>!t.find(t=>RegExp(`a=ssrc:.*`+t+`:`,`g`).test(e))).join(`\r
21`)}function v(e){let t=u(e);return[e.split(`\r
22m=`)[0]].concat(t.map(e=>{if(!/^m=video/.test(e))return e;let t=a(e).get(`rtx`);if(!t)return e;let n=new Set(d(e));t.forEach(e=>n.delete(e));let r=e.match(/a=ssrc-group:FID [0-9]+ ([0-9]+)/),i=r&&r[1],o=[/^a=fmtp:.+ apt=.+$/,/^a=rtpmap:.+ rtx\/.+$/,/^a=ssrc-group:.+$/].concat(i?[RegExp(`^a=ssrc:${i} .+$`)]:[]);return e=e.split(`\r
23`).filter(e=>o.every(t=>!t.test(e))).join(`\r
24`),f(Array.from(n),e)})).join(`\r
25`)}function y(e,t){return`a=fmtp:${e} ${Object.entries(t).map(([e,t])=>`${e}=${t}`).join(`;`)}`}function b(e){let t=u(e);return[e.split(`\r
26m=`)[0]].concat(t.map(e=>{if(!/^m=(audio|video)/.test(e))return e;let t=new Set(d(e));return e.split(`\r
27`).filter(e=>{let n=e.match(/^a=(fmtp|rtpmap|rtcp-fb):(\d+)/);if(!n)return!0;let r=parseInt(n[2],10);return t.has(r)}).join(`\r
28`)})).join(`\r
29`)}function x(e,t){let n=u(e),r=e.split(`\r
30m=`)[0];return t||=n.filter(e=>/^m=audio/.test(e)).map(l),[r].concat(n.map(e=>{if(!/^m=audio/.test(e))return e;let n=a(e).get(`opus`);if(!n)return e;let r=c(n,e);if(!r)return e;let i=y(n,r),o=l(e);t.includes(o)?r.usedtx=1:delete r.usedtx;let s=y(n,r);return e.replace(i,s)})).join(`\r
31`)}function S(e,r){r=r.map(({codec:e})=>e.toLowerCase());let i=n(r,t=>e.get(t)||[]),a=n(t(Array.from(e.keys()),r),t=>e.get(t));return i.concat(a)}function C(e,t,n){let r=u(e);return[e.split(`\r
32m=`)[0]].concat(r.map(e=>{if(!/^m=(audio|video)/.test(e))return e;let r=e.match(/^m=(audio|video)/)[1],i=a(e),o=S(i,r===`audio`?t:n),s=f(o,e),c=i.get(`pcma`)||[],l=i.get(`pcmu`)||[];return(r===`audio`?new Set(c.concat(l)):new Set).has(o[0])?s.replace(/\r\nb=(AS|TIAS):([0-9]+)/g,``):s})).join(`\r
33`)}e.addOrRewriteNewTrackIds=h,e.addOrRewriteTrackIds=g,e.createCodecMapForMediaSection=a,e.createPtToCodecName=s,e.disableRtx=v,e.enableDtxForOpus=x,e.getMediaSections=u,e.removeUnreferencedCodecAttributes=b,e.removeSSRCAttributes=_,e.revertSimulcast=m,e.setCodecPreferences=C,e.setSimulcast=p})),Sn=r(((e,t)=>{t.exports=class{constructor(e){e=Object.assign({getKey:function(e){return e},getValue:function(e){return e},isLessThanOrEqualTo:function(e,t){return e<=t}},e),Object.defineProperties(this,{_getKey:{value:e.getKey},_getValue:{value:e.getValue},_isLessThanOrEqualTo:{value:e.isLessThanOrEqualTo},_map:{value:new Map}})}toMap(){return new Map(this._map)}updateAndFilter(e){return e.filter(this.update,this)}update(e){let t=this._getKey(e),n=this._getValue(e);return this._map.has(t)&&this._isLessThanOrEqualTo(n,this._map.get(t))?!1:(this._map.set(t,n),!0)}}})),Cn=r(((e,t)=>{var n=Sn();t.exports=class{constructor(){Object.defineProperties(this,{_filter:{value:new n({getKey:function(e){return e.ufrag},isLessThanOrEqualTo:function(e,t){return e.revision<=t.revision}})},_ufrag:{writable:!0,value:null},ufrag:{enumerable:!0,get(){return this._ufrag}}})}setUfrag(e){this._ufrag=e;let t=this._filter.toMap().get(e);return t?t.candidates:[]}update(e){e.candidates=e.candidates||[];let t=this._filter.toMap().get(e.ufrag),n=t?t.candidates:[];return this._filter.update(e)&&this._ufrag===e.ufrag?e.candidates.slice(n.length):[]}}})),wn=r(((e,t)=>{var{ICE_ACTIVITY_CHECK_PERIOD_MS:n,ICE_INACTIVITY_THRESHOLD_MS:r}=J();t.exports=class{constructor(e,t){t=Object.assign({activityCheckPeriodMs:n,inactivityThresholdMs:r},t),Object.defineProperties(this,{_activityCheckPeriodMs:{value:t.activityCheckPeriodMs},_inactivityThresholdMs:{value:t.inactivityThresholdMs},_lastActivity:{value:null,writable:!0},_peerConnection:{value:e},_timer:{value:null,writable:!0},_onIceConnectionStateChanged:{value:null,writable:!0}})}_getActivePairStat(e){return Array.from(e.values()).find(e=>e.type===`candidate-pair`&&e.nominated)||{bytesReceived:0,timestamp:Math.round(new Date().getTime())}}_getIceConnectionStats(){return this._peerConnection.getStats().then(e=>this._getActivePairStat(e)).catch(()=>null)}_scheduleInactivityCallback(e){e&&this._onIceConnectionStateChanged===null?(this._onIceConnectionStateChanged=()=>{this._peerConnection.iceConnectionState===`disconnected`&&e()},this._peerConnection.addEventListener?this._peerConnection.addEventListener(`iceconnectionstatechange`,this._onIceConnectionStateChanged):this._peerConnection.oniceconnectionstatechange=this._onIceConnectionStateChanged):!e&&this._onIceConnectionStateChanged&&(this._peerConnection.removeEventListener?this._peerConnection.removeEventListener(`iceconnectionstatechange`,this._onIceConnectionStateChanged):this._peerConnection.oniceconnectionstatechange=null,this._onIceConnectionStateChanged=null)}start(e){this.stop(),this._timer=setInterval(()=>{this._getIceConnectionStats().then(t=>{t&&((!this._lastActivity||this._lastActivity.bytesReceived!==t.bytesReceived)&&(this._lastActivity=t,this._scheduleInactivityCallback(null)),t.timestamp-this._lastActivity.timestamp>=this._inactivityThresholdMs&&(this._peerConnection.iceConnectionState===`disconnected`?e():this._onIceConnectionStateChanged===null&&this._scheduleInactivityCallback(e)))})},this._activityCheckPeriodMs)}stop(){this._scheduleInactivityCallback(null),this._timer!==null&&(clearInterval(this._timer),this._timer=null,this._lastActivity=null)}}})),Tn=r(((e,t)=>{var{EventEmitter:n}=Q();t.exports=class extends n{constructor(e){super(),Object.defineProperties(this,{_dataChannel:{value:e},_messageQueue:{value:[]}}),e.addEventListener(`open`,()=>
33{this._messageQueue.splice(0).forEach(e=>this._publish(e))}),e.addEventListener(`message`,({data:e})=>{try{let t=JSON.parse(e);this.emit(`message`,t)}catch{}}),this.publish({type:`ready`})}_publish(e){let t=JSON.stringify(e);try{this._dataChannel.send(t)}catch{}}publish(e){let t=this._dataChannel;return t.readyState===`closing`||t.readyState===`closed`?!1:t.readyState===`connecting`?(this._messageQueue.push(e),!0):(this._publish(e),!0)}}})),En=r(((e,t)=>{var n=rt(),r=Tn();t.exports=class extends n{constructor(e){super(e.label,e.maxPacketLifeTime,e.maxRetransmits,e.ordered),Object.defineProperties(this,{_dataChannel:{value:e}}),e.binaryType=`arraybuffer`,e.addEventListener(`message`,e=>{this.emit(`message`,e.data)}),e.addEventListener(`close`,()=>{this.emit(`close`)})}stop(){this._dataChannel.close(),super.stop()}toDataTransport(){return new r(this._dataChannel)}}})),Dn=r(((e,t)=>{var n=qe();t.exports=class extends n{constructor(e,t){super(e,t)}}})),On=r(((e,t)=>{var{getMediaSections:n}=xn();t.exports=class{constructor(){Object.defineProperties(this,{_midsToTrackIds:{value:new Map,writable:!0}})}match(e){return this._midsToTrackIds.get(e.transceiver.mid)||null}update(e){let t=n(e,`(audio|video)`);this._midsToTrackIds=t.reduce((e,t)=>{let n=t.match(/^a=mid:(.+)$/m)||[],r=t.match(/^a=msid:.+ (.+)$/m)||[],i=n[1],a=r[1];return i&&a?e.set(i,a):e},this._midsToTrackIds)}}})),kn=r(((e,t)=>{var{createPtToCodecName:n,getMediaSections:r}=xn();function i(e){let t={type:e.type};return e.type!==`rollback`&&(t.sdp=a(e.sdp)),new RTCSessionDescription(t)}function a(e){let t=r(e);return[e.split(`\r
34m=`)[0]].concat(t.map(o)).join(`\r
35`)}function o(e){let t=n(e);e=c(e,t),e=s(e);let r=l(t),i=r.get(`rtx`)||new Set,a=new Set,o=d(u(e,t,i,a),a),h=Array.from(a);return[`h264`,`vp8`,`vp9`].reduce((e,t)=>{let n=r.get(t)||new Set;return Array.from(n).reduce((e,t)=>o.has(t)?e:e.add(t),e)},new Set).forEach(t=>{if(h.length){let n=h.shift();e=f(e,n),e=m(e,n,t)}}),h.forEach(t=>{e=f(e,t),e=p(e,t)}),e}function s(e){let t=e.split(`\r
36`),n=new Map,r=96;for(let e=0;e<t.length;e++){let i=t[e].match(/^a=rtpmap:(\d+) ([^/]+)/);if(i){let a=parseInt(i[1],10),o=i[2].toLowerCase();if(n.has(a)&&n.get(a)!==o){for(;n.has(r)||r===a;)r++;let i=r;n.set(i,o),t[e]=t[e].replace(`a=rtpmap:${a}`,`a=rtpmap:${i}`);for(let n=e+1;n<t.length;n++)t[n].match(RegExp(`^a=(fmtp|rtcp-fb):${a}\\b`))&&(t[n]=t[n].replace(RegExp(`^a=(fmtp|rtcp-fb):${a}\\b`),`a=$1:${i}`))}else n.set(a,o)}}return t.join(`\r
37`)}function c(e,t){return Array.from(t.keys()).reduce((e,n)=>{let r=RegExp(`^a=rtpmap:${n} rtx.+$`,`gm`);return(e.match(r)||[]).slice(+(t.get(n)===`rtx`)).reduce((e,t)=>{let r=RegExp(`\r\n${t}`),i=RegExp(`\r\na=fmtp:${n} apt=[0-9]+`);return e.replace(r,``).replace(i,``)},e)},e)}function l(e){let t=new Map;return e.forEach((e,n)=>{let r=t.get(e)||new Set;return t.set(e,r.add(n))}),t}function u(e,t,n,r){return Array.from(n).reduce((n,i)=>{let a=RegExp(`a=fmtp:${i} apt=(\\d+)`),o=e.match(a);if(!o)return r.add(i),n;let s=Number.parseInt(o[1]);return!t.has(s)||t.get(s)===`rtx`?(r.add(i),n):n.set(i,s)},new Map)}function d(e,t){let n=Array.from(e).reduce((e,t)=>{let n=t[0],r=t[1],i=e.get(r)||new Set;return e.set(r,i.add(n))},new Map);return Array.from(n).reduce((e,n)=>{let r=n[0],i=Array.from(n[1]);return i.length>1?(i.forEach(e=>{t.add(e)}),e):e.set(r,i[0])},new Map)}function f(e,t){let n=RegExp(`a=fmtp:${t}.*\r\n`,`gm`);return e.replace(n,``)}function p(e,t){let n=RegExp(`a=rtpmap:${t}.*\r\n`,`gm`);return e.replace(n,``)}function m(e,t,n){return e.endsWith(`\r
38`)?`${e}a=fmtp:${t} apt=${n}\r\n`:`${e}\r\na=fmtp:${t} apt=${n}`}t.exports=i})),An=r(((e,t)=>{var n=yn(),{RTCPeerConnection:r,getStats:i}=Me(),a=X(),{DEFAULT_ICE_GATHERING_TIMEOUT_MS:o,DEFAULT_LOG_LEVEL:s,DEFAULT_SESSION_TIMEOUT_SEC:c,iceRestartBackoffConfig:l}=J(),{addOrRewriteNewTrackIds:u,addOrRewriteTrackIds:d,createCodecMapForMediaSection:f,disableRtx:p,enableDtxForOpus:m,getMediaSections:h,removeUnreferencedCodecAttributes:g,removeSSRCAttributes:_,revertSimulcast:v,setCodecPreferences:y,setSimulcast:b}=xn(),x=wt(),{MediaClientLocalDescFailedError:S,MediaClientRemoteDescFailedError:C}=$(),{buildLogLevels:w,isChromeScreenShareTrack:T,oncePerTick:E,defer:D}=Z(),O=Cn(),k=wn(),A=En(),j=Dn(),M=St(),N=Y(),P=On(),F=kn(),I=_t(),L=a.guessBrowser(),R=L===`chrome`,z=L===`firefox`,B=L===`safari`,ee=0,V={open:[`closed`,`updating`],updating:[`closed`,`open`],closed:[]},H=class extends M{constructor(e,t,i,a){super(`open`,V),a=Object.assign({enableDscp:!1,dummyAudioMediaStreamTrack:null,isChromeScreenShareTrack:T,iceServers:[],logLevel:s,offerOptions:{},revertSimulcast:v,sessionTimeout:c*1e3,setCodecPreferences:y,setSimulcast:b,Backoff:n,IceConnectionMonitor:k,RTCIceCandidate,RTCPeerConnection:r,RTCSessionDescription,Timeout:x},a);let u=G(Object.assign({},a,a.rtcConfiguration)),d=w(a.logLevel),f=a.RTCPeerConnection;a.enableDscp===!0&&(a.chromeSpecificConstraints=a.chromeSpecificConstraints||{},a.chromeSpecificConstraints.optional=a.chromeSpecificConstraints.optional||[],a.chromeSpecificConstraints.optional.pu
38sh({googDscp:!0}));let p=a.log?a.log.createLog(`webrtc`,this):new N(`webrtc`,this,d,a.loggerName),m=new f(u,{chromeSpecificConstraints:a.chromeSpecificConstraints,applyCodecPreferences:e=>this._applyCodecPreferencesToTransceiver(e)});a.dummyAudioMediaStreamTrack&&m.addTrack(a.dummyAudioMediaStreamTrack),Object.defineProperties(this,{_appliedTrackIdsToAttributes:{value:new Map,writable:!0},_dataChannels:{value:new Map},_dataTrackReceivers:{value:new Set},_descriptionRevision:{writable:!0,value:0},_didGenerateLocalCandidates:{writable:!0,value:!1},_dtlsTransport:{writable:!0,value:null},_enableDscp:{value:a.enableDscp},_encodingParameters:{value:t},_isChromeScreenShareTrack:{value:a.isChromeScreenShareTrack},_iceGatheringFailed:{value:!1,writable:!0},_iceGatheringTimeout:{value:new a.Timeout(()=>this._handleIceGatheringTimeout(),o,!1)},_iceRestartBackoff:{value:new a.Backoff(l)},_instanceId:{value:++ee},_isIceConnectionInactive:{writable:!0,value:!1},_isIceLite:{writable:!0,value:!1},_isIceRestartBackoffInProgress:{writable:!0,value:!1},_isRestartingIce:{writable:!0,value:!1},_lastIceConnectionState:{writable:!0,value:null},_lastStableDescriptionRevision:{writable:!0,value:0},_localCandidates:{writable:!0,value:[]},_localCodecs:{value:new Set},_localCandidatesRevision:{writable:!0,value:1},_localDescriptionWithoutSimulcast:{writable:!0,value:null},_localDescription:{writable:!0,value:null},_localUfrag:{writable:!0,value:null},_log:{value:p},_eventObserver:{value:a.eventObserver},_remoteCodecMaps:{value:new Map},_rtpSenders:{value:new Map},_rtpNewSenders:{value:new Set},_iceConnectionMonitor:{value:new a.IceConnectionMonitor(m)},_mediaTrackReceivers:{value:new Set},_needsAnswer:{writable:!0,value:!1},_negotiationRole:{writable:!0,value:null},_offerOptions:{writable:!0,value:a.offerOptions},_onEncodingParametersChanged:{value:E(()=>{this._needsAnswer||ue(this)})},_peerConnection:{value:m},_preferredAudioCodecs:{value:i.audio},_preferredVideoCodecs:{value:i.video},_shouldApplyDtx:{value:i.audio.every(({codec:e})=>e!==`opus`)||i.audio.some(({codec:e,dtx:t})=>e===`opus`&&t)},_queuedDescription:{writable:!0,value:null},_iceReconnectTimeout:{value:new a.Timeout(()=>{p.debug(`ICE reconnect timed out`),this.close()},a.sessionTimeout,!1)},_recycledTransceivers:{value:{audio:[],video:[]}},_replaceTrackPromises:{value:new Map},_remoteCandidates:{writable:!0,value:new O},_setSimulcast:{value:a.setSimulcast},_revertSimulcast:{value:a.revertSimulcast},_setCodecPreferences:{value:a.setCodecPreferences},_RTCIceCandidate:{value:a.RTCIceCandidate},_RTCPeerConnection:{value:a.RTCPeerConnection},_RTCSessionDescription:{value:a.RTCSessionDescription},_shouldOffer:{writable:!0,value:!1},_shouldRestartIce:{writable:!0,value:!1},_trackIdsToAttributes:{value:new Map,writable:!0},_trackMatcher:{writable:!0,value:null},_mediaTrackSenderToPublisherHints:{value:new Map},id:{enumerable:!0,value:e}}),t.on(`changed`,this._onEncodingParametersChanged),I.pc.signalingState(this.id,m.signalingState),I.pc.iceGatheringState(this.id,m.iceGatheringState),I.pc.iceConnectionState(this.id,m.iceConnectionState),I.pc.connectionState(this.id,this.connectionState),m.addEventListener(`connectionstatechange`,this._handleConnectionStateChange.bind(this)),m.addEventListener(`datachannel`,this._handleDataChannelEvent.bind(this)),m.addEventListener(`icecandidate`,this._handleIceCandidateEvent.bind(this)),m.addEventListener(`iceconnectionstatechange`,this._handleIceConnectionStateChange.bind(this)),m.addEventListener(`icegatheringstatechange`,this._handleIceGatheringStateChange.bind(this)),m.addEventListener(`signalingstatechange`,this._handleSignalingStateChange.bind(this)),m.addEventListener(`track`,this._handleTrackEvent.bind(this));let h=this;this.on(`stateChanged`,function e(t){t===`closed`&&(h.removeListener(`stateChanged`,e),h._dataChannels.forEach((e,t)=>{h.removeDataTrackSender(t)}))})}toString(){return`[PeerConnectionV2 #${this._instanceId}: ${this.id}]`}setEffectiveAdaptiveSimulcast(e){this._log.debug(`Setting setEffectiveAdaptiveSimulcast: `,e),this._preferredVideoCodecs.forEach(t=>{`adaptiveSimulcast`in t&&(t.adaptiveSimulcast=e)})}get _shouldApplySimulcast(){return!R&&!B?!1:this._preferredVideoCodecs.some(e=>e.codec.toLowerCase()===`vp8`&&e.simulcast&&e.adaptiveSimulcast!==!1)}get connectionState(){return this.iceConnectionState===`failed`?`failed`:this._peerConnection.connectionState||this.iceConnectionState}get iceConnectionState(){return this._isIceConnectionInactive&&this._peerConnection.iceConnectionState===`disconnected`||this._iceGatheringFailed?`failed`:this._peerConnection.iceConnectionState}get isApplicationSectionNegotiated(){return this._peerConnection.signalingState===`closed`?!0:this._peerConnection.localDescription?h(this._peerConnection.localDescription.sdp,`application`).length>0:!1}get _isAdaptiveSimulcastEnabled(){let e=this._preferredVideoCodecs.find(e=>`adaptiveSimulcast`in e);return e&&e.adaptiveSimulcast===!0}_maybeUpdateEncodings(e,t,n=!1){if(e.kind!==`video`||e.readyState===`ended`)return!1;let{height:r,width:i}=e.getSettings();if(typeof r!=`number`||typeof i!=`number`)return!1;let o=a.guessBrowser();return o===`safari`||o===`chrome`&&this._isAdaptiveSimulcastEnabled?(this._updateEncodings(e,t,n
38),!0):!1}_updateEncodings(e,t,n){if(this._isChromeScreenShareTrack(e)){let e=[{scaleResolutionDownBy:1},{scaleResolutionDownBy:1}];t.forEach((t,r)=>{let i=e[r];i?(t.scaleResolutionDownBy=i.scaleResolutionDownBy,n&&delete t.active):(t.active=!1,delete t.scaleResolutionDownBy)})}else{let{width:r,height:i}=e.getSettings(),a=[{pixels:518400,maxActiveLayers:3},{pixels:129600,maxActiveLayers:2},{pixels:0,maxActiveLayers:1}],o=r*i,s=a.find(e=>o>=e.pixels),c=Math.min(t.length,s.maxActiveLayers);t.forEach((e,t)=>{t<c?(e.scaleResolutionDownBy=1<<c-t-1,n&&(e.active=!0)):(e.active=!1,delete e.scaleResolutionDownBy)})}this._log.debug(`_updateEncodings:`,t.map(({active:e,scaleResolutionDownBy:t},n)=>`[${n}: ${e}, ${t||0}]`).join(`, `))}_addIceCandidate(e){return Promise.resolve().then(()=>(I.pc.iceCandidate(this.id,e,!0),e=new this._RTCIceCandidate(e),this._peerConnection.addIceCandidate(e))).catch(t=>{this._log.warn(`Failed to add RTCIceCandidate ${e?`"${e.candidate}"`:`null`}: `+t.message)})}_addIceCandidates(e){return Promise.all(e.map(this._addIceCandidate,this)).then(()=>{})}_applyCodecPreferencesToTransceiver(e){if(!e||!e.receiver||!e.receiver.track)return;let t=e.receiver.track.kind,n=t===`audio`?this._preferredAudioCodecs:this._preferredVideoCodecs;if(n&&n.length!==0)try{let r=RTCRtpReceiver.getCapabilities(t).codecs,i=this._sortCodecsByPreference(r,n);e.setCodecPreferences(i)}catch(e){this._log.warn(`Failed to apply codec preferences:`,e)}}_sortCodecsByPreference(e,t){let n=[],r=[],i=t.map(e=>(typeof e==`string`?e:e.codec).toLowerCase());return e.forEach(e=>{let t=e.mimeType.split(`/`)[1].toLowerCase(),a=i.indexOf(t);a>=0?(n[a]||(n[a]=[]),n[a].push(e)):r.push(e)}),n.flat().concat(r)}_addOrUpdateTransceiver(e){let t=ie(this,e.kind);if(t&&t.sender){let n=t.sender.track?t.sender.track.id:null;return n&&this._log.warn(`Reusing transceiver: ${t.mid}] ${n} => ${e.id}`),this._replaceTrackPromises.set(t,t.sender.replaceTrack(e).then(()=>{t.direction=`sendrecv`},()=>{}).finally(()=>{this._replaceTrackPromises.delete(t)})),t}let n=this._peerConnection.addTransceiver(e,{});return this._applyCodecPreferencesToTransceiver(n),n}_checkIceBox(e){let t=W(e);if(!t)return Promise.resolve();let n=this._remoteCandidates.setUfrag(t);return this._addIceCandidates(n)}_answer(e){return Promise.resolve().then(()=>(this._negotiationRole||=`answerer`,this._setRemoteDescription(e))).catch(()=>{throw new C}).then(()=>this._peerConnection.createAnswer()).then(t=>{t=z?new this._RTCSessionDescription({sdp:p(t.sdp),type:t.type}):F(t);let n=_(t.sdp,[`mslabel`,`label`]);if(this._shouldApplySimulcast){let t=n;n=this._setSimulcast(t,this._trackIdsToAttributes),n=this._revertSimulcast(n,t,e.sdp)}return n=n.replace(/42e015/g,`42e01f`),this._setLocalDescription({type:t.type,sdp:n})}).then(()=>this._checkIceBox(e)).then(()=>this._queuedDescription&&this._updateDescription(this._queuedDescription)).then(()=>(this._queuedDescription=null,this._maybeReoffer(this._peerConnection.localDescription))).catch(e=>{let t=e instanceof C?e:new S;throw this._publishMediaWarning({message:`Failed to _answer`,code:t.code,error:e}),t})}_close(){return this._iceConnectionMonitor.stop(),this._peerConnection.signalingState!==`closed`&&(this._peerConnection.close(),this._dtlsTransport&&!R&&I.pc.dtlsTransportState(this.id,this._dtlsTransport.state),I.pc.signalingState(this.id,this._peerConnection.signalingState),I.pc.iceConnectionState(this.id,this._peerConnection.iceConnectionState),I.pc.connectionState(this.id,this._peerConnection.connectionState),this.preempt(`closed`),this._encodingParameters.removeListener(`changed`,this._onEncodingParametersChanged),!0)}_handleConnectionStateChange(){I.pc.connectionState(this.id,this.connectionState),this.emit(`connectionStateChanged`)}_handleDataChannelEvent(e){let t=e.channel,n=new A(t);this._dataTrackReceivers.add(n),t.addEventListener(`close`,()=>{this._dataTrackReceivers.delete(n)}),this.emit(`trackAdded`,n)}_handleGlare(e){return this._log.debug(`Glare detected; rolling back`),this._isRestartingIce&&(this._log.debug(`An ICE restart was in progress; we'll need to restart ICE again after rolling back`),this._isRestartingIce=!1,this._shouldRestartIce=!0),Promise.resolve().then(()=>(this._trackIdsToAttributes=new Map(this._appliedTrackIdsToAttributes),this._setLocalDescription({type:`rollback`}))).then(()=>(this._needsAnswer=!1,this._answer(e))).then(e=>e?Promise.resolve():this._offer())}_publishMediaWarning({message:e,code:t,error:n,sdp:r}){this._eventObserver.emit(`event`,{level:`warning`,name:`error`,group:`media`,payload:{message:e,code:t,context:JSON.stringify({error:n.message,sdp:r})}})}_handleIceCandidateEvent(e){e.candidate&&(this._log.debug(`Clearing ICE gathering timeout`),this._didGenerateLocalCandidates=!0,this._iceGatheringTimeout.clear(),this._localCandidates.push(e.candidate),I.pc.iceCandidate(this.id,e.candidate));let t={ice:{candidates:this._isIceLite?[]:this._localCandidates.slice(),ufrag:this._localUfrag},id:this.id};e.candidate||(t.ice.complete=!0),this._isIceLite&&e.candidate||(t.ice.revision=this._localCandidatesRevision++,this.emit
38(`candidates`,t))}_handleIceConnectionStateChange(){let{iceConnectionState:e}=this._peerConnection,t=[`connected`,`completed`].includes(e),n=this._log;n.debug(`ICE connection state is "${e}"`),I.pc.iceConnectionState(this.id,e),t&&(this._iceReconnectTimeout.clear(),this._iceRestartBackoff.reset()),this._lastIceConnectionState!==`failed`&&e===`failed`&&!this._shouldRestartIce&&!this._isRestartingIce?(n.warn(`ICE failed`),this._initiateIceRestartBackoff()):[`disconnected`,`failed`].includes(this._lastIceConnectionState)&&t&&n.debug(`ICE reconnected`),e===`connected`?(this._isIceConnectionInactive=!1,this._iceConnectionMonitor.start(()=>{this._iceConnectionMonitor.stop(),!this._shouldRestartIce&&!this._isRestartingIce&&(n.warn(`ICE Connection Monitor detected inactivity`),this._isIceConnectionInactive=!0,this._initiateIceRestartBackoff(),this.emit(`iceConnectionStateChanged`),this.emit(`connectionStateChanged`))})):[`disconnected`,`completed`].includes(e)||(this._iceConnectionMonitor.stop(),this._isIceConnectionInactive=!1),this._lastIceConnectionState=e,this.emit(`iceConnectionStateChanged`)}_handleIceGatheringTimeout(){this._log.warn(`ICE failed to gather any local candidates`),this._iceGatheringFailed=!0,this._initiateIceRestartBackoff(),this.emit(`iceConnectionStateChanged`),this.emit(`connectionStateChanged`)}_handleIceGatheringStateChange(){let{iceGatheringState:e}=this._peerConnection;I.pc.iceGatheringState(this.id,e);let t=this._log;t.debug(`ICE gathering state is "${e}"`);let{delay:n,isSet:r}=this._iceGatheringTimeout;e===`gathering`&&!this._didGenerateLocalCandidates&&!r&&(t.debug(`Starting ICE gathering timeout: ${n}`),this._iceGatheringFailed=!1,this._iceGatheringTimeout.start())}_handleSignalingStateChange(){I.pc.signalingState(this.id,this._peerConnection.signalingState),this._peerConnection.signalingState===`stable`&&(this._appliedTrackIdsToAttributes=new Map(this._trackIdsToAttributes))}_handleDtlsTransportStateChange(){let e=this._dtlsTransport;e&&(this._log.debug(`DTLS transport state is "${e.state}"`),I.pc.dtlsTransportState(this.id,e.state))}_handleSelectedCandidatePairChange(){let e=this._dtlsTransport?.iceTransport;if(e&&typeof e.getSelectedCandidatePair==`function`){let t=e.getSelectedCandidatePair();t&&I.pc.selectedCandidatePair(this.id,t)}}_handleTrackEvent(e){let t=this._peerConnection.remoteDescription?this._peerConnection.remoteDescription.sdp:null;this._trackMatcher=this._trackMatcher||new P,this._trackMatcher.update(t);let n=e.track,r=new j(this._trackMatcher.match(e)||n.id,n);this._mediaTrackReceivers.forEach(e=>{e.track.id===r.track.id&&this._mediaTrackReceivers.delete(e)}),this._mediaTrackReceivers.add(r),n.addEventListener?n.addEventListener(`ended`,()=>this._mediaTrackReceivers.delete(r)):n.onended=()=>this._mediaTrackReceivers.delete(r),this.emit(`trackAdded`,r)}_initiateIceRestart(){if(this._peerConnection.signalingState===`closed`)return;let e=this._log;e.warn(`Attempting to restart ICE`),this._didGenerateLocalCandidates=!1,this._isIceRestartBackoffInProgress=!1,this._shouldRestartIce=!0;let{delay:t,isSet:n}=this._iceReconnectTimeout;n||(e.debug(`Starting ICE reconnect timeout: ${t}`),this._iceReconnectTimeout.start()),this.offer().catch(t=>{e.error(`offer failed in _initiateIceRestart with: ${t.message}`)})}_initiateIceRestartBackoff(){this._peerConnection.signalingState===`closed`||this._isIceRestartBackoffInProgress||(this._log.warn(`An ICE restart has been scheduled`),this._isIceRestartBackoffInProgress=!0,this._iceRestartBackoff.backoff(()=>this._initiateIceRestart()))}_maybeReoffer(e){let t=this._shouldOffer;if(e&&e.sdp){let n=this._peerConnection.getSenders().filter(e=>e.track);t=[`audio`,`video`].reduce((t,r)=>{let i=h(e.sdp,r,`(sendrecv|sendonly)`),a=n.filter(K.bind(null,r));return t||i.length<a.length},t);let r=this._dataChannels.size>0,i=h(e.sdp,`application`).length>0;t||=r&&!i}return(t?this._offer():Promise.resolve()).then(()=>t)}_offer(){let e=Object.assign({},this._offerOptions);return this._needsAnswer=!0,this._shouldRestartIce&&(this._shouldRestartIce=!1,this._isRestartingIce=!0,e.iceRestart=!0),Promise.all(this._replaceTrackPromises.values()).then(()=>
38(this._peerConnection.getTransceivers().forEach(e=>this._applyCodecPreferencesToTransceiver(e)),this._peerConnection.createOffer(e))).catch(e=>{let t=new S;throw this._publishMediaWarning({message:`Failed to create offer`,code:t.code,error:e}),t}).then(e=>{if(z){let t=p(e.sdp);t=g(t),e=new this._RTCSessionDescription({sdp:t,type:e.type})}else e=F(e);let t=_(e.sdp,[`mslabel`,`label`]);return this._shouldOffer=!1,this._negotiationRole||=`offerer`,this._shouldApplySimulcast&&(this._localDescriptionWithoutSimulcast={type:`offer`,sdp:t},t=this._setSimulcast(t,this._trackIdsToAttributes)),this._setLocalDescription({type:`offer`,sdp:t})})}_getMediaTrackSenderId(e){let t=Array.from(this._rtpSenders.keys()).find(({track:{id:t}})=>t===e);return t?t.id:e}_addOrRewriteLocalTrackIds(e){let t=this._peerConnection.getTransceivers().filter(({sender:e,stopped:t})=>!t&&e&&e.track),n=t.filter(({mid:e})=>e),r=new Map(n.map(({mid:e,sender:t})=>[e,this._getMediaTrackSenderId(t.track.id)])),i=d(e.sdp,r),a=t.filter(({mid:e})=>!e),o=u(i,r,new Map([`audio`,`video`].map(e=>[e,a.filter(({sender:t})=>t.track.kind===e).map(({sender:e})=>this._getMediaTrackSenderId(e.track.id))])));return new this._RTCSessionDescription({sdp:o,type:e.type})}_rollbackAndApplyOffer(e){return this._setLocalDescription({type:`rollback`}).then(()=>this._setLocalDescription(e))}_setLocalDescription(e){return e.type!==`rollback`&&this._shouldApplyDtx&&(e=new this._RTCSessionDescription({sdp:m(e.sdp),type:e.type})),this._peerConnection.setLocalDescription(e).catch(t=>{this._log.warn(`Calling setLocalDescription with an RTCSessionDescription of type "${e.type}" failed with the error "${t.message}".`,t);let n=new S,r={message:`Calling setLocalDescription with an RTCSessionDescription of type "${e.type}" failed`,code:n.code,error:t};throw e.sdp&&(this._log.warn(`The SDP was ${e.sdp}`),r.sdp=e.sdp),this._publishMediaWarning(r),n}).then(()=>{e.type!==`rollback`&&(this._localDescription=this._addOrRewriteLocalTrackIds(e),this._shouldApplyDtx&&(this._localDescription=new this._RTCSessionDescription({sdp:m(this._localDescription.sdp,[]),type:this._localDescription.type})),this._localCandidates=[],e.type===`offer`?this._descriptionRevision++:e.type===`answer`&&(this._lastStableDescriptionRevision=this._descriptionRevision,le(this)),this._localUfrag=W(e),this.emit(`description`,this.getState()))})}_setRemoteDescription(e){return e.sdp&&(e.sdp=this._setCodecPreferences(e.sdp,this._preferredAudioCodecs,this._preferredVideoCodecs),this._shouldApplyDtx?e.sdp=m(e.sdp):e.sdp=m(e.sdp,[]),z&&(e.sdp=re(e.sdp)),this._peerConnection.remoteDescription||(this._isIceLite=/a=ice-lite/.test(e.sdp))),e=new this._RTCSessionDescription(e),Promise.resolve().then(()=>{if(e.type===`answer`&&this._localDescriptionWithoutSimulcast){let t=this._preferredVideoCodecs.find(e=>`adaptiveSimulcast`in e),n=!!t&&t.adaptiveSimulcast===!1,r=this._revertSimulcast(this._localDescription.sdp,this._localDescriptionWithoutSimulcast.sdp,e.sdp,n);if(this._localDescriptionWithoutSimulcast=null,r!==this._localDescription.sdp)return this._rollbackAndApplyOffer({type:this._localDescription.type,sdp:r})}}).then(()=>this._peerConnection.setRemoteDescription(e)).then(()=>{e.type===`answer`&&(this._isRestartingIce&&=(this._log.debug(`An ICE restart was in-progress and is now completed`),!1),le(this))},t=>{throw this._log.warn(`Calling setRemoteDescription with an RTCSessionDescription of type "${e.type}" failed with the error "${t.message}".`,t),e.sdp&&this._log.warn(`The SDP was ${e.sdp}`),t})}_updateDescription(e){switch(e.type){case`answer`:case`pranswer`:if(e.revision!==this._descriptionRevision||this._peerConnection.signalingState!==`have-local-offer`)return Promise.resolve();this._descriptionRevision=e.revision;break;case`close`:return this._close();case`create-offer`:return e.revision<=this._lastStableDescriptionRevision?Promise.resolve():this._needsAnswer?(this._queuedDescription=e,Promise.resolve()):(this._descriptionRevision=e.revision,this._offer());case`offer`:return e.revision<=this._lastStableDescriptionRevision||this._peerConnection.signalingState===`closed`?Promise.resolve():this._peerConnection.signalingState===`have-local-offer`?this._needsAnswer&&this._lastStableDescriptionRevision===0?(this._queuedDescription=e,Promise.resolve()):(this._descriptionRevision=e.revision,this._handleGlare(e)):(this._descriptionRevision=e.revision,this._answer(e).then(()=>{}))}let t=e.revision;return Promise.resolve().then(()=>this._setRemoteDescription(e)).catch(t=>{let n=new C;throw this._publishMediaWarning({message:`Calling setRemoteDescription with an RTCSessionDescription of type "${e.type}" failed`,code:n.code,error:t,sdp:e.sdp}),n}).then(()=>(this._lastStableDescriptionRevision=t,this._needsAnswer=!1,this._checkIceBox(e))).then(()=>this._queuedDescription&&this._updateDescription(this._queuedDescription)).then(()=>(this._queuedDescription=null,this._maybeReoffer(this._peerConnection.localDescription).then(()=>{})))}_updateIce(e){let t=this._remoteCandidates.update(e);return this._addIceCandidates(t)}addDataTrackSender(e){if(!this._dataChannels.has(e))try{let t={ordered:e.ordered};e.maxPacketLifeTime!==null&&(t.maxPacketLifeTime=e.maxPacketLifeTime),e.maxRetransmits!==null&&(t.maxRetransmits=e.maxRetransmits);
38let n=this._peerConnection.createDataChannel(e.id,t);e.addDataChannel(n),this._dataChannels.set(e,n)}catch(t){this._log.warn(`Error creating an RTCDataChannel for DataTrack "${e.id}": ${t.message}`)}}_handleQueuedPublisherHints(){this._peerConnection.signalingState===`stable`&&this._mediaTrackSenderToPublisherHints.forEach(({deferred:e,encodings:t},n)=>{this._mediaTrackSenderToPublisherHints.delete(n),this._setPublisherHint(n,t).then(t=>e.resolve(t)).catch(t=>e.reject(t))})}_setPublisherHint(e,t){if(z)return Promise.resolve(`COULD_NOT_APPLY_HINT`);this._mediaTrackSenderToPublisherHints.has(e)&&(this._mediaTrackSenderToPublisherHints.get(e).deferred.resolve(`REQUEST_SKIPPED`),this._mediaTrackSenderToPublisherHints.delete(e));let n=this._rtpSenders.get(e);if(!n)return this._log.warn(`Could not apply publisher hint because RTCRtpSender was not found`),Promise.resolve(`UNKNOWN_TRACK`);if(this._peerConnection.signalingState===`closed`)return this._log.warn(`Could not apply publisher hint because signalingState was "closed"`),Promise.resolve(`COULD_NOT_APPLY_HINT`);if(this._peerConnection.signalingState!==`stable`){this._log.debug(`Queuing up publisher hint because signalingState:`,this._peerConnection.signalingState);let n=D();return this._mediaTrackSenderToPublisherHints.set(e,{deferred:n,encodings:t}),n.promise}let r=n.getParameters();return t!==null&&t.forEach(({enabled:e,layer_index:t})=>{r.encodings.length>t?(this._log.debug(`layer:${t}, active:${r.encodings[t].active} => ${e}`),r.encodings[t].active=e):this._log.warn(`invalid layer:${t}, active:${e}`)}),this._maybeUpdateEncodings(n.track,r.encodings,t===null),n.setParameters(r).then(()=>`OK`).catch(e=>(this._log.error(`Failed to apply publisher hints:`,e),`COULD_NOT_APPLY_HINT`))}addMediaTrackSender(e){if(this._peerConnection.signalingState===`closed`||this._rtpSe
38nders.has(e))return;let{sender:t}=this._addOrUpdateTransceiver(e.track);e.addSender(t,t=>this._setPublisherHint(e,t)),this._rtpNewSenders.add(t),this._rtpSenders.set(e,t)}close(){this._close()&&(this._descriptionRevision++,this._localDescription={type:`close`},this.emit(`description`,this.getState()))}getTrackReceivers(){return Array.from(this._dataTrackReceivers).concat(Array.from(this._mediaTrackReceivers))}getState(){if(!this._localDescription)return null;let e=this._localDescription.type===`answer`?this._lastStableDescriptionRevision:this._descriptionRevision,t={type:this._localDescription.type,revision:e};return this._localDescription.sdp&&(t.sdp=this._localDescription.sdp),{description:t,id:this.id}}offer(){return this._needsAnswer||this._isRestartingIce?(this._shouldOffer=!0,Promise.resolve()):this.bracket(`offering`,e=>(this.transition(`updating`,e),(this._needsAnswer||this._isRestartingIce?Promise.resolve():this._offer()).then(()=>{this.tryTransition(`open`,e)},t=>{throw this.tryTransition(`open`,e),t})))}removeDataTrackSender(e){let t=this._dataChannels.get(e);t&&(e.removeDataChannel(t),this._dataChannels.delete(e),t.close())}removeMediaTrackSender(e){let t=this._rtpSenders.get(e);t&&(this._peerConnection.signalingState!==`closed`&&this._peerConnection.removeTrack(t),e.removeSender(t),this._mediaTrackSenderToPublisherHints.has(e)&&(this._mediaTrackSenderToPublisherHints.get(e).deferred.resolve(`UNKNOWN_TRACK`),this._mediaTrackSenderToPublisherHints.delete(e)),this._rtpNewSenders.delete(t),this._rtpSe
38nders.delete(e))}setConfiguration(e){typeof this._peerConnection.setConfiguration==`function`&&this._peerConnection.setConfiguration(G(e))}setIceReconnectTimeout(e){return this._iceReconnectTimeout.setDelay(e),this._log.debug(`Updated ICE reconnection timeout period:`,this._iceReconnectTimeout.delay),this}update(e){return this.bracket(`updating`,t=>{if(this.state===`closed`)return Promise.resolve();this.transition(`updating`,t);let n=[];return e.ice&&n.push(this._updateIce(e.ice)),e.description&&n.push(this._updateDescription(e.description)),Promise.all(n).then(()=>{this.tryTransition(`open`,t)},e=>{throw this.tryTransition(`open`,t),e})})}getStats(){return i(this._peerConnection,{log:this._log}).then(e=>U(this,e))}};function te(e,t){let n=e._getMediaTrackSenderId(t.trackId);return Object.assign(t,{trackId:n})}function ne(e,t){let n=[...e._mediaTrackReceivers].find(e=>e.track.id===t.trackId),r=n?n.id:null;return Object.assign(t,{trackId:r})}function U(e,t){return Object.assign(t,{remoteAudioTrackStats:t.remoteAudioTrackStats.map(t=>ne(e,t)),remoteVideoTrackStats:t.remoteVideoTrackStats.map(t=>ne(e,t)),localAudioTrackStats:t.localAudioTrackStats.map(t=>te(e,t)),localVideoTrackStats:t.localVideoTrackStats.map(t=>te(e,t))})}function W(e){if(e.sdp){let t=e.sdp.match(/^a=ice-ufrag:([a-zA-Z0-9+/]+)/m);if(t)return t[1]}return null}function G(e={}){return Object.assign({bundlePolicy:`max-bundle`,rtcpMuxPolicy:`require`},e)}function K(e,t){let n=t.track;return n&&n.kind===e&&n.readyState!==`ended`}function re(e){return e.replace(/a=msid:[^ ]+ /g,`a=msid:- `)}function q(e,t){return!e.stopped&&!t._replaceTrackPromises.has(e)&&[`inactive`,`recvonly`].includes(e.direction)}function ie(e,t){let n={audio:e._preferredAudioCodecs.map(({codec:e})=>e.toLowerCase()),video:e._preferredVideoCodecs.map(({codec:e})=>e.toLowerCase())}[t],r=e._recycledTransceivers[t],i=n.find(t=>e._localCodecs.has(t));if(!i)return r.shift();let a=r.find(t=>{let n=e._remoteCodecMaps.get(t.mid);return n&&n.has(i)});return a&&r.splice(r.indexOf(a),1),a}function ae(e){let t=e._peerConnection.localDescription;t&&t.sdp&&h(t.sdp).forEach(t=>{f(t).forEach((t,n)=>e._localCodecs.add(n))})}function oe(e){let t=e._peerConnection.remoteDescription;t&&t.sdp&&h(t.sdp).forEach(t=>{let n=t.match(/^a=mid:(.+)$/m);if(!n||!n[1])return;let r=n[1],i=f(t);e._remoteCodecMaps.set(r,i)})}function se(e){e._recycledTransceivers.audio=[],e._recycledTransceivers.video=[],e._peerConnection.getTransceivers().forEach(t=>{if(q(t,e)){let n=t.receiver.track;e._recycledTransceivers[n.kind].push(t)}})}function ce(e){let t=e._peerConnection.getSenders().find(e=>e.transport)?.transport;t&&!e._dtlsTransport&&(e._dtlsTransport=t,t.addEventListener(`statechange`,e._handleDtlsTransportStateChange.bind(e)),t.state&&e._handleDtlsTransportStateChange(),t.iceTransport&&typeof t.iceTransport.getSelectedCandidatePair==`function`&&(t.iceTransport.addEventListener(`selectedcandidatepairchange`,e._handleSelectedCandidatePairChange.bind(e)),t.iceTransport.getSelectedCandidatePair()&&e._handleSelectedCandidatePairChange()))}function le(e){se(e),ae(e),oe(e),ce(e),ue(e).then(()=>{e._handleQueuedPublisherHints()})}function ue(e){let{maxAudioBitrate:t,maxVideoBitrate:n}=e._encodingParameters,r=new Map([[`audio`,t],[`video`,n]]),i=[];return e._peerConnection.getSenders().filter(e=>e.track).forEach(t=>{let n=r.get(t.track.kind),a=t.getParameters();n===null||n===0?de(a):e._isChromeScreenShareTrack(t.track)?e._log.warn(`Not setting maxBitrate for ${t.track.kind} Track ${t.track.id} because it appears to be screen share track: ${t.track.label}`):fe(a,n),!z&&a.encodings.length>0&&(t.track.kind===`audio`?a.encodings[0].priority=`high`:e._isChromeScreenShareTrack(t.track)&&(a.encodings[0].priority=`medium`),e._enableDscp&&(a.encodings[0].networkPriority=`high`));let o=e._rtpNewSenders.has(t);e._maybeUpdateEncodings(t.track,a.encodings,o),e._rtpNewSenders.delete(t);let s=t.setParameters(a).catch(n=>{e._log.warn(`Error while setting encodings parameters for ${t.track.kind} Track ${t.track.id}: ${n.message||n.name}`)});i.push(s)}),Promise.all(i)}
38function de(e){Array.isArray(e.encodings)&&e.encodings.forEach(e=>delete e.maxBitrate)}function fe(e,t){z?e.encodings=[{maxBitrate:t}]:e.encodings.forEach(e=>{e.maxBitrate=t})}t.exports=H})),jn=r(((e,t)=>{var{guessBrowser:n}=X(),r=An(),i=Je(),a=Ge(),o=Z(),{MediaConnectionError:s}=$(),c=n()===`firefox`,l=class extends a{constructor(e,t,n){super(),n=Object.assign({audioContextFactory:c?H():null,PeerConnectionV2:r},n);let a=n.audioContextFactory?n.audioContextFactory.getOrCreate(this):null,s=a?{offerToReceiveVideo:!0}:{offerToReceiveAudio:!0,offerToReceiveVideo:!0};Object.defineProperties(this,{_audioContextFactory:{value:n.audioContextFactory},_closedPeerConnectionIds:{value:new Set},_configuration:{writable:!0,value:null},_configurationDeferred:{writable:!0,value:o.defer()},_connectionState:{value:`new`,writable:!0},_dummyAudioTrackSender:{value:a?new i(u(a)):null},_encodingParameters:{value:e},_iceConnectionState:{writable:!0,value:`new`},_dataTrackSenders:{writable:!0,value:new Set},_lastConnectionState:{value:`new`,writable:!0},_lastIceConnectionState:{writable:!0,value:`new`},_mediaTrackSenders:{writable:!0,value:new Set},_offerOptions:{value:s},_peerConnections:{value:new Map},_preferredCodecs:{value:t},_sessionTimeout:{value:null,writable:!0},_PeerConnectionV2:{value:n.PeerConnectionV2}})}setEffectiveAdaptiveSimulcast(e){this._peerConnections.forEach(t=>t.setEffectiveAdaptiveSimulcast(e)),this._preferredCodecs.video.forEach(t=>{`adaptiveSimulcast`in t&&(t.adaptiveSimulcast=e)})}get connectionState(){return this._connectionState}get iceConnectionState(){return this._iceConnectionState}_closeAbsentPeerConnections(e){let t=new Set(e.map(e=>e.id));return this._peerConnections.forEach(e=>{t.has(e.id)||e._close()}),this}_getConfiguration(){return this._configurationDeferred.promise}_getOrCreate(e,t){let n=this,r=this._peerConnections.get(e);if(!r){let i=this._PeerConnectionV2,a=Object.assign({dummyAudioMediaStreamTrack:this._dummyAudioTrackSender?this._dummyAudioTrackSender.track:null,offerOptions:this._offerOptions},this._sessionTimeout?{sessionTimeout:this._sessionTimeout}:{},t);try{r=new i(e,this._encodingParameters,this._preferredCodecs,a)}catch{throw new s}this._peerConnections.set(r.id,r),r.on(`candidates`,this.queue.bind(this,`candidates`)),r.on(`description`,this.queue.bind(this,`description`)),r.on(`trackAdded`,this.queue.bind(this,`trackAdded`)),r.on(`stateChanged`,function e(t){t===`closed`&&(r.removeListener(`stateChanged`,e),n._dataTrackSenders.forEach(e=>r.removeDataTrackSender(e)),n._mediaTrackSenders.forEach(e=>r.removeMediaTrackSender(e)),n._peerConnections.delete(r.id),n._closedPeerConnectionIds.add(r.id),b(n),y(n))}),r.on(`connectionStateChanged`,()=>b(this)),r.on(`iceConnectionStateChanged`,()=>y(this)),this._dataTrackSenders.forEach(r.addDataTrackSender,r),this._mediaTrackSenders.forEach(r.addMediaTrackSender,r),y(this)}return r}close(){return this._peerConnections.forEach(e=>{e.close()}),this._dummyAudioTrackSender&&this._dummyAudioTrackSender.stop(),this._audioContextFactory&&this._audioContextFactory.release(this),y(this),this}createAndOffer(){return this._getConfiguration().then(e=>{let t;do t=o.makeUUID();while(this._peerConnections.has(t));return this._getOrCreate(t,e)}).then(e=>e.offer()).then(()=>this)}getTrackReceivers(){return o.flatMap(this._peerConnections,e=>e.getTrackReceivers())}getStates(){let e=[];return this._peerConnections.forEach(t=>{let n=t.getState();n&&e.push(n)}),e}setConfiguration(e){return this._configuration&&(this._configurationDeferred=o.defer(),this._peerConnections.forEach(t=>{t.setConfiguration(e)})),this._configuration=e,this._configurationDeferred.resolve(e),this}setIceReconnectTimeout(e){return this._sessionTimeout===null&&(this._peerConnections.forEach(t=>{t.setIceReconnectTimeout(e)}),this._sessionTimeout=e),this}setTrackSenders(e){let t=new Set(e.filter(e=>e.kind===`data`)),n=new Set(e.filter(e=>e&&(e.kind===`audio`||e.kind===`video`))),r=p(this,t,n);return this._dataTrackSenders=t,this._mediaTrackSenders=n,d(this,r),this}update(e,t=!1){return t&&this._closeAbsentPeerConnections(e),this._getConfiguration().then(t=>Promise.all(e.map(e=>this._closedPeerConnectionIds.has(e.id)?null:this._getOrCreate(e.id,t).update(e)))
38).then(()=>this)}getStats(){let e=Array.from(this._peerConnections.values());return Promise.all(e.map(e=>e.getStats().then(t=>[e.id,t]))).then(e=>new Map(e))}};function u(e){return e.createMediaStreamDestination().stream.getAudioTracks()[0]}function d(e,t){(t.data.add.size||t.data.remove.size||t.media.add.size||t.media.remove.size)&&e._peerConnections.forEach(e=>{t.data.remove.forEach(e.removeDataTrackSender,e),t.media.remove.forEach(e.removeMediaTrackSender,e),t.data.add.forEach(e.addDataTrackSender,e),t.media.add.forEach(e.addMediaTrackSender,e),(t.media.add.size||t.media.remove.size||t.data.add.size&&!e.isApplicationSectionNegotiated)&&e.offer()})}function f(e,t){return{add:o.difference(t,e._dataTrackSenders),remove:o.difference(e._dataTrackSenders,t)}}function p(e,t,n){return{data:f(e,t),media:m(e,n)}}function m(e,t){return{add:o.difference(t,e._mediaTrackSenders),remove:o.difference(e._mediaTrackSenders,t)}}var h={new:0,checking:1,connecting:2,connected:3,completed:4,disconnected:-1,failed:-2,closed:-3},g;function _(){return Object.keys(h).reduce((e,t)=>Object.assign(e,{[h[t]]:t}),{})}function v(e){return e.length?(g||=_(),e.reduce((e,t)=>g[Math.max(h[e],h[t])])):`new`}function y(e){e._lastIceConnectionState=e.iceConnectionState,e._iceConnectionState=v([...e._peerConnections.values()].map(e=>e.iceConnectionState)),e.iceConnectionState!==e._lastIceConnectionState&&e.emit(`iceConnectionStateChanged`)}function b(e){e._lastConnectionState=e.connectionState,e._connectionState=v([...e._peerConnections.values()].map(e=>e.connectionState)),e.connectionState!==e._lastConnectionState&&e.emit(`connectionStateChanged`)}t.exports=l})),Mn=r(((e,t)=>{var n=Q(),r=0;t.exports=class extends n{constructor(e,t,n){super(),Object.defineProperties(this,{_instanceId:{value:r++},channel:{value:t},_log:{value:n.log.createLog(`default`,this)},_getReceiver:{value:e},_receiverPromise:{value:null,writable:!0},_transport:{value:null,writable:!0}})}get isSetup(){return!!this._receiverPromise}toString(){return`[MediaSignaling #${this._instanceId}:${this.channel}]`}setup(e){this._teardown(),this._log.info(`setting up msp transport for id:`,e);let t=this._getReceiver(e).then(e=>{if(e.kind!==`data`&&this._log.error(`Expected a DataTrackReceiver`),this._receiverPromise===t){try{this._transport=e.toDataTransport(),this.emit(`ready`,this._transport)}catch(e){this._log.error(`Failed to toDataTransport: ${e.message}`)}e.once(`close`,()=>this._teardown())}});this._receiverPromise=t}_teardown(){this._transport&&(this._log.info(`Tearing down`),this._transport=null,this._receiverPromise=null,this.emit(`teardown`))}}})),Nn=r(((e,t)=>{var n=Mn();t.exports=class extends n{constructor(e,t){super(e,`active_speaker`,t),Object.defineProperties(this,{_loudestParticipantSid:{value:null,writable:!0}}),this.on(`ready`,e=>{e.on(`message`,e=>{e.type===`active_speaker`&&this._setLoudestParticipantSid(e.participant)})})}get loudestParticipantSid(){return this._loudestParticipantSid}_setLoudestParticipantSid(e){this.loudestParticipantSid!==e&&(this._loudestParticipantSid=e,this.emit(`updated`))}}})),Pn=r(((e,t)=>{var n=Mn();t.exports=class extends n{constructor(e,t){super(e,`extension_transcriptions`,t),this.on(`ready`,e=>{e.on(`message`,e=>{e.type===`extension_transcriptions`&&this.emit(`transcription`,e)})})}}})),Fn=r(((e,t)=>{t.exports=class e{constructor(e,t,n,r){Object.defineProperties(this,{availableSend:{enumerable:!0,value:n},recv:{enumerable:!0,value:t},rtt:{enumerable:!0,value:r},send:{enumerable:!0,value:e}})}static of(t,n){let r=(n.timestamp-t.timestamp)/1e3,i=n.bytesSent-t.bytesSent,a=n.bytesReceived-t.bytesReceived,o=r>0?i/r*8:0,s=r>0?a/r*8:0,{availableOutgoingBitrate:c,currentRoundTripTime:l}=n;return new e(o,s,c,l)}}})),In=r(((e,t)=>{var n=Fn();t.exports=class{constructor(){Object.defineProperties(this,{lastReport:{enumerable:!0,value:new n(0,0),writable:!0},lastStats:{enumerable:!0,value:null,writable:!0}})}next(e){let t=this.lastStats;if(this.lastStats=e,t){let r=t.id===e.id?n.of(t,e):new n(0,0);this.lastReport=r}return this.lastReport}}})),Ln=r(((e,t)=>{function n(e){return e=e.filter(e=>typeof e==`number`),e.length<1?void 0:e.reduce((e,t)=>
38t+e)/e.length}t.exports=n})),Rn=r(((e,t)=>{t.exports=class{constructor(e,t,n){Object.defineProperties(this,{id:{enumerable:!0,value:e},trackId:{enumerable:!0,value:t},bitrate:{enumerable:!0,value:n}})}}})),zn=r(((e,t)=>{function n(e){return e.reduce((e,t)=>typeof t==`number`?t+e:e,0)}t.exports=n})),Bn=r(((e,t)=>{var n=Ln(),r=Rn(),i=zn();t.exports=class e extends r{constructor(e,t,n,r,i,a,o){super(e,t,n);let s=i>0?r/i:0;Object.defineProperties(this,{deltaPacketsLost:{enumerable:!0,value:r},deltaPacketsReceived:{enumerable:!0,value:i},fractionLost:{enumerable:!0,value:a},jitter:{enumerable:!0,value:o},phonyFractionLost:{enumerable:!0,value:s}})}static of(t,n,r){if(n.id!==r.id)throw Error(`RTCStats IDs must match`);let i=(r.timestamp-n.timestamp)/1e3,a=r.bytesReceived-n.bytesReceived,o=i>0?a/i*8:0,s=Math.max(r.packetsLost-n.packetsLost,0),c=r.packetsReceived-n.packetsReceived,{fractionLost:l,jitter:u}=r;return new e(n.id,t,o,s,c,l,u)}static summarize(e){let t=e.map(e=>e.summarize());return{bitrate:i(t.map(e=>e.bitrate)),fractionLost:n(t.map(e=>e.fractionLost)),jitter:n(t.map(e=>e.jitter))}}summarize(){return{bitrate:this.bitrate,fractionLost:typeof this.fractionLost==`number`?this.fractionLost:this.phonyFractionLost,jitter:this.jitter}}}})),Vn=r(((e,t)=>{var n=Ln(),r=Rn(),i=zn();t.exports=class e extends r{constructor(e,t,n,r){super(e,t,n),Object.defineProperties(this,{rtt:{enumerable:!0,value:r}})}static of(t,n,r,i){if(n.id!==r.id)throw Error(`RTCStats IDs must match`);let a=(r.timestamp-n.timestamp)/1e3,o=r.bytesSent-n.bytesSent,s=a>0?o/a*8:0,c=i&&typeof i.roundTripTime==`number`?i.roundTripTime/1e3:void 0;return new e(n.id,t,s,c)}static summarize(e){return{bitrate:i(e.map(e=>e.bitrate)),rtt:n(e.map(e=>e.rtt))}}}})),Hn=r(((e,t)=>{var n=Bn(),r=Vn();t.exports=class{constructor(e,t,n){Object.defineProperties(this,{ice:{enumerable:!0,value:e},audio:{enumerable:!0,value:t},video:{enumerable:!0,value:n}})}summarize(){let e=this.audio.send.concat(this.video.send),t=r.summarize(e),i=this.audio.recv.concat(this.video.recv),a=n.summarize(i);return{ice:this.ice,send:t,recv:a,audio:{send:r.summarize(this.audio.send),recv:n.summarize(this.audio.recv)},video:{send:r.summarize(this.video.send),recv:n.summarize(this.video.recv)}}}}})),Un=r(((e,t)=>{t.exports=class{constructor(e,t,n){Object.defineProperties(this,{id:{enumerable:!0,value:e,writable:!0},trackId:{enumerable:!0,value:t,writable:!0},lastStats:{enumerable:!0,value:n,writable:!0}})}}})),Wn=r(((e,t)=>{var n=Bn(),r=Un();t.exports=class extends r{constructor(e,t){super(t.id,e,t),Object.defineProperties(this,{lastReport:{enumerable:!0,value:null,writable:!0}})}next(e,t){let r=this.lastStats;this.lastStats=t,this.trackId=e;let i=n.of(e,r,t);return this.lastReport=i,i}}})),Gn=r(((e,t)=>{var n=Un(),r=Vn();t.exports=class extends n{constructor(e,t){super(t.id,e,t),Object.defineProperties(this,{lastReport:{enumerable:!0,value:null,writable:!0}})}next(e,t,n){let i=this.lastStats;this.lastStats=t,this.trackId=e;let a=r.of(e,i,t,n);return this.lastReport=a,a}}})),Kn=r(((e,t)=>{var{guessBrowser:n}=X(),r=In(),i=Hn(),a=Wn(),o=Gn(),s=class{constructor(e){Object.defineProperties(this,{pc:{enumerable:!0,value:e},ice:{enumerable:!0,value:new r},audio:{enumerable:!0,value:{send:new Map,recv:new Map}},video:{enumerable:!0,value:{send:new Map,recv:new Map}},lastReport:{enumerable:!0,value:null,writable:!0}})}next(){return(n()===`firefox`?b(this):x(this)).then(()=>{let e=[...this.audio.send.values()],t=[...this.video.send.values()],n=[...this.audio.recv.values()],r=[...this.video.recv.values()],a=new i(this.ice.lastReport,{send:e.map(e=>e.lastReport).filter(e=>e),recv:n.map(e=>e.lastReport).filter(e=>e)},{send:t.map(e=>e.lastReport).filter(e=>e),recv:r.map(e=>e.lastReport).filter(e=>e)});return this.lastReport=a,a})}};function c(e){return Promise.all(e.map(e=>{let t=e.track.id;return e.getStats().then(e=>{for(let n of e.values())n.type===`inbound-rtp`&&(n.id=`${t}-${n.id}`);return[t,e]})})).then(e=>new Map(e))}function l(e,t,n,r,i){let a=t[r.mediaType];if(!i){let e=n.get(r.trackId);e&&(i=e.trackIdentifier)}
38if(a&&i){if(a.has(r.id))return a.get(r.id);let t=new e(i,r);a.set(r.id,t)}return null}function u(e){return{audio:e.audio.send,video:e.video.send}}function d(e){return{audio:e.audio.recv,video:e.video.recv}}function f(e,t,n,r){return l(o,u(e),t,n,r)}function p(e,t,n,r){return l(a,d(e),t,n,r)}function m(e){return{audio:new Set(e.audio.send.keys()),video:new Set(e.video.send.keys())}}function h(e){return{audio:new Set(e.audio.recv.keys()),video:new Set(e.video.recv.keys())}}function g(e,t,r,i){for(let a of t.values())if(a.type===`outbound-rtp`&&!a.isRemote){if(n()!==`firefox`&&!a.trackId)continue;let o=r[a.mediaType];o&&o.delete(a.id);let s=f(e,t,a,i);if(s){let e=t.get(a.remoteId);s.next(i||s.trackId,a,e)}}}function _(e,t,n,r){for(let i of t.values())if(i.type===`inbound-rtp`&&!i.isRemote){let a=n[i.mediaType];a&&a.delete(i.id);let o=p(e,t,i,r);o&&o.next(r||o.trackId,i)}}function v(e,t){for(let n in t){let r=e[n];t[n].forEach(e=>r.delete(e))}}function y(e,t){let n;for(let e of t.values())e.type===`transport`&&(n=t.get(e.selectedCandidatePairId));if(n){e.next(n);return}for(let n of t.values())n.type===`candidate-pair`&&n.nominated&&(!(`selected`in n)||n.selected)&&e.next(n)}function b(e){let t=e.pc.getTransceivers().filter(e=>e.currentDirection&&e.currentDirection.match(/send/)&&e.sender.track).map(e=>e.sender),n=e.pc.getTransceivers().filter(e=>e.currentDirection&&e.currentDirection.match(/recv/)).map(e=>e.receiver);return Promise.all([c(t),c(n),e.pc.getStats()]).then(([t,n,r])=>{let i=u(e),a=m(e);t.forEach((t,n)=>g(e,t,a,n)),v(i,a);let o=d(e),s=h(e);n.forEach((t,n)=>_(e,t,s,n)),v(o,s),y(e.ice,r)})}function x(e){return e.pc.getStats().then(t=>{let n=u(e),r=m(e);g(e,t,r),v(n,r);let i=d(e),a=h(e);_(e,t,a),v(i,a),y(e.ice,t)})}t.exports=s})),qn=r(((e,t)=>{var n=Q(),r=Kn(),i=class extends n{constructor(e,t){super(),Object.defineProperties(this,{_factories:{value:new WeakMap},_manager:{value:e},_signaling:{value:t}}),t.on(`updated`,()=>
38this.emit(`updated`))}get level(){return this._signaling.level}get levels(){return this._signaling.levels}get remoteLevels(){return this._signaling.remoteLevels}start(){this.stop();let e=setTimeout(()=>{this._timeout===e&&a(this).then(t=>{if(this._timeout===e){if(t.length){let[e]=t;this._signaling.put(e)}this.start()}})},200);this._timeout=e}stop(){clearTimeout(this._timeout),this._timeout=null}};function a(e){let t=(e._manager._peerConnections?Array.from(e._manager._peerConnections.values()):[]).map(e=>e._peerConnection).filter(e=>e.signalingState!==`closed`).map(t=>{if(e._factories.has(t))return e._factories.get(t);let n=new r(t);return e._factories.set(t,n),n}).map(e=>e.next().catch(()=>null));return Promise.all(t).then(e=>e.filter(e=>e).map(e=>e.summarize()))}t.exports=i})),Jn=r(((e,t)=>{var{defer:n}=Z();t.exports=class{constructor(){Object.defineProperties(this,{_deferreds:{value:[]},_hasValue:{value:!1,writable:!0},_value:{value:null,writable:!0}})}put(e){this._hasValue=!0,this._value=e;let t=this._deferreds.shift();return t&&t.resolve(e),this}take(){if(this._hasValue&&!this._deferreds.length)return this._hasValue=!1,Promise.resolve(this._value);let e=n();return this._deferreds.push(e),e.promise.then(e=>(this._hasValue=!1,e))}}})),Yn=r(((e,t)=>{var n=Mn(),r=Jn(),i=wt(),a=5e3,o=class extends n{constructor(e,t,n){super(e,`network_quality`,n),Object.defineProperties(this,{_level:{value:null,writable:!0},_levels:{value:null,writable:!0},_remoteLevels:{value:new Map,writable:!0},_networkQualityInputs:{value:new r},_resendTimer:{value:new i(()=>{this._resendTimer.setDelay(this._resendTimer.delay*1.5),this._sendNetworkQualityInputs()},a,!1)},_networkQualityReportLevels:{get(){return{reportLevel:t.local,remoteReportLevel:t.remote}}}}),this.on(`ready`,e=>{e.on(`message`,e=>{this._log.debug(`Incoming: `,e),e.type===`network_quality`&&this._handleNetworkQualityMessage(e)})}),this._sendNetworkQualityInputs()}get level(){return this._level}get levels(){return this._levels}get remoteLevels(){return this._remoteLevels}_handleNetworkQualityMessage(e){let t=!1,n=null,r=e?e.local:null;typeof r==`number`?(n=r,this._levels=null):typeof r==`object`&&r&&(this._levels=r,n=typeof r.level==`number`?r.level:Math.min(r.audio.send,r.audio.recv,r.video.send,r.video.recv)),n!==null&&this.level!==n&&(this._level=n,t=!0),this._remoteLevels=e&&e.remotes?e.remotes.reduce((e,n)=>((this._remoteLevels.get(n.sid)||{}).level!==n.level&&(t=!0),e.set(n.sid,n)),new Map):this._remoteLevels,t&&this.emit(`updated`),this._resendTimer.setDelay(a),this._resendTimer.isSet&&setTimeout(()=>this._sendNetworkQualityInputs(),1e3)}_sendNetworkQualityInputs(){return this._resendTimer.clear(),this._networkQualityInputs.take().then(e=>{this._transport&&this._transport.publish(s(e,this._networkQualityReportLevels))}).finally(()=>{this._resendTimer.start()})}put(e){this._networkQualityInputs.put(e)}};function s(e,t){return Object.assign({type:`network_quality`},e,t)}t.exports=o})),Xn=r(((e,t)=>{var n=Q().EventEmitter;t.exports=class extends n{constructor(){super(),Object.defineProperties(this,{_isEnabled:{value:null,writable:!0},isEnabled:{enumerable:!0,get(){return this._isEnabled}}})}disable(){return this.enable(!1)}enable(e){return e=typeof e!=`boolean`||e,this.isEnabled!==e&&(this._isEnabled=e,this.emit(`updated`)),this}}})),Zn=r(((e,t)=>{var n=Xn();t.exports=class extends n{constructor(){super(),Object.defineProperties(this,{_revision:{value:1,writable:!0}})}update(e){return e.revision<this._revision?this:(this._revision=e.revision,this.enable(e.is_recording))}}})),Qn=r(((t,n)=>{var r=(V(),e(i)),a=fn(),o=jt(),{filterObject:s,flatMap:c,difference:l}=Z(),u=_t();n.exports=class{constructor(e,t,n={}){if(!e||typeof e.getStats!=`function`)throw Error(`StatsMonitor requires a stats source with getStats() method`);if(!t)throw Error(`StatsMonitor requires a log instance`);this._statsSource=e,this._log=t,this._publishIntervalMs=n.publishIntervalMs||1e4,this._collectionIntervalMs=n.collectionIntervalMs||1e3,this._collectionsPerPublish=Math.floor(this._publishIntervalMs/this._collectionIntervalMs),this._stallThreshold=.5,this._resumeThreshold=5,this._initializeState(),this._startStatsCollection()}_initializeState(){this._movingAverageDeltas=new Map,this._interval=null,this._statsCollectionCount=0,this._iceCandidatePublishToggle=!1,this._hasSeenActivePair=!1,this._lastNetworkType=null,this._lastQualityLimitationReasonByTrackSid=new Map,this._stalledTrackSids=new Set}_startStatsCollection(){if(this._interval){this._log.warn(`StatsMonitor already started`);return}this._interval=setInterval(()=>r.__awaiter(this,void 0,void 0,function*(){yield this._collectAndAnalyzeStats()}),this._collectionIntervalMs),this._log.debug(`StatsMonitor started`)}_stopStatsCollection(){this._interval&&=(clearInterval(this._interval),null),this._log.debug(`StatsMonitor stopped`)}_collectAndAnalyzeStats(){return r.__awaiter(this,void 0,void 0,function*(){try{let e=yield this._statsSource.getStats();this._statsCollectionCount++;let t=this._statsCollectionCount%this._collectionsPerPublish===0;t&&(this._iceCandidatePublishToggle=!this._iceCandidatePublishToggle);let n=t&&this._iceCandidatePublishToggle;
38this._analyzeStats(e,t,n)}catch{}})}_analyzeStats(e,t,n){!e||e instanceof Map&&e.size===0||Array.isArray(e)&&e.length===0||e.forEach((e,r)=>{this._checkNetworkTypeChanges(e),this._checkQualityLimitations(e.localVideoTrackStats),this._checkTrackStalls(e.remoteVideoTrackStats),t&&(this._publishStatsReport(r,e),n&&this._publishActiveIceCandidatePair(r,e))})}_checkNetworkTypeChanges(e){let{activeIceCandidatePair:t}=e;if(!t||!t.localCandidate)return;let n=t.localCandidate.networkType;if(n){if(!this._hasSeenActivePair){this._hasSeenActivePair=!0,this._lastNetworkType=n,u.network.typeChanged(n);return}this._lastNetworkType!==n&&(this._log.debug(`Network type changed: ${this._lastNetworkType} -> ${n}`),this._lastNetworkType=n,u.network.typeChanged(n))}}_checkQualityLimitations(e){Array.isArray(e)&&e.forEach(({trackSid:e,qualityLimitationReason:t})=>{if(!e||typeof t!=`string`)return;let n=this._lastQualityLimitationReasonByTrackSid.get(e);n!==t&&(this._log.debug(`Quality limitation reason changed for track ${e}: ${n||`none`} -> ${t}`),this._lastQualityLimitationReasonByTrackSid.set(e,t),u.quality.limitationChanged(e,t))})}_checkTrackStalls(e){Array.isArray(e)&&e.forEach(({trackSid:e,frameRateReceived:t})=>{if(t===void 0)return;let n=typeof t==`number`&&!isNaN(t)?t:0,r=this._stalledTrackSids.has(e);!r&&n<this._stallThreshold?(this._stalledTrackSids.add(e),this._log.debug(`Track ${e} stalled: frame rate ${n} below threshold ${this._stallThreshold}`),u.track.stalled(e,n,this._stallThreshold)):r&&n>=this._resumeThreshold&&(this._stalledTrackSids.delete(e),this._log.debug(`Track ${e} resumed: frame rate ${n} above threshold ${this._resumeThreshold}`),u.track.resumed(e,n,this._resumeThreshold))})}_addLocalTrackMetrics(e,t){let{framesEncoded:n,packetsSent:r,totalEncodeTime:i,totalPacketSendDelay:a}=t,s=Object.assign({},e),c=`${e.trackSid}+${e.ssrc}`,l=this._movingAverageDeltas.get(c)||new Map;if(typeof i==`number`&&typeof n==`number`){let e=l.get(`avgEncodeDelay`)||new o;e.putSample(i*1e3,n),s.avgEncodeDelay=Math.round(e.get()),l.set(`avgEncodeDelay`,e)}if(typeof a==`number`&&typeof r==`number`){let e=l.get(`avgPacketSendDelay`)||new o;e.putSample(a*1e3,r),s.avgPacketSendDelay=Math.round(e.get()),l.set(`avgPacketSendDelay`,e)}return this._movingAverageDeltas.set(c,l),s}_addRemoteTrackMetrics(e,t){let{estimatedPlayoutTimestamp:n,framesDecoded:r,jitterBufferDelay:i,jitterBufferEmittedCount:a,totalDecodeTime:s}=t,c=Object.assign({},e),l=`${e.trackSid}+${e.ssrc}`,u=this._movingAverageDeltas.get(l)||new Map;if(typeof n==`number`&&(c.estimatedPlayoutTimestamp=n),typeof r==`number`&&typeof s==`number`){let e=u.get(`avgDecodeDelay`)||new o;e.putSample(s*1e3,r),c.avgDecodeDelay=Math.round(e.get()),u.set(`avgDecodeDelay`,e)}if(typeof i==`number`&&typeof a==`number`){let e=u.get(`avgJitterBufferDelay`)||new o;e.putSample(i*1e3,a),c.avgJitterBufferDelay=Math.round(e.get()),u.set(`avgJitterBufferDelay`,e)}return this._movingAverageDeltas.set(l,u),c}_cleanupMovingAverageDeltas(e){let t=c([`localAudioTrackStats`,`localVideoTrackStats`,`remoteAudioTrackStats`,`remoteVideoTrackStats`],t=>e[t].map(({ssrc:e,trackSid:t})=>`${t}+${e}`));l(Array.from(this._movingAverageDeltas.keys()),t).forEach(e=>this._movingAverageDeltas.delete(e))}_publishStatsReport(e,t){let n=new a(e,t,!0);u.quality.statsReport({audioTrackStats:n.remoteAudioTrackStats.map((e,n)=>this._addRemoteTrackMetrics(e,t.remoteAudioTrackStats[n])),localAudioTrackStats:n.localAudioTrackStats.map((e,n)=>this._addLocalTrackMetrics(e,t.localAudioTrackStats[n])),localVideoTrackStats:n.localVideoTrackStats.map((e,n)=>this._addLocalTrackMetrics(e,t.localVideoTrackStats[n])),peerConnectionId:n.peerConnectionId,videoTrackStats:n.remoteVideoTrackStats.map((e,n)=>this._addRemoteTrackMetrics(e,t.remoteVideoTrackStats[n]))}),this._cleanupMovingAverageDeltas(n)}_publishActiveIceCandidatePair(e,t){let n=this._replaceNullsWithDefaults(t.activeIceCandidatePair,e);u.quality.iceCandidatePair(n)}_replaceNullsWithDefaults(e,t){return e=Object.assign({availableIncomingBitrate:0,availableOutgoingBitrate:0,bytesReceived:0,bytesSent:0,consentRequestsSent:0,currentRoundTripTime:0,lastPacketReceivedTimestamp:0,lastPacketSentTimestamp:0,nominated:!1,peerConnectionId:t,priority:0,readable:!1,requestsReceived:0,requestsSent:0,responsesReceived:0,responsesSent:0,retransmissionsReceived:0,retransmissionsSent:0,state:`failed`,totalRoundTripTime:0,transportId:``,writable:!1},s(e||{},null)),e.localCandidate=Object.assign({candidateType:`host`,deleted:!1,ip:``,port:0,priority:0,protocol:`udp`,url:``},s(e.localCandidate||{},null)),e.remoteCandidate=Object.assign({candidateType:`host`,ip:``,port:0,priority:0,protocol:`udp`,url:``},s(e.remoteCandidate||{},null)),e}cleanup(){this._stopStatsCollection(),this._movingAverageDeltas.clear(),this._lastQualityLimitationReasonByTrackSid.clear(),this._stalledTrackSids.clear()}}})),$n=r(((e,t)=>{var n=Xn(),r=St(),i=wt(),{buildLogLevels:a}=Z(),{DEFAULT_LOG_LEVEL:o}=J(),s=Y(),{MediaConnectionError:c,MediaDTLSTransportFailedError:l,SignalingConnectionDisconnectedError:u}=$(),d=0,f={connected:[`reconnecting`,`disconnected`],reconnecting:[`connected`,`disconnected`],disconnected:[]},p=class extends r{constructor(e,t,r,c){c=Object.assign({logLevel:o,RecordingSignaling:n,Timeout:i},c);let u=a(c.logLevel);super(`connected`,f);let p=c.RecordingSignaling,h=new c.Timeout(()=>{this._disconnect(this._reconnectingError)},c.sessionTimeout,!1);Object.defineProperties(this,{_instanceId:{value:d++},_log:{value:c.log?c.log.createLog(`default`,this):new s(`default`,this,u,c.loggerName)}
38,_mediaConnectionIsReconnecting:{writable:!0,value:!1},_options:{value:c},_reconnectingError:{value:null,writable:!0},_sessionTimeout:{value:h},dominantSpeakerSid:{enumerable:!0,value:null,writable:!0},localParticipant:{enumerable:!0,value:e},name:{enumerable:!0,value:r},participants:{enumerable:!0,value:new Map},recording:{enumerable:!0,value:new p},sid:{enumerable:!0,value:t}}),this.on(`connectionStateChanged`,()=>{this.connectionState===`failed`&&![`disconnected`,`failed`].includes(this.iceConnectionState)&&this._disconnect(new l)}),this.on(`iceConnectionStateChanged`,()=>m(this)),this.on(`signalingConnectionStateChanged`,()=>m(this)),setTimeout(()=>m(this))}_disconnect(e){return this.state!==`disconnected`&&(this.preempt(`disconnected`,null,[e]),!0)}toString(){return`[RoomSignaling #${this._instanceId}: ${this.localParticipant?this.localParticipant.sid:`null`}]`}connectParticipant(e){let t=this;return e.state===`disconnected`||this.participants.has(e.sid)?!1:(this.participants.set(e.sid,e),e.on(`stateChanged`,function n(r){r===`disconnected`&&(e.removeListener(`stateChanged`,n),t.participants.delete(e.sid),t.emit(`participantDisconnected`,e))}),this.emit(`participantConnected`,e),!0)}disconnect(){return this._disconnect()}setDominantSpeaker(e){this.dominantSpeakerSid=e,this.emit(`dominantSpeakerChanged`)}};function m(e){if(e.state===`disconnected`||e.signalingConnectionState===`disconnected`){e._sessionTimeout.clear();return}let t;e.signalingConnectionState===`reconnecting`?t=e.signalingConnectionState:e.iceConnectionState===`failed`?(e._mediaConnectionIsReconnecting=!0,t=`reconnecting`):e.iceConnectionState===`new`||e.iceConnectionState===`checking`?t=e._mediaConnectionIsReconnecting?`reconnecting`:`connected`:(e._mediaConnectionIsReconnecting=!1,e._reconnectingError=null,e._sessionTimeout.clear(),t=`connected`),t!==e.state&&(t===`reconnecting`?(e._reconnectingError=e.signalingConnectionState===`reconnecting`?new u:new c,e._sessionTimeout.start(),e.preempt(t,null,[e._reconnectingError])):e.preempt(t))}t.exports=p})),er=r(((e,t)=>{t.exports=class{constructor({actual:e=null,available:t=null,level:n=null}){Object.defineProperties(this,{actual:{value:e,enumerable:!0},available:{value:t,enumerable:!0},level:{value:n,enumerable:!0}})}}})),tr=r(((e,t)=>{t.exports=class{constructor({fractionLost:e=null,level:t=null}){Object.defineProperties(this,{fractionLost:{value:e,enumerable:!0},level:{value:t,enumerable:!0}})}}})),nr=r(((e,t)=>{t.exports=class{constructor({jitter:e=null,rtt:t=null,level:n=null}){Object.defineProperties(this,{jitter:{value:e,enumerable:!0},rtt:{value:t,enumerable:!0},level:{value:n,enumerable:!0}})}}})),rr=r(((e,t)=>{var n=er(),r=tr(),i=nr();t.exports=class{constructor({bandwidth:e=null,fractionLost:t=null,latency:a=null}){Object.defineProperties(this,{bandwidth:{value:e?new n(e):null,enumerable:!0},fractionLost:{value:t?new r(t):null,enumerable:!0},latency:{value:a?new i(a):null,enumerable:!0}})}}})),ir=r(((e,t)=>{var n=rr();t.exports=class extends n{constructor(e){super(e)}}})),ar=r(((e,t)=>{var n=rr();t.exports=class extends n{constructor(e){super(e)}}})),or=r(((e,t)=>{var n=ir(),r=ar();t.exports=class{constructor({send:e,recv:t,sendStats:i=null,recvStats:a=null}){Object.defineProperties(this,{send:{value:e,enumerable:!0},recv:{value:t,enumerable:!0},sendStats:{value:i?new n(i):null,enumerable:!0},recvStats:{value:a?new r(a):null,enumerable:!0}})}}})),sr=r(((e,t)=>{var n=or();t.exports=class extends n{constructor(e){super(e)}}})),cr=r(((e,t)=>{var n=or();t.exports=class extends n{constructor(e){super(e)}}})),lr=r(((e,t)=>{var n=sr(),r=cr();t.exports=class{constructor({level:e,audio:t,video:i}){Object.defineProperties(this,{level:{value:e,enumerable:!0},audio:{value:t?new n(t):null,enumerable:!0},video:{value:i?new r(i):null,enumerable:!0}})}}})),ur=r(((e,t)=>{var n=St(),r=lr(),i={connecting:[`connected`],connected:[`disconnected`,`reconnecting`],reconnecting:[`connected`,`disconnected`],disconnected:[]};t.exports=class extends n{constructor(){super(`connecting`,i),Object.defineProperties(this,{_identity:{writable:!0,value:null},_networkQualityLevel:{value:null,writable:!0},_networkQualityStats:{value:null,writable:!0},_sid:{writable:!0,value:null},identity:{enumerable:!0,get(){return this._identity}},sid:{enumerable:!0,get(){return this._sid}},tracks:{enumerable:!0,value:new Map}})}get networkQualityLevel(){return this._networkQualityLevel}get networkQualityStats(){return this._networkQualityStats}
38addTrack(e){return this.tracks.set(e.id||e.sid,e),this.emit(`trackAdded`,e),this}disconnect(){return this.state!==`disconnected`&&(this.preempt(`disconnected`),!0)}removeTrack(e){let t=this.tracks.get(e.id||e.sid);return this.tracks.delete(e.id||e.sid),t&&this.emit(`trackRemoved`,e),t||null}setNetworkQualityLevel(e,t){this._networkQualityLevel!==e&&(this._networkQualityLevel=e,this._networkQualityStats=t&&(t.audio||t.video)?new r(t):null,this.emit(`networkQualityLevelChanged`))}connect(e,t){return this.state===`connecting`||this.state===`reconnecting`?(this._sid||=e,this._identity||=t,this.preempt(`connected`),!0):!1}reconnecting(){return this.state===`connecting`||this.state===`connected`?(this.preempt(`reconnecting`),!0):!1}}})),dr=r(((e,t)=>{var n=ur();t.exports=class extends n{constructor(e,t){super(),this.connect(e,t)}}})),fr=r(((e,t)=>{var{EventEmitter:n}=Q();t.exports=class extends n{constructor(e,t,n,r){super();let i=null;Object.defineProperties(this,{_error:{value:null,writable:!0},_isEnabled:{value:n,writable:!0},_priority:{value:r,writable:!0},_trackTransceiver:{value:null,writable:!0},_sid:{get(){return i},set(e){i===null&&(i=e)}},kind:{enumerable:!0,value:t},name:{enumerable:!0,value:e}})}get error(){return this._error}get isEnabled(){return this._isEnabled}get priority(){return this._priority}get sid(){return this._sid}get trackTransceiver(){return this._trackTransceiver}disable(){return this.enable(!1)}enable(e){return e=typeof e!=`boolean`||e,this.isEnabled!==e&&(this._isEnabled=e,this.emit(`updated`)),this}setTrackTransceiver(e){return e||=null,this.trackTransceiver!==e&&(this._trackTransceiver=e,this.emit(`updated`)),this}setSid(e){return this.sid===null&&(this._sid=e,this.emit(`updated`)),this}}})),pr=r(((e,t)=>{var n=fr();t.exports=class extends n{constructor(e,t,n,r,i,a){super(t,n,r,i),Object.defineProperties(this,{_isSwitchedOff:{value:a,writable:!0}}),this.setSid(e)}get isSubscribed(){return!!this.trackTransceiver}get isSwitchedOff(){return this._isSwitchedOff}subscribeFailed(e){return this.error||(this._error=e,this.emit(`updated`)),this}setPriority(e){return this._priority!==e&&(this._priority=e,this.emit(`updated`)),this}setSwitchedOff(e){return this._isSwitchedOff!==e&&(this._isSwitchedOff=e,this.emit(`updated`)),this}}})),mr=r(((e,t)=>{var n=pr();t.exports=class extends n{constructor(e,t){super(e.sid,e.name,e.kind,e.enabled,e.priority,t)}update(e){return this.enable(e.enabled),this.setPriority(e.priority),this}}})),hr=r(((e,t)=>{var n=dr(),r=mr();t.exports=class extends n{constructor(e,t,n,i,a,o){return super(e.sid,e.identity),o=Object.assign({RemoteTrackPublicationV2:r},o),Object.defineProperties(this,{_revision:{writable:!0,value:null},_RemoteTrackPublicationV2:{value:o.RemoteTrackPublicationV2},_getInitialTrackSwitchOffState:{value:t},updateSubscriberTrackPriority:{value:(e,t)=>n(e,t)},updateTrackRenderHint:{value:(e,t)=>i(e,t)},clearTrackHint:{value:e=>a(e)},revision:{enumerable:!0,get(){return this._revision}}}),this.update(e)}_getOrCreateTrack(e){let t=this._RemoteTrackPublicationV2,n=this.tracks.get(e.sid);return n||(n=new t(e,this._getInitialTrackSwitchOffState(e.sid)),this.addTrack(n)),n}update(e){if(this.revision!==null&&e.revision<=this.revision)return this;this._revision=e.revision;let t=new Set;switch(e.tracks.forEach(e=>{let n=this._getOrCreateTrack(e);n.update(e),t.add(n)}),this.tracks.forEach(e=>{t.has(e)||this.removeTrack(e)}),e.state){case`disconnected`:this.disconnect();break;case`reconnecting`:this.reconnecting();break;case`connected`:this.connect(this.sid,this.identity)}return this}}})),gr=r(((e,t)=>{var n=Mn();t.exports=class extends n{constructor(e,t){super(e,`track_priority`,t),Object.defineProperties(this,{_enqueuedPriorityUpdates:{value:new Map}}),this.on(`ready`,e=>{Array.from(this._enqueuedPriorityUpdates.keys()).forEach(t=>{e.publish({type:`track_priority`,track:t,subscribe:this._enqueuedPriorityUpdates.get(t)})})})}sendTrackPriorityUpdate(e,t,n){if(t!==`subscribe`)throw Error(`only subscribe priorities are supported, found: `+t);this._enqueuedPriorityUpdates.set(e,n),this._transport&&this._transport.publish({type:`track_priority`,track:e,subscribe:n})}}})),_r=r(((e,t)=>{var n=Mn();t.exports=class extends n{constructor(e,t){super(e,`track_switch_off`,t),this.on(`ready`,e=>{e.on(`message`,e=>{e.type===`track_switch_off`&&this._setTrackSwitchOffUpdates(e.off||[],e.on||[])})})}
38_setTrackSwitchOffUpdates(e,t){this.emit(`updated`,e,t)}}})),vr=r(((e,t)=>{var n=Mn(),r=wt(),{isDeepEqual:i}=Z(),a=2e3,o=1;t.exports=class extends n{constructor(e,t){super(e,`render_hints`,t),Object.defineProperties(this,{_trackSidsToRenderHints:{value:new Map},_responseTimer:{value:new r(()=>{this._sendAllHints(),this._responseTimer.setDelay(this._responseTimer.delay*2)},a,!1)}}),this.on(`ready`,e=>{e.on(`message`,e=>{switch(this._log.debug(`Incoming: `,e),e.type){case`render_hints`:this._processHintResults(e&&e.subscriber&&e.subscriber.hints||[]);break;default:this._log.warn(`Unknown message type: `,e.type)}}),this._sendAllHints()})}_sendAllHints(){Array.from(this._trackSidsToRenderHints.keys()).forEach(e=>{let t=this._trackSidsToRenderHints.get(e);t.renderDimensions&&(t.isDimensionDirty=!0),`enabled`in t&&(t.isEnabledDirty=!0)}),this._sendHints()}_processHintResults(e){this._responseTimer.clear(),this._responseTimer.setDelay(a),e.forEach(e=>{e.result!==`OK`&&this._log.debug(`Server error processing hint:`,e)}),this._sendHints()}_sendHints(){if(!this._transport||this._responseTimer.isSet)return;let e=[];
38if(Array.from(this._trackSidsToRenderHints.keys()).forEach(t=>{let n=this._trackSidsToRenderHints.get(t);if(n.isEnabledDirty||n.isDimensionDirty){let r={track:t};n.isEnabledDirty&&=(r.enabled=n.enabled,!1),n.isDimensionDirty&&=(r.render_dimensions=n.renderDimensions,!1),e.push(r)}}),e.length>0){let t={type:`render_hints`,subscriber:{id:o++,hints:e}};this._log.debug(`Outgoing: `,t),this._transport.publish(t),this._responseTimer.start()}}setTrackHint(e,t){let n=this._trackSidsToRenderHints.get(e)||{isEnabledDirty:!1,isDimensionDirty:!1};`enabled`in t&&n.enabled!==t.enabled&&(n.enabled=!!t.enabled,n.isEnabledDirty=!0),t.renderDimensions&&!i(t.renderDimensions,n.renderDimensions)&&(n.renderDimensions=t.renderDimensions,n.isDimensionDirty=!0),this._trackSidsToRenderHints.set(e,n),this._sendHints()}clearTrackHint(e){this._trackSidsToRenderHints.delete(e)}}})),yr=r(((e,t)=>{var n=Mn(),r=1;t.exports=class extends n{constructor(e,t){super(e,`publisher_hints`,t),this.on(`ready`,e=>{this._log.debug(`publisher_hints transport ready:`,e),e.on(`message`,e=>{switch(this._log.debug(`Incoming: `,e),e.type){case`publisher_hints`:e.publisher&&e.publisher.hints&&e.publisher.id&&this._processPublisherHints(e.publisher.hints,e.publisher.id);break;default:this._log.warn(`Unknown message type: `,e.type)}})})}sendTrackReplaced({trackSid:e}){if(!this._transport)return;let t={type:`client_reset`,track:e,id:r++};this._log.debug(`Outgoing: `,t),this._transport.publish(t)}sendHintResponse({id:e,hints:t}){if(!this._transport)return;let n={type:`publisher_hints`,id:e,hints:t};this._log.debug(`Outgoing: `,n),this._transport.publish(n)}_processPublisherHints(e,t){try{this.emit(`updated`,e,t)}catch(e){this._log.error(`error processing hints:`,e)}}}})),br=r(((e,t)=>{var n=Nn(),r=Pn(),i=qn(),a=Yn(),o=Zn(),s=Qn(),c=$n(),l=hr(),u=gr(),d=_r(),f=vr(),p=yr(),{constants:{DEFAULT_SESSION_TIMEOUT_SEC:m},createBandwidthProfilePayload:h,defer:g,flatMap:_,oncePerTick:v}
38=Z(),{createTwilioError:y}=$(),b=1e4,x=1e3,S=class extends c{constructor(e,t,c,h,g){t.options=Object.assign({session_timeout:m},t.options),g=Object.assign({DominantSpeakerSignaling:n,TranscriptionSignaling:r,NetworkQualityMonitor:i,NetworkQualitySignaling:a,RecordingSignaling:o,RemoteParticipantV2:l,TrackPrioritySignaling:u,TrackSwitchOffSignaling:d,bandwidthProfile:null,sessionTimeout:t.options.session_timeout*1e3,statsPublishIntervalMs:b,statsCollectionIntervalMs:x},g),e.setBandwidthProfile(g.bandwidthProfile);let{options:{signaling_region:_,audio_processors:v=[]}}=t;e.setSignalingRegion(_),v.includes(`krisp`)&&v.push(`rnnoise`),e.setAudioProcessors(v),h.setIceReconnectTimeout(g.sessionTimeout),super(e,t.sid,t.name,g);let y=e=>this._getTrackReceiver(e),S=this._log;Object.defineProperties(this,{_disconnectedParticipantRevisions:{value:new Map},_NetworkQualityMonitor:{value:g.NetworkQualityMonitor},_lastBandwidthProfileRevision:{value:e.bandwidthProfileRevision,writable:!0},_mediaStatesWarningsRevision:{value:0,writable:!0},_networkQualityMonitor:{value:null,writable:!0},_networkQualityConfiguration:{value:e.networkQualityConfiguration},_peerConnectionManager:{value:h},_published:{value:new Map},_publishedRevision:{value:0,writable:!0},_RemoteParticipantV2:{value:g.RemoteParticipantV2},_subscribed:{value:new Map},_subscribedRevision:{value:0,writable:!0},_subscriptionFailures:{value:new Map},_dominantSpeakerSignaling:{value:new g.DominantSpeakerSignaling(y,{log:S})},_transcriptionSignaling:{value:new g.TranscriptionSignaling(y,{log:S})},_networkQualitySignaling:{value:new g.NetworkQualitySignaling(y,e.networkQualityConfiguration,{log:S})},_renderHintsSignaling:{value:new f(y,{log:S})},_publisherHintsSignaling:{value:new p(y,{log:S})},_trackPrioritySignaling:{value:new g.TrackPrioritySignaling(y,{log:S})},_trackSwitchOffSignaling:{value:new g.TrackSwitchOffSignaling(y,{log:S})},_pendingSwitchOffStates:{value:new Map},_statsMonitor:{value:g.eventObserver&&g.insights?new s(this,S,{publishIntervalMs:g.statsPublishIntervalMs,collectionIntervalMs:g.statsCollectionIntervalMs}):null},_transport:{value:c},_trackReceiverDeferreds:{value:new Map},mediaRegion:{enumerable:!0,value:t.options.media_region||null}}),this._initTrackSwitchOffSignaling(),this._initDominantSpeakerSignaling(),this._initTranscriptionSignaling(),this._initNetworkQualityMonitorSignaling(),this._initPublisherHintSignaling(),E(this,e),D(this,h),O(this,c),this._statsMonitor&&this.on(`stateChanged`,e=>{e===`disconnected`&&this._statsMonitor&&this._statsMonitor.cleanup()}),this._update(t),this._peerConnectionManager.setEffectiveAdaptiveSimulcast(this._publisherHintsSignaling.isSetup)}get connectionState(){return this._peerConnectionManager.connectionState}get signalingConnectionState(){return this._transport.state===`syncing`?`reconnecting`:this._transport.state}get iceConnectionState(){return this._peerConnectionManager.iceConnectionState}_deleteTrackReceiverDeferred(e){return this._trackReceiverDeferreds.delete(e)}_getOrCreateTrackReceiverDeferred(e){let t=this._trackReceiverDeferreds.get(e)||g(),n=this._peerConnectionManager.getTrackReceivers().find(t=>t.id===e&&t.readyState!==`ended`);return n?t.resolve(n):this._trackReceiverDeferreds.set(e,t),t}_addTrackReceiver(e){return this._getOrCreateTrackReceiverDeferred(e.id).resolve(e),this}_disconnect(e){let t=super._disconnect.call(this,e);return t&&(this._teardownNetworkQualityMonitor(),this._transport.disconnect(),this._peerConnectionManager.close()),this.localParticipant.tracks.forEach(t=>{t.publishFailed(e||Error(`LocalParticipant disconnected`))}),t}_getTrackReceiver(e){return this._getOrCreateTrackReceiverDeferred(e).promise.then(t=>(this._deleteTrackReceiverDeferred(e),t))}_getInitialTrackSwitchOffState(e){let t=this._pendingSwitchOffStates.get(e)||!1;return this._pendingSwitchOffStates.delete(e),t&&this._log.warn(`[${e}] was initially switched off! `),t}_getTrackSidsToTrackSignalings(){let e=_(this.participants,e=>Array.from(e.tracks));return new Map(e)}_getOrCreateRemoteParticipant(e){let t=this._RemoteParticipantV2,n=this.participants.get(e.sid),r=this;return n||(n=new t(e,e=>this._getInitialTrackSwitchOffState(e),(e,t)=>this._trackPrioritySignaling.sendTrackPriorityUpdate(e,`subscribe`,t),(e,t)=>this._renderHintsSignaling.setTrackHint(e,t),e=>this._renderHintsSignaling.clearTrackHint(e)),n.on(`stateChanged`,function e(t){t===`disconnected`&&(n.removeListener(`stateChanged`,e),r.participants.delete(n.sid),r._disconnectedParticipantRevisions.set(n.sid,n.revision))}),this.connectParticipant(n)),n}_getState(){return{participant:this.localParticipant.getState()}}_maybeAddBandwidthProfile(e){let{bandwidthProfile:t,bandwidthProfileRevision:n}=this.localParticipant;return t&&this._lastBandwidthProfileRevision<n?(this._lastBandwidthProfileRevision=n,Object.assign({bandwidth_profile:h(t)},e)):e}
38_publishNewLocalParticipantState(){this._transport.publish(this._maybeAddBandwidthProfile(this._getState()))}_publishPeerConnectionState(e){this._transport.publish(Object.assign({peer_connections:[e]},this._getState()))}_update(e){if(e.subscribed&&e.subscribed.revision>this._subscribedRevision){this._subscribedRevision=e.subscribed.revision,e.subscribed.tracks.forEach(e=>{e.id?(this._subscriptionFailures.delete(e.sid),this._subscribed.set(e.sid,e.id)):e.error&&!this._subscriptionFailures.has(e.sid)&&this._subscriptionFailures.set(e.sid,e.error)});let t=new Set(e.subscribed.tracks.filter(e=>!!e.id).map(e=>e.sid));this._subscribed.forEach((e,n)=>{t.has(n)||this._subscribed.delete(n)})}let t=new Set;return(e.participants||[]).forEach(e=>{if(e.sid===this.localParticipant.sid)return;let n=this._disconnectedParticipantRevisions.get(e.sid);if(n&&e.revision<=n)return;n&&this._disconnectedParticipantRevisions.delete(e.sid);let r=this._getOrCreateRemoteParticipant(e);r.update(e),t.add(r)}),e.type===`synced`&&this.participants.forEac
38h(e=>{t.has(e)||e.disconnect()}),k(this),e.peer_connections&&this._peerConnectionManager.update(e.peer_connections,e.type===`synced`),e.recording&&this.recording.update(e.recording),e.published&&e.published.revision>this._publishedRevision&&(this._publishedRevision=e.published.revision,e.published.tracks.forEach(e=>{e.sid&&this._published.set(e.id,e.sid)}),this.localParticipant.update(e.published)),e.participant&&this.localParticipant.connect(e.participant.sid,e.participant.identity),[this._dominantSpeakerSignaling,this._transcriptionSignaling,this._networkQualitySignaling,this._trackPrioritySignaling,this._trackSwitchOffSignaling,this._renderHintsSignaling,this._publisherHintsSignaling].forEach(t=>{let n=t.channel;!t.isSetup&&e.media_signaling&&e.media_signaling[n]&&e.media_signaling[n].transport&&e.media_signaling[n].transport.type===`data-channel`&&t.setup(e.media_signaling[n].transport.label)}),e.type===`warning`&&e.states&&e.states.revision>this._mediaStatesWarningsRevision&&(this._mediaStatesWarningsRevision=e.states.revision,this.localParticipant.updateMediaStates(e.states)),this}_initPublisherHintSignaling(){this._publisherHintsSignaling.on(`updated`,(e,t)=>{Promise.all(e.map(e=>this.localParticipant.setPublisherHint(e.track,e.encodings).then(t=>({track:e.track,result:t})))).then(e=>{this._publisherHintsSignaling.sendHintResponse({id:t,hints:e})})});let e=e=>{e.kind===`video`&&e.trackTransceiver.on(`replaced`,()=>{this._publisherHintsSignaling.sendTrackReplaced({trackSid:e.sid})})};Array.from(this.localParticipant.tracks.values()).forEach(t=>e(t)),this.localParticipant.on(`trackAdded`,t=>e(t))}_initTrackSwitchOffSignaling(){this._trackSwitchOffSignaling.on(`updated`,(e,t)=>{try{this._log.debug(`received trackSwitch: `,{tracksOn:t,tracksOff:e});let n=new Map;t.forEach(e=>n.set(e,!0)),e.forEach(e=>{n.get(e)&&this._log.warn(`${e} is DUPLICATED in both tracksOff and tracksOn list`),n.set(e,!1)}
38),this.participants.forEach(e=>{e.tracks.forEach(e=>{let t=n.get(e.sid);t!==void 0&&(e.setSwitchedOff(!t),n.delete(e.sid))})}),n.forEach((e,t)=>this._pendingSwitchOffStates.set(t,!e))}catch(e){this._log.error(`error processing track switch off:`,e)}})}_initDominantSpeakerSignaling(){this._dominantSpeakerSignaling.on(`updated`,()=>this.setDominantSpeaker(this._dominantSpeakerSignaling.loudestParticipantSid))}_initTranscriptionSignaling(){this._transcriptionSignaling.on(`transcription`,e=>{this.emit(`transcription`,e)})}_initNetworkQualityMonitorSignaling(){this._networkQualitySignaling.on(`ready`,()=>{let e=new this._NetworkQualityMonitor(this._peerConnectionManager,this._networkQualitySignaling);this._networkQualityMonitor=e,e.on(`updated`,()=>{this.iceConnectionState!==`failed`&&(this.localParticipant.setNetworkQualityLevel(e.level,e.levels),this.participants.forEach(t=>{let n=e.remoteLevels.get(t.sid);n&&t.setNetworkQualityLevel(n.level,n)}))}),e.start()}),this._networkQualitySignaling.on(`teardown`,()=>this._teardownNetworkQualityMonitor())}_teardownNetworkQualityMonitor(){this._networkQualityMonitor&&=(this._networkQualityMonitor.stop(),null)}getStats(){return this._peerConnectionManager.getStats().then(e=>new Map(Array.from(e).map(([e,t])=>[e,Object.assign({},t,{localAudioTrackStats:w(this,t.localAudioTrackStats),localVideoTrackStats:w(this,t.localVideoTrackStats),remoteAudioTrackStats:T(this,t.remoteAudioTrackStats),remoteVideoTrackStats:T(this,t.remoteVideoTrackStats)})])))}};function C(e,t){return t.reduce((t,n)=>{let r=e.get(n.trackId);return r?[Object.assign({},n,{trackSid:r})].concat(t):t},[])}function w(e,t){return C(e._published,t)}function T(e,t){return C(new Map(Array.from(e._subscribed.entries()).map(([e,t])=>[t,e])),t)}function E(e,t){let n=v(()=>{e._publishNewLocalParticipantState()}),r=v(()=>{let n=_(t.tracks,e=>e.trackTransceiver);e._peerConnectionManager.setTrackSenders(n)});t.on(`trackAdded`,r),t.on(`trackRemoved`,r),t.on(`updated`,n),e.on(`stateChanged`,function i(a){a===`disconnected`&&(t.removeListener(`trackAdded`,r),t.removeListener(`trackRemoved`,r),t.removeListener(`updated`,n),e.removeListener(`stateChanged`,i),t.disconnect())}),e.on(`signalingConnectionStateChanged`,()=>{let{localParticipant:t,signalingConnectionState:n}=e,{identity:r,sid:i}=t;switch(n){case`connected`:t.connect(i,r);break;case`reconnecting`:t.reconnecting()}})}function D(e,t){t.on(`description`,function(t){e._publishPeerConnectionState(t)}),t.dequeue(`description`),t.on(`candidates`,function(t){e._publishPeerConnectionState(t)}),t.dequeue(`candidates`),t.on(`trackAdded`,e._addTrackReceiver.bind(e)),t.dequeue(`trackAdded`),t.getTrackReceivers().forEach(e._addTrackReceiver,e),t.on(`connectionStateChanged`,()=>{e.emit(`connectionStateChanged`)}),t.on(`iceConnectionStateChanged`,()=>{e.emit(`iceConnectionStateChanged`),e.iceConnectionState===`failed`&&(e.localParticipant.networkQualityLevel!==null&&e.localParticipant.setNetworkQualityLevel(0),e.participants.forEac
38h(e=>{e.networkQualityLevel!==null&&e.setNetworkQualityLevel(0)}))})}function O(e,t){t.on(`message`,e._update.bind(e)),t.on(`stateChanged`,function n(r,i){r===`disconnected`&&(e.state!==`disconnected`&&e._disconnect(i),t.removeListener(`stateChanged`,n)),e.emit(`signalingConnectionStateChanged`)})}function k(e){let t=e._getTrackSidsToTrackSignalings();e._subscriptionFailures.forEach((n,r)=>{let i=t.get(r);i&&(e._subscriptionFailures.delete(r),i.subscribeFailed(y(n.code,n.message)))}),t.forEach(t=>{let n=e._subscribed.get(t.sid);(!n||t.isSubscribed&&t.trackTransceiver.id!==n)&&t.setTrackTransceiver(null),n&&e._getTrackReceiver(n).then(e=>t.setTrackTransceiver(e))})}t.exports=S})),xr=r(((e,t)=>{var n=St(),r=Et(),i=yn(),{reconnectBackoffConfig:a}=J(),o=wt(),{SDK_NAME:s,SDK_VERSION:c,SDP_FORMAT:l}=J(),{createBandwidthProfilePayload:u,createMediaSignalingPayload:d,createMediaWarningsPayload:f,createSubscribePayload:p,getUserAgent:m,isNonArrayObject:h}=Z(),{createTwilioError:g,RoomCompletedError:_,SignalingConnectionError:v,SignalingServerBusyError:y}=$(),b=1,x=2,S={connecting:[`connected`,`disconnected`],connected:[`disconnected`,`syncing`],syncing:[`connected`,`disconnected`],disconnected:[]},C=class extends n{constructor(e,t,n,o,s,c){c=Object.assign({Backoff:i,TwilioConnection:r,iceServers:null,trackPriority:!0,trackSwitchOff:!0,renderHints:!0,userAgent:m()},c),super(`connecting`,S),Object.defineProperties(this,{_accessToken:{value:t},_adaptiveSimulcast:{value:c.adaptiveSimulcast},_automaticSubscription:{value:c.automaticSubscription},_bandwidthProfile:{value:c.bandwidthProfile},_dominantSpeaker:{value:c.dominantSpeaker},_receiveTranscriptions:{value:c.receiveTranscriptions},_eventObserver:{value:c.eventObserver,writable:!1},_renderHints:{value:c.renderHints},_iceServersStatus:{value:Array.isArray(c.iceServers)?`overrode`:`acquire`},_localParticipant:{value:n},_name:{value:e},_networkQuality:{value:h(c.networkQuality)||c.networkQuality},_notifyWarnings:{value:c.notifyWarnings},_options:{value:c},_peerConnectionManager:{value:o},_sessionTimer:{value:null,writable:!0},_sessionTimeoutMS:{value:0,writable:!0},_reconnectBackoff:{value:new c.Backoff(a)},_session:{value:null,writable:!0},_trackPriority:{value:c.trackPriority},_trackSwitchOff:{value:c.trackSwitchOff},_twilioConnection:{value:null,writable:!0},_updatesReceived:{value:[]},_updatesToSend:{value:[]},_userAgent:{value:c.userAgent},_wsServer:{value:s}}),E(this)}_createConnectOrSyncOrDisconnectMessage(){if(this.state===`connected`)return null;if(this.state===`disconnected`)return{session:this._session,type:`disconnect`,version:x};let e={connecting:`connect`,syncing:`sync`}[this.state],t={name:this._name,participant:this._localParticipant.getState(),peer_connections:this._peerConnectionManager.getStates(),type:e,version:x};return t.type===`connect`?(t.ice_servers=this._iceServersStatus,t.publisher={name:s,sdk_version:c,user_agent:this._userAgent},this._bandwidthProfile&&(t.bandwidth_profile=u(this._bandwidthProfile)),this._notifyWarnings&&(t.participant.media_warnings=f(this._notifyWarnings)),t.media_signaling=d(this._dominantSpeaker,this._networkQuality,this._trackPriority,this._trackSwitchOff,this._adaptiveSimulcast,this._renderHints,this._receiveTranscriptions),t.subscribe=p(this._automaticSubscription),t.format=l,t.token=this._accessToken):t.type===`sync`?(t.session=this._session,t.token=this._accessToken):t.type===`update`&&(t.session=this._session),t}_createIceMessage(){return{edge:`roaming`,token:this._accessToken,type:`ice`,version:b}}_sendConnectOrSyncOrDisconnectMessage(){let e=this._createConnectOrSyncOrDisconnectMessage();e&&this._twilioConnection.sendMessage(e)}disconnect(e){return this.state!==`disconnected`&&(this.preempt(`disconnected`,null,[e]),this._sendConnectOrSyncOrDisconnectMessage(),this._twilioConnection.close(),!0)}publish(e){switch(this.state){case`connected`:return this._twilioConnection.sendMessage(Object.assign({session:this._session,type:`update`,version:x},e)),!0;case`connecting`:case`syncing`:return this._updatesToSend.push(e),!0;default:return!1}}publishEvent(e,t,n,r){this._eventObserver.emit(`event`,{group:e,name:t,level:n,payload:r})}sync(){return this.state===`connected`&&(this.preempt(`syncing`),this._sendConnectOrSyncOrDisconnectMessage(),!0)}_setSession(e,t){this._session=e,this._sessionTimeoutMS=t*1e3}_getReconnectTimer(){return this._sessionTimeoutMS===0?null:(this._sessionTimer||=new o(()=>{this._sessionTimer&&(this._sessionTimeoutMS=0)},this._sessionTimeoutMS),new Promise(e=>{this._reconnectBackoff.backoff(e)}))}_clearReconnectTimer(){this._reconnectBackoff.reset(),this._sessionTimer&&=(this._sessionTimer.clear(),null)}};function w(e){return Array.from(e.reduce((e,t)=>
38{let n=e.get(t.id)||t;return(!n.description&&t.description||n.description&&t.description&&t.description.revision>n.description.revision)&&(n.description=t.description),(!n.ice&&t.ice||n.ice&&t.ice&&t.ice.revision>n.ice.revision)&&(n.ice=t.ice),e.set(n.id,n),e},new Map).values())}function T(e){return e.reduce((e,t)=>((!e.participant&&t.participant||e.participant&&t.participant&&t.participant.revision>e.participant.revision)&&(e.participant=t.participant),!e.peer_connections&&t.peer_connections?e.peer_connections=w(t.peer_connections):e.peer_connections&&t.peer_connections&&(e.peer_connections=w(e.peer_connections.concat(t.peer_connections))),e),{})}function E(e){function t(){if(e.state===`disconnected`)return;e._twilioConnection&&e._twilioConnection.removeListener(`message`,i);let{_iceServersStatus:t,_options:r,_wsServer:a,state:o}=e,{TwilioConnection:s}=r,c=new s(a,Object.assign({helloBody:o===`connecting`&&t===`acquire`?e._createIceMessage():e._createConnectOrSyncOrDisconnectMessage()},r));c.once(`close`,e=>{e===s.CloseReason.LOCAL?n():n(Error(e))}),c.on(`message`,i),e._twilioConnection=c}
38function n(n){if(e.state===`disconnected`)return;if(!n){e.disconnect();return}let i=e._getReconnectTimer();if(!i){let t=n.message===r.CloseReason.BUSY?new y:new v;e.disconnect(t);return}e.state===`connected`&&e.preempt(`syncing`),i.then(t)}function i(t){if(e.state!==`disconnected`){if(t.type===`error`){e.disconnect(g(t.code,t.message));return}switch(e.state){case`connected`:switch(t.type){case`connected`:case`synced`:case`update`:case`warning`:e.emit(`message`,t);return;case`disconnected`:e.disconnect(t.status===`completed`?new _:null);return;default:return}case`connecting`:switch(t.type){case`iced`:e._options.onIced(t.ice_servers).then(()=>{e._sendConnectOrSyncOrDisconnectMessage()});return;case`connected`:e._setSession(t.session,t.options.session_timeout),e.emit(`connected`,t),e.preempt(`connected`);return;case`synced`:case`update`:e._updatesReceived.push(t);return;case`disconnected`:e.disconnect(t.status===`completed`?new _:null);return;default:return}case`syncing`:switch(t.type){case`connected`:case`update`:e._updatesReceived.push(t);return;case`synced`:e._clearReconnectTimer(),e.emit(`message`,t),e.preempt(`connected`);return;case`disconnected`:e.disconnect(t.status===`completed`?new _:null);return;default:return}default:return}}}e.on(`stateChanged`,function t(n){switch(n){case`connected`:{let t=e._updatesToSend.splice(0);t.length&&e.publish(T(t)),e._updatesReceived.splice(0).forEach(t=>e.emit(`message`,t));return}case`disconnected`:e._twilioConnection.removeListener(`message`,i),e.removeListener(`stateChanged`,t);return;case`syncing`:return;default:return}});let{_options:a,_iceServersStatus:o}=e,{iceServers:s,onIced:c}=a;o===`overrode`?c(s).then(t):t()}t.exports=C})),Sr=r(((e,t)=>{var n=Ft(),r=jn(),i=br(),a=xr(),{SignalingConnectionDisconnectedError:o,SignalingIncomingMessageInvalidError:s}=$(),{flatMap:c,createRoomConnectingEventPayload:l}=Z();function u(e,t,u,d,f,p){p=Object.assign({PeerConnectionManager:r,RoomV2:i,Transport:a},p);let m=f.video[0]&&f.video[0].adaptiveSimulcast===!0,{PeerConnectionManager:h,RoomV2:g,Transport:_,iceServers:v,log:y}=p,b=new h(d,f,p),x=c(u.tracks,e=>[e.trackTransceiver]);b.setTrackSenders(x);let S=Error(`Canceled`),C,w=new n((n,r,i)=>{let a=e=>i()?(r(S),Promise.reject(S)):(y.debug(`Got ICE servers:`,e),p.iceServers=e,b.setConfiguration(p),b.createAndOffer().then(()=>{if(i())throw r(S),S;y.debug(`createAndOffer() succeeded.`),b.dequeue(`description`)}).catch(e=>{throw y.error(`createAndOffer() failed:`,e),r(e),e})),{automaticSubscription:c,bandwidthProfile:d,dominantSpeaker:f,receiveTranscriptions:h,environment:x,eventObserver:w,loggerName:T,logLevel:E,name:D,networkMonitor:O,networkQuality:k,notifyWarnings:A,realm:j,sdpSemantics:M}=p,N=!!d,P=!!d,F=!!d&&(p.clientTrackSwitchOffControl!==`disabled`||p.contentPreferencesMode!==`disabled`),I=Object.assign({adaptiveSimulcast:m,automaticSubscription:c,dominantSpeaker:f,receiveTranscriptions:h,environment:x,eventObserver:w,loggerName:T,logLevel:E,networkMonitor:O,networkQuality:k,notifyWarnings:A,iceServers:v,onIced:a,realm:j,renderHints:F,sdpSemantics:M,trackPriority:N,trackSwitchOff:P},d?{bandwidthProfile:d}:{});C=new _(D,e,u,b,t,I);let L=l(p);w.emit(`event`,L),C.once(`connected`,e=>{if(y.debug(`Transport connected:`,e),i()){r(S);return}let{participant:t}=e;if(!t){r(new s);return}n(new g(u,e,C,b,p))}),C.once(`stateChanged`,(e,t)=>{e===`disconnected`?(C=null,r(t||new o)):y.debug(`Transport state changed:`,e)})},()=>{C&&=(C.disconnect(),null)});return w.catch(()=>{C&&=(C.disconnect(),null),b.close()}),w}t.exports=u})),Cr=r(((e,t)=>{var n=ur();t.exports=class extends n{constructor(){super(),Object.defineProperties(this,{_publicationsToTrackSenders:{value:new Map},_trackSendersToPublications:{value:new Map}})}addTrack(e,t,n,r=null){let i=this._createLocalTrackPublicationSignaling(e,t,n,r);return this._trackSendersToPublications.set(e,i),this._publicationsToTrackSenders.set(i,e),super.addTrack(i),this}getPublication(e){return this._trackSendersToPublications.get(e)||null}getSender(e){return this._publicationsToTrackSenders.get(e)||null}removeTrack(e){let t=this._trackSendersToPublications.get(e);return t?(this._trackSendersToPublications.delete(e),this._publicationsToTrackSenders.delete(t),super.removeTrack(t)&&t.stop(),t):null}}})),wr=r(((e,t)=>{var n=fr(),r=class extends n{constructor(e,t,n){let r=e.clone();e.kind!==`data`&&(r.track.enabled=e.track.enabled),e=r;let i=e.kind===`data`||e.track.enabled;super(t,e.kind,i,n),this.setTrackTransceiver(e),Object.defineProperties(this,{_updatedPriority:{value:n,writable:!0},id:{enumerable:!0,value:e.id}})}get updatedPriority(){return this._updatedPriority}enable(e){return e=typeof e!=`boolean`||e,this.trackTransceiver.track.enabled=e,super.enable(e)}
38publishFailed(e){return i(this,e)&&this.emit(`updated`),this}setPriority(e){return this._updatedPriority!==e&&(this._updatedPriority=e,this.emit(`updated`)),this}setSid(e){return this._error?this:super.setSid.call(this,e)}stop(){this.trackTransceiver.stop()}};function i(e,t){return e._sid!==null||e._error?!1:(e._error=t,!0)}t.exports=r})),Tr=r(((e,t)=>{var n=wr(),r=Se(),i=$().createTwilioError;t.exports=class extends n{constructor(e,t,n,r,i){super(e,t,n),Object.defineProperties(this,{_log:{value:i.log.createLog(`default`,this)},_mediaStates:{value:{recordings:null},writable:!0},_noiseCancellationVendor:{value:r}})}getState(){let e={enabled:this.isEnabled,id:this.id,kind:this.kind,name:this.name,priority:this.updatedPriority};return this._noiseCancellationVendor&&(e.audio_processor=this._noiseCancellationVendor),e}toString(){return`[LocalTrackPublicationV2: ${this.sid}]`}update(e){switch(e.state){case`ready`:this.setSid(e.sid);break;case`failed`:{let t=e.error;this.publishFailed(i(t.code,t.message));break}}return this}updateMediaStates(e){if(!e||!e.recordings||this._mediaStates.recordings===e.recordings)return this;switch(this._mediaStates.recordings=e.recordings,this._mediaStates.recordings){case`OK`:this._log.info(`Warnings have cleared.`),this.emit(`warningsCleared`);break;case`NO_MEDIA`:this._log.warn(`Recording media lost.`),this.emit(`warning`,r.recordingMediaLost);break;default:this._log.warn(`Unknown media state detected: ${this._mediaStates.recordings}`)}return this}}})),Er=r(((e,t)=>{var n=Cr(),r=Tr(),{DEFAULT_LOG_LEVEL:i}=J(),a=Y(),{buildLogLevels:o,isDeepEqual:s}=Z();t.exports=class extends n{constructor(e,t,n){n=Object.assign({logLevel:i,LocalTrackPublicationV2:r},n),super();let s=o(n.logLevel);Object.defineProperties(this,{_bandwidthProfile:{value:null,writable:!0},_bandwidthProfileRevision:{value:0,writable:!0},_encodingParameters:{value:e},_removeListeners:{value:new Map},_LocalTrackPublicationV2:{value:n.LocalTrackPublicationV2},_log:{value:n.log?n.log.createLog(`default`,this):new a(`default`,this,s,n.loggerName)},_publishedRevision:{writable:!0,value:0},_revision:{writable:!0,value:1},_signalingRegion:{value:null,writable:!0},audioProcessors:{value:[],writable:!0},bandwidthProfile:{enumerable:!0,get(){return this._bandwidthProfile}},bandwidthProfileRevision:{enumerable:!0,get(){return this._bandwidthProfileRevision}},networkQualityConfiguration:{enumerable:!0,value:t},revision:{enumerable:!0,get(){return this._revision}},signalingRegion:{enumerable:!0,get(){return this._signalingRegion}}})}toString(){return`[LocalParticipantSignaling: ${this.sid}]`}setSignalingRegion(e){this._signalingRegion||=e}setBandwidthProfile(e){s(this._bandwidthProfile,e)||(this._bandwidthProfile=JSON.parse(JSON.stringify(e)),this._bandwidthProfileRevision++,this.didUpdate())}setAudioProcessors(e){this.audioProcessors=e}getParameters(){return this._encodingParameters}setParameters(e){return this._encodingParameters.update(e),this}update(e){return this._publishedRevision>=e.revision?this:(this._publishedRevision=e.revision,e.tracks.forEach(function(e){let t=this.tracks.get(e.id);t&&t.update(e)},this),this)}updateMediaStates(e){return!e||!e.tracks||Array.from(this.tracks.values()).forEach(t=>{let n=e.tracks[t.sid];n&&t.updateMediaStates(n)}),this}_createLocalTrackPublicationSignaling(e,t,n,r){return new this._LocalTrackPublicationV2(e,t,n,r,{log:this._log})}addTrack(e,t,n,r){super.addTrack(e,t,n,r);let i=this.getPublication(e),{isEnabled:a,updatedPriority:o}=i,s=()=>{(a!==i.isEnabled||o!==i.updatedPriority)&&(this.didUpdate(),a=i.isEnabled,o=i.updatedPriority)};return i.on(`updated`,s),this._removeListener(i),this._removeListeners.set(i,()=>i.removeListener(`updated`,s)),this.didUpdate(),this}_removeListener(e){let t=this._removeListeners.get(e);t&&t()}getState(){return{revision:this.revision,tracks:Array.from(this.tracks.values()).map(e=>e.getState())}}didUpdate(){this._revision++,this.emit(`updated`)}removeTrack(e){let t=super.removeTrack(e);return t&&(e.removeClone(t.trackTransceiver),this._removeListener(t),this.didUpdate()),t}setNetworkQualityConfiguration(e){this.networkQualityConfiguration.update(e)}setPublisherHint(e,t){let n=Array.from(this.tracks.values()).find(t=>t.sid===e);return n?n.trackTransceiver.setPublisherHint(t):(this._log.warn(`track:${e} not found`),Promise.resolve(`UNKNOWN_TRACK`))}}})),Dr=r(((e,t)=>{var n=ur(),r=$n(),i=St(),a={closed:[`opening`],opening:[`closed`,`open`],open:[`closed`,`closing`],closing:[`closed`,`open`]};t.exports=class extends i{constructor(){super(`closed`,a)}_close(e){return this.transition(`closing`,e),this.transition(`closed`,e),Promise.resolve(this)}_connect(e,t,n,i,a){e.connect(`PA00000000000000000000000000000000`,`test`);
38let o=Promise.resolve(new r(e,`RM00000000000000000000000000000000`,a));return o.cancel=function(){},o}_open(e){return this.transition(`opening`,e),this.transition(`open`,e),Promise.resolve(this)}close(){return this.bracket(`close`,e=>{switch(this.state){case`closed`:return this;case`open`:return this._close(e);default:throw Error(`Unexpected Signaling state "${this.state}"`)}})}connect(e,t,n,r,i){let a=this;return this.bracket(`connect`,function o(s){switch(a.state){case`closed`:return a._open(s).then(o.bind(null,s));case`open`:return a.releaseLockCompletely(s),a._connect(e,t,n,r,i);default:throw Error(`Unexpected Signaling state "${a.state}"`)}})}createLocalParticipantSignaling(){return new n}open(){return this.bracket(`open`,e=>{switch(this.state){case`closed`:return this._open(e);case`open`:return this;default:throw Error(`Unexpected Signaling state "${this.state}"`)}})}}})),Or=r(((e,t)=>{var n=Sr(),r=Er(),i=Dr();t.exports=class extends i{constructor(e,t){t=Object.assign({createCancelableRoomSignalingPromise:n},t),super(),Object.defineProperties(this,{_createCancelableRoomSignalingPromise:{value:t.createCancelableRoomSignalingPromise},_options:{value:t},_wsServer:{value:e}})}_connect(e,t,n,r,i){return i=Object.assign({},this._options,i),this._createCancelableRoomSignalingPromise.bind(null,t,this._wsServer,e,n,r,i)}createLocalParticipantSignaling(e,t){return new r(e,t)}}})),kr=r(((e,t)=>{var{guessBrowser:n,guessBrowserVersion:r,isCodecSupported:i}=X(),a=It(),o=Lt(),s=en(),c=Nt(),l=tn(),{LocalAudioTrack:u,LocalDataTrack:d,LocalVideoTrack:f}=st(),p=nn(),m=vn(),h=Or(),{asLocalTrack:g,buildLogLevels:_,createRoomConnectedEventPayload:v,filterObject:y,isNonArrayObject:b}=Z(),{DEFAULT_ENVIRONMENT:x,DEFAULT_LOG_LEVEL:S,DEFAULT_LOGGER_NAME:C,DEFAULT_REALM:w,DEFAULT_REGION:T,WS_SERVER:E,SDK_NAME:D,SDK_VERSION:O,typeErrors:k}=J(),A=Ft(),j=Mt(),M=Y(),{validateBandwidthProfile:N}=Rt(),P=_t(),F=n()===`safari`&&r(),I=0,L=!1,R=!1;if(F){let{major:e,minor:t}=F;R=e<12||e===12&&t<1}var z=new Set([{didWarn:!1,shouldDelete:!0,name:`abortOnIceServersTimeout`},{didWarn:!1,shouldDelete:!0,name:`dscpTagging`,newName:`enableDscp`},{didWarn:!1,shouldDelete:!0,name:`iceServersTimeout`},{didWarn:!1,shouldDelete:!1,name:`eventListener`,newName:`Video.Logger`},{didWarn:!1,shouldDelete:!1,name:`logLevel`,newName:`Video.Logger`}]),B=new Set([{didWarn:!1,shouldDelete:!1,name:`maxTracks`,newName:`bandwidthProfile.video.clientTrackSwitchOffControl`},{didWarn:!1,shouldDelete:!1,name:`renderDimensions`,newName:`bandwidthProfile.video.contentPreferencesMode`}]);function ee(e,t){if(t===void 0&&(t={}),!b(t))return A.reject(k.INVALID_TYPE(`options`,`object`));let n=t.Log||M,r=t.loggerName||C,m=t.logLevel||S,F=_(m),ee=`[connect #${++I}]`,G;try{G=new n(`default`,ee,F,r)}catch(e){return A.reject(e)}V(t,G,z);let K=t.preferredVideoCodecs===`auto`;if(K&&(t.preferredVideoCodecs=[{codec:`VP8`,simulcast:!0,adaptiveSimulcast:!0}]),t.maxVideoBitrate&&K)return G.error(`ConnectOptions "maxVideoBitrate" is not compatible with "preferredVideoCodecs=auto"`),A.reject(k.ILLEGAL_INVOKE(`connect`,`ConnectOptions "maxVideoBitrate" is not compatible with "preferredVideoCodecs=auto"`));t=Object.assign({automaticSubscription:!0,dominantSpeaker:!1,enableDscp:!1,receiveTranscriptions:!1,environment:x,eventListener:null,insights:!0,LocalAudioTrack:u,LocalDataTrack:d,LocalParticipant:s,LocalVideoTrack:f,Log:n,MediaStreamTrack,loggerName:r,logLevel:m,maxAudioBitrate:null,maxVideoBitrate:null,name:null,networkMonitor:!0,networkQuality:!1,preferredAudioCodecs:[],preferredVideoCodecs:[],realm:w,region:T,signaling:h},y(t));let re={};typeof t.wsServerInsights==`string`&&(re.gateway=t.wsServerInsights);let q=new(t.insights?c:l)(e,D,O,t.environment,t.realm,re),ie=E(t.environment,t.region),ae=Date.now(),oe=new j(q,ae,G,t.eventListener);if(t=Object.assign({eventObserver:oe,wsServer:ie},t),t.log=G,R&&!L&&G.logLevel!==`error`&&G.logLevel!==`off`&&(L=!0,G.warn([`Support for Safari 12.0 and below is limited because it does not support VP8.`,`This means you may experience codec issues in Group Rooms. You may also`,`experience codec issues in Peer-to-Peer (P2P) Rooms containing Android- or`,`iOS-based Participants who do not support H.264. However, P2P Rooms`,`with browser-based Participants should work. For more information, please`,`refer to this guide: https://www.twilio.com/docs/video/javascript-v2-developing-safari-11`].join(` `))),typeof e!=`string`)return A.reject(k.INVALID_TYPE(`token`,`string`));t.insights&&q&&P.configure({publisher:q,log:G,connectTimestamp:ae});let se=Object.assign({},t);if(delete se.name,`tracks`in t){if(!Array.isArray(t.tracks))return A.reject(k.INVALID_TYPE(`options.tracks`,`Array of LocalAudioTrack, LocalVideoTrack or MediaStreamTrack`));try{t.tracks=t.tracks.map(e=>g(e,se))}catch(e){return A.reject(e)}}let ce=N(t.bandwidthProfile);if(ce)return A.reject(ce);t.clientTrackSwitchOffControl=`disabled`,t.contentPreferencesMode=`disabled`,t.bandwidthProfile&&(t.clientTrackSwitchOffControl=`auto`,t.contentPreferencesMode=`auto`,t.bandwidthProfile.video&&(V(t.bandwidthProfile.video,G,B),`maxTracks`in t.bandwidthProfile.video?t.clientTrackSwitchOffControl=`disabled`:t.bandwidthProfile.video.clientTrackSwitchOffControl===`manual`?t.clientTrackSwitchOffControl=`manual`:t.clientTrackSwitchOffControl=`auto`,`renderDimensions`in t.bandwidthProfile.video?t.contentPreferencesMode=`disabled`:t.bandwidthProfile.video.contentPreferencesMode===`manual`?t.contentPreferencesMode=`manual`:t.contentPreferencesMode=`auto`));let le=t.signaling,ue=new le(t.wsServer,t);G.info(`Connecting to a Room`),G.debug(`Options:`,t);let de=new o({maxAudioBitrate:t.maxAudioBitrate,maxVideoBitrate:t.maxVideoBitrate},K),fe={audio:t.preferredAudioCodecs.map(W),video:t.preferredVideoCodecs.map(W)},pe=new p(b(t.networkQuality)?t.networkQuality:{});
38[`audio`,`video`].forEach(e=>fe[e].forEach(({codec:t})=>i(t,e).then(n=>!n&&G.warn(`The preferred ${e} codec "${t}" will be ignored as it is not supported by the browser.`))));let me=a(U.bind(null,t),H.bind(null,ue,G,de,pe,t),ne.bind(null,e,t,ue,de,fe),te.bind(null,t));return me.then(e=>{q.connect(e.sid,e.localParticipant.sid);let n=v(t);return t.eventObserver.emit(`event`,n),G.info(`Connected to Room:`,e.toString()),G.info(`Room name:`,e.name),G.debug(`Room:`,e),e.once(`disconnected`,()=>{setTimeout(()=>q.disconnect(),50)}),e},e=>{setTimeout(()=>q.disconnect(),50),me._isCanceled?G.info(`Attempt to connect to a Room was canceled`):G.info(`Error while connecting to a Room:`,e)}),me}function V(e,t,n){n.forEach(n=>{let{didWarn:r,name:i,newName:a,shouldDelete:o}=n;i in e&&e[i]!==void 0&&(a&&o&&(e[a]=e[i]),o&&delete e[i],!r&&![`error`,`off`].includes(t.level)&&(t.warn(`The ConnectOptions "${i}" is ${a?`deprecated and scheduled for removal. Please use "${a}" instead.`:`no longer applicable and will be ignored.`}`),n.didWarn=!0))})}function H(e,t,n,r,i,a){let o=e.createLocalParticipantSignaling(n,r);return t.debug(`Creating a new LocalParticipant:`,o),new i.LocalParticipant(o,a,i)}function te(e,t,n){let r=new m(t,n,e),i=e.log;return i.debug(`Creating a new Room:`,r),n.on(`stateChanged`,function e(t){t===`disconnected`&&(i.info(`Disconnected from Room:`,r.toString()),n.removeListener(`stateChanged`,e))}),r}function ne(e,t,n,r,i,a){return t.log.debug(`Creating a new RoomSignaling`),n.connect(a._signaling,e,r,i,t)}function U(e,t){let n=e.log;return e.shouldStopLocalTracks=!e.tracks,e.shouldStopLocalTracks?n.info(`LocalTracks were not provided, so they will be acquired automatically before connecting to the Room. LocalTracks will be released if connecting to the Room fails or if the Room is disconnected`):(n.info(`Getting LocalTracks`),n.debug(`Options:`,e)),e.createLocalTracks(e).then(function(r){let i=t(r);return i.catch(function(){e.shouldStopLocalTracks&&(n.info(`The automatically acquired LocalTracks will now be stopped`),r.forEach(e=>{e.stop()}))}),i})}function W(e){let t=typeof e==`string`?{codec:e}:e;switch(t.codec.toLowerCase()){case`opus`:return Object.assign({dtx:!0},t);case`vp8`:return Object.assign({simulcast:!1},t);default:return t}}t.exports=ee})),Ar=r(((e,t)=>{var{DEFAULT_LOG_LEVEL:n,DEFAULT_LOGGER_NAME:r}=J();function i(e,t){t=Object.assign({loggerName:r,logLevel:n},t);let i={};i.loggerName=t.loggerName,i.logLevel=t.logLevel,delete t.loggerName,delete t.logLevel,[`getUserMedia`,`enumerateDevices`,`MediaStream`,`mapMediaElement`,`disposeMediaElement`].forEach(e=>{e in t&&(i[e]=t[e],delete t[e])});let a=t.createLocalTracks;return delete t.createLocalTracks,i[e]=Object.keys(t).length>0?t:!0,a(i).then(e=>e[0])}function a(e){return i(`audio`,e)}function o(e){return i(`video`,e)}t.exports={audio:a,video:o}})),jr=r(((e,t)=>{var{guessBrowser:n,support:r}=X(),{isAndroid:i,isMobile:a,isNonChromiumEdge:o,rebrandedChromeBrowser:s,mobileWebKitBrowser:c}=Pe(),l=[`crios`,`edg`,`edge`,`electron`,`headlesschrome`,`samsungbrowser`],u=[`chrome`,`firefox`],d=[`chrome`,`safari`],f=[`edg`];function p(){let e=n();if(!e)return!1;let t=s(e),p=c(e),m=i()?u:d;return r()&&(!t||l.includes(t))&&!o(e)&&(!p||f.includes(p))&&(!a()||m.includes(e))}t.exports=p})),Mr=r(((t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=vt(),i=Pt(),a={connect:kr(),createLocalAudioTrack:Ar().audio,createLocalVideoTrack:Ar().video,isSupported:jr()(),version:(ve(),e(W).default).version,Logger:U(),LocalAudioTrack:st().LocalAudioTrack,LocalDataTrack:st().LocalDataTrack,LocalVideoTrack:st().LocalVideoTrack};function o(e,t){let n=Object.assign({createLocalTracks:r.createLocalTracks},t);return a.connect(e,n)}function s(e){let t=Object.assign({createLocalTracks:r.createLocalTracks},e);return a.createLocalAudioTrack(t)}function c(e){let t=Object.assign({createLocalTracks:r.createLocalTracks},e);return a.createLocalVideoTrack(t)}var l=a.isSupported,u=a.version,d=a.Logger,f=a.LocalAudioTrack,p=a.LocalVideoTrack,m=a.LocalDataTrack;n.exports={connect:o,createLocalAudioTrack:s,createLocalVideoTrack:c,createLocalTracks:r.createLocalTracks,runPreflight:i.runPreflight,isSupported:l,version:u,Logger:d,LocalAudioTrack:f,LocalVideoTrack:p,LocalDataTrack:m}}));export{Mr as t};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.