@nlxai/touchpoint-ui 1.0.5-alpha.4 → 1.0.5-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/.nojekyll +1 -0
- package/docs/README.md +367 -0
- package/docs/interfaces/CustomCardProps.md +47 -0
- package/docs/interfaces/CustomCardRowProps.md +39 -0
- package/docs/interfaces/DateInputProps.md +29 -0
- package/docs/interfaces/IconButtonProps.md +71 -0
- package/docs/interfaces/Icons.IconProps.md +29 -0
- package/docs/interfaces/TextButtonProps.md +72 -0
- package/docs/interfaces/Theme.md +303 -0
- package/docs/interfaces/TouchpointConfiguration.md +117 -0
- package/docs/interfaces/TouchpointInstance.md +47 -0
- package/docs/modules/Icons.md +857 -0
- package/lib/components/Messages.d.ts +2 -0
- package/lib/index.js +189 -160
- package/lib/index.umd.js +12 -12
- package/lib/types.d.ts +8 -0
- package/package.json +2 -2
package/lib/index.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function($,ne){typeof exports=="object"&&typeof module<"u"?ne(exports):typeof define=="function"&&define.amd?define(["exports"],ne):($=typeof globalThis<"u"?globalThis:$||self,ne(($.nlxai=$.nlxai||{},$.nlxai.touchpointUi={})))})(this,function($){"use strict";var BE=Object.defineProperty;var l1=$=>{throw TypeError($)};var zE=($,ne,Pe)=>ne in $?BE($,ne,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):$[ne]=Pe;var
|
|
1
|
+
(function($,ne){typeof exports=="object"&&typeof module<"u"?ne(exports):typeof define=="function"&&define.amd?define(["exports"],ne):($=typeof globalThis<"u"?globalThis:$||self,ne(($.nlxai=$.nlxai||{},$.nlxai.touchpointUi={})))})(this,function($){"use strict";var BE=Object.defineProperty;var l1=$=>{throw TypeError($)};var zE=($,ne,Pe)=>ne in $?BE($,ne,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):$[ne]=Pe;var te=($,ne,Pe)=>zE($,typeof ne!="symbol"?ne+"":ne,Pe),gh=($,ne,Pe)=>ne.has($)||l1("Cannot "+Pe);var Rt=($,ne,Pe)=>(gh($,ne,"read from private field"),Pe?Pe.call($):ne.get($)),Mi=($,ne,Pe)=>ne.has($)?l1("Cannot add the same private member more than once"):ne instanceof WeakSet?ne.add($):ne.set($,Pe),Zs=($,ne,Pe,rr)=>(gh($,ne,"write to private field"),rr?rr.call($,Pe):ne.set($,Pe),Pe),vh=($,ne,Pe)=>(gh($,ne,"access private method"),Pe);var Ii,Gs,nr,Oi,Ks,yh;function ne(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Pe={exports:{}},rr={},kh={exports:{}},G={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react.production.min.js
|
|
4
4
|
*
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*
|
|
23
23
|
* This source code is licensed under the MIT license found in the
|
|
24
24
|
* LICENSE file in the root directory of this source tree.
|
|
25
|
-
*/(function(t){function e(U,z){var H=U.length;U.push(z);e:for(;0<H;){var
|
|
25
|
+
*/(function(t){function e(U,z){var H=U.length;U.push(z);e:for(;0<H;){var X=H-1>>>1,be=U[X];if(0<i(be,z))U[X]=z,U[H]=be,H=X;else break e}}function n(U){return U.length===0?null:U[0]}function r(U){if(U.length===0)return null;var z=U[0],H=U.pop();if(H!==z){U[0]=H;e:for(var X=0,be=U.length,Or=be>>>1;X<Or;){var Sn=2*(X+1)-1,Lr=U[Sn],on=Sn+1,Wt=U[on];if(0>i(Lr,H))on<be&&0>i(Wt,Lr)?(U[X]=Wt,U[on]=H,X=on):(U[X]=Lr,U[Sn]=H,X=Sn);else if(on<be&&0>i(Wt,H))U[X]=Wt,U[on]=H,X=on;else break e}}return z}function i(U,z){var H=U.sortIndex-z.sortIndex;return H!==0?H:U.id-z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();t.unstable_now=function(){return o.now()-a}}var l=[],c=[],u=1,d=null,h=3,f=!1,m=!1,g=!1,T=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(U){for(var z=n(c);z!==null;){if(z.callback===null)r(c);else if(z.startTime<=U)r(c),z.sortIndex=z.expirationTime,e(l,z);else break;z=n(c)}}function k(U){if(g=!1,y(U),!m)if(n(l)!==null)m=!0,Ke(C);else{var z=n(c);z!==null&&nt(k,z.startTime-U)}}function C(U,z){m=!1,g&&(g=!1,p(E),E=-1),f=!0;var H=h;try{for(y(z),d=n(l);d!==null&&(!(d.expirationTime>z)||U&&!j());){var X=d.callback;if(typeof X=="function"){d.callback=null,h=d.priorityLevel;var be=X(d.expirationTime<=z);z=t.unstable_now(),typeof be=="function"?d.callback=be:d===n(l)&&r(l),y(z)}else r(l);d=n(l)}if(d!==null)var Or=!0;else{var Sn=n(c);Sn!==null&&nt(k,Sn.startTime-z),Or=!1}return Or}finally{d=null,h=H,f=!1}}var x=!1,w=null,E=-1,_=5,R=-1;function j(){return!(t.unstable_now()-R<_)}function V(){if(w!==null){var U=t.unstable_now();R=U;var z=!0;try{z=w(!0,U)}finally{z?oe():(x=!1,w=null)}}else x=!1}var oe;if(typeof v=="function")oe=function(){v(V)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,je=W.port2;W.port1.onmessage=V,oe=function(){je.postMessage(null)}}else oe=function(){T(V,0)};function Ke(U){w=U,x||(x=!0,oe())}function nt(U,z){E=T(function(){U(t.unstable_now())},z)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(U){U.callback=null},t.unstable_continueExecution=function(){m||f||(m=!0,Ke(C))},t.unstable_forceFrameRate=function(U){0>U||125<U?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):_=0<U?Math.floor(1e3/U):5},t.unstable_getCurrentPriorityLevel=function(){return h},t.unstable_getFirstCallbackNode=function(){return n(l)},t.unstable_next=function(U){switch(h){case 1:case 2:case 3:var z=3;break;default:z=h}var H=h;h=z;try{return U()}finally{h=H}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(U,z){switch(U){case 1:case 2:case 3:case 4:case 5:break;default:U=3}var H=h;h=U;try{return z()}finally{h=H}},t.unstable_scheduleCallback=function(U,z,H){var X=t.unstable_now();switch(typeof H=="object"&&H!==null?(H=H.delay,H=typeof H=="number"&&0<H?X+H:X):H=X,U){case 1:var be=-1;break;case 2:be=250;break;case 5:be=1073741823;break;case 4:be=1e4;break;default:be=5e3}return be=H+be,U={id:u++,callback:z,priorityLevel:U,startTime:H,expirationTime:be,sortIndex:-1},H>X?(U.sortIndex=H,e(c,U),n(l)===null&&U===n(c)&&(g?(p(E),E=-1):g=!0,nt(k,H-X))):(U.sortIndex=be,e(l,U),m||f||(m=!0,Ke(C))),U},t.unstable_shouldYield=j,t.unstable_wrapCallback=function(U){var z=h;return function(){var H=h;h=z;try{return U.apply(this,arguments)}finally{h=H}}}})(Nh),Mh.exports=Nh;var I1=Mh.exports;/**
|
|
26
26
|
* @license React
|
|
27
27
|
* react-dom.production.min.js
|
|
28
28
|
*
|
|
@@ -57,7 +57,7 @@ Error generating stack: `+s.message+`
|
|
|
57
57
|
* by Pedro Ladaria <pedro.ladaria@gmail.com>
|
|
58
58
|
* https://github.com/pladaria/reconnecting-websocket
|
|
59
59
|
* License MIT
|
|
60
|
-
*/var Xb=function(){if(typeof WebSocket<"u")return WebSocket},eC=function(t){return typeof t<"u"&&!!t&&t.CLOSING===2},br={maxReconnectionDelay:1e4,minReconnectionDelay:1e3+Math.random()*4e3,minUptime:5e3,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,maxEnqueuedMessages:1/0},tC=function(){function t(e,n,r){var i=this;r===void 0&&(r={}),this._listeners={error:[],message:[],open:[],close:[]},this._retryCount=-1,this._shouldReconnect=!0,this._connectLock=!1,this._binaryType="blob",this._closeCalled=!1,this._messageQueue=[],this.onclose=null,this.onerror=null,this.onmessage=null,this.onopen=null,this._handleOpen=function(s){i._debug("open event");var o=i._options.minUptime,a=o===void 0?br.minUptime:o;clearTimeout(i._connectTimeout),i._uptimeTimeout=setTimeout(function(){return i._acceptOpen()},a),i._ws.binaryType=i._binaryType,i._messageQueue.forEach(function(l){return i._ws.send(l)}),i._messageQueue=[],i.onopen&&i.onopen(s),i._listeners.open.forEach(function(l){return i._callEventListener(s,l)})},this._handleMessage=function(s){i._debug("message event"),i.onmessage&&i.onmessage(s),i._listeners.message.forEach(function(o){return i._callEventListener(s,o)})},this._handleError=function(s){i._debug("error event",s.message),i._disconnect(void 0,s.message==="TIMEOUT"?"timeout":void 0),i.onerror&&i.onerror(s),i._debug("exec error listeners"),i._listeners.error.forEach(function(o){return i._callEventListener(s,o)}),i._connect()},this._handleClose=function(s){i._debug("close event"),i._clearTimeouts(),i._shouldReconnect&&i._connect(),i.onclose&&i.onclose(s),i._listeners.close.forEach(function(o){return i._callEventListener(s,o)})},this._url=e,this._protocols=n,this._options=r,this._options.startClosed&&(this._shouldReconnect=!1),this._connect()}return Object.defineProperty(t,"CONNECTING",{get:function(){return 0},enumerable:!0,configurable:!0}),Object.defineProperty(t,"OPEN",{get:function(){return 1},enumerable:!0,configurable:!0}),Object.defineProperty(t,"CLOSING",{get:function(){return 2},enumerable:!0,configurable:!0}),Object.defineProperty(t,"CLOSED",{get:function(){return 3},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"CONNECTING",{get:function(){return t.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"OPEN",{get:function(){return t.OPEN},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"CLOSING",{get:function(){return t.CLOSING},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"CLOSED",{get:function(){return t.CLOSED},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"binaryType",{get:function(){return this._ws?this._ws.binaryType:this._binaryType},set:function(e){this._binaryType=e,this._ws&&(this._ws.binaryType=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"retryCount",{get:function(){return Math.max(this._retryCount,0)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bufferedAmount",{get:function(){var e=this._messageQueue.reduce(function(n,r){return typeof r=="string"?n+=r.length:r instanceof Blob?n+=r.size:n+=r.byteLength,n},0);return e+(this._ws?this._ws.bufferedAmount:0)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"extensions",{get:function(){return this._ws?this._ws.extensions:""},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"protocol",{get:function(){return this._ws?this._ws.protocol:""},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"readyState",{get:function(){return this._ws?this._ws.readyState:this._options.startClosed?t.CLOSED:t.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"url",{get:function(){return this._ws?this._ws.url:""},enumerable:!0,configurable:!0}),t.prototype.close=function(e,n){if(e===void 0&&(e=1e3),this._closeCalled=!0,this._shouldReconnect=!1,this._clearTimeouts(),!this._ws){this._debug("close enqueued: no ws instance");return}if(this._ws.readyState===this.CLOSED){this._debug("close: already closed");return}this._ws.close(e,n)},t.prototype.reconnect=function(e,n){this._shouldReconnect=!0,this._closeCalled=!1,this._retryCount=-1,!this._ws||this._ws.readyState===this.CLOSED?this._connect():(this._disconnect(e,n),this._connect())},t.prototype.send=function(e){if(this._ws&&this._ws.readyState===this.OPEN)this._debug("send",e),this._ws.send(e);else{var n=this._options.maxEnqueuedMessages,r=n===void 0?br.maxEnqueuedMessages:n;this._messageQueue.length<r&&(this._debug("enqueue",e),this._messageQueue.push(e))}},t.prototype.addEventListener=function(e,n){this._listeners[e]&&this._listeners[e].push(n)},t.prototype.dispatchEvent=function(e){var n,r,i=this._listeners[e.type];if(i)try{for(var s=Kb(i),o=s.next();!o.done;o=s.next()){var a=o.value;this._callEventListener(e,a)}}catch(l){n={error:l}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return!0},t.prototype.removeEventListener=function(e,n){this._listeners[e]&&(this._listeners[e]=this._listeners[e].filter(function(r){return r!==n}))},t.prototype._debug=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];this._options.debug&&console.log.apply(console,Qb(["RWS>"],e))},t.prototype._getNextDelay=function(){var e=this._options,n=e.reconnectionDelayGrowFactor,r=n===void 0?br.reconnectionDelayGrowFactor:n,i=e.minReconnectionDelay,s=i===void 0?br.minReconnectionDelay:i,o=e.maxReconnectionDelay,a=o===void 0?br.maxReconnectionDelay:o,l=0;return this._retryCount>0&&(l=s*Math.pow(r,this._retryCount-1),l>a&&(l=a)),this._debug("next delay",l),l},t.prototype._wait=function(){var e=this;return new Promise(function(n){setTimeout(n,e._getNextDelay())})},t.prototype._getNextUrl=function(e){if(typeof e=="string")return Promise.resolve(e);if(typeof e=="function"){var n=e();if(typeof n=="string")return Promise.resolve(n);if(n.then)return n}throw Error("Invalid URL")},t.prototype._connect=function(){var e=this;if(!(this._connectLock||!this._shouldReconnect)){this._connectLock=!0;var n=this._options,r=n.maxRetries,i=r===void 0?br.maxRetries:r,s=n.connectionTimeout,o=s===void 0?br.connectionTimeout:s,a=n.WebSocket,l=a===void 0?Xb():a;if(this._retryCount>=i){this._debug("max retries reached",this._retryCount,">=",i);return}if(this._retryCount++,this._debug("connect",this._retryCount),this._removeListeners(),!eC(l))throw Error("No valid WebSocket class provided");this._wait().then(function(){return e._getNextUrl(e._url)}).then(function(c){e._closeCalled||(e._debug("connect",{url:c,protocols:e._protocols}),e._ws=e._protocols?new l(c,e._protocols):new l(c),e._ws.binaryType=e._binaryType,e._connectLock=!1,e._addListeners(),e._connectTimeout=setTimeout(function(){return e._handleTimeout()},o))})}},t.prototype._handleTimeout=function(){this._debug("timeout event"),this._handleError(new Yb(Error("TIMEOUT"),this))},t.prototype._disconnect=function(e,n){if(e===void 0&&(e=1e3),this._clearTimeouts(),!!this._ws){this._removeListeners();try{this._ws.close(e,n),this._handleClose(new Jb(e,n,this))}catch{}}},t.prototype._acceptOpen=function(){this._debug("accept open"),this._retryCount=0},t.prototype._callEventListener=function(e,n){"handleEvent"in n?n.handleEvent(e):n(e)},t.prototype._removeListeners=function(){this._ws&&(this._debug("removeListeners"),this._ws.removeEventListener("open",this._handleOpen),this._ws.removeEventListener("close",this._handleClose),this._ws.removeEventListener("message",this._handleMessage),this._ws.removeEventListener("error",this._handleError))},t.prototype._addListeners=function(){this._ws&&(this._debug("addListeners"),this._ws.addEventListener("open",this._handleOpen),this._ws.addEventListener("close",this._handleClose),this._ws.addEventListener("message",this._handleMessage),this._ws.addEventListener("error",this._handleError))},t.prototype._clearTimeouts=function(){clearTimeout(this._connectTimeout),clearTimeout(this._uptimeTimeout)},t}();function ke(t){return t!=null&&typeof t=="object"&&t["@@functional/placeholder"]===!0}function Cr(t){return function e(n){return arguments.length===0||ke(n)?e:t.apply(this,arguments)}}function ci(t){return function e(n,r){switch(arguments.length){case 0:return e;case 1:return ke(n)?e:Cr(function(i){return t(n,i)});default:return ke(n)&&ke(r)?e:ke(n)?Cr(function(i){return t(i,r)}):ke(r)?Cr(function(i){return t(n,i)}):t(n,r)}}}function nC(t,e){t=t||[],e=e||[];var n,r=t.length,i=e.length,s=[];for(n=0;n<r;)s[s.length]=t[n],n+=1;for(n=0;n<i;)s[s.length]=e[n],n+=1;return s}function rC(t){return function e(n,r,i){switch(arguments.length){case 0:return e;case 1:return ke(n)?e:ci(function(s,o){return t(n,s,o)});case 2:return ke(n)&&ke(r)?e:ke(n)?ci(function(s,o){return t(s,r,o)}):ke(r)?ci(function(s,o){return t(n,s,o)}):Cr(function(s){return t(n,r,s)});default:return ke(n)&&ke(r)&&ke(i)?e:ke(n)&&ke(r)?ci(function(s,o){return t(s,o,i)}):ke(n)&&ke(i)?ci(function(s,o){return t(s,r,o)}):ke(r)&&ke(i)?ci(function(s,o){return t(n,s,o)}):ke(n)?Cr(function(s){return t(s,r,i)}):ke(r)?Cr(function(s){return t(n,s,i)}):ke(i)?Cr(function(s){return t(n,r,s)}):t(n,r,i)}}}var Zm=rC(function(e,n,r){var i=r.length;if(e>=i||e<-i)return r;var s=(i+e)%i,o=nC(r);return o[s]=n(r[s]),o});let da;const iC=new Uint8Array(16);function sC(){if(!da&&(da=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!da))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return da(iC)}const Ve=[];for(let t=0;t<256;++t)Ve.push((t+256).toString(16).slice(1));function oC(t,e=0){return Ve[t[e+0]]+Ve[t[e+1]]+Ve[t[e+2]]+Ve[t[e+3]]+"-"+Ve[t[e+4]]+Ve[t[e+5]]+"-"+Ve[t[e+6]]+Ve[t[e+7]]+"-"+Ve[t[e+8]]+Ve[t[e+9]]+"-"+Ve[t[e+10]]+Ve[t[e+11]]+Ve[t[e+12]]+Ve[t[e+13]]+Ve[t[e+14]]+Ve[t[e+15]]}const Qm={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ym(t,e,n){if(Qm.randomUUID&&!t)return Qm.randomUUID();t=t||{};const r=t.random||(t.rng||sC)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,oC(r)}var aC="@nlxai/chat-core",lC="1.0.5-alpha.4",cC="NLX Chat SDK core",uC="module",dC="lib/index.cjs",hC="lib/index.esm.js",fC="lib/index.umd.js",pC="lib/index.d.ts",mC={".":{types:"./lib/index.d.ts",import:"./lib/index.esm.js",require:"./lib/index.cjs"}},gC={build:"rm -rf lib && rollup -c --configPlugin typescript --configImportAttributesKey with",docs:"rm -rf docs/ && typedoc && concat-md --decrease-title-levels --dir-name-as-title docs/ > docs/index.md","lint:check":"eslint src/ --ext .ts,.tsx,.js,.jsx --max-warnings 0",lint:"eslint src/ --ext .ts,.tsx,.js,.jsx --fix",prepublish:"npm run build","preview-docs":"npm run docs && comrak --unsafe --gfm -o docs/index.html docs/index.md && open docs/index.html","publish-docs":"npm run docs && mv docs/index.md ../website/src/content/headless-api-reference.md",test:"typedoc --emit none",tsc:"tsc"},vC="Peter Szerzo <peter@nlx.ai>",yC="MIT",kC={"@types/isomorphic-fetch":"^0.0.36","@types/node":"^22.10.1","@types/ramda":"0.29.1","@types/uuid":"^9.0.7","concat-md":"^0.5.1","eslint-config-nlx":"*",prettier:"^3.1.0","rollup-config-nlx":"*",typedoc:"^0.25.13","typedoc-plugin-markdown":"^3.17.1",typescript:"^5.5.4"},bC={"isomorphic-fetch":"^3.0.0",ramda:"^0.29.1","reconnecting-websocket":"^4.4.0",uuid:"^9.0.1"},CC={access:"public"},SC="4cc1ed43fde42daf06e14e0fc5dd4c386bc5f354",xu={name:aC,version:lC,description:cC,type:uC,main:dC,module:hC,browser:fC,types:pC,exports:mC,scripts:gC,author:vC,license:yC,devDependencies:kC,dependencies:bC,publishConfig:CC,gitHead:SC};const Eu=console,wC="NLX.Welcome",TC="We encountered an issue. Please try again soon.",Jm=t=>Array.isArray(t)?t:Object.entries(t).map(([e,n])=>({slotId:e,value:n})),Xm=t=>({...t,slots:t.slots!=null?Jm(t.slots):t.slots}),eg=t=>t.responses,xC=t=>{try{return JSON.parse(t)}catch{return null}},EC=t=>(t.applicationUrl??t.botUrl??"").length>0;function PC(t){let e;const n=t.applicationUrl??t.botUrl??"";/[-|_][a-z]{2,}[-|_][A-Z]{2,}$/.test(n)&&Eu.warn("Since v1.0.0, the language code is no longer added at the end of the application URL. Please remove the modifier (e.g. '-en-US') from the URL, and specify it in the `languageCode` parameter instead.");const r=t.conversationId??Ym();let i={responses:t.responses??[],languageCode:t.languageCode,userId:t.userId,conversationId:r};const s=()=>{var w;return`${n}${((w=t.experimental)==null?void 0:w.completeBotUrl)===!0?"":`-${i.languageCode}`}`},o=(w,E)=>{i={...i,...w},m.forEach(_=>{_(eg(i),E)})},a=()=>{const w={type:"failure",receivedAt:new Date().getTime(),payload:{text:t.failureMessage??TC}};o({responses:[...i.responses,w]},w)},l=w=>{if((w==null?void 0:w.messages.length)>0){const E={type:"bot",receivedAt:new Date().getTime(),payload:{...w,messages:w.messages.map(_=>({nodeId:_.nodeId,messageId:_.messageId,text:_.text,choices:_.choices??[]}))}};o({responses:[...i.responses,E]},E),w.metadata.hasPendingDataRequest&&(p({poll:!0}),setTimeout(()=>{h({request:{structured:{poll:!0}}})},1500))}else Eu.warn("Invalid message structure, expected object with field 'messages'."),a()};let c,u=[],d=null;const h=async w=>{var _;if(c!=null){c(w,R=>{const j={type:"bot",receivedAt:new Date().getTime(),payload:R};o({responses:[...i.responses,j]},j)});return}const E={userId:i.userId,conversationId:i.conversationId,...w,languageCode:i.languageCode,channelType:(_=t.experimental)==null?void 0:_.channelType,environment:t.environment};if(f())(e==null?void 0:e.readyState)===1?e.send(JSON.stringify(E)):u=[...u,E];else try{const R=await wu(s(),{method:"POST",headers:{...t.headers??{},Accept:"application/json","Content-Type":"application/json","nlx-sdk-version":xu.version},body:JSON.stringify(E)});if(R.status>=400)throw new Error(`Responded with ${R.status}`);const j=await R.json();l(j)}catch(R){Eu.warn(R),a()}},f=()=>n.indexOf("wss://")===0;let m=[];const g=()=>{var E;const w=new URL(n);((E=t.experimental)==null?void 0:E.completeBotUrl)!==!0&&(w.searchParams.set("languageCode",i.languageCode),w.searchParams.set("channelKey",`${w.searchParams.get("channelKey")??""}-${i.languageCode}`)),w.searchParams.set("conversationId",i.conversationId),e=new tC(w.href),d=setInterval(()=>{},500),e.onmessage=function(_){typeof(_==null?void 0:_.data)=="string"&&l(xC(_.data))}},T=()=>{d!=null&&clearInterval(d),e!=null&&(e.onmessage=null,e.close(),e=void 0)};f()&&g();const p=(w,E)=>{const _={type:"user",receivedAt:new Date().getTime(),payload:{type:"structured",...Xm(w),context:E}};o({responses:[...i.responses,_]},_)},v=(w,E)=>{p({intentId:w},E),h({context:E,request:{structured:{intentId:w}}})},y=(w,E)=>{const _={type:"user",receivedAt:new Date().getTime(),payload:{type:"text",text:w,context:E}};o({responses:[...i.responses,_]},_),h({context:E,request:{unstructured:{text:w}}})},k=(w,E,_)=>{let R=[...i.responses];const j={type:"user",receivedAt:new Date().getTime(),payload:{type:"choice",choiceId:w}},V=(_==null?void 0:_.responseIndex)??-1,oe=(_==null?void 0:_.messageIndex)??-1;V>-1&&oe>-1&&(R=Zm(V,W=>W.type==="bot"?{...W,payload:{...W.payload,messages:Zm(oe,je=>({...je,selectedChoiceId:w}),W.payload.messages)}}:W,R)),R=[...R,j],o({responses:R},j),h({context:E,request:{structured:{nodeId:_==null?void 0:_.nodeId,intentId:_==null?void 0:_.intentId,choiceId:w}}})},C=w=>{m=m.filter(E=>E!==w)};return{sendText:y,sendStructured:(w,E)=>{p(w,E),h({context:E,request:{structured:Xm(w)}})},sendSlots:(w,E)=>{p({slots:w},E),h({context:E,request:{structured:{slots:Jm(w)}}})},sendIntent:v,sendWelcomeIntent:w=>{v(wC,w)},sendChoice:k,currentConversationId:()=>i.conversationId,setLanguageCode:w=>{if(w===i.languageCode){console.warn("Attempted to set language code to the one already active.");return}f()&&(T(),g()),o({languageCode:w})},currentLanguageCode:()=>i.languageCode,getLiveKitCredentials:async()=>{const w=await wu(`${s()}/requestToken`,{method:"POST",headers:{...t.headers??{},Accept:"application/json","Content-Type":"application/json","nlx-conversation-id":i.conversationId,"nlx-sdk-version":xu.version},body:JSON.stringify({languageCode:i.languageCode,conversationId:i.conversationId,userId:i.userId,requestToken:!0})});if(w.status>=400)throw new Error(`Responded with ${w.status}`);const E=await w.json();if((E==null?void 0:E.url)==null)throw new Error("Invalid response");return E},terminateLiveKitCall:async()=>{const w=await wu(`${s()}/terminateVoice`,{method:"POST",headers:{...t.headers??{},Accept:"application/json","Content-Type":"application/json","nlx-conversation-id":i.conversationId,"nlx-sdk-version":xu.version},body:JSON.stringify({languageCode:i.languageCode,conversationId:i.conversationId,userId:i.userId})});if(w.status>=400)throw new Error(`Responded with ${w.status}`)},subscribe:w=>(m=[...m,w],w(eg(i)),()=>{C(w)}),unsubscribe:C,unsubscribeAll:()=>{m=[]},reset:w=>{o({conversationId:Ym(),responses:(w==null?void 0:w.clearResponses)===!0?[]:i.responses}),f()&&(T(),g())},destroy:()=>{m=[],f()&&T()},setBotRequestOverride:w=>{c=w}}}function tg(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var i=t.length;for(e=0;e<i;e++)t[e]&&(n=tg(t[e]))&&(r&&(r+=" "),r+=n)}else for(n in t)t[n]&&(r&&(r+=" "),r+=n);return r}function te(){for(var t,e,n=0,r="",i=arguments.length;n<i;n++)(t=arguments[n])&&(e=tg(t))&&(r&&(r+=" "),r+=e);return r}function ui(t){return t!=null&&typeof t=="object"&&t["@@functional/placeholder"]===!0}function di(t){return function e(n){return arguments.length===0||ui(n)?e:t.apply(this,arguments)}}function ng(t){return function e(n,r){switch(arguments.length){case 0:return e;case 1:return ui(n)?e:di(function(i){return t(n,i)});default:return ui(n)&&ui(r)?e:ui(n)?di(function(i){return t(i,r)}):ui(r)?di(function(i){return t(n,i)}):t(n,r)}}}const _C=Array.isArray||function(e){return e!=null&&e.length>=0&&Object.prototype.toString.call(e)==="[object Array]"};function RC(t){return t!=null&&typeof t["@@transducer/step"]=="function"}function IC(t,e,n){return function(){if(arguments.length===0)return n();var r=arguments[arguments.length-1];if(!_C(r)){for(var i=0;i<t.length;){if(typeof r[t[i]]=="function")return r[t[i]].apply(r,Array.prototype.slice.call(arguments,0,-1));i+=1}if(RC(r)){var s=e.apply(null,Array.prototype.slice.call(arguments,0,-1));return s(r)}}return n.apply(this,arguments)}}const OC={init:function(){return this.xf["@@transducer/init"]()}};function rg(t){for(var e=[],n;!(n=t.next()).done;)e.push(n.value);return e}function ig(t,e,n){for(var r=0,i=n.length;r<i;){if(t(e,n[r]))return!0;r+=1}return!1}function LC(t){var e=String(t).match(/^function (\w*)/);return e==null?"":e[1]}function ha(t,e){return Object.prototype.hasOwnProperty.call(e,t)}function MC(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}const Pu=typeof Object.is=="function"?Object.is:MC;var sg=Object.prototype.toString,NC=function(){return sg.call(arguments)==="[object Arguments]"?function(e){return sg.call(e)==="[object Arguments]"}:function(e){return ha("callee",e)}}(),DC=!{toString:null}.propertyIsEnumerable("toString"),og=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],ag=function(){return arguments.propertyIsEnumerable("length")}(),AC=function(e,n){for(var r=0;r<e.length;){if(e[r]===n)return!0;r+=1}return!1},lg=di(typeof Object.keys=="function"&&!ag?function(e){return Object(e)!==e?[]:Object.keys(e)}:function(e){if(Object(e)!==e)return[];var n,r,i=[],s=ag&&NC(e);for(n in e)ha(n,e)&&(!s||n!=="length")&&(i[i.length]=n);if(DC)for(r=og.length-1;r>=0;)n=og[r],ha(n,e)&&!AC(i,n)&&(i[i.length]=n),r-=1;return i}),cg=di(function(e){return e===null?"Null":e===void 0?"Undefined":Object.prototype.toString.call(e).slice(8,-1)});function ug(t,e,n,r){var i=rg(t),s=rg(e);function o(a,l){return _u(a,l,n.slice(),r.slice())}return!ig(function(a,l){return!ig(o,l,a)},s,i)}function _u(t,e,n,r){if(Pu(t,e))return!0;var i=cg(t);if(i!==cg(e))return!1;if(typeof t["fantasy-land/equals"]=="function"||typeof e["fantasy-land/equals"]=="function")return typeof t["fantasy-land/equals"]=="function"&&t["fantasy-land/equals"](e)&&typeof e["fantasy-land/equals"]=="function"&&e["fantasy-land/equals"](t);if(typeof t.equals=="function"||typeof e.equals=="function")return typeof t.equals=="function"&&t.equals(e)&&typeof e.equals=="function"&&e.equals(t);switch(i){case"Arguments":case"Array":case"Object":if(typeof t.constructor=="function"&&LC(t.constructor)==="Promise")return t===e;break;case"Boolean":case"Number":case"String":if(!(typeof t==typeof e&&Pu(t.valueOf(),e.valueOf())))return!1;break;case"Date":if(!Pu(t.valueOf(),e.valueOf()))return!1;break;case"Error":return t.name===e.name&&t.message===e.message;case"RegExp":if(!(t.source===e.source&&t.global===e.global&&t.ignoreCase===e.ignoreCase&&t.multiline===e.multiline&&t.sticky===e.sticky&&t.unicode===e.unicode))return!1;break}for(var s=n.length-1;s>=0;){if(n[s]===t)return r[s]===e;s-=1}switch(i){case"Map":return t.size!==e.size?!1:ug(t.entries(),e.entries(),n.concat([t]),r.concat([e]));case"Set":return t.size!==e.size?!1:ug(t.values(),e.values(),n.concat([t]),r.concat([e]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var o=lg(t);if(o.length!==lg(e).length)return!1;var a=n.concat([t]),l=r.concat([e]);for(s=o.length-1;s>=0;){var c=o[s];if(!(ha(c,e)&&_u(e[c],t[c],a,l)))return!1;s-=1}return!0}var jC=ng(function(e,n){return _u(e,n,[],[])}),UC=function(){function t(e,n){this.xf=n,this.f=e,this.idx=-1,this.lastIdx=-1}return t.prototype["@@transducer/init"]=OC.init,t.prototype["@@transducer/result"]=function(e){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](e,this.lastIdx))},t.prototype["@@transducer/step"]=function(e,n){return this.idx+=1,this.f(n)&&(this.lastIdx=this.idx),e},t}();function FC(t){return function(e){return new UC(t,e)}}var dg=ng(IC([],FC,function(e,n){for(var r=n.length-1;r>=0;){if(e(n[r]))return r;r-=1}return-1}));const q=t=>({width:t.size!=null?`${t.size}px`:"100%",height:t.size!=null?`${t.size}px`:"100%",className:t.className}),BC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M11 21H10L11 14H7.5C6.92 14 6.93 13.68 7.12 13.34C7.31 13 7.17 13.26 7.19 13.22C8.48 10.94 10.42 7.54 13 3H14L13 10H16.5C16.99 10 17.06 10.33 16.97 10.51L16.9 10.66C12.96 17.55 11 21 11 21Z",fill:"currentColor"})}),fa=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{d:"M13.5562 5.34835C12.2796 6.62498 12.4866 8.90179 14.0186 10.4337C14.3377 10.7529 14.5571 11.134 14.6767 11.5383C14.8007 11.9572 14.8177 12.4011 14.7277 12.8268C14.6656 13.1203 14.5526 13.4051 14.3887 13.6672C14.3259 13.7677 14.2557 13.865 14.1778 13.9581C14.1279 14.018 14.0747 14.0761 14.0186 14.1322C13.3341 14.8166 12.3641 15.0421 11.4917 14.8092L11.4728 14.8042C9.38654 14.2543 7.32235 15.2129 6.85652 16.9516C6.5761 17.9979 5.50065 18.6188 4.45431 18.3385C3.40798 18.0581 2.787 16.9826 3.06729 15.9363C3.34209 14.9111 4.38012 14.2942 5.40615 14.5335L5.40666 14.5317C5.42748 14.5378 5.44842 14.5437 5.46962 14.5493C7.21342 15.0166 9.08173 13.699 9.64244 11.6062C9.64857 11.5835 9.65521 11.5608 9.66185 11.5383C9.7815 11.134 10.0009 10.7529 10.32 10.4337L10.332 10.4214C10.339 10.4142 10.346 10.407 10.3533 10.4C11.8549 8.86865 12.0496 6.61566 10.7824 5.34835C10.0163 4.58237 10.0163 3.34047 10.7824 2.57449C11.5483 1.8085 12.7903 1.8085 13.5562 2.57449C14.3066 3.32501 14.3218 4.53237 13.6016 5.30135L13.6029 5.30263C13.5872 5.3177 13.5716 5.33289 13.5562 5.34835Z",fill:"currentColor"}),b.jsx("path",{d:"M19.327 6.83185C20.0311 6.83185 20.6019 7.40264 20.6019 8.10675C20.6019 8.81087 20.0311 9.38166 19.327 9.38166C18.6229 9.38166 18.0521 8.81087 18.0521 8.10675C18.0521 7.40264 18.6229 6.83185 19.327 6.83185Z",fill:"currentColor"}),b.jsx("path",{d:"M21.3237 16.4754C21.3237 15.3741 20.4309 14.4813 19.3297 14.4813C18.2284 14.4813 17.3356 15.3741 17.3356 16.4754C17.3356 17.5767 18.2284 18.4695 19.3297 18.4695C20.4309 18.4695 21.3237 17.5767 21.3237 16.4754Z",fill:"currentColor"}),b.jsx("path",{d:"M12.1025 19.3194C12.8246 19.3194 13.4101 19.9195 13.4101 20.6597C13.4101 21.4 12.8246 22 12.1025 22C11.3804 22 10.7949 21.4 10.7949 20.6597C10.7949 19.9195 11.3804 19.3194 12.1025 19.3194Z",fill:"currentColor"}),b.jsx("path",{d:"M6.28367 8.13944C6.28367 7.41726 5.68363 6.83185 4.94339 6.83185C4.20314 6.83185 3.6031 7.41726 3.6031 8.13944C3.6031 8.86163 4.20314 9.44704 4.94339 9.44704C5.68363 9.44704 6.28367 8.86163 6.28367 8.13944Z",fill:"currentColor"})]}),zC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M6 13C5.45 13 5 13.45 5 14C5 14.55 5.45 15 6 15C6.55 15 7 14.55 7 14C7 13.45 6.55 13 6 13ZM6 17C5.45 17 5 17.45 5 18C5 18.55 5.45 19 6 19C6.55 19 7 18.55 7 18C7 17.45 6.55 17 6 17ZM6 9C5.45 9 5 9.45 5 10C5 10.55 5.45 11 6 11C6.55 11 7 10.55 7 10C7 9.45 6.55 9 6 9ZM3 9.5C2.72 9.5 2.5 9.72 2.5 10C2.5 10.28 2.72 10.5 3 10.5C3.28 10.5 3.5 10.28 3.5 10C3.5 9.72 3.28 9.5 3 9.5ZM6 5C5.45 5 5 5.45 5 6C5 6.55 5.45 7 6 7C6.55 7 7 6.55 7 6C7 5.45 6.55 5 6 5ZM21 10.5C21.28 10.5 21.5 10.28 21.5 10C21.5 9.72 21.28 9.5 21 9.5C20.72 9.5 20.5 9.72 20.5 10C20.5 10.28 20.72 10.5 21 10.5ZM14 7C14.55 7 15 6.55 15 6C15 5.45 14.55 5 14 5C13.45 5 13 5.45 13 6C13 6.55 13.45 7 14 7ZM14 3.5C14.28 3.5 14.5 3.28 14.5 3C14.5 2.72 14.28 2.5 14 2.5C13.72 2.5 13.5 2.72 13.5 3C13.5 3.28 13.72 3.5 14 3.5ZM3 13.5C2.72 13.5 2.5 13.72 2.5 14C2.5 14.28 2.72 14.5 3 14.5C3.28 14.5 3.5 14.28 3.5 14C3.5 13.72 3.28 13.5 3 13.5ZM10 20.5C9.72 20.5 9.5 20.72 9.5 21C9.5 21.28 9.72 21.5 10 21.5C10.28 21.5 10.5 21.28 10.5 21C10.5 20.72 10.28 20.5 10 20.5ZM10 3.5C10.28 3.5 10.5 3.28 10.5 3C10.5 2.72 10.28 2.5 10 2.5C9.72 2.5 9.5 2.72 9.5 3C9.5 3.28 9.72 3.5 10 3.5ZM10 7C10.55 7 11 6.55 11 6C11 5.45 10.55 5 10 5C9.45 5 9 5.45 9 6C9 6.55 9.45 7 10 7ZM10 12.5C9.17 12.5 8.5 13.17 8.5 14C8.5 14.83 9.17 15.5 10 15.5C10.83 15.5 11.5 14.83 11.5 14C11.5 13.17 10.83 12.5 10 12.5ZM18 13C17.45 13 17 13.45 17 14C17 14.55 17.45 15 18 15C18.55 15 19 14.55 19 14C19 13.45 18.55 13 18 13ZM18 17C17.45 17 17 17.45 17 18C17 18.55 17.45 19 18 19C18.55 19 19 18.55 19 18C19 17.45 18.55 17 18 17ZM18 9C17.45 9 17 9.45 17 10C17 10.55 17.45 11 18 11C18.55 11 19 10.55 19 10C19 9.45 18.55 9 18 9ZM18 5C17.45 5 17 5.45 17 6C17 6.55 17.45 7 18 7C18.55 7 19 6.55 19 6C19 5.45 18.55 5 18 5ZM21 13.5C20.72 13.5 20.5 13.72 20.5 14C20.5 14.28 20.72 14.5 21 14.5C21.28 14.5 21.5 14.28 21.5 14C21.5 13.72 21.28 13.5 21 13.5ZM14 17C13.45 17 13 17.45 13 18C13 18.55 13.45 19 14 19C14.55 19 15 18.55 15 18C15 17.45 14.55 17 14 17ZM14 20.5C13.72 20.5 13.5 20.72 13.5 21C13.5 21.28 13.72 21.5 14 21.5C14.28 21.5 14.5 21.28 14.5 21C14.5 20.72 14.28 20.5 14 20.5ZM10 8.5C9.17 8.5 8.5 9.17 8.5 10C8.5 10.83 9.17 11.5 10 11.5C10.83 11.5 11.5 10.83 11.5 10C11.5 9.17 10.83 8.5 10 8.5ZM10 17C9.45 17 9 17.45 9 18C9 18.55 9.45 19 10 19C10.55 19 11 18.55 11 18C11 17.45 10.55 17 10 17ZM14 12.5C13.17 12.5 12.5 13.17 12.5 14C12.5 14.83 13.17 15.5 14 15.5C14.83 15.5 15.5 14.83 15.5 14C15.5 13.17 14.83 12.5 14 12.5ZM14 8.5C13.17 8.5 12.5 9.17 12.5 10C12.5 10.83 13.17 11.5 14 11.5C14.83 11.5 15.5 10.83 15.5 10C15.5 9.17 14.83 8.5 14 8.5Z",fill:"currentColor"})}),VC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19 13H13V19H11V13H5V11H11V5H13V11H19V13Z",fill:"currentColor"})}),HC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 15.41L6 9.40997L7.41 7.99997L12 12.58L16.59 7.99997L18 9.40997L12 15.41Z",fill:"currentColor"})}),$C=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M7.59001 12L13.59 18L15 16.59L10.42 12L15 7.41002L13.59 6.00002L7.59001 12Z",fill:"currentColor"})}),qC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M15 12L9.00005 18L7.59005 16.59L12.17 12L7.59005 7.41002L9.00005 6.00002L15 12Z",fill:"currentColor"})}),WC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 8L6 14L7.41 15.41L12 10.83L16.59 15.41L18 14L12 8Z",fill:"currentColor"})}),pa=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z",fill:"currentColor"})}),Ru=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M18.5 16H7C4.79 16 3 14.21 3 12C3 9.79 4.79 8 7 8H19.5C20.88 8 22 9.12 22 10.5C22 11.88 20.88 13 19.5 13H9C8.45 13 8 12.55 8 12C8 11.45 8.45 11 9 11H18.5V9.5H9C7.62 9.5 6.5 10.62 6.5 12C6.5 13.38 7.62 14.5 9 14.5H19.5C21.71 14.5 23.5 12.71 23.5 10.5C23.5 8.29 21.71 6.5 19.5 6.5H7C3.96 6.5 1.5 8.96 1.5 12C1.5 15.04 3.96 17.5 7 17.5H18.5V16Z",fill:"currentColor"})}),GC=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{d:"M12 15.2C13.7673 15.2 15.2 13.7673 15.2 12C15.2 10.2327 13.7673 8.8 12 8.8C10.2327 8.8 8.8 10.2327 8.8 12C8.8 13.7673 10.2327 15.2 12 15.2Z",fill:"currentColor"}),b.jsx("path",{d:"M9 2L7.17 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6C22 4.9 21.1 4 20 4H16.83L15 2H9ZM12 17C9.24 17 7 14.76 7 12C7 9.24 9.24 7 12 7C14.76 7 17 9.24 17 12C17 14.76 14.76 17 12 17Z",fill:"currentColor"})]}),hg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M8.99991 16.17L4.82991 12L3.40991 13.41L8.99991 19L20.9999 7L19.5899 5.59L8.99991 16.17Z",fill:"currentColor"})}),fg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z",fill:"currentColor"})}),KC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z",fill:"currentColor"})}),pg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19 4H18V2H16V4H8V2H6V4H5C3.89 4 3.01 4.9 3.01 6L3 20C3 21.1 3.89 22 5 22H19C20.1 22 21 21.1 21 20V6C21 4.9 20.1 4 19 4ZM19 20H5V9H19V20Z",fill:"currentColor"})}),mg=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 21C6.9 21 6 20.1 6 19V7H18V19C18 20.1 17.1 21 16 21H8ZM9.33337 9H8V19H9.33337V9ZM11.3334 9V19H12.6666V9H11.3334ZM16 19H14.6666V9H16V19Z",fill:"currentColor"}),b.jsx("path",{d:"M15.5 4H19V6H5V4H8.5L9.5 3H14.5L15.5 4Z",fill:"currentColor"})]}),gg=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{d:"M21 12.22C21 6.73 16.74 3 12 3C7.31 3 3 6.65 3 12.28C2.4 12.62 2 13.26 2 14V16C2 17.1 2.9 18 4 18H5V11.9C5 8.03 8.13 4.9 12 4.9C15.87 4.9 19 8.03 19 11.9V19H11V21H19C20.1 21 21 20.1 21 19V17.78C21.59 17.47 22 16.86 22 16.14V13.84C22 13.14 21.59 12.53 21 12.22Z",fill:"currentColor"}),b.jsx("path",{d:"M9 14C9.55228 14 10 13.5523 10 13C10 12.4477 9.55228 12 9 12C8.44772 12 8 12.4477 8 13C8 13.5523 8.44772 14 9 14Z",fill:"currentColor"}),b.jsx("path",{d:"M15 14C15.5523 14 16 13.5523 16 13C16 12.4477 15.5523 12 15 12C14.4477 12 14 12.4477 14 13C14 13.5523 14.4477 14 15 14Z",fill:"currentColor"}),b.jsx("path",{d:"M18 11.03C17.52 8.18 15.04 6 12.05 6C9.02 6 5.76 8.51 6.02 12.45C8.49 11.44 10.35 9.24 10.88 6.56C12.19 9.19 14.88 11 18 11.03Z",fill:"currentColor"})]}),Iu=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM13 17H11V15H13V17ZM13 13H11V7H13V13Z",fill:"currentColor"})}),ZC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M7 14H5V19H10V17H7V14ZM5 10H7V7H10V5H5V10ZM17 17H14V19H19V14H17V17ZM14 5V7H17V10H19V5H14Z",fill:"currentColor"})}),Ou=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 15C13.66 15 14.99 13.66 14.99 12L15 6C15 4.34 13.66 3 12 3C10.34 3 9 4.34 9 6V12C9 13.66 10.34 15 12 15ZM17.3 12C17.3 15 14.76 17.1 12 17.1C9.24 17.1 6.7 15 6.7 12H5C5 15.42 7.72 18.23 11 18.72V22H13V18.72C16.28 18.24 19 15.42 19 12H17.3Z",fill:"currentColor"})}),QC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19 11H17.3C17.3 11.74 17.14 12.43 16.87 13.05L18.1 14.28C18.66 13.3 19 12.19 19 11ZM14.98 11.17C14.98 11.11 15 11.06 15 11V5C15 3.34 13.66 2 12 2C10.34 2 9 3.34 9 5V5.18L14.98 11.17ZM4.27 3L3 4.27L9.01 10.28V11C9.01 12.66 10.34 14 12 14C12.22 14 12.44 13.97 12.65 13.92L14.31 15.58C13.6 15.91 12.81 16.1 12 16.1C9.24 16.1 6.7 14 6.7 11H5C5 14.41 7.72 17.23 11 17.72V21H13V17.72C13.91 17.59 14.77 17.27 15.54 16.82L19.73 21L21 19.73L4.27 3Z",fill:"currentColor"})}),YC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 2C8.13 2 5 5.13 5 9C5 14.25 12 22 12 22C12 22 19 14.25 19 9C19 5.13 15.87 2 12 2ZM12 11.5C10.62 11.5 9.5 10.38 9.5 9C9.5 7.62 10.62 6.5 12 6.5C13.38 6.5 14.5 7.62 14.5 9C14.5 10.38 13.38 11.5 12 11.5Z",fill:"currentColor"})}),JC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M3 9.99999V14C3 14.55 3.45 15 4 15H7L10.29 18.29C10.92 18.92 12 18.47 12 17.58V6.40999C12 5.51999 10.92 5.06999 10.29 5.69999L7 8.99999H4C3.45 8.99999 3 9.44999 3 9.99999ZM16.5 12C16.5 10.23 15.48 8.70999 14 7.96999V16.02C15.48 15.29 16.5 13.77 16.5 12ZM14 4.44999V4.64999C14 5.02999 14.25 5.35999 14.6 5.49999C17.18 6.52999 19 9.05999 19 12C19 14.94 17.18 17.47 14.6 18.5C14.24 18.64 14 18.97 14 19.35V19.55C14 20.18 14.63 20.62 15.21 20.4C18.6 19.11 21 15.84 21 12C21 8.15999 18.6 4.88999 15.21 3.59999C14.63 3.36999 14 3.81999 14 4.44999Z",fill:"currentColor"})}),XC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M16.5 12C16.5 10.23 15.48 8.71 14 7.97V10.18L16.45 12.63C16.48 12.43 16.5 12.22 16.5 12ZM19 12C19 12.94 18.8 13.82 18.46 14.64L19.97 16.15C20.63 14.91 21 13.5 21 12C21 7.72 18.01 4.14 14 3.23V5.29C16.89 6.15 19 8.83 19 12ZM4.27 3L3 4.27L7.73 9H3V15H7L12 20V13.27L16.25 17.52C15.58 18.04 14.83 18.45 14 18.7V20.76C15.38 20.45 16.63 19.81 17.69 18.95L19.73 21L21 19.73L12 10.73L4.27 3ZM12 4L9.91 6.09L12 8.18V4Z",fill:"currentColor"})}),eS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12.87 15.07L10.33 12.56L10.36 12.53C12.1 10.59 13.34 8.36 14.07 6H17V4H10V2H8V4H1V5.99H12.17C11.5 7.92 10.44 9.75 9 11.35C8.07 10.32 7.3 9.19 6.69 8H4.69C5.42 9.63 6.42 11.17 7.67 12.56L2.58 17.58L4 19L9 14L12.11 17.11L12.87 15.07ZM18.5 10H16.5L12 22H14L15.12 19H19.87L21 22H23L18.5 10ZM15.88 17L17.5 12.67L19.12 17H15.88Z",fill:"currentColor"})}),tS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19 19H5V5H12V3H5C3.89 3 3 3.9 3 5V19C3 20.1 3.89 21 5 21H19C20.1 21 21 20.1 21 19V12H19V19ZM14 3V5H17.59L7.76 14.83L9.17 16.24L19 6.41V10H21V3H14Z",fill:"currentColor"})}),nS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M8 5V19L19 12L8 5Z",fill:"currentColor"})}),rS=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{d:"M13 14.5C13 15.3284 12.3284 16 11.5 16C10.6716 16 10 15.3284 10 14.5C10 13.6716 10.6716 13 11.5 13C12.3284 13 13 13.6716 13 14.5Z",fill:"currentColor"}),b.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6 2H14L20 8V20C20 21.1 19.1 22 18 22H5.99C4.89 22 4 21.1 4 20V4C4 2.9 4.9 2 6 2ZM13.16 17.57L15.04 19.45L16.45 18.04L14.57 16.16C15.29 14.83 15.1 13.15 13.98 12.03C12.61 10.66 10.4 10.66 9.03 12.03C7.66 13.4 7.66 15.61 9.03 16.98C10.15 18.1 11.83 18.28 13.16 17.57ZM13 3.5V9H18.5L13 3.5Z",fill:"currentColor"})]}),iS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M3 15H21V13H3V15ZM3 19H21V17H3V19ZM3 11H21V9H3V11ZM3 5V7H21V5H3Z",fill:"currentColor"})}),vg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M10 3C14.97 3 19 7.03 19 12H22L18.11 15.89L18.04 16.03L14 12H17C17 8.13 13.87 5 10 5C6.13 5 3 8.13 3 12C3 15.87 6.13 19 10 19V21C5.03 21 1 16.97 1 12C1 7.03 5.03 3 10 3Z",fill:"currentColor"})}),yg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19.1064 12.9302C19.1459 12.6333 19.1657 12.3266 19.1657 12C19.1657 11.6833 19.1459 11.3667 19.0965 11.0698L21.1053 9.50625C21.2834 9.36771 21.3329 9.10052 21.2241 8.9026L19.3241 5.61719C19.2053 5.39948 18.9579 5.33021 18.7402 5.39948L16.3751 6.34948C15.8803 5.97344 15.3558 5.65677 14.772 5.41927L14.4157 2.90573C14.3761 2.66823 14.1782 2.5 13.9407 2.5H10.1407C9.90323 2.5 9.71521 2.66823 9.67563 2.90573L9.31938 5.41927C8.73552 5.65677 8.20115 5.98333 7.71625 6.34948L5.35115 5.39948C5.13344 5.32031 4.88604 5.39948 4.7673 5.61719L2.87719 8.9026C2.75844 9.11042 2.79802 9.36771 2.99594 9.50625L5.00479 11.0698C4.95532 11.3667 4.91573 11.6932 4.91573 12C4.91573 12.3068 4.93552 12.6333 4.985 12.9302L2.97615 14.4938C2.79802 14.6323 2.74855 14.8995 2.8574 15.0974L4.7574 18.3828C4.87615 18.6005 5.12354 18.6698 5.34125 18.6005L7.70636 17.6505C8.20115 18.0266 8.72563 18.3432 9.30948 18.5807L9.66573 21.0943C9.71521 21.3318 9.90323 21.5 10.1407 21.5H13.9407C14.1782 21.5 14.3761 21.3318 14.4058 21.0943L14.7621 18.5807C15.3459 18.3432 15.8803 18.0266 16.3652 17.6505L18.7303 18.6005C18.948 18.6797 19.1954 18.6005 19.3142 18.3828L21.2142 15.0974C21.3329 14.8797 21.2834 14.6323 21.0954 14.4938L19.1064 12.9302ZM12.0407 15.5625C10.0814 15.5625 8.47823 13.9594 8.47823 12C8.47823 10.0406 10.0814 8.4375 12.0407 8.4375C14.0001 8.4375 15.6032 10.0406 15.6032 12C15.6032 13.9594 14.0001 15.5625 12.0407 15.5625Z",fill:"currentColor"})}),sS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M15.5 14H14.71L14.43 13.73C15.41 12.59 16 11.11 16 9.5C16 5.91 13.09 3 9.5 3C5.91 3 3 5.91 3 9.5C3 13.09 5.91 16 9.5 16C11.11 16 12.59 15.41 13.73 14.43L14 14.71V15.5L19 20.49L20.49 19L15.5 14ZM9.5 14C7.01 14 5 11.99 5 9.5C5 7.01 7.01 5 9.5 5C11.99 5 14 7.01 14 9.5C14 11.99 11.99 14 9.5 14Z",fill:"currentColor"})}),oS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M18 16.08C17.24 16.08 16.56 16.38 16.04 16.85L8.91 12.7C8.96 12.47 9 12.24 9 12C9 11.76 8.96 11.53 8.91 11.3L15.96 7.19C16.5 7.69 17.21 8 18 8C19.66 8 21 6.66 21 5C21 3.34 19.66 2 18 2C16.34 2 15 3.34 15 5C15 5.24 15.04 5.47 15.09 5.7L8.04 9.81C7.5 9.31 6.79 9 6 9C4.34 9 3 10.34 3 12C3 13.66 4.34 15 6 15C6.79 15 7.5 14.69 8.04 14.19L15.16 18.35C15.11 18.56 15.08 18.78 15.08 19C15.08 20.61 16.39 21.92 18 21.92C19.61 21.92 20.92 20.61 20.92 19C20.92 17.39 19.61 16.08 18 16.08Z",fill:"currentColor"})}),kg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M1 21H23L12 2L1 21ZM13 18H11V16H13V18ZM13 14H11V10H13V14Z",fill:"currentColor"})}),aS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M15 3H6C5.17 3 4.46 3.5 4.16 4.22L1.14 11.27C1.05 11.5 1 11.74 1 12V14C1 15.1 1.9 16 3 16H9.31L8.36 20.57L8.33 20.89C8.33 21.3 8.5 21.68 8.77 21.95L9.83 23L16.42 16.41C16.78 16.05 17 15.55 17 15V5C17 3.9 16.1 3 15 3ZM19 3V15H23V3H19Z",fill:"currentColor"})}),lS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M1 21H5V9H1V21ZM23 10C23 8.9 22.1 8 21 8H14.69L15.64 3.43L15.67 3.11C15.67 2.7 15.5 2.32 15.23 2.05L14.17 1L7.59 7.59C7.22 7.95 7 8.45 7 9V19C7 20.1 7.9 21 9 21H18C18.83 21 19.54 20.5 19.84 19.78L22.86 12.73C22.95 12.5 23 12.26 23 12V10Z",fill:"currentColor"})}),cS=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{d:"M11 7H12.5V12.25L17 14.92L16.25 16.15L11 13V7Z",fill:"currentColor"}),b.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2 12C2 6.47997 6.47 1.99997 11.99 1.99997C17.52 1.99997 22 6.47997 22 12C22 17.52 17.52 22 11.99 22C6.47 22 2 17.52 2 12ZM4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.57997 16.42 3.99997 12 3.99997C7.58 3.99997 4 7.57997 4 12Z",fill:"currentColor"})]}),bg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M13 3C8.03 3 4 7.03 4 12H1L4.89 15.89L4.96 16.03L9 12H6C6 8.13 9.13 5 13 5C16.87 5 20 8.13 20 12C20 15.87 16.87 19 13 19V21C17.97 21 22 16.97 22 12C22 7.03 17.97 3 13 3Z",fill:"currentColor"})}),Cg=Object.freeze(Object.defineProperty({__proto__:null,Action:BC,Add:VC,ArrowDown:HC,ArrowForward:pa,ArrowLeft:$C,ArrowRight:qC,ArrowUp:WC,AssistantOld:zC,Attachment:Ru,Camera:GC,Check:hg,Close:fg,Copy:KC,Date:pg,Delete:mg,Error:Iu,Escalate:gg,FullScreen:ZC,Help:t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M11 18H13V16H11V18ZM12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20ZM12 6C9.79 6 8 7.79 8 10H10C10 8.9 10.9 8 12 8C13.1 8 14 8.9 14 10C14 12 11 11.75 11 15H13C13 12.75 16 12.5 16 10C16 7.79 14.21 6 12 6Z",fill:"currentColor"})}),Location:YC,Mic:Ou,MicOff:QC,OpenInNew:tS,Play:nS,Preview:rS,Refresh:t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 4V1L8 5L12 9V6C15.31 6 18 8.69 18 12C18 13.01 17.75 13.97 17.3 14.8L18.76 16.26C19.54 15.03 20 13.57 20 12C20 7.58 16.42 4 12 4ZM12 18C8.69 18 6 15.31 6 12C6 10.99 6.25 10.03 6.7 9.2L5.24 7.74C4.46 8.97 4 10.43 4 12C4 16.42 7.58 20 12 20V23L16 19L12 15V18Z",fill:"currentColor"})}),Reorder:iS,Restart:vg,Search:sS,Settings:yg,Share:oS,ThumbDown:aS,ThumbUp:lS,Time:cS,Touchpoint:fa,Translate:eS,Undo:bg,Volume:JC,VolumeOff:XC,Warning:kg},Symbol.toStringTag,{value:"Module"})),uS=t=>b.jsxs("button",{className:te("p-3 w-fit bg-background text-primary-80 rounded-outer","after:content-[''] after:rounded-outer after:absolute after:inset-0 after:pointer-events-none","hover:after:bg-primary-10",t.className),disabled:t.onClick==null,onClick:t.onClick,children:[b.jsx("span",{className:"block flex-none w-8 h-8",children:t.iconUrl==null?b.jsx(fa,{}):b.jsx("img",{src:t.iconUrl,className:"w-8 h-8"})}),t.showLabel??!1?b.jsx("span",{children:t.label}):null]}),dS="bg-primary-80 text-secondary-80 enabled:hover:before:bg-primary-80 focus:before:bg-primary-80 enabled:active:before:bg-secondary-10 disabled:bg-primary-10 disabled:text-secondary-40",hS="bg-primary-5 text-primary-80 enabled:hover:before:bg-primary-10 focus:before:bg-primary-10 enabled:active:before:bg-secondary-10 disabled:bg-primary-5 disabled:text-primary-20",fS="bg-accent text-secondary-80 enabled:hover:before:bg-primary-40 focus:before:bg-primary-40 enabled:active:before:bg-secondary-10 disabled:bg-accent-20",pS="bg-secondary-60 backdrop-blur text-primary-80 enabled:hover:before:bg-primary-10 focus:before:bg-primary-10 enabled:active:before:bg-secondary-10 disabled:bg-secondary-20 disabled:text-primary-20",mS="bg-background backdrop-blur text-primary-80 enabled:hover:before:bg-primary-10 focus:before:bg-primary-10 enabled:active:before:bg-secondary-10 disabled:bg-secondary-20 disabled:text-primary-20",gS="bg-error-primary text-secondary-80",jt=({onClick:t,type:e,label:n,className:r,Icon:i})=>{const s=t==null;return b.jsx("button",{onClick:s?void 0:t,disabled:s,"aria-label":n,className:te("p-3 w-10 h-10 transition-colors rounded-inner relative z-10 overflow-hidden before:content-[''] before:absolute before:transition-colors before:-z-10 before:inset-0 before:bg-transparent focus:outline-0",e==="main"?dS:null,e==="ghost"?hS:null,e==="activated"?fS:null,e==="coverup"?pS:null,e==="overlay"?mS:null,e==="error"?gS:null,r),children:b.jsx(i,{})})},vS=typeof globalThis<"u"&&typeof navigator<"u"&&typeof document<"u",hi=new Map,Sg=t=>{const e=matchMedia(t),n=new Set,r=()=>{for(const i of n)i(e.matches)};return e.addEventListener("change",r,{passive:!0}),{mql:e,dispatchers:n,listener:r}},yS=(t,e)=>{let n=hi.get(t);n||(n=Sg(t),hi.set(t,n)),n.dispatchers.add(e),e(n.mql.matches)},kS=(t,e)=>{const n=hi.get(t);if(n){const{mql:r,dispatchers:i,listener:s}=n;i.delete(e),i.size===0&&(hi.delete(t),r.removeEventListener?r.removeEventListener("change",s):r.removeListener(s))}};function bS(t,e={}){let{initializeWithValue:n=!0}=e;vS||(n=!1);const[r,i]=B.useState(()=>{if(n){let s=hi.get(t);return s||(s=Sg(t),hi.set(t,s)),s.mql.matches}});return B.useEffect(()=>(yS(t,i),()=>{kS(t,i)}),[t]),r}const wg=t=>bS("(min-width: 768px)"),CS=({windowSize:t,renderCollapse:e,collapse:n,toggleSettings:r,isSettingsOpen:i,brandIcon:s,reset:o,enabled:a})=>{const l=t==="half",c=wg(),u=l&&c?"overlay":"ghost";return b.jsxs("div",{className:te("flex","p-2 md:p-3 items-center justify-between gap-2",{"md:absolute md:w-fit md:flex-col md:left-0 md:-translate-x-full":t==="half","md:absolute md:left-0 md:right-0 md:top-0":t==="full"}),children:[s!=null?b.jsx("img",{className:"w-10 h-10 block",src:s,role:"presentation"}):null,b.jsx(jt,{label:"Reset",type:u,className:s==null?"":"ml-auto",onClick:a?()=>{o()}:void 0,Icon:bg}),r!=null?b.jsx(jt,{className:s!=null?"":"ml-auto",Icon:yg,label:"Settings",type:i?"activated":u,onClick:a?r:void 0}):null,e?b.jsx(jt,{label:"Collapse",type:u,className:te(r==null?"ml-auto":"",l?"md:-order-1":""),onClick:a?()=>{n(new Event("collapse"))}:void 0,Icon:fg}):null]})},ma=({k:t,className:e})=>{const r=i=>`${i}s`;return b.jsx("div",{className:te("bg-accent-20 animate-ping absolute inset-0",e),style:{animationDelay:r(-1.5*t),animationDuration:r(1.5)}})},Lu=({className:t})=>b.jsxs(b.Fragment,{children:[b.jsx(ma,{k:.12,className:t}),b.jsx(ma,{k:.24,className:t}),b.jsx(ma,{k:.36,className:t}),b.jsx(ma,{k:.48,className:t})]});function SS(t,e){return e.forEach(function(n){n&&typeof n!="string"&&!Array.isArray(n)&&Object.keys(n).forEach(function(r){if(r!=="default"&&!(r in t)){var i=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return n[r]}})}})}),Object.freeze(t)}var wS=Object.defineProperty,TS=(t,e,n)=>e in t?wS(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Tg=(t,e,n)=>TS(t,typeof e!="symbol"?e+"":e,n);class yt{constructor(){Tg(this,"_locking"),Tg(this,"_locks"),this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){this._locks+=1;let e;const n=new Promise(i=>e=()=>{this._locks-=1,i()}),r=this._locking.then(()=>e);return this._locking=this._locking.then(()=>n),r}}function Se(t,e){if(!t)throw new Error(e)}const xS=34028234663852886e22,ES=-34028234663852886e22,PS=4294967295,_S=2147483647,RS=-2147483648;function ga(t){if(typeof t!="number")throw new Error("invalid int 32: "+typeof t);if(!Number.isInteger(t)||t>_S||t<RS)throw new Error("invalid int 32: "+t)}function Mu(t){if(typeof t!="number")throw new Error("invalid uint 32: "+typeof t);if(!Number.isInteger(t)||t>PS||t<0)throw new Error("invalid uint 32: "+t)}function xg(t){if(typeof t!="number")throw new Error("invalid float 32: "+typeof t);if(Number.isFinite(t)&&(t>xS||t<ES))throw new Error("invalid float 32: "+t)}const Eg=Symbol("@bufbuild/protobuf/enum-type");function IS(t){const e=t[Eg];return Se(e,"missing enum type on enum object"),e}function Pg(t,e,n,r){t[Eg]=_g(e,n.map(i=>({no:i.no,name:i.name,localName:t[i.no]})))}function _g(t,e,n){const r=Object.create(null),i=Object.create(null),s=[];for(const o of e){const a=Rg(o);s.push(a),r[o.name]=a,i[o.no]=a}return{typeName:t,values:s,findName(o){return r[o]},findNumber(o){return i[o]}}}function OS(t,e,n){const r={};for(const i of e){const s=Rg(i);r[s.localName]=s.no,r[s.no]=s.localName}return Pg(r,t,e),r}function Rg(t){return"localName"in t?t:Object.assign(Object.assign({},t),{localName:t.name})}class Nu{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,n){const r=this.getType(),i=r.runtime.bin,s=i.makeReadOptions(n);return i.readMessage(this,s.readerFactory(e),e.byteLength,s),this}fromJson(e,n){const r=this.getType(),i=r.runtime.json,s=i.makeReadOptions(n);return i.readMessage(r,e,s,this),this}fromJsonString(e,n){let r;try{r=JSON.parse(e)}catch(i){throw new Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(i instanceof Error?i.message:String(i)))}return this.fromJson(r,n)}toBinary(e){const n=this.getType(),r=n.runtime.bin,i=r.makeWriteOptions(e),s=i.writerFactory();return r.writeMessage(this,s,i),s.finish()}toJson(e){const n=this.getType(),r=n.runtime.json,i=r.makeWriteOptions(e);return r.writeMessage(this,i)}toJsonString(e){var n;const r=this.toJson(e);return JSON.stringify(r,null,(n=e==null?void 0:e.prettySpaces)!==null&&n!==void 0?n:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function LS(t,e,n,r){var i;const s=(i=r==null?void 0:r.localName)!==null&&i!==void 0?i:e.substring(e.lastIndexOf(".")+1),o={[s]:function(a){t.util.initFields(this),t.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(o.prototype,new Nu),Object.assign(o,{runtime:t,typeName:e,fields:t.util.newFieldList(n),fromBinary(a,l){return new o().fromBinary(a,l)},fromJson(a,l){return new o().fromJson(a,l)},fromJsonString(a,l){return new o().fromJsonString(a,l)},equals(a,l){return t.util.equals(o,a,l)}}),o}function MS(){let t=0,e=0;for(let r=0;r<28;r+=7){let i=this.buf[this.pos++];if(t|=(i&127)<<r,!(i&128))return this.assertBounds(),[t,e]}let n=this.buf[this.pos++];if(t|=(n&15)<<28,e=(n&112)>>4,!(n&128))return this.assertBounds(),[t,e];for(let r=3;r<=31;r+=7){let i=this.buf[this.pos++];if(e|=(i&127)<<r,!(i&128))return this.assertBounds(),[t,e]}throw new Error("invalid varint")}function Du(t,e,n){for(let s=0;s<28;s=s+7){const o=t>>>s,a=!(!(o>>>7)&&e==0),l=(a?o|128:o)&255;if(n.push(l),!a)return}const r=t>>>28&15|(e&7)<<4,i=!!(e>>3);if(n.push((i?r|128:r)&255),!!i){for(let s=3;s<31;s=s+7){const o=e>>>s,a=!!(o>>>7),l=(a?o|128:o)&255;if(n.push(l),!a)return}n.push(e>>>31&1)}}const va=4294967296;function Ig(t){const e=t[0]==="-";e&&(t=t.slice(1));const n=1e6;let r=0,i=0;function s(o,a){const l=Number(t.slice(o,a));i*=n,r=r*n+l,r>=va&&(i=i+(r/va|0),r=r%va)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Lg(r,i):Au(r,i)}function NS(t,e){let n=Au(t,e);const r=n.hi&2147483648;r&&(n=Lg(n.lo,n.hi));const i=Og(n.lo,n.hi);return r?"-"+i:i}function Og(t,e){if({lo:t,hi:e}=DS(t,e),e<=2097151)return String(va*e+t);const n=t&16777215,r=(t>>>24|e<<8)&16777215,i=e>>16&65535;let s=n+r*6777216+i*6710656,o=r+i*8147497,a=i*2;const l=1e7;return s>=l&&(o+=Math.floor(s/l),s%=l),o>=l&&(a+=Math.floor(o/l),o%=l),a.toString()+Mg(o)+Mg(s)}function DS(t,e){return{lo:t>>>0,hi:e>>>0}}function Au(t,e){return{lo:t|0,hi:e|0}}function Lg(t,e){return e=~e,t?t=~t+1:e+=1,Au(t,e)}const Mg=t=>{const e=String(t);return"0000000".slice(e.length)+e};function Ng(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let n=0;n<9;n++)e.push(t&127|128),t=t>>7;e.push(1)}}function AS(){let t=this.buf[this.pos++],e=t&127;if(!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,!(t&128))return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let n=5;t&128&&n<10;n++)t=this.buf[this.pos++];if(t&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function jS(){const t=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const i=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(l){const c=typeof l=="bigint"?l:BigInt(l);if(c>s||c<i)throw new Error("int64 invalid: ".concat(l));return c},uParse(l){const c=typeof l=="bigint"?l:BigInt(l);if(c>a||c<o)throw new Error("uint64 invalid: ".concat(l));return c},enc(l){return t.setBigInt64(0,this.parse(l),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},uEnc(l){return t.setBigInt64(0,this.uParse(l),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},dec(l,c){return t.setInt32(0,l,!0),t.setInt32(4,c,!0),t.getBigInt64(0,!0)},uDec(l,c){return t.setInt32(0,l,!0),t.setInt32(4,c,!0),t.getBigUint64(0,!0)}}}const n=i=>Se(/^-?[0-9]+$/.test(i),"int64 invalid: ".concat(i)),r=i=>Se(/^[0-9]+$/.test(i),"uint64 invalid: ".concat(i));return{zero:"0",supported:!1,parse(i){return typeof i!="string"&&(i=i.toString()),n(i),i},uParse(i){return typeof i!="string"&&(i=i.toString()),r(i),i},enc(i){return typeof i!="string"&&(i=i.toString()),n(i),Ig(i)},uEnc(i){return typeof i!="string"&&(i=i.toString()),r(i),Ig(i)},dec(i,s){return NS(i,s)},uDec(i,s){return Og(i,s)}}}const pe=jS();var I;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(I||(I={}));var $n;(function(t){t[t.BIGINT=0]="BIGINT",t[t.STRING=1]="STRING"})($n||($n={}));function qn(t,e,n){if(e===n)return!0;if(t==I.BYTES){if(!(e instanceof Uint8Array)||!(n instanceof Uint8Array)||e.length!==n.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==n[r])return!1;return!0}switch(t){case I.UINT64:case I.FIXED64:case I.INT64:case I.SFIXED64:case I.SINT64:return e==n}return!1}function fi(t,e){switch(t){case I.BOOL:return!1;case I.UINT64:case I.FIXED64:case I.INT64:case I.SFIXED64:case I.SINT64:return e==0?pe.zero:"0";case I.DOUBLE:case I.FLOAT:return 0;case I.BYTES:return new Uint8Array(0);case I.STRING:return"";default:return 0}}function Dg(t,e){switch(t){case I.BOOL:return e===!1;case I.STRING:return e==="";case I.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var Ee;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(Ee||(Ee={}));class US{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let i=0;i<this.chunks.length;i++)e+=this.chunks[i].length;let n=new Uint8Array(e),r=0;for(let i=0;i<this.chunks.length;i++)n.set(this.chunks[i],r),r+=this.chunks[i].length;return this.chunks=[],n}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),n=this.stack.pop();if(!n)throw new Error("invalid state, fork stack empty");return this.chunks=n.chunks,this.buf=n.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,n){return this.uint32((e<<3|n)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Mu(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return ga(e),Ng(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let n=this.textEncoder.encode(e);return this.uint32(n.byteLength),this.raw(n)}float(e){xg(e);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,e,!0),this.raw(n)}double(e){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,e,!0),this.raw(n)}fixed32(e){Mu(e);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,e,!0),this.raw(n)}sfixed32(e){ga(e);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,e,!0),this.raw(n)}sint32(e){return ga(e),e=(e<<1^e>>31)>>>0,Ng(e,this.buf),this}sfixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),i=pe.enc(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}fixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),i=pe.uEnc(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}int64(e){let n=pe.enc(e);return Du(n.lo,n.hi,this.buf),this}sint64(e){let n=pe.enc(e),r=n.hi>>31,i=n.lo<<1^r,s=(n.hi<<1|n.lo>>>31)^r;return Du(i,s,this.buf),this}uint64(e){let n=pe.uEnc(e);return Du(n.lo,n.hi,this.buf),this}}class FS{constructor(e,n){this.varint64=MS,this.uint32=AS,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=n??new TextDecoder}tag(){let e=this.uint32(),n=e>>>3,r=e&7;if(n<=0||r<0||r>5)throw new Error("illegal tag: field no "+n+" wire type "+r);return[n,r]}skip(e,n){let r=this.pos;switch(e){case Ee.Varint:for(;this.buf[this.pos++]&128;);break;case Ee.Bit64:this.pos+=4;case Ee.Bit32:this.pos+=4;break;case Ee.LengthDelimited:let i=this.uint32();this.pos+=i;break;case Ee.StartGroup:for(;;){const[s,o]=this.tag();if(o===Ee.EndGroup){if(n!==void 0&&s!==n)throw new Error("invalid end group tag");break}this.skip(o,s)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(r,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return pe.dec(...this.varint64())}uint64(){return pe.uDec(...this.varint64())}sint64(){let[e,n]=this.varint64(),r=-(e&1);return e=(e>>>1|(n&1)<<31)^r,n=n>>>1^r,pe.dec(e,n)}bool(){let[e,n]=this.varint64();return e!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return pe.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return pe.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),n=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(n,n+e)}string(){return this.textDecoder.decode(this.bytes())}}function BS(t,e,n,r){let i;return{typeName:e,extendee:n,get field(){if(!i){const s=typeof r=="function"?r():r;s.name=e.split(".").pop(),s.jsonName="[".concat(e,"]"),i=t.util.newFieldList([s]).list()[0]}return i},runtime:t}}function Ag(t){const e=t.field.localName,n=Object.create(null);return n[e]=zS(t),[n,()=>n[e]]}function zS(t){const e=t.field;if(e.repeated)return[];if(e.default!==void 0)return e.default;switch(e.kind){case"enum":return e.T.values[0].no;case"scalar":return fi(e.T,e.L);case"message":const n=e.T,r=new n;return n.fieldWrapper?n.fieldWrapper.unwrapField(r):r;case"map":throw"map fields are not allowed to be extensions"}}function VS(t,e){if(!e.repeated&&(e.kind=="enum"||e.kind=="scalar")){for(let n=t.length-1;n>=0;--n)if(t[n].no==e.no)return[t[n]];return[]}return t.filter(n=>n.no===e.no)}let vn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),ya=[];for(let t=0;t<vn.length;t++)ya[vn[t].charCodeAt(0)]=t;ya[45]=vn.indexOf("+"),ya[95]=vn.indexOf("/");const jg={dec(t){let e=t.length*3/4;t[t.length-2]=="="?e-=2:t[t.length-1]=="="&&(e-=1);let n=new Uint8Array(e),r=0,i=0,s,o=0;for(let a=0;a<t.length;a++){if(s=ya[t.charCodeAt(a)],s===void 0)switch(t[a]){case"=":i=0;case`
|
|
60
|
+
*/var Xb=function(){if(typeof WebSocket<"u")return WebSocket},eC=function(t){return typeof t<"u"&&!!t&&t.CLOSING===2},br={maxReconnectionDelay:1e4,minReconnectionDelay:1e3+Math.random()*4e3,minUptime:5e3,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,maxEnqueuedMessages:1/0},tC=function(){function t(e,n,r){var i=this;r===void 0&&(r={}),this._listeners={error:[],message:[],open:[],close:[]},this._retryCount=-1,this._shouldReconnect=!0,this._connectLock=!1,this._binaryType="blob",this._closeCalled=!1,this._messageQueue=[],this.onclose=null,this.onerror=null,this.onmessage=null,this.onopen=null,this._handleOpen=function(s){i._debug("open event");var o=i._options.minUptime,a=o===void 0?br.minUptime:o;clearTimeout(i._connectTimeout),i._uptimeTimeout=setTimeout(function(){return i._acceptOpen()},a),i._ws.binaryType=i._binaryType,i._messageQueue.forEach(function(l){return i._ws.send(l)}),i._messageQueue=[],i.onopen&&i.onopen(s),i._listeners.open.forEach(function(l){return i._callEventListener(s,l)})},this._handleMessage=function(s){i._debug("message event"),i.onmessage&&i.onmessage(s),i._listeners.message.forEach(function(o){return i._callEventListener(s,o)})},this._handleError=function(s){i._debug("error event",s.message),i._disconnect(void 0,s.message==="TIMEOUT"?"timeout":void 0),i.onerror&&i.onerror(s),i._debug("exec error listeners"),i._listeners.error.forEach(function(o){return i._callEventListener(s,o)}),i._connect()},this._handleClose=function(s){i._debug("close event"),i._clearTimeouts(),i._shouldReconnect&&i._connect(),i.onclose&&i.onclose(s),i._listeners.close.forEach(function(o){return i._callEventListener(s,o)})},this._url=e,this._protocols=n,this._options=r,this._options.startClosed&&(this._shouldReconnect=!1),this._connect()}return Object.defineProperty(t,"CONNECTING",{get:function(){return 0},enumerable:!0,configurable:!0}),Object.defineProperty(t,"OPEN",{get:function(){return 1},enumerable:!0,configurable:!0}),Object.defineProperty(t,"CLOSING",{get:function(){return 2},enumerable:!0,configurable:!0}),Object.defineProperty(t,"CLOSED",{get:function(){return 3},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"CONNECTING",{get:function(){return t.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"OPEN",{get:function(){return t.OPEN},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"CLOSING",{get:function(){return t.CLOSING},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"CLOSED",{get:function(){return t.CLOSED},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"binaryType",{get:function(){return this._ws?this._ws.binaryType:this._binaryType},set:function(e){this._binaryType=e,this._ws&&(this._ws.binaryType=e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"retryCount",{get:function(){return Math.max(this._retryCount,0)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bufferedAmount",{get:function(){var e=this._messageQueue.reduce(function(n,r){return typeof r=="string"?n+=r.length:r instanceof Blob?n+=r.size:n+=r.byteLength,n},0);return e+(this._ws?this._ws.bufferedAmount:0)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"extensions",{get:function(){return this._ws?this._ws.extensions:""},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"protocol",{get:function(){return this._ws?this._ws.protocol:""},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"readyState",{get:function(){return this._ws?this._ws.readyState:this._options.startClosed?t.CLOSED:t.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"url",{get:function(){return this._ws?this._ws.url:""},enumerable:!0,configurable:!0}),t.prototype.close=function(e,n){if(e===void 0&&(e=1e3),this._closeCalled=!0,this._shouldReconnect=!1,this._clearTimeouts(),!this._ws){this._debug("close enqueued: no ws instance");return}if(this._ws.readyState===this.CLOSED){this._debug("close: already closed");return}this._ws.close(e,n)},t.prototype.reconnect=function(e,n){this._shouldReconnect=!0,this._closeCalled=!1,this._retryCount=-1,!this._ws||this._ws.readyState===this.CLOSED?this._connect():(this._disconnect(e,n),this._connect())},t.prototype.send=function(e){if(this._ws&&this._ws.readyState===this.OPEN)this._debug("send",e),this._ws.send(e);else{var n=this._options.maxEnqueuedMessages,r=n===void 0?br.maxEnqueuedMessages:n;this._messageQueue.length<r&&(this._debug("enqueue",e),this._messageQueue.push(e))}},t.prototype.addEventListener=function(e,n){this._listeners[e]&&this._listeners[e].push(n)},t.prototype.dispatchEvent=function(e){var n,r,i=this._listeners[e.type];if(i)try{for(var s=Kb(i),o=s.next();!o.done;o=s.next()){var a=o.value;this._callEventListener(e,a)}}catch(l){n={error:l}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return!0},t.prototype.removeEventListener=function(e,n){this._listeners[e]&&(this._listeners[e]=this._listeners[e].filter(function(r){return r!==n}))},t.prototype._debug=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];this._options.debug&&console.log.apply(console,Qb(["RWS>"],e))},t.prototype._getNextDelay=function(){var e=this._options,n=e.reconnectionDelayGrowFactor,r=n===void 0?br.reconnectionDelayGrowFactor:n,i=e.minReconnectionDelay,s=i===void 0?br.minReconnectionDelay:i,o=e.maxReconnectionDelay,a=o===void 0?br.maxReconnectionDelay:o,l=0;return this._retryCount>0&&(l=s*Math.pow(r,this._retryCount-1),l>a&&(l=a)),this._debug("next delay",l),l},t.prototype._wait=function(){var e=this;return new Promise(function(n){setTimeout(n,e._getNextDelay())})},t.prototype._getNextUrl=function(e){if(typeof e=="string")return Promise.resolve(e);if(typeof e=="function"){var n=e();if(typeof n=="string")return Promise.resolve(n);if(n.then)return n}throw Error("Invalid URL")},t.prototype._connect=function(){var e=this;if(!(this._connectLock||!this._shouldReconnect)){this._connectLock=!0;var n=this._options,r=n.maxRetries,i=r===void 0?br.maxRetries:r,s=n.connectionTimeout,o=s===void 0?br.connectionTimeout:s,a=n.WebSocket,l=a===void 0?Xb():a;if(this._retryCount>=i){this._debug("max retries reached",this._retryCount,">=",i);return}if(this._retryCount++,this._debug("connect",this._retryCount),this._removeListeners(),!eC(l))throw Error("No valid WebSocket class provided");this._wait().then(function(){return e._getNextUrl(e._url)}).then(function(c){e._closeCalled||(e._debug("connect",{url:c,protocols:e._protocols}),e._ws=e._protocols?new l(c,e._protocols):new l(c),e._ws.binaryType=e._binaryType,e._connectLock=!1,e._addListeners(),e._connectTimeout=setTimeout(function(){return e._handleTimeout()},o))})}},t.prototype._handleTimeout=function(){this._debug("timeout event"),this._handleError(new Yb(Error("TIMEOUT"),this))},t.prototype._disconnect=function(e,n){if(e===void 0&&(e=1e3),this._clearTimeouts(),!!this._ws){this._removeListeners();try{this._ws.close(e,n),this._handleClose(new Jb(e,n,this))}catch{}}},t.prototype._acceptOpen=function(){this._debug("accept open"),this._retryCount=0},t.prototype._callEventListener=function(e,n){"handleEvent"in n?n.handleEvent(e):n(e)},t.prototype._removeListeners=function(){this._ws&&(this._debug("removeListeners"),this._ws.removeEventListener("open",this._handleOpen),this._ws.removeEventListener("close",this._handleClose),this._ws.removeEventListener("message",this._handleMessage),this._ws.removeEventListener("error",this._handleError))},t.prototype._addListeners=function(){this._ws&&(this._debug("addListeners"),this._ws.addEventListener("open",this._handleOpen),this._ws.addEventListener("close",this._handleClose),this._ws.addEventListener("message",this._handleMessage),this._ws.addEventListener("error",this._handleError))},t.prototype._clearTimeouts=function(){clearTimeout(this._connectTimeout),clearTimeout(this._uptimeTimeout)},t}();function ke(t){return t!=null&&typeof t=="object"&&t["@@functional/placeholder"]===!0}function Cr(t){return function e(n){return arguments.length===0||ke(n)?e:t.apply(this,arguments)}}function ci(t){return function e(n,r){switch(arguments.length){case 0:return e;case 1:return ke(n)?e:Cr(function(i){return t(n,i)});default:return ke(n)&&ke(r)?e:ke(n)?Cr(function(i){return t(i,r)}):ke(r)?Cr(function(i){return t(n,i)}):t(n,r)}}}function nC(t,e){t=t||[],e=e||[];var n,r=t.length,i=e.length,s=[];for(n=0;n<r;)s[s.length]=t[n],n+=1;for(n=0;n<i;)s[s.length]=e[n],n+=1;return s}function rC(t){return function e(n,r,i){switch(arguments.length){case 0:return e;case 1:return ke(n)?e:ci(function(s,o){return t(n,s,o)});case 2:return ke(n)&&ke(r)?e:ke(n)?ci(function(s,o){return t(s,r,o)}):ke(r)?ci(function(s,o){return t(n,s,o)}):Cr(function(s){return t(n,r,s)});default:return ke(n)&&ke(r)&&ke(i)?e:ke(n)&&ke(r)?ci(function(s,o){return t(s,o,i)}):ke(n)&&ke(i)?ci(function(s,o){return t(s,r,o)}):ke(r)&&ke(i)?ci(function(s,o){return t(n,s,o)}):ke(n)?Cr(function(s){return t(s,r,i)}):ke(r)?Cr(function(s){return t(n,s,i)}):ke(i)?Cr(function(s){return t(n,r,s)}):t(n,r,i)}}}var Zm=rC(function(e,n,r){var i=r.length;if(e>=i||e<-i)return r;var s=(i+e)%i,o=nC(r);return o[s]=n(r[s]),o});let da;const iC=new Uint8Array(16);function sC(){if(!da&&(da=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!da))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return da(iC)}const Ve=[];for(let t=0;t<256;++t)Ve.push((t+256).toString(16).slice(1));function oC(t,e=0){return Ve[t[e+0]]+Ve[t[e+1]]+Ve[t[e+2]]+Ve[t[e+3]]+"-"+Ve[t[e+4]]+Ve[t[e+5]]+"-"+Ve[t[e+6]]+Ve[t[e+7]]+"-"+Ve[t[e+8]]+Ve[t[e+9]]+"-"+Ve[t[e+10]]+Ve[t[e+11]]+Ve[t[e+12]]+Ve[t[e+13]]+Ve[t[e+14]]+Ve[t[e+15]]}const Qm={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ym(t,e,n){if(Qm.randomUUID&&!t)return Qm.randomUUID();t=t||{};const r=t.random||(t.rng||sC)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,oC(r)}var aC="@nlxai/chat-core",lC="1.0.5-alpha.4",cC="NLX Chat SDK core",uC="module",dC="lib/index.cjs",hC="lib/index.esm.js",fC="lib/index.umd.js",pC="lib/index.d.ts",mC={".":{types:"./lib/index.d.ts",import:"./lib/index.esm.js",require:"./lib/index.cjs"}},gC={build:"rm -rf lib && rollup -c --configPlugin typescript --configImportAttributesKey with",docs:"rm -rf docs/ && typedoc && concat-md --decrease-title-levels --dir-name-as-title docs/ > docs/index.md","lint:check":"eslint src/ --ext .ts,.tsx,.js,.jsx --max-warnings 0",lint:"eslint src/ --ext .ts,.tsx,.js,.jsx --fix",prepublish:"npm run build","preview-docs":"npm run docs && comrak --unsafe --gfm -o docs/index.html docs/index.md && open docs/index.html","publish-docs":"npm run docs && mv docs/index.md ../website/src/content/headless-api-reference.md",test:"typedoc --emit none",tsc:"tsc"},vC="Peter Szerzo <peter@nlx.ai>",yC="MIT",kC={"@types/isomorphic-fetch":"^0.0.36","@types/node":"^22.10.1","@types/ramda":"0.29.1","@types/uuid":"^9.0.7","concat-md":"^0.5.1","eslint-config-nlx":"*",prettier:"^3.1.0","rollup-config-nlx":"*",typedoc:"^0.25.13","typedoc-plugin-markdown":"^3.17.1",typescript:"^5.5.4"},bC={"isomorphic-fetch":"^3.0.0",ramda:"^0.29.1","reconnecting-websocket":"^4.4.0",uuid:"^9.0.1"},CC={access:"public"},SC="c701b502f0398e9956a8b35b711a45f264fa7603",xu={name:aC,version:lC,description:cC,type:uC,main:dC,module:hC,browser:fC,types:pC,exports:mC,scripts:gC,author:vC,license:yC,devDependencies:kC,dependencies:bC,publishConfig:CC,gitHead:SC};const Eu=console,wC="NLX.Welcome",TC="We encountered an issue. Please try again soon.",Jm=t=>Array.isArray(t)?t:Object.entries(t).map(([e,n])=>({slotId:e,value:n})),Xm=t=>({...t,slots:t.slots!=null?Jm(t.slots):t.slots}),eg=t=>t.responses,xC=t=>{try{return JSON.parse(t)}catch{return null}},EC=t=>(t.applicationUrl??t.botUrl??"").length>0;function PC(t){let e;const n=t.applicationUrl??t.botUrl??"";/[-|_][a-z]{2,}[-|_][A-Z]{2,}$/.test(n)&&Eu.warn("Since v1.0.0, the language code is no longer added at the end of the application URL. Please remove the modifier (e.g. '-en-US') from the URL, and specify it in the `languageCode` parameter instead.");const r=t.conversationId??Ym();let i={responses:t.responses??[],languageCode:t.languageCode,userId:t.userId,conversationId:r};const s=()=>{var w;return`${n}${((w=t.experimental)==null?void 0:w.completeBotUrl)===!0?"":`-${i.languageCode}`}`},o=(w,E)=>{i={...i,...w},m.forEach(_=>{_(eg(i),E)})},a=()=>{const w={type:"failure",receivedAt:new Date().getTime(),payload:{text:t.failureMessage??TC}};o({responses:[...i.responses,w]},w)},l=w=>{if((w==null?void 0:w.messages.length)>0){const E={type:"bot",receivedAt:new Date().getTime(),payload:{...w,messages:w.messages.map(_=>({nodeId:_.nodeId,messageId:_.messageId,text:_.text,choices:_.choices??[]}))}};o({responses:[...i.responses,E]},E),w.metadata.hasPendingDataRequest&&(p({poll:!0}),setTimeout(()=>{h({request:{structured:{poll:!0}}})},1500))}else Eu.warn("Invalid message structure, expected object with field 'messages'."),a()};let c,u=[],d=null;const h=async w=>{var _;if(c!=null){c(w,R=>{const j={type:"bot",receivedAt:new Date().getTime(),payload:R};o({responses:[...i.responses,j]},j)});return}const E={userId:i.userId,conversationId:i.conversationId,...w,languageCode:i.languageCode,channelType:(_=t.experimental)==null?void 0:_.channelType,environment:t.environment};if(f())(e==null?void 0:e.readyState)===1?e.send(JSON.stringify(E)):u=[...u,E];else try{const R=await wu(s(),{method:"POST",headers:{...t.headers??{},Accept:"application/json","Content-Type":"application/json","nlx-sdk-version":xu.version},body:JSON.stringify(E)});if(R.status>=400)throw new Error(`Responded with ${R.status}`);const j=await R.json();l(j)}catch(R){Eu.warn(R),a()}},f=()=>n.indexOf("wss://")===0;let m=[];const g=()=>{var E;const w=new URL(n);((E=t.experimental)==null?void 0:E.completeBotUrl)!==!0&&(w.searchParams.set("languageCode",i.languageCode),w.searchParams.set("channelKey",`${w.searchParams.get("channelKey")??""}-${i.languageCode}`)),w.searchParams.set("conversationId",i.conversationId),e=new tC(w.href),d=setInterval(()=>{},500),e.onmessage=function(_){typeof(_==null?void 0:_.data)=="string"&&l(xC(_.data))}},T=()=>{d!=null&&clearInterval(d),e!=null&&(e.onmessage=null,e.close(),e=void 0)};f()&&g();const p=(w,E)=>{const _={type:"user",receivedAt:new Date().getTime(),payload:{type:"structured",...Xm(w),context:E}};o({responses:[...i.responses,_]},_)},v=(w,E)=>{p({intentId:w},E),h({context:E,request:{structured:{intentId:w}}})},y=(w,E)=>{const _={type:"user",receivedAt:new Date().getTime(),payload:{type:"text",text:w,context:E}};o({responses:[...i.responses,_]},_),h({context:E,request:{unstructured:{text:w}}})},k=(w,E,_)=>{let R=[...i.responses];const j={type:"user",receivedAt:new Date().getTime(),payload:{type:"choice",choiceId:w}},V=(_==null?void 0:_.responseIndex)??-1,oe=(_==null?void 0:_.messageIndex)??-1;V>-1&&oe>-1&&(R=Zm(V,W=>W.type==="bot"?{...W,payload:{...W.payload,messages:Zm(oe,je=>({...je,selectedChoiceId:w}),W.payload.messages)}}:W,R)),R=[...R,j],o({responses:R},j),h({context:E,request:{structured:{nodeId:_==null?void 0:_.nodeId,intentId:_==null?void 0:_.intentId,choiceId:w}}})},C=w=>{m=m.filter(E=>E!==w)};return{sendText:y,sendStructured:(w,E)=>{p(w,E),h({context:E,request:{structured:Xm(w)}})},sendSlots:(w,E)=>{p({slots:w},E),h({context:E,request:{structured:{slots:Jm(w)}}})},sendIntent:v,sendWelcomeIntent:w=>{v(wC,w)},sendChoice:k,currentConversationId:()=>i.conversationId,setLanguageCode:w=>{if(w===i.languageCode){console.warn("Attempted to set language code to the one already active.");return}f()&&(T(),g()),o({languageCode:w})},currentLanguageCode:()=>i.languageCode,getLiveKitCredentials:async()=>{const w=await wu(`${s()}/requestToken`,{method:"POST",headers:{...t.headers??{},Accept:"application/json","Content-Type":"application/json","nlx-conversation-id":i.conversationId,"nlx-sdk-version":xu.version},body:JSON.stringify({languageCode:i.languageCode,conversationId:i.conversationId,userId:i.userId,requestToken:!0})});if(w.status>=400)throw new Error(`Responded with ${w.status}`);const E=await w.json();if((E==null?void 0:E.url)==null)throw new Error("Invalid response");return E},terminateLiveKitCall:async()=>{const w=await wu(`${s()}/terminateVoice`,{method:"POST",headers:{...t.headers??{},Accept:"application/json","Content-Type":"application/json","nlx-conversation-id":i.conversationId,"nlx-sdk-version":xu.version},body:JSON.stringify({languageCode:i.languageCode,conversationId:i.conversationId,userId:i.userId})});if(w.status>=400)throw new Error(`Responded with ${w.status}`)},subscribe:w=>(m=[...m,w],w(eg(i)),()=>{C(w)}),unsubscribe:C,unsubscribeAll:()=>{m=[]},reset:w=>{o({conversationId:Ym(),responses:(w==null?void 0:w.clearResponses)===!0?[]:i.responses}),f()&&(T(),g())},destroy:()=>{m=[],f()&&T()},setBotRequestOverride:w=>{c=w}}}function tg(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var i=t.length;for(e=0;e<i;e++)t[e]&&(n=tg(t[e]))&&(r&&(r+=" "),r+=n)}else for(n in t)t[n]&&(r&&(r+=" "),r+=n);return r}function J(){for(var t,e,n=0,r="",i=arguments.length;n<i;n++)(t=arguments[n])&&(e=tg(t))&&(r&&(r+=" "),r+=e);return r}function ui(t){return t!=null&&typeof t=="object"&&t["@@functional/placeholder"]===!0}function di(t){return function e(n){return arguments.length===0||ui(n)?e:t.apply(this,arguments)}}function ng(t){return function e(n,r){switch(arguments.length){case 0:return e;case 1:return ui(n)?e:di(function(i){return t(n,i)});default:return ui(n)&&ui(r)?e:ui(n)?di(function(i){return t(i,r)}):ui(r)?di(function(i){return t(n,i)}):t(n,r)}}}const _C=Array.isArray||function(e){return e!=null&&e.length>=0&&Object.prototype.toString.call(e)==="[object Array]"};function RC(t){return t!=null&&typeof t["@@transducer/step"]=="function"}function IC(t,e,n){return function(){if(arguments.length===0)return n();var r=arguments[arguments.length-1];if(!_C(r)){for(var i=0;i<t.length;){if(typeof r[t[i]]=="function")return r[t[i]].apply(r,Array.prototype.slice.call(arguments,0,-1));i+=1}if(RC(r)){var s=e.apply(null,Array.prototype.slice.call(arguments,0,-1));return s(r)}}return n.apply(this,arguments)}}const OC={init:function(){return this.xf["@@transducer/init"]()}};function rg(t){for(var e=[],n;!(n=t.next()).done;)e.push(n.value);return e}function ig(t,e,n){for(var r=0,i=n.length;r<i;){if(t(e,n[r]))return!0;r+=1}return!1}function LC(t){var e=String(t).match(/^function (\w*)/);return e==null?"":e[1]}function ha(t,e){return Object.prototype.hasOwnProperty.call(e,t)}function MC(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}const Pu=typeof Object.is=="function"?Object.is:MC;var sg=Object.prototype.toString,NC=function(){return sg.call(arguments)==="[object Arguments]"?function(e){return sg.call(e)==="[object Arguments]"}:function(e){return ha("callee",e)}}(),DC=!{toString:null}.propertyIsEnumerable("toString"),og=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],ag=function(){return arguments.propertyIsEnumerable("length")}(),AC=function(e,n){for(var r=0;r<e.length;){if(e[r]===n)return!0;r+=1}return!1},lg=di(typeof Object.keys=="function"&&!ag?function(e){return Object(e)!==e?[]:Object.keys(e)}:function(e){if(Object(e)!==e)return[];var n,r,i=[],s=ag&&NC(e);for(n in e)ha(n,e)&&(!s||n!=="length")&&(i[i.length]=n);if(DC)for(r=og.length-1;r>=0;)n=og[r],ha(n,e)&&!AC(i,n)&&(i[i.length]=n),r-=1;return i}),cg=di(function(e){return e===null?"Null":e===void 0?"Undefined":Object.prototype.toString.call(e).slice(8,-1)});function ug(t,e,n,r){var i=rg(t),s=rg(e);function o(a,l){return _u(a,l,n.slice(),r.slice())}return!ig(function(a,l){return!ig(o,l,a)},s,i)}function _u(t,e,n,r){if(Pu(t,e))return!0;var i=cg(t);if(i!==cg(e))return!1;if(typeof t["fantasy-land/equals"]=="function"||typeof e["fantasy-land/equals"]=="function")return typeof t["fantasy-land/equals"]=="function"&&t["fantasy-land/equals"](e)&&typeof e["fantasy-land/equals"]=="function"&&e["fantasy-land/equals"](t);if(typeof t.equals=="function"||typeof e.equals=="function")return typeof t.equals=="function"&&t.equals(e)&&typeof e.equals=="function"&&e.equals(t);switch(i){case"Arguments":case"Array":case"Object":if(typeof t.constructor=="function"&&LC(t.constructor)==="Promise")return t===e;break;case"Boolean":case"Number":case"String":if(!(typeof t==typeof e&&Pu(t.valueOf(),e.valueOf())))return!1;break;case"Date":if(!Pu(t.valueOf(),e.valueOf()))return!1;break;case"Error":return t.name===e.name&&t.message===e.message;case"RegExp":if(!(t.source===e.source&&t.global===e.global&&t.ignoreCase===e.ignoreCase&&t.multiline===e.multiline&&t.sticky===e.sticky&&t.unicode===e.unicode))return!1;break}for(var s=n.length-1;s>=0;){if(n[s]===t)return r[s]===e;s-=1}switch(i){case"Map":return t.size!==e.size?!1:ug(t.entries(),e.entries(),n.concat([t]),r.concat([e]));case"Set":return t.size!==e.size?!1:ug(t.values(),e.values(),n.concat([t]),r.concat([e]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var o=lg(t);if(o.length!==lg(e).length)return!1;var a=n.concat([t]),l=r.concat([e]);for(s=o.length-1;s>=0;){var c=o[s];if(!(ha(c,e)&&_u(e[c],t[c],a,l)))return!1;s-=1}return!0}var jC=ng(function(e,n){return _u(e,n,[],[])}),UC=function(){function t(e,n){this.xf=n,this.f=e,this.idx=-1,this.lastIdx=-1}return t.prototype["@@transducer/init"]=OC.init,t.prototype["@@transducer/result"]=function(e){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](e,this.lastIdx))},t.prototype["@@transducer/step"]=function(e,n){return this.idx+=1,this.f(n)&&(this.lastIdx=this.idx),e},t}();function FC(t){return function(e){return new UC(t,e)}}var dg=ng(IC([],FC,function(e,n){for(var r=n.length-1;r>=0;){if(e(n[r]))return r;r-=1}return-1}));const q=t=>({width:t.size!=null?`${t.size}px`:"100%",height:t.size!=null?`${t.size}px`:"100%",className:t.className}),BC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M11 21H10L11 14H7.5C6.92 14 6.93 13.68 7.12 13.34C7.31 13 7.17 13.26 7.19 13.22C8.48 10.94 10.42 7.54 13 3H14L13 10H16.5C16.99 10 17.06 10.33 16.97 10.51L16.9 10.66C12.96 17.55 11 21 11 21Z",fill:"currentColor"})}),fa=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{d:"M13.5562 5.34835C12.2796 6.62498 12.4866 8.90179 14.0186 10.4337C14.3377 10.7529 14.5571 11.134 14.6767 11.5383C14.8007 11.9572 14.8177 12.4011 14.7277 12.8268C14.6656 13.1203 14.5526 13.4051 14.3887 13.6672C14.3259 13.7677 14.2557 13.865 14.1778 13.9581C14.1279 14.018 14.0747 14.0761 14.0186 14.1322C13.3341 14.8166 12.3641 15.0421 11.4917 14.8092L11.4728 14.8042C9.38654 14.2543 7.32235 15.2129 6.85652 16.9516C6.5761 17.9979 5.50065 18.6188 4.45431 18.3385C3.40798 18.0581 2.787 16.9826 3.06729 15.9363C3.34209 14.9111 4.38012 14.2942 5.40615 14.5335L5.40666 14.5317C5.42748 14.5378 5.44842 14.5437 5.46962 14.5493C7.21342 15.0166 9.08173 13.699 9.64244 11.6062C9.64857 11.5835 9.65521 11.5608 9.66185 11.5383C9.7815 11.134 10.0009 10.7529 10.32 10.4337L10.332 10.4214C10.339 10.4142 10.346 10.407 10.3533 10.4C11.8549 8.86865 12.0496 6.61566 10.7824 5.34835C10.0163 4.58237 10.0163 3.34047 10.7824 2.57449C11.5483 1.8085 12.7903 1.8085 13.5562 2.57449C14.3066 3.32501 14.3218 4.53237 13.6016 5.30135L13.6029 5.30263C13.5872 5.3177 13.5716 5.33289 13.5562 5.34835Z",fill:"currentColor"}),b.jsx("path",{d:"M19.327 6.83185C20.0311 6.83185 20.6019 7.40264 20.6019 8.10675C20.6019 8.81087 20.0311 9.38166 19.327 9.38166C18.6229 9.38166 18.0521 8.81087 18.0521 8.10675C18.0521 7.40264 18.6229 6.83185 19.327 6.83185Z",fill:"currentColor"}),b.jsx("path",{d:"M21.3237 16.4754C21.3237 15.3741 20.4309 14.4813 19.3297 14.4813C18.2284 14.4813 17.3356 15.3741 17.3356 16.4754C17.3356 17.5767 18.2284 18.4695 19.3297 18.4695C20.4309 18.4695 21.3237 17.5767 21.3237 16.4754Z",fill:"currentColor"}),b.jsx("path",{d:"M12.1025 19.3194C12.8246 19.3194 13.4101 19.9195 13.4101 20.6597C13.4101 21.4 12.8246 22 12.1025 22C11.3804 22 10.7949 21.4 10.7949 20.6597C10.7949 19.9195 11.3804 19.3194 12.1025 19.3194Z",fill:"currentColor"}),b.jsx("path",{d:"M6.28367 8.13944C6.28367 7.41726 5.68363 6.83185 4.94339 6.83185C4.20314 6.83185 3.6031 7.41726 3.6031 8.13944C3.6031 8.86163 4.20314 9.44704 4.94339 9.44704C5.68363 9.44704 6.28367 8.86163 6.28367 8.13944Z",fill:"currentColor"})]}),zC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M6 13C5.45 13 5 13.45 5 14C5 14.55 5.45 15 6 15C6.55 15 7 14.55 7 14C7 13.45 6.55 13 6 13ZM6 17C5.45 17 5 17.45 5 18C5 18.55 5.45 19 6 19C6.55 19 7 18.55 7 18C7 17.45 6.55 17 6 17ZM6 9C5.45 9 5 9.45 5 10C5 10.55 5.45 11 6 11C6.55 11 7 10.55 7 10C7 9.45 6.55 9 6 9ZM3 9.5C2.72 9.5 2.5 9.72 2.5 10C2.5 10.28 2.72 10.5 3 10.5C3.28 10.5 3.5 10.28 3.5 10C3.5 9.72 3.28 9.5 3 9.5ZM6 5C5.45 5 5 5.45 5 6C5 6.55 5.45 7 6 7C6.55 7 7 6.55 7 6C7 5.45 6.55 5 6 5ZM21 10.5C21.28 10.5 21.5 10.28 21.5 10C21.5 9.72 21.28 9.5 21 9.5C20.72 9.5 20.5 9.72 20.5 10C20.5 10.28 20.72 10.5 21 10.5ZM14 7C14.55 7 15 6.55 15 6C15 5.45 14.55 5 14 5C13.45 5 13 5.45 13 6C13 6.55 13.45 7 14 7ZM14 3.5C14.28 3.5 14.5 3.28 14.5 3C14.5 2.72 14.28 2.5 14 2.5C13.72 2.5 13.5 2.72 13.5 3C13.5 3.28 13.72 3.5 14 3.5ZM3 13.5C2.72 13.5 2.5 13.72 2.5 14C2.5 14.28 2.72 14.5 3 14.5C3.28 14.5 3.5 14.28 3.5 14C3.5 13.72 3.28 13.5 3 13.5ZM10 20.5C9.72 20.5 9.5 20.72 9.5 21C9.5 21.28 9.72 21.5 10 21.5C10.28 21.5 10.5 21.28 10.5 21C10.5 20.72 10.28 20.5 10 20.5ZM10 3.5C10.28 3.5 10.5 3.28 10.5 3C10.5 2.72 10.28 2.5 10 2.5C9.72 2.5 9.5 2.72 9.5 3C9.5 3.28 9.72 3.5 10 3.5ZM10 7C10.55 7 11 6.55 11 6C11 5.45 10.55 5 10 5C9.45 5 9 5.45 9 6C9 6.55 9.45 7 10 7ZM10 12.5C9.17 12.5 8.5 13.17 8.5 14C8.5 14.83 9.17 15.5 10 15.5C10.83 15.5 11.5 14.83 11.5 14C11.5 13.17 10.83 12.5 10 12.5ZM18 13C17.45 13 17 13.45 17 14C17 14.55 17.45 15 18 15C18.55 15 19 14.55 19 14C19 13.45 18.55 13 18 13ZM18 17C17.45 17 17 17.45 17 18C17 18.55 17.45 19 18 19C18.55 19 19 18.55 19 18C19 17.45 18.55 17 18 17ZM18 9C17.45 9 17 9.45 17 10C17 10.55 17.45 11 18 11C18.55 11 19 10.55 19 10C19 9.45 18.55 9 18 9ZM18 5C17.45 5 17 5.45 17 6C17 6.55 17.45 7 18 7C18.55 7 19 6.55 19 6C19 5.45 18.55 5 18 5ZM21 13.5C20.72 13.5 20.5 13.72 20.5 14C20.5 14.28 20.72 14.5 21 14.5C21.28 14.5 21.5 14.28 21.5 14C21.5 13.72 21.28 13.5 21 13.5ZM14 17C13.45 17 13 17.45 13 18C13 18.55 13.45 19 14 19C14.55 19 15 18.55 15 18C15 17.45 14.55 17 14 17ZM14 20.5C13.72 20.5 13.5 20.72 13.5 21C13.5 21.28 13.72 21.5 14 21.5C14.28 21.5 14.5 21.28 14.5 21C14.5 20.72 14.28 20.5 14 20.5ZM10 8.5C9.17 8.5 8.5 9.17 8.5 10C8.5 10.83 9.17 11.5 10 11.5C10.83 11.5 11.5 10.83 11.5 10C11.5 9.17 10.83 8.5 10 8.5ZM10 17C9.45 17 9 17.45 9 18C9 18.55 9.45 19 10 19C10.55 19 11 18.55 11 18C11 17.45 10.55 17 10 17ZM14 12.5C13.17 12.5 12.5 13.17 12.5 14C12.5 14.83 13.17 15.5 14 15.5C14.83 15.5 15.5 14.83 15.5 14C15.5 13.17 14.83 12.5 14 12.5ZM14 8.5C13.17 8.5 12.5 9.17 12.5 10C12.5 10.83 13.17 11.5 14 11.5C14.83 11.5 15.5 10.83 15.5 10C15.5 9.17 14.83 8.5 14 8.5Z",fill:"currentColor"})}),VC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19 13H13V19H11V13H5V11H11V5H13V11H19V13Z",fill:"currentColor"})}),HC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 15.41L6 9.40997L7.41 7.99997L12 12.58L16.59 7.99997L18 9.40997L12 15.41Z",fill:"currentColor"})}),$C=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M7.59001 12L13.59 18L15 16.59L10.42 12L15 7.41002L13.59 6.00002L7.59001 12Z",fill:"currentColor"})}),qC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M15 12L9.00005 18L7.59005 16.59L12.17 12L7.59005 7.41002L9.00005 6.00002L15 12Z",fill:"currentColor"})}),WC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 8L6 14L7.41 15.41L12 10.83L16.59 15.41L18 14L12 8Z",fill:"currentColor"})}),pa=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z",fill:"currentColor"})}),Ru=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M18.5 16H7C4.79 16 3 14.21 3 12C3 9.79 4.79 8 7 8H19.5C20.88 8 22 9.12 22 10.5C22 11.88 20.88 13 19.5 13H9C8.45 13 8 12.55 8 12C8 11.45 8.45 11 9 11H18.5V9.5H9C7.62 9.5 6.5 10.62 6.5 12C6.5 13.38 7.62 14.5 9 14.5H19.5C21.71 14.5 23.5 12.71 23.5 10.5C23.5 8.29 21.71 6.5 19.5 6.5H7C3.96 6.5 1.5 8.96 1.5 12C1.5 15.04 3.96 17.5 7 17.5H18.5V16Z",fill:"currentColor"})}),GC=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{d:"M12 15.2C13.7673 15.2 15.2 13.7673 15.2 12C15.2 10.2327 13.7673 8.8 12 8.8C10.2327 8.8 8.8 10.2327 8.8 12C8.8 13.7673 10.2327 15.2 12 15.2Z",fill:"currentColor"}),b.jsx("path",{d:"M9 2L7.17 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6C22 4.9 21.1 4 20 4H16.83L15 2H9ZM12 17C9.24 17 7 14.76 7 12C7 9.24 9.24 7 12 7C14.76 7 17 9.24 17 12C17 14.76 14.76 17 12 17Z",fill:"currentColor"})]}),hg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M8.99991 16.17L4.82991 12L3.40991 13.41L8.99991 19L20.9999 7L19.5899 5.59L8.99991 16.17Z",fill:"currentColor"})}),fg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z",fill:"currentColor"})}),KC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z",fill:"currentColor"})}),pg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19 4H18V2H16V4H8V2H6V4H5C3.89 4 3.01 4.9 3.01 6L3 20C3 21.1 3.89 22 5 22H19C20.1 22 21 21.1 21 20V6C21 4.9 20.1 4 19 4ZM19 20H5V9H19V20Z",fill:"currentColor"})}),mg=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 21C6.9 21 6 20.1 6 19V7H18V19C18 20.1 17.1 21 16 21H8ZM9.33337 9H8V19H9.33337V9ZM11.3334 9V19H12.6666V9H11.3334ZM16 19H14.6666V9H16V19Z",fill:"currentColor"}),b.jsx("path",{d:"M15.5 4H19V6H5V4H8.5L9.5 3H14.5L15.5 4Z",fill:"currentColor"})]}),gg=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{d:"M21 12.22C21 6.73 16.74 3 12 3C7.31 3 3 6.65 3 12.28C2.4 12.62 2 13.26 2 14V16C2 17.1 2.9 18 4 18H5V11.9C5 8.03 8.13 4.9 12 4.9C15.87 4.9 19 8.03 19 11.9V19H11V21H19C20.1 21 21 20.1 21 19V17.78C21.59 17.47 22 16.86 22 16.14V13.84C22 13.14 21.59 12.53 21 12.22Z",fill:"currentColor"}),b.jsx("path",{d:"M9 14C9.55228 14 10 13.5523 10 13C10 12.4477 9.55228 12 9 12C8.44772 12 8 12.4477 8 13C8 13.5523 8.44772 14 9 14Z",fill:"currentColor"}),b.jsx("path",{d:"M15 14C15.5523 14 16 13.5523 16 13C16 12.4477 15.5523 12 15 12C14.4477 12 14 12.4477 14 13C14 13.5523 14.4477 14 15 14Z",fill:"currentColor"}),b.jsx("path",{d:"M18 11.03C17.52 8.18 15.04 6 12.05 6C9.02 6 5.76 8.51 6.02 12.45C8.49 11.44 10.35 9.24 10.88 6.56C12.19 9.19 14.88 11 18 11.03Z",fill:"currentColor"})]}),Iu=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM13 17H11V15H13V17ZM13 13H11V7H13V13Z",fill:"currentColor"})}),ZC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M7 14H5V19H10V17H7V14ZM5 10H7V7H10V5H5V10ZM17 17H14V19H19V14H17V17ZM14 5V7H17V10H19V5H14Z",fill:"currentColor"})}),Ou=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 15C13.66 15 14.99 13.66 14.99 12L15 6C15 4.34 13.66 3 12 3C10.34 3 9 4.34 9 6V12C9 13.66 10.34 15 12 15ZM17.3 12C17.3 15 14.76 17.1 12 17.1C9.24 17.1 6.7 15 6.7 12H5C5 15.42 7.72 18.23 11 18.72V22H13V18.72C16.28 18.24 19 15.42 19 12H17.3Z",fill:"currentColor"})}),QC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19 11H17.3C17.3 11.74 17.14 12.43 16.87 13.05L18.1 14.28C18.66 13.3 19 12.19 19 11ZM14.98 11.17C14.98 11.11 15 11.06 15 11V5C15 3.34 13.66 2 12 2C10.34 2 9 3.34 9 5V5.18L14.98 11.17ZM4.27 3L3 4.27L9.01 10.28V11C9.01 12.66 10.34 14 12 14C12.22 14 12.44 13.97 12.65 13.92L14.31 15.58C13.6 15.91 12.81 16.1 12 16.1C9.24 16.1 6.7 14 6.7 11H5C5 14.41 7.72 17.23 11 17.72V21H13V17.72C13.91 17.59 14.77 17.27 15.54 16.82L19.73 21L21 19.73L4.27 3Z",fill:"currentColor"})}),YC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 2C8.13 2 5 5.13 5 9C5 14.25 12 22 12 22C12 22 19 14.25 19 9C19 5.13 15.87 2 12 2ZM12 11.5C10.62 11.5 9.5 10.38 9.5 9C9.5 7.62 10.62 6.5 12 6.5C13.38 6.5 14.5 7.62 14.5 9C14.5 10.38 13.38 11.5 12 11.5Z",fill:"currentColor"})}),JC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M3 9.99999V14C3 14.55 3.45 15 4 15H7L10.29 18.29C10.92 18.92 12 18.47 12 17.58V6.40999C12 5.51999 10.92 5.06999 10.29 5.69999L7 8.99999H4C3.45 8.99999 3 9.44999 3 9.99999ZM16.5 12C16.5 10.23 15.48 8.70999 14 7.96999V16.02C15.48 15.29 16.5 13.77 16.5 12ZM14 4.44999V4.64999C14 5.02999 14.25 5.35999 14.6 5.49999C17.18 6.52999 19 9.05999 19 12C19 14.94 17.18 17.47 14.6 18.5C14.24 18.64 14 18.97 14 19.35V19.55C14 20.18 14.63 20.62 15.21 20.4C18.6 19.11 21 15.84 21 12C21 8.15999 18.6 4.88999 15.21 3.59999C14.63 3.36999 14 3.81999 14 4.44999Z",fill:"currentColor"})}),XC=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M16.5 12C16.5 10.23 15.48 8.71 14 7.97V10.18L16.45 12.63C16.48 12.43 16.5 12.22 16.5 12ZM19 12C19 12.94 18.8 13.82 18.46 14.64L19.97 16.15C20.63 14.91 21 13.5 21 12C21 7.72 18.01 4.14 14 3.23V5.29C16.89 6.15 19 8.83 19 12ZM4.27 3L3 4.27L7.73 9H3V15H7L12 20V13.27L16.25 17.52C15.58 18.04 14.83 18.45 14 18.7V20.76C15.38 20.45 16.63 19.81 17.69 18.95L19.73 21L21 19.73L12 10.73L4.27 3ZM12 4L9.91 6.09L12 8.18V4Z",fill:"currentColor"})}),eS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12.87 15.07L10.33 12.56L10.36 12.53C12.1 10.59 13.34 8.36 14.07 6H17V4H10V2H8V4H1V5.99H12.17C11.5 7.92 10.44 9.75 9 11.35C8.07 10.32 7.3 9.19 6.69 8H4.69C5.42 9.63 6.42 11.17 7.67 12.56L2.58 17.58L4 19L9 14L12.11 17.11L12.87 15.07ZM18.5 10H16.5L12 22H14L15.12 19H19.87L21 22H23L18.5 10ZM15.88 17L17.5 12.67L19.12 17H15.88Z",fill:"currentColor"})}),tS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19 19H5V5H12V3H5C3.89 3 3 3.9 3 5V19C3 20.1 3.89 21 5 21H19C20.1 21 21 20.1 21 19V12H19V19ZM14 3V5H17.59L7.76 14.83L9.17 16.24L19 6.41V10H21V3H14Z",fill:"currentColor"})}),nS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M8 5V19L19 12L8 5Z",fill:"currentColor"})}),rS=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{d:"M13 14.5C13 15.3284 12.3284 16 11.5 16C10.6716 16 10 15.3284 10 14.5C10 13.6716 10.6716 13 11.5 13C12.3284 13 13 13.6716 13 14.5Z",fill:"currentColor"}),b.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6 2H14L20 8V20C20 21.1 19.1 22 18 22H5.99C4.89 22 4 21.1 4 20V4C4 2.9 4.9 2 6 2ZM13.16 17.57L15.04 19.45L16.45 18.04L14.57 16.16C15.29 14.83 15.1 13.15 13.98 12.03C12.61 10.66 10.4 10.66 9.03 12.03C7.66 13.4 7.66 15.61 9.03 16.98C10.15 18.1 11.83 18.28 13.16 17.57ZM13 3.5V9H18.5L13 3.5Z",fill:"currentColor"})]}),iS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M3 15H21V13H3V15ZM3 19H21V17H3V19ZM3 11H21V9H3V11ZM3 5V7H21V5H3Z",fill:"currentColor"})}),vg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M10 3C14.97 3 19 7.03 19 12H22L18.11 15.89L18.04 16.03L14 12H17C17 8.13 13.87 5 10 5C6.13 5 3 8.13 3 12C3 15.87 6.13 19 10 19V21C5.03 21 1 16.97 1 12C1 7.03 5.03 3 10 3Z",fill:"currentColor"})}),yg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M19.1064 12.9302C19.1459 12.6333 19.1657 12.3266 19.1657 12C19.1657 11.6833 19.1459 11.3667 19.0965 11.0698L21.1053 9.50625C21.2834 9.36771 21.3329 9.10052 21.2241 8.9026L19.3241 5.61719C19.2053 5.39948 18.9579 5.33021 18.7402 5.39948L16.3751 6.34948C15.8803 5.97344 15.3558 5.65677 14.772 5.41927L14.4157 2.90573C14.3761 2.66823 14.1782 2.5 13.9407 2.5H10.1407C9.90323 2.5 9.71521 2.66823 9.67563 2.90573L9.31938 5.41927C8.73552 5.65677 8.20115 5.98333 7.71625 6.34948L5.35115 5.39948C5.13344 5.32031 4.88604 5.39948 4.7673 5.61719L2.87719 8.9026C2.75844 9.11042 2.79802 9.36771 2.99594 9.50625L5.00479 11.0698C4.95532 11.3667 4.91573 11.6932 4.91573 12C4.91573 12.3068 4.93552 12.6333 4.985 12.9302L2.97615 14.4938C2.79802 14.6323 2.74855 14.8995 2.8574 15.0974L4.7574 18.3828C4.87615 18.6005 5.12354 18.6698 5.34125 18.6005L7.70636 17.6505C8.20115 18.0266 8.72563 18.3432 9.30948 18.5807L9.66573 21.0943C9.71521 21.3318 9.90323 21.5 10.1407 21.5H13.9407C14.1782 21.5 14.3761 21.3318 14.4058 21.0943L14.7621 18.5807C15.3459 18.3432 15.8803 18.0266 16.3652 17.6505L18.7303 18.6005C18.948 18.6797 19.1954 18.6005 19.3142 18.3828L21.2142 15.0974C21.3329 14.8797 21.2834 14.6323 21.0954 14.4938L19.1064 12.9302ZM12.0407 15.5625C10.0814 15.5625 8.47823 13.9594 8.47823 12C8.47823 10.0406 10.0814 8.4375 12.0407 8.4375C14.0001 8.4375 15.6032 10.0406 15.6032 12C15.6032 13.9594 14.0001 15.5625 12.0407 15.5625Z",fill:"currentColor"})}),sS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M15.5 14H14.71L14.43 13.73C15.41 12.59 16 11.11 16 9.5C16 5.91 13.09 3 9.5 3C5.91 3 3 5.91 3 9.5C3 13.09 5.91 16 9.5 16C11.11 16 12.59 15.41 13.73 14.43L14 14.71V15.5L19 20.49L20.49 19L15.5 14ZM9.5 14C7.01 14 5 11.99 5 9.5C5 7.01 7.01 5 9.5 5C11.99 5 14 7.01 14 9.5C14 11.99 11.99 14 9.5 14Z",fill:"currentColor"})}),oS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M18 16.08C17.24 16.08 16.56 16.38 16.04 16.85L8.91 12.7C8.96 12.47 9 12.24 9 12C9 11.76 8.96 11.53 8.91 11.3L15.96 7.19C16.5 7.69 17.21 8 18 8C19.66 8 21 6.66 21 5C21 3.34 19.66 2 18 2C16.34 2 15 3.34 15 5C15 5.24 15.04 5.47 15.09 5.7L8.04 9.81C7.5 9.31 6.79 9 6 9C4.34 9 3 10.34 3 12C3 13.66 4.34 15 6 15C6.79 15 7.5 14.69 8.04 14.19L15.16 18.35C15.11 18.56 15.08 18.78 15.08 19C15.08 20.61 16.39 21.92 18 21.92C19.61 21.92 20.92 20.61 20.92 19C20.92 17.39 19.61 16.08 18 16.08Z",fill:"currentColor"})}),kg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M1 21H23L12 2L1 21ZM13 18H11V16H13V18ZM13 14H11V10H13V14Z",fill:"currentColor"})}),aS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M15 3H6C5.17 3 4.46 3.5 4.16 4.22L1.14 11.27C1.05 11.5 1 11.74 1 12V14C1 15.1 1.9 16 3 16H9.31L8.36 20.57L8.33 20.89C8.33 21.3 8.5 21.68 8.77 21.95L9.83 23L16.42 16.41C16.78 16.05 17 15.55 17 15V5C17 3.9 16.1 3 15 3ZM19 3V15H23V3H19Z",fill:"currentColor"})}),lS=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M1 21H5V9H1V21ZM23 10C23 8.9 22.1 8 21 8H14.69L15.64 3.43L15.67 3.11C15.67 2.7 15.5 2.32 15.23 2.05L14.17 1L7.59 7.59C7.22 7.95 7 8.45 7 9V19C7 20.1 7.9 21 9 21H18C18.83 21 19.54 20.5 19.84 19.78L22.86 12.73C22.95 12.5 23 12.26 23 12V10Z",fill:"currentColor"})}),cS=t=>b.jsxs("svg",{viewBox:"0 0 24 24",...q(t),children:[b.jsx("path",{d:"M11 7H12.5V12.25L17 14.92L16.25 16.15L11 13V7Z",fill:"currentColor"}),b.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2 12C2 6.47997 6.47 1.99997 11.99 1.99997C17.52 1.99997 22 6.47997 22 12C22 17.52 17.52 22 11.99 22C6.47 22 2 17.52 2 12ZM4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.57997 16.42 3.99997 12 3.99997C7.58 3.99997 4 7.57997 4 12Z",fill:"currentColor"})]}),bg=t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M13 3C8.03 3 4 7.03 4 12H1L4.89 15.89L4.96 16.03L9 12H6C6 8.13 9.13 5 13 5C16.87 5 20 8.13 20 12C20 15.87 16.87 19 13 19V21C17.97 21 22 16.97 22 12C22 7.03 17.97 3 13 3Z",fill:"currentColor"})}),Cg=Object.freeze(Object.defineProperty({__proto__:null,Action:BC,Add:VC,ArrowDown:HC,ArrowForward:pa,ArrowLeft:$C,ArrowRight:qC,ArrowUp:WC,AssistantOld:zC,Attachment:Ru,Camera:GC,Check:hg,Close:fg,Copy:KC,Date:pg,Delete:mg,Error:Iu,Escalate:gg,FullScreen:ZC,Help:t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M11 18H13V16H11V18ZM12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20ZM12 6C9.79 6 8 7.79 8 10H10C10 8.9 10.9 8 12 8C13.1 8 14 8.9 14 10C14 12 11 11.75 11 15H13C13 12.75 16 12.5 16 10C16 7.79 14.21 6 12 6Z",fill:"currentColor"})}),Location:YC,Mic:Ou,MicOff:QC,OpenInNew:tS,Play:nS,Preview:rS,Refresh:t=>b.jsx("svg",{viewBox:"0 0 24 24",...q(t),children:b.jsx("path",{d:"M12 4V1L8 5L12 9V6C15.31 6 18 8.69 18 12C18 13.01 17.75 13.97 17.3 14.8L18.76 16.26C19.54 15.03 20 13.57 20 12C20 7.58 16.42 4 12 4ZM12 18C8.69 18 6 15.31 6 12C6 10.99 6.25 10.03 6.7 9.2L5.24 7.74C4.46 8.97 4 10.43 4 12C4 16.42 7.58 20 12 20V23L16 19L12 15V18Z",fill:"currentColor"})}),Reorder:iS,Restart:vg,Search:sS,Settings:yg,Share:oS,ThumbDown:aS,ThumbUp:lS,Time:cS,Touchpoint:fa,Translate:eS,Undo:bg,Volume:JC,VolumeOff:XC,Warning:kg},Symbol.toStringTag,{value:"Module"})),uS=t=>b.jsxs("button",{className:J("p-3 w-fit bg-background text-primary-80 rounded-outer","after:content-[''] after:rounded-outer after:absolute after:inset-0 after:pointer-events-none","hover:after:bg-primary-10",t.className),disabled:t.onClick==null,onClick:t.onClick,children:[b.jsx("span",{className:"block flex-none w-8 h-8",children:t.iconUrl==null?b.jsx(fa,{}):b.jsx("img",{src:t.iconUrl,className:"w-8 h-8"})}),t.showLabel??!1?b.jsx("span",{children:t.label}):null]}),dS="bg-primary-80 text-secondary-80 enabled:hover:before:bg-primary-80 focus:before:bg-primary-80 enabled:active:before:bg-secondary-10 disabled:bg-primary-10 disabled:text-secondary-40",hS="bg-primary-5 text-primary-80 enabled:hover:before:bg-primary-10 focus:before:bg-primary-10 enabled:active:before:bg-secondary-10 disabled:bg-primary-5 disabled:text-primary-20",fS="bg-accent text-secondary-80 enabled:hover:before:bg-primary-40 focus:before:bg-primary-40 enabled:active:before:bg-secondary-10 disabled:bg-accent-20",pS="bg-secondary-60 backdrop-blur text-primary-80 enabled:hover:before:bg-primary-10 focus:before:bg-primary-10 enabled:active:before:bg-secondary-10 disabled:bg-secondary-20 disabled:text-primary-20",mS="bg-background backdrop-blur text-primary-80 enabled:hover:before:bg-primary-10 focus:before:bg-primary-10 enabled:active:before:bg-secondary-10 disabled:bg-secondary-20 disabled:text-primary-20",gS="bg-error-primary text-secondary-80",jt=({onClick:t,type:e,label:n,className:r,Icon:i})=>{const s=t==null;return b.jsx("button",{onClick:s?void 0:t,disabled:s,"aria-label":n,className:J("p-3 w-10 h-10 transition-colors rounded-inner relative z-10 overflow-hidden before:content-[''] before:absolute before:transition-colors before:-z-10 before:inset-0 before:bg-transparent focus:outline-0",e==="main"?dS:null,e==="ghost"?hS:null,e==="activated"?fS:null,e==="coverup"?pS:null,e==="overlay"?mS:null,e==="error"?gS:null,r),children:b.jsx(i,{})})},vS=typeof globalThis<"u"&&typeof navigator<"u"&&typeof document<"u",hi=new Map,Sg=t=>{const e=matchMedia(t),n=new Set,r=()=>{for(const i of n)i(e.matches)};return e.addEventListener("change",r,{passive:!0}),{mql:e,dispatchers:n,listener:r}},yS=(t,e)=>{let n=hi.get(t);n||(n=Sg(t),hi.set(t,n)),n.dispatchers.add(e),e(n.mql.matches)},kS=(t,e)=>{const n=hi.get(t);if(n){const{mql:r,dispatchers:i,listener:s}=n;i.delete(e),i.size===0&&(hi.delete(t),r.removeEventListener?r.removeEventListener("change",s):r.removeListener(s))}};function bS(t,e={}){let{initializeWithValue:n=!0}=e;vS||(n=!1);const[r,i]=B.useState(()=>{if(n){let s=hi.get(t);return s||(s=Sg(t),hi.set(t,s)),s.mql.matches}});return B.useEffect(()=>(yS(t,i),()=>{kS(t,i)}),[t]),r}const wg=t=>bS("(min-width: 768px)"),CS=({windowSize:t,renderCollapse:e,collapse:n,toggleSettings:r,isSettingsOpen:i,brandIcon:s,reset:o,enabled:a})=>{const l=t==="half",c=wg(),u=l&&c?"overlay":"ghost";return b.jsxs("div",{className:J("flex","p-2 md:p-3 items-center justify-between gap-2",{"md:absolute md:w-fit md:flex-col md:left-0 md:-translate-x-full":t==="half","md:absolute md:left-0 md:right-0 md:top-0":t==="full"}),children:[s!=null?b.jsx("img",{className:"w-10 h-10 block",src:s,role:"presentation"}):null,b.jsx(jt,{label:"Reset",type:u,className:s==null?"":"ml-auto",onClick:a?()=>{o()}:void 0,Icon:bg}),r!=null?b.jsx(jt,{className:s!=null?"":"ml-auto",Icon:yg,label:"Settings",type:i?"activated":u,onClick:a?r:void 0}):null,e?b.jsx(jt,{label:"Collapse",type:u,className:J(r==null?"ml-auto":"",l?"md:-order-1":""),onClick:a?()=>{n(new Event("collapse"))}:void 0,Icon:fg}):null]})},ma=({k:t,className:e})=>{const r=i=>`${i}s`;return b.jsx("div",{className:J("bg-accent-20 animate-ping absolute inset-0",e),style:{animationDelay:r(-1.5*t),animationDuration:r(1.5)}})},Lu=({className:t})=>b.jsxs(b.Fragment,{children:[b.jsx(ma,{k:.12,className:t}),b.jsx(ma,{k:.24,className:t}),b.jsx(ma,{k:.36,className:t}),b.jsx(ma,{k:.48,className:t})]});function SS(t,e){return e.forEach(function(n){n&&typeof n!="string"&&!Array.isArray(n)&&Object.keys(n).forEach(function(r){if(r!=="default"&&!(r in t)){var i=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return n[r]}})}})}),Object.freeze(t)}var wS=Object.defineProperty,TS=(t,e,n)=>e in t?wS(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Tg=(t,e,n)=>TS(t,typeof e!="symbol"?e+"":e,n);class yt{constructor(){Tg(this,"_locking"),Tg(this,"_locks"),this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){this._locks+=1;let e;const n=new Promise(i=>e=()=>{this._locks-=1,i()}),r=this._locking.then(()=>e);return this._locking=this._locking.then(()=>n),r}}function Se(t,e){if(!t)throw new Error(e)}const xS=34028234663852886e22,ES=-34028234663852886e22,PS=4294967295,_S=2147483647,RS=-2147483648;function ga(t){if(typeof t!="number")throw new Error("invalid int 32: "+typeof t);if(!Number.isInteger(t)||t>_S||t<RS)throw new Error("invalid int 32: "+t)}function Mu(t){if(typeof t!="number")throw new Error("invalid uint 32: "+typeof t);if(!Number.isInteger(t)||t>PS||t<0)throw new Error("invalid uint 32: "+t)}function xg(t){if(typeof t!="number")throw new Error("invalid float 32: "+typeof t);if(Number.isFinite(t)&&(t>xS||t<ES))throw new Error("invalid float 32: "+t)}const Eg=Symbol("@bufbuild/protobuf/enum-type");function IS(t){const e=t[Eg];return Se(e,"missing enum type on enum object"),e}function Pg(t,e,n,r){t[Eg]=_g(e,n.map(i=>({no:i.no,name:i.name,localName:t[i.no]})))}function _g(t,e,n){const r=Object.create(null),i=Object.create(null),s=[];for(const o of e){const a=Rg(o);s.push(a),r[o.name]=a,i[o.no]=a}return{typeName:t,values:s,findName(o){return r[o]},findNumber(o){return i[o]}}}function OS(t,e,n){const r={};for(const i of e){const s=Rg(i);r[s.localName]=s.no,r[s.no]=s.localName}return Pg(r,t,e),r}function Rg(t){return"localName"in t?t:Object.assign(Object.assign({},t),{localName:t.name})}class Nu{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,n){const r=this.getType(),i=r.runtime.bin,s=i.makeReadOptions(n);return i.readMessage(this,s.readerFactory(e),e.byteLength,s),this}fromJson(e,n){const r=this.getType(),i=r.runtime.json,s=i.makeReadOptions(n);return i.readMessage(r,e,s,this),this}fromJsonString(e,n){let r;try{r=JSON.parse(e)}catch(i){throw new Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(i instanceof Error?i.message:String(i)))}return this.fromJson(r,n)}toBinary(e){const n=this.getType(),r=n.runtime.bin,i=r.makeWriteOptions(e),s=i.writerFactory();return r.writeMessage(this,s,i),s.finish()}toJson(e){const n=this.getType(),r=n.runtime.json,i=r.makeWriteOptions(e);return r.writeMessage(this,i)}toJsonString(e){var n;const r=this.toJson(e);return JSON.stringify(r,null,(n=e==null?void 0:e.prettySpaces)!==null&&n!==void 0?n:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function LS(t,e,n,r){var i;const s=(i=r==null?void 0:r.localName)!==null&&i!==void 0?i:e.substring(e.lastIndexOf(".")+1),o={[s]:function(a){t.util.initFields(this),t.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(o.prototype,new Nu),Object.assign(o,{runtime:t,typeName:e,fields:t.util.newFieldList(n),fromBinary(a,l){return new o().fromBinary(a,l)},fromJson(a,l){return new o().fromJson(a,l)},fromJsonString(a,l){return new o().fromJsonString(a,l)},equals(a,l){return t.util.equals(o,a,l)}}),o}function MS(){let t=0,e=0;for(let r=0;r<28;r+=7){let i=this.buf[this.pos++];if(t|=(i&127)<<r,!(i&128))return this.assertBounds(),[t,e]}let n=this.buf[this.pos++];if(t|=(n&15)<<28,e=(n&112)>>4,!(n&128))return this.assertBounds(),[t,e];for(let r=3;r<=31;r+=7){let i=this.buf[this.pos++];if(e|=(i&127)<<r,!(i&128))return this.assertBounds(),[t,e]}throw new Error("invalid varint")}function Du(t,e,n){for(let s=0;s<28;s=s+7){const o=t>>>s,a=!(!(o>>>7)&&e==0),l=(a?o|128:o)&255;if(n.push(l),!a)return}const r=t>>>28&15|(e&7)<<4,i=!!(e>>3);if(n.push((i?r|128:r)&255),!!i){for(let s=3;s<31;s=s+7){const o=e>>>s,a=!!(o>>>7),l=(a?o|128:o)&255;if(n.push(l),!a)return}n.push(e>>>31&1)}}const va=4294967296;function Ig(t){const e=t[0]==="-";e&&(t=t.slice(1));const n=1e6;let r=0,i=0;function s(o,a){const l=Number(t.slice(o,a));i*=n,r=r*n+l,r>=va&&(i=i+(r/va|0),r=r%va)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Lg(r,i):Au(r,i)}function NS(t,e){let n=Au(t,e);const r=n.hi&2147483648;r&&(n=Lg(n.lo,n.hi));const i=Og(n.lo,n.hi);return r?"-"+i:i}function Og(t,e){if({lo:t,hi:e}=DS(t,e),e<=2097151)return String(va*e+t);const n=t&16777215,r=(t>>>24|e<<8)&16777215,i=e>>16&65535;let s=n+r*6777216+i*6710656,o=r+i*8147497,a=i*2;const l=1e7;return s>=l&&(o+=Math.floor(s/l),s%=l),o>=l&&(a+=Math.floor(o/l),o%=l),a.toString()+Mg(o)+Mg(s)}function DS(t,e){return{lo:t>>>0,hi:e>>>0}}function Au(t,e){return{lo:t|0,hi:e|0}}function Lg(t,e){return e=~e,t?t=~t+1:e+=1,Au(t,e)}const Mg=t=>{const e=String(t);return"0000000".slice(e.length)+e};function Ng(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let n=0;n<9;n++)e.push(t&127|128),t=t>>7;e.push(1)}}function AS(){let t=this.buf[this.pos++],e=t&127;if(!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,!(t&128))return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,!(t&128))return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let n=5;t&128&&n<10;n++)t=this.buf[this.pos++];if(t&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function jS(){const t=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const i=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(l){const c=typeof l=="bigint"?l:BigInt(l);if(c>s||c<i)throw new Error("int64 invalid: ".concat(l));return c},uParse(l){const c=typeof l=="bigint"?l:BigInt(l);if(c>a||c<o)throw new Error("uint64 invalid: ".concat(l));return c},enc(l){return t.setBigInt64(0,this.parse(l),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},uEnc(l){return t.setBigInt64(0,this.uParse(l),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},dec(l,c){return t.setInt32(0,l,!0),t.setInt32(4,c,!0),t.getBigInt64(0,!0)},uDec(l,c){return t.setInt32(0,l,!0),t.setInt32(4,c,!0),t.getBigUint64(0,!0)}}}const n=i=>Se(/^-?[0-9]+$/.test(i),"int64 invalid: ".concat(i)),r=i=>Se(/^[0-9]+$/.test(i),"uint64 invalid: ".concat(i));return{zero:"0",supported:!1,parse(i){return typeof i!="string"&&(i=i.toString()),n(i),i},uParse(i){return typeof i!="string"&&(i=i.toString()),r(i),i},enc(i){return typeof i!="string"&&(i=i.toString()),n(i),Ig(i)},uEnc(i){return typeof i!="string"&&(i=i.toString()),r(i),Ig(i)},dec(i,s){return NS(i,s)},uDec(i,s){return Og(i,s)}}}const pe=jS();var I;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(I||(I={}));var $n;(function(t){t[t.BIGINT=0]="BIGINT",t[t.STRING=1]="STRING"})($n||($n={}));function qn(t,e,n){if(e===n)return!0;if(t==I.BYTES){if(!(e instanceof Uint8Array)||!(n instanceof Uint8Array)||e.length!==n.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==n[r])return!1;return!0}switch(t){case I.UINT64:case I.FIXED64:case I.INT64:case I.SFIXED64:case I.SINT64:return e==n}return!1}function fi(t,e){switch(t){case I.BOOL:return!1;case I.UINT64:case I.FIXED64:case I.INT64:case I.SFIXED64:case I.SINT64:return e==0?pe.zero:"0";case I.DOUBLE:case I.FLOAT:return 0;case I.BYTES:return new Uint8Array(0);case I.STRING:return"";default:return 0}}function Dg(t,e){switch(t){case I.BOOL:return e===!1;case I.STRING:return e==="";case I.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var Ee;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(Ee||(Ee={}));class US{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let i=0;i<this.chunks.length;i++)e+=this.chunks[i].length;let n=new Uint8Array(e),r=0;for(let i=0;i<this.chunks.length;i++)n.set(this.chunks[i],r),r+=this.chunks[i].length;return this.chunks=[],n}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),n=this.stack.pop();if(!n)throw new Error("invalid state, fork stack empty");return this.chunks=n.chunks,this.buf=n.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,n){return this.uint32((e<<3|n)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Mu(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return ga(e),Ng(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let n=this.textEncoder.encode(e);return this.uint32(n.byteLength),this.raw(n)}float(e){xg(e);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,e,!0),this.raw(n)}double(e){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,e,!0),this.raw(n)}fixed32(e){Mu(e);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,e,!0),this.raw(n)}sfixed32(e){ga(e);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,e,!0),this.raw(n)}sint32(e){return ga(e),e=(e<<1^e>>31)>>>0,Ng(e,this.buf),this}sfixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),i=pe.enc(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}fixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),i=pe.uEnc(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}int64(e){let n=pe.enc(e);return Du(n.lo,n.hi,this.buf),this}sint64(e){let n=pe.enc(e),r=n.hi>>31,i=n.lo<<1^r,s=(n.hi<<1|n.lo>>>31)^r;return Du(i,s,this.buf),this}uint64(e){let n=pe.uEnc(e);return Du(n.lo,n.hi,this.buf),this}}class FS{constructor(e,n){this.varint64=MS,this.uint32=AS,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=n??new TextDecoder}tag(){let e=this.uint32(),n=e>>>3,r=e&7;if(n<=0||r<0||r>5)throw new Error("illegal tag: field no "+n+" wire type "+r);return[n,r]}skip(e,n){let r=this.pos;switch(e){case Ee.Varint:for(;this.buf[this.pos++]&128;);break;case Ee.Bit64:this.pos+=4;case Ee.Bit32:this.pos+=4;break;case Ee.LengthDelimited:let i=this.uint32();this.pos+=i;break;case Ee.StartGroup:for(;;){const[s,o]=this.tag();if(o===Ee.EndGroup){if(n!==void 0&&s!==n)throw new Error("invalid end group tag");break}this.skip(o,s)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(r,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return pe.dec(...this.varint64())}uint64(){return pe.uDec(...this.varint64())}sint64(){let[e,n]=this.varint64(),r=-(e&1);return e=(e>>>1|(n&1)<<31)^r,n=n>>>1^r,pe.dec(e,n)}bool(){let[e,n]=this.varint64();return e!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return pe.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return pe.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),n=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(n,n+e)}string(){return this.textDecoder.decode(this.bytes())}}function BS(t,e,n,r){let i;return{typeName:e,extendee:n,get field(){if(!i){const s=typeof r=="function"?r():r;s.name=e.split(".").pop(),s.jsonName="[".concat(e,"]"),i=t.util.newFieldList([s]).list()[0]}return i},runtime:t}}function Ag(t){const e=t.field.localName,n=Object.create(null);return n[e]=zS(t),[n,()=>n[e]]}function zS(t){const e=t.field;if(e.repeated)return[];if(e.default!==void 0)return e.default;switch(e.kind){case"enum":return e.T.values[0].no;case"scalar":return fi(e.T,e.L);case"message":const n=e.T,r=new n;return n.fieldWrapper?n.fieldWrapper.unwrapField(r):r;case"map":throw"map fields are not allowed to be extensions"}}function VS(t,e){if(!e.repeated&&(e.kind=="enum"||e.kind=="scalar")){for(let n=t.length-1;n>=0;--n)if(t[n].no==e.no)return[t[n]];return[]}return t.filter(n=>n.no===e.no)}let vn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),ya=[];for(let t=0;t<vn.length;t++)ya[vn[t].charCodeAt(0)]=t;ya[45]=vn.indexOf("+"),ya[95]=vn.indexOf("/");const jg={dec(t){let e=t.length*3/4;t[t.length-2]=="="?e-=2:t[t.length-1]=="="&&(e-=1);let n=new Uint8Array(e),r=0,i=0,s,o=0;for(let a=0;a<t.length;a++){if(s=ya[t.charCodeAt(a)],s===void 0)switch(t[a]){case"=":i=0;case`
|
|
61
61
|
`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(i){case 0:o=s,i=1;break;case 1:n[r++]=o<<2|(s&48)>>4,o=s,i=2;break;case 2:n[r++]=(o&15)<<4|(s&60)>>2,o=s,i=3;break;case 3:n[r++]=(o&3)<<6|s,i=0;break}}if(i==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(t){let e="",n=0,r,i=0;for(let s=0;s<t.length;s++)switch(r=t[s],n){case 0:e+=vn[r>>2],i=(r&3)<<4,n=1;break;case 1:e+=vn[i|r>>4],i=(r&15)<<2,n=2;break;case 2:e+=vn[i|r>>6],e+=vn[r&63],n=0;break}return n&&(e+=vn[i],e+="=",n==1&&(e+="=")),e}};function HS(t,e,n){Fg(e,t);const r=e.runtime.bin.makeReadOptions(n),i=VS(t.getType().runtime.bin.listUnknownFields(t),e.field),[s,o]=Ag(e);for(const a of i)e.runtime.bin.readField(s,r.readerFactory(a.data),e.field,a.wireType,r);return o()}function $S(t,e,n,r){Fg(e,t);const i=e.runtime.bin.makeReadOptions(r),s=e.runtime.bin.makeWriteOptions(r);if(Ug(t,e)){const c=t.getType().runtime.bin.listUnknownFields(t).filter(u=>u.no!=e.field.no);t.getType().runtime.bin.discardUnknownFields(t);for(const u of c)t.getType().runtime.bin.onUnknownField(t,u.no,u.wireType,u.data)}const o=s.writerFactory();let a=e.field;!a.opt&&!a.repeated&&(a.kind=="enum"||a.kind=="scalar")&&(a=Object.assign(Object.assign({},e.field),{opt:!0})),e.runtime.bin.writeField(a,n,o,s);const l=i.readerFactory(o.finish());for(;l.pos<l.len;){const[c,u]=l.tag(),d=l.skip(u,c);t.getType().runtime.bin.onUnknownField(t,c,u,d)}}function Ug(t,e){const n=t.getType();return e.extendee.typeName===n.typeName&&!!n.runtime.bin.listUnknownFields(t).find(r=>r.no==e.field.no)}function Fg(t,e){Se(t.extendee.typeName==e.getType().typeName,"extension ".concat(t.typeName," can only be applied to message ").concat(t.extendee.typeName))}function Bg(t,e){const n=t.localName;if(t.repeated)return e[n].length>0;if(t.oneof)return e[t.oneof.localName].case===n;switch(t.kind){case"enum":case"scalar":return t.opt||t.req?e[n]!==void 0:t.kind=="enum"?e[n]!==t.T.values[0].no:!Dg(t.T,e[n]);case"message":return e[n]!==void 0;case"map":return Object.keys(e[n]).length>0}}function zg(t,e){const n=t.localName,r=!t.opt&&!t.req;if(t.repeated)e[n]=[];else if(t.oneof)e[t.oneof.localName]={case:void 0};else switch(t.kind){case"map":e[n]={};break;case"enum":e[n]=r?t.T.values[0].no:void 0;break;case"scalar":e[n]=r?fi(t.T,t.L):void 0;break;case"message":e[n]=void 0;break}}function Sr(t,e){if(t===null||typeof t!="object"||!Object.getOwnPropertyNames(Nu.prototype).every(r=>r in t&&typeof t[r]=="function"))return!1;const n=t.getType();return n===null||typeof n!="function"||!("typeName"in n)||typeof n.typeName!="string"?!1:e===void 0?!0:n.typeName==e.typeName}function Vg(t,e){return Sr(e)||!t.fieldWrapper?e:t.fieldWrapper.wrapField(e)}I.DOUBLE,I.FLOAT,I.INT64,I.UINT64,I.INT32,I.UINT32,I.BOOL,I.STRING,I.BYTES;const Hg={ignoreUnknownFields:!1},$g={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function qS(t){return t?Object.assign(Object.assign({},Hg),t):Hg}function WS(t){return t?Object.assign(Object.assign({},$g),t):$g}const ka=Symbol(),ba=Symbol();function GS(){return{makeReadOptions:qS,makeWriteOptions:WS,readMessage(t,e,n,r){if(e==null||Array.isArray(e)||typeof e!="object")throw new Error("cannot decode message ".concat(t.typeName," from JSON: ").concat(Xt(e)));r=r??new t;const i=new Map,s=n.typeRegistry;for(const[o,a]of Object.entries(e)){const l=t.fields.findJsonName(o);if(l){if(l.oneof){if(a===null&&l.kind=="scalar")continue;const c=i.get(l.oneof);if(c!==void 0)throw new Error("cannot decode message ".concat(t.typeName,' from JSON: multiple keys for oneof "').concat(l.oneof.name,'" present: "').concat(c,'", "').concat(o,'"'));i.set(l.oneof,o)}qg(r,a,l,n,t)}else{let c=!1;if(s!=null&&s.findExtension&&o.startsWith("[")&&o.endsWith("]")){const u=s.findExtension(o.substring(1,o.length-1));if(u&&u.extendee.typeName==t.typeName){c=!0;const[d,h]=Ag(u);qg(d,a,u.field,n,u),$S(r,u,h(),n)}}if(!c&&!n.ignoreUnknownFields)throw new Error("cannot decode message ".concat(t.typeName,' from JSON: key "').concat(o,'" is unknown'))}}return r},writeMessage(t,e){const n=t.getType(),r={};let i;try{for(i of n.fields.byNumber()){if(!Bg(i,t)){if(i.req)throw"required field not set";if(!e.emitDefaultValues||!ZS(i))continue}const o=i.oneof?t[i.oneof.localName].value:t[i.localName],a=Wg(i,o,e);a!==void 0&&(r[e.useProtoFieldName?i.name:i.jsonName]=a)}const s=e.typeRegistry;if(s!=null&&s.findExtensionFor)for(const o of n.runtime.bin.listUnknownFields(t)){const a=s.findExtensionFor(n.typeName,o.no);if(a&&Ug(t,a)){const l=HS(t,a,e),c=Wg(a.field,l,e);c!==void 0&&(r[a.field.jsonName]=c)}}}catch(s){const o=i?"cannot encode field ".concat(n.typeName,".").concat(i.name," to JSON"):"cannot encode message ".concat(n.typeName," to JSON"),a=s instanceof Error?s.message:String(s);throw new Error(o+(a.length>0?": ".concat(a):""))}return r},readScalar(t,e,n){return ws(t,e,n??$n.BIGINT,!0)},writeScalar(t,e,n){if(e!==void 0&&(n||Dg(t,e)))return Ca(t,e)},debug:Xt}}function Xt(t){if(t===null)return"null";switch(typeof t){case"object":return Array.isArray(t)?"array":"object";case"string":return t.length>100?"string":'"'.concat(t.split('"').join('\\"'),'"');default:return String(t)}}function qg(t,e,n,r,i){let s=n.localName;if(n.repeated){if(Se(n.kind!="map"),e===null)return;if(!Array.isArray(e))throw new Error("cannot decode field ".concat(i.typeName,".").concat(n.name," from JSON: ").concat(Xt(e)));const o=t[s];for(const a of e){if(a===null)throw new Error("cannot decode field ".concat(i.typeName,".").concat(n.name," from JSON: ").concat(Xt(a)));switch(n.kind){case"message":o.push(n.T.fromJson(a,r));break;case"enum":const l=ju(n.T,a,r.ignoreUnknownFields,!0);l!==ba&&o.push(l);break;case"scalar":try{o.push(ws(n.T,a,n.L,!0))}catch(c){let u="cannot decode field ".concat(i.typeName,".").concat(n.name," from JSON: ").concat(Xt(a));throw c instanceof Error&&c.message.length>0&&(u+=": ".concat(c.message)),new Error(u)}break}}}else if(n.kind=="map"){if(e===null)return;if(typeof e!="object"||Array.isArray(e))throw new Error("cannot decode field ".concat(i.typeName,".").concat(n.name," from JSON: ").concat(Xt(e)));const o=t[s];for(const[a,l]of Object.entries(e)){if(l===null)throw new Error("cannot decode field ".concat(i.typeName,".").concat(n.name," from JSON: map value null"));let c;try{c=KS(n.K,a)}catch(u){let d="cannot decode map key for field ".concat(i.typeName,".").concat(n.name," from JSON: ").concat(Xt(e));throw u instanceof Error&&u.message.length>0&&(d+=": ".concat(u.message)),new Error(d)}switch(n.V.kind){case"message":o[c]=n.V.T.fromJson(l,r);break;case"enum":const u=ju(n.V.T,l,r.ignoreUnknownFields,!0);u!==ba&&(o[c]=u);break;case"scalar":try{o[c]=ws(n.V.T,l,$n.BIGINT,!0)}catch(d){let h="cannot decode map value for field ".concat(i.typeName,".").concat(n.name," from JSON: ").concat(Xt(e));throw d instanceof Error&&d.message.length>0&&(h+=": ".concat(d.message)),new Error(h)}break}}}else switch(n.oneof&&(t=t[n.oneof.localName]={case:s},s="value"),n.kind){case"message":const o=n.T;if(e===null&&o.typeName!="google.protobuf.Value")return;let a=t[s];Sr(a)?a.fromJson(e,r):(t[s]=a=o.fromJson(e,r),o.fieldWrapper&&!n.oneof&&(t[s]=o.fieldWrapper.unwrapField(a)));break;case"enum":const l=ju(n.T,e,r.ignoreUnknownFields,!1);switch(l){case ka:zg(n,t);break;case ba:break;default:t[s]=l;break}break;case"scalar":try{const c=ws(n.T,e,n.L,!1);switch(c){case ka:zg(n,t);break;default:t[s]=c;break}}catch(c){let u="cannot decode field ".concat(i.typeName,".").concat(n.name," from JSON: ").concat(Xt(e));throw c instanceof Error&&c.message.length>0&&(u+=": ".concat(c.message)),new Error(u)}break}}function KS(t,e){if(t===I.BOOL)switch(e){case"true":e=!0;break;case"false":e=!1;break}return ws(t,e,$n.BIGINT,!0).toString()}function ws(t,e,n,r){if(e===null)return r?fi(t,n):ka;switch(t){case I.DOUBLE:case I.FLOAT:if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;const i=Number(e);if(Number.isNaN(i)||!Number.isFinite(i))break;return t==I.FLOAT&&xg(i),i;case I.INT32:case I.FIXED32:case I.SFIXED32:case I.SINT32:case I.UINT32:let s;if(typeof e=="number"?s=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(s=Number(e)),s===void 0)break;return t==I.UINT32||t==I.FIXED32?Mu(s):ga(s),s;case I.INT64:case I.SFIXED64:case I.SINT64:if(typeof e!="number"&&typeof e!="string")break;const o=pe.parse(e);return n?o.toString():o;case I.FIXED64:case I.UINT64:if(typeof e!="number"&&typeof e!="string")break;const a=pe.uParse(e);return n?a.toString():a;case I.BOOL:if(typeof e!="boolean")break;return e;case I.STRING:if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case I.BYTES:if(e==="")return new Uint8Array(0);if(typeof e!="string")break;return jg.dec(e)}throw new Error}function ju(t,e,n,r){if(e===null)return t.typeName=="google.protobuf.NullValue"?0:r?t.values[0].no:ka;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":const i=t.findName(e);if(i!==void 0)return i.no;if(n)return ba;break}throw new Error("cannot decode enum ".concat(t.typeName," from JSON: ").concat(Xt(e)))}function ZS(t){return t.repeated||t.kind=="map"?!0:!(t.oneof||t.kind=="message"||t.opt||t.req)}function Wg(t,e,n){if(t.kind=="map"){Se(typeof e=="object"&&e!=null);const r={},i=Object.entries(e);switch(t.V.kind){case"scalar":for(const[o,a]of i)r[o.toString()]=Ca(t.V.T,a);break;case"message":for(const[o,a]of i)r[o.toString()]=a.toJson(n);break;case"enum":const s=t.V.T;for(const[o,a]of i)r[o.toString()]=Uu(s,a,n.enumAsInteger);break}return n.emitDefaultValues||i.length>0?r:void 0}if(t.repeated){Se(Array.isArray(e));const r=[];switch(t.kind){case"scalar":for(let i=0;i<e.length;i++)r.push(Ca(t.T,e[i]));break;case"enum":for(let i=0;i<e.length;i++)r.push(Uu(t.T,e[i],n.enumAsInteger));break;case"message":for(let i=0;i<e.length;i++)r.push(e[i].toJson(n));break}return n.emitDefaultValues||r.length>0?r:void 0}switch(t.kind){case"scalar":return Ca(t.T,e);case"enum":return Uu(t.T,e,n.enumAsInteger);case"message":return Vg(t.T,e).toJson(n)}}function Uu(t,e,n){var r;if(Se(typeof e=="number"),t.typeName=="google.protobuf.NullValue")return null;if(n)return e;const i=t.findNumber(e);return(r=i==null?void 0:i.name)!==null&&r!==void 0?r:e}function Ca(t,e){switch(t){case I.INT32:case I.SFIXED32:case I.SINT32:case I.FIXED32:case I.UINT32:return Se(typeof e=="number"),e;case I.FLOAT:case I.DOUBLE:return Se(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e;case I.STRING:return Se(typeof e=="string"),e;case I.BOOL:return Se(typeof e=="boolean"),e;case I.UINT64:case I.FIXED64:case I.INT64:case I.SFIXED64:case I.SINT64:return Se(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),e.toString();case I.BYTES:return Se(e instanceof Uint8Array),jg.enc(e)}}const pi=Symbol("@bufbuild/protobuf/unknown-fields"),Gg={readUnknownFields:!0,readerFactory:t=>new FS(t)},Kg={writeUnknownFields:!0,writerFactory:()=>new US};function QS(t){return t?Object.assign(Object.assign({},Gg),t):Gg}function YS(t){return t?Object.assign(Object.assign({},Kg),t):Kg}function JS(){return{makeReadOptions:QS,makeWriteOptions:YS,listUnknownFields(t){var e;return(e=t[pi])!==null&&e!==void 0?e:[]},discardUnknownFields(t){delete t[pi]},writeUnknownFields(t,e){const r=t[pi];if(r)for(const i of r)e.tag(i.no,i.wireType).raw(i.data)},onUnknownField(t,e,n,r){const i=t;Array.isArray(i[pi])||(i[pi]=[]),i[pi].push({no:e,wireType:n,data:r})},readMessage(t,e,n,r,i){const s=t.getType(),o=i?e.len:e.pos+n;let a,l;for(;e.pos<o&&([a,l]=e.tag(),!(i===!0&&l==Ee.EndGroup));){const c=s.fields.find(a);if(!c){const u=e.skip(l,a);r.readUnknownFields&&this.onUnknownField(t,a,l,u);continue}Zg(t,e,c,l,r)}if(i&&(l!=Ee.EndGroup||a!==n))throw new Error("invalid end group tag")},readField:Zg,writeMessage(t,e,n){const r=t.getType();for(const i of r.fields.byNumber()){if(!Bg(i,t)){if(i.req)throw new Error("cannot encode field ".concat(r.typeName,".").concat(i.name," to binary: required field not set"));continue}const s=i.oneof?t[i.oneof.localName].value:t[i.localName];Qg(i,s,e,n)}return n.writeUnknownFields&&this.writeUnknownFields(t,e),e},writeField(t,e,n,r){e!==void 0&&Qg(t,e,n,r)}}}function Zg(t,e,n,r,i){let{repeated:s,localName:o}=n;switch(n.oneof&&(t=t[n.oneof.localName],t.case!=o&&delete t.value,t.case=o,o="value"),n.kind){case"scalar":case"enum":const a=n.kind=="enum"?I.INT32:n.T;let l=wa;if(n.kind=="scalar"&&n.L>0&&(l=ew),s){let h=t[o];if(r==Ee.LengthDelimited&&a!=I.STRING&&a!=I.BYTES){let m=e.uint32()+e.pos;for(;e.pos<m;)h.push(l(e,a))}else h.push(l(e,a))}else t[o]=l(e,a);break;case"message":const c=n.T;s?t[o].push(Sa(e,new c,i,n)):Sr(t[o])?Sa(e,t[o],i,n):(t[o]=Sa(e,new c,i,n),c.fieldWrapper&&!n.oneof&&!n.repeated&&(t[o]=c.fieldWrapper.unwrapField(t[o])));break;case"map":let[u,d]=XS(n,e,i);t[o][u]=d;break}}function Sa(t,e,n,r){const i=e.getType().runtime.bin,s=r==null?void 0:r.delimited;return i.readMessage(e,t,s?r.no:t.uint32(),n,s),e}function XS(t,e,n){const r=e.uint32(),i=e.pos+r;let s,o;for(;e.pos<i;){const[a]=e.tag();switch(a){case 1:s=wa(e,t.K);break;case 2:switch(t.V.kind){case"scalar":o=wa(e,t.V.T);break;case"enum":o=e.int32();break;case"message":o=Sa(e,new t.V.T,n,void 0);break}break}}if(s===void 0&&(s=fi(t.K,$n.BIGINT)),typeof s!="string"&&typeof s!="number"&&(s=s.toString()),o===void 0)switch(t.V.kind){case"scalar":o=fi(t.V.T,$n.BIGINT);break;case"enum":o=t.V.T.values[0].no;break;case"message":o=new t.V.T;break}return[s,o]}function ew(t,e){const n=wa(t,e);return typeof n=="bigint"?n.toString():n}function wa(t,e){switch(e){case I.STRING:return t.string();case I.BOOL:return t.bool();case I.DOUBLE:return t.double();case I.FLOAT:return t.float();case I.INT32:return t.int32();case I.INT64:return t.int64();case I.UINT64:return t.uint64();case I.FIXED64:return t.fixed64();case I.BYTES:return t.bytes();case I.FIXED32:return t.fixed32();case I.SFIXED32:return t.sfixed32();case I.SFIXED64:return t.sfixed64();case I.SINT64:return t.sint64();case I.UINT32:return t.uint32();case I.SINT32:return t.sint32()}}function Qg(t,e,n,r){Se(e!==void 0);const i=t.repeated;switch(t.kind){case"scalar":case"enum":let s=t.kind=="enum"?I.INT32:t.T;if(i)if(Se(Array.isArray(e)),t.packed)nw(n,s,t.no,e);else for(const o of e)Ts(n,s,t.no,o);else Ts(n,s,t.no,e);break;case"message":if(i){Se(Array.isArray(e));for(const o of e)Yg(n,r,t,o)}else Yg(n,r,t,e);break;case"map":Se(typeof e=="object"&&e!=null);for(const[o,a]of Object.entries(e))tw(n,r,t,o,a);break}}function tw(t,e,n,r,i){t.tag(n.no,Ee.LengthDelimited),t.fork();let s=r;switch(n.K){case I.INT32:case I.FIXED32:case I.UINT32:case I.SFIXED32:case I.SINT32:s=Number.parseInt(r);break;case I.BOOL:Se(r=="true"||r=="false"),s=r=="true";break}switch(Ts(t,n.K,1,s),n.V.kind){case"scalar":Ts(t,n.V.T,2,i);break;case"enum":Ts(t,I.INT32,2,i);break;case"message":Se(i!==void 0),t.tag(2,Ee.LengthDelimited).bytes(i.toBinary(e));break}t.join()}function Yg(t,e,n,r){const i=Vg(n.T,r);n.delimited?t.tag(n.no,Ee.StartGroup).raw(i.toBinary(e)).tag(n.no,Ee.EndGroup):t.tag(n.no,Ee.LengthDelimited).bytes(i.toBinary(e))}function Ts(t,e,n,r){Se(r!==void 0);let[i,s]=Jg(e);t.tag(n,i)[s](r)}function nw(t,e,n,r){if(!r.length)return;t.tag(n,Ee.LengthDelimited).fork();let[,i]=Jg(e);for(let s=0;s<r.length;s++)t[i](r[s]);t.join()}function Jg(t){let e=Ee.Varint;switch(t){case I.BYTES:case I.STRING:e=Ee.LengthDelimited;break;case I.DOUBLE:case I.FIXED64:case I.SFIXED64:e=Ee.Bit64;break;case I.FIXED32:case I.SFIXED32:case I.FLOAT:e=Ee.Bit32;break}const n=I[t].toLowerCase();return[e,n]}function rw(){return{setEnumType:Pg,initPartial(t,e){if(t===void 0)return;const n=e.getType();for(const r of n.fields.byMember()){const i=r.localName,s=e,o=t;if(o[i]!=null)switch(r.kind){case"oneof":const a=o[i].case;if(a===void 0)continue;const l=r.findField(a);let c=o[i].value;l&&l.kind=="message"&&!Sr(c,l.T)?c=new l.T(c):l&&l.kind==="scalar"&&l.T===I.BYTES&&(c=xs(c)),s[i]={case:a,value:c};break;case"scalar":case"enum":let u=o[i];r.T===I.BYTES&&(u=r.repeated?u.map(xs):xs(u)),s[i]=u;break;case"map":switch(r.V.kind){case"scalar":case"enum":if(r.V.T===I.BYTES)for(const[f,m]of Object.entries(o[i]))s[i][f]=xs(m);else Object.assign(s[i],o[i]);break;case"message":const h=r.V.T;for(const f of Object.keys(o[i])){let m=o[i][f];h.fieldWrapper||(m=new h(m)),s[i][f]=m}break}break;case"message":const d=r.T;if(r.repeated)s[i]=o[i].map(h=>Sr(h,d)?h:new d(h));else{const h=o[i];d.fieldWrapper?d.typeName==="google.protobuf.BytesValue"?s[i]=xs(h):s[i]=h:s[i]=Sr(h,d)?h:new d(h)}break}}},equals(t,e,n){return e===n?!0:!e||!n?!1:t.fields.byMember().every(r=>{const i=e[r.localName],s=n[r.localName];if(r.repeated){if(i.length!==s.length)return!1;switch(r.kind){case"message":return i.every((o,a)=>r.T.equals(o,s[a]));case"scalar":return i.every((o,a)=>qn(r.T,o,s[a]));case"enum":return i.every((o,a)=>qn(I.INT32,o,s[a]))}throw new Error("repeated cannot contain ".concat(r.kind))}switch(r.kind){case"message":return r.T.equals(i,s);case"enum":return qn(I.INT32,i,s);case"scalar":return qn(r.T,i,s);case"oneof":if(i.case!==s.case)return!1;const o=r.findField(i.case);if(o===void 0)return!0;switch(o.kind){case"message":return o.T.equals(i.value,s.value);case"enum":return qn(I.INT32,i.value,s.value);case"scalar":return qn(o.T,i.value,s.value)}throw new Error("oneof cannot contain ".concat(o.kind));case"map":const a=Object.keys(i).concat(Object.keys(s));switch(r.V.kind){case"message":const l=r.V.T;return a.every(u=>l.equals(i[u],s[u]));case"enum":return a.every(u=>qn(I.INT32,i[u],s[u]));case"scalar":const c=r.V.T;return a.every(u=>qn(c,i[u],s[u]))}break}})},clone(t){const e=t.getType(),n=new e,r=n;for(const i of e.fields.byMember()){const s=t[i.localName];let o;if(i.repeated)o=s.map(Ta);else if(i.kind=="map"){o=r[i.localName];for(const[a,l]of Object.entries(s))o[a]=Ta(l)}else i.kind=="oneof"?o=i.findField(s.case)?{case:s.case,value:Ta(s.value)}:{case:void 0}:o=Ta(s);r[i.localName]=o}for(const i of e.runtime.bin.listUnknownFields(t))e.runtime.bin.onUnknownField(r,i.no,i.wireType,i.data);return n}}}function Ta(t){if(t===void 0)return t;if(Sr(t))return t.clone();if(t instanceof Uint8Array){const e=new Uint8Array(t.byteLength);return e.set(t),e}return t}function xs(t){return t instanceof Uint8Array?t:new Uint8Array(t)}function iw(t,e,n){return{syntax:t,json:GS(),bin:JS(),util:Object.assign(Object.assign({},rw()),{newFieldList:e,initFields:n}),makeMessageType(r,i,s){return LS(this,r,i,s)},makeEnum:OS,makeEnumType:_g,getEnumType:IS,makeExtension(r,i,s){return BS(this,r,i,s)}}}class sw{constructor(e,n){this._fields=e,this._normalizer=n}findJsonName(e){if(!this.jsonNames){const n={};for(const r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[e]}find(e){if(!this.numbers){const n={};for(const r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,n)=>e.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];const e=this.members;let n;for(const r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,e.push(n)):e.push(r)}return this.members}}function Xg(t,e){const n=ev(t);return e?n:dw(uw(n))}function ow(t){return Xg(t,!1)}const aw=ev;function ev(t){let e=!1;const n=[];for(let r=0;r<t.length;r++){let i=t.charAt(r);switch(i){case"_":e=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(i),e=!1;break;default:e&&(e=!1,i=i.toUpperCase()),n.push(i);break}}return n.join("")}const lw=new Set(["constructor","toString","toJSON","valueOf"]),cw=new Set(["getType","clone","equals","fromBinary","fromJson","fromJsonString","toBinary","toJson","toJsonString","toObject"]),tv=t=>"".concat(t,"$"),uw=t=>cw.has(t)?tv(t):t,dw=t=>lw.has(t)?tv(t):t;class hw{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=ow(e)}addField(e){Se(e.oneof===this,"field ".concat(e.name," not one of ").concat(this.name)),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;n<this.fields.length;n++)this._lookup[this.fields[n].localName]=this.fields[n]}return this._lookup[e]}}function fw(t,e){var n,r,i,s,o,a;const l=[];let c;for(const u of typeof t=="function"?t():t){const d=u;if(d.localName=Xg(u.name,u.oneof!==void 0),d.jsonName=(n=u.jsonName)!==null&&n!==void 0?n:aw(u.name),d.repeated=(r=u.repeated)!==null&&r!==void 0?r:!1,u.kind=="scalar"&&(d.L=(i=u.L)!==null&&i!==void 0?i:$n.BIGINT),d.delimited=(s=u.delimited)!==null&&s!==void 0?s:!1,d.req=(o=u.req)!==null&&o!==void 0?o:!1,d.opt=(a=u.opt)!==null&&a!==void 0?a:!1,u.packed===void 0&&(d.packed=u.kind=="enum"||u.kind=="scalar"&&u.T!=I.BYTES&&u.T!=I.STRING),u.oneof!==void 0){const h=typeof u.oneof=="string"?u.oneof:u.oneof.name;(!c||c.name!=h)&&(c=new hw(h)),d.oneof=c,c.addField(d)}l.push(d)}return l}const P=iw("proto3",t=>new sw(t,e=>fw(e)),t=>{for(const e of t.getType().fields.byMember()){if(e.opt)continue;const n=e.localName,r=t;if(e.repeated){r[n]=[];continue}switch(e.kind){case"oneof":r[n]={case:void 0};break;case"enum":r[n]=0;break;case"map":r[n]={};break;case"scalar":r[n]=fi(e.T,e.L);break}}});class lt extends Nu{constructor(e){super(),this.seconds=pe.zero,this.nanos=0,P.util.initPartial(e,this)}fromJson(e,n){if(typeof e!="string")throw new Error("cannot decode google.protobuf.Timestamp from JSON: ".concat(P.json.debug(e)));const r=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!r)throw new Error("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");const i=Date.parse(r[1]+"-"+r[2]+"-"+r[3]+"T"+r[4]+":"+r[5]+":"+r[6]+(r[8]?r[8]:"Z"));if(Number.isNaN(i))throw new Error("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");if(i<Date.parse("0001-01-01T00:00:00Z")||i>Date.parse("9999-12-31T23:59:59Z"))throw new Error("cannot decode message google.protobuf.Timestamp from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive");return this.seconds=pe.parse(i/1e3),this.nanos=0,r[7]&&(this.nanos=parseInt("1"+r[7]+"0".repeat(9-r[7].length))-1e9),this}toJson(e){const n=Number(this.seconds)*1e3;if(n<Date.parse("0001-01-01T00:00:00Z")||n>Date.parse("9999-12-31T23:59:59Z"))throw new Error("cannot encode google.protobuf.Timestamp to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive");if(this.nanos<0)throw new Error("cannot encode google.protobuf.Timestamp to JSON: nanos must not be negative");let r="Z";if(this.nanos>0){const i=(this.nanos+1e9).toString().substring(1);i.substring(3)==="000000"?r="."+i.substring(0,3)+"Z":i.substring(6)==="000"?r="."+i.substring(0,6)+"Z":r="."+i+"Z"}return new Date(n).toISOString().replace(".000Z",r)}toDate(){return new Date(Number(this.seconds)*1e3+Math.ceil(this.nanos/1e6))}static now(){return lt.fromDate(new Date)}static fromDate(e){const n=e.getTime();return new lt({seconds:pe.parse(Math.floor(n/1e3)),nanos:n%1e3*1e6})}static fromBinary(e,n){return new lt().fromBinary(e,n)}static fromJson(e,n){return new lt().fromJson(e,n)}static fromJsonString(e,n){return new lt().fromJsonString(e,n)}static equals(e,n){return P.util.equals(lt,e,n)}}lt.runtime=P,lt.typeName="google.protobuf.Timestamp",lt.fields=P.util.newFieldList(()=>[{no:1,name:"seconds",kind:"scalar",T:3},{no:2,name:"nanos",kind:"scalar",T:5}]);const pw=P.makeMessageType("livekit.MetricsBatch",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:lt},{no:3,name:"str_data",kind:"scalar",T:9,repeated:!0},{no:4,name:"time_series",kind:"message",T:mw,repeated:!0},{no:5,name:"events",kind:"message",T:vw,repeated:!0}]),mw=P.makeMessageType("livekit.TimeSeriesMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"samples",kind:"message",T:gw,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),gw=P.makeMessageType("livekit.MetricSample",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:lt},{no:3,name:"value",kind:"scalar",T:2}]),vw=P.makeMessageType("livekit.EventMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"start_timestamp_ms",kind:"scalar",T:3},{no:5,name:"end_timestamp_ms",kind:"scalar",T:3,opt:!0},{no:6,name:"normalized_start_timestamp",kind:"message",T:lt},{no:7,name:"normalized_end_timestamp",kind:"message",T:lt,opt:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"rid",kind:"scalar",T:13}]),nv=P.makeEnum("livekit.BackupCodecPolicy",[{no:0,name:"PREFER_REGRESSION"},{no:1,name:"SIMULCAST"},{no:2,name:"REGRESSION"}]),Ut=P.makeEnum("livekit.TrackType",[{no:0,name:"AUDIO"},{no:1,name:"VIDEO"},{no:2,name:"DATA"}]),Re=P.makeEnum("livekit.TrackSource",[{no:0,name:"UNKNOWN"},{no:1,name:"CAMERA"},{no:2,name:"MICROPHONE"},{no:3,name:"SCREEN_SHARE"},{no:4,name:"SCREEN_SHARE_AUDIO"}]),mi=P.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),Es=P.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),Ps=P.makeEnum("livekit.ClientConfigSetting",[{no:0,name:"UNSET"},{no:1,name:"DISABLED"},{no:2,name:"ENABLED"}]),Ft=P.makeEnum("livekit.DisconnectReason",[{no:0,name:"UNKNOWN_REASON"},{no:1,name:"CLIENT_INITIATED"},{no:2,name:"DUPLICATE_IDENTITY"},{no:3,name:"SERVER_SHUTDOWN"},{no:4,name:"PARTICIPANT_REMOVED"},{no:5,name:"ROOM_DELETED"},{no:6,name:"STATE_MISMATCH"},{no:7,name:"JOIN_FAILURE"},{no:8,name:"MIGRATION"},{no:9,name:"SIGNAL_CLOSE"},{no:10,name:"ROOM_CLOSED"},{no:11,name:"USER_UNAVAILABLE"},{no:12,name:"USER_REJECTED"},{no:13,name:"SIP_TRUNK_FAILURE"}]),gi=P.makeEnum("livekit.ReconnectReason",[{no:0,name:"RR_UNKNOWN"},{no:1,name:"RR_SIGNAL_DISCONNECTED"},{no:2,name:"RR_PUBLISHER_FAILED"},{no:3,name:"RR_SUBSCRIBER_FAILED"},{no:4,name:"RR_SWITCH_CANDIDATE"}]),yw=P.makeEnum("livekit.SubscriptionError",[{no:0,name:"SE_UNKNOWN"},{no:1,name:"SE_CODEC_UNSUPPORTED"},{no:2,name:"SE_TRACK_NOTFOUND"}]),en=P.makeEnum("livekit.AudioTrackFeature",[{no:0,name:"TF_STEREO"},{no:1,name:"TF_NO_DTX"},{no:2,name:"TF_AUTO_GAIN_CONTROL"},{no:3,name:"TF_ECHO_CANCELLATION"},{no:4,name:"TF_NOISE_SUPPRESSION"},{no:5,name:"TF_ENHANCED_NOISE_CANCELLATION"}]),Fu=P.makeMessageType("livekit.Room",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"empty_timeout",kind:"scalar",T:13},{no:14,name:"departure_timeout",kind:"scalar",T:13},{no:4,name:"max_participants",kind:"scalar",T:13},{no:5,name:"creation_time",kind:"scalar",T:3},{no:15,name:"creation_time_ms",kind:"scalar",T:3},{no:6,name:"turn_password",kind:"scalar",T:9},{no:7,name:"enabled_codecs",kind:"message",T:xa,repeated:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"num_participants",kind:"scalar",T:13},{no:11,name:"num_publishers",kind:"scalar",T:13},{no:10,name:"active_recording",kind:"scalar",T:8},{no:13,name:"version",kind:"message",T:mv}]),xa=P.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),kw=P.makeMessageType("livekit.ParticipantPermission",()=>[{no:1,name:"can_subscribe",kind:"scalar",T:8},{no:2,name:"can_publish",kind:"scalar",T:8},{no:3,name:"can_publish_data",kind:"scalar",T:8},{no:9,name:"can_publish_sources",kind:"enum",T:P.getEnumType(Re),repeated:!0},{no:7,name:"hidden",kind:"scalar",T:8},{no:8,name:"recorder",kind:"scalar",T:8},{no:10,name:"can_update_metadata",kind:"scalar",T:8},{no:11,name:"agent",kind:"scalar",T:8},{no:12,name:"can_subscribe_metrics",kind:"scalar",T:8}]),_s=P.makeMessageType("livekit.ParticipantInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"identity",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:P.getEnumType(Bu)},{no:4,name:"tracks",kind:"message",T:vi,repeated:!0},{no:5,name:"metadata",kind:"scalar",T:9},{no:6,name:"joined_at",kind:"scalar",T:3},{no:17,name:"joined_at_ms",kind:"scalar",T:3},{no:9,name:"name",kind:"scalar",T:9},{no:10,name:"version",kind:"scalar",T:13},{no:11,name:"permission",kind:"message",T:kw},{no:12,name:"region",kind:"scalar",T:9},{no:13,name:"is_publisher",kind:"scalar",T:8},{no:14,name:"kind",kind:"enum",T:P.getEnumType(Ea)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:P.getEnumType(Ft)},{no:18,name:"kind_details",kind:"enum",T:P.getEnumType(bw),repeated:!0}]),Bu=P.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),Ea=P.makeEnum("livekit.ParticipantInfo.Kind",[{no:0,name:"STANDARD"},{no:1,name:"INGRESS"},{no:2,name:"EGRESS"},{no:3,name:"SIP"},{no:4,name:"AGENT"}]),bw=P.makeEnum("livekit.ParticipantInfo.KindDetail",[{no:0,name:"CLOUD_AGENT"},{no:1,name:"FORWARDED"}]),kt=P.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),Cw=P.makeMessageType("livekit.SimulcastCodecInfo",()=>[{no:1,name:"mime_type",kind:"scalar",T:9},{no:2,name:"mid",kind:"scalar",T:9},{no:3,name:"cid",kind:"scalar",T:9},{no:4,name:"layers",kind:"message",T:wr,repeated:!0}]),vi=P.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:P.getEnumType(Ut)},{no:3,name:"name",kind:"scalar",T:9},{no:4,name:"muted",kind:"scalar",T:8},{no:5,name:"width",kind:"scalar",T:13},{no:6,name:"height",kind:"scalar",T:13},{no:7,name:"simulcast",kind:"scalar",T:8},{no:8,name:"disable_dtx",kind:"scalar",T:8},{no:9,name:"source",kind:"enum",T:P.getEnumType(Re)},{no:10,name:"layers",kind:"message",T:wr,repeated:!0},{no:11,name:"mime_type",kind:"scalar",T:9},{no:12,name:"mid",kind:"scalar",T:9},{no:13,name:"codecs",kind:"message",T:Cw,repeated:!0},{no:14,name:"stereo",kind:"scalar",T:8},{no:15,name:"disable_red",kind:"scalar",T:8},{no:16,name:"encryption",kind:"enum",T:P.getEnumType(kt)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:mv},{no:19,name:"audio_features",kind:"enum",T:P.getEnumType(en),repeated:!0},{no:20,name:"backup_codec_policy",kind:"enum",T:P.getEnumType(nv)}]),wr=P.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:P.getEnumType(mi)},{no:2,name:"width",kind:"scalar",T:13},{no:3,name:"height",kind:"scalar",T:13},{no:4,name:"bitrate",kind:"scalar",T:13},{no:5,name:"ssrc",kind:"scalar",T:13}]),ct=P.makeMessageType("livekit.DataPacket",()=>[{no:1,name:"kind",kind:"enum",T:P.getEnumType(Y)},{no:4,name:"participant_identity",kind:"scalar",T:9},{no:5,name:"destination_identities",kind:"scalar",T:9,repeated:!0},{no:2,name:"user",kind:"message",T:iv,oneof:"value"},{no:3,name:"speaker",kind:"message",T:Sw,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:sv,oneof:"value"},{no:7,name:"transcription",kind:"message",T:ww,oneof:"value"},{no:8,name:"metrics",kind:"message",T:pw,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:zu,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:ov,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:av,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:lv,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:Hu,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:$u,oneof:"value"},{no:15,name:"stream_trailer",kind:"message",T:qu,oneof:"value"}]),Y=P.makeEnum("livekit.DataPacket.Kind",[{no:0,name:"RELIABLE"},{no:1,name:"LOSSY"}]),Sw=P.makeMessageType("livekit.ActiveSpeakerUpdate",()=>[{no:1,name:"speakers",kind:"message",T:rv,repeated:!0}]),rv=P.makeMessageType("livekit.SpeakerInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"level",kind:"scalar",T:2},{no:3,name:"active",kind:"scalar",T:8}]),iv=P.makeMessageType("livekit.UserPacket",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:5,name:"participant_identity",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:12},{no:3,name:"destination_sids",kind:"scalar",T:9,repeated:!0},{no:6,name:"destination_identities",kind:"scalar",T:9,repeated:!0},{no:4,name:"topic",kind:"scalar",T:9,opt:!0},{no:8,name:"id",kind:"scalar",T:9,opt:!0},{no:9,name:"start_time",kind:"scalar",T:4,opt:!0},{no:10,name:"end_time",kind:"scalar",T:4,opt:!0},{no:11,name:"nonce",kind:"scalar",T:12}]),sv=P.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),ww=P.makeMessageType("livekit.Transcription",()=>[{no:2,name:"transcribed_participant_identity",kind:"scalar",T:9},{no:3,name:"track_id",kind:"scalar",T:9},{no:4,name:"segments",kind:"message",T:Tw,repeated:!0}]),Tw=P.makeMessageType("livekit.TranscriptionSegment",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"start_time",kind:"scalar",T:4},{no:4,name:"end_time",kind:"scalar",T:4},{no:5,name:"final",kind:"scalar",T:8},{no:6,name:"language",kind:"scalar",T:9}]),zu=P.makeMessageType("livekit.ChatMessage",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"edit_timestamp",kind:"scalar",T:3,opt:!0},{no:4,name:"message",kind:"scalar",T:9},{no:5,name:"deleted",kind:"scalar",T:8},{no:6,name:"generated",kind:"scalar",T:8}]),ov=P.makeMessageType("livekit.RpcRequest",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"method",kind:"scalar",T:9},{no:3,name:"payload",kind:"scalar",T:9},{no:4,name:"response_timeout_ms",kind:"scalar",T:13},{no:5,name:"version",kind:"scalar",T:13}]),av=P.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),lv=P.makeMessageType("livekit.RpcResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:9,oneof:"value"},{no:3,name:"error",kind:"message",T:cv,oneof:"value"}]),cv=P.makeMessageType("livekit.RpcError",()=>[{no:1,name:"code",kind:"scalar",T:13},{no:2,name:"message",kind:"scalar",T:9},{no:3,name:"data",kind:"scalar",T:9}]),uv=P.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),xw=P.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:P.getEnumType(dv)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"region",kind:"scalar",T:9},{no:5,name:"node_id",kind:"scalar",T:9},{no:6,name:"debug_info",kind:"scalar",T:9},{no:7,name:"agent_protocol",kind:"scalar",T:5}]),dv=P.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),Ew=P.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:P.getEnumType(hv)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"os",kind:"scalar",T:9},{no:5,name:"os_version",kind:"scalar",T:9},{no:6,name:"device_model",kind:"scalar",T:9},{no:7,name:"browser",kind:"scalar",T:9},{no:8,name:"browser_version",kind:"scalar",T:9},{no:9,name:"address",kind:"scalar",T:9},{no:10,name:"network",kind:"scalar",T:9},{no:11,name:"other_sdks",kind:"scalar",T:9}]),hv=P.makeEnum("livekit.ClientInfo.SDK",[{no:0,name:"UNKNOWN"},{no:1,name:"JS"},{no:2,name:"SWIFT"},{no:3,name:"ANDROID"},{no:4,name:"FLUTTER"},{no:5,name:"GO"},{no:6,name:"UNITY"},{no:7,name:"REACT_NATIVE"},{no:8,name:"RUST"},{no:9,name:"PYTHON"},{no:10,name:"CPP"},{no:11,name:"UNITY_WEB"},{no:12,name:"NODE"}]),fv=P.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:pv},{no:2,name:"screen",kind:"message",T:pv},{no:3,name:"resume_connection",kind:"enum",T:P.getEnumType(Ps)},{no:4,name:"disabled_codecs",kind:"message",T:Pw},{no:5,name:"force_relay",kind:"enum",T:P.getEnumType(Ps)}]),pv=P.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:P.getEnumType(Ps)}]),Pw=P.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:xa,repeated:!0},{no:2,name:"publish",kind:"message",T:xa,repeated:!0}]),mv=P.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),Vu=P.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),gv=P.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:P.getEnumType(Vu)},{no:2,name:"version",kind:"scalar",T:5},{no:3,name:"reply_to_stream_id",kind:"scalar",T:9},{no:4,name:"attached_stream_ids",kind:"scalar",T:9,repeated:!0},{no:5,name:"generated",kind:"scalar",T:8}],{localName:"DataStream_TextHeader"}),vv=P.makeMessageType("livekit.DataStream.ByteHeader",()=>[{no:1,name:"name",kind:"scalar",T:9}],{localName:"DataStream_ByteHeader"}),Hu=P.makeMessageType("livekit.DataStream.Header",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"topic",kind:"scalar",T:9},{no:4,name:"mime_type",kind:"scalar",T:9},{no:5,name:"total_length",kind:"scalar",T:4,opt:!0},{no:7,name:"encryption_type",kind:"enum",T:P.getEnumType(kt)},{no:8,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:9,name:"text_header",kind:"message",T:gv,oneof:"content_header"},{no:10,name:"byte_header",kind:"message",T:vv,oneof:"content_header"}],{localName:"DataStream_Header"}),$u=P.makeMessageType("livekit.DataStream.Chunk",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"chunk_index",kind:"scalar",T:4},{no:3,name:"content",kind:"scalar",T:12},{no:4,name:"version",kind:"scalar",T:5},{no:5,name:"iv",kind:"scalar",T:12,opt:!0}],{localName:"DataStream_Chunk"}),qu=P.makeMessageType("livekit.DataStream.Trailer",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"reason",kind:"scalar",T:9},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}}],{localName:"DataStream_Trailer"}),Bt=P.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),Wu=P.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),_w=P.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),Rw=P.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:Tr,oneof:"message"},{no:2,name:"answer",kind:"message",T:Tr,oneof:"message"},{no:3,name:"trickle",kind:"message",T:Zu,oneof:"message"},{no:4,name:"add_track",kind:"message",T:Ku,oneof:"message"},{no:5,name:"mute",kind:"message",T:Qu,oneof:"message"},{no:6,name:"subscription",kind:"message",T:Pa,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:kv,oneof:"message"},{no:8,name:"leave",kind:"message",T:_a,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:Cv,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:xv,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:Ev,oneof:"message"},{no:13,name:"simulate",kind:"message",T:tn,oneof:"message"},{no:14,name:"ping",kind:"scalar",T:3,oneof:"message"},{no:15,name:"update_metadata",kind:"message",T:Sv,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:_v,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:bv,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:Nw,oneof:"message"}]),yv=P.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:Iw,oneof:"message"},{no:2,name:"answer",kind:"message",T:Tr,oneof:"message"},{no:3,name:"offer",kind:"message",T:Tr,oneof:"message"},{no:4,name:"trickle",kind:"message",T:Zu,oneof:"message"},{no:5,name:"update",kind:"message",T:Mw,oneof:"message"},{no:6,name:"track_published",kind:"message",T:Yu,oneof:"message"},{no:8,name:"leave",kind:"message",T:_a,oneof:"message"},{no:9,name:"mute",kind:"message",T:Qu,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:Dw,oneof:"message"},{no:11,name:"room_update",kind:"message",T:Aw,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:Uw,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:Bw,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:Vw,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:Hw,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:Lw,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:Ow,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:$w,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:Gw,oneof:"message"},{no:22,name:"request_response",kind:"message",T:Kw,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:Zw,oneof:"message"}]),Gu=P.makeMessageType("livekit.SimulcastCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"cid",kind:"scalar",T:9}]),Ku=P.makeMessageType("livekit.AddTrackRequest",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"type",kind:"enum",T:P.getEnumType(Ut)},{no:4,name:"width",kind:"scalar",T:13},{no:5,name:"height",kind:"scalar",T:13},{no:6,name:"muted",kind:"scalar",T:8},{no:7,name:"disable_dtx",kind:"scalar",T:8},{no:8,name:"source",kind:"enum",T:P.getEnumType(Re)},{no:9,name:"layers",kind:"message",T:wr,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:Gu,repeated:!0},{no:11,name:"sid",kind:"scalar",T:9},{no:12,name:"stereo",kind:"scalar",T:8},{no:13,name:"disable_red",kind:"scalar",T:8},{no:14,name:"encryption",kind:"enum",T:P.getEnumType(kt)},{no:15,name:"stream",kind:"scalar",T:9},{no:16,name:"backup_codec_policy",kind:"enum",T:P.getEnumType(nv)}]),Zu=P.makeMessageType("livekit.TrickleRequest",()=>[{no:1,name:"candidateInit",kind:"scalar",T:9},{no:2,name:"target",kind:"enum",T:P.getEnumType(Bt)},{no:3,name:"final",kind:"scalar",T:8}]),Qu=P.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),Iw=P.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:Fu},{no:2,name:"participant",kind:"message",T:_s},{no:3,name:"other_participants",kind:"message",T:_s,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:wv,repeated:!0},{no:6,name:"subscriber_primary",kind:"scalar",T:8},{no:7,name:"alternative_url",kind:"scalar",T:9},{no:8,name:"client_configuration",kind:"message",T:fv},{no:9,name:"server_region",kind:"scalar",T:9},{no:10,name:"ping_timeout",kind:"scalar",T:5},{no:11,name:"ping_interval",kind:"scalar",T:5},{no:12,name:"server_info",kind:"message",T:xw},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:xa,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),Ow=P.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:wv,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:fv}]),Yu=P.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:vi}]),Lw=P.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),Tr=P.makeMessageType("livekit.SessionDescription",()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"sdp",kind:"scalar",T:9}]),Mw=P.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:_s,repeated:!0}]),Pa=P.makeMessageType("livekit.UpdateSubscription",()=>[{no:1,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:2,name:"subscribe",kind:"scalar",T:8},{no:3,name:"participant_tracks",kind:"message",T:uv,repeated:!0}]),kv=P.makeMessageType("livekit.UpdateTrackSettings",()=>[{no:1,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:3,name:"disabled",kind:"scalar",T:8},{no:4,name:"quality",kind:"enum",T:P.getEnumType(mi)},{no:5,name:"width",kind:"scalar",T:13},{no:6,name:"height",kind:"scalar",T:13},{no:7,name:"fps",kind:"scalar",T:13},{no:8,name:"priority",kind:"scalar",T:13}]),bv=P.makeMessageType("livekit.UpdateLocalAudioTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"features",kind:"enum",T:P.getEnumType(en),repeated:!0}]),Nw=P.makeMessageType("livekit.UpdateLocalVideoTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"width",kind:"scalar",T:13},{no:3,name:"height",kind:"scalar",T:13}]),_a=P.makeMessageType("livekit.LeaveRequest",()=>[{no:1,name:"can_reconnect",kind:"scalar",T:8},{no:2,name:"reason",kind:"enum",T:P.getEnumType(Ft)},{no:3,name:"action",kind:"enum",T:P.getEnumType(yi)},{no:4,name:"regions",kind:"message",T:qw}]),yi=P.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),Cv=P.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:wr,repeated:!0}]),Sv=P.makeMessageType("livekit.UpdateParticipantMetadata",()=>[{no:1,name:"metadata",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:4,name:"request_id",kind:"scalar",T:13}]),wv=P.makeMessageType("livekit.ICEServer",()=>[{no:1,name:"urls",kind:"scalar",T:9,repeated:!0},{no:2,name:"username",kind:"scalar",T:9},{no:3,name:"credential",kind:"scalar",T:9}]),Dw=P.makeMessageType("livekit.SpeakersChanged",()=>[{no:1,name:"speakers",kind:"message",T:rv,repeated:!0}]),Aw=P.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:Fu}]),jw=P.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:P.getEnumType(Es)},{no:3,name:"score",kind:"scalar",T:2}]),Uw=P.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:jw,repeated:!0}]),Fw=P.makeMessageType("livekit.StreamStateInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:P.getEnumType(Wu)}]),Bw=P.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:Fw,repeated:!0}]),Ju=P.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:P.getEnumType(mi)},{no:2,name:"enabled",kind:"scalar",T:8}]),zw=P.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:Ju,repeated:!0}]),Vw=P.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:Ju,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:zw,repeated:!0}]),Tv=P.makeMessageType("livekit.TrackPermission",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"all_tracks",kind:"scalar",T:8},{no:3,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:4,name:"participant_identity",kind:"scalar",T:9}]),xv=P.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:Tv,repeated:!0}]),Hw=P.makeMessageType("livekit.SubscriptionPermissionUpdate",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"allowed",kind:"scalar",T:8}]),Ev=P.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:Tr},{no:2,name:"subscription",kind:"message",T:Pa},{no:3,name:"publish_tracks",kind:"message",T:Yu,repeated:!0},{no:4,name:"data_channels",kind:"message",T:Pv,repeated:!0},{no:5,name:"offer",kind:"message",T:Tr},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0}]),Pv=P.makeMessageType("livekit.DataChannelInfo",()=>[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"id",kind:"scalar",T:13},{no:3,name:"target",kind:"enum",T:P.getEnumType(Bt)}]),tn=P.makeMessageType("livekit.SimulateScenario",()=>[{no:1,name:"speaker_update",kind:"scalar",T:5,oneof:"scenario"},{no:2,name:"node_failure",kind:"scalar",T:8,oneof:"scenario"},{no:3,name:"migration",kind:"scalar",T:8,oneof:"scenario"},{no:4,name:"server_leave",kind:"scalar",T:8,oneof:"scenario"},{no:5,name:"switch_candidate_protocol",kind:"enum",T:P.getEnumType(_w),oneof:"scenario"},{no:6,name:"subscriber_bandwidth",kind:"scalar",T:3,oneof:"scenario"},{no:7,name:"disconnect_signal_on_resume",kind:"scalar",T:8,oneof:"scenario"},{no:8,name:"disconnect_signal_on_resume_no_messages",kind:"scalar",T:8,oneof:"scenario"},{no:9,name:"leave_request_full_reconnect",kind:"scalar",T:8,oneof:"scenario"}]),_v=P.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),$w=P.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),qw=P.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:Ww,repeated:!0}]),Ww=P.makeMessageType("livekit.RegionInfo",()=>[{no:1,name:"region",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"distance",kind:"scalar",T:3}]),Gw=P.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:P.getEnumType(yw)}]),Kw=P.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:P.getEnumType(Xu)},{no:3,name:"message",kind:"scalar",T:9}]),Xu=P.makeEnum("livekit.RequestResponse.Reason",[{no:0,name:"OK"},{no:1,name:"NOT_FOUND"},{no:2,name:"NOT_ALLOWED"},{no:3,name:"LIMIT_EXCEEDED"}]),Zw=P.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]);function Qw(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Ra={exports:{}},Yw=Ra.exports,Rv;function Jw(){return Rv||(Rv=1,function(t){(function(e,n){t.exports?t.exports=n():e.log=n()})(Yw,function(){var e=function(){},n="undefined",r=typeof window!==n&&typeof window.navigator!==n&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],s={},o=null;function a(g,T){var p=g[T];if(typeof p.bind=="function")return p.bind(g);try{return Function.prototype.bind.call(p,g)}catch{return function(){return Function.prototype.apply.apply(p,[g,arguments])}}}function l(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(g){return g==="debug"&&(g="log"),typeof console===n?!1:g==="trace"&&r?l:console[g]!==void 0?a(console,g):console.log!==void 0?a(console,"log"):e}function u(){for(var g=this.getLevel(),T=0;T<i.length;T++){var p=i[T];this[p]=T<g?e:this.methodFactory(p,g,this.name)}if(this.log=this.debug,typeof console===n&&g<this.levels.SILENT)return"No console available for logging"}function d(g){return function(){typeof console!==n&&(u.call(this),this[g].apply(this,arguments))}}function h(g,T,p){return c(g)||d.apply(this,arguments)}function f(g,T){var p=this,v,y,k,C="loglevel";typeof g=="string"?C+=":"+g:typeof g=="symbol"&&(C=void 0);function x(j){var V=(i[j]||"silent").toUpperCase();if(!(typeof window===n||!C)){try{window.localStorage[C]=V;return}catch{}try{window.document.cookie=encodeURIComponent(C)+"="+V+";"}catch{}}}function w(){var j;if(!(typeof window===n||!C)){try{j=window.localStorage[C]}catch{}if(typeof j===n)try{var V=window.document.cookie,oe=encodeURIComponent(C),W=V.indexOf(oe+"=");W!==-1&&(j=/^([^;]+)/.exec(V.slice(W+oe.length+1))[1])}catch{}return p.levels[j]===void 0&&(j=void 0),j}}function E(){if(!(typeof window===n||!C)){try{window.localStorage.removeItem(C)}catch{}try{window.document.cookie=encodeURIComponent(C)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function _(j){var V=j;if(typeof V=="string"&&p.levels[V.toUpperCase()]!==void 0&&(V=p.levels[V.toUpperCase()]),typeof V=="number"&&V>=0&&V<=p.levels.SILENT)return V;throw new TypeError("log.setLevel() called with invalid level: "+j)}p.name=g,p.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},p.methodFactory=T||h,p.getLevel=function(){return k??y??v},p.setLevel=function(j,V){return k=_(j),V!==!1&&x(k),u.call(p)},p.setDefaultLevel=function(j){y=_(j),w()||p.setLevel(j,!1)},p.resetLevel=function(){k=null,E(),u.call(p)},p.enableAll=function(j){p.setLevel(p.levels.TRACE,j)},p.disableAll=function(j){p.setLevel(p.levels.SILENT,j)},p.rebuild=function(){if(o!==p&&(v=_(o.getLevel())),u.call(p),o===p)for(var j in s)s[j].rebuild()},v=_(o?o.getLevel():"WARN");var R=w();R!=null&&(k=_(R)),u.call(p)}o=new f,o.getLogger=function(T){if(typeof T!="symbol"&&typeof T!="string"||T==="")throw new TypeError("You must supply a name when creating a logger.");var p=s[T];return p||(p=s[T]=new f(T,o.methodFactory)),p};var m=typeof window!==n?window.log:void 0;return o.noConflict=function(){return typeof window!==n&&window.log===o&&(window.log=m),o},o.getLoggers=function(){return s},o.default=o,o})}(Ra)),Ra.exports}var Ia=Jw(),ed;(function(t){t[t.trace=0]="trace",t[t.debug=1]="debug",t[t.info=2]="info",t[t.warn=3]="warn",t[t.error=4]="error",t[t.silent=5]="silent"})(ed||(ed={}));var zt;(function(t){t.Default="livekit",t.Room="livekit-room",t.Participant="livekit-participant",t.Track="livekit-track",t.Publication="livekit-track-publication",t.Engine="livekit-engine",t.Signal="livekit-signal",t.PCManager="livekit-pc-manager",t.PCTransport="livekit-pc-transport",t.E2EE="lk-e2ee"})(zt||(zt={}));let K=Ia.getLogger("livekit");Object.values(zt).map(t=>Ia.getLogger(t)),K.setDefaultLevel(ed.info);function yn(t){const e=Ia.getLogger(t);return e.setDefaultLevel(K.getLevel()),e}const Xw=Ia.getLogger("lk-e2ee"),Rs=7e3,eT=[0,300,2*2*300,3*3*300,4*4*300,Rs,Rs,Rs,Rs,Rs];class tT{constructor(e){this._retryDelays=e!==void 0?[...e]:eT}nextRetryDelayInMs(e){if(e.retryCount>=this._retryDelays.length)return null;const n=this._retryDelays[e.retryCount];return e.retryCount<=1?n:n+Math.random()*1e3}}function nT(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n}function S(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(u){try{c(r.next(u))}catch(d){o(d)}}function l(u){try{c(r.throw(u))}catch(d){o(d)}}function c(u){u.done?s(u.value):i(u.value).then(a,l)}c((r=r.apply(t,e||[])).next())})}function Iv(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Wn(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof Iv=="function"?Iv(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=t[s]&&function(o){return new Promise(function(a,l){o=t[s](o),i(a,l,o.done,o.value)})}}function i(s,o,a,l){Promise.resolve(l).then(function(c){s({value:c,done:a})},o)}}typeof SuppressedError=="function"&&SuppressedError;var Oa={exports:{}},Ov;function rT(){if(Ov)return Oa.exports;Ov=1;var t=typeof Reflect=="object"?Reflect:null,e=t&&typeof t.apply=="function"?t.apply:function(C,x,w){return Function.prototype.apply.call(C,x,w)},n;t&&typeof t.ownKeys=="function"?n=t.ownKeys:Object.getOwnPropertySymbols?n=function(C){return Object.getOwnPropertyNames(C).concat(Object.getOwnPropertySymbols(C))}:n=function(C){return Object.getOwnPropertyNames(C)};function r(k){console&&console.warn&&console.warn(k)}var i=Number.isNaN||function(C){return C!==C};function s(){s.init.call(this)}Oa.exports=s,Oa.exports.once=p,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var o=10;function a(k){if(typeof k!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof k)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(k){if(typeof k!="number"||k<0||i(k))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+k+".");o=k}}),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(C){if(typeof C!="number"||C<0||i(C))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+C+".");return this._maxListeners=C,this};function l(k){return k._maxListeners===void 0?s.defaultMaxListeners:k._maxListeners}s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(C){for(var x=[],w=1;w<arguments.length;w++)x.push(arguments[w]);var E=C==="error",_=this._events;if(_!==void 0)E=E&&_.error===void 0;else if(!E)return!1;if(E){var R;if(x.length>0&&(R=x[0]),R instanceof Error)throw R;var j=new Error("Unhandled error."+(R?" ("+R.message+")":""));throw j.context=R,j}var V=_[C];if(V===void 0)return!1;if(typeof V=="function")e(V,this,x);else for(var oe=V.length,W=m(V,oe),w=0;w<oe;++w)e(W[w],this,x);return!0};function c(k,C,x,w){var E,_,R;if(a(x),_=k._events,_===void 0?(_=k._events=Object.create(null),k._eventsCount=0):(_.newListener!==void 0&&(k.emit("newListener",C,x.listener?x.listener:x),_=k._events),R=_[C]),R===void 0)R=_[C]=x,++k._eventsCount;else if(typeof R=="function"?R=_[C]=w?[x,R]:[R,x]:w?R.unshift(x):R.push(x),E=l(k),E>0&&R.length>E&&!R.warned){R.warned=!0;var j=new Error("Possible EventEmitter memory leak detected. "+R.length+" "+String(C)+" listeners added. Use emitter.setMaxListeners() to increase limit");j.name="MaxListenersExceededWarning",j.emitter=k,j.type=C,j.count=R.length,r(j)}return k}s.prototype.addListener=function(C,x){return c(this,C,x,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(C,x){return c(this,C,x,!0)};function u(){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 d(k,C,x){var w={fired:!1,wrapFn:void 0,target:k,type:C,listener:x},E=u.bind(w);return E.listener=x,w.wrapFn=E,E}s.prototype.once=function(C,x){return a(x),this.on(C,d(this,C,x)),this},s.prototype.prependOnceListener=function(C,x){return a(x),this.prependListener(C,d(this,C,x)),this},s.prototype.removeListener=function(C,x){var w,E,_,R,j;if(a(x),E=this._events,E===void 0)return this;if(w=E[C],w===void 0)return this;if(w===x||w.listener===x)--this._eventsCount===0?this._events=Object.create(null):(delete E[C],E.removeListener&&this.emit("removeListener",C,w.listener||x));else if(typeof w!="function"){for(_=-1,R=w.length-1;R>=0;R--)if(w[R]===x||w[R].listener===x){j=w[R].listener,_=R;break}if(_<0)return this;_===0?w.shift():g(w,_),w.length===1&&(E[C]=w[0]),E.removeListener!==void 0&&this.emit("removeListener",C,j||x)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(C){var x,w,E;if(w=this._events,w===void 0)return this;if(w.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):w[C]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete w[C]),this;if(arguments.length===0){var _=Object.keys(w),R;for(E=0;E<_.length;++E)R=_[E],R!=="removeListener"&&this.removeAllListeners(R);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(x=w[C],typeof x=="function")this.removeListener(C,x);else if(x!==void 0)for(E=x.length-1;E>=0;E--)this.removeListener(C,x[E]);return this};function h(k,C,x){var w=k._events;if(w===void 0)return[];var E=w[C];return E===void 0?[]:typeof E=="function"?x?[E.listener||E]:[E]:x?T(E):m(E,E.length)}s.prototype.listeners=function(C){return h(this,C,!0)},s.prototype.rawListeners=function(C){return h(this,C,!1)},s.listenerCount=function(k,C){return typeof k.listenerCount=="function"?k.listenerCount(C):f.call(k,C)},s.prototype.listenerCount=f;function f(k){var C=this._events;if(C!==void 0){var x=C[k];if(typeof x=="function")return 1;if(x!==void 0)return x.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]};function m(k,C){for(var x=new Array(C),w=0;w<C;++w)x[w]=k[w];return x}function g(k,C){for(;C+1<k.length;C++)k[C]=k[C+1];k.pop()}function T(k){for(var C=new Array(k.length),x=0;x<C.length;++x)C[x]=k[x].listener||k[x];return C}function p(k,C){return new Promise(function(x,w){function E(R){k.removeListener(C,_),w(R)}function _(){typeof k.removeListener=="function"&&k.removeListener("error",E),x([].slice.call(arguments))}y(k,C,_,{once:!0}),C!=="error"&&v(k,E,{once:!0})})}function v(k,C,x){typeof k.on=="function"&&y(k,"error",C,x)}function y(k,C,x,w){if(typeof k.on=="function")w.once?k.once(C,x):k.on(C,x);else if(typeof k.addEventListener=="function")k.addEventListener(C,function E(_){w.once&&k.removeEventListener(C,E),x(_)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof k)}return Oa.exports}var nn=rT();let Lv=!0,Mv=!0;function La(t,e,n){const r=t.match(e);return r&&r.length>=n&&parseInt(r[n],10)}function xr(t,e,n){if(!t.RTCPeerConnection)return;const r=t.RTCPeerConnection.prototype,i=r.addEventListener;r.addEventListener=function(o,a){if(o!==e)return i.apply(this,arguments);const l=c=>{const u=n(c);u&&(a.handleEvent?a.handleEvent(u):a(u))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(a,l),i.apply(this,[o,l])};const s=r.removeEventListener;r.removeEventListener=function(o,a){if(o!==e||!this._eventMap||!this._eventMap[e])return s.apply(this,arguments);if(!this._eventMap[e].has(a))return s.apply(this,arguments);const l=this._eventMap[e].get(a);return this._eventMap[e].delete(a),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,s.apply(this,[o,l])},Object.defineProperty(r,"on"+e,{get(){return this["_on"+e]},set(o){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),o&&this.addEventListener(e,this["_on"+e]=o)},enumerable:!0,configurable:!0})}function iT(t){return typeof t!="boolean"?new Error("Argument type: "+typeof t+". Please use a boolean."):(Lv=t,t?"adapter.js logging disabled":"adapter.js logging enabled")}function sT(t){return typeof t!="boolean"?new Error("Argument type: "+typeof t+". Please use a boolean."):(Mv=!t,"adapter.js deprecation warnings "+(t?"disabled":"enabled"))}function Nv(){if(typeof window=="object"){if(Lv)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function td(t,e){Mv&&console.warn(t+" is deprecated, please use "+e+" instead.")}function oT(t){const e={browser:null,version:null};if(typeof t>"u"||!t.navigator||!t.navigator.userAgent)return e.browser="Not a browser.",e;const{navigator:n}=t;if(n.userAgentData&&n.userAgentData.brands){const r=n.userAgentData.brands.find(i=>i.brand==="Chromium");if(r)return{browser:"chrome",version:parseInt(r.version,10)}}if(n.mozGetUserMedia)e.browser="firefox",e.version=La(n.userAgent,/Firefox\/(\d+)\./,1);else if(n.webkitGetUserMedia||t.isSecureContext===!1&&t.webkitRTCPeerConnection)e.browser="chrome",e.version=La(n.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(t.RTCPeerConnection&&n.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=La(n.userAgent,/AppleWebKit\/(\d+)\./,1),e.supportsUnifiedPlan=t.RTCRtpTransceiver&&"currentDirection"in t.RTCRtpTransceiver.prototype;else return e.browser="Not a supported browser.",e;return e}function Dv(t){return Object.prototype.toString.call(t)==="[object Object]"}function Av(t){return Dv(t)?Object.keys(t).reduce(function(e,n){const r=Dv(t[n]),i=r?Av(t[n]):t[n],s=r&&!Object.keys(i).length;return i===void 0||s?e:Object.assign(e,{[n]:i})},{}):t}function nd(t,e,n){!e||n.has(e.id)||(n.set(e.id,e),Object.keys(e).forEach(r=>{r.endsWith("Id")?nd(t,t.get(e[r]),n):r.endsWith("Ids")&&e[r].forEach(i=>{nd(t,t.get(i),n)})}))}function jv(t,e,n){const r=n?"outbound-rtp":"inbound-rtp",i=new Map;if(e===null)return i;const s=[];return t.forEach(o=>{o.type==="track"&&o.trackIdentifier===e.id&&s.push(o)}),s.forEach(o=>{t.forEach(a=>{a.type===r&&a.trackId===o.id&&nd(t,a,i)})}),i}const Uv=Nv;function Fv(t,e){const n=t&&t.navigator;if(!n.mediaDevices)return;const r=function(a){if(typeof a!="object"||a.mandatory||a.optional)return a;const l={};return Object.keys(a).forEach(c=>{if(c==="require"||c==="advanced"||c==="mediaSource")return;const u=typeof a[c]=="object"?a[c]:{ideal:a[c]};u.exact!==void 0&&typeof u.exact=="number"&&(u.min=u.max=u.exact);const d=function(h,f){return h?h+f.charAt(0).toUpperCase()+f.slice(1):f==="deviceId"?"sourceId":f};if(u.ideal!==void 0){l.optional=l.optional||[];let h={};typeof u.ideal=="number"?(h[d("min",c)]=u.ideal,l.optional.push(h),h={},h[d("max",c)]=u.ideal,l.optional.push(h)):(h[d("",c)]=u.ideal,l.optional.push(h))}u.exact!==void 0&&typeof u.exact!="number"?(l.mandatory=l.mandatory||{},l.mandatory[d("",c)]=u.exact):["min","max"].forEach(h=>{u[h]!==void 0&&(l.mandatory=l.mandatory||{},l.mandatory[d(h,c)]=u[h])})}),a.advanced&&(l.optional=(l.optional||[]).concat(a.advanced)),l},i=function(a,l){if(e.version>=61)return l(a);if(a=JSON.parse(JSON.stringify(a)),a&&typeof a.audio=="object"){const c=function(u,d,h){d in u&&!(h in u)&&(u[h]=u[d],delete u[d])};a=JSON.parse(JSON.stringify(a)),c(a.audio,"autoGainControl","googAutoGainControl"),c(a.audio,"noiseSuppression","googNoiseSuppression"),a.audio=r(a.audio)}if(a&&typeof a.video=="object"){let c=a.video.facingMode;c=c&&(typeof c=="object"?c:{ideal:c});const u=e.version<66;if(c&&(c.exact==="user"||c.exact==="environment"||c.ideal==="user"||c.ideal==="environment")&&!(n.mediaDevices.getSupportedConstraints&&n.mediaDevices.getSupportedConstraints().facingMode&&!u)){delete a.video.facingMode;let d;if(c.exact==="environment"||c.ideal==="environment"?d=["back","rear"]:(c.exact==="user"||c.ideal==="user")&&(d=["front"]),d)return n.mediaDevices.enumerateDevices().then(h=>{h=h.filter(m=>m.kind==="videoinput");let f=h.find(m=>d.some(g=>m.label.toLowerCase().includes(g)));return!f&&h.length&&d.includes("back")&&(f=h[h.length-1]),f&&(a.video.deviceId=c.exact?{exact:f.deviceId}:{ideal:f.deviceId}),a.video=r(a.video),Uv("chrome: "+JSON.stringify(a)),l(a)})}a.video=r(a.video)}return Uv("chrome: "+JSON.stringify(a)),l(a)},s=function(a){return e.version>=64?a:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[a.name]||a.name,message:a.message,constraint:a.constraint||a.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},o=function(a,l,c){i(a,u=>{n.webkitGetUserMedia(u,l,d=>{c&&c(s(d))})})};if(n.getUserMedia=o.bind(n),n.mediaDevices.getUserMedia){const a=n.mediaDevices.getUserMedia.bind(n.mediaDevices);n.mediaDevices.getUserMedia=function(l){return i(l,c=>a(c).then(u=>{if(c.audio&&!u.getAudioTracks().length||c.video&&!u.getVideoTracks().length)throw u.getTracks().forEach(d=>{d.stop()}),new DOMException("","NotFoundError");return u},u=>Promise.reject(s(u))))}}}function Bv(t){t.MediaStream=t.MediaStream||t.webkitMediaStream}function zv(t){if(typeof t=="object"&&t.RTCPeerConnection&&!("ontrack"in t.RTCPeerConnection.prototype)){Object.defineProperty(t.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(n){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=n)},enumerable:!0,configurable:!0});const e=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=r=>{r.stream.addEventListener("addtrack",i=>{let s;t.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(a=>a.track&&a.track.id===i.track.id):s={track:i.track};const o=new Event("track");o.track=i.track,o.receiver=s,o.transceiver={receiver:s},o.streams=[r.stream],this.dispatchEvent(o)}),r.stream.getTracks().forEach(i=>{let s;t.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(a=>a.track&&a.track.id===i.id):s={track:i};const o=new Event("track");o.track=i,o.receiver=s,o.transceiver={receiver:s},o.streams=[r.stream],this.dispatchEvent(o)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else xr(t,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function Vv(t){if(typeof t=="object"&&t.RTCPeerConnection&&!("getSenders"in t.RTCPeerConnection.prototype)&&"createDTMFSender"in t.RTCPeerConnection.prototype){const e=function(i,s){return{track:s,get dtmf(){return this._dtmf===void 0&&(s.kind==="audio"?this._dtmf=i.createDTMFSender(s):this._dtmf=null),this._dtmf},_pc:i}};if(!t.RTCPeerConnection.prototype.getSenders){t.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const i=t.RTCPeerConnection.prototype.addTrack;t.RTCPeerConnection.prototype.addTrack=function(a,l){let c=i.apply(this,arguments);return c||(c=e(this,a),this._senders.push(c)),c};const s=t.RTCPeerConnection.prototype.removeTrack;t.RTCPeerConnection.prototype.removeTrack=function(a){s.apply(this,arguments);const l=this._senders.indexOf(a);l!==-1&&this._senders.splice(l,1)}}const n=t.RTCPeerConnection.prototype.addStream;t.RTCPeerConnection.prototype.addStream=function(s){this._senders=this._senders||[],n.apply(this,[s]),s.getTracks().forEach(o=>{this._senders.push(e(this,o))})};const r=t.RTCPeerConnection.prototype.removeStream;t.RTCPeerConnection.prototype.removeStream=function(s){this._senders=this._senders||[],r.apply(this,[s]),s.getTracks().forEach(o=>{const a=this._senders.find(l=>l.track===o);a&&this._senders.splice(this._senders.indexOf(a),1)})}}else if(typeof t=="object"&&t.RTCPeerConnection&&"getSenders"in t.RTCPeerConnection.prototype&&"createDTMFSender"in t.RTCPeerConnection.prototype&&t.RTCRtpSender&&!("dtmf"in t.RTCRtpSender.prototype)){const e=t.RTCPeerConnection.prototype.getSenders;t.RTCPeerConnection.prototype.getSenders=function(){const r=e.apply(this,[]);return r.forEach(i=>i._pc=this),r},Object.defineProperty(t.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function Hv(t){if(!(typeof t=="object"&&t.RTCPeerConnection&&t.RTCRtpSender&&t.RTCRtpReceiver))return;if(!("getStats"in t.RTCRtpSender.prototype)){const n=t.RTCPeerConnection.prototype.getSenders;n&&(t.RTCPeerConnection.prototype.getSenders=function(){const s=n.apply(this,[]);return s.forEach(o=>o._pc=this),s});const r=t.RTCPeerConnection.prototype.addTrack;r&&(t.RTCPeerConnection.prototype.addTrack=function(){const s=r.apply(this,arguments);return s._pc=this,s}),t.RTCRtpSender.prototype.getStats=function(){const s=this;return this._pc.getStats().then(o=>jv(o,s.track,!0))}}if(!("getStats"in t.RTCRtpReceiver.prototype)){const n=t.RTCPeerConnection.prototype.getReceivers;n&&(t.RTCPeerConnection.prototype.getReceivers=function(){const i=n.apply(this,[]);return i.forEach(s=>s._pc=this),i}),xr(t,"track",r=>(r.receiver._pc=r.srcElement,r)),t.RTCRtpReceiver.prototype.getStats=function(){const i=this;return this._pc.getStats().then(s=>jv(s,i.track,!1))}}if(!("getStats"in t.RTCRtpSender.prototype&&"getStats"in t.RTCRtpReceiver.prototype))return;const e=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof t.MediaStreamTrack){const r=arguments[0];let i,s,o;return this.getSenders().forEach(a=>{a.track===r&&(i?o=!0:i=a)}),this.getReceivers().forEach(a=>(a.track===r&&(s?o=!0:s=a),a.track===r)),o||i&&s?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):i?i.getStats():s?s.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function $v(t){t.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(o=>this._shimmedLocalStreams[o][0])};const e=t.RTCPeerConnection.prototype.addTrack;t.RTCPeerConnection.prototype.addTrack=function(o,a){if(!a)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const l=e.apply(this,arguments);return this._shimmedLocalStreams[a.id]?this._shimmedLocalStreams[a.id].indexOf(l)===-1&&this._shimmedLocalStreams[a.id].push(l):this._shimmedLocalStreams[a.id]=[a,l],l};const n=t.RTCPeerConnection.prototype.addStream;t.RTCPeerConnection.prototype.addStream=function(o){this._shimmedLocalStreams=this._shimmedLocalStreams||{},o.getTracks().forEach(c=>{if(this.getSenders().find(d=>d.track===c))throw new DOMException("Track already exists.","InvalidAccessError")});const a=this.getSenders();n.apply(this,arguments);const l=this.getSenders().filter(c=>a.indexOf(c)===-1);this._shimmedLocalStreams[o.id]=[o].concat(l)};const r=t.RTCPeerConnection.prototype.removeStream;t.RTCPeerConnection.prototype.removeStream=function(o){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[o.id],r.apply(this,arguments)};const i=t.RTCPeerConnection.prototype.removeTrack;t.RTCPeerConnection.prototype.removeTrack=function(o){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},o&&Object.keys(this._shimmedLocalStreams).forEach(a=>{const l=this._shimmedLocalStreams[a].indexOf(o);l!==-1&&this._shimmedLocalStreams[a].splice(l,1),this._shimmedLocalStreams[a].length===1&&delete this._shimmedLocalStreams[a]}),i.apply(this,arguments)}}function qv(t,e){if(!t.RTCPeerConnection)return;if(t.RTCPeerConnection.prototype.addTrack&&e.version>=65)return $v(t);const n=t.RTCPeerConnection.prototype.getLocalStreams;t.RTCPeerConnection.prototype.getLocalStreams=function(){const u=n.apply(this);return this._reverseStreams=this._reverseStreams||{},u.map(d=>this._reverseStreams[d.id])};const r=t.RTCPeerConnection.prototype.addStream;t.RTCPeerConnection.prototype.addStream=function(u){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},u.getTracks().forEach(d=>{if(this.getSenders().find(f=>f.track===d))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[u.id]){const d=new t.MediaStream(u.getTracks());this._streams[u.id]=d,this._reverseStreams[d.id]=u,u=d}r.apply(this,[u])};const i=t.RTCPeerConnection.prototype.removeStream;t.RTCPeerConnection.prototype.removeStream=function(u){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},i.apply(this,[this._streams[u.id]||u]),delete this._reverseStreams[this._streams[u.id]?this._streams[u.id].id:u.id],delete this._streams[u.id]},t.RTCPeerConnection.prototype.addTrack=function(u,d){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const h=[].slice.call(arguments,1);if(h.length!==1||!h[0].getTracks().find(g=>g===u))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(g=>g.track===u))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const m=this._streams[d.id];if(m)m.addTrack(u),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const g=new t.MediaStream([u]);this._streams[d.id]=g,this._reverseStreams[g.id]=d,this.addStream(g)}return this.getSenders().find(g=>g.track===u)};function s(c,u){let d=u.sdp;return Object.keys(c._reverseStreams||[]).forEach(h=>{const f=c._reverseStreams[h],m=c._streams[f.id];d=d.replace(new RegExp(m.id,"g"),f.id)}),new RTCSessionDescription({type:u.type,sdp:d})}function o(c,u){let d=u.sdp;return Object.keys(c._reverseStreams||[]).forEach(h=>{const f=c._reverseStreams[h],m=c._streams[f.id];d=d.replace(new RegExp(f.id,"g"),m.id)}),new RTCSessionDescription({type:u.type,sdp:d})}["createOffer","createAnswer"].forEach(function(c){const u=t.RTCPeerConnection.prototype[c],d={[c](){const h=arguments;return arguments.length&&typeof arguments[0]=="function"?u.apply(this,[m=>{const g=s(this,m);h[0].apply(null,[g])},m=>{h[1]&&h[1].apply(null,m)},arguments[2]]):u.apply(this,arguments).then(m=>s(this,m))}};t.RTCPeerConnection.prototype[c]=d[c]});const a=t.RTCPeerConnection.prototype.setLocalDescription;t.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?a.apply(this,arguments):(arguments[0]=o(this,arguments[0]),a.apply(this,arguments))};const l=Object.getOwnPropertyDescriptor(t.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(t.RTCPeerConnection.prototype,"localDescription",{get(){const c=l.get.apply(this);return c.type===""?c:s(this,c)}}),t.RTCPeerConnection.prototype.removeTrack=function(u){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!u._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(u._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let h;Object.keys(this._streams).forEach(f=>{this._streams[f].getTracks().find(g=>u.track===g)&&(h=this._streams[f])}),h&&(h.getTracks().length===1?this.removeStream(this._reverseStreams[h.id]):h.removeTrack(u.track),this.dispatchEvent(new Event("negotiationneeded")))}}function rd(t,e){!t.RTCPeerConnection&&t.webkitRTCPeerConnection&&(t.RTCPeerConnection=t.webkitRTCPeerConnection),t.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(n){const r=t.RTCPeerConnection.prototype[n],i={[n](){return arguments[0]=new(n==="addIceCandidate"?t.RTCIceCandidate:t.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};t.RTCPeerConnection.prototype[n]=i[n]})}function Wv(t,e){xr(t,"negotiationneeded",n=>{const r=n.target;if(!((e.version<72||r.getConfiguration&&r.getConfiguration().sdpSemantics==="plan-b")&&r.signalingState!=="stable"))return n})}var Gv=Object.freeze({__proto__:null,fixNegotiationNeeded:Wv,shimAddTrackRemoveTrack:qv,shimAddTrackRemoveTrackWithNative:$v,shimGetSendersWithDtmf:Vv,shimGetUserMedia:Fv,shimMediaStream:Bv,shimOnTrack:zv,shimPeerConnection:rd,shimSenderReceiverGetStats:Hv});function Kv(t,e){const n=t&&t.navigator,r=t&&t.MediaStreamTrack;if(n.getUserMedia=function(i,s,o){td("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),n.mediaDevices.getUserMedia(i).then(s,o)},!(e.version>55&&"autoGainControl"in n.mediaDevices.getSupportedConstraints())){const i=function(o,a,l){a in o&&!(l in o)&&(o[l]=o[a],delete o[a])},s=n.mediaDevices.getUserMedia.bind(n.mediaDevices);if(n.mediaDevices.getUserMedia=function(o){return typeof o=="object"&&typeof o.audio=="object"&&(o=JSON.parse(JSON.stringify(o)),i(o.audio,"autoGainControl","mozAutoGainControl"),i(o.audio,"noiseSuppression","mozNoiseSuppression")),s(o)},r&&r.prototype.getSettings){const o=r.prototype.getSettings;r.prototype.getSettings=function(){const a=o.apply(this,arguments);return i(a,"mozAutoGainControl","autoGainControl"),i(a,"mozNoiseSuppression","noiseSuppression"),a}}if(r&&r.prototype.applyConstraints){const o=r.prototype.applyConstraints;r.prototype.applyConstraints=function(a){return this.kind==="audio"&&typeof a=="object"&&(a=JSON.parse(JSON.stringify(a)),i(a,"autoGainControl","mozAutoGainControl"),i(a,"noiseSuppression","mozNoiseSuppression")),o.apply(this,[a])}}}}function aT(t,e){t.navigator.mediaDevices&&"getDisplayMedia"in t.navigator.mediaDevices||t.navigator.mediaDevices&&(t.navigator.mediaDevices.getDisplayMedia=function(r){if(!(r&&r.video)){const i=new DOMException("getDisplayMedia without video constraints is undefined");return i.name="NotFoundError",i.code=8,Promise.reject(i)}return r.video===!0?r.video={mediaSource:e}:r.video.mediaSource=e,t.navigator.mediaDevices.getUserMedia(r)})}function Zv(t){typeof t=="object"&&t.RTCTrackEvent&&"receiver"in t.RTCTrackEvent.prototype&&!("transceiver"in t.RTCTrackEvent.prototype)&&Object.defineProperty(t.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function id(t,e){if(typeof t!="object"||!(t.RTCPeerConnection||t.mozRTCPeerConnection))return;!t.RTCPeerConnection&&t.mozRTCPeerConnection&&(t.RTCPeerConnection=t.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(i){const s=t.RTCPeerConnection.prototype[i],o={[i](){return arguments[0]=new(i==="addIceCandidate"?t.RTCIceCandidate:t.RTCSessionDescription)(arguments[0]),s.apply(this,arguments)}};t.RTCPeerConnection.prototype[i]=o[i]});const n={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){const[s,o,a]=arguments;return r.apply(this,[s||null]).then(l=>{if(e.version<53&&!o)try{l.forEach(c=>{c.type=n[c.type]||c.type})}catch(c){if(c.name!=="TypeError")throw c;l.forEach((u,d)=>{l.set(d,Object.assign({},u,{type:n[u.type]||u.type}))})}return l}).then(o,a)}}function Qv(t){if(!(typeof t=="object"&&t.RTCPeerConnection&&t.RTCRtpSender)||t.RTCRtpSender&&"getStats"in t.RTCRtpSender.prototype)return;const e=t.RTCPeerConnection.prototype.getSenders;e&&(t.RTCPeerConnection.prototype.getSenders=function(){const i=e.apply(this,[]);return i.forEach(s=>s._pc=this),i});const n=t.RTCPeerConnection.prototype.addTrack;n&&(t.RTCPeerConnection.prototype.addTrack=function(){const i=n.apply(this,arguments);return i._pc=this,i}),t.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function Yv(t){if(!(typeof t=="object"&&t.RTCPeerConnection&&t.RTCRtpSender)||t.RTCRtpSender&&"getStats"in t.RTCRtpReceiver.prototype)return;const e=t.RTCPeerConnection.prototype.getReceivers;e&&(t.RTCPeerConnection.prototype.getReceivers=function(){const r=e.apply(this,[]);return r.forEach(i=>i._pc=this),r}),xr(t,"track",n=>(n.receiver._pc=n.srcElement,n)),t.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function Jv(t){!t.RTCPeerConnection||"removeStream"in t.RTCPeerConnection.prototype||(t.RTCPeerConnection.prototype.removeStream=function(n){td("removeStream","removeTrack"),this.getSenders().forEach(r=>{r.track&&n.getTracks().includes(r.track)&&this.removeTrack(r)})})}function Xv(t){t.DataChannel&&!t.RTCDataChannel&&(t.RTCDataChannel=t.DataChannel)}function e0(t){if(!(typeof t=="object"&&t.RTCPeerConnection))return;const e=t.RTCPeerConnection.prototype.addTransceiver;e&&(t.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let r=arguments[1]&&arguments[1].sendEncodings;r===void 0&&(r=[]),r=[...r];const i=r.length>0;i&&r.forEach(o=>{if("rid"in o&&!/^[a-z0-9]{0,16}$/i.test(o.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in o&&!(parseFloat(o.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in o&&!(parseFloat(o.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const s=e.apply(this,arguments);if(i){const{sender:o}=s,a=o.getParameters();(!("encodings"in a)||a.encodings.length===1&&Object.keys(a.encodings[0]).length===0)&&(a.encodings=r,o.sendEncodings=r,this.setParametersPromises.push(o.setParameters(a).then(()=>{delete o.sendEncodings}).catch(()=>{delete o.sendEncodings})))}return s})}function t0(t){if(!(typeof t=="object"&&t.RTCRtpSender))return;const e=t.RTCRtpSender.prototype.getParameters;e&&(t.RTCRtpSender.prototype.getParameters=function(){const r=e.apply(this,arguments);return"encodings"in r||(r.encodings=[].concat(this.sendEncodings||[{}])),r})}function n0(t){if(!(typeof t=="object"&&t.RTCPeerConnection))return;const e=t.RTCPeerConnection.prototype.createOffer;t.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}function r0(t){if(!(typeof t=="object"&&t.RTCPeerConnection))return;const e=t.RTCPeerConnection.prototype.createAnswer;t.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}var i0=Object.freeze({__proto__:null,shimAddTransceiver:e0,shimCreateAnswer:r0,shimCreateOffer:n0,shimGetDisplayMedia:aT,shimGetParameters:t0,shimGetUserMedia:Kv,shimOnTrack:Zv,shimPeerConnection:id,shimRTCDataChannel:Xv,shimReceiverGetStats:Yv,shimRemoveStream:Jv,shimSenderGetStats:Qv});function s0(t){if(!(typeof t!="object"||!t.RTCPeerConnection)){if("getLocalStreams"in t.RTCPeerConnection.prototype||(t.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in t.RTCPeerConnection.prototype)){const e=t.RTCPeerConnection.prototype.addTrack;t.RTCPeerConnection.prototype.addStream=function(r){this._localStreams||(this._localStreams=[]),this._localStreams.includes(r)||this._localStreams.push(r),r.getAudioTracks().forEach(i=>e.call(this,i,r)),r.getVideoTracks().forEach(i=>e.call(this,i,r))},t.RTCPeerConnection.prototype.addTrack=function(r){for(var i=arguments.length,s=new Array(i>1?i-1:0),o=1;o<i;o++)s[o-1]=arguments[o];return s&&s.forEach(a=>{this._localStreams?this._localStreams.includes(a)||this._localStreams.push(a):this._localStreams=[a]}),e.apply(this,arguments)}}"removeStream"in t.RTCPeerConnection.prototype||(t.RTCPeerConnection.prototype.removeStream=function(n){this._localStreams||(this._localStreams=[]);const r=this._localStreams.indexOf(n);if(r===-1)return;this._localStreams.splice(r,1);const i=n.getTracks();this.getSenders().forEach(s=>{i.includes(s.track)&&this.removeTrack(s)})})}}function o0(t){if(!(typeof t!="object"||!t.RTCPeerConnection)&&("getRemoteStreams"in t.RTCPeerConnection.prototype||(t.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in t.RTCPeerConnection.prototype))){Object.defineProperty(t.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(n){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=n),this.addEventListener("track",this._onaddstreampoly=r=>{r.streams.forEach(i=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(i))return;this._remoteStreams.push(i);const s=new Event("addstream");s.stream=i,this.dispatchEvent(s)})})}});const e=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){const r=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(i){i.streams.forEach(s=>{if(r._remoteStreams||(r._remoteStreams=[]),r._remoteStreams.indexOf(s)>=0)return;r._remoteStreams.push(s);const o=new Event("addstream");o.stream=s,r.dispatchEvent(o)})}),e.apply(r,arguments)}}}function a0(t){if(typeof t!="object"||!t.RTCPeerConnection)return;const e=t.RTCPeerConnection.prototype,n=e.createOffer,r=e.createAnswer,i=e.setLocalDescription,s=e.setRemoteDescription,o=e.addIceCandidate;e.createOffer=function(c,u){const d=arguments.length>=2?arguments[2]:arguments[0],h=n.apply(this,[d]);return u?(h.then(c,u),Promise.resolve()):h},e.createAnswer=function(c,u){const d=arguments.length>=2?arguments[2]:arguments[0],h=r.apply(this,[d]);return u?(h.then(c,u),Promise.resolve()):h};let a=function(l,c,u){const d=i.apply(this,[l]);return u?(d.then(c,u),Promise.resolve()):d};e.setLocalDescription=a,a=function(l,c,u){const d=s.apply(this,[l]);return u?(d.then(c,u),Promise.resolve()):d},e.setRemoteDescription=a,a=function(l,c,u){const d=o.apply(this,[l]);return u?(d.then(c,u),Promise.resolve()):d},e.addIceCandidate=a}function l0(t){const e=t&&t.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){const n=e.mediaDevices,r=n.getUserMedia.bind(n);e.mediaDevices.getUserMedia=i=>r(c0(i))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(r,i,s){e.mediaDevices.getUserMedia(r).then(i,s)}).bind(e))}function c0(t){return t&&t.video!==void 0?Object.assign({},t,{video:Av(t.video)}):t}function u0(t){if(!t.RTCPeerConnection)return;const e=t.RTCPeerConnection;t.RTCPeerConnection=function(r,i){if(r&&r.iceServers){const s=[];for(let o=0;o<r.iceServers.length;o++){let a=r.iceServers[o];a.urls===void 0&&a.url?(td("RTCIceServer.url","RTCIceServer.urls"),a=JSON.parse(JSON.stringify(a)),a.urls=a.url,delete a.url,s.push(a)):s.push(r.iceServers[o])}r.iceServers=s}return new e(r,i)},t.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(t.RTCPeerConnection,"generateCertificate",{get(){return e.generateCertificate}})}function d0(t){typeof t=="object"&&t.RTCTrackEvent&&"receiver"in t.RTCTrackEvent.prototype&&!("transceiver"in t.RTCTrackEvent.prototype)&&Object.defineProperty(t.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function h0(t){const e=t.RTCPeerConnection.prototype.createOffer;t.RTCPeerConnection.prototype.createOffer=function(r){if(r){typeof r.offerToReceiveAudio<"u"&&(r.offerToReceiveAudio=!!r.offerToReceiveAudio);const i=this.getTransceivers().find(o=>o.receiver.track.kind==="audio");r.offerToReceiveAudio===!1&&i?i.direction==="sendrecv"?i.setDirection?i.setDirection("sendonly"):i.direction="sendonly":i.direction==="recvonly"&&(i.setDirection?i.setDirection("inactive"):i.direction="inactive"):r.offerToReceiveAudio===!0&&!i&&this.addTransceiver("audio",{direction:"recvonly"}),typeof r.offerToReceiveVideo<"u"&&(r.offerToReceiveVideo=!!r.offerToReceiveVideo);const s=this.getTransceivers().find(o=>o.receiver.track.kind==="video");r.offerToReceiveVideo===!1&&s?s.direction==="sendrecv"?s.setDirection?s.setDirection("sendonly"):s.direction="sendonly":s.direction==="recvonly"&&(s.setDirection?s.setDirection("inactive"):s.direction="inactive"):r.offerToReceiveVideo===!0&&!s&&this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function f0(t){typeof t!="object"||t.AudioContext||(t.AudioContext=t.webkitAudioContext)}var p0=Object.freeze({__proto__:null,shimAudioContext:f0,shimCallbacksAPI:a0,shimConstraints:c0,shimCreateOfferLegacy:h0,shimGetUserMedia:l0,shimLocalStreamsAPI:s0,shimRTCIceServerUrls:u0,shimRemoteStreamsAPI:o0,shimTrackEventTransceiver:d0}),sd={exports:{}},m0;function lT(){return m0||(m0=1,function(t){const e={};e.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},e.localCName=e.generateIdentifier(),e.splitLines=function(n){return n.trim().split(`
|
|
62
62
|
`).map(r=>r.trim())},e.splitSections=function(n){return n.split(`
|
|
63
63
|
m=`).map((i,s)=>(s>0?"m="+i:i).trim()+`\r
|
|
@@ -92,12 +92,12 @@ t=0 0\r
|
|
|
92
92
|
`},e.getDirection=function(n,r){const i=e.splitLines(n);for(let s=0;s<i.length;s++)switch(i[s]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return i[s].substring(2)}return r?e.getDirection(r):"sendrecv"},e.getKind=function(n){return e.splitLines(n)[0].split(" ")[0].substring(2)},e.isRejected=function(n){return n.split(" ",2)[1]==="0"},e.parseMLine=function(n){const i=e.splitLines(n)[0].substring(2).split(" ");return{kind:i[0],port:parseInt(i[1],10),protocol:i[2],fmt:i.slice(3).join(" ")}},e.parseOLine=function(n){const i=e.matchPrefix(n,"o=")[0].substring(2).split(" ");return{username:i[0],sessionId:i[1],sessionVersion:parseInt(i[2],10),netType:i[3],addressType:i[4],address:i[5]}},e.isValidSDP=function(n){if(typeof n!="string"||n.length===0)return!1;const r=e.splitLines(n);for(let i=0;i<r.length;i++)if(r[i].length<2||r[i].charAt(1)!=="=")return!1;return!0},t.exports=e}(sd)),sd.exports}var g0=lT(),ki=Qw(g0),cT=SS({__proto__:null,default:ki},[g0]);function Ma(t){if(!t.RTCIceCandidate||t.RTCIceCandidate&&"foundation"in t.RTCIceCandidate.prototype)return;const e=t.RTCIceCandidate;t.RTCIceCandidate=function(r){if(typeof r=="object"&&r.candidate&&r.candidate.indexOf("a=")===0&&(r=JSON.parse(JSON.stringify(r)),r.candidate=r.candidate.substring(2)),r.candidate&&r.candidate.length){const i=new e(r),s=ki.parseCandidate(r.candidate);for(const o in s)o in i||Object.defineProperty(i,o,{value:s[o]});return i.toJSON=function(){return{candidate:i.candidate,sdpMid:i.sdpMid,sdpMLineIndex:i.sdpMLineIndex,usernameFragment:i.usernameFragment}},i}return new e(r)},t.RTCIceCandidate.prototype=e.prototype,xr(t,"icecandidate",n=>(n.candidate&&Object.defineProperty(n,"candidate",{value:new t.RTCIceCandidate(n.candidate),writable:"false"}),n))}function od(t){!t.RTCIceCandidate||t.RTCIceCandidate&&"relayProtocol"in t.RTCIceCandidate.prototype||xr(t,"icecandidate",e=>{if(e.candidate){const n=ki.parseCandidate(e.candidate.candidate);n.type==="relay"&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[n.priority>>24])}return e})}function Na(t,e){if(!t.RTCPeerConnection)return;"sctp"in t.RTCPeerConnection.prototype||Object.defineProperty(t.RTCPeerConnection.prototype,"sctp",{get(){return typeof this._sctp>"u"?null:this._sctp}});const n=function(a){if(!a||!a.sdp)return!1;const l=ki.splitSections(a.sdp);return l.shift(),l.some(c=>{const u=ki.parseMLine(c);return u&&u.kind==="application"&&u.protocol.indexOf("SCTP")!==-1})},r=function(a){const l=a.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(l===null||l.length<2)return-1;const c=parseInt(l[1],10);return c!==c?-1:c},i=function(a){let l=65536;return e.browser==="firefox"&&(e.version<57?a===-1?l=16384:l=2147483637:e.version<60?l=e.version===57?65535:65536:l=2147483637),l},s=function(a,l){let c=65536;e.browser==="firefox"&&e.version===57&&(c=65535);const u=ki.matchPrefix(a.sdp,"a=max-message-size:");return u.length>0?c=parseInt(u[0].substring(19),10):e.browser==="firefox"&&l!==-1&&(c=2147483637),c},o=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,e.browser==="chrome"&&e.version>=76){const{sdpSemantics:l}=this.getConfiguration();l==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return typeof this._sctp>"u"?null:this._sctp},enumerable:!0,configurable:!0})}if(n(arguments[0])){const l=r(arguments[0]),c=i(l),u=s(arguments[0],l);let d;c===0&&u===0?d=Number.POSITIVE_INFINITY:c===0||u===0?d=Math.max(c,u):d=Math.min(c,u);const h={};Object.defineProperty(h,"maxMessageSize",{get(){return d}}),this._sctp=h}return o.apply(this,arguments)}}function Da(t){if(!(t.RTCPeerConnection&&"createDataChannel"in t.RTCPeerConnection.prototype))return;function e(r,i){const s=r.send;r.send=function(){const a=arguments[0],l=a.length||a.size||a.byteLength;if(r.readyState==="open"&&i.sctp&&l>i.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+i.sctp.maxMessageSize+" bytes)");return s.apply(r,arguments)}}const n=t.RTCPeerConnection.prototype.createDataChannel;t.RTCPeerConnection.prototype.createDataChannel=function(){const i=n.apply(this,arguments);return e(i,this),i},xr(t,"datachannel",r=>(e(r.channel,r.target),r))}function ad(t){if(!t.RTCPeerConnection||"connectionState"in t.RTCPeerConnection.prototype)return;const e=t.RTCPeerConnection.prototype;Object.defineProperty(e,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(e,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(n){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),n&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=n)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(n=>{const r=e[n];e[n]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=i=>{const s=i.target;if(s._lastConnectionState!==s.connectionState){s._lastConnectionState=s.connectionState;const o=new Event("connectionstatechange",i);s.dispatchEvent(o)}return i},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),r.apply(this,arguments)}})}function ld(t,e){if(!t.RTCPeerConnection||e.browser==="chrome"&&e.version>=71||e.browser==="safari"&&e.version>=605)return;const n=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(i){if(i&&i.sdp&&i.sdp.indexOf(`
|
|
93
93
|
a=extmap-allow-mixed`)!==-1){const s=i.sdp.split(`
|
|
94
94
|
`).filter(o=>o.trim()!=="a=extmap-allow-mixed").join(`
|
|
95
|
-
`);t.RTCSessionDescription&&i instanceof t.RTCSessionDescription?arguments[0]=new t.RTCSessionDescription({type:i.type,sdp:s}):i.sdp=s}return n.apply(this,arguments)}}function Aa(t,e){if(!(t.RTCPeerConnection&&t.RTCPeerConnection.prototype))return;const n=t.RTCPeerConnection.prototype.addIceCandidate;!n||n.length===0||(t.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(e.browser==="chrome"&&e.version<78||e.browser==="firefox"&&e.version<68||e.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function ja(t,e){if(!(t.RTCPeerConnection&&t.RTCPeerConnection.prototype))return;const n=t.RTCPeerConnection.prototype.setLocalDescription;!n||n.length===0||(t.RTCPeerConnection.prototype.setLocalDescription=function(){let i=arguments[0]||{};if(typeof i!="object"||i.type&&i.sdp)return n.apply(this,arguments);if(i={type:i.type,sdp:i.sdp},!i.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":i.type="offer";break;default:i.type="answer";break}return i.sdp||i.type!=="offer"&&i.type!=="answer"?n.apply(this,[i]):(i.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(o=>n.apply(this,[o]))})}var uT=Object.freeze({__proto__:null,removeExtmapAllowMixed:ld,shimAddIceCandidateNullOrEmpty:Aa,shimConnectionState:ad,shimMaxMessageSize:Na,shimParameterlessSetLocalDescription:ja,shimRTCIceCandidate:Ma,shimRTCIceCandidateRelayProtocol:od,shimSendThrowTypeError:Da});function dT(){let{window:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0};const n=Nv,r=oT(t),i={browserDetails:r,commonShim:uT,extractVersion:La,disableLog:iT,disableWarnings:sT,sdp:cT};switch(r.browser){case"chrome":if(!Gv||!rd||!e.shimChrome)return n("Chrome shim is not included in this adapter release."),i;if(r.version===null)return n("Chrome shim can not determine version, not shimming."),i;n("adapter.js shimming chrome."),i.browserShim=Gv,Aa(t,r),ja(t),Fv(t,r),Bv(t),rd(t,r),zv(t),qv(t,r),Vv(t),Hv(t),Wv(t,r),Ma(t),od(t),ad(t),Na(t,r),Da(t),ld(t,r);break;case"firefox":if(!i0||!id||!e.shimFirefox)return n("Firefox shim is not included in this adapter release."),i;n("adapter.js shimming firefox."),i.browserShim=i0,Aa(t,r),ja(t),Kv(t,r),id(t,r),Zv(t),Jv(t),Qv(t),Yv(t),Xv(t),e0(t),t0(t),n0(t),r0(t),Ma(t),ad(t),Na(t,r),Da(t);break;case"safari":if(!p0||!e.shimSafari)return n("Safari shim is not included in this adapter release."),i;n("adapter.js shimming safari."),i.browserShim=p0,Aa(t,r),ja(t),u0(t),h0(t),a0(t),s0(t),o0(t),d0(t),l0(t),f0(t),Ma(t),od(t),Na(t,r),Da(t),ld(t,r);break;default:n("Unsupported browser!");break}return i}dT({window:typeof window>"u"?void 0:window});const hT=10,Ua="lk_e2ee",fT={sharedKey:!1,ratchetSalt:"LKFrameEncryptionKey",ratchetWindowSize:8,failureTolerance:hT,keyringSize:16};var Gn;(function(t){t.SetKey="setKey",t.RatchetRequest="ratchetRequest",t.KeyRatcheted="keyRatcheted"})(Gn||(Gn={}));var v0;(function(t){t.KeyRatcheted="keyRatcheted"})(v0||(v0={}));var Kn;(function(t){t.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",t.EncryptionError="encryptionError"})(Kn||(Kn={}));var y0;(function(t){t.Error="cryptorError"})(y0||(y0={}));function pT(){return mT()||cd()}function cd(){return typeof window.RTCRtpScriptTransform<"u"}function mT(){return typeof window.RTCRtpSender<"u"&&typeof window.RTCRtpSender.prototype.createEncodedStreams<"u"}class WE extends nn.EventEmitter{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(),this.onKeyRatcheted=(n,r)=>{K.debug("key ratcheted event received",{material:n,keyIndex:r})},this.keyInfoMap=new Map,this.options=Object.assign(Object.assign({},fT),e),this.on(Gn.KeyRatcheted,this.onKeyRatcheted)}onSetEncryptionKey(e,n,r){const i={key:e,participantIdentity:n,keyIndex:r};if(!this.options.sharedKey&&!n)throw new Error("participant identity needs to be passed for encryption key if sharedKey option is false");this.keyInfoMap.set("".concat(n??"shared","-").concat(r??0),i),this.emit(Gn.SetKey,i)}getKeys(){return Array.from(this.keyInfoMap.values())}getOptions(){return this.options}ratchetKey(e,n){this.emit(Gn.RatchetRequest,e,n)}}class Zn extends Error{constructor(e,n){super(n||"an error has occured"),this.name="LiveKitError",this.code=e}}var Z;(function(t){t[t.NotAllowed=0]="NotAllowed",t[t.ServerUnreachable=1]="ServerUnreachable",t[t.InternalError=2]="InternalError",t[t.Cancelled=3]="Cancelled",t[t.LeaveRequest=4]="LeaveRequest"})(Z||(Z={}));class ce extends Zn{constructor(e,n,r,i){super(1,e),this.name="ConnectionError",this.status=r,this.reason=n,this.context=i,this.reasonName=Z[n]}}class ud extends Zn{constructor(e){super(21,e??"device is unsupported"),this.name="DeviceUnsupportedError"}}class kn extends Zn{constructor(e){super(20,e??"track is invalid"),this.name="TrackInvalidError"}}class gT extends Zn{constructor(e){super(10,e??"unsupported server"),this.name="UnsupportedServer"}}class Me extends Zn{constructor(e){super(12,e??"unexpected connection state"),this.name="UnexpectedConnectionState"}}class dd extends Zn{constructor(e){super(13,e??"unable to negotiate"),this.name="NegotiationError"}}class vT extends Zn{constructor(e,n){super(15,e),this.name="PublishTrackError",this.status=n}}class k0 extends Zn{constructor(e,n){super(15,e),this.reason=n,this.reasonName=typeof n=="string"?n:Xu[n]}}var Fa;(function(t){t.PermissionDenied="PermissionDenied",t.NotFound="NotFound",t.DeviceInUse="DeviceInUse",t.Other="Other"})(Fa||(Fa={})),function(t){function e(n){if(n&&"name"in n)return n.name==="NotFoundError"||n.name==="DevicesNotFoundError"?t.NotFound:n.name==="NotAllowedError"||n.name==="PermissionDeniedError"?t.PermissionDenied:n.name==="NotReadableError"||n.name==="TrackStartError"?t.DeviceInUse:t.Other}t.getFailure=e}(Fa||(Fa={}));var b0;(function(t){t[t.InvalidKey=0]="InvalidKey",t[t.MissingKey=1]="MissingKey",t[t.InternalError=2]="InternalError"})(b0||(b0={}));var M;(function(t){t.Connected="connected",t.Reconnecting="reconnecting",t.SignalReconnecting="signalReconnecting",t.Reconnected="reconnected",t.Disconnected="disconnected",t.ConnectionStateChanged="connectionStateChanged",t.MediaDevicesChanged="mediaDevicesChanged",t.ParticipantConnected="participantConnected",t.ParticipantDisconnected="participantDisconnected",t.TrackPublished="trackPublished",t.TrackSubscribed="trackSubscribed",t.TrackSubscriptionFailed="trackSubscriptionFailed",t.TrackUnpublished="trackUnpublished",t.TrackUnsubscribed="trackUnsubscribed",t.TrackMuted="trackMuted",t.TrackUnmuted="trackUnmuted",t.LocalTrackPublished="localTrackPublished",t.LocalTrackUnpublished="localTrackUnpublished",t.LocalAudioSilenceDetected="localAudioSilenceDetected",t.ActiveSpeakersChanged="activeSpeakersChanged",t.ParticipantMetadataChanged="participantMetadataChanged",t.ParticipantNameChanged="participantNameChanged",t.ParticipantAttributesChanged="participantAttributesChanged",t.RoomMetadataChanged="roomMetadataChanged",t.DataReceived="dataReceived",t.SipDTMFReceived="sipDTMFReceived",t.TranscriptionReceived="transcriptionReceived",t.ConnectionQualityChanged="connectionQualityChanged",t.TrackStreamStateChanged="trackStreamStateChanged",t.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",t.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",t.AudioPlaybackStatusChanged="audioPlaybackChanged",t.VideoPlaybackStatusChanged="videoPlaybackChanged",t.MediaDevicesError="mediaDevicesError",t.ParticipantPermissionsChanged="participantPermissionsChanged",t.SignalConnected="signalConnected",t.RecordingStatusChanged="recordingStatusChanged",t.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",t.EncryptionError="encryptionError",t.DCBufferStatusChanged="dcBufferStatusChanged",t.ActiveDeviceChanged="activeDeviceChanged",t.ChatMessage="chatMessage",t.LocalTrackSubscribed="localTrackSubscribed",t.MetricsReceived="metricsReceived"})(M||(M={}));var A;(function(t){t.TrackPublished="trackPublished",t.TrackSubscribed="trackSubscribed",t.TrackSubscriptionFailed="trackSubscriptionFailed",t.TrackUnpublished="trackUnpublished",t.TrackUnsubscribed="trackUnsubscribed",t.TrackMuted="trackMuted",t.TrackUnmuted="trackUnmuted",t.LocalTrackPublished="localTrackPublished",t.LocalTrackUnpublished="localTrackUnpublished",t.ParticipantMetadataChanged="participantMetadataChanged",t.ParticipantNameChanged="participantNameChanged",t.DataReceived="dataReceived",t.SipDTMFReceived="sipDTMFReceived",t.TranscriptionReceived="transcriptionReceived",t.IsSpeakingChanged="isSpeakingChanged",t.ConnectionQualityChanged="connectionQualityChanged",t.TrackStreamStateChanged="trackStreamStateChanged",t.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",t.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",t.MediaDevicesError="mediaDevicesError",t.AudioStreamAcquired="audioStreamAcquired",t.ParticipantPermissionsChanged="participantPermissionsChanged",t.PCTrackAdded="pcTrackAdded",t.AttributesChanged="attributesChanged",t.LocalTrackSubscribed="localTrackSubscribed",t.ChatMessage="chatMessage"})(A||(A={}));var D;(function(t){t.TransportsCreated="transportsCreated",t.Connected="connected",t.Disconnected="disconnected",t.Resuming="resuming",t.Resumed="resumed",t.Restarting="restarting",t.Restarted="restarted",t.SignalResumed="signalResumed",t.SignalRestarted="signalRestarted",t.Closing="closing",t.MediaTrackAdded="mediaTrackAdded",t.ActiveSpeakersUpdate="activeSpeakersUpdate",t.DataPacketReceived="dataPacketReceived",t.RTPVideoMapUpdate="rtpVideoMapUpdate",t.DCBufferStatusChanged="dcBufferStatusChanged",t.ParticipantUpdate="participantUpdate",t.RoomUpdate="roomUpdate",t.SpeakersChanged="speakersChanged",t.StreamStateChanged="streamStateChanged",t.ConnectionQualityUpdate="connectionQualityUpdate",t.SubscriptionError="subscriptionError",t.SubscriptionPermissionUpdate="subscriptionPermissionUpdate",t.RemoteMute="remoteMute",t.SubscribedQualityUpdate="subscribedQualityUpdate",t.LocalTrackUnpublished="localTrackUnpublished",t.LocalTrackSubscribed="localTrackSubscribed",t.Offline="offline",t.SignalRequestResponse="signalRequestResponse"})(D||(D={}));var N;(function(t){t.Message="message",t.Muted="muted",t.Unmuted="unmuted",t.Restarted="restarted",t.Ended="ended",t.Subscribed="subscribed",t.Unsubscribed="unsubscribed",t.UpdateSettings="updateSettings",t.UpdateSubscription="updateSubscription",t.AudioPlaybackStarted="audioPlaybackStarted",t.AudioPlaybackFailed="audioPlaybackFailed",t.AudioSilenceDetected="audioSilenceDetected",t.VisibilityChanged="visibilityChanged",t.VideoDimensionsChanged="videoDimensionsChanged",t.VideoPlaybackStarted="videoPlaybackStarted",t.VideoPlaybackFailed="videoPlaybackFailed",t.ElementAttached="elementAttached",t.ElementDetached="elementDetached",t.UpstreamPaused="upstreamPaused",t.UpstreamResumed="upstreamResumed",t.SubscriptionPermissionChanged="subscriptionPermissionChanged",t.SubscriptionStatusChanged="subscriptionStatusChanged",t.SubscriptionFailed="subscriptionFailed",t.TrackProcessorUpdate="trackProcessorUpdate",t.AudioTrackFeatureUpdate="audioTrackFeatureUpdate",t.TranscriptionReceived="transcriptionReceived",t.TimeSyncUpdate="timeSyncUpdate"})(N||(N={}));function yT(t){if(!(typeof t>"u"))return typeof structuredClone=="function"?structuredClone(t):JSON.parse(JSON.stringify(t))}const kT=/version\/(\d+(\.?_?\d+)+)/i;let hd;function Vt(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(typeof navigator>"u")return;const n=navigator.userAgent.toLowerCase();if(hd===void 0||e){const r=bT.find(i=>{let{test:s}=i;return s.test(n)});hd=r==null?void 0:r.describe(n)}return hd}const bT=[{test:/firefox|iceweasel|fxios/i,describe(t){return{name:"Firefox",version:Ba(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t),os:t.toLowerCase().includes("fxios")?"iOS":void 0,osVersion:fd(t)}}},{test:/chrom|crios|crmo/i,describe(t){return{name:"Chrome",version:Ba(/(?:chrome|chromium|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t),os:t.toLowerCase().includes("crios")?"iOS":void 0,osVersion:fd(t)}}},{test:/safari|applewebkit/i,describe(t){return{name:"Safari",version:Ba(kT,t),os:t.includes("mobile/")?"iOS":"macOS",osVersion:fd(t)}}}];function Ba(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;const r=e.match(t);return r&&r.length>=n&&r[n]||""}function fd(t){return t.includes("mac os")?Ba(/\(.+?(\d+_\d+(:?_\d+)?)/,t,1).replace(/_/g,"."):void 0}var CT="2.10.0";const ST=CT,wT=15;class He{}He.setTimeout=function(){return setTimeout(...arguments)},He.setInterval=function(){return setInterval(...arguments)},He.clearTimeout=function(){return clearTimeout(...arguments)},He.clearInterval=function(){return clearInterval(...arguments)};const TT=5e3,Is=[];var Et;(function(t){t[t.LOW=0]="LOW",t[t.MEDIUM=1]="MEDIUM",t[t.HIGH=2]="HIGH"})(Et||(Et={}));class O extends nn.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var i;super(),this.attachedElements=[],this.isMuted=!1,this.streamState=O.StreamState.Active,this.isInBackground=!1,this._currentBitrate=0,this.log=K,this.appVisibilityChangedListener=()=>{this.backgroundTimeout&&clearTimeout(this.backgroundTimeout),document.visibilityState==="hidden"?this.backgroundTimeout=setTimeout(()=>this.handleAppVisibilityChanged(),TT):this.handleAppVisibilityChanged()},this.log=yn((i=r.loggerName)!==null&&i!==void 0?i:zt.Track),this.loggerContextCb=r.loggerContextCb,this.setMaxListeners(100),this.kind=n,this._mediaStreamTrack=e,this._mediaStreamID=e.id,this.source=O.Source.Unknown}get logContext(){var e;return Object.assign(Object.assign({},(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this)),ie(this))}get currentBitrate(){return this._currentBitrate}get mediaStreamTrack(){return this._mediaStreamTrack}get mediaStreamID(){return this._mediaStreamID}attach(e){let n="audio";this.kind===O.Kind.Video&&(n="video"),this.attachedElements.length===0&&this.kind===O.Kind.Video&&this.addAppVisibilityListener(),e||(n==="audio"&&(Is.forEach(s=>{s.parentElement===null&&!e&&(e=s)}),e&&Is.splice(Is.indexOf(e),1)),e||(e=document.createElement(n))),this.attachedElements.includes(e)||this.attachedElements.push(e),bi(this.mediaStreamTrack,e);const r=e.srcObject.getTracks(),i=r.some(s=>s.kind==="audio");return e.play().then(()=>{this.emit(i?N.AudioPlaybackStarted:N.VideoPlaybackStarted)}).catch(s=>{s.name==="NotAllowedError"?this.emit(i?N.AudioPlaybackFailed:N.VideoPlaybackFailed,s):s.name==="AbortError"?K.debug("".concat(i?"audio":"video"," playback aborted, likely due to new play request")):K.warn("could not playback ".concat(i?"audio":"video"),s),i&&e&&r.some(o=>o.kind==="video")&&s.name==="NotAllowedError"&&(e.muted=!0,e.play().catch(()=>{}))}),this.emit(N.ElementAttached,e),e}detach(e){try{if(e){Ci(this.mediaStreamTrack,e);const r=this.attachedElements.indexOf(e);return r>=0&&(this.attachedElements.splice(r,1),this.recycleElement(e),this.emit(N.ElementDetached,e)),e}const n=[];return this.attachedElements.forEach(r=>{Ci(this.mediaStreamTrack,r),n.push(r),this.recycleElement(r),this.emit(N.ElementDetached,r)}),this.attachedElements=[],n}finally{this.attachedElements.length===0&&this.removeAppVisibilityListener()}}stop(){this.stopMonitor(),this._mediaStreamTrack.stop()}enable(){this._mediaStreamTrack.enabled=!0}disable(){this._mediaStreamTrack.enabled=!1}stopMonitor(){this.monitorInterval&&clearInterval(this.monitorInterval),this.timeSyncHandle&&cancelAnimationFrame(this.timeSyncHandle)}updateLoggerOptions(e){e.loggerName&&(this.log=yn(e.loggerName)),e.loggerContextCb&&(this.loggerContextCb=e.loggerContextCb)}recycleElement(e){if(e instanceof HTMLAudioElement){let n=!0;e.pause(),Is.forEach(r=>{r.parentElement||(n=!1)}),n&&Is.push(e)}}handleAppVisibilityChanged(){return S(this,void 0,void 0,function*(){this.isInBackground=document.visibilityState==="hidden",!this.isInBackground&&this.kind===O.Kind.Video&&setTimeout(()=>this.attachedElements.forEach(e=>e.play().catch(()=>{})),0)})}addAppVisibilityListener(){dt()?(this.isInBackground=document.visibilityState==="hidden",document.addEventListener("visibilitychange",this.appVisibilityChangedListener)):this.isInBackground=!1}removeAppVisibilityListener(){dt()&&document.removeEventListener("visibilitychange",this.appVisibilityChangedListener)}}function bi(t,e){let n;e.srcObject instanceof MediaStream?n=e.srcObject:n=new MediaStream;let r;t.kind==="audio"?r=n.getAudioTracks():r=n.getVideoTracks(),r.includes(t)||(r.forEach(i=>{n.removeTrack(i)}),n.addTrack(t)),(!Qn()||!(e instanceof HTMLVideoElement))&&(e.autoplay=!0),e.muted=n.getAudioTracks().length===0,e instanceof HTMLVideoElement&&(e.playsInline=!0),e.srcObject!==n&&(e.srcObject=n,(Qn()||Si())&&e instanceof HTMLVideoElement&&setTimeout(()=>{e.srcObject=n,e.play().catch(()=>{})},0))}function Ci(t,e){if(e.srcObject instanceof MediaStream){const n=e.srcObject;n.removeTrack(t),n.getTracks().length>0?e.srcObject=n:e.srcObject=null}}(function(t){let e;(function(c){c.Audio="audio",c.Video="video",c.Unknown="unknown"})(e=t.Kind||(t.Kind={}));let n;(function(c){c.Camera="camera",c.Microphone="microphone",c.ScreenShare="screen_share",c.ScreenShareAudio="screen_share_audio",c.Unknown="unknown"})(n=t.Source||(t.Source={}));let r;(function(c){c.Active="active",c.Paused="paused",c.Unknown="unknown"})(r=t.StreamState||(t.StreamState={}));function i(c){switch(c){case e.Audio:return Ut.AUDIO;case e.Video:return Ut.VIDEO;default:return Ut.DATA}}t.kindToProto=i;function s(c){switch(c){case Ut.AUDIO:return e.Audio;case Ut.VIDEO:return e.Video;default:return e.Unknown}}t.kindFromProto=s;function o(c){switch(c){case n.Camera:return Re.CAMERA;case n.Microphone:return Re.MICROPHONE;case n.ScreenShare:return Re.SCREEN_SHARE;case n.ScreenShareAudio:return Re.SCREEN_SHARE_AUDIO;default:return Re.UNKNOWN}}t.sourceToProto=o;function a(c){switch(c){case Re.CAMERA:return n.Camera;case Re.MICROPHONE:return n.Microphone;case Re.SCREEN_SHARE:return n.ScreenShare;case Re.SCREEN_SHARE_AUDIO:return n.ScreenShareAudio;default:return n.Unknown}}t.sourceFromProto=a;function l(c){switch(c){case Wu.ACTIVE:return r.Active;case Wu.PAUSED:return r.Paused;default:return r.Unknown}}t.streamStateFromProto=l})(O||(O={}));class ae{constructor(e,n,r,i,s){if(typeof e=="object")this.width=e.width,this.height=e.height,this.aspectRatio=e.aspectRatio,this.encoding={maxBitrate:e.maxBitrate,maxFramerate:e.maxFramerate,priority:e.priority};else if(n!==void 0&&r!==void 0)this.width=e,this.height=n,this.aspectRatio=e/n,this.encoding={maxBitrate:r,maxFramerate:i,priority:s};else throw new TypeError("Unsupported options: provide at least width, height and maxBitrate")}get resolution(){return{width:this.width,height:this.height,frameRate:this.encoding.maxFramerate,aspectRatio:this.aspectRatio}}}const xT=["vp8","h264"],ET=["vp8","h264","vp9","av1"];function PT(t){return!!xT.find(e=>e===t)}var C0;(function(t){t[t.PREFER_REGRESSION=0]="PREFER_REGRESSION",t[t.SIMULCAST=1]="SIMULCAST",t[t.REGRESSION=2]="REGRESSION"})(C0||(C0={}));var pd;(function(t){t.telephone={maxBitrate:12e3},t.speech={maxBitrate:24e3},t.music={maxBitrate:48e3},t.musicStereo={maxBitrate:64e3},t.musicHighQuality={maxBitrate:96e3},t.musicHighQualityStereo={maxBitrate:128e3}})(pd||(pd={}));const Os={h90:new ae(160,90,9e4,20),h180:new ae(320,180,16e4,20),h216:new ae(384,216,18e4,20),h360:new ae(640,360,45e4,20),h540:new ae(960,540,8e5,25),h720:new ae(1280,720,17e5,30),h1080:new ae(1920,1080,3e6,30),h1440:new ae(2560,1440,5e6,30),h2160:new ae(3840,2160,8e6,30)},md={h120:new ae(160,120,7e4,20),h180:new ae(240,180,125e3,20),h240:new ae(320,240,14e4,20),h360:new ae(480,360,33e4,20),h480:new ae(640,480,5e5,20),h540:new ae(720,540,6e5,25),h720:new ae(960,720,13e5,30),h1080:new ae(1440,1080,23e5,30),h1440:new ae(1920,1440,38e5,30)},gd={h360fps3:new ae(640,360,2e5,3,"medium"),h360fps15:new ae(640,360,4e5,15,"medium"),h720fps5:new ae(1280,720,8e5,5,"medium"),h720fps15:new ae(1280,720,15e5,15,"medium"),h720fps30:new ae(1280,720,2e6,30,"medium"),h1080fps15:new ae(1920,1080,25e5,15,"medium"),h1080fps30:new ae(1920,1080,5e6,30,"medium"),original:new ae(0,0,7e6,30,"medium")},_T="|",S0="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";function RT(t){const e=t.split(_T);return e.length>1?[e[0],t.substr(e[0].length+1)]:[t,""]}function ut(t){return S(this,void 0,void 0,function*(){return new Promise(e=>He.setTimeout(e,t))})}function vd(){return"addTransceiver"in RTCPeerConnection.prototype}function yd(){return"addTrack"in RTCPeerConnection.prototype}function IT(){if(!("getCapabilities"in RTCRtpSender)||Qn())return!1;const t=RTCRtpSender.getCapabilities("video");let e=!1;if(t){for(const n of t.codecs)if(n.mimeType==="video/AV1"){e=!0;break}}return e}function OT(){if(!("getCapabilities"in RTCRtpSender)||Si())return!1;if(Qn()){const n=Vt();if(n!=null&&n.version&&Er(n.version,"16")<0)return!1}const t=RTCRtpSender.getCapabilities("video");let e=!1;if(t){for(const n of t.codecs)if(n.mimeType==="video/VP9"){e=!0;break}}return e}function Ls(t){return t==="av1"||t==="vp9"}function kd(t){return document?(t||(t=document.createElement("audio")),"setSinkId"in t):!1}function LT(){return typeof RTCPeerConnection>"u"?!1:vd()||yd()}function Si(){var t;return((t=Vt())===null||t===void 0?void 0:t.name)==="Firefox"}function Qn(){var t;return((t=Vt())===null||t===void 0?void 0:t.name)==="Safari"}function MT(){const t=Vt();return(t==null?void 0:t.name)==="Safari"&&t.version.startsWith("17.")}function w0(){var t,e;return dt()?(e=(t=navigator.userAgentData)===null||t===void 0?void 0:t.mobile)!==null&&e!==void 0?e:/Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent):!1}function NT(){const t=Vt(),e="17.2";if(t)return t.name!=="Safari"&&t.os!=="iOS"||t.os==="iOS"&&t.osVersion&&Er(e,t.osVersion)>=0?!0:t.name==="Safari"&&Er(e,t.version)>=0}function dt(){return typeof document<"u"}function rn(){return navigator.product=="ReactNative"}function bd(t){return t.hostname.endsWith(".livekit.cloud")||t.hostname.endsWith(".livekit.run")}function T0(){if(global&&global.LiveKitReactNativeGlobal)return global.LiveKitReactNativeGlobal}function x0(){if(!rn())return;let t=T0();if(t)return t.platform}function E0(){if(dt())return window.devicePixelRatio;if(rn()){let t=T0();if(t)return t.devicePixelRatio}return 1}function Er(t,e){const n=t.split("."),r=e.split("."),i=Math.min(n.length,r.length);for(let s=0;s<i;++s){const o=parseInt(n[s],10),a=parseInt(r[s],10);if(o>a)return 1;if(o<a)return-1;if(s===i-1&&o===a)return 0}return t===""&&e!==""?-1:e===""?1:n.length==r.length?0:n.length<r.length?-1:1}function DT(t){for(const e of t)e.target.handleResize(e)}function AT(t){for(const e of t)e.target.handleVisibilityChanged(e)}let Cd=null;const P0=()=>(Cd||(Cd=new ResizeObserver(DT)),Cd);let Sd=null;const _0=()=>(Sd||(Sd=new IntersectionObserver(AT,{root:null,rootMargin:"0px"})),Sd);function jT(){var t;const e=new Ew({sdk:hv.JS,protocol:wT,version:ST});return rn()&&(e.os=(t=x0())!==null&&t!==void 0?t:""),e}function R0(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:16,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:16,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const i=document.createElement("canvas");i.width=t,i.height=e;const s=i.getContext("2d");s==null||s.fillRect(0,0,i.width,i.height),r&&s&&(s.beginPath(),s.arc(t/2,e/2,50,0,Math.PI*2,!0),s.closePath(),s.fillStyle="grey",s.fill());const o=i.captureStream(),[a]=o.getTracks();if(!a)throw Error("Could not get empty media stream video track");return a.enabled=n,a}let Ms;function wd(){if(!Ms){const t=new AudioContext,e=t.createOscillator(),n=t.createGain();n.gain.setValueAtTime(0,0);const r=t.createMediaStreamDestination();if(e.connect(n),n.connect(r),e.start(),[Ms]=r.stream.getAudioTracks(),!Ms)throw Error("Could not get empty media stream audio track");Ms.enabled=!1}return Ms.clone()}class I0{constructor(e,n){this.onFinally=n,this.promise=new Promise((r,i)=>S(this,void 0,void 0,function*(){this.resolve=r,this.reject=i,e&&(yield e(r,i))})).finally(()=>{var r;return(r=this.onFinally)===null||r===void 0?void 0:r.call(this)})}}function UT(t){return ET.includes(t)}function Yn(t){if(typeof t=="string"||typeof t=="number")return t;if(Array.isArray(t))return t[0];if(t.exact)return Array.isArray(t.exact)?t.exact[0]:t.exact;if(t.ideal)return Array.isArray(t.ideal)?t.ideal[0]:t.ideal;throw Error("could not unwrap constraint")}function Td(t){return t.startsWith("ws")?t.replace(/^(ws)/,"http"):t}function FT(t,e){return t.segments.map(n=>{let{id:r,text:i,language:s,startTime:o,endTime:a,final:l}=n;var c;const u=(c=e.get(r))!==null&&c!==void 0?c:Date.now(),d=Date.now();return l?e.delete(r):e.set(r,u),{id:r,text:i,startTime:Number.parseInt(o.toString()),endTime:Number.parseInt(a.toString()),final:l,language:s,firstReceivedTime:u,lastReceivedTime:d}})}function BT(t){const{id:e,timestamp:n,message:r,editTimestamp:i}=t;return{id:e,timestamp:Number.parseInt(n.toString()),editTimestamp:i?Number.parseInt(i.toString()):void 0,message:r}}function O0(t){switch(t.reason){case Z.LeaveRequest:return t.context;case Z.Cancelled:return Ft.CLIENT_INITIATED;case Z.NotAllowed:return Ft.USER_REJECTED;case Z.ServerUnreachable:return Ft.JOIN_FAILURE;default:return Ft.UNKNOWN_REASON}}function za(t){return t!==void 0?Number(t):void 0}function Pr(t){return t!==void 0?BigInt(t):void 0}function wi(t){return!!t&&!(t instanceof MediaStreamTrack)&&t.isLocal}function bn(t){return!!t&&t.kind==O.Kind.Audio}function Ti(t){return!!t&&t.kind==O.Kind.Video}function Jn(t){return wi(t)&&Ti(t)}function _r(t){return wi(t)&&bn(t)}function xd(t){return!!t&&!t.isLocal}function zT(t){return!!t&&!t.isLocal}function Ed(t){return xd(t)&&Ti(t)}function VT(t){return t.isLocal}function HT(t,e){const n=[];let r=new TextEncoder().encode(t);for(;r.length>e;){let i=e;for(;i>0;){const s=r[i];if(s!==void 0&&(s&192)!==128)break;i--}n.push(r.slice(0,i)),r=r.slice(i)}return r.length>0&&n.push(r),n}function L0(t,e,n){var r,i,s,o,a;const{optionsWithoutProcessor:l,audioProcessor:c,videoProcessor:u}=_d(t??{}),d=e==null?void 0:e.processor,h=n==null?void 0:n.processor,f=(r=yT(l))!==null&&r!==void 0?r:{};return f.audio===!0&&(f.audio={}),f.video===!0&&(f.video={}),f.audio&&(Pd(f.audio,e),(i=(o=f.audio).deviceId)!==null&&i!==void 0||(o.deviceId="default"),(c||d)&&(f.audio.processor=c??d)),f.video&&(Pd(f.video,n),(s=(a=f.video).deviceId)!==null&&s!==void 0||(a.deviceId="default"),(u||h)&&(f.video.processor=u??h)),f}function Pd(t,e){return Object.keys(e).forEach(n=>{t[n]===void 0&&(t[n]=e[n])}),t}function Va(t){var e,n,r,i;const s={};if(t.video)if(typeof t.video=="object"){const o={},a=o,l=t.video;Object.keys(l).forEach(c=>{switch(c){case"resolution":Pd(a,l.resolution);break;default:a[c]=l[c]}}),s.video=o,(e=(r=s.video).deviceId)!==null&&e!==void 0||(r.deviceId="default")}else s.video=t.video?{deviceId:"default"}:!1;else s.video=!1;return t.audio?typeof t.audio=="object"?(s.audio=t.audio,(n=(i=s.audio).deviceId)!==null&&n!==void 0||(i.deviceId="default")):s.audio={deviceId:"default"}:s.audio=!1,s}function M0(t){return S(this,arguments,void 0,function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:200;return function*(){const r=N0();if(r){const i=r.createAnalyser();i.fftSize=2048;const s=i.frequencyBinCount,o=new Uint8Array(s);r.createMediaStreamSource(new MediaStream([e.mediaStreamTrack])).connect(i),yield ut(n),i.getByteTimeDomainData(o);const l=o.some(c=>c!==128&&c!==0);return r.close(),!l}return!1}()})}function N0(){var t;const e=typeof window<"u"&&(window.AudioContext||window.webkitAudioContext);if(e){const n=new e({latencyHint:"interactive"});if(n.state==="suspended"&&typeof window<"u"&&(!((t=window.document)===null||t===void 0)&&t.body)){const r=()=>S(this,void 0,void 0,function*(){var i;try{n.state==="suspended"&&(yield n.resume())}catch(s){console.warn("Error trying to auto-resume audio context",s)}(i=window.document.body)===null||i===void 0||i.removeEventListener("click",r)});window.document.body.addEventListener("click",r)}return n}}function D0(t){return t===O.Source.Microphone?"audioinput":t===O.Source.Camera?"videoinput":void 0}function $T(t){var e,n;let r=(e=t.video)!==null&&e!==void 0?e:!0;return t.resolution&&t.resolution.width>0&&t.resolution.height>0&&(r=typeof r=="boolean"?{}:r,Qn()?r=Object.assign(Object.assign({},r),{width:{max:t.resolution.width},height:{max:t.resolution.height},frameRate:t.resolution.frameRate}):r=Object.assign(Object.assign({},r),{width:{ideal:t.resolution.width},height:{ideal:t.resolution.height},frameRate:t.resolution.frameRate})),{audio:(n=t.audio)!==null&&n!==void 0?n:!1,video:r,controller:t.controller,selfBrowserSurface:t.selfBrowserSurface,surfaceSwitching:t.surfaceSwitching,systemAudio:t.systemAudio,preferCurrentTab:t.preferCurrentTab}}function Ha(t){return t.split("/")[1].toLowerCase()}function qT(t){const e=[];return t.forEach(n=>{n.track!==void 0&&e.push(new Yu({cid:n.track.mediaStreamID,track:n.trackInfo}))}),e}function ie(t){return"mediaStreamTrack"in t?{trackID:t.sid,source:t.source,muted:t.isMuted,enabled:t.mediaStreamTrack.enabled,kind:t.kind,streamID:t.mediaStreamID,streamTrackID:t.mediaStreamTrack.id}:{trackID:t.trackSid,enabled:t.isEnabled,muted:t.isMuted,trackInfo:Object.assign({mimeType:t.mimeType,name:t.trackName,encrypted:t.isEncrypted,kind:t.kind,source:t.source},t.track?ie(t.track):{})}}function WT(){return typeof RTCRtpReceiver<"u"&&"getSynchronizationSources"in RTCRtpReceiver}function GT(t,e){var n;t===void 0&&(t={}),e===void 0&&(e={});const r=[...Object.keys(e),...Object.keys(t)],i={};for(const s of r)t[s]!==e[s]&&(i[s]=(n=e[s])!==null&&n!==void 0?n:"");return i}function _d(t){const e=Object.assign({},t);let n,r;return typeof e.audio=="object"&&e.audio.processor&&(n=e.audio.processor,e.audio=Object.assign(Object.assign({},e.audio),{processor:void 0})),typeof e.video=="object"&&e.video.processor&&(r=e.video.processor,e.video=Object.assign(Object.assign({},e.video),{processor:void 0})),{audioProcessor:n,videoProcessor:r,optionsWithoutProcessor:e}}function KT(t){switch(t){case Re.CAMERA:return O.Source.Camera;case Re.MICROPHONE:return O.Source.Microphone;case Re.SCREEN_SHARE:return O.Source.ScreenShare;case Re.SCREEN_SHARE_AUDIO:return O.Source.ScreenShareAudio;default:return O.Source.Unknown}}class ZT extends nn.EventEmitter{constructor(e){super(),this.onWorkerMessage=n=>{var r,i;const{kind:s,data:o}=n.data;switch(s){case"error":K.error(o.error.message),this.emit(Kn.EncryptionError,o.error);break;case"initAck":o.enabled&&this.keyProvider.getKeys().forEach(a=>{this.postKey(a)});break;case"enable":if(o.enabled&&this.keyProvider.getKeys().forEach(a=>{this.postKey(a)}),this.encryptionEnabled!==o.enabled&&o.participantIdentity===((r=this.room)===null||r===void 0?void 0:r.localParticipant.identity))this.emit(Kn.ParticipantEncryptionStatusChanged,o.enabled,this.room.localParticipant),this.encryptionEnabled=o.enabled;else if(o.participantIdentity){const a=(i=this.room)===null||i===void 0?void 0:i.getParticipantByIdentity(o.participantIdentity);if(!a)throw TypeError("couldn't set encryption status, participant not found".concat(o.participantIdentity));this.emit(Kn.ParticipantEncryptionStatusChanged,o.enabled,a)}break;case"ratchetKey":this.keyProvider.emit(Gn.KeyRatcheted,o.material,o.keyIndex);break}},this.onWorkerError=n=>{K.error("e2ee worker encountered an error:",{error:n.error}),this.emit(Kn.EncryptionError,n.error)},this.keyProvider=e.keyProvider,this.worker=e.worker,this.encryptionEnabled=!1}setup(e){if(!pT())throw new ud("tried to setup end-to-end encryption on an unsupported browser");if(K.info("setting up e2ee"),e!==this.room){this.room=e,this.setupEventListeners(e,this.keyProvider);const n={kind:"init",data:{keyProviderOptions:this.keyProvider.getOptions(),loglevel:Xw.getLevel()}};this.worker&&(K.info("initializing worker",{worker:this.worker}),this.worker.onmessage=this.onWorkerMessage,this.worker.onerror=this.onWorkerError,this.worker.postMessage(n))}}setParticipantCryptorEnabled(e,n){K.debug("set e2ee to ".concat(e," for participant ").concat(n)),this.postEnable(e,n)}setSifTrailer(e){!e||e.length===0?K.warn("ignoring server sent trailer as it's empty"):this.postSifTrailer(e)}setupEngine(e){e.on(D.RTPVideoMapUpdate,n=>{this.postRTPMap(n)})}setupEventListeners(e,n){e.on(M.TrackPublished,(r,i)=>this.setParticipantCryptorEnabled(r.trackInfo.encryption!==kt.NONE,i.identity)),e.on(M.ConnectionStateChanged,r=>{r===X.Connected&&e.remoteParticipants.forEach(i=>{i.trackPublications.forEach(s=>{this.setParticipantCryptorEnabled(s.trackInfo.encryption!==kt.NONE,i.identity)})})}).on(M.TrackUnsubscribed,(r,i,s)=>{var o;const a={kind:"removeTransform",data:{participantIdentity:s.identity,trackId:r.mediaStreamID}};(o=this.worker)===null||o===void 0||o.postMessage(a)}).on(M.TrackSubscribed,(r,i,s)=>{this.setupE2EEReceiver(r,s.identity,i.trackInfo)}).on(M.SignalConnected,()=>{if(!this.room)throw new TypeError("expected room to be present on signal connect");n.getKeys().forEach(r=>{this.postKey(r)}),this.setParticipantCryptorEnabled(this.room.localParticipant.isE2EEEnabled,this.room.localParticipant.identity)}),e.localParticipant.on(A.LocalTrackPublished,r=>S(this,void 0,void 0,function*(){this.setupE2EESender(r.track,r.track.sender)})),n.on(Gn.SetKey,r=>this.postKey(r)).on(Gn.RatchetRequest,(r,i)=>this.postRatchetRequest(r,i))}postRatchetRequest(e,n){if(!this.worker)throw Error("could not ratchet key, worker is missing");const r={kind:"ratchetRequest",data:{participantIdentity:e,keyIndex:n}};this.worker.postMessage(r)}postKey(e){let{key:n,participantIdentity:r,keyIndex:i}=e;var s;if(!this.worker)throw Error("could not set key, worker is missing");const o={kind:"setKey",data:{participantIdentity:r,isPublisher:r===((s=this.room)===null||s===void 0?void 0:s.localParticipant.identity),key:n,keyIndex:i}};this.worker.postMessage(o)}postEnable(e,n){if(this.worker){const r={kind:"enable",data:{enabled:e,participantIdentity:n}};this.worker.postMessage(r)}else throw new ReferenceError("failed to enable e2ee, worker is not ready")}postRTPMap(e){var n;if(!this.worker)throw TypeError("could not post rtp map, worker is missing");if(!(!((n=this.room)===null||n===void 0)&&n.localParticipant.identity))throw TypeError("could not post rtp map, local participant identity is missing");const r={kind:"setRTPMap",data:{map:e,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(r)}postSifTrailer(e){if(!this.worker)throw Error("could not post SIF trailer, worker is missing");const n={kind:"setSifTrailer",data:{trailer:e}};this.worker.postMessage(n)}setupE2EEReceiver(e,n,r){if(e.receiver){if(!(r!=null&&r.mimeType)||r.mimeType==="")throw new TypeError("MimeType missing from trackInfo, cannot set up E2EE cryptor");this.handleReceiver(e.receiver,e.mediaStreamID,n,e.kind==="video"?Ha(r.mimeType):void 0)}}setupE2EESender(e,n){if(!wi(e)||!n){n||K.warn("early return because sender is not ready");return}this.handleSender(n,e.mediaStreamID,void 0)}handleReceiver(e,n,r,i){return S(this,void 0,void 0,function*(){if(this.worker){if(cd()){const s={kind:"decode",participantIdentity:r,trackId:n,codec:i};e.transform=new RTCRtpScriptTransform(this.worker,s)}else{if(Ua in e&&i){const l={kind:"updateCodec",data:{trackId:n,codec:i,participantIdentity:r}};this.worker.postMessage(l);return}let s=e.writableStream,o=e.readableStream;if(!s||!o){const l=e.createEncodedStreams();e.writableStream=l.writable,s=l.writable,e.readableStream=l.readable,o=l.readable}const a={kind:"decode",data:{readableStream:o,writableStream:s,trackId:n,codec:i,participantIdentity:r}};this.worker.postMessage(a,[o,s])}e[Ua]=!0}})}handleSender(e,n,r){var i;if(!(Ua in e||!this.worker)){if(!(!((i=this.room)===null||i===void 0)&&i.localParticipant.identity)||this.room.localParticipant.identity==="")throw TypeError("local identity needs to be known in order to set up encrypted sender");if(cd()){K.info("initialize script transform");const s={kind:"encode",participantIdentity:this.room.localParticipant.identity,trackId:n,codec:r};e.transform=new RTCRtpScriptTransform(this.worker,s)}else{K.info("initialize encoded streams");const s=e.createEncodedStreams(),o={kind:"encode",data:{readableStream:s.readable,writableStream:s.writable,codec:r,trackId:n,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(o,[s.readable,s.writable])}e[Ua]=!0}}}const Rd="default";class Ae{constructor(){this._previousDevices=[]}static getInstance(){return this.instance===void 0&&(this.instance=new Ae),this.instance}get previousDevices(){return this._previousDevices}getDevices(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var s;if(((s=Ae.userMediaPromiseMap)===null||s===void 0?void 0:s.size)>0){K.debug("awaiting getUserMedia promise");try{n?yield Ae.userMediaPromiseMap.get(n):yield Promise.all(Ae.userMediaPromiseMap.values())}catch{K.warn("error waiting for media permissons")}}let o=yield navigator.mediaDevices.enumerateDevices();if(i&&!(Qn()&&r.hasDeviceInUse(n))&&(o.filter(l=>l.kind===n).length===0||o.some(l=>{const c=l.label==="",u=n?l.kind===n:!0;return c&&u}))){const l={video:n!=="audioinput"&&n!=="audiooutput",audio:n!=="videoinput"&&{deviceId:"default"}},c=yield navigator.mediaDevices.getUserMedia(l);o=yield navigator.mediaDevices.enumerateDevices(),c.getTracks().forEach(u=>{u.stop()})}return r._previousDevices=o,n&&(o=o.filter(a=>a.kind===n)),o}()})}normalizeDeviceId(e,n,r){return S(this,void 0,void 0,function*(){if(n!==Rd)return n;const i=yield this.getDevices(e),s=i.find(a=>a.deviceId===Rd);if(!s){K.warn("could not reliably determine default device");return}const o=i.find(a=>a.deviceId!==Rd&&a.groupId===(r??s.groupId));if(!o){K.warn("could not reliably determine default device");return}return o==null?void 0:o.deviceId})}hasDeviceInUse(e){return e?Ae.userMediaPromiseMap.has(e):Ae.userMediaPromiseMap.size>0}}Ae.mediaDeviceKinds=["audioinput","audiooutput","videoinput"],Ae.userMediaPromiseMap=new Map;var Ns;(function(t){t[t.WAITING=0]="WAITING",t[t.RUNNING=1]="RUNNING",t[t.COMPLETED=2]="COMPLETED"})(Ns||(Ns={}));class QT{constructor(){this.pendingTasks=new Map,this.taskMutex=new yt,this.nextTaskIndex=0}run(e){return S(this,void 0,void 0,function*(){const n={id:this.nextTaskIndex++,enqueuedAt:Date.now(),status:Ns.WAITING};this.pendingTasks.set(n.id,n);const r=yield this.taskMutex.lock();try{return n.executedAt=Date.now(),n.status=Ns.RUNNING,yield e()}finally{n.status=Ns.COMPLETED,this.pendingTasks.delete(n.id),r()}})}flush(){return S(this,void 0,void 0,function*(){return this.run(()=>S(this,void 0,void 0,function*(){}))})}snapshot(){return Array.from(this.pendingTasks.values())}}function YT(t,e){const n=new URL(t);return e.forEach((r,i)=>{n.searchParams.set(i,r)}),A0(n,"rtc")}function JT(t){const e=new URL(Td(t));return A0(e,"validate")}function XT(t){return t.endsWith("/")?t:"".concat(t,"/")}function A0(t,e){const n="".concat(t.protocol,"//").concat(t.host).concat(XT(t.pathname)).concat(e);return t.searchParams.size>0?"".concat(n,"?").concat(t.searchParams.toString()):n}const e2=["syncState","trickle","offer","answer","simulate","leave"];function t2(t){const e=e2.indexOf(t.case)>=0;return K.trace("request allowed to bypass queue:",{canPass:e,req:t}),e}var me;(function(t){t[t.CONNECTING=0]="CONNECTING",t[t.CONNECTED=1]="CONNECTED",t[t.RECONNECTING=2]="RECONNECTING",t[t.DISCONNECTING=3]="DISCONNECTING",t[t.DISCONNECTED=4]="DISCONNECTED"})(me||(me={}));class Id{get currentState(){return this.state}get isDisconnected(){return this.state===me.DISCONNECTING||this.state===me.DISCONNECTED}get isEstablishingConnection(){return this.state===me.CONNECTING||this.state===me.RECONNECTING}getNextRequestId(){return this._requestId+=1,this._requestId}constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r;this.rtt=0,this.state=me.DISCONNECTED,this.log=K,this._requestId=0,this.resetCallbacks=()=>{this.onAnswer=void 0,this.onLeave=void 0,this.onLocalTrackPublished=void 0,this.onLocalTrackUnpublished=void 0,this.onNegotiateRequested=void 0,this.onOffer=void 0,this.onRemoteMuteChanged=void 0,this.onSubscribedQualityUpdate=void 0,this.onTokenRefresh=void 0,this.onTrickle=void 0,this.onClose=void 0},this.log=yn((r=n.loggerName)!==null&&r!==void 0?r:zt.Signal),this.loggerContextCb=n.loggerContextCb,this.useJSON=e,this.requestQueue=new QT,this.queuedRequests=[],this.closingLock=new yt,this.connectionLock=new yt,this.state=me.DISCONNECTED}get logContext(){var e,n;return(n=(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this))!==null&&n!==void 0?n:{}}join(e,n,r,i){return S(this,void 0,void 0,function*(){return this.state=me.CONNECTING,this.options=r,yield this.connect(e,n,r,i)})}reconnect(e,n,r,i){return S(this,void 0,void 0,function*(){if(!this.options){this.log.warn("attempted to reconnect without signal options being set, ignoring",this.logContext);return}return this.state=me.RECONNECTING,this.clearPingInterval(),yield this.connect(e,n,Object.assign(Object.assign({},this.options),{reconnect:!0,sid:r,reconnectReason:i}))})}connect(e,n,r,i){this.connectOptions=r;const s=jT(),o=n2(n,s,r),a=YT(e,o),l=JT(a);return new Promise((c,u)=>S(this,void 0,void 0,function*(){const d=yield this.connectionLock.lock();try{const h=()=>S(this,void 0,void 0,function*(){this.close(),clearTimeout(f),u(new ce("room connection has been cancelled (signal)",Z.Cancelled))}),f=setTimeout(()=>{this.close(),u(new ce("room connection has timed out (signal)",Z.ServerUnreachable))},r.websocketTimeout);i!=null&&i.aborted&&h(),i==null||i.addEventListener("abort",h);const m=new URL(a);m.searchParams.has("access_token")&&m.searchParams.set("access_token","<redacted>"),this.log.debug("connecting to ".concat(m),Object.assign({reconnect:r.reconnect,reconnectReason:r.reconnectReason},this.logContext)),this.ws&&(yield this.close(!1)),this.ws=new WebSocket(a),this.ws.binaryType="arraybuffer",this.ws.onopen=()=>{clearTimeout(f)},this.ws.onerror=g=>S(this,void 0,void 0,function*(){if(this.state!==me.CONNECTED){this.state=me.DISCONNECTED,clearTimeout(f);try{const T=yield fetch(l);if(T.status.toFixed(0).startsWith("4")){const p=yield T.text();u(new ce(p,Z.NotAllowed,T.status))}else u(new ce("Encountered unknown websocket error during connection: ".concat(g.toString()),Z.InternalError,T.status))}catch(T){u(new ce(T instanceof Error?T.message:"server was not reachable",Z.ServerUnreachable))}return}this.handleWSError(g)}),this.ws.onmessage=g=>S(this,void 0,void 0,function*(){var T,p,v;let y;if(typeof g.data=="string"){const k=JSON.parse(g.data);y=yv.fromJson(k,{ignoreUnknownFields:!0})}else if(g.data instanceof ArrayBuffer)y=yv.fromBinary(new Uint8Array(g.data));else{this.log.error("could not decode websocket message: ".concat(typeof g.data),this.logContext);return}if(this.state!==me.CONNECTED){let k=!1;if(((T=y.message)===null||T===void 0?void 0:T.case)==="join"?(this.state=me.CONNECTED,i==null||i.removeEventListener("abort",h),this.pingTimeoutDuration=y.message.value.pingTimeout,this.pingIntervalDuration=y.message.value.pingInterval,this.pingTimeoutDuration&&this.pingTimeoutDuration>0&&(this.log.debug("ping config",Object.assign(Object.assign({},this.logContext),{timeout:this.pingTimeoutDuration,interval:this.pingIntervalDuration})),this.startPingInterval()),c(y.message.value)):this.state===me.RECONNECTING&&y.message.case!=="leave"?(this.state=me.CONNECTED,i==null||i.removeEventListener("abort",h),this.startPingInterval(),((p=y.message)===null||p===void 0?void 0:p.case)==="reconnect"?c(y.message.value):(this.log.debug("declaring signal reconnected without reconnect response received",this.logContext),c(void 0),k=!0)):this.isEstablishingConnection&&y.message.case==="leave"?u(new ce("Received leave request while trying to (re)connect",Z.LeaveRequest,void 0,y.message.value.reason)):r.reconnect||u(new ce("did not receive join response, got ".concat((v=y.message)===null||v===void 0?void 0:v.case," instead"),Z.InternalError)),!k)return}this.signalLatency&&(yield ut(this.signalLatency)),this.handleSignalResponse(y)}),this.ws.onclose=g=>{this.isEstablishingConnection&&u(new ce("Websocket got closed during a (re)connection attempt",Z.InternalError)),this.log.warn("websocket closed",Object.assign(Object.assign({},this.logContext),{reason:g.reason,code:g.code,wasClean:g.wasClean,state:this.state})),this.handleOnClose(g.reason)}}finally{d()}}))}close(){return S(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){const r=yield e.closingLock.lock();try{if(e.clearPingInterval(),n&&(e.state=me.DISCONNECTING),e.ws){e.ws.onmessage=null,e.ws.onopen=null,e.ws.onclose=null;const i=new Promise(s=>{e.ws?e.ws.onclose=()=>{s()}:s()});e.ws.readyState<e.ws.CLOSING&&(e.ws.close(),yield Promise.race([i,ut(250)])),e.ws=void 0}}finally{n&&(e.state=me.DISCONNECTED),r()}}()})}sendOffer(e){this.log.debug("sending offer",Object.assign(Object.assign({},this.logContext),{offerSdp:e.sdp})),this.sendRequest({case:"offer",value:$a(e)})}sendAnswer(e){return this.log.debug("sending answer",Object.assign(Object.assign({},this.logContext),{answerSdp:e.sdp})),this.sendRequest({case:"answer",value:$a(e)})}sendIceCandidate(e,n){return this.log.debug("sending ice candidate",Object.assign(Object.assign({},this.logContext),{candidate:e})),this.sendRequest({case:"trickle",value:new Zu({candidateInit:JSON.stringify(e),target:n})})}sendMuteTrack(e,n){return this.sendRequest({case:"mute",value:new Qu({sid:e,muted:n})})}sendAddTrack(e){return this.sendRequest({case:"addTrack",value:e})}sendUpdateLocalMetadata(e,n){return S(this,arguments,void 0,function(r,i){var s=this;let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return function*(){const a=s.getNextRequestId();return yield s.sendRequest({case:"updateMetadata",value:new Sv({requestId:a,metadata:r,name:i,attributes:o})}),a}()})}sendUpdateTrackSettings(e){this.sendRequest({case:"trackSetting",value:e})}sendUpdateSubscription(e){return this.sendRequest({case:"subscription",value:e})}sendSyncState(e){return this.sendRequest({case:"syncState",value:e})}sendUpdateVideoLayers(e,n){return this.sendRequest({case:"updateLayers",value:new Cv({trackSid:e,layers:n})})}sendUpdateSubscriptionPermissions(e,n){return this.sendRequest({case:"subscriptionPermission",value:new xv({allParticipants:e,trackPermissions:n})})}sendSimulateScenario(e){return this.sendRequest({case:"simulate",value:e})}sendPing(){return Promise.all([this.sendRequest({case:"ping",value:pe.parse(Date.now())}),this.sendRequest({case:"pingReq",value:new _v({timestamp:pe.parse(Date.now()),rtt:pe.parse(this.rtt)})})])}sendUpdateLocalAudioTrack(e,n){return this.sendRequest({case:"updateAudioTrack",value:new bv({trackSid:e,features:n})})}sendLeave(){return this.sendRequest({case:"leave",value:new _a({reason:Ft.CLIENT_INITIATED,action:yi.DISCONNECT})})}sendRequest(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return function*(){if(!i&&!t2(n)&&r.state===me.RECONNECTING){r.queuedRequests.push(()=>S(r,void 0,void 0,function*(){yield this.sendRequest(n,!0)}));return}if(i||(yield r.requestQueue.flush()),r.signalLatency&&(yield ut(r.signalLatency)),!r.ws||r.ws.readyState!==r.ws.OPEN){r.log.error("cannot send signal request before connected, type: ".concat(n==null?void 0:n.case),r.logContext);return}const o=new Rw({message:n});try{r.useJSON?r.ws.send(o.toJsonString()):r.ws.send(o.toBinary())}catch(a){r.log.error("error sending signal message",Object.assign(Object.assign({},r.logContext),{error:a}))}}()})}handleSignalResponse(e){var n,r;const i=e.message;if(i==null){this.log.debug("received unsupported message",this.logContext);return}let s=!1;if(i.case==="answer"){const o=j0(i.value);this.onAnswer&&this.onAnswer(o)}else if(i.case==="offer"){const o=j0(i.value);this.onOffer&&this.onOffer(o)}else if(i.case==="trickle"){const o=JSON.parse(i.value.candidateInit);this.onTrickle&&this.onTrickle(o,i.value.target)}else i.case==="update"?this.onParticipantUpdate&&this.onParticipantUpdate((n=i.value.participants)!==null&&n!==void 0?n:[]):i.case==="trackPublished"?this.onLocalTrackPublished&&this.onLocalTrackPublished(i.value):i.case==="speakersChanged"?this.onSpeakersChanged&&this.onSpeakersChanged((r=i.value.speakers)!==null&&r!==void 0?r:[]):i.case==="leave"?this.onLeave&&this.onLeave(i.value):i.case==="mute"?this.onRemoteMuteChanged&&this.onRemoteMuteChanged(i.value.sid,i.value.muted):i.case==="roomUpdate"?this.onRoomUpdate&&i.value.room&&this.onRoomUpdate(i.value.room):i.case==="connectionQuality"?this.onConnectionQuality&&this.onConnectionQuality(i.value):i.case==="streamStateUpdate"?this.onStreamStateUpdate&&this.onStreamStateUpdate(i.value):i.case==="subscribedQualityUpdate"?this.onSubscribedQualityUpdate&&this.onSubscribedQualityUpdate(i.value):i.case==="subscriptionPermissionUpdate"?this.onSubscriptionPermissionUpdate&&this.onSubscriptionPermissionUpdate(i.value):i.case==="refreshToken"?this.onTokenRefresh&&this.onTokenRefresh(i.value):i.case==="trackUnpublished"?this.onLocalTrackUnpublished&&this.onLocalTrackUnpublished(i.value):i.case==="subscriptionResponse"?this.onSubscriptionError&&this.onSubscriptionError(i.value):i.case==="pong"||(i.case==="pongResp"?(this.rtt=Date.now()-Number.parseInt(i.value.lastPingTimestamp.toString()),this.resetPingTimeout(),s=!0):i.case==="requestResponse"?this.onRequestResponse&&this.onRequestResponse(i.value):i.case==="trackSubscribed"?this.onLocalTrackSubscribed&&this.onLocalTrackSubscribed(i.value.trackSid):this.log.debug("unsupported message",Object.assign(Object.assign({},this.logContext),{msgCase:i.case})));s||this.resetPingTimeout()}setReconnected(){for(;this.queuedRequests.length>0;){const e=this.queuedRequests.shift();e&&this.requestQueue.run(e)}}handleOnClose(e){return S(this,void 0,void 0,function*(){if(this.state===me.DISCONNECTED)return;const n=this.onClose;yield this.close(),this.log.debug("websocket connection closed: ".concat(e),Object.assign(Object.assign({},this.logContext),{reason:e})),n&&n(e)})}handleWSError(e){this.log.error("websocket error",Object.assign(Object.assign({},this.logContext),{error:e}))}resetPingTimeout(){if(this.clearPingTimeout(),!this.pingTimeoutDuration){this.log.warn("ping timeout duration not set",this.logContext);return}this.pingTimeout=He.setTimeout(()=>{this.log.warn("ping timeout triggered. last pong received at: ".concat(new Date(Date.now()-this.pingTimeoutDuration*1e3).toUTCString()),this.logContext),this.handleOnClose("ping timeout")},this.pingTimeoutDuration*1e3)}clearPingTimeout(){this.pingTimeout&&He.clearTimeout(this.pingTimeout)}startPingInterval(){if(this.clearPingInterval(),this.resetPingTimeout(),!this.pingIntervalDuration){this.log.warn("ping interval duration not set",this.logContext);return}this.log.debug("start ping interval",this.logContext),this.pingInterval=He.setInterval(()=>{this.sendPing()},this.pingIntervalDuration*1e3)}clearPingInterval(){this.log.debug("clearing ping interval",this.logContext),this.clearPingTimeout(),this.pingInterval&&He.clearInterval(this.pingInterval)}}function j0(t){const e={type:"offer",sdp:t.sdp};switch(t.type){case"answer":case"offer":case"pranswer":case"rollback":e.type=t.type;break}return e}function $a(t){return new Tr({sdp:t.sdp,type:t.type})}function n2(t,e,n){var r;const i=new URLSearchParams;return i.set("access_token",t),n.reconnect&&(i.set("reconnect","1"),n.sid&&i.set("sid",n.sid)),i.set("auto_subscribe",n.autoSubscribe?"1":"0"),i.set("sdk",rn()?"reactnative":"js"),i.set("version",e.version),i.set("protocol",e.protocol.toString()),e.deviceModel&&i.set("device_model",e.deviceModel),e.os&&i.set("os",e.os),e.osVersion&&i.set("os_version",e.osVersion),e.browser&&i.set("browser",e.browser),e.browserVersion&&i.set("browser_version",e.browserVersion),n.adaptiveStream&&i.set("adaptive_stream","1"),n.reconnectReason&&i.set("reconnect_reason",n.reconnectReason.toString()),!((r=navigator.connection)===null||r===void 0)&&r.type&&i.set("network",navigator.connection.type),i}var Ht={},Od={},Ld={exports:{}},U0;function Md(){if(U0)return Ld.exports;U0=1;var t=Ld.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return e.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return e.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return e.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var n="candidate:%s %d %s %d %s %d typ %s";return n+=e.raddr!=null?" raddr %s rport %d":"%v%v",n+=e.tcptype!=null?" tcptype %s":"%v",e.generation!=null&&(n+=" generation %d"),n+=e["network-id"]!=null?" network-id %d":"%v",n+=e["network-cost"]!=null?" network-cost %d":"%v",n}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var n="ssrc:%d";return e.attribute!=null&&(n+=" %s",e.value!=null&&(n+=":%s")),n}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return e.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(e.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var n="mediaclk:";return n+=e.id!=null?"id=%s %s":"%v%s",n+=e.mediaClockValue!=null?"=%s":"",n+=e.rateNumerator!=null?" rate=%s":"",n+=e.rateDenominator!=null?"/%s":"",n}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};return Object.keys(t).forEach(function(e){var n=t[e];n.forEach(function(r){r.reg||(r.reg=/(.*)/),r.format||(r.format="%s")})}),Ld.exports}var F0;function r2(){return F0||(F0=1,function(t){var e=function(a){return String(Number(a))===a?Number(a):a},n=function(a,l,c,u){if(u&&!c)l[u]=e(a[1]);else for(var d=0;d<c.length;d+=1)a[d+1]!=null&&(l[c[d]]=e(a[d+1]))},r=function(a,l,c){var u=a.name&&a.names;a.push&&!l[a.push]?l[a.push]=[]:u&&!l[a.name]&&(l[a.name]={});var d=a.push?{}:u?l[a.name]:l;n(c.match(a.reg),d,a.names,a.name),a.push&&l[a.push].push(d)},i=Md(),s=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(a){var l={},c=[],u=l;return a.split(/(\r\n|\r|\n)/).filter(s).forEach(function(d){var h=d[0],f=d.slice(2);h==="m"&&(c.push({rtp:[],fmtp:[]}),u=c[c.length-1]);for(var m=0;m<(i[h]||[]).length;m+=1){var g=i[h][m];if(g.reg.test(f))return r(g,u,f)}}),l.media=c,l};var o=function(a,l){var c=l.split(/=(.+)/,2);return c.length===2?a[c[0]]=e(c[1]):c.length===1&&l.length>1&&(a[c[0]]=void 0),a};t.parseParams=function(a){return a.split(/;\s?/).reduce(o,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(a){return a.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(a){for(var l=[],c=a.split(" ").map(e),u=0;u<c.length;u+=3)l.push({component:c[u],ip:c[u+1],port:c[u+2]});return l},t.parseImageAttributes=function(a){return a.split(" ").map(function(l){return l.substring(1,l.length-1).split(",").reduce(o,{})})},t.parseSimulcastStreamList=function(a){return a.split(";").map(function(l){return l.split(",").map(function(c){var u,d=!1;return c[0]!=="~"?u=e(c):(u=e(c.substring(1,c.length)),d=!0),{scid:u,paused:d}})})}}(Od)),Od}var Nd,B0;function i2(){if(B0)return Nd;B0=1;var t=Md(),e=/%[sdv%]/g,n=function(o){var a=1,l=arguments,c=l.length;return o.replace(e,function(u){if(a>=c)return u;var d=l[a];switch(a+=1,u){case"%%":return"%";case"%s":return String(d);case"%d":return Number(d);case"%v":return""}})},r=function(o,a,l){var c=a.format instanceof Function?a.format(a.push?l:l[a.name]):a.format,u=[o+"="+c];if(a.names)for(var d=0;d<a.names.length;d+=1){var h=a.names[d];a.name?u.push(l[a.name][h]):u.push(l[a.names[d]])}else u.push(l[a.name]);return n.apply(null,u)},i=["v","o","s","i","u","e","p","c","b","t","r","z","a"],s=["i","c","b","a"];return Nd=function(o,a){a=a||{},o.version==null&&(o.version=0),o.name==null&&(o.name=" "),o.media.forEach(function(d){d.payloads==null&&(d.payloads="")});var l=a.outerOrder||i,c=a.innerOrder||s,u=[];return l.forEach(function(d){t[d].forEach(function(h){h.name in o&&o[h.name]!=null?u.push(r(d,h,o)):h.push in o&&o[h.push]!=null&&o[h.push].forEach(function(f){u.push(r(d,h,f))})})}),o.media.forEach(function(d){u.push(r("m",t.m[0],d)),c.forEach(function(h){t[h].forEach(function(f){f.name in d&&d[f.name]!=null?u.push(r(h,f,d)):f.push in d&&d[f.push]!=null&&d[f.push].forEach(function(m){u.push(r(h,f,m))})})})}),u.join(`\r
|
|
95
|
+
`);t.RTCSessionDescription&&i instanceof t.RTCSessionDescription?arguments[0]=new t.RTCSessionDescription({type:i.type,sdp:s}):i.sdp=s}return n.apply(this,arguments)}}function Aa(t,e){if(!(t.RTCPeerConnection&&t.RTCPeerConnection.prototype))return;const n=t.RTCPeerConnection.prototype.addIceCandidate;!n||n.length===0||(t.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(e.browser==="chrome"&&e.version<78||e.browser==="firefox"&&e.version<68||e.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function ja(t,e){if(!(t.RTCPeerConnection&&t.RTCPeerConnection.prototype))return;const n=t.RTCPeerConnection.prototype.setLocalDescription;!n||n.length===0||(t.RTCPeerConnection.prototype.setLocalDescription=function(){let i=arguments[0]||{};if(typeof i!="object"||i.type&&i.sdp)return n.apply(this,arguments);if(i={type:i.type,sdp:i.sdp},!i.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":i.type="offer";break;default:i.type="answer";break}return i.sdp||i.type!=="offer"&&i.type!=="answer"?n.apply(this,[i]):(i.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(o=>n.apply(this,[o]))})}var uT=Object.freeze({__proto__:null,removeExtmapAllowMixed:ld,shimAddIceCandidateNullOrEmpty:Aa,shimConnectionState:ad,shimMaxMessageSize:Na,shimParameterlessSetLocalDescription:ja,shimRTCIceCandidate:Ma,shimRTCIceCandidateRelayProtocol:od,shimSendThrowTypeError:Da});function dT(){let{window:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0};const n=Nv,r=oT(t),i={browserDetails:r,commonShim:uT,extractVersion:La,disableLog:iT,disableWarnings:sT,sdp:cT};switch(r.browser){case"chrome":if(!Gv||!rd||!e.shimChrome)return n("Chrome shim is not included in this adapter release."),i;if(r.version===null)return n("Chrome shim can not determine version, not shimming."),i;n("adapter.js shimming chrome."),i.browserShim=Gv,Aa(t,r),ja(t),Fv(t,r),Bv(t),rd(t,r),zv(t),qv(t,r),Vv(t),Hv(t),Wv(t,r),Ma(t),od(t),ad(t),Na(t,r),Da(t),ld(t,r);break;case"firefox":if(!i0||!id||!e.shimFirefox)return n("Firefox shim is not included in this adapter release."),i;n("adapter.js shimming firefox."),i.browserShim=i0,Aa(t,r),ja(t),Kv(t,r),id(t,r),Zv(t),Jv(t),Qv(t),Yv(t),Xv(t),e0(t),t0(t),n0(t),r0(t),Ma(t),ad(t),Na(t,r),Da(t);break;case"safari":if(!p0||!e.shimSafari)return n("Safari shim is not included in this adapter release."),i;n("adapter.js shimming safari."),i.browserShim=p0,Aa(t,r),ja(t),u0(t),h0(t),a0(t),s0(t),o0(t),d0(t),l0(t),f0(t),Ma(t),od(t),Na(t,r),Da(t),ld(t,r);break;default:n("Unsupported browser!");break}return i}dT({window:typeof window>"u"?void 0:window});const hT=10,Ua="lk_e2ee",fT={sharedKey:!1,ratchetSalt:"LKFrameEncryptionKey",ratchetWindowSize:8,failureTolerance:hT,keyringSize:16};var Gn;(function(t){t.SetKey="setKey",t.RatchetRequest="ratchetRequest",t.KeyRatcheted="keyRatcheted"})(Gn||(Gn={}));var v0;(function(t){t.KeyRatcheted="keyRatcheted"})(v0||(v0={}));var Kn;(function(t){t.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",t.EncryptionError="encryptionError"})(Kn||(Kn={}));var y0;(function(t){t.Error="cryptorError"})(y0||(y0={}));function pT(){return mT()||cd()}function cd(){return typeof window.RTCRtpScriptTransform<"u"}function mT(){return typeof window.RTCRtpSender<"u"&&typeof window.RTCRtpSender.prototype.createEncodedStreams<"u"}class WE extends nn.EventEmitter{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(),this.onKeyRatcheted=(n,r)=>{K.debug("key ratcheted event received",{material:n,keyIndex:r})},this.keyInfoMap=new Map,this.options=Object.assign(Object.assign({},fT),e),this.on(Gn.KeyRatcheted,this.onKeyRatcheted)}onSetEncryptionKey(e,n,r){const i={key:e,participantIdentity:n,keyIndex:r};if(!this.options.sharedKey&&!n)throw new Error("participant identity needs to be passed for encryption key if sharedKey option is false");this.keyInfoMap.set("".concat(n??"shared","-").concat(r??0),i),this.emit(Gn.SetKey,i)}getKeys(){return Array.from(this.keyInfoMap.values())}getOptions(){return this.options}ratchetKey(e,n){this.emit(Gn.RatchetRequest,e,n)}}class Zn extends Error{constructor(e,n){super(n||"an error has occured"),this.name="LiveKitError",this.code=e}}var Z;(function(t){t[t.NotAllowed=0]="NotAllowed",t[t.ServerUnreachable=1]="ServerUnreachable",t[t.InternalError=2]="InternalError",t[t.Cancelled=3]="Cancelled",t[t.LeaveRequest=4]="LeaveRequest"})(Z||(Z={}));class ce extends Zn{constructor(e,n,r,i){super(1,e),this.name="ConnectionError",this.status=r,this.reason=n,this.context=i,this.reasonName=Z[n]}}class ud extends Zn{constructor(e){super(21,e??"device is unsupported"),this.name="DeviceUnsupportedError"}}class kn extends Zn{constructor(e){super(20,e??"track is invalid"),this.name="TrackInvalidError"}}class gT extends Zn{constructor(e){super(10,e??"unsupported server"),this.name="UnsupportedServer"}}class Me extends Zn{constructor(e){super(12,e??"unexpected connection state"),this.name="UnexpectedConnectionState"}}class dd extends Zn{constructor(e){super(13,e??"unable to negotiate"),this.name="NegotiationError"}}class vT extends Zn{constructor(e,n){super(15,e),this.name="PublishTrackError",this.status=n}}class k0 extends Zn{constructor(e,n){super(15,e),this.reason=n,this.reasonName=typeof n=="string"?n:Xu[n]}}var Fa;(function(t){t.PermissionDenied="PermissionDenied",t.NotFound="NotFound",t.DeviceInUse="DeviceInUse",t.Other="Other"})(Fa||(Fa={})),function(t){function e(n){if(n&&"name"in n)return n.name==="NotFoundError"||n.name==="DevicesNotFoundError"?t.NotFound:n.name==="NotAllowedError"||n.name==="PermissionDeniedError"?t.PermissionDenied:n.name==="NotReadableError"||n.name==="TrackStartError"?t.DeviceInUse:t.Other}t.getFailure=e}(Fa||(Fa={}));var b0;(function(t){t[t.InvalidKey=0]="InvalidKey",t[t.MissingKey=1]="MissingKey",t[t.InternalError=2]="InternalError"})(b0||(b0={}));var M;(function(t){t.Connected="connected",t.Reconnecting="reconnecting",t.SignalReconnecting="signalReconnecting",t.Reconnected="reconnected",t.Disconnected="disconnected",t.ConnectionStateChanged="connectionStateChanged",t.MediaDevicesChanged="mediaDevicesChanged",t.ParticipantConnected="participantConnected",t.ParticipantDisconnected="participantDisconnected",t.TrackPublished="trackPublished",t.TrackSubscribed="trackSubscribed",t.TrackSubscriptionFailed="trackSubscriptionFailed",t.TrackUnpublished="trackUnpublished",t.TrackUnsubscribed="trackUnsubscribed",t.TrackMuted="trackMuted",t.TrackUnmuted="trackUnmuted",t.LocalTrackPublished="localTrackPublished",t.LocalTrackUnpublished="localTrackUnpublished",t.LocalAudioSilenceDetected="localAudioSilenceDetected",t.ActiveSpeakersChanged="activeSpeakersChanged",t.ParticipantMetadataChanged="participantMetadataChanged",t.ParticipantNameChanged="participantNameChanged",t.ParticipantAttributesChanged="participantAttributesChanged",t.RoomMetadataChanged="roomMetadataChanged",t.DataReceived="dataReceived",t.SipDTMFReceived="sipDTMFReceived",t.TranscriptionReceived="transcriptionReceived",t.ConnectionQualityChanged="connectionQualityChanged",t.TrackStreamStateChanged="trackStreamStateChanged",t.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",t.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",t.AudioPlaybackStatusChanged="audioPlaybackChanged",t.VideoPlaybackStatusChanged="videoPlaybackChanged",t.MediaDevicesError="mediaDevicesError",t.ParticipantPermissionsChanged="participantPermissionsChanged",t.SignalConnected="signalConnected",t.RecordingStatusChanged="recordingStatusChanged",t.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",t.EncryptionError="encryptionError",t.DCBufferStatusChanged="dcBufferStatusChanged",t.ActiveDeviceChanged="activeDeviceChanged",t.ChatMessage="chatMessage",t.LocalTrackSubscribed="localTrackSubscribed",t.MetricsReceived="metricsReceived"})(M||(M={}));var A;(function(t){t.TrackPublished="trackPublished",t.TrackSubscribed="trackSubscribed",t.TrackSubscriptionFailed="trackSubscriptionFailed",t.TrackUnpublished="trackUnpublished",t.TrackUnsubscribed="trackUnsubscribed",t.TrackMuted="trackMuted",t.TrackUnmuted="trackUnmuted",t.LocalTrackPublished="localTrackPublished",t.LocalTrackUnpublished="localTrackUnpublished",t.ParticipantMetadataChanged="participantMetadataChanged",t.ParticipantNameChanged="participantNameChanged",t.DataReceived="dataReceived",t.SipDTMFReceived="sipDTMFReceived",t.TranscriptionReceived="transcriptionReceived",t.IsSpeakingChanged="isSpeakingChanged",t.ConnectionQualityChanged="connectionQualityChanged",t.TrackStreamStateChanged="trackStreamStateChanged",t.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",t.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",t.MediaDevicesError="mediaDevicesError",t.AudioStreamAcquired="audioStreamAcquired",t.ParticipantPermissionsChanged="participantPermissionsChanged",t.PCTrackAdded="pcTrackAdded",t.AttributesChanged="attributesChanged",t.LocalTrackSubscribed="localTrackSubscribed",t.ChatMessage="chatMessage"})(A||(A={}));var D;(function(t){t.TransportsCreated="transportsCreated",t.Connected="connected",t.Disconnected="disconnected",t.Resuming="resuming",t.Resumed="resumed",t.Restarting="restarting",t.Restarted="restarted",t.SignalResumed="signalResumed",t.SignalRestarted="signalRestarted",t.Closing="closing",t.MediaTrackAdded="mediaTrackAdded",t.ActiveSpeakersUpdate="activeSpeakersUpdate",t.DataPacketReceived="dataPacketReceived",t.RTPVideoMapUpdate="rtpVideoMapUpdate",t.DCBufferStatusChanged="dcBufferStatusChanged",t.ParticipantUpdate="participantUpdate",t.RoomUpdate="roomUpdate",t.SpeakersChanged="speakersChanged",t.StreamStateChanged="streamStateChanged",t.ConnectionQualityUpdate="connectionQualityUpdate",t.SubscriptionError="subscriptionError",t.SubscriptionPermissionUpdate="subscriptionPermissionUpdate",t.RemoteMute="remoteMute",t.SubscribedQualityUpdate="subscribedQualityUpdate",t.LocalTrackUnpublished="localTrackUnpublished",t.LocalTrackSubscribed="localTrackSubscribed",t.Offline="offline",t.SignalRequestResponse="signalRequestResponse"})(D||(D={}));var N;(function(t){t.Message="message",t.Muted="muted",t.Unmuted="unmuted",t.Restarted="restarted",t.Ended="ended",t.Subscribed="subscribed",t.Unsubscribed="unsubscribed",t.UpdateSettings="updateSettings",t.UpdateSubscription="updateSubscription",t.AudioPlaybackStarted="audioPlaybackStarted",t.AudioPlaybackFailed="audioPlaybackFailed",t.AudioSilenceDetected="audioSilenceDetected",t.VisibilityChanged="visibilityChanged",t.VideoDimensionsChanged="videoDimensionsChanged",t.VideoPlaybackStarted="videoPlaybackStarted",t.VideoPlaybackFailed="videoPlaybackFailed",t.ElementAttached="elementAttached",t.ElementDetached="elementDetached",t.UpstreamPaused="upstreamPaused",t.UpstreamResumed="upstreamResumed",t.SubscriptionPermissionChanged="subscriptionPermissionChanged",t.SubscriptionStatusChanged="subscriptionStatusChanged",t.SubscriptionFailed="subscriptionFailed",t.TrackProcessorUpdate="trackProcessorUpdate",t.AudioTrackFeatureUpdate="audioTrackFeatureUpdate",t.TranscriptionReceived="transcriptionReceived",t.TimeSyncUpdate="timeSyncUpdate"})(N||(N={}));function yT(t){if(!(typeof t>"u"))return typeof structuredClone=="function"?structuredClone(t):JSON.parse(JSON.stringify(t))}const kT=/version\/(\d+(\.?_?\d+)+)/i;let hd;function Vt(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(typeof navigator>"u")return;const n=navigator.userAgent.toLowerCase();if(hd===void 0||e){const r=bT.find(i=>{let{test:s}=i;return s.test(n)});hd=r==null?void 0:r.describe(n)}return hd}const bT=[{test:/firefox|iceweasel|fxios/i,describe(t){return{name:"Firefox",version:Ba(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t),os:t.toLowerCase().includes("fxios")?"iOS":void 0,osVersion:fd(t)}}},{test:/chrom|crios|crmo/i,describe(t){return{name:"Chrome",version:Ba(/(?:chrome|chromium|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t),os:t.toLowerCase().includes("crios")?"iOS":void 0,osVersion:fd(t)}}},{test:/safari|applewebkit/i,describe(t){return{name:"Safari",version:Ba(kT,t),os:t.includes("mobile/")?"iOS":"macOS",osVersion:fd(t)}}}];function Ba(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;const r=e.match(t);return r&&r.length>=n&&r[n]||""}function fd(t){return t.includes("mac os")?Ba(/\(.+?(\d+_\d+(:?_\d+)?)/,t,1).replace(/_/g,"."):void 0}var CT="2.10.0";const ST=CT,wT=15;class He{}He.setTimeout=function(){return setTimeout(...arguments)},He.setInterval=function(){return setInterval(...arguments)},He.clearTimeout=function(){return clearTimeout(...arguments)},He.clearInterval=function(){return clearInterval(...arguments)};const TT=5e3,Is=[];var Et;(function(t){t[t.LOW=0]="LOW",t[t.MEDIUM=1]="MEDIUM",t[t.HIGH=2]="HIGH"})(Et||(Et={}));class O extends nn.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var i;super(),this.attachedElements=[],this.isMuted=!1,this.streamState=O.StreamState.Active,this.isInBackground=!1,this._currentBitrate=0,this.log=K,this.appVisibilityChangedListener=()=>{this.backgroundTimeout&&clearTimeout(this.backgroundTimeout),document.visibilityState==="hidden"?this.backgroundTimeout=setTimeout(()=>this.handleAppVisibilityChanged(),TT):this.handleAppVisibilityChanged()},this.log=yn((i=r.loggerName)!==null&&i!==void 0?i:zt.Track),this.loggerContextCb=r.loggerContextCb,this.setMaxListeners(100),this.kind=n,this._mediaStreamTrack=e,this._mediaStreamID=e.id,this.source=O.Source.Unknown}get logContext(){var e;return Object.assign(Object.assign({},(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this)),ie(this))}get currentBitrate(){return this._currentBitrate}get mediaStreamTrack(){return this._mediaStreamTrack}get mediaStreamID(){return this._mediaStreamID}attach(e){let n="audio";this.kind===O.Kind.Video&&(n="video"),this.attachedElements.length===0&&this.kind===O.Kind.Video&&this.addAppVisibilityListener(),e||(n==="audio"&&(Is.forEach(s=>{s.parentElement===null&&!e&&(e=s)}),e&&Is.splice(Is.indexOf(e),1)),e||(e=document.createElement(n))),this.attachedElements.includes(e)||this.attachedElements.push(e),bi(this.mediaStreamTrack,e);const r=e.srcObject.getTracks(),i=r.some(s=>s.kind==="audio");return e.play().then(()=>{this.emit(i?N.AudioPlaybackStarted:N.VideoPlaybackStarted)}).catch(s=>{s.name==="NotAllowedError"?this.emit(i?N.AudioPlaybackFailed:N.VideoPlaybackFailed,s):s.name==="AbortError"?K.debug("".concat(i?"audio":"video"," playback aborted, likely due to new play request")):K.warn("could not playback ".concat(i?"audio":"video"),s),i&&e&&r.some(o=>o.kind==="video")&&s.name==="NotAllowedError"&&(e.muted=!0,e.play().catch(()=>{}))}),this.emit(N.ElementAttached,e),e}detach(e){try{if(e){Ci(this.mediaStreamTrack,e);const r=this.attachedElements.indexOf(e);return r>=0&&(this.attachedElements.splice(r,1),this.recycleElement(e),this.emit(N.ElementDetached,e)),e}const n=[];return this.attachedElements.forEach(r=>{Ci(this.mediaStreamTrack,r),n.push(r),this.recycleElement(r),this.emit(N.ElementDetached,r)}),this.attachedElements=[],n}finally{this.attachedElements.length===0&&this.removeAppVisibilityListener()}}stop(){this.stopMonitor(),this._mediaStreamTrack.stop()}enable(){this._mediaStreamTrack.enabled=!0}disable(){this._mediaStreamTrack.enabled=!1}stopMonitor(){this.monitorInterval&&clearInterval(this.monitorInterval),this.timeSyncHandle&&cancelAnimationFrame(this.timeSyncHandle)}updateLoggerOptions(e){e.loggerName&&(this.log=yn(e.loggerName)),e.loggerContextCb&&(this.loggerContextCb=e.loggerContextCb)}recycleElement(e){if(e instanceof HTMLAudioElement){let n=!0;e.pause(),Is.forEach(r=>{r.parentElement||(n=!1)}),n&&Is.push(e)}}handleAppVisibilityChanged(){return S(this,void 0,void 0,function*(){this.isInBackground=document.visibilityState==="hidden",!this.isInBackground&&this.kind===O.Kind.Video&&setTimeout(()=>this.attachedElements.forEach(e=>e.play().catch(()=>{})),0)})}addAppVisibilityListener(){dt()?(this.isInBackground=document.visibilityState==="hidden",document.addEventListener("visibilitychange",this.appVisibilityChangedListener)):this.isInBackground=!1}removeAppVisibilityListener(){dt()&&document.removeEventListener("visibilitychange",this.appVisibilityChangedListener)}}function bi(t,e){let n;e.srcObject instanceof MediaStream?n=e.srcObject:n=new MediaStream;let r;t.kind==="audio"?r=n.getAudioTracks():r=n.getVideoTracks(),r.includes(t)||(r.forEach(i=>{n.removeTrack(i)}),n.addTrack(t)),(!Qn()||!(e instanceof HTMLVideoElement))&&(e.autoplay=!0),e.muted=n.getAudioTracks().length===0,e instanceof HTMLVideoElement&&(e.playsInline=!0),e.srcObject!==n&&(e.srcObject=n,(Qn()||Si())&&e instanceof HTMLVideoElement&&setTimeout(()=>{e.srcObject=n,e.play().catch(()=>{})},0))}function Ci(t,e){if(e.srcObject instanceof MediaStream){const n=e.srcObject;n.removeTrack(t),n.getTracks().length>0?e.srcObject=n:e.srcObject=null}}(function(t){let e;(function(c){c.Audio="audio",c.Video="video",c.Unknown="unknown"})(e=t.Kind||(t.Kind={}));let n;(function(c){c.Camera="camera",c.Microphone="microphone",c.ScreenShare="screen_share",c.ScreenShareAudio="screen_share_audio",c.Unknown="unknown"})(n=t.Source||(t.Source={}));let r;(function(c){c.Active="active",c.Paused="paused",c.Unknown="unknown"})(r=t.StreamState||(t.StreamState={}));function i(c){switch(c){case e.Audio:return Ut.AUDIO;case e.Video:return Ut.VIDEO;default:return Ut.DATA}}t.kindToProto=i;function s(c){switch(c){case Ut.AUDIO:return e.Audio;case Ut.VIDEO:return e.Video;default:return e.Unknown}}t.kindFromProto=s;function o(c){switch(c){case n.Camera:return Re.CAMERA;case n.Microphone:return Re.MICROPHONE;case n.ScreenShare:return Re.SCREEN_SHARE;case n.ScreenShareAudio:return Re.SCREEN_SHARE_AUDIO;default:return Re.UNKNOWN}}t.sourceToProto=o;function a(c){switch(c){case Re.CAMERA:return n.Camera;case Re.MICROPHONE:return n.Microphone;case Re.SCREEN_SHARE:return n.ScreenShare;case Re.SCREEN_SHARE_AUDIO:return n.ScreenShareAudio;default:return n.Unknown}}t.sourceFromProto=a;function l(c){switch(c){case Wu.ACTIVE:return r.Active;case Wu.PAUSED:return r.Paused;default:return r.Unknown}}t.streamStateFromProto=l})(O||(O={}));class ae{constructor(e,n,r,i,s){if(typeof e=="object")this.width=e.width,this.height=e.height,this.aspectRatio=e.aspectRatio,this.encoding={maxBitrate:e.maxBitrate,maxFramerate:e.maxFramerate,priority:e.priority};else if(n!==void 0&&r!==void 0)this.width=e,this.height=n,this.aspectRatio=e/n,this.encoding={maxBitrate:r,maxFramerate:i,priority:s};else throw new TypeError("Unsupported options: provide at least width, height and maxBitrate")}get resolution(){return{width:this.width,height:this.height,frameRate:this.encoding.maxFramerate,aspectRatio:this.aspectRatio}}}const xT=["vp8","h264"],ET=["vp8","h264","vp9","av1"];function PT(t){return!!xT.find(e=>e===t)}var C0;(function(t){t[t.PREFER_REGRESSION=0]="PREFER_REGRESSION",t[t.SIMULCAST=1]="SIMULCAST",t[t.REGRESSION=2]="REGRESSION"})(C0||(C0={}));var pd;(function(t){t.telephone={maxBitrate:12e3},t.speech={maxBitrate:24e3},t.music={maxBitrate:48e3},t.musicStereo={maxBitrate:64e3},t.musicHighQuality={maxBitrate:96e3},t.musicHighQualityStereo={maxBitrate:128e3}})(pd||(pd={}));const Os={h90:new ae(160,90,9e4,20),h180:new ae(320,180,16e4,20),h216:new ae(384,216,18e4,20),h360:new ae(640,360,45e4,20),h540:new ae(960,540,8e5,25),h720:new ae(1280,720,17e5,30),h1080:new ae(1920,1080,3e6,30),h1440:new ae(2560,1440,5e6,30),h2160:new ae(3840,2160,8e6,30)},md={h120:new ae(160,120,7e4,20),h180:new ae(240,180,125e3,20),h240:new ae(320,240,14e4,20),h360:new ae(480,360,33e4,20),h480:new ae(640,480,5e5,20),h540:new ae(720,540,6e5,25),h720:new ae(960,720,13e5,30),h1080:new ae(1440,1080,23e5,30),h1440:new ae(1920,1440,38e5,30)},gd={h360fps3:new ae(640,360,2e5,3,"medium"),h360fps15:new ae(640,360,4e5,15,"medium"),h720fps5:new ae(1280,720,8e5,5,"medium"),h720fps15:new ae(1280,720,15e5,15,"medium"),h720fps30:new ae(1280,720,2e6,30,"medium"),h1080fps15:new ae(1920,1080,25e5,15,"medium"),h1080fps30:new ae(1920,1080,5e6,30,"medium"),original:new ae(0,0,7e6,30,"medium")},_T="|",S0="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";function RT(t){const e=t.split(_T);return e.length>1?[e[0],t.substr(e[0].length+1)]:[t,""]}function ut(t){return S(this,void 0,void 0,function*(){return new Promise(e=>He.setTimeout(e,t))})}function vd(){return"addTransceiver"in RTCPeerConnection.prototype}function yd(){return"addTrack"in RTCPeerConnection.prototype}function IT(){if(!("getCapabilities"in RTCRtpSender)||Qn())return!1;const t=RTCRtpSender.getCapabilities("video");let e=!1;if(t){for(const n of t.codecs)if(n.mimeType==="video/AV1"){e=!0;break}}return e}function OT(){if(!("getCapabilities"in RTCRtpSender)||Si())return!1;if(Qn()){const n=Vt();if(n!=null&&n.version&&Er(n.version,"16")<0)return!1}const t=RTCRtpSender.getCapabilities("video");let e=!1;if(t){for(const n of t.codecs)if(n.mimeType==="video/VP9"){e=!0;break}}return e}function Ls(t){return t==="av1"||t==="vp9"}function kd(t){return document?(t||(t=document.createElement("audio")),"setSinkId"in t):!1}function LT(){return typeof RTCPeerConnection>"u"?!1:vd()||yd()}function Si(){var t;return((t=Vt())===null||t===void 0?void 0:t.name)==="Firefox"}function Qn(){var t;return((t=Vt())===null||t===void 0?void 0:t.name)==="Safari"}function MT(){const t=Vt();return(t==null?void 0:t.name)==="Safari"&&t.version.startsWith("17.")}function w0(){var t,e;return dt()?(e=(t=navigator.userAgentData)===null||t===void 0?void 0:t.mobile)!==null&&e!==void 0?e:/Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent):!1}function NT(){const t=Vt(),e="17.2";if(t)return t.name!=="Safari"&&t.os!=="iOS"||t.os==="iOS"&&t.osVersion&&Er(e,t.osVersion)>=0?!0:t.name==="Safari"&&Er(e,t.version)>=0}function dt(){return typeof document<"u"}function rn(){return navigator.product=="ReactNative"}function bd(t){return t.hostname.endsWith(".livekit.cloud")||t.hostname.endsWith(".livekit.run")}function T0(){if(global&&global.LiveKitReactNativeGlobal)return global.LiveKitReactNativeGlobal}function x0(){if(!rn())return;let t=T0();if(t)return t.platform}function E0(){if(dt())return window.devicePixelRatio;if(rn()){let t=T0();if(t)return t.devicePixelRatio}return 1}function Er(t,e){const n=t.split("."),r=e.split("."),i=Math.min(n.length,r.length);for(let s=0;s<i;++s){const o=parseInt(n[s],10),a=parseInt(r[s],10);if(o>a)return 1;if(o<a)return-1;if(s===i-1&&o===a)return 0}return t===""&&e!==""?-1:e===""?1:n.length==r.length?0:n.length<r.length?-1:1}function DT(t){for(const e of t)e.target.handleResize(e)}function AT(t){for(const e of t)e.target.handleVisibilityChanged(e)}let Cd=null;const P0=()=>(Cd||(Cd=new ResizeObserver(DT)),Cd);let Sd=null;const _0=()=>(Sd||(Sd=new IntersectionObserver(AT,{root:null,rootMargin:"0px"})),Sd);function jT(){var t;const e=new Ew({sdk:hv.JS,protocol:wT,version:ST});return rn()&&(e.os=(t=x0())!==null&&t!==void 0?t:""),e}function R0(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:16,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:16,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const i=document.createElement("canvas");i.width=t,i.height=e;const s=i.getContext("2d");s==null||s.fillRect(0,0,i.width,i.height),r&&s&&(s.beginPath(),s.arc(t/2,e/2,50,0,Math.PI*2,!0),s.closePath(),s.fillStyle="grey",s.fill());const o=i.captureStream(),[a]=o.getTracks();if(!a)throw Error("Could not get empty media stream video track");return a.enabled=n,a}let Ms;function wd(){if(!Ms){const t=new AudioContext,e=t.createOscillator(),n=t.createGain();n.gain.setValueAtTime(0,0);const r=t.createMediaStreamDestination();if(e.connect(n),n.connect(r),e.start(),[Ms]=r.stream.getAudioTracks(),!Ms)throw Error("Could not get empty media stream audio track");Ms.enabled=!1}return Ms.clone()}class I0{constructor(e,n){this.onFinally=n,this.promise=new Promise((r,i)=>S(this,void 0,void 0,function*(){this.resolve=r,this.reject=i,e&&(yield e(r,i))})).finally(()=>{var r;return(r=this.onFinally)===null||r===void 0?void 0:r.call(this)})}}function UT(t){return ET.includes(t)}function Yn(t){if(typeof t=="string"||typeof t=="number")return t;if(Array.isArray(t))return t[0];if(t.exact)return Array.isArray(t.exact)?t.exact[0]:t.exact;if(t.ideal)return Array.isArray(t.ideal)?t.ideal[0]:t.ideal;throw Error("could not unwrap constraint")}function Td(t){return t.startsWith("ws")?t.replace(/^(ws)/,"http"):t}function FT(t,e){return t.segments.map(n=>{let{id:r,text:i,language:s,startTime:o,endTime:a,final:l}=n;var c;const u=(c=e.get(r))!==null&&c!==void 0?c:Date.now(),d=Date.now();return l?e.delete(r):e.set(r,u),{id:r,text:i,startTime:Number.parseInt(o.toString()),endTime:Number.parseInt(a.toString()),final:l,language:s,firstReceivedTime:u,lastReceivedTime:d}})}function BT(t){const{id:e,timestamp:n,message:r,editTimestamp:i}=t;return{id:e,timestamp:Number.parseInt(n.toString()),editTimestamp:i?Number.parseInt(i.toString()):void 0,message:r}}function O0(t){switch(t.reason){case Z.LeaveRequest:return t.context;case Z.Cancelled:return Ft.CLIENT_INITIATED;case Z.NotAllowed:return Ft.USER_REJECTED;case Z.ServerUnreachable:return Ft.JOIN_FAILURE;default:return Ft.UNKNOWN_REASON}}function za(t){return t!==void 0?Number(t):void 0}function Pr(t){return t!==void 0?BigInt(t):void 0}function wi(t){return!!t&&!(t instanceof MediaStreamTrack)&&t.isLocal}function bn(t){return!!t&&t.kind==O.Kind.Audio}function Ti(t){return!!t&&t.kind==O.Kind.Video}function Jn(t){return wi(t)&&Ti(t)}function _r(t){return wi(t)&&bn(t)}function xd(t){return!!t&&!t.isLocal}function zT(t){return!!t&&!t.isLocal}function Ed(t){return xd(t)&&Ti(t)}function VT(t){return t.isLocal}function HT(t,e){const n=[];let r=new TextEncoder().encode(t);for(;r.length>e;){let i=e;for(;i>0;){const s=r[i];if(s!==void 0&&(s&192)!==128)break;i--}n.push(r.slice(0,i)),r=r.slice(i)}return r.length>0&&n.push(r),n}function L0(t,e,n){var r,i,s,o,a;const{optionsWithoutProcessor:l,audioProcessor:c,videoProcessor:u}=_d(t??{}),d=e==null?void 0:e.processor,h=n==null?void 0:n.processor,f=(r=yT(l))!==null&&r!==void 0?r:{};return f.audio===!0&&(f.audio={}),f.video===!0&&(f.video={}),f.audio&&(Pd(f.audio,e),(i=(o=f.audio).deviceId)!==null&&i!==void 0||(o.deviceId="default"),(c||d)&&(f.audio.processor=c??d)),f.video&&(Pd(f.video,n),(s=(a=f.video).deviceId)!==null&&s!==void 0||(a.deviceId="default"),(u||h)&&(f.video.processor=u??h)),f}function Pd(t,e){return Object.keys(e).forEach(n=>{t[n]===void 0&&(t[n]=e[n])}),t}function Va(t){var e,n,r,i;const s={};if(t.video)if(typeof t.video=="object"){const o={},a=o,l=t.video;Object.keys(l).forEach(c=>{switch(c){case"resolution":Pd(a,l.resolution);break;default:a[c]=l[c]}}),s.video=o,(e=(r=s.video).deviceId)!==null&&e!==void 0||(r.deviceId="default")}else s.video=t.video?{deviceId:"default"}:!1;else s.video=!1;return t.audio?typeof t.audio=="object"?(s.audio=t.audio,(n=(i=s.audio).deviceId)!==null&&n!==void 0||(i.deviceId="default")):s.audio={deviceId:"default"}:s.audio=!1,s}function M0(t){return S(this,arguments,void 0,function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:200;return function*(){const r=N0();if(r){const i=r.createAnalyser();i.fftSize=2048;const s=i.frequencyBinCount,o=new Uint8Array(s);r.createMediaStreamSource(new MediaStream([e.mediaStreamTrack])).connect(i),yield ut(n),i.getByteTimeDomainData(o);const l=o.some(c=>c!==128&&c!==0);return r.close(),!l}return!1}()})}function N0(){var t;const e=typeof window<"u"&&(window.AudioContext||window.webkitAudioContext);if(e){const n=new e({latencyHint:"interactive"});if(n.state==="suspended"&&typeof window<"u"&&(!((t=window.document)===null||t===void 0)&&t.body)){const r=()=>S(this,void 0,void 0,function*(){var i;try{n.state==="suspended"&&(yield n.resume())}catch(s){console.warn("Error trying to auto-resume audio context",s)}(i=window.document.body)===null||i===void 0||i.removeEventListener("click",r)});window.document.body.addEventListener("click",r)}return n}}function D0(t){return t===O.Source.Microphone?"audioinput":t===O.Source.Camera?"videoinput":void 0}function $T(t){var e,n;let r=(e=t.video)!==null&&e!==void 0?e:!0;return t.resolution&&t.resolution.width>0&&t.resolution.height>0&&(r=typeof r=="boolean"?{}:r,Qn()?r=Object.assign(Object.assign({},r),{width:{max:t.resolution.width},height:{max:t.resolution.height},frameRate:t.resolution.frameRate}):r=Object.assign(Object.assign({},r),{width:{ideal:t.resolution.width},height:{ideal:t.resolution.height},frameRate:t.resolution.frameRate})),{audio:(n=t.audio)!==null&&n!==void 0?n:!1,video:r,controller:t.controller,selfBrowserSurface:t.selfBrowserSurface,surfaceSwitching:t.surfaceSwitching,systemAudio:t.systemAudio,preferCurrentTab:t.preferCurrentTab}}function Ha(t){return t.split("/")[1].toLowerCase()}function qT(t){const e=[];return t.forEach(n=>{n.track!==void 0&&e.push(new Yu({cid:n.track.mediaStreamID,track:n.trackInfo}))}),e}function ie(t){return"mediaStreamTrack"in t?{trackID:t.sid,source:t.source,muted:t.isMuted,enabled:t.mediaStreamTrack.enabled,kind:t.kind,streamID:t.mediaStreamID,streamTrackID:t.mediaStreamTrack.id}:{trackID:t.trackSid,enabled:t.isEnabled,muted:t.isMuted,trackInfo:Object.assign({mimeType:t.mimeType,name:t.trackName,encrypted:t.isEncrypted,kind:t.kind,source:t.source},t.track?ie(t.track):{})}}function WT(){return typeof RTCRtpReceiver<"u"&&"getSynchronizationSources"in RTCRtpReceiver}function GT(t,e){var n;t===void 0&&(t={}),e===void 0&&(e={});const r=[...Object.keys(e),...Object.keys(t)],i={};for(const s of r)t[s]!==e[s]&&(i[s]=(n=e[s])!==null&&n!==void 0?n:"");return i}function _d(t){const e=Object.assign({},t);let n,r;return typeof e.audio=="object"&&e.audio.processor&&(n=e.audio.processor,e.audio=Object.assign(Object.assign({},e.audio),{processor:void 0})),typeof e.video=="object"&&e.video.processor&&(r=e.video.processor,e.video=Object.assign(Object.assign({},e.video),{processor:void 0})),{audioProcessor:n,videoProcessor:r,optionsWithoutProcessor:e}}function KT(t){switch(t){case Re.CAMERA:return O.Source.Camera;case Re.MICROPHONE:return O.Source.Microphone;case Re.SCREEN_SHARE:return O.Source.ScreenShare;case Re.SCREEN_SHARE_AUDIO:return O.Source.ScreenShareAudio;default:return O.Source.Unknown}}class ZT extends nn.EventEmitter{constructor(e){super(),this.onWorkerMessage=n=>{var r,i;const{kind:s,data:o}=n.data;switch(s){case"error":K.error(o.error.message),this.emit(Kn.EncryptionError,o.error);break;case"initAck":o.enabled&&this.keyProvider.getKeys().forEach(a=>{this.postKey(a)});break;case"enable":if(o.enabled&&this.keyProvider.getKeys().forEach(a=>{this.postKey(a)}),this.encryptionEnabled!==o.enabled&&o.participantIdentity===((r=this.room)===null||r===void 0?void 0:r.localParticipant.identity))this.emit(Kn.ParticipantEncryptionStatusChanged,o.enabled,this.room.localParticipant),this.encryptionEnabled=o.enabled;else if(o.participantIdentity){const a=(i=this.room)===null||i===void 0?void 0:i.getParticipantByIdentity(o.participantIdentity);if(!a)throw TypeError("couldn't set encryption status, participant not found".concat(o.participantIdentity));this.emit(Kn.ParticipantEncryptionStatusChanged,o.enabled,a)}break;case"ratchetKey":this.keyProvider.emit(Gn.KeyRatcheted,o.material,o.keyIndex);break}},this.onWorkerError=n=>{K.error("e2ee worker encountered an error:",{error:n.error}),this.emit(Kn.EncryptionError,n.error)},this.keyProvider=e.keyProvider,this.worker=e.worker,this.encryptionEnabled=!1}setup(e){if(!pT())throw new ud("tried to setup end-to-end encryption on an unsupported browser");if(K.info("setting up e2ee"),e!==this.room){this.room=e,this.setupEventListeners(e,this.keyProvider);const n={kind:"init",data:{keyProviderOptions:this.keyProvider.getOptions(),loglevel:Xw.getLevel()}};this.worker&&(K.info("initializing worker",{worker:this.worker}),this.worker.onmessage=this.onWorkerMessage,this.worker.onerror=this.onWorkerError,this.worker.postMessage(n))}}setParticipantCryptorEnabled(e,n){K.debug("set e2ee to ".concat(e," for participant ").concat(n)),this.postEnable(e,n)}setSifTrailer(e){!e||e.length===0?K.warn("ignoring server sent trailer as it's empty"):this.postSifTrailer(e)}setupEngine(e){e.on(D.RTPVideoMapUpdate,n=>{this.postRTPMap(n)})}setupEventListeners(e,n){e.on(M.TrackPublished,(r,i)=>this.setParticipantCryptorEnabled(r.trackInfo.encryption!==kt.NONE,i.identity)),e.on(M.ConnectionStateChanged,r=>{r===ee.Connected&&e.remoteParticipants.forEach(i=>{i.trackPublications.forEach(s=>{this.setParticipantCryptorEnabled(s.trackInfo.encryption!==kt.NONE,i.identity)})})}).on(M.TrackUnsubscribed,(r,i,s)=>{var o;const a={kind:"removeTransform",data:{participantIdentity:s.identity,trackId:r.mediaStreamID}};(o=this.worker)===null||o===void 0||o.postMessage(a)}).on(M.TrackSubscribed,(r,i,s)=>{this.setupE2EEReceiver(r,s.identity,i.trackInfo)}).on(M.SignalConnected,()=>{if(!this.room)throw new TypeError("expected room to be present on signal connect");n.getKeys().forEach(r=>{this.postKey(r)}),this.setParticipantCryptorEnabled(this.room.localParticipant.isE2EEEnabled,this.room.localParticipant.identity)}),e.localParticipant.on(A.LocalTrackPublished,r=>S(this,void 0,void 0,function*(){this.setupE2EESender(r.track,r.track.sender)})),n.on(Gn.SetKey,r=>this.postKey(r)).on(Gn.RatchetRequest,(r,i)=>this.postRatchetRequest(r,i))}postRatchetRequest(e,n){if(!this.worker)throw Error("could not ratchet key, worker is missing");const r={kind:"ratchetRequest",data:{participantIdentity:e,keyIndex:n}};this.worker.postMessage(r)}postKey(e){let{key:n,participantIdentity:r,keyIndex:i}=e;var s;if(!this.worker)throw Error("could not set key, worker is missing");const o={kind:"setKey",data:{participantIdentity:r,isPublisher:r===((s=this.room)===null||s===void 0?void 0:s.localParticipant.identity),key:n,keyIndex:i}};this.worker.postMessage(o)}postEnable(e,n){if(this.worker){const r={kind:"enable",data:{enabled:e,participantIdentity:n}};this.worker.postMessage(r)}else throw new ReferenceError("failed to enable e2ee, worker is not ready")}postRTPMap(e){var n;if(!this.worker)throw TypeError("could not post rtp map, worker is missing");if(!(!((n=this.room)===null||n===void 0)&&n.localParticipant.identity))throw TypeError("could not post rtp map, local participant identity is missing");const r={kind:"setRTPMap",data:{map:e,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(r)}postSifTrailer(e){if(!this.worker)throw Error("could not post SIF trailer, worker is missing");const n={kind:"setSifTrailer",data:{trailer:e}};this.worker.postMessage(n)}setupE2EEReceiver(e,n,r){if(e.receiver){if(!(r!=null&&r.mimeType)||r.mimeType==="")throw new TypeError("MimeType missing from trackInfo, cannot set up E2EE cryptor");this.handleReceiver(e.receiver,e.mediaStreamID,n,e.kind==="video"?Ha(r.mimeType):void 0)}}setupE2EESender(e,n){if(!wi(e)||!n){n||K.warn("early return because sender is not ready");return}this.handleSender(n,e.mediaStreamID,void 0)}handleReceiver(e,n,r,i){return S(this,void 0,void 0,function*(){if(this.worker){if(cd()){const s={kind:"decode",participantIdentity:r,trackId:n,codec:i};e.transform=new RTCRtpScriptTransform(this.worker,s)}else{if(Ua in e&&i){const l={kind:"updateCodec",data:{trackId:n,codec:i,participantIdentity:r}};this.worker.postMessage(l);return}let s=e.writableStream,o=e.readableStream;if(!s||!o){const l=e.createEncodedStreams();e.writableStream=l.writable,s=l.writable,e.readableStream=l.readable,o=l.readable}const a={kind:"decode",data:{readableStream:o,writableStream:s,trackId:n,codec:i,participantIdentity:r}};this.worker.postMessage(a,[o,s])}e[Ua]=!0}})}handleSender(e,n,r){var i;if(!(Ua in e||!this.worker)){if(!(!((i=this.room)===null||i===void 0)&&i.localParticipant.identity)||this.room.localParticipant.identity==="")throw TypeError("local identity needs to be known in order to set up encrypted sender");if(cd()){K.info("initialize script transform");const s={kind:"encode",participantIdentity:this.room.localParticipant.identity,trackId:n,codec:r};e.transform=new RTCRtpScriptTransform(this.worker,s)}else{K.info("initialize encoded streams");const s=e.createEncodedStreams(),o={kind:"encode",data:{readableStream:s.readable,writableStream:s.writable,codec:r,trackId:n,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(o,[s.readable,s.writable])}e[Ua]=!0}}}const Rd="default";class Ae{constructor(){this._previousDevices=[]}static getInstance(){return this.instance===void 0&&(this.instance=new Ae),this.instance}get previousDevices(){return this._previousDevices}getDevices(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var s;if(((s=Ae.userMediaPromiseMap)===null||s===void 0?void 0:s.size)>0){K.debug("awaiting getUserMedia promise");try{n?yield Ae.userMediaPromiseMap.get(n):yield Promise.all(Ae.userMediaPromiseMap.values())}catch{K.warn("error waiting for media permissons")}}let o=yield navigator.mediaDevices.enumerateDevices();if(i&&!(Qn()&&r.hasDeviceInUse(n))&&(o.filter(l=>l.kind===n).length===0||o.some(l=>{const c=l.label==="",u=n?l.kind===n:!0;return c&&u}))){const l={video:n!=="audioinput"&&n!=="audiooutput",audio:n!=="videoinput"&&{deviceId:"default"}},c=yield navigator.mediaDevices.getUserMedia(l);o=yield navigator.mediaDevices.enumerateDevices(),c.getTracks().forEach(u=>{u.stop()})}return r._previousDevices=o,n&&(o=o.filter(a=>a.kind===n)),o}()})}normalizeDeviceId(e,n,r){return S(this,void 0,void 0,function*(){if(n!==Rd)return n;const i=yield this.getDevices(e),s=i.find(a=>a.deviceId===Rd);if(!s){K.warn("could not reliably determine default device");return}const o=i.find(a=>a.deviceId!==Rd&&a.groupId===(r??s.groupId));if(!o){K.warn("could not reliably determine default device");return}return o==null?void 0:o.deviceId})}hasDeviceInUse(e){return e?Ae.userMediaPromiseMap.has(e):Ae.userMediaPromiseMap.size>0}}Ae.mediaDeviceKinds=["audioinput","audiooutput","videoinput"],Ae.userMediaPromiseMap=new Map;var Ns;(function(t){t[t.WAITING=0]="WAITING",t[t.RUNNING=1]="RUNNING",t[t.COMPLETED=2]="COMPLETED"})(Ns||(Ns={}));class QT{constructor(){this.pendingTasks=new Map,this.taskMutex=new yt,this.nextTaskIndex=0}run(e){return S(this,void 0,void 0,function*(){const n={id:this.nextTaskIndex++,enqueuedAt:Date.now(),status:Ns.WAITING};this.pendingTasks.set(n.id,n);const r=yield this.taskMutex.lock();try{return n.executedAt=Date.now(),n.status=Ns.RUNNING,yield e()}finally{n.status=Ns.COMPLETED,this.pendingTasks.delete(n.id),r()}})}flush(){return S(this,void 0,void 0,function*(){return this.run(()=>S(this,void 0,void 0,function*(){}))})}snapshot(){return Array.from(this.pendingTasks.values())}}function YT(t,e){const n=new URL(t);return e.forEach((r,i)=>{n.searchParams.set(i,r)}),A0(n,"rtc")}function JT(t){const e=new URL(Td(t));return A0(e,"validate")}function XT(t){return t.endsWith("/")?t:"".concat(t,"/")}function A0(t,e){const n="".concat(t.protocol,"//").concat(t.host).concat(XT(t.pathname)).concat(e);return t.searchParams.size>0?"".concat(n,"?").concat(t.searchParams.toString()):n}const e2=["syncState","trickle","offer","answer","simulate","leave"];function t2(t){const e=e2.indexOf(t.case)>=0;return K.trace("request allowed to bypass queue:",{canPass:e,req:t}),e}var me;(function(t){t[t.CONNECTING=0]="CONNECTING",t[t.CONNECTED=1]="CONNECTED",t[t.RECONNECTING=2]="RECONNECTING",t[t.DISCONNECTING=3]="DISCONNECTING",t[t.DISCONNECTED=4]="DISCONNECTED"})(me||(me={}));class Id{get currentState(){return this.state}get isDisconnected(){return this.state===me.DISCONNECTING||this.state===me.DISCONNECTED}get isEstablishingConnection(){return this.state===me.CONNECTING||this.state===me.RECONNECTING}getNextRequestId(){return this._requestId+=1,this._requestId}constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r;this.rtt=0,this.state=me.DISCONNECTED,this.log=K,this._requestId=0,this.resetCallbacks=()=>{this.onAnswer=void 0,this.onLeave=void 0,this.onLocalTrackPublished=void 0,this.onLocalTrackUnpublished=void 0,this.onNegotiateRequested=void 0,this.onOffer=void 0,this.onRemoteMuteChanged=void 0,this.onSubscribedQualityUpdate=void 0,this.onTokenRefresh=void 0,this.onTrickle=void 0,this.onClose=void 0},this.log=yn((r=n.loggerName)!==null&&r!==void 0?r:zt.Signal),this.loggerContextCb=n.loggerContextCb,this.useJSON=e,this.requestQueue=new QT,this.queuedRequests=[],this.closingLock=new yt,this.connectionLock=new yt,this.state=me.DISCONNECTED}get logContext(){var e,n;return(n=(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this))!==null&&n!==void 0?n:{}}join(e,n,r,i){return S(this,void 0,void 0,function*(){return this.state=me.CONNECTING,this.options=r,yield this.connect(e,n,r,i)})}reconnect(e,n,r,i){return S(this,void 0,void 0,function*(){if(!this.options){this.log.warn("attempted to reconnect without signal options being set, ignoring",this.logContext);return}return this.state=me.RECONNECTING,this.clearPingInterval(),yield this.connect(e,n,Object.assign(Object.assign({},this.options),{reconnect:!0,sid:r,reconnectReason:i}))})}connect(e,n,r,i){this.connectOptions=r;const s=jT(),o=n2(n,s,r),a=YT(e,o),l=JT(a);return new Promise((c,u)=>S(this,void 0,void 0,function*(){const d=yield this.connectionLock.lock();try{const h=()=>S(this,void 0,void 0,function*(){this.close(),clearTimeout(f),u(new ce("room connection has been cancelled (signal)",Z.Cancelled))}),f=setTimeout(()=>{this.close(),u(new ce("room connection has timed out (signal)",Z.ServerUnreachable))},r.websocketTimeout);i!=null&&i.aborted&&h(),i==null||i.addEventListener("abort",h);const m=new URL(a);m.searchParams.has("access_token")&&m.searchParams.set("access_token","<redacted>"),this.log.debug("connecting to ".concat(m),Object.assign({reconnect:r.reconnect,reconnectReason:r.reconnectReason},this.logContext)),this.ws&&(yield this.close(!1)),this.ws=new WebSocket(a),this.ws.binaryType="arraybuffer",this.ws.onopen=()=>{clearTimeout(f)},this.ws.onerror=g=>S(this,void 0,void 0,function*(){if(this.state!==me.CONNECTED){this.state=me.DISCONNECTED,clearTimeout(f);try{const T=yield fetch(l);if(T.status.toFixed(0).startsWith("4")){const p=yield T.text();u(new ce(p,Z.NotAllowed,T.status))}else u(new ce("Encountered unknown websocket error during connection: ".concat(g.toString()),Z.InternalError,T.status))}catch(T){u(new ce(T instanceof Error?T.message:"server was not reachable",Z.ServerUnreachable))}return}this.handleWSError(g)}),this.ws.onmessage=g=>S(this,void 0,void 0,function*(){var T,p,v;let y;if(typeof g.data=="string"){const k=JSON.parse(g.data);y=yv.fromJson(k,{ignoreUnknownFields:!0})}else if(g.data instanceof ArrayBuffer)y=yv.fromBinary(new Uint8Array(g.data));else{this.log.error("could not decode websocket message: ".concat(typeof g.data),this.logContext);return}if(this.state!==me.CONNECTED){let k=!1;if(((T=y.message)===null||T===void 0?void 0:T.case)==="join"?(this.state=me.CONNECTED,i==null||i.removeEventListener("abort",h),this.pingTimeoutDuration=y.message.value.pingTimeout,this.pingIntervalDuration=y.message.value.pingInterval,this.pingTimeoutDuration&&this.pingTimeoutDuration>0&&(this.log.debug("ping config",Object.assign(Object.assign({},this.logContext),{timeout:this.pingTimeoutDuration,interval:this.pingIntervalDuration})),this.startPingInterval()),c(y.message.value)):this.state===me.RECONNECTING&&y.message.case!=="leave"?(this.state=me.CONNECTED,i==null||i.removeEventListener("abort",h),this.startPingInterval(),((p=y.message)===null||p===void 0?void 0:p.case)==="reconnect"?c(y.message.value):(this.log.debug("declaring signal reconnected without reconnect response received",this.logContext),c(void 0),k=!0)):this.isEstablishingConnection&&y.message.case==="leave"?u(new ce("Received leave request while trying to (re)connect",Z.LeaveRequest,void 0,y.message.value.reason)):r.reconnect||u(new ce("did not receive join response, got ".concat((v=y.message)===null||v===void 0?void 0:v.case," instead"),Z.InternalError)),!k)return}this.signalLatency&&(yield ut(this.signalLatency)),this.handleSignalResponse(y)}),this.ws.onclose=g=>{this.isEstablishingConnection&&u(new ce("Websocket got closed during a (re)connection attempt",Z.InternalError)),this.log.warn("websocket closed",Object.assign(Object.assign({},this.logContext),{reason:g.reason,code:g.code,wasClean:g.wasClean,state:this.state})),this.handleOnClose(g.reason)}}finally{d()}}))}close(){return S(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){const r=yield e.closingLock.lock();try{if(e.clearPingInterval(),n&&(e.state=me.DISCONNECTING),e.ws){e.ws.onmessage=null,e.ws.onopen=null,e.ws.onclose=null;const i=new Promise(s=>{e.ws?e.ws.onclose=()=>{s()}:s()});e.ws.readyState<e.ws.CLOSING&&(e.ws.close(),yield Promise.race([i,ut(250)])),e.ws=void 0}}finally{n&&(e.state=me.DISCONNECTED),r()}}()})}sendOffer(e){this.log.debug("sending offer",Object.assign(Object.assign({},this.logContext),{offerSdp:e.sdp})),this.sendRequest({case:"offer",value:$a(e)})}sendAnswer(e){return this.log.debug("sending answer",Object.assign(Object.assign({},this.logContext),{answerSdp:e.sdp})),this.sendRequest({case:"answer",value:$a(e)})}sendIceCandidate(e,n){return this.log.debug("sending ice candidate",Object.assign(Object.assign({},this.logContext),{candidate:e})),this.sendRequest({case:"trickle",value:new Zu({candidateInit:JSON.stringify(e),target:n})})}sendMuteTrack(e,n){return this.sendRequest({case:"mute",value:new Qu({sid:e,muted:n})})}sendAddTrack(e){return this.sendRequest({case:"addTrack",value:e})}sendUpdateLocalMetadata(e,n){return S(this,arguments,void 0,function(r,i){var s=this;let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return function*(){const a=s.getNextRequestId();return yield s.sendRequest({case:"updateMetadata",value:new Sv({requestId:a,metadata:r,name:i,attributes:o})}),a}()})}sendUpdateTrackSettings(e){this.sendRequest({case:"trackSetting",value:e})}sendUpdateSubscription(e){return this.sendRequest({case:"subscription",value:e})}sendSyncState(e){return this.sendRequest({case:"syncState",value:e})}sendUpdateVideoLayers(e,n){return this.sendRequest({case:"updateLayers",value:new Cv({trackSid:e,layers:n})})}sendUpdateSubscriptionPermissions(e,n){return this.sendRequest({case:"subscriptionPermission",value:new xv({allParticipants:e,trackPermissions:n})})}sendSimulateScenario(e){return this.sendRequest({case:"simulate",value:e})}sendPing(){return Promise.all([this.sendRequest({case:"ping",value:pe.parse(Date.now())}),this.sendRequest({case:"pingReq",value:new _v({timestamp:pe.parse(Date.now()),rtt:pe.parse(this.rtt)})})])}sendUpdateLocalAudioTrack(e,n){return this.sendRequest({case:"updateAudioTrack",value:new bv({trackSid:e,features:n})})}sendLeave(){return this.sendRequest({case:"leave",value:new _a({reason:Ft.CLIENT_INITIATED,action:yi.DISCONNECT})})}sendRequest(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return function*(){if(!i&&!t2(n)&&r.state===me.RECONNECTING){r.queuedRequests.push(()=>S(r,void 0,void 0,function*(){yield this.sendRequest(n,!0)}));return}if(i||(yield r.requestQueue.flush()),r.signalLatency&&(yield ut(r.signalLatency)),!r.ws||r.ws.readyState!==r.ws.OPEN){r.log.error("cannot send signal request before connected, type: ".concat(n==null?void 0:n.case),r.logContext);return}const o=new Rw({message:n});try{r.useJSON?r.ws.send(o.toJsonString()):r.ws.send(o.toBinary())}catch(a){r.log.error("error sending signal message",Object.assign(Object.assign({},r.logContext),{error:a}))}}()})}handleSignalResponse(e){var n,r;const i=e.message;if(i==null){this.log.debug("received unsupported message",this.logContext);return}let s=!1;if(i.case==="answer"){const o=j0(i.value);this.onAnswer&&this.onAnswer(o)}else if(i.case==="offer"){const o=j0(i.value);this.onOffer&&this.onOffer(o)}else if(i.case==="trickle"){const o=JSON.parse(i.value.candidateInit);this.onTrickle&&this.onTrickle(o,i.value.target)}else i.case==="update"?this.onParticipantUpdate&&this.onParticipantUpdate((n=i.value.participants)!==null&&n!==void 0?n:[]):i.case==="trackPublished"?this.onLocalTrackPublished&&this.onLocalTrackPublished(i.value):i.case==="speakersChanged"?this.onSpeakersChanged&&this.onSpeakersChanged((r=i.value.speakers)!==null&&r!==void 0?r:[]):i.case==="leave"?this.onLeave&&this.onLeave(i.value):i.case==="mute"?this.onRemoteMuteChanged&&this.onRemoteMuteChanged(i.value.sid,i.value.muted):i.case==="roomUpdate"?this.onRoomUpdate&&i.value.room&&this.onRoomUpdate(i.value.room):i.case==="connectionQuality"?this.onConnectionQuality&&this.onConnectionQuality(i.value):i.case==="streamStateUpdate"?this.onStreamStateUpdate&&this.onStreamStateUpdate(i.value):i.case==="subscribedQualityUpdate"?this.onSubscribedQualityUpdate&&this.onSubscribedQualityUpdate(i.value):i.case==="subscriptionPermissionUpdate"?this.onSubscriptionPermissionUpdate&&this.onSubscriptionPermissionUpdate(i.value):i.case==="refreshToken"?this.onTokenRefresh&&this.onTokenRefresh(i.value):i.case==="trackUnpublished"?this.onLocalTrackUnpublished&&this.onLocalTrackUnpublished(i.value):i.case==="subscriptionResponse"?this.onSubscriptionError&&this.onSubscriptionError(i.value):i.case==="pong"||(i.case==="pongResp"?(this.rtt=Date.now()-Number.parseInt(i.value.lastPingTimestamp.toString()),this.resetPingTimeout(),s=!0):i.case==="requestResponse"?this.onRequestResponse&&this.onRequestResponse(i.value):i.case==="trackSubscribed"?this.onLocalTrackSubscribed&&this.onLocalTrackSubscribed(i.value.trackSid):this.log.debug("unsupported message",Object.assign(Object.assign({},this.logContext),{msgCase:i.case})));s||this.resetPingTimeout()}setReconnected(){for(;this.queuedRequests.length>0;){const e=this.queuedRequests.shift();e&&this.requestQueue.run(e)}}handleOnClose(e){return S(this,void 0,void 0,function*(){if(this.state===me.DISCONNECTED)return;const n=this.onClose;yield this.close(),this.log.debug("websocket connection closed: ".concat(e),Object.assign(Object.assign({},this.logContext),{reason:e})),n&&n(e)})}handleWSError(e){this.log.error("websocket error",Object.assign(Object.assign({},this.logContext),{error:e}))}resetPingTimeout(){if(this.clearPingTimeout(),!this.pingTimeoutDuration){this.log.warn("ping timeout duration not set",this.logContext);return}this.pingTimeout=He.setTimeout(()=>{this.log.warn("ping timeout triggered. last pong received at: ".concat(new Date(Date.now()-this.pingTimeoutDuration*1e3).toUTCString()),this.logContext),this.handleOnClose("ping timeout")},this.pingTimeoutDuration*1e3)}clearPingTimeout(){this.pingTimeout&&He.clearTimeout(this.pingTimeout)}startPingInterval(){if(this.clearPingInterval(),this.resetPingTimeout(),!this.pingIntervalDuration){this.log.warn("ping interval duration not set",this.logContext);return}this.log.debug("start ping interval",this.logContext),this.pingInterval=He.setInterval(()=>{this.sendPing()},this.pingIntervalDuration*1e3)}clearPingInterval(){this.log.debug("clearing ping interval",this.logContext),this.clearPingTimeout(),this.pingInterval&&He.clearInterval(this.pingInterval)}}function j0(t){const e={type:"offer",sdp:t.sdp};switch(t.type){case"answer":case"offer":case"pranswer":case"rollback":e.type=t.type;break}return e}function $a(t){return new Tr({sdp:t.sdp,type:t.type})}function n2(t,e,n){var r;const i=new URLSearchParams;return i.set("access_token",t),n.reconnect&&(i.set("reconnect","1"),n.sid&&i.set("sid",n.sid)),i.set("auto_subscribe",n.autoSubscribe?"1":"0"),i.set("sdk",rn()?"reactnative":"js"),i.set("version",e.version),i.set("protocol",e.protocol.toString()),e.deviceModel&&i.set("device_model",e.deviceModel),e.os&&i.set("os",e.os),e.osVersion&&i.set("os_version",e.osVersion),e.browser&&i.set("browser",e.browser),e.browserVersion&&i.set("browser_version",e.browserVersion),n.adaptiveStream&&i.set("adaptive_stream","1"),n.reconnectReason&&i.set("reconnect_reason",n.reconnectReason.toString()),!((r=navigator.connection)===null||r===void 0)&&r.type&&i.set("network",navigator.connection.type),i}var Ht={},Od={},Ld={exports:{}},U0;function Md(){if(U0)return Ld.exports;U0=1;var t=Ld.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return e.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return e.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return e.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var n="candidate:%s %d %s %d %s %d typ %s";return n+=e.raddr!=null?" raddr %s rport %d":"%v%v",n+=e.tcptype!=null?" tcptype %s":"%v",e.generation!=null&&(n+=" generation %d"),n+=e["network-id"]!=null?" network-id %d":"%v",n+=e["network-cost"]!=null?" network-cost %d":"%v",n}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var n="ssrc:%d";return e.attribute!=null&&(n+=" %s",e.value!=null&&(n+=":%s")),n}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return e.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(e.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var n="mediaclk:";return n+=e.id!=null?"id=%s %s":"%v%s",n+=e.mediaClockValue!=null?"=%s":"",n+=e.rateNumerator!=null?" rate=%s":"",n+=e.rateDenominator!=null?"/%s":"",n}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};return Object.keys(t).forEach(function(e){var n=t[e];n.forEach(function(r){r.reg||(r.reg=/(.*)/),r.format||(r.format="%s")})}),Ld.exports}var F0;function r2(){return F0||(F0=1,function(t){var e=function(a){return String(Number(a))===a?Number(a):a},n=function(a,l,c,u){if(u&&!c)l[u]=e(a[1]);else for(var d=0;d<c.length;d+=1)a[d+1]!=null&&(l[c[d]]=e(a[d+1]))},r=function(a,l,c){var u=a.name&&a.names;a.push&&!l[a.push]?l[a.push]=[]:u&&!l[a.name]&&(l[a.name]={});var d=a.push?{}:u?l[a.name]:l;n(c.match(a.reg),d,a.names,a.name),a.push&&l[a.push].push(d)},i=Md(),s=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(a){var l={},c=[],u=l;return a.split(/(\r\n|\r|\n)/).filter(s).forEach(function(d){var h=d[0],f=d.slice(2);h==="m"&&(c.push({rtp:[],fmtp:[]}),u=c[c.length-1]);for(var m=0;m<(i[h]||[]).length;m+=1){var g=i[h][m];if(g.reg.test(f))return r(g,u,f)}}),l.media=c,l};var o=function(a,l){var c=l.split(/=(.+)/,2);return c.length===2?a[c[0]]=e(c[1]):c.length===1&&l.length>1&&(a[c[0]]=void 0),a};t.parseParams=function(a){return a.split(/;\s?/).reduce(o,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(a){return a.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(a){for(var l=[],c=a.split(" ").map(e),u=0;u<c.length;u+=3)l.push({component:c[u],ip:c[u+1],port:c[u+2]});return l},t.parseImageAttributes=function(a){return a.split(" ").map(function(l){return l.substring(1,l.length-1).split(",").reduce(o,{})})},t.parseSimulcastStreamList=function(a){return a.split(";").map(function(l){return l.split(",").map(function(c){var u,d=!1;return c[0]!=="~"?u=e(c):(u=e(c.substring(1,c.length)),d=!0),{scid:u,paused:d}})})}}(Od)),Od}var Nd,B0;function i2(){if(B0)return Nd;B0=1;var t=Md(),e=/%[sdv%]/g,n=function(o){var a=1,l=arguments,c=l.length;return o.replace(e,function(u){if(a>=c)return u;var d=l[a];switch(a+=1,u){case"%%":return"%";case"%s":return String(d);case"%d":return Number(d);case"%v":return""}})},r=function(o,a,l){var c=a.format instanceof Function?a.format(a.push?l:l[a.name]):a.format,u=[o+"="+c];if(a.names)for(var d=0;d<a.names.length;d+=1){var h=a.names[d];a.name?u.push(l[a.name][h]):u.push(l[a.names[d]])}else u.push(l[a.name]);return n.apply(null,u)},i=["v","o","s","i","u","e","p","c","b","t","r","z","a"],s=["i","c","b","a"];return Nd=function(o,a){a=a||{},o.version==null&&(o.version=0),o.name==null&&(o.name=" "),o.media.forEach(function(d){d.payloads==null&&(d.payloads="")});var l=a.outerOrder||i,c=a.innerOrder||s,u=[];return l.forEach(function(d){t[d].forEach(function(h){h.name in o&&o[h.name]!=null?u.push(r(d,h,o)):h.push in o&&o[h.push]!=null&&o[h.push].forEach(function(f){u.push(r(d,h,f))})})}),o.media.forEach(function(d){u.push(r("m",t.m[0],d)),c.forEach(function(h){t[h].forEach(function(f){f.name in d&&d[f.name]!=null?u.push(r(h,f,d)):f.push in d&&d[f.push]!=null&&d[f.push].forEach(function(m){u.push(r(h,f,m))})})})}),u.join(`\r
|
|
96
96
|
`)+`\r
|
|
97
|
-
`},Nd}var z0;function s2(){if(z0)return Ht;z0=1;var t=r2(),e=i2(),n=Md();return Ht.grammar=n,Ht.write=e,Ht.parse=t.parse,Ht.parseParams=t.parseParams,Ht.parseFmtpConfig=t.parseFmtpConfig,Ht.parsePayloads=t.parsePayloads,Ht.parseRemoteCandidates=t.parseRemoteCandidates,Ht.parseImageAttributes=t.parseImageAttributes,Ht.parseSimulcastStreamList=t.parseSimulcastStreamList,Ht}var Xn=s2();function Dd(t,e,n){var r,i,s;e===void 0&&(e=50),n===void 0&&(n={});var o=(r=n.isImmediate)!=null&&r,a=(i=n.callback)!=null&&i,l=n.maxWait,c=Date.now(),u=[];function d(){if(l!==void 0){var f=Date.now()-c;if(f+e>=l)return l-f}return e}var h=function(){var f=[].slice.call(arguments),m=this;return new Promise(function(g,T){var p=o&&s===void 0;if(s!==void 0&&clearTimeout(s),s=setTimeout(function(){if(s=void 0,c=Date.now(),!o){var y=t.apply(m,f);a&&a(y),u.forEach(function(k){return(0,k.resolve)(y)}),u=[]}},d()),p){var v=t.apply(m,f);return a&&a(v),g(v)}u.push({resolve:g,reject:T})})};return h.cancel=function(f){s!==void 0&&clearTimeout(s),u.forEach(function(m){return(0,m.reject)(f)}),u=[]},h}const o2=.7,a2=20,xi={NegotiationStarted:"negotiationStarted",NegotiationComplete:"negotiationComplete",RTPVideoPayloadTypes:"rtpVideoPayloadTypes"};class V0 extends nn.EventEmitter{get pc(){return this._pc||(this._pc=this.createPC()),this._pc}constructor(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r;super(),this.log=K,this.ddExtID=0,this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate=!1,this.trackBitrates=[],this.remoteStereoMids=[],this.remoteNackMids=[],this.negotiate=Dd(i=>S(this,void 0,void 0,function*(){this.emit(xi.NegotiationStarted);try{yield this.createAndSendOffer()}catch(s){if(i)i(s);else throw s}}),a2),this.close=()=>{this._pc&&(this._pc.close(),this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.ondatachannel=null,this._pc.onnegotiationneeded=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ondatachannel=null,this._pc.ontrack=null,this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc=null)},this.log=yn((r=n.loggerName)!==null&&r!==void 0?r:zt.PCTransport),this.loggerOptions=n,this.config=e,this._pc=this.createPC()}createPC(){const e=new RTCPeerConnection(this.config);return e.onicecandidate=n=>{var r;n.candidate&&((r=this.onIceCandidate)===null||r===void 0||r.call(this,n.candidate))},e.onicecandidateerror=n=>{var r;(r=this.onIceCandidateError)===null||r===void 0||r.call(this,n)},e.oniceconnectionstatechange=()=>{var n;(n=this.onIceConnectionStateChange)===null||n===void 0||n.call(this,e.iceConnectionState)},e.onsignalingstatechange=()=>{var n;(n=this.onSignalingStatechange)===null||n===void 0||n.call(this,e.signalingState)},e.onconnectionstatechange=()=>{var n;(n=this.onConnectionStateChange)===null||n===void 0||n.call(this,e.connectionState)},e.ondatachannel=n=>{var r;(r=this.onDataChannel)===null||r===void 0||r.call(this,n)},e.ontrack=n=>{var r;(r=this.onTrack)===null||r===void 0||r.call(this,n)},e}get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions).loggerContextCb)===null||n===void 0?void 0:n.call(e))}get isICEConnected(){return this._pc!==null&&(this.pc.iceConnectionState==="connected"||this.pc.iceConnectionState==="completed")}addIceCandidate(e){return S(this,void 0,void 0,function*(){if(this.pc.remoteDescription&&!this.restartingIce)return this.pc.addIceCandidate(e);this.pendingCandidates.push(e)})}setRemoteDescription(e){return S(this,void 0,void 0,function*(){var n;let r;if(e.type==="offer"){let{stereoMids:i,nackMids:s}=l2(e);this.remoteStereoMids=i,this.remoteNackMids=s}else if(e.type==="answer"){const i=Xn.parse((n=e.sdp)!==null&&n!==void 0?n:"");i.media.forEach(s=>{s.type==="audio"&&this.trackBitrates.some(o=>{if(!o.transceiver||s.mid!=o.transceiver.mid)return!1;let a=0;if(s.rtp.some(c=>c.codec.toUpperCase()===o.codec.toUpperCase()?(a=c.payload,!0):!1),a===0)return!0;let l=!1;for(const c of s.fmtp)if(c.payload===a){c.config=c.config.split(";").filter(u=>!u.includes("maxaveragebitrate")).join(";"),o.maxbr>0&&(c.config+=";maxaveragebitrate=".concat(o.maxbr*1e3)),l=!0;break}return l||o.maxbr>0&&s.fmtp.push({payload:a,config:"maxaveragebitrate=".concat(o.maxbr*1e3)}),!0})}),r=Xn.write(i)}yield this.setMungedSDP(e,r,!0),this.pendingCandidates.forEach(i=>{this.pc.addIceCandidate(i)}),this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate?(this.renegotiate=!1,yield this.createAndSendOffer()):e.type==="answer"&&(this.emit(xi.NegotiationComplete),e.sdp&&Xn.parse(e.sdp).media.forEach(s=>{s.type==="video"&&this.emit(xi.RTPVideoPayloadTypes,s.rtp)}))})}createAndSendOffer(e){return S(this,void 0,void 0,function*(){var n;if(this.onOffer===void 0)return;if(e!=null&&e.iceRestart&&(this.log.debug("restarting ICE",this.logContext),this.restartingIce=!0),this._pc&&this._pc.signalingState==="have-local-offer"){const s=this._pc.remoteDescription;if(e!=null&&e.iceRestart&&s)yield this._pc.setRemoteDescription(s);else{this.renegotiate=!0;return}}else if(!this._pc||this._pc.signalingState==="closed"){this.log.warn("could not createOffer with closed peer connection",this.logContext);return}this.log.debug("starting to negotiate",this.logContext);const r=yield this.pc.createOffer(e);this.log.debug("original offer",Object.assign({sdp:r.sdp},this.logContext));const i=Xn.parse((n=r.sdp)!==null&&n!==void 0?n:"");i.media.forEach(s=>{$0(s),s.type==="audio"?H0(s,[],[]):s.type==="video"&&this.trackBitrates.some(o=>{if(!s.msid||!o.cid||!s.msid.includes(o.cid))return!1;let a=0;if(s.rtp.some(c=>c.codec.toUpperCase()===o.codec.toUpperCase()?(a=c.payload,!0):!1),a===0||(Ls(o.codec)&&this.ensureVideoDDExtensionForSVC(s,i),o.codec!=="av1"))return!0;const l=Math.round(o.maxbr*o2);for(const c of s.fmtp)if(c.payload===a){c.config.includes("x-google-start-bitrate")||(c.config+=";x-google-start-bitrate=".concat(l));break}return!0})}),yield this.setMungedSDP(r,Xn.write(i)),this.onOffer(r)})}createAndSetAnswer(){return S(this,void 0,void 0,function*(){var e;const n=yield this.pc.createAnswer(),r=Xn.parse((e=n.sdp)!==null&&e!==void 0?e:"");return r.media.forEach(i=>{$0(i),i.type==="audio"&&H0(i,this.remoteStereoMids,this.remoteNackMids)}),yield this.setMungedSDP(n,Xn.write(r)),n})}createDataChannel(e,n){return this.pc.createDataChannel(e,n)}addTransceiver(e,n){return this.pc.addTransceiver(e,n)}addTrack(e){if(!this._pc)throw new Me("PC closed, cannot add track");return this._pc.addTrack(e)}setTrackCodecBitrate(e){this.trackBitrates.push(e)}setConfiguration(e){var n;if(!this._pc)throw new Me("PC closed, cannot configure");return(n=this._pc)===null||n===void 0?void 0:n.setConfiguration(e)}canRemoveTrack(){var e;return!!(!((e=this._pc)===null||e===void 0)&&e.removeTrack)}removeTrack(e){var n;return(n=this._pc)===null||n===void 0?void 0:n.removeTrack(e)}getConnectionState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.connectionState)!==null&&n!==void 0?n:"closed"}getICEConnectionState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.iceConnectionState)!==null&&n!==void 0?n:"closed"}getSignallingState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.signalingState)!==null&&n!==void 0?n:"closed"}getTransceivers(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.getTransceivers())!==null&&n!==void 0?n:[]}getSenders(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.getSenders())!==null&&n!==void 0?n:[]}getLocalDescription(){var e;return(e=this._pc)===null||e===void 0?void 0:e.localDescription}getRemoteDescription(){var e;return(e=this.pc)===null||e===void 0?void 0:e.remoteDescription}getStats(){return this.pc.getStats()}getConnectedAddress(){return S(this,void 0,void 0,function*(){var e;if(!this._pc)return;let n="";const r=new Map,i=new Map;if((yield this._pc.getStats()).forEach(a=>{switch(a.type){case"transport":n=a.selectedCandidatePairId;break;case"candidate-pair":n===""&&a.selected&&(n=a.id),r.set(a.id,a);break;case"remote-candidate":i.set(a.id,"".concat(a.address,":").concat(a.port));break}}),n==="")return;const o=(e=r.get(n))===null||e===void 0?void 0:e.remoteCandidateId;if(o!==void 0)return i.get(o)})}setMungedSDP(e,n,r){return S(this,void 0,void 0,function*(){if(n){const i=e.sdp;e.sdp=n;try{this.log.debug("setting munged ".concat(r?"remote":"local"," description"),this.logContext),r?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e);return}catch(s){this.log.warn("not able to set ".concat(e.type,", falling back to unmodified sdp"),Object.assign(Object.assign({},this.logContext),{error:s,sdp:n})),e.sdp=i}}try{r?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e)}catch(i){let s="unknown error";i instanceof Error?s=i.message:typeof i=="string"&&(s=i);const o={error:s,sdp:e.sdp};throw!r&&this.pc.remoteDescription&&(o.remoteSdp=this.pc.remoteDescription),this.log.error("unable to set ".concat(e.type),Object.assign(Object.assign({},this.logContext),{fields:o})),new dd(s)}})}ensureVideoDDExtensionForSVC(e,n){var r,i;if(!((r=e.ext)===null||r===void 0?void 0:r.some(o=>o.uri===S0))){if(this.ddExtID===0){let o=0;n.media.forEach(a=>{var l;a.type==="video"&&((l=a.ext)===null||l===void 0||l.forEach(c=>{c.value>o&&(o=c.value)}))}),this.ddExtID=o+1}(i=e.ext)===null||i===void 0||i.push({value:this.ddExtID,uri:S0})}}}function H0(t,e,n){let r=0;t.rtp.some(i=>i.codec==="opus"?(r=i.payload,!0):!1),r>0&&(t.rtcpFb||(t.rtcpFb=[]),n.includes(t.mid)&&!t.rtcpFb.some(i=>i.payload===r&&i.type==="nack")&&t.rtcpFb.push({payload:r,type:"nack"}),e.includes(t.mid)&&t.fmtp.some(i=>i.payload===r?(i.config.includes("stereo=1")||(i.config+=";stereo=1"),!0):!1))}function l2(t){var e;const n=[],r=[],i=Xn.parse((e=t.sdp)!==null&&e!==void 0?e:"");let s=0;return i.media.forEach(o=>{var a;o.type==="audio"&&(o.rtp.some(l=>l.codec==="opus"?(s=l.payload,!0):!1),!((a=o.rtcpFb)===null||a===void 0)&&a.some(l=>l.payload===s&&l.type==="nack")&&r.push(o.mid),o.fmtp.some(l=>l.payload===s?(l.config.includes("sprop-stereo=1")&&n.push(o.mid),!0):!1))}),{stereoMids:n,nackMids:r}}function $0(t){if(t.connection){const e=t.connection.ip.indexOf(":")>=0;(t.connection.version===4&&e||t.connection.version===6&&!e)&&(t.connection.ip="0.0.0.0",t.connection.version=4)}}const Ad="vp8",c2={audioPreset:pd.music,dtx:!0,red:!0,forceStereo:!1,simulcast:!0,screenShareEncoding:gd.h1080fps15.encoding,stopMicTrackOnMute:!1,videoCodec:Ad,backupCodec:!0},q0={deviceId:"default",autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,voiceIsolation:!0},W0={deviceId:"default",resolution:Os.h720.resolution},u2={adaptiveStream:!1,dynacast:!1,stopLocalTrackOnUnpublish:!0,reconnectPolicy:new tT,disconnectOnPageLeave:!0,webAudioMix:!1},jd={autoSubscribe:!0,maxRetries:1,peerConnectionTimeout:15e3,websocketTimeout:15e3};var we;(function(t){t[t.NEW=0]="NEW",t[t.CONNECTING=1]="CONNECTING",t[t.CONNECTED=2]="CONNECTED",t[t.FAILED=3]="FAILED",t[t.CLOSING=4]="CLOSING",t[t.CLOSED=5]="CLOSED"})(we||(we={}));class d2{get needsPublisher(){return this.isPublisherConnectionRequired}get needsSubscriber(){return this.isSubscriberConnectionRequired}get currentState(){return this.state}constructor(e,n,r){var i;this.peerConnectionTimeout=jd.peerConnectionTimeout,this.log=K,this.updateState=()=>{var s;const o=this.state,a=this.requiredTransports.map(l=>l.getConnectionState());a.every(l=>l==="connected")?this.state=we.CONNECTED:a.some(l=>l==="failed")?this.state=we.FAILED:a.some(l=>l==="connecting")?this.state=we.CONNECTING:a.every(l=>l==="closed")?this.state=we.CLOSED:a.some(l=>l==="closed")?this.state=we.CLOSING:a.every(l=>l==="new")&&(this.state=we.NEW),o!==this.state&&(this.log.debug("pc state change: from ".concat(we[o]," to ").concat(we[this.state]),this.logContext),(s=this.onStateChange)===null||s===void 0||s.call(this,this.state,this.publisher.getConnectionState(),this.subscriber.getConnectionState()))},this.log=yn((i=r.loggerName)!==null&&i!==void 0?i:zt.PCManager),this.loggerOptions=r,this.isPublisherConnectionRequired=!n,this.isSubscriberConnectionRequired=n,this.publisher=new V0(e,r),this.subscriber=new V0(e,r),this.publisher.onConnectionStateChange=this.updateState,this.subscriber.onConnectionStateChange=this.updateState,this.publisher.onIceConnectionStateChange=this.updateState,this.subscriber.onIceConnectionStateChange=this.updateState,this.publisher.onSignalingStatechange=this.updateState,this.subscriber.onSignalingStatechange=this.updateState,this.publisher.onIceCandidate=s=>{var o;(o=this.onIceCandidate)===null||o===void 0||o.call(this,s,Bt.PUBLISHER)},this.subscriber.onIceCandidate=s=>{var o;(o=this.onIceCandidate)===null||o===void 0||o.call(this,s,Bt.SUBSCRIBER)},this.subscriber.onDataChannel=s=>{var o;(o=this.onDataChannel)===null||o===void 0||o.call(this,s)},this.subscriber.onTrack=s=>{var o;(o=this.onTrack)===null||o===void 0||o.call(this,s)},this.publisher.onOffer=s=>{var o;(o=this.onPublisherOffer)===null||o===void 0||o.call(this,s)},this.state=we.NEW,this.connectionLock=new yt,this.remoteOfferLock=new yt}get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions).loggerContextCb)===null||n===void 0?void 0:n.call(e))}requirePublisher(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isPublisherConnectionRequired=e,this.updateState()}requireSubscriber(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isSubscriberConnectionRequired=e,this.updateState()}createAndSendPublisherOffer(e){return this.publisher.createAndSendOffer(e)}setPublisherAnswer(e){return this.publisher.setRemoteDescription(e)}removeTrack(e){return this.publisher.removeTrack(e)}close(){return S(this,void 0,void 0,function*(){if(this.publisher&&this.publisher.getSignallingState()!=="closed"){const e=this.publisher;for(const n of e.getSenders())try{e.canRemoveTrack()&&e.removeTrack(n)}catch(r){this.log.warn("could not removeTrack",Object.assign(Object.assign({},this.logContext),{error:r}))}}yield Promise.all([this.publisher.close(),this.subscriber.close()]),this.updateState()})}triggerIceRestart(){return S(this,void 0,void 0,function*(){this.subscriber.restartingIce=!0,this.needsPublisher&&(yield this.createAndSendPublisherOffer({iceRestart:!0}))})}addIceCandidate(e,n){return S(this,void 0,void 0,function*(){n===Bt.PUBLISHER?yield this.publisher.addIceCandidate(e):yield this.subscriber.addIceCandidate(e)})}createSubscriberAnswerFromOffer(e){return S(this,void 0,void 0,function*(){this.log.debug("received server offer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type,sdp:e.sdp,signalingState:this.subscriber.getSignallingState().toString()}));const n=yield this.remoteOfferLock.lock();try{return yield this.subscriber.setRemoteDescription(e),yield this.subscriber.createAndSetAnswer()}finally{n()}})}updateConfiguration(e,n){this.publisher.setConfiguration(e),this.subscriber.setConfiguration(e),n&&this.triggerIceRestart()}ensurePCTransportConnection(e,n){return S(this,void 0,void 0,function*(){var r;const i=yield this.connectionLock.lock();try{this.isPublisherConnectionRequired&&this.publisher.getConnectionState()!=="connected"&&this.publisher.getConnectionState()!=="connecting"&&(this.log.debug("negotiation required, start negotiating",this.logContext),this.publisher.negotiate()),yield Promise.all((r=this.requiredTransports)===null||r===void 0?void 0:r.map(s=>this.ensureTransportConnected(s,e,n)))}finally{i()}})}negotiate(e){return S(this,void 0,void 0,function*(){return new Promise((n,r)=>S(this,void 0,void 0,function*(){const i=setTimeout(()=>{r("negotiation timed out")},this.peerConnectionTimeout),s=()=>{clearTimeout(i),r("negotiation aborted")};e.signal.addEventListener("abort",s),this.publisher.once(xi.NegotiationStarted,()=>{e.signal.aborted||this.publisher.once(xi.NegotiationComplete,()=>{clearTimeout(i),n()})}),yield this.publisher.negotiate(o=>{clearTimeout(i),r(o)})}))})}addPublisherTransceiver(e,n){return this.publisher.addTransceiver(e,n)}addPublisherTrack(e){return this.publisher.addTrack(e)}createPublisherDataChannel(e,n){return this.publisher.createDataChannel(e,n)}getConnectedAddress(e){return e===Bt.PUBLISHER?this.publisher.getConnectedAddress():e===Bt.SUBSCRIBER?this.publisher.getConnectedAddress():this.requiredTransports[0].getConnectedAddress()}get requiredTransports(){const e=[];return this.isPublisherConnectionRequired&&e.push(this.publisher),this.isSubscriberConnectionRequired&&e.push(this.subscriber),e}ensureTransportConnected(e,n){return S(this,arguments,void 0,function(r,i){var s=this;let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.peerConnectionTimeout;return function*(){if(r.getConnectionState()!=="connected")return new Promise((l,c)=>S(s,void 0,void 0,function*(){const u=()=>{this.log.warn("abort transport connection",this.logContext),He.clearTimeout(d),c(new ce("room connection has been cancelled",Z.Cancelled))};i!=null&&i.signal.aborted&&u(),i==null||i.signal.addEventListener("abort",u);const d=He.setTimeout(()=>{i==null||i.signal.removeEventListener("abort",u),c(new ce("could not establish pc connection",Z.InternalError))},o);for(;this.state!==we.CONNECTED;)if(yield ut(50),i!=null&&i.signal.aborted){c(new ce("room connection has been cancelled",Z.Cancelled));return}He.clearTimeout(d),i==null||i.signal.removeEventListener("abort",u),l()}))}()})}}class Te extends Error{constructor(e,n,r){super(n),this.code=e,this.message=K0(n,Te.MAX_MESSAGE_BYTES),this.data=r?K0(r,Te.MAX_DATA_BYTES):void 0}static fromProto(e){return new Te(e.code,e.message,e.data)}toProto(){return new cv({code:this.code,message:this.message,data:this.data})}static builtIn(e,n){return new Te(Te.ErrorCode[e],Te.ErrorMessage[e],n)}}Te.MAX_MESSAGE_BYTES=256,Te.MAX_DATA_BYTES=15360,Te.ErrorCode={APPLICATION_ERROR:1500,CONNECTION_TIMEOUT:1501,RESPONSE_TIMEOUT:1502,RECIPIENT_DISCONNECTED:1503,RESPONSE_PAYLOAD_TOO_LARGE:1504,SEND_FAILED:1505,UNSUPPORTED_METHOD:1400,RECIPIENT_NOT_FOUND:1401,REQUEST_PAYLOAD_TOO_LARGE:1402,UNSUPPORTED_SERVER:1403,UNSUPPORTED_VERSION:1404},Te.ErrorMessage={APPLICATION_ERROR:"Application error in method handler",CONNECTION_TIMEOUT:"Connection timeout",RESPONSE_TIMEOUT:"Response timeout",RECIPIENT_DISCONNECTED:"Recipient disconnected",RESPONSE_PAYLOAD_TOO_LARGE:"Response payload too large",SEND_FAILED:"Failed to send",UNSUPPORTED_METHOD:"Method not supported at destination",RECIPIENT_NOT_FOUND:"Recipient not found",REQUEST_PAYLOAD_TOO_LARGE:"Request payload too large",UNSUPPORTED_SERVER:"RPC not supported by server",UNSUPPORTED_VERSION:"Unsupported RPC version"};const G0=15360;function Ud(t){return new TextEncoder().encode(t).length}function K0(t,e){if(Ud(t)<=e)return t;let n=0,r=t.length;const i=new TextEncoder;for(;n<r;){const s=Math.floor((n+r+1)/2);i.encode(t.slice(0,s)).length<=e?n=s:r=s-1}return t.slice(0,n)}const Fd=2e3;function qa(t,e){if(!e)return 0;let n,r;return"bytesReceived"in t?(n=t.bytesReceived,r=e.bytesReceived):"bytesSent"in t&&(n=t.bytesSent,r=e.bytesSent),n===void 0||r===void 0||t.timestamp===void 0||e.timestamp===void 0?0:(n-r)*8*1e3/(t.timestamp-e.timestamp)}const h2=1e3;class Z0 extends O{get sender(){return this._sender}set sender(e){this._sender=e}get constraints(){return this._constraints}constructor(e,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,s=arguments.length>4?arguments[4]:void 0;super(e,n,s),this.manuallyStopped=!1,this._isUpstreamPaused=!1,this.handleTrackMuteEvent=()=>this.debouncedTrackMuteHandler().catch(()=>this.log.debug("track mute bounce got cancelled by an unmute event",this.logContext)),this.debouncedTrackMuteHandler=Dd(()=>S(this,void 0,void 0,function*(){yield this.pauseUpstream()}),5e3),this.handleTrackUnmuteEvent=()=>S(this,void 0,void 0,function*(){this.debouncedTrackMuteHandler.cancel("unmute"),yield this.resumeUpstream()}),this.handleEnded=()=>{this.isInBackground&&(this.reacquireTrack=!0),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),this.emit(N.Ended,this)},this.reacquireTrack=!1,this.providedByUser=i,this.muteLock=new yt,this.pauseUpstreamLock=new yt,this.processorLock=new yt,this.restartLock=new yt,this.setMediaStreamTrack(e,!0),this._constraints=e.getConstraints(),r&&(this._constraints=r)}get id(){return this._mediaStreamTrack.id}get dimensions(){if(this.kind!==O.Kind.Video)return;const{width:e,height:n}=this._mediaStreamTrack.getSettings();if(e&&n)return{width:e,height:n}}get isUpstreamPaused(){return this._isUpstreamPaused}get isUserProvided(){return this.providedByUser}get mediaStreamTrack(){var e,n;return(n=(e=this.processor)===null||e===void 0?void 0:e.processedTrack)!==null&&n!==void 0?n:this._mediaStreamTrack}get isLocal(){return!0}getSourceTrackSettings(){return this._mediaStreamTrack.getSettings()}setMediaStreamTrack(e,n){return S(this,void 0,void 0,function*(){var r;if(e===this._mediaStreamTrack&&!n)return;this._mediaStreamTrack&&(this.attachedElements.forEach(s=>{Ci(this._mediaStreamTrack,s)}),this.debouncedTrackMuteHandler.cancel("new-track"),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent)),this.mediaStream=new MediaStream([e]),e&&(e.addEventListener("ended",this.handleEnded),e.addEventListener("mute",this.handleTrackMuteEvent),e.addEventListener("unmute",this.handleTrackUnmuteEvent),this._constraints=e.getConstraints());let i;if(this.processor&&e){const s=yield this.processorLock.lock();try{if(this.log.debug("restarting processor",this.logContext),this.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");this.processorElement&&(bi(e,this.processorElement),this.processorElement.muted=!0),yield this.processor.restart({track:e,kind:this.kind,element:this.processorElement}),i=this.processor.processedTrack}finally{s()}}this.sender&&((r=this.sender.transport)===null||r===void 0?void 0:r.state)!=="closed"&&(yield this.sender.replaceTrack(i??e)),!this.providedByUser&&this._mediaStreamTrack!==e&&this._mediaStreamTrack.stop(),this._mediaStreamTrack=e,e&&(this._mediaStreamTrack.enabled=!this.isMuted,yield this.resumeUpstream(),this.attachedElements.forEach(s=>{bi(i??e,s)}))})}waitForDimensions(){return S(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:h2;return function*(){var r;if(e.kind===O.Kind.Audio)throw new Error("cannot get dimensions for audio tracks");((r=Vt())===null||r===void 0?void 0:r.os)==="iOS"&&(yield ut(10));const i=Date.now();for(;Date.now()-i<n;){const s=e.dimensions;if(s)return s;yield ut(50)}throw new kn("unable to get track dimensions after timeout")}()})}setDeviceId(e){return S(this,void 0,void 0,function*(){return this._constraints.deviceId===e&&this._mediaStreamTrack.getSettings().deviceId===Yn(e)||(this._constraints.deviceId=e,this.isMuted)?!0:(yield this.restartTrack(),Yn(e)===this._mediaStreamTrack.getSettings().deviceId)})}getDeviceId(){return S(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){if(e.source===O.Source.ScreenShare)return;const{deviceId:r,groupId:i}=e._mediaStreamTrack.getSettings(),s=e.kind===O.Kind.Audio?"audioinput":"videoinput";return n?Ae.getInstance().normalizeDeviceId(s,r,i):r}()})}mute(){return S(this,void 0,void 0,function*(){return this.setTrackMuted(!0),this})}unmute(){return S(this,void 0,void 0,function*(){return this.setTrackMuted(!1),this})}replaceTrack(e,n){return S(this,void 0,void 0,function*(){if(!this.sender)throw new kn("unable to replace an unpublished track");let r,i;return typeof n=="boolean"?r=n:n!==void 0&&(r=n.userProvidedTrack,i=n.stopProcessor),this.providedByUser=r??!0,this.log.debug("replace MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(e),i&&this.processor&&(yield this.stopProcessor()),this})}restart(e){return S(this,void 0,void 0,function*(){this.manuallyStopped=!1;const n=yield this.restartLock.lock();try{e||(e=this._constraints);const{deviceId:r,facingMode:i}=e,s=nT(e,["deviceId","facingMode"]);this.log.debug("restarting track with constraints",Object.assign(Object.assign({},this.logContext),{constraints:e}));const o={audio:!1,video:!1};this.kind===O.Kind.Video?o.video=r||i?{deviceId:r,facingMode:i}:!0:o.audio=r?{deviceId:r}:!0,this.attachedElements.forEach(c=>{Ci(this.mediaStreamTrack,c)}),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.stop();const l=(yield navigator.mediaDevices.getUserMedia(o)).getTracks()[0];return yield l.applyConstraints(s),l.addEventListener("ended",this.handleEnded),this.log.debug("re-acquired MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(l),this._constraints=e,this.emit(N.Restarted,this),this.manuallyStopped&&(this.log.warn("track was stopped during a restart, stopping restarted track",this.logContext),this.stop()),this}finally{n()}})}setTrackMuted(e){this.log.debug("setting ".concat(this.kind," track ").concat(e?"muted":"unmuted"),this.logContext),!(this.isMuted===e&&this._mediaStreamTrack.enabled!==e)&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?N.Muted:N.Unmuted,this))}get needsReAcquisition(){return this._mediaStreamTrack.readyState!=="live"||this._mediaStreamTrack.muted||!this._mediaStreamTrack.enabled||this.reacquireTrack}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return S(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),w0()&&(this.log.debug("visibility changed, is in Background: ".concat(this.isInBackground),this.logContext),!this.isInBackground&&this.needsReAcquisition&&!this.isUserProvided&&!this.isMuted&&(this.log.debug("track needs to be reacquired, restarting ".concat(this.source),this.logContext),yield this.restart(),this.reacquireTrack=!1))})}stop(){var e;this.manuallyStopped=!0,super.stop(),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),(e=this.processor)===null||e===void 0||e.destroy(),this.processor=void 0}pauseUpstream(){return S(this,void 0,void 0,function*(){var e;const n=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!0)return;if(!this.sender){this.log.warn("unable to pause upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!0,this.emit(N.UpstreamPaused,this);const r=Vt();if((r==null?void 0:r.name)==="Safari"&&Er(r.version,"12.0")<0)throw new ud("pauseUpstream is not supported on Safari < 12.");((e=this.sender.transport)===null||e===void 0?void 0:e.state)!=="closed"&&(yield this.sender.replaceTrack(null))}finally{n()}})}resumeUpstream(){return S(this,void 0,void 0,function*(){var e;const n=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!1)return;if(!this.sender){this.log.warn("unable to resume upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!1,this.emit(N.UpstreamResumed,this),((e=this.sender.transport)===null||e===void 0?void 0:e.state)!=="closed"&&(yield this.sender.replaceTrack(this.mediaStreamTrack))}finally{n()}})}getRTCStatsReport(){return S(this,void 0,void 0,function*(){var e;return!((e=this.sender)===null||e===void 0)&&e.getStats?yield this.sender.getStats():void 0})}setProcessor(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var s;const o=yield r.processorLock.lock();try{r.log.debug("setting up processor",r.logContext);const a=document.createElement(r.kind),l={kind:r.kind,track:r._mediaStreamTrack,element:a,audioContext:r.audioContext};if(yield n.init(l),r.log.debug("processor initialized",r.logContext),r.processor&&(yield r.stopProcessor()),r.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");if(bi(r._mediaStreamTrack,a),a.muted=!0,a.play().catch(c=>r.log.error("failed to play processor element",Object.assign(Object.assign({},r.logContext),{error:c}))),r.processor=n,r.processorElement=a,r.processor.processedTrack){for(const c of r.attachedElements)c!==r.processorElement&&i&&(Ci(r._mediaStreamTrack,c),bi(r.processor.processedTrack,c));yield(s=r.sender)===null||s===void 0?void 0:s.replaceTrack(r.processor.processedTrack)}r.emit(N.TrackProcessorUpdate,r.processor)}finally{o()}}()})}getProcessor(){return this.processor}stopProcessor(){return S(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var r,i;e.processor&&(e.log.debug("stopping processor",e.logContext),(r=e.processor.processedTrack)===null||r===void 0||r.stop(),yield e.processor.destroy(),e.processor=void 0,n||((i=e.processorElement)===null||i===void 0||i.remove(),e.processorElement=void 0),yield e._mediaStreamTrack.applyConstraints(e._constraints),yield e.setMediaStreamTrack(e._mediaStreamTrack,!0),e.emit(N.TrackProcessorUpdate))}()})}}class Wa extends Z0{get enhancedNoiseCancellation(){return this.isKrispNoiseFilterEnabled}constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=arguments.length>3?arguments[3]:void 0,s=arguments.length>4?arguments[4]:void 0;super(e,O.Kind.Audio,n,r,s),this.stopOnMute=!1,this.isKrispNoiseFilterEnabled=!1,this.monitorSender=()=>S(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let o;try{o=yield this.getSenderStats()}catch(a){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:a}));return}o&&this.prevStats&&(this._currentBitrate=qa(o,this.prevStats)),this.prevStats=o}),this.handleKrispNoiseFilterEnable=()=>{this.isKrispNoiseFilterEnabled=!0,this.log.debug("Krisp noise filter enabled",this.logContext),this.emit(N.AudioTrackFeatureUpdate,this,en.TF_ENHANCED_NOISE_CANCELLATION,!0)},this.handleKrispNoiseFilterDisable=()=>{this.isKrispNoiseFilterEnabled=!1,this.log.debug("Krisp noise filter disabled",this.logContext),this.emit(N.AudioTrackFeatureUpdate,this,en.TF_ENHANCED_NOISE_CANCELLATION,!1)},this.audioContext=i,this.checkForSilence()}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return S(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===O.Source.Microphone&&this.stopOnMute&&!this.isUserProvided&&(this.log.debug("stopping mic track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{n()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return S(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{if(!this.isMuted)return this.log.debug("Track already unmuted",this.logContext),this;const r=this._constraints.deviceId&&this._mediaStreamTrack.getSettings().deviceId!==Yn(this._constraints.deviceId);return this.source===O.Source.Microphone&&(this.stopOnMute||this._mediaStreamTrack.readyState==="ended"||r)&&!this.isUserProvided&&(this.log.debug("reacquiring mic track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this}finally{n()}})}restartTrack(e){return S(this,void 0,void 0,function*(){let n;if(e){const r=Va({audio:e});typeof r.audio!="boolean"&&(n=r.audio)}yield this.restart(n)})}restart(e){const n=Object.create(null,{restart:{get:()=>super.restart}});return S(this,void 0,void 0,function*(){const r=yield n.restart.call(this,e);return this.checkForSilence(),r})}startMonitor(){dt()&&(this.monitorInterval||(this.monitorInterval=setInterval(()=>{this.monitorSender()},Fd)))}setProcessor(e){return S(this,void 0,void 0,function*(){var n;const r=yield this.processorLock.lock();try{if(!rn()&&!this.audioContext)throw Error("Audio context needs to be set on LocalAudioTrack in order to enable processors");this.processor&&(yield this.stopProcessor());const i={kind:this.kind,track:this._mediaStreamTrack,audioContext:this.audioContext};this.log.debug("setting up audio processor ".concat(e.name),this.logContext),yield e.init(i),this.processor=e,this.processor.processedTrack&&(yield(n=this.sender)===null||n===void 0?void 0:n.replaceTrack(this.processor.processedTrack),this.processor.processedTrack.addEventListener("enable-lk-krisp-noise-filter",this.handleKrispNoiseFilterEnable),this.processor.processedTrack.addEventListener("disable-lk-krisp-noise-filter",this.handleKrispNoiseFilterDisable)),this.emit(N.TrackProcessorUpdate,this.processor)}finally{r()}})}setAudioContext(e){this.audioContext=e}getSenderStats(){return S(this,void 0,void 0,function*(){var e;if(!(!((e=this.sender)===null||e===void 0)&&e.getStats))return;const n=yield this.sender.getStats();let r;return n.forEach(i=>{i.type==="outbound-rtp"&&(r={type:"audio",streamId:i.id,packetsSent:i.packetsSent,packetsLost:i.packetsLost,bytesSent:i.bytesSent,timestamp:i.timestamp,roundTripTime:i.roundTripTime,jitter:i.jitter})}),r})}checkForSilence(){return S(this,void 0,void 0,function*(){const e=yield M0(this);return e&&(this.isMuted||this.log.warn("silence detected on local audio track",this.logContext),this.emit(N.AudioSilenceDetected)),e})}}function Q0(t,e,n){switch(t.kind){case"audio":return new Wa(t,e,!1,void 0,n);case"video":return new Ka(t,e,!1,n);default:throw new kn("unsupported track type: ".concat(t.kind))}}const f2=Object.values(Os),p2=Object.values(md),m2=Object.values(gd),g2=[Os.h180,Os.h360],v2=[md.h180,md.h360],y2=t=>[{scaleResolutionDownBy:2,fps:t.encoding.maxFramerate}].map(n=>{var r,i;return new ae(Math.floor(t.width/n.scaleResolutionDownBy),Math.floor(t.height/n.scaleResolutionDownBy),Math.max(15e4,Math.floor(t.encoding.maxBitrate/(Math.pow(n.scaleResolutionDownBy,2)*(((r=t.encoding.maxFramerate)!==null&&r!==void 0?r:30)/((i=n.fps)!==null&&i!==void 0?i:30))))),n.fps,t.encoding.priority)}),Bd=["q","h","f"];function zd(t,e,n,r){var i,s;let o=r==null?void 0:r.videoEncoding;t&&(o=r==null?void 0:r.screenShareEncoding);const a=r==null?void 0:r.simulcast,l=r==null?void 0:r.scalabilityMode,c=r==null?void 0:r.videoCodec;if(!o&&!a&&!l||!e||!n)return[{}];o||(o=b2(t,e,n,c),K.debug("using video encoding",o));const u=o.maxFramerate,d=new ae(e,n,o.maxBitrate,o.maxFramerate,o.priority);if(l&&Ls(c)){const m=new Ga(l),g=[];if(m.spatial>3)throw new Error("unsupported scalabilityMode: ".concat(l));const T=Vt();if(Qn()||rn()||(T==null?void 0:T.name)==="Chrome"&&Er(T==null?void 0:T.version,"113")<0){const p=m.suffix=="h"?2:3;for(let v=0;v<m.spatial;v+=1)g.push({rid:Bd[2-v],maxBitrate:o.maxBitrate/Math.pow(p,v),maxFramerate:d.encoding.maxFramerate});g[0].scalabilityMode=l}else g.push({maxBitrate:o.maxBitrate,maxFramerate:d.encoding.maxFramerate,scalabilityMode:l});return d.encoding.priority&&(g[0].priority=d.encoding.priority,g[0].networkPriority=d.encoding.priority),K.debug("using svc encoding",{encodings:g}),g}if(!a)return[o];let h=[];t?h=(i=J0(r==null?void 0:r.screenShareSimulcastLayers))!==null&&i!==void 0?i:Y0(t,d):h=(s=J0(r==null?void 0:r.videoSimulcastLayers))!==null&&s!==void 0?s:Y0(t,d);let f;if(h.length>0){const m=h[0];h.length>1&&([,f]=h);const g=Math.max(e,n);if(g>=960&&f)return Vd(e,n,[m,f,d],u);if(g>=480)return Vd(e,n,[m,d],u)}return Vd(e,n,[d])}function k2(t,e,n){var r,i,s,o;if(!n.backupCodec||n.backupCodec===!0||n.backupCodec.codec===n.videoCodec)return;e!==n.backupCodec.codec&&K.warn("requested a different codec than specified as backup",{serverRequested:e,backup:n.backupCodec.codec}),n.videoCodec=e,n.videoEncoding=n.backupCodec.encoding;const a=t.mediaStreamTrack.getSettings(),l=(r=a.width)!==null&&r!==void 0?r:(i=t.dimensions)===null||i===void 0?void 0:i.width,c=(s=a.height)!==null&&s!==void 0?s:(o=t.dimensions)===null||o===void 0?void 0:o.height;return t.source===O.Source.ScreenShare&&n.simulcast&&(n.simulcast=!1),zd(t.source===O.Source.ScreenShare,l,c,n)}function b2(t,e,n,r){const i=C2(t,e,n);let{encoding:s}=i[0];const o=Math.max(e,n);for(let a=0;a<i.length;a+=1){const l=i[a];if(s=l.encoding,l.width>=o)break}if(r)switch(r){case"av1":s=Object.assign({},s),s.maxBitrate=s.maxBitrate*.7;break;case"vp9":s=Object.assign({},s),s.maxBitrate=s.maxBitrate*.85;break}return s}function C2(t,e,n){if(t)return m2;const r=e>n?e/n:n/e;return Math.abs(r-16/9)<Math.abs(r-4/3)?f2:p2}function Y0(t,e){if(t)return y2(e);const{width:n,height:r}=e,i=n>r?n/r:r/n;return Math.abs(i-16/9)<Math.abs(i-4/3)?g2:v2}function Vd(t,e,n,r){const i=[];if(n.forEach((s,o)=>{if(o>=Bd.length)return;const a=Math.min(t,e),c={rid:Bd[o],scaleResolutionDownBy:Math.max(1,a/Math.min(s.width,s.height)),maxBitrate:s.encoding.maxBitrate},u=r&&s.encoding.maxFramerate?Math.min(r,s.encoding.maxFramerate):s.encoding.maxFramerate;u&&(c.maxFramerate=u);const d=Si()||o===0;s.encoding.priority&&d&&(c.priority=s.encoding.priority,c.networkPriority=s.encoding.priority),i.push(c)}),rn()&&x0()==="ios"){let s;i.forEach(a=>{s?a.maxFramerate&&a.maxFramerate>s&&(s=a.maxFramerate):s=a.maxFramerate});let o=!0;i.forEach(a=>{var l;a.maxFramerate!=s&&(o&&(o=!1,K.info("Simulcast on iOS React-Native requires all encodings to share the same framerate.")),K.info('Setting framerate of encoding "'.concat((l=a.rid)!==null&&l!==void 0?l:"",'" to ').concat(s)),a.maxFramerate=s)})}return i}function J0(t){if(t)return t.sort((e,n)=>{const{encoding:r}=e,{encoding:i}=n;return r.maxBitrate>i.maxBitrate?1:r.maxBitrate<i.maxBitrate?-1:r.maxBitrate===i.maxBitrate&&r.maxFramerate&&i.maxFramerate?r.maxFramerate>i.maxFramerate?1:-1:0})}class Ga{constructor(e){const n=e.match(/^L(\d)T(\d)(h|_KEY|_KEY_SHIFT){0,1}$/);if(!n)throw new Error("invalid scalability mode");if(this.spatial=parseInt(n[1]),this.temporal=parseInt(n[2]),n.length>3)switch(n[3]){case"h":case"_KEY":case"_KEY_SHIFT":this.suffix=n[3]}}toString(){var e;return"L".concat(this.spatial,"T").concat(this.temporal).concat((e=this.suffix)!==null&&e!==void 0?e:"")}}function S2(t){return t.source===O.Source.ScreenShare||t.constraints.height&&Yn(t.constraints.height)>=1080?"maintain-resolution":"balanced"}const w2=5e3;class Ka extends Z0{get sender(){return this._sender}set sender(e){this._sender=e,this.degradationPreference&&this.setDegradationPreference(this.degradationPreference)}constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=arguments.length>3?arguments[3]:void 0;super(e,O.Kind.Video,n,r,i),this.simulcastCodecs=new Map,this.degradationPreference="balanced",this.monitorSender=()=>S(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let s;try{s=yield this.getSenderStats()}catch(a){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:a}));return}const o=new Map(s.map(a=>[a.rid,a]));if(this.prevStats){let a=0;o.forEach((l,c)=>{var u;const d=(u=this.prevStats)===null||u===void 0?void 0:u.get(c);a+=qa(l,d)}),this._currentBitrate=a}this.prevStats=o}),this.senderLock=new yt}get isSimulcast(){return!!(this.sender&&this.sender.getParameters().encodings.length>1)}startMonitor(e){var n;if(this.signalClient=e,!dt())return;const r=(n=this.sender)===null||n===void 0?void 0:n.getParameters();r&&(this.encodings=r.encodings),!this.monitorInterval&&(this.monitorInterval=setInterval(()=>{this.monitorSender()},Fd))}stop(){this._mediaStreamTrack.getConstraints(),this.simulcastCodecs.forEach(e=>{e.mediaStreamTrack.stop()}),super.stop()}pauseUpstream(){const e=Object.create(null,{pauseUpstream:{get:()=>super.pauseUpstream}});return S(this,void 0,void 0,function*(){var n,r,i,s,o;yield e.pauseUpstream.call(this);try{for(var a=!0,l=Wn(this.simulcastCodecs.values()),c;c=yield l.next(),n=c.done,!n;a=!0)s=c.value,a=!1,yield(o=s.sender)===null||o===void 0?void 0:o.replaceTrack(null)}catch(u){r={error:u}}finally{try{!a&&!n&&(i=l.return)&&(yield i.call(l))}finally{if(r)throw r.error}}})}resumeUpstream(){const e=Object.create(null,{resumeUpstream:{get:()=>super.resumeUpstream}});return S(this,void 0,void 0,function*(){var n,r,i,s,o;yield e.resumeUpstream.call(this);try{for(var a=!0,l=Wn(this.simulcastCodecs.values()),c;c=yield l.next(),n=c.done,!n;a=!0){s=c.value,a=!1;const u=s;yield(o=u.sender)===null||o===void 0?void 0:o.replaceTrack(u.mediaStreamTrack)}}catch(u){r={error:u}}finally{try{!a&&!n&&(i=l.return)&&(yield i.call(l))}finally{if(r)throw r.error}}})}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return S(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===O.Source.Camera&&!this.isUserProvided&&(this.log.debug("stopping camera track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{n()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return S(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.source===O.Source.Camera&&!this.isUserProvided&&(this.log.debug("reacquiring camera track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this):(this.log.debug("Track already unmuted",this.logContext),this)}finally{n()}})}setTrackMuted(e){super.setTrackMuted(e);for(const n of this.simulcastCodecs.values())n.mediaStreamTrack.enabled=!e}getSenderStats(){return S(this,void 0,void 0,function*(){var e;if(!(!((e=this.sender)===null||e===void 0)&&e.getStats))return[];const n=[],r=yield this.sender.getStats();return r.forEach(i=>{var s;if(i.type==="outbound-rtp"){const o={type:"video",streamId:i.id,frameHeight:i.frameHeight,frameWidth:i.frameWidth,framesPerSecond:i.framesPerSecond,framesSent:i.framesSent,firCount:i.firCount,pliCount:i.pliCount,nackCount:i.nackCount,packetsSent:i.packetsSent,bytesSent:i.bytesSent,qualityLimitationReason:i.qualityLimitationReason,qualityLimitationDurations:i.qualityLimitationDurations,qualityLimitationResolutionChanges:i.qualityLimitationResolutionChanges,rid:(s=i.rid)!==null&&s!==void 0?s:i.id,retransmittedPacketsSent:i.retransmittedPacketsSent,targetBitrate:i.targetBitrate,timestamp:i.timestamp},a=r.get(i.remoteId);a&&(o.jitter=a.jitter,o.packetsLost=a.packetsLost,o.roundTripTime=a.roundTripTime),n.push(o)}}),n.sort((i,s)=>{var o,a;return((o=s.frameWidth)!==null&&o!==void 0?o:0)-((a=i.frameWidth)!==null&&a!==void 0?a:0)}),n})}setPublishingQuality(e){const n=[];for(let r=Et.LOW;r<=Et.HIGH;r+=1)n.push(new Ju({quality:r,enabled:r<=e}));this.log.debug("setting publishing quality. max quality ".concat(e),this.logContext),this.setPublishingLayers(n)}restartTrack(e){return S(this,void 0,void 0,function*(){var n,r,i,s,o;let a;if(e){const d=Va({video:e});typeof d.video!="boolean"&&(a=d.video)}yield this.restart(a);try{for(var l=!0,c=Wn(this.simulcastCodecs.values()),u;u=yield c.next(),n=u.done,!n;l=!0){s=u.value,l=!1;const d=s;d.sender&&((o=d.sender.transport)===null||o===void 0?void 0:o.state)!=="closed"&&(d.mediaStreamTrack=this.mediaStreamTrack.clone(),yield d.sender.replaceTrack(d.mediaStreamTrack))}}catch(d){r={error:d}}finally{try{!l&&!n&&(i=c.return)&&(yield i.call(c))}finally{if(r)throw r.error}}})}setProcessor(e){const n=Object.create(null,{setProcessor:{get:()=>super.setProcessor}});return S(this,arguments,void 0,function(r){var i=this;let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var o,a,l,c,u,d;if(yield n.setProcessor.call(i,r,s),!((u=i.processor)===null||u===void 0)&&u.processedTrack)try{for(var h=!0,f=Wn(i.simulcastCodecs.values()),m;m=yield f.next(),o=m.done,!o;h=!0)c=m.value,h=!1,yield(d=c.sender)===null||d===void 0?void 0:d.replaceTrack(i.processor.processedTrack)}catch(g){a={error:g}}finally{try{!h&&!o&&(l=f.return)&&(yield l.call(f))}finally{if(a)throw a.error}}}()})}setDegradationPreference(e){return S(this,void 0,void 0,function*(){if(this.degradationPreference=e,this.sender)try{this.log.debug("setting degradationPreference to ".concat(e),this.logContext);const n=this.sender.getParameters();n.degradationPreference=e,this.sender.setParameters(n)}catch(n){this.log.warn("failed to set degradationPreference",Object.assign({error:n},this.logContext))}})}addSimulcastTrack(e,n){if(this.simulcastCodecs.has(e)){this.log.error("".concat(e," already added, skipping adding simulcast codec"),this.logContext);return}const r={codec:e,mediaStreamTrack:this.mediaStreamTrack.clone(),sender:void 0,encodings:n};return this.simulcastCodecs.set(e,r),r}setSimulcastTrackSender(e,n){const r=this.simulcastCodecs.get(e);r&&(r.sender=n,setTimeout(()=>{this.subscribedCodecs&&this.setPublishingCodecs(this.subscribedCodecs)},w2))}setPublishingCodecs(e){return S(this,void 0,void 0,function*(){var n,r,i,s,o,a,l;if(this.log.debug("setting publishing codecs",Object.assign(Object.assign({},this.logContext),{codecs:e,currentCodec:this.codec})),!this.codec&&e.length>0)return yield this.setPublishingLayers(e[0].qualities),[];this.subscribedCodecs=e;const c=[];try{for(n=!0,r=Wn(e);i=yield r.next(),s=i.done,!s;n=!0){l=i.value,n=!1;const u=l;if(!this.codec||this.codec===u.codec)yield this.setPublishingLayers(u.qualities);else{const d=this.simulcastCodecs.get(u.codec);if(this.log.debug("try setPublishingCodec for ".concat(u.codec),Object.assign(Object.assign({},this.logContext),{simulcastCodecInfo:d})),!d||!d.sender){for(const h of u.qualities)if(h.enabled){c.push(u.codec);break}}else d.encodings&&(this.log.debug("try setPublishingLayersForSender ".concat(u.codec),this.logContext),yield X0(d.sender,d.encodings,u.qualities,this.senderLock,this.log,this.logContext))}}}catch(u){o={error:u}}finally{try{!n&&!s&&(a=r.return)&&(yield a.call(r))}finally{if(o)throw o.error}}return c})}setPublishingLayers(e){return S(this,void 0,void 0,function*(){this.log.debug("setting publishing layers",Object.assign(Object.assign({},this.logContext),{qualities:e})),!(!this.sender||!this.encodings)&&(yield X0(this.sender,this.encodings,e,this.senderLock,this.log,this.logContext))})}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return S(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),w0()&&this.isInBackground&&this.source===O.Source.Camera&&(this._mediaStreamTrack.enabled=!1)})}}function X0(t,e,n,r,i,s){return S(this,void 0,void 0,function*(){const o=yield r.lock();i.debug("setPublishingLayersForSender",Object.assign(Object.assign({},s),{sender:t,qualities:n,senderEncodings:e}));try{const a=t.getParameters(),{encodings:l}=a;if(!l)return;if(l.length!==e.length){i.warn("cannot set publishing layers, encodings mismatch",Object.assign(Object.assign({},s),{encodings:l,senderEncodings:e}));return}let c=!1;const u=Vt();if((u==null?void 0:u.name)==="Chrome"&&Er(u==null?void 0:u.version,"133")>0&&l[0].scalabilityMode){const h=l[0],f=new Ga(h.scalabilityMode);let m=mi.OFF;if(n.forEach(g=>{g.enabled&&(m===mi.OFF||g.quality>m)&&(m=g.quality)}),m===mi.OFF)h.active&&(h.active=!1,c=!0);else if(!h.active||f.spatial!==m+1){c=!0,h.active=!0;const g=new Ga(e[0].scalabilityMode);f.spatial=m+1,f.suffix=g.suffix,f.spatial===1&&(f.suffix=void 0),h.scalabilityMode=f.toString(),h.scaleResolutionDownBy=Math.pow(2,2-m),e[0].maxBitrate&&(h.maxBitrate=e[0].maxBitrate/(h.scaleResolutionDownBy*h.scaleResolutionDownBy))}}else l.forEach((h,f)=>{var m;let g=(m=h.rid)!==null&&m!==void 0?m:"";g===""&&(g="q");const T=ey(g),p=n.find(v=>v.quality===T);p&&h.active!==p.enabled&&(c=!0,h.active=p.enabled,i.debug("setting layer ".concat(p.quality," to ").concat(h.active?"enabled":"disabled"),s),Si()&&(p.enabled?(h.scaleResolutionDownBy=e[f].scaleResolutionDownBy,h.maxBitrate=e[f].maxBitrate,h.maxFrameRate=e[f].maxFrameRate):(h.scaleResolutionDownBy=4,h.maxBitrate=10,h.maxFrameRate=2)))});c&&(a.encodings=l,i.debug("setting encodings",Object.assign(Object.assign({},s),{encodings:a.encodings})),yield t.setParameters(a))}finally{o()}})}function ey(t){switch(t){case"f":return Et.HIGH;case"h":return Et.MEDIUM;case"q":return Et.LOW;default:return Et.HIGH}}function ty(t,e,n,r){if(!n)return[new wr({quality:Et.HIGH,width:t,height:e,bitrate:0,ssrc:0})];if(r){const i=n[0].scalabilityMode,s=new Ga(i),o=[],a=s.suffix=="h"?1.5:2,l=s.suffix=="h"?2:3;for(let c=0;c<s.spatial;c+=1)o.push(new wr({quality:Math.min(Et.HIGH,s.spatial-1)-c,width:Math.ceil(t/Math.pow(a,c)),height:Math.ceil(e/Math.pow(a,c)),bitrate:n[0].maxBitrate?Math.ceil(n[0].maxBitrate/Math.pow(l,c)):0,ssrc:0}));return o}return n.map(i=>{var s,o,a;const l=(s=i.scaleResolutionDownBy)!==null&&s!==void 0?s:1;let c=ey((o=i.rid)!==null&&o!==void 0?o:"");return new wr({quality:c,width:Math.ceil(t/l),height:Math.ceil(e/l),bitrate:(a=i.maxBitrate)!==null&&a!==void 0?a:0,ssrc:0})})}const ny="_lossy",ry="_reliable",T2=2*1e3,Hd="leave-reconnect";var $t;(function(t){t[t.New=0]="New",t[t.Connected=1]="Connected",t[t.Disconnected=2]="Disconnected",t[t.Reconnecting=3]="Reconnecting",t[t.Closed=4]="Closed"})($t||($t={}));class x2 extends nn.EventEmitter{get isClosed(){return this._isClosed}get pendingReconnect(){return!!this.reconnectTimeout}constructor(e){var n;super(),this.options=e,this.rtcConfig={},this.peerConnectionTimeout=jd.peerConnectionTimeout,this.fullReconnectOnNext=!1,this.subscriberPrimary=!1,this.pcState=$t.New,this._isClosed=!0,this.pendingTrackResolvers={},this.reconnectAttempts=0,this.reconnectStart=0,this.attemptingReconnect=!1,this.joinAttempts=0,this.maxJoinAttempts=1,this.shouldFailNext=!1,this.log=K,this.handleDataChannel=r=>S(this,[r],void 0,function(i){var s=this;let{channel:o}=i;return function*(){if(o){if(o.label===ry)s.reliableDCSub=o;else if(o.label===ny)s.lossyDCSub=o;else return;s.log.debug("on data channel ".concat(o.id,", ").concat(o.label),s.logContext),o.onmessage=s.handleDataMessage}}()}),this.handleDataMessage=r=>S(this,void 0,void 0,function*(){var i,s;const o=yield this.dataProcessLock.lock();try{let a;if(r.data instanceof ArrayBuffer)a=r.data;else if(r.data instanceof Blob)a=yield r.data.arrayBuffer();else{this.log.error("unsupported data type",Object.assign(Object.assign({},this.logContext),{data:r.data}));return}const l=ct.fromBinary(new Uint8Array(a));((i=l.value)===null||i===void 0?void 0:i.case)==="speaker"?this.emit(D.ActiveSpeakersUpdate,l.value.value.speakers):(((s=l.value)===null||s===void 0?void 0:s.case)==="user"&&P2(l,l.value.value),this.emit(D.DataPacketReceived,l))}finally{o()}}),this.handleDataError=r=>{const s=r.currentTarget.maxRetransmits===0?"lossy":"reliable";if(r instanceof ErrorEvent&&r.error){const{error:o}=r.error;this.log.error("DataChannel error on ".concat(s,": ").concat(r.message),Object.assign(Object.assign({},this.logContext),{error:o}))}else this.log.error("Unknown DataChannel error on ".concat(s),Object.assign(Object.assign({},this.logContext),{event:r}))},this.handleBufferedAmountLow=r=>{const s=r.currentTarget.maxRetransmits===0?Y.LOSSY:Y.RELIABLE;this.updateAndEmitDCBufferStatus(s)},this.handleDisconnect=(r,i)=>{if(this._isClosed)return;this.log.warn("".concat(r," disconnected"),this.logContext),this.reconnectAttempts===0&&(this.reconnectStart=Date.now());const s=l=>{this.log.warn("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(l,"ms. giving up"),this.logContext),this.emit(D.Disconnected),this.close()},o=Date.now()-this.reconnectStart;let a=this.getNextRetryDelay({elapsedMs:o,retryCount:this.reconnectAttempts});if(a===null){s(o);return}r===Hd&&(a=0),this.log.debug("reconnecting in ".concat(a,"ms"),this.logContext),this.clearReconnectTimeout(),this.token&&this.regionUrlProvider&&this.regionUrlProvider.updateToken(this.token),this.reconnectTimeout=He.setTimeout(()=>this.attemptReconnect(i).finally(()=>this.reconnectTimeout=void 0),a)},this.waitForRestarted=()=>new Promise((r,i)=>{this.pcState===$t.Connected&&r();const s=()=>{this.off(D.Disconnected,o),r()},o=()=>{this.off(D.Restarted,s),i()};this.once(D.Restarted,s),this.once(D.Disconnected,o)}),this.updateAndEmitDCBufferStatus=r=>{const i=this.isBufferStatusLow(r);typeof i<"u"&&i!==this.dcBufferStatus.get(r)&&(this.dcBufferStatus.set(r,i),this.emit(D.DCBufferStatusChanged,i,r))},this.isBufferStatusLow=r=>{const i=this.dataChannelForKind(r);if(i)return i.bufferedAmount<=i.bufferedAmountLowThreshold},this.handleBrowserOnLine=()=>{this.client.currentState===me.RECONNECTING&&(this.clearReconnectTimeout(),this.attemptReconnect(gi.RR_SIGNAL_DISCONNECTED))},this.log=yn((n=e.loggerName)!==null&&n!==void 0?n:zt.Engine),this.loggerOptions={loggerName:e.loggerName,loggerContextCb:()=>this.logContext},this.client=new Id(void 0,this.loggerOptions),this.client.signalLatency=this.options.expSignalLatency,this.reconnectPolicy=this.options.reconnectPolicy,this.registerOnLineListener(),this.closingLock=new yt,this.dataProcessLock=new yt,this.dcBufferStatus=new Map([[Y.LOSSY,!0],[Y.RELIABLE,!0]]),this.client.onParticipantUpdate=r=>this.emit(D.ParticipantUpdate,r),this.client.onConnectionQuality=r=>this.emit(D.ConnectionQualityUpdate,r),this.client.onRoomUpdate=r=>this.emit(D.RoomUpdate,r),this.client.onSubscriptionError=r=>this.emit(D.SubscriptionError,r),this.client.onSubscriptionPermissionUpdate=r=>this.emit(D.SubscriptionPermissionUpdate,r),this.client.onSpeakersChanged=r=>this.emit(D.SpeakersChanged,r),this.client.onStreamStateUpdate=r=>this.emit(D.StreamStateChanged,r),this.client.onRequestResponse=r=>this.emit(D.SignalRequestResponse,r)}get logContext(){var e,n,r,i,s,o,a,l;return{room:(n=(e=this.latestJoinResponse)===null||e===void 0?void 0:e.room)===null||n===void 0?void 0:n.name,roomID:(i=(r=this.latestJoinResponse)===null||r===void 0?void 0:r.room)===null||i===void 0?void 0:i.sid,participant:(o=(s=this.latestJoinResponse)===null||s===void 0?void 0:s.participant)===null||o===void 0?void 0:o.identity,pID:(l=(a=this.latestJoinResponse)===null||a===void 0?void 0:a.participant)===null||l===void 0?void 0:l.sid}}join(e,n,r,i){return S(this,void 0,void 0,function*(){this.url=e,this.token=n,this.signalOpts=r,this.maxJoinAttempts=r.maxRetries;try{this.joinAttempts+=1,this.setupSignalClientCallbacks();const s=yield this.client.join(e,n,r,i);return this._isClosed=!1,this.latestJoinResponse=s,this.subscriberPrimary=s.subscriberPrimary,this.pcManager||(yield this.configure(s)),(!this.subscriberPrimary||s.fastPublish)&&this.negotiate(),this.clientConfiguration=s.clientConfiguration,s}catch(s){if(s instanceof ce&&s.reason===Z.ServerUnreachable&&(this.log.warn("Couldn't connect to server, attempt ".concat(this.joinAttempts," of ").concat(this.maxJoinAttempts),this.logContext),this.joinAttempts<this.maxJoinAttempts))return this.join(e,n,r,i);throw s}})}close(){return S(this,void 0,void 0,function*(){const e=yield this.closingLock.lock();if(this.isClosed){e();return}try{this._isClosed=!0,this.joinAttempts=0,this.emit(D.Closing),this.removeAllListeners(),this.deregisterOnLineListener(),this.clearPendingReconnect(),yield this.cleanupPeerConnections(),yield this.cleanupClient()}finally{e()}})}cleanupPeerConnections(){return S(this,void 0,void 0,function*(){var e;yield(e=this.pcManager)===null||e===void 0?void 0:e.close(),this.pcManager=void 0;const n=r=>{r&&(r.close(),r.onbufferedamountlow=null,r.onclose=null,r.onclosing=null,r.onerror=null,r.onmessage=null,r.onopen=null)};n(this.lossyDC),n(this.lossyDCSub),n(this.reliableDC),n(this.reliableDCSub),this.lossyDC=void 0,this.lossyDCSub=void 0,this.reliableDC=void 0,this.reliableDCSub=void 0})}cleanupClient(){return S(this,void 0,void 0,function*(){yield this.client.close(),this.client.resetCallbacks()})}addTrack(e){if(this.pendingTrackResolvers[e.cid])throw new kn("a track with the same ID has already been published");return new Promise((n,r)=>{const i=setTimeout(()=>{delete this.pendingTrackResolvers[e.cid],r(new ce("publication of local track timed out, no response from server",Z.InternalError))},1e4);this.pendingTrackResolvers[e.cid]={resolve:s=>{clearTimeout(i),n(s)},reject:()=>{clearTimeout(i),r(new Error("Cancelled publication by calling unpublish"))}},this.client.sendAddTrack(e)})}removeTrack(e){if(e.track&&this.pendingTrackResolvers[e.track.id]){const{reject:n}=this.pendingTrackResolvers[e.track.id];n&&n(),delete this.pendingTrackResolvers[e.track.id]}try{return this.pcManager.removeTrack(e),!0}catch(n){this.log.warn("failed to remove track",Object.assign(Object.assign({},this.logContext),{error:n}))}return!1}updateMuteStatus(e,n){this.client.sendMuteTrack(e,n)}get dataSubscriberReadyState(){var e;return(e=this.reliableDCSub)===null||e===void 0?void 0:e.readyState}getConnectedServerAddress(){return S(this,void 0,void 0,function*(){var e;return(e=this.pcManager)===null||e===void 0?void 0:e.getConnectedAddress()})}setRegionUrlProvider(e){this.regionUrlProvider=e}configure(e){return S(this,void 0,void 0,function*(){var n,r;if(this.pcManager&&this.pcManager.currentState!==we.NEW)return;this.participantSid=(n=e.participant)===null||n===void 0?void 0:n.sid;const i=this.makeRTCConfiguration(e);this.pcManager=new d2(i,e.subscriberPrimary,this.loggerOptions),this.emit(D.TransportsCreated,this.pcManager.publisher,this.pcManager.subscriber),this.pcManager.onIceCandidate=(s,o)=>{this.client.sendIceCandidate(s,o)},this.pcManager.onPublisherOffer=s=>{this.client.sendOffer(s)},this.pcManager.onDataChannel=this.handleDataChannel,this.pcManager.onStateChange=(s,o,a)=>S(this,void 0,void 0,function*(){if(this.log.debug("primary PC state changed ".concat(s),this.logContext),["closed","disconnected","failed"].includes(o)&&(this.publisherConnectionPromise=void 0),s===we.CONNECTED){const u=this.pcState===$t.New;this.pcState=$t.Connected,u&&this.emit(D.Connected,e)}else s===we.FAILED&&this.pcState===$t.Connected&&(this.pcState=$t.Disconnected,this.handleDisconnect("peerconnection failed",a==="failed"?gi.RR_SUBSCRIBER_FAILED:gi.RR_PUBLISHER_FAILED));const l=this.client.isDisconnected||this.client.currentState===me.RECONNECTING,c=[we.FAILED,we.CLOSING,we.CLOSED].includes(s);l&&c&&!this._isClosed&&this.emit(D.Offline)}),this.pcManager.onTrack=s=>{this.emit(D.MediaTrackAdded,s.track,s.streams[0],s.receiver)},E2((r=e.serverInfo)===null||r===void 0?void 0:r.protocol)||this.createDataChannels()})}setupSignalClientCallbacks(){this.client.onAnswer=e=>S(this,void 0,void 0,function*(){this.pcManager&&(this.log.debug("received server answer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type})),yield this.pcManager.setPublisherAnswer(e))}),this.client.onTrickle=(e,n)=>{this.pcManager&&(this.log.debug("got ICE candidate from peer",Object.assign(Object.assign({},this.logContext),{candidate:e,target:n})),this.pcManager.addIceCandidate(e,n))},this.client.onOffer=e=>S(this,void 0,void 0,function*(){if(!this.pcManager)return;const n=yield this.pcManager.createSubscriberAnswerFromOffer(e);this.client.sendAnswer(n)}),this.client.onLocalTrackPublished=e=>{var n;if(this.log.debug("received trackPublishedResponse",Object.assign(Object.assign({},this.logContext),{cid:e.cid,track:(n=e.track)===null||n===void 0?void 0:n.sid})),!this.pendingTrackResolvers[e.cid]){this.log.error("missing track resolver for ".concat(e.cid),Object.assign(Object.assign({},this.logContext),{cid:e.cid}));return}const{resolve:r}=this.pendingTrackResolvers[e.cid];delete this.pendingTrackResolvers[e.cid],r(e.track)},this.client.onLocalTrackUnpublished=e=>{this.emit(D.LocalTrackUnpublished,e)},this.client.onLocalTrackSubscribed=e=>{this.emit(D.LocalTrackSubscribed,e)},this.client.onTokenRefresh=e=>{this.token=e},this.client.onRemoteMuteChanged=(e,n)=>{this.emit(D.RemoteMute,e,n)},this.client.onSubscribedQualityUpdate=e=>{this.emit(D.SubscribedQualityUpdate,e)},this.client.onClose=()=>{this.handleDisconnect("signal",gi.RR_SIGNAL_DISCONNECTED)},this.client.onLeave=e=>{switch(this.log.debug("client leave request",Object.assign(Object.assign({},this.logContext),{reason:e==null?void 0:e.reason})),e.regions&&this.regionUrlProvider&&(this.log.debug("updating regions",this.logContext),this.regionUrlProvider.setServerReportedRegions(e.regions)),e.action){case yi.DISCONNECT:this.emit(D.Disconnected,e==null?void 0:e.reason),this.close();break;case yi.RECONNECT:this.fullReconnectOnNext=!0,this.handleDisconnect(Hd);break;case yi.RESUME:this.handleDisconnect(Hd)}}}makeRTCConfiguration(e){var n;const r=Object.assign({},this.rtcConfig);if(!((n=this.signalOpts)===null||n===void 0)&&n.e2eeEnabled&&(this.log.debug("E2EE - setting up transports with insertable streams",this.logContext),r.encodedInsertableStreams=!0),e.iceServers&&!r.iceServers){const i=[];e.iceServers.forEach(s=>{const o={urls:s.urls};s.username&&(o.username=s.username),s.credential&&(o.credential=s.credential),i.push(o)}),r.iceServers=i}return e.clientConfiguration&&e.clientConfiguration.forceRelay===Ps.ENABLED&&(r.iceTransportPolicy="relay"),r.sdpSemantics="unified-plan",r.continualGatheringPolicy="gather_continually",r}createDataChannels(){this.pcManager&&(this.lossyDC&&(this.lossyDC.onmessage=null,this.lossyDC.onerror=null),this.reliableDC&&(this.reliableDC.onmessage=null,this.reliableDC.onerror=null),this.lossyDC=this.pcManager.createPublisherDataChannel(ny,{ordered:!0,maxRetransmits:0}),this.reliableDC=this.pcManager.createPublisherDataChannel(ry,{ordered:!0}),this.lossyDC.onmessage=this.handleDataMessage,this.reliableDC.onmessage=this.handleDataMessage,this.lossyDC.onerror=this.handleDataError,this.reliableDC.onerror=this.handleDataError,this.lossyDC.bufferedAmountLowThreshold=65535,this.reliableDC.bufferedAmountLowThreshold=65535,this.lossyDC.onbufferedamountlow=this.handleBufferedAmountLow,this.reliableDC.onbufferedamountlow=this.handleBufferedAmountLow)}createSender(e,n,r){return S(this,void 0,void 0,function*(){if(vd())return yield this.createTransceiverRTCRtpSender(e,n,r);if(yd())return this.log.warn("using add-track fallback",this.logContext),yield this.createRTCRtpSender(e.mediaStreamTrack);throw new Me("Required webRTC APIs not supported on this device")})}createSimulcastSender(e,n,r,i){return S(this,void 0,void 0,function*(){if(vd())return this.createSimulcastTransceiverSender(e,n,r,i);if(yd())return this.log.debug("using add-track fallback",this.logContext),this.createRTCRtpSender(e.mediaStreamTrack);throw new Me("Cannot stream on this device")})}createTransceiverRTCRtpSender(e,n,r){return S(this,void 0,void 0,function*(){if(!this.pcManager)throw new Me("publisher is closed");const i=[];e.mediaStream&&i.push(e.mediaStream),Ti(e)&&(e.codec=n.videoCodec);const s={direction:"sendonly",streams:i};return r&&(s.sendEncodings=r),(yield this.pcManager.addPublisherTransceiver(e.mediaStreamTrack,s)).sender})}createSimulcastTransceiverSender(e,n,r,i){return S(this,void 0,void 0,function*(){if(!this.pcManager)throw new Me("publisher is closed");const s={direction:"sendonly"};i&&(s.sendEncodings=i);const o=yield this.pcManager.addPublisherTransceiver(n.mediaStreamTrack,s);if(r.videoCodec)return e.setSimulcastTrackSender(r.videoCodec,o.sender),o.sender})}createRTCRtpSender(e){return S(this,void 0,void 0,function*(){if(!this.pcManager)throw new Me("publisher is closed");return this.pcManager.addPublisherTrack(e)})}attemptReconnect(e){return S(this,void 0,void 0,function*(){var n,r,i;if(!this._isClosed){if(this.attemptingReconnect){K.warn("already attempting reconnect, returning early",this.logContext);return}(((n=this.clientConfiguration)===null||n===void 0?void 0:n.resumeConnection)===Ps.DISABLED||((i=(r=this.pcManager)===null||r===void 0?void 0:r.currentState)!==null&&i!==void 0?i:we.NEW)===we.NEW)&&(this.fullReconnectOnNext=!0);try{this.attemptingReconnect=!0,this.fullReconnectOnNext?yield this.restartConnection():yield this.resumeConnection(e),this.clearPendingReconnect(),this.fullReconnectOnNext=!1}catch(s){this.reconnectAttempts+=1;let o=!0;s instanceof Me?(this.log.debug("received unrecoverable error",Object.assign(Object.assign({},this.logContext),{error:s})),o=!1):s instanceof Ei||(this.fullReconnectOnNext=!0),o?this.handleDisconnect("reconnect",gi.RR_UNKNOWN):(this.log.info("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(Date.now()-this.reconnectStart,"ms. giving up"),this.logContext),this.emit(D.Disconnected),yield this.close())}finally{this.attemptingReconnect=!1}}})}getNextRetryDelay(e){try{return this.reconnectPolicy.nextRetryDelayInMs(e)}catch(n){this.log.warn("encountered error in reconnect policy",Object.assign(Object.assign({},this.logContext),{error:n}))}return null}restartConnection(e){return S(this,void 0,void 0,function*(){var n,r,i;try{if(!this.url||!this.token)throw new Me("could not reconnect, url or token not saved");this.log.info("reconnecting, attempt: ".concat(this.reconnectAttempts),this.logContext),this.emit(D.Restarting),this.client.isDisconnected||(yield this.client.sendLeave()),yield this.cleanupPeerConnections(),yield this.cleanupClient();let s;try{if(!this.signalOpts)throw this.log.warn("attempted connection restart, without signal options present",this.logContext),new Ei;s=yield this.join(e??this.url,this.token,this.signalOpts)}catch(o){throw o instanceof ce&&o.reason===Z.NotAllowed?new Me("could not reconnect, token might be expired"):new Ei}if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(this.client.setReconnected(),this.emit(D.SignalRestarted,s),yield this.waitForPCReconnected(),this.client.currentState!==me.CONNECTED)throw new Ei("Signal connection got severed during reconnect");(n=this.regionUrlProvider)===null||n===void 0||n.resetAttempts(),this.emit(D.Restarted)}catch(s){const o=yield(r=this.regionUrlProvider)===null||r===void 0?void 0:r.getNextBestRegionUrl();if(o){yield this.restartConnection(o);return}else throw(i=this.regionUrlProvider)===null||i===void 0||i.resetAttempts(),s}})}resumeConnection(e){return S(this,void 0,void 0,function*(){var n;if(!this.url||!this.token)throw new Me("could not reconnect, url or token not saved");if(!this.pcManager)throw new Me("publisher and subscriber connections unset");this.log.info("resuming signal connection, attempt ".concat(this.reconnectAttempts),this.logContext),this.emit(D.Resuming);let r;try{this.setupSignalClientCallbacks(),r=yield this.client.reconnect(this.url,this.token,this.participantSid,e)}catch(i){let s="";throw i instanceof Error&&(s=i.message,this.log.error(i.message,Object.assign(Object.assign({},this.logContext),{error:i}))),i instanceof ce&&i.reason===Z.NotAllowed?new Me("could not reconnect, token might be expired"):i instanceof ce&&i.reason===Z.LeaveRequest?i:new Ei(s)}if(this.emit(D.SignalResumed),r){const i=this.makeRTCConfiguration(r);this.pcManager.updateConfiguration(i)}else this.log.warn("Did not receive reconnect response",this.logContext);if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(yield this.pcManager.triggerIceRestart(),yield this.waitForPCReconnected(),this.client.currentState!==me.CONNECTED)throw new Ei("Signal connection got severed during reconnect");this.client.setReconnected(),((n=this.reliableDC)===null||n===void 0?void 0:n.readyState)==="open"&&this.reliableDC.id===null&&this.createDataChannels(),this.emit(D.Resumed)})}waitForPCInitialConnection(e,n){return S(this,void 0,void 0,function*(){if(!this.pcManager)throw new Me("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(n,e)})}waitForPCReconnected(){return S(this,void 0,void 0,function*(){this.pcState=$t.Reconnecting,this.log.debug("waiting for peer connection to reconnect",this.logContext);try{if(yield ut(T2),!this.pcManager)throw new Me("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(void 0,this.peerConnectionTimeout),this.pcState=$t.Connected}catch(e){throw this.pcState=$t.Disconnected,new ce("could not establish PC connection, ".concat(e.message),Z.InternalError)}})}publishRpcResponse(e,n,r,i){return S(this,void 0,void 0,function*(){const s=new ct({destinationIdentities:[e],kind:Y.RELIABLE,value:{case:"rpcResponse",value:new lv({requestId:n,value:i?{case:"error",value:i.toProto()}:{case:"payload",value:r??""}})}});yield this.sendDataPacket(s,Y.RELIABLE)})}publishRpcAck(e,n){return S(this,void 0,void 0,function*(){const r=new ct({destinationIdentities:[e],kind:Y.RELIABLE,value:{case:"rpcAck",value:new av({requestId:n})}});yield this.sendDataPacket(r,Y.RELIABLE)})}sendDataPacket(e,n){return S(this,void 0,void 0,function*(){const r=e.toBinary();yield this.ensurePublisherConnected(n);const i=this.dataChannelForKind(n);i&&i.send(r),this.updateAndEmitDCBufferStatus(n)})}waitForBufferStatusLow(e){return new Promise((n,r)=>S(this,void 0,void 0,function*(){if(this.isBufferStatusLow(e))n();else{const i=()=>r("Engine closed");for(this.once(D.Closing,i);!this.dcBufferStatus.get(e);)yield ut(10);this.off(D.Closing,i),n()}}))}ensureDataTransportConnected(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscriberPrimary;return function*(){var s;if(!r.pcManager)throw new Me("PC manager is closed");const o=i?r.pcManager.subscriber:r.pcManager.publisher,a=i?"Subscriber":"Publisher";if(!o)throw new ce("".concat(a," connection not set"),Z.InternalError);let l=!1;!i&&!r.dataChannelForKind(n,i)&&(r.createDataChannels(),l=!0),!l&&!i&&!r.pcManager.publisher.isICEConnected&&r.pcManager.publisher.getICEConnectionState()!=="checking"&&(l=!0),l&&r.negotiate();const c=r.dataChannelForKind(n,i);if((c==null?void 0:c.readyState)==="open")return;const u=new Date().getTime()+r.peerConnectionTimeout;for(;new Date().getTime()<u;){if(o.isICEConnected&&((s=r.dataChannelForKind(n,i))===null||s===void 0?void 0:s.readyState)==="open")return;yield ut(50)}throw new ce("could not establish ".concat(a," connection, state: ").concat(o.getICEConnectionState()),Z.InternalError)}()})}ensurePublisherConnected(e){return S(this,void 0,void 0,function*(){this.publisherConnectionPromise||(this.publisherConnectionPromise=this.ensureDataTransportConnected(e,!1)),yield this.publisherConnectionPromise})}verifyTransport(){return!(!this.pcManager||this.pcManager.currentState!==we.CONNECTED||!this.client.ws||this.client.ws.readyState===WebSocket.CLOSED)}negotiate(){return S(this,void 0,void 0,function*(){return new Promise((e,n)=>S(this,void 0,void 0,function*(){if(!this.pcManager){n(new dd("PC manager is closed"));return}this.pcManager.requirePublisher(),this.pcManager.publisher.getTransceivers().length==0&&!this.lossyDC&&!this.reliableDC&&this.createDataChannels();const r=new AbortController,i=()=>{r.abort(),this.log.debug("engine disconnected while negotiation was ongoing",this.logContext),e()};this.isClosed&&n("cannot negotiate on closed engine"),this.on(D.Closing,i),this.pcManager.publisher.once(xi.RTPVideoPayloadTypes,s=>{const o=new Map;s.forEach(a=>{const l=a.codec.toLowerCase();UT(l)&&o.set(a.payload,l)}),this.emit(D.RTPVideoMapUpdate,o)});try{yield this.pcManager.negotiate(r),e()}catch(s){s instanceof dd&&(this.fullReconnectOnNext=!0),this.handleDisconnect("negotiation",gi.RR_UNKNOWN),n(s)}finally{this.off(D.Closing,i)}}))})}dataChannelForKind(e,n){if(n){if(e===Y.LOSSY)return this.lossyDCSub;if(e===Y.RELIABLE)return this.reliableDCSub}else{if(e===Y.LOSSY)return this.lossyDC;if(e===Y.RELIABLE)return this.reliableDC}}sendSyncState(e,n){var r,i;if(!this.pcManager){this.log.warn("sync state cannot be sent without peer connection setup",this.logContext);return}const s=this.pcManager.subscriber.getLocalDescription(),o=this.pcManager.subscriber.getRemoteDescription(),a=(i=(r=this.signalOpts)===null||r===void 0?void 0:r.autoSubscribe)!==null&&i!==void 0?i:!0,l=new Array,c=new Array;e.forEach(u=>{u.isDesired!==a&&l.push(u.trackSid),u.isEnabled||c.push(u.trackSid)}),this.client.sendSyncState(new Ev({answer:s?$a({sdp:s.sdp,type:s.type}):void 0,offer:o?$a({sdp:o.sdp,type:o.type}):void 0,subscription:new Pa({trackSids:l,subscribe:!a,participantTracks:[]}),publishTracks:qT(n),dataChannels:this.dataChannelsInfo(),trackSidsDisabled:c}))}failNext(){this.shouldFailNext=!0}dataChannelsInfo(){const e=[],n=(r,i)=>{(r==null?void 0:r.id)!==void 0&&r.id!==null&&e.push(new Pv({label:r.label,id:r.id,target:i}))};return n(this.dataChannelForKind(Y.LOSSY),Bt.PUBLISHER),n(this.dataChannelForKind(Y.RELIABLE),Bt.PUBLISHER),n(this.dataChannelForKind(Y.LOSSY,!0),Bt.SUBSCRIBER),n(this.dataChannelForKind(Y.RELIABLE,!0),Bt.SUBSCRIBER),e}clearReconnectTimeout(){this.reconnectTimeout&&He.clearTimeout(this.reconnectTimeout)}clearPendingReconnect(){this.clearReconnectTimeout(),this.reconnectAttempts=0}registerOnLineListener(){dt()&&window.addEventListener("online",this.handleBrowserOnLine)}deregisterOnLineListener(){dt()&&window.removeEventListener("online",this.handleBrowserOnLine)}}class Ei extends Error{}function E2(t){return t!==void 0&&t>13}function P2(t,e){const n=t.participantIdentity?t.participantIdentity:e.participantIdentity;t.participantIdentity=n,e.participantIdentity=n;const r=t.destinationIdentities.length!==0?t.destinationIdentities:e.destinationIdentities;t.destinationIdentities=r,e.destinationIdentities=r}class $d{constructor(e,n){this.lastUpdateAt=0,this.settingsCacheTime=3e3,this.attemptedRegions=[],this.serverUrl=new URL(e),this.token=n}updateToken(e){this.token=e}isCloud(){return bd(this.serverUrl)}getServerUrl(){return this.serverUrl}getNextBestRegionUrl(e){return S(this,void 0,void 0,function*(){if(!this.isCloud())throw Error("region availability is only supported for LiveKit Cloud domains");(!this.regionSettings||Date.now()-this.lastUpdateAt>this.settingsCacheTime)&&(this.regionSettings=yield this.fetchRegionSettings(e));const n=this.regionSettings.regions.filter(r=>!this.attemptedRegions.find(i=>i.url===r.url));if(n.length>0){const r=n[0];return this.attemptedRegions.push(r),K.debug("next region: ".concat(r.region)),r.url}else return null})}resetAttempts(){this.attemptedRegions=[]}fetchRegionSettings(e){return S(this,void 0,void 0,function*(){const n=yield fetch("".concat(_2(this.serverUrl),"/regions"),{headers:{authorization:"Bearer ".concat(this.token)},signal:e});if(n.ok){const r=yield n.json();return this.lastUpdateAt=Date.now(),r}else throw new ce("Could not fetch region settings: ".concat(n.statusText),n.status===401?Z.NotAllowed:Z.InternalError,n.status)})}setServerReportedRegions(e){this.regionSettings=e,this.lastUpdateAt=Date.now()}}function _2(t){return"".concat(t.protocol.replace("ws","http"),"//").concat(t.host,"/settings")}class iy{get info(){return this._info}constructor(e,n,r){this.reader=n,this.totalByteSize=r,this._info=e,this.bytesReceived=0}}class R2 extends iy{handleChunkReceived(e){var n;this.bytesReceived+=e.content.byteLength;const r=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(n=this.onProgress)===null||n===void 0||n.call(this,r)}[Symbol.asyncIterator](){const e=this.reader.getReader();return{next:()=>S(this,void 0,void 0,function*(){try{const{done:n,value:r}=yield e.read();return n?{done:!0,value:void 0}:(this.handleChunkReceived(r),{done:!1,value:r.content})}catch{return{done:!0,value:void 0}}}),return(){return S(this,void 0,void 0,function*(){return e.releaseLock(),{done:!0,value:void 0}})}}}readAll(){return S(this,void 0,void 0,function*(){var e,n,r,i;let s=new Set;try{for(var o=!0,a=Wn(this),l;l=yield a.next(),e=l.done,!e;o=!0){i=l.value,o=!1;const c=i;s.add(c)}}catch(c){n={error:c}}finally{try{!o&&!e&&(r=a.return)&&(yield r.call(a))}finally{if(n)throw n.error}}return Array.from(s)})}}class I2 extends iy{constructor(e,n,r){super(e,n,r),this.receivedChunks=new Map}handleChunkReceived(e){var n;const r=za(e.chunkIndex),i=this.receivedChunks.get(r);if(i&&i.version>e.version)return;this.receivedChunks.set(r,e),this.bytesReceived+=e.content.byteLength;const s=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(n=this.onProgress)===null||n===void 0||n.call(this,s)}[Symbol.asyncIterator](){const e=this.reader.getReader(),n=new TextDecoder;return{next:()=>S(this,void 0,void 0,function*(){try{const{done:r,value:i}=yield e.read();return r?{done:!0,value:void 0}:(this.handleChunkReceived(i),{done:!1,value:n.decode(i.content)})}catch{return{done:!0,value:void 0}}}),return(){return S(this,void 0,void 0,function*(){return e.releaseLock(),{done:!0,value:void 0}})}}}readAll(){return S(this,void 0,void 0,function*(){var e,n,r,i;let s="";try{for(var o=!0,a=Wn(this),l;l=yield a.next(),e=l.done,!e;o=!0)i=l.value,o=!1,s+=i}catch(c){n={error:c}}finally{try{!o&&!e&&(r=a.return)&&(yield r.call(a))}finally{if(n)throw n.error}}return s})}}class O2{constructor(e,n,r){this.writableStream=e,this.defaultWriter=e.getWriter(),this.onClose=r,this.info=n}write(e){return this.defaultWriter.write(e)}close(){return S(this,void 0,void 0,function*(){var e;yield this.defaultWriter.close(),this.defaultWriter.releaseLock(),(e=this.onClose)===null||e===void 0||e.call(this)})}}class L2 extends O2{}class sy extends O{constructor(e,n,r,i,s){super(e,r,s),this.sid=n,this.receiver=i}get isLocal(){return!1}setMuted(e){this.isMuted!==e&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?N.Muted:N.Unmuted,this))}setMediaStream(e){this.mediaStream=e;const n=r=>{r.track===this._mediaStreamTrack&&(e.removeEventListener("removetrack",n),this.receiver&&"playoutDelayHint"in this.receiver&&(this.receiver.playoutDelayHint=void 0),this.receiver=void 0,this._currentBitrate=0,this.emit(N.Ended,this))};e.addEventListener("removetrack",n)}start(){this.startMonitor(),super.enable()}stop(){this.stopMonitor(),super.disable()}getRTCStatsReport(){return S(this,void 0,void 0,function*(){var e;return!((e=this.receiver)===null||e===void 0)&&e.getStats?yield this.receiver.getStats():void 0})}setPlayoutDelay(e){this.receiver?"playoutDelayHint"in this.receiver?this.receiver.playoutDelayHint=e:this.log.warn("Playout delay not supported in this browser"):this.log.warn("Cannot set playout delay, track already ended")}getPlayoutDelay(){if(this.receiver){if("playoutDelayHint"in this.receiver)return this.receiver.playoutDelayHint;this.log.warn("Playout delay not supported in this browser")}else this.log.warn("Cannot get playout delay, track already ended");return 0}startMonitor(){this.monitorInterval||(this.monitorInterval=setInterval(()=>this.monitorReceiver(),Fd)),WT()&&this.registerTimeSyncUpdate()}registerTimeSyncUpdate(){const e=()=>{var n;this.timeSyncHandle=requestAnimationFrame(()=>e());const r=(n=this.receiver)===null||n===void 0?void 0:n.getSynchronizationSources()[0];if(r){const{timestamp:i,rtpTimestamp:s}=r;s&&this.rtpTimestamp!==s&&(this.emit(N.TimeSyncUpdate,{timestamp:i,rtpTimestamp:s}),this.rtpTimestamp=s)}};e()}}class M2 extends sy{constructor(e,n,r,i,s,o){super(e,n,O.Kind.Audio,r,o),this.monitorReceiver=()=>S(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}const a=yield this.getReceiverStats();a&&this.prevStats&&this.receiver&&(this._currentBitrate=qa(a,this.prevStats)),this.prevStats=a}),this.audioContext=i,this.webAudioPluginNodes=[],s&&(this.sinkId=s.deviceId)}setVolume(e){var n;for(const r of this.attachedElements)this.audioContext?(n=this.gainNode)===null||n===void 0||n.gain.setTargetAtTime(e,0,.1):r.volume=e;rn()&&this._mediaStreamTrack._setVolume(e),this.elementVolume=e}getVolume(){if(this.elementVolume)return this.elementVolume;if(rn())return 1;let e=0;return this.attachedElements.forEach(n=>{n.volume>e&&(e=n.volume)}),e}setSinkId(e){return S(this,void 0,void 0,function*(){this.sinkId=e,yield Promise.all(this.attachedElements.map(n=>{if(kd(n))return n.setSinkId(e)}))})}attach(e){const n=this.attachedElements.length===0;return e?super.attach(e):e=super.attach(),this.sinkId&&kd(e)&&e.setSinkId(this.sinkId),this.audioContext&&n&&(this.log.debug("using audio context mapping",this.logContext),this.connectWebAudio(this.audioContext,e),e.volume=0,e.muted=!0),this.elementVolume&&this.setVolume(this.elementVolume),e}detach(e){let n;return e?(n=super.detach(e),this.audioContext&&(this.attachedElements.length>0?this.connectWebAudio(this.audioContext,this.attachedElements[0]):this.disconnectWebAudio())):(n=super.detach(),this.disconnectWebAudio()),n}setAudioContext(e){this.audioContext=e,e&&this.attachedElements.length>0?this.connectWebAudio(e,this.attachedElements[0]):e||this.disconnectWebAudio()}setWebAudioPlugins(e){this.webAudioPluginNodes=e,this.attachedElements.length>0&&this.audioContext&&this.connectWebAudio(this.audioContext,this.attachedElements[0])}connectWebAudio(e,n){this.disconnectWebAudio(),this.sourceNode=e.createMediaStreamSource(n.srcObject);let r=this.sourceNode;this.webAudioPluginNodes.forEach(i=>{r.connect(i),r=i}),this.gainNode=e.createGain(),r.connect(this.gainNode),this.gainNode.connect(e.destination),this.elementVolume&&this.gainNode.gain.setTargetAtTime(this.elementVolume,0,.1),e.state!=="running"&&e.resume().then(()=>{e.state!=="running"&&this.emit(N.AudioPlaybackFailed,new Error("Audio Context couldn't be started automatically"))}).catch(i=>{this.emit(N.AudioPlaybackFailed,i)})}disconnectWebAudio(){var e,n;(e=this.gainNode)===null||e===void 0||e.disconnect(),(n=this.sourceNode)===null||n===void 0||n.disconnect(),this.gainNode=void 0,this.sourceNode=void 0}getReceiverStats(){return S(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let n;return e.forEach(r=>{r.type==="inbound-rtp"&&(n={type:"audio",streamId:r.id,timestamp:r.timestamp,jitter:r.jitter,bytesReceived:r.bytesReceived,concealedSamples:r.concealedSamples,concealmentEvents:r.concealmentEvents,silentConcealedSamples:r.silentConcealedSamples,silentConcealmentEvents:r.silentConcealmentEvents,totalAudioEnergy:r.totalAudioEnergy,totalSamplesDuration:r.totalSamplesDuration})}),n})}}const qd=100;class N2 extends sy{constructor(e,n,r,i,s){super(e,n,O.Kind.Video,r,s),this.elementInfos=[],this.monitorReceiver=()=>S(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}const o=yield this.getReceiverStats();o&&this.prevStats&&this.receiver&&(this._currentBitrate=qa(o,this.prevStats)),this.prevStats=o}),this.debouncedHandleResize=Dd(()=>{this.updateDimensions()},qd),this.adaptiveStreamSettings=i}get isAdaptiveStream(){return this.adaptiveStreamSettings!==void 0}get mediaStreamTrack(){return this._mediaStreamTrack}setMuted(e){super.setMuted(e),this.attachedElements.forEach(n=>{e?Ci(this._mediaStreamTrack,n):bi(this._mediaStreamTrack,n)})}attach(e){if(e?super.attach(e):e=super.attach(),this.adaptiveStreamSettings&&this.elementInfos.find(n=>n.element===e)===void 0){const n=new D2(e);this.observeElementInfo(n)}return e}observeElementInfo(e){this.adaptiveStreamSettings&&this.elementInfos.find(n=>n===e)===void 0?(e.handleResize=()=>{this.debouncedHandleResize()},e.handleVisibilityChanged=()=>{this.updateVisibility()},this.elementInfos.push(e),e.observe(),this.debouncedHandleResize(),this.updateVisibility()):this.log.warn("visibility resize observer not triggered",this.logContext)}stopObservingElementInfo(e){if(!this.isAdaptiveStream){this.log.warn("stopObservingElementInfo ignored",this.logContext);return}const n=this.elementInfos.filter(r=>r===e);for(const r of n)r.stopObserving();this.elementInfos=this.elementInfos.filter(r=>r!==e),this.updateVisibility(),this.debouncedHandleResize()}detach(e){let n=[];if(e)return this.stopObservingElement(e),super.detach(e);n=super.detach();for(const r of n)this.stopObservingElement(r);return n}getDecoderImplementation(){var e;return(e=this.prevStats)===null||e===void 0?void 0:e.decoderImplementation}getReceiverStats(){return S(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let n,r="",i=new Map;return e.forEach(s=>{s.type==="inbound-rtp"?(r=s.codecId,n={type:"video",streamId:s.id,framesDecoded:s.framesDecoded,framesDropped:s.framesDropped,framesReceived:s.framesReceived,packetsReceived:s.packetsReceived,packetsLost:s.packetsLost,frameWidth:s.frameWidth,frameHeight:s.frameHeight,pliCount:s.pliCount,firCount:s.firCount,nackCount:s.nackCount,jitter:s.jitter,timestamp:s.timestamp,bytesReceived:s.bytesReceived,decoderImplementation:s.decoderImplementation}):s.type==="codec"&&i.set(s.id,s)}),n&&r!==""&&i.get(r)&&(n.mimeType=i.get(r).mimeType),n})}stopObservingElement(e){const n=this.elementInfos.filter(r=>r.element===e);for(const r of n)this.stopObservingElementInfo(r)}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return S(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),this.isAdaptiveStream&&this.updateVisibility()})}updateVisibility(){var e,n;const r=this.elementInfos.reduce((a,l)=>Math.max(a,l.visibilityChangedAt||0),0),i=!((n=(e=this.adaptiveStreamSettings)===null||e===void 0?void 0:e.pauseVideoInBackground)!==null&&n!==void 0)||n?this.isInBackground:!1,s=this.elementInfos.some(a=>a.pictureInPicture),o=this.elementInfos.some(a=>a.visible)&&!i||s;if(this.lastVisible!==o){if(!o&&Date.now()-r<qd){He.setTimeout(()=>{this.updateVisibility()},qd);return}this.lastVisible=o,this.emit(N.VisibilityChanged,o,this)}}updateDimensions(){var e,n;let r=0,i=0;const s=this.getPixelDensity();for(const o of this.elementInfos){const a=o.width()*s,l=o.height()*s;a+l>r+i&&(r=a,i=l)}((e=this.lastDimensions)===null||e===void 0?void 0:e.width)===r&&((n=this.lastDimensions)===null||n===void 0?void 0:n.height)===i||(this.lastDimensions={width:r,height:i},this.emit(N.VideoDimensionsChanged,this.lastDimensions,this))}getPixelDensity(){var e;const n=(e=this.adaptiveStreamSettings)===null||e===void 0?void 0:e.pixelDensity;return n==="screen"?E0():n||(E0()>2?2:1)}}class D2{get visible(){return this.isPiP||this.isIntersecting}get pictureInPicture(){return this.isPiP}constructor(e,n){this.onVisibilityChanged=r=>{var i;const{target:s,isIntersecting:o}=r;s===this.element&&(this.isIntersecting=o,this.isPiP=Ds(this.element),this.visibilityChangedAt=Date.now(),(i=this.handleVisibilityChanged)===null||i===void 0||i.call(this))},this.onEnterPiP=()=>{var r,i,s;(i=(r=window.documentPictureInPicture)===null||r===void 0?void 0:r.window)===null||i===void 0||i.addEventListener("pagehide",this.onLeavePiP),this.isPiP=Ds(this.element),(s=this.handleVisibilityChanged)===null||s===void 0||s.call(this)},this.onLeavePiP=()=>{var r;this.isPiP=Ds(this.element),(r=this.handleVisibilityChanged)===null||r===void 0||r.call(this)},this.element=e,this.isIntersecting=n??Wd(e),this.isPiP=dt()&&Ds(e),this.visibilityChangedAt=0}width(){return this.element.clientWidth}height(){return this.element.clientHeight}observe(){var e,n,r;this.isIntersecting=Wd(this.element),this.isPiP=Ds(this.element),this.element.handleResize=()=>{var i;(i=this.handleResize)===null||i===void 0||i.call(this)},this.element.handleVisibilityChanged=this.onVisibilityChanged,_0().observe(this.element),P0().observe(this.element),this.element.addEventListener("enterpictureinpicture",this.onEnterPiP),this.element.addEventListener("leavepictureinpicture",this.onLeavePiP),(e=window.documentPictureInPicture)===null||e===void 0||e.addEventListener("enter",this.onEnterPiP),(r=(n=window.documentPictureInPicture)===null||n===void 0?void 0:n.window)===null||r===void 0||r.addEventListener("pagehide",this.onLeavePiP)}stopObserving(){var e,n,r,i,s;(e=_0())===null||e===void 0||e.unobserve(this.element),(n=P0())===null||n===void 0||n.unobserve(this.element),this.element.removeEventListener("enterpictureinpicture",this.onEnterPiP),this.element.removeEventListener("leavepictureinpicture",this.onLeavePiP),(r=window.documentPictureInPicture)===null||r===void 0||r.removeEventListener("enter",this.onEnterPiP),(s=(i=window.documentPictureInPicture)===null||i===void 0?void 0:i.window)===null||s===void 0||s.removeEventListener("pagehide",this.onLeavePiP)}}function Ds(t){var e,n;return document.pictureInPictureElement===t?!0:!((e=window.documentPictureInPicture)===null||e===void 0)&&e.window?Wd(t,(n=window.documentPictureInPicture)===null||n===void 0?void 0:n.window):!1}function Wd(t,e){const n=e||window;let r=t.offsetTop,i=t.offsetLeft;const s=t.offsetWidth,o=t.offsetHeight,{hidden:a}=t,{display:l}=getComputedStyle(t);for(;t.offsetParent;)t=t.offsetParent,r+=t.offsetTop,i+=t.offsetLeft;return r<n.pageYOffset+n.innerHeight&&i<n.pageXOffset+n.innerWidth&&r+o>n.pageYOffset&&i+s>n.pageXOffset&&!a&&l!=="none"}class Cn extends nn.EventEmitter{constructor(e,n,r,i){var s;super(),this.metadataMuted=!1,this.encryption=kt.NONE,this.log=K,this.handleMuted=()=>{this.emit(N.Muted)},this.handleUnmuted=()=>{this.emit(N.Unmuted)},this.log=yn((s=i==null?void 0:i.loggerName)!==null&&s!==void 0?s:zt.Publication),this.loggerContextCb=this.loggerContextCb,this.setMaxListeners(100),this.kind=e,this.trackSid=n,this.trackName=r,this.source=O.Source.Unknown}setTrack(e){this.track&&(this.track.off(N.Muted,this.handleMuted),this.track.off(N.Unmuted,this.handleUnmuted)),this.track=e,e&&(e.on(N.Muted,this.handleMuted),e.on(N.Unmuted,this.handleUnmuted))}get logContext(){var e;return Object.assign(Object.assign({},(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this)),ie(this))}get isMuted(){return this.metadataMuted}get isEnabled(){return!0}get isSubscribed(){return this.track!==void 0}get isEncrypted(){return this.encryption!==kt.NONE}get audioTrack(){if(bn(this.track))return this.track}get videoTrack(){if(Ti(this.track))return this.track}updateInfo(e){this.trackSid=e.sid,this.trackName=e.name,this.source=O.sourceFromProto(e.source),this.mimeType=e.mimeType,this.kind===O.Kind.Video&&e.width>0&&(this.dimensions={width:e.width,height:e.height},this.simulcasted=e.simulcast),this.encryption=e.encryption,this.trackInfo=e,this.log.debug("update publication info",Object.assign(Object.assign({},this.logContext),{info:e}))}}(function(t){(function(e){e.Desired="desired",e.Subscribed="subscribed",e.Unsubscribed="unsubscribed"})(t.SubscriptionStatus||(t.SubscriptionStatus={})),function(e){e.Allowed="allowed",e.NotAllowed="not_allowed"}(t.PermissionStatus||(t.PermissionStatus={}))})(Cn||(Cn={}));class Gd extends Cn{get isUpstreamPaused(){var e;return(e=this.track)===null||e===void 0?void 0:e.isUpstreamPaused}constructor(e,n,r,i){super(e,n.sid,n.name,i),this.track=void 0,this.handleTrackEnded=()=>{this.emit(N.Ended)},this.updateInfo(n),this.setTrack(r)}setTrack(e){this.track&&this.track.off(N.Ended,this.handleTrackEnded),super.setTrack(e),e&&e.on(N.Ended,this.handleTrackEnded)}get isMuted(){return this.track?this.track.isMuted:super.isMuted}get audioTrack(){return super.audioTrack}get videoTrack(){return super.videoTrack}get isLocal(){return!0}mute(){return S(this,void 0,void 0,function*(){var e;return(e=this.track)===null||e===void 0?void 0:e.mute()})}unmute(){return S(this,void 0,void 0,function*(){var e;return(e=this.track)===null||e===void 0?void 0:e.unmute()})}pauseUpstream(){return S(this,void 0,void 0,function*(){var e;yield(e=this.track)===null||e===void 0?void 0:e.pauseUpstream()})}resumeUpstream(){return S(this,void 0,void 0,function*(){var e;yield(e=this.track)===null||e===void 0?void 0:e.resumeUpstream()})}getTrackFeatures(){var e;if(bn(this.track)){const n=this.track.getSourceTrackSettings(),r=new Set;return n.autoGainControl&&r.add(en.TF_AUTO_GAIN_CONTROL),n.echoCancellation&&r.add(en.TF_ECHO_CANCELLATION),n.noiseSuppression&&r.add(en.TF_NOISE_SUPPRESSION),n.channelCount&&n.channelCount>1&&r.add(en.TF_STEREO),!((e=this.options)===null||e===void 0)&&e.dtx||r.add(en.TF_NO_DTX),this.track.enhancedNoiseCancellation&&r.add(en.TF_ENHANCED_NOISE_CANCELLATION),Array.from(r.values())}else return[]}}var er;(function(t){t.Excellent="excellent",t.Good="good",t.Poor="poor",t.Lost="lost",t.Unknown="unknown"})(er||(er={}));function A2(t){switch(t){case Es.EXCELLENT:return er.Excellent;case Es.GOOD:return er.Good;case Es.POOR:return er.Poor;case Es.LOST:return er.Lost;default:return er.Unknown}}class oy extends nn.EventEmitter{get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions)===null||e===void 0?void 0:e.loggerContextCb)===null||n===void 0?void 0:n.call(e))}get isEncrypted(){return this.trackPublications.size>0&&Array.from(this.trackPublications.values()).every(e=>e.isEncrypted)}get isAgent(){var e;return((e=this.permissions)===null||e===void 0?void 0:e.agent)||this.kind===Ea.AGENT}get kind(){return this._kind}get attributes(){return Object.freeze(Object.assign({},this._attributes))}constructor(e,n,r,i,s,o){let a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:Ea.STANDARD;var l;super(),this.audioLevel=0,this.isSpeaking=!1,this._connectionQuality=er.Unknown,this.log=K,this.log=yn((l=o==null?void 0:o.loggerName)!==null&&l!==void 0?l:zt.Participant),this.loggerOptions=o,this.setMaxListeners(100),this.sid=e,this.identity=n,this.name=r,this.metadata=i,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this._kind=a,this._attributes=s??{}}getTrackPublications(){return Array.from(this.trackPublications.values())}getTrackPublication(e){for(const[,n]of this.trackPublications)if(n.source===e)return n}getTrackPublicationByName(e){for(const[,n]of this.trackPublications)if(n.trackName===e)return n}get connectionQuality(){return this._connectionQuality}get isCameraEnabled(){var e;const n=this.getTrackPublication(O.Source.Camera);return!(!((e=n==null?void 0:n.isMuted)!==null&&e!==void 0)||e)}get isMicrophoneEnabled(){var e;const n=this.getTrackPublication(O.Source.Microphone);return!(!((e=n==null?void 0:n.isMuted)!==null&&e!==void 0)||e)}get isScreenShareEnabled(){return!!this.getTrackPublication(O.Source.ScreenShare)}get isLocal(){return!1}get joinedAt(){return this.participantInfo?new Date(Number.parseInt(this.participantInfo.joinedAt.toString())*1e3):new Date}updateInfo(e){return this.participantInfo&&this.participantInfo.sid===e.sid&&this.participantInfo.version>e.version?!1:(this.identity=e.identity,this.sid=e.sid,this._setName(e.name),this._setMetadata(e.metadata),this._setAttributes(e.attributes),e.permission&&this.setPermissions(e.permission),this.participantInfo=e,this.log.trace("update participant info",Object.assign(Object.assign({},this.logContext),{info:e})),!0)}_setMetadata(e){const n=this.metadata!==e,r=this.metadata;this.metadata=e,n&&this.emit(A.ParticipantMetadataChanged,r)}_setName(e){const n=this.name!==e;this.name=e,n&&this.emit(A.ParticipantNameChanged,e)}_setAttributes(e){const n=GT(this.attributes,e);this._attributes=e,Object.keys(n).length>0&&this.emit(A.AttributesChanged,n)}setPermissions(e){var n,r,i,s,o,a;const l=this.permissions,c=e.canPublish!==((n=this.permissions)===null||n===void 0?void 0:n.canPublish)||e.canSubscribe!==((r=this.permissions)===null||r===void 0?void 0:r.canSubscribe)||e.canPublishData!==((i=this.permissions)===null||i===void 0?void 0:i.canPublishData)||e.hidden!==((s=this.permissions)===null||s===void 0?void 0:s.hidden)||e.recorder!==((o=this.permissions)===null||o===void 0?void 0:o.recorder)||e.canPublishSources.length!==this.permissions.canPublishSources.length||e.canPublishSources.some((u,d)=>{var h;return u!==((h=this.permissions)===null||h===void 0?void 0:h.canPublishSources[d])})||e.canSubscribeMetrics!==((a=this.permissions)===null||a===void 0?void 0:a.canSubscribeMetrics);return this.permissions=e,c&&this.emit(A.ParticipantPermissionsChanged,l),c}setIsSpeaking(e){e!==this.isSpeaking&&(this.isSpeaking=e,e&&(this.lastSpokeAt=new Date),this.emit(A.IsSpeakingChanged,e))}setConnectionQuality(e){const n=this._connectionQuality;this._connectionQuality=A2(e),n!==this._connectionQuality&&this.emit(A.ConnectionQualityChanged,this._connectionQuality)}setAudioContext(e){this.audioContext=e,this.audioTrackPublications.forEach(n=>bn(n.track)&&n.track.setAudioContext(e))}addTrackPublication(e){e.on(N.Muted,()=>{this.emit(A.TrackMuted,e)}),e.on(N.Unmuted,()=>{this.emit(A.TrackUnmuted,e)});const n=e;switch(n.track&&(n.track.sid=e.trackSid),this.trackPublications.set(e.trackSid,e),e.kind){case O.Kind.Audio:this.audioTrackPublications.set(e.trackSid,e);break;case O.Kind.Video:this.videoTrackPublications.set(e.trackSid,e);break}}}function j2(t){var e,n,r;if(!t.participantSid&&!t.participantIdentity)throw new Error("Invalid track permission, must provide at least one of participantIdentity and participantSid");return new Tv({participantIdentity:(e=t.participantIdentity)!==null&&e!==void 0?e:"",participantSid:(n=t.participantSid)!==null&&n!==void 0?n:"",allTracks:(r=t.allowAll)!==null&&r!==void 0?r:!1,trackSids:t.allowedTrackSids||[]})}const Za=15e3;class U2 extends oy{constructor(e,n,r,i,s){super(e,n,void 0,void 0,void 0,{loggerName:i.loggerName,loggerContextCb:()=>this.engine.logContext}),this.pendingPublishing=new Set,this.pendingPublishPromises=new Map,this.participantTrackPermissions=[],this.allParticipantsAllowedToSubscribe=!0,this.encryptionType=kt.NONE,this.enabledPublishVideoCodecs=[],this.pendingAcks=new Map,this.pendingResponses=new Map,this.handleReconnecting=()=>{this.reconnectFuture||(this.reconnectFuture=new I0)},this.handleReconnected=()=>{var o,a;(a=(o=this.reconnectFuture)===null||o===void 0?void 0:o.resolve)===null||a===void 0||a.call(o),this.reconnectFuture=void 0,this.updateTrackSubscriptionPermissions()},this.handleDisconnected=()=>{var o,a;this.reconnectFuture&&(this.reconnectFuture.promise.catch(l=>this.log.warn(l.message,this.logContext)),(a=(o=this.reconnectFuture)===null||o===void 0?void 0:o.reject)===null||a===void 0||a.call(o,"Got disconnected during reconnection attempt"),this.reconnectFuture=void 0)},this.handleSignalRequestResponse=o=>{const{requestId:a,reason:l,message:c}=o,u=this.pendingSignalRequests.get(a);u&&(l!==Xu.OK&&u.reject(new k0(c,l)),this.pendingSignalRequests.delete(a))},this.handleDataPacket=o=>{switch(o.value.case){case"rpcResponse":let a=o.value.value,l=null,c=null;a.value.case==="payload"?l=a.value.value:a.value.case==="error"&&(c=Te.fromProto(a.value.value)),this.handleIncomingRpcResponse(a.requestId,l,c);break;case"rpcAck":let u=o.value.value;this.handleIncomingRpcAck(u.requestId);break}},this.updateTrackSubscriptionPermissions=()=>{this.log.debug("updating track subscription permissions",Object.assign(Object.assign({},this.logContext),{allParticipantsAllowed:this.allParticipantsAllowedToSubscribe,participantTrackPermissions:this.participantTrackPermissions})),this.engine.client.sendUpdateSubscriptionPermissions(this.allParticipantsAllowedToSubscribe,this.participantTrackPermissions.map(o=>j2(o)))},this.onTrackUnmuted=o=>{this.onTrackMuted(o,o.isUpstreamPaused)},this.onTrackMuted=(o,a)=>{if(a===void 0&&(a=!0),!o.sid){this.log.error("could not update mute status for unpublished track",Object.assign(Object.assign({},this.logContext),ie(o)));return}this.engine.updateMuteStatus(o.sid,a)},this.onTrackUpstreamPaused=o=>{this.log.debug("upstream paused",Object.assign(Object.assign({},this.logContext),ie(o))),this.onTrackMuted(o,!0)},this.onTrackUpstreamResumed=o=>{this.log.debug("upstream resumed",Object.assign(Object.assign({},this.logContext),ie(o))),this.onTrackMuted(o,o.isMuted)},this.onTrackFeatureUpdate=o=>{const a=this.audioTrackPublications.get(o.sid);if(!a){this.log.warn("Could not update local audio track settings, missing publication for track ".concat(o.sid),this.logContext);return}this.engine.client.sendUpdateLocalAudioTrack(a.trackSid,a.getTrackFeatures())},this.handleSubscribedQualityUpdate=o=>S(this,void 0,void 0,function*(){var a,l,c,u,d,h;if(!(!((d=this.roomOptions)===null||d===void 0)&&d.dynacast))return;const f=this.videoTrackPublications.get(o.trackSid);if(!f){this.log.warn("received subscribed quality update for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:o.trackSid}));return}if(o.subscribedCodecs.length>0){if(!f.videoTrack)return;const p=yield f.videoTrack.setPublishingCodecs(o.subscribedCodecs);try{for(var m=!0,g=Wn(p),T;T=yield g.next(),a=T.done,!a;m=!0){u=T.value,m=!1;const v=u;PT(v)&&(this.log.debug("publish ".concat(v," for ").concat(f.videoTrack.sid),Object.assign(Object.assign({},this.logContext),ie(f))),yield this.publishAdditionalCodecForTrack(f.videoTrack,v,f.options))}}catch(v){l={error:v}}finally{try{!m&&!a&&(c=g.return)&&(yield c.call(g))}finally{if(l)throw l.error}}}else o.subscribedQualities.length>0&&(yield(h=f.videoTrack)===null||h===void 0?void 0:h.setPublishingLayers(o.subscribedQualities))}),this.handleLocalTrackUnpublished=o=>{const a=this.trackPublications.get(o.trackSid);if(!a){this.log.warn("received unpublished event for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:o.trackSid}));return}this.unpublishTrack(a.track)},this.handleTrackEnded=o=>S(this,void 0,void 0,function*(){if(o.source===O.Source.ScreenShare||o.source===O.Source.ScreenShareAudio)this.log.debug("unpublishing local track due to TrackEnded",Object.assign(Object.assign({},this.logContext),ie(o))),this.unpublishTrack(o);else if(o.isUserProvided)yield o.mute();else if(_r(o)||Jn(o))try{if(dt())try{const a=yield navigator==null?void 0:navigator.permissions.query({name:o.source===O.Source.Camera?"camera":"microphone"});if(a&&a.state==="denied")throw this.log.warn("user has revoked access to ".concat(o.source),Object.assign(Object.assign({},this.logContext),ie(o))),a.onchange=()=>{a.state!=="denied"&&(o.isMuted||o.restartTrack(),a.onchange=null)},new Error("GetUserMedia Permission denied")}catch{}o.isMuted||(this.log.debug("track ended, attempting to use a different device",Object.assign(Object.assign({},this.logContext),ie(o))),_r(o)?yield o.restartTrack({deviceId:"default"}):yield o.restartTrack())}catch{this.log.warn("could not restart track, muting instead",Object.assign(Object.assign({},this.logContext),ie(o))),yield o.mute()}}),this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this.engine=r,this.roomOptions=i,this.setupEngine(r),this.activeDeviceMap=new Map([["audioinput","default"],["videoinput","default"],["audiooutput","default"]]),this.pendingSignalRequests=new Map,this.rpcHandlers=s}get lastCameraError(){return this.cameraError}get lastMicrophoneError(){return this.microphoneError}get isE2EEEnabled(){return this.encryptionType!==kt.NONE}getTrackPublication(e){const n=super.getTrackPublication(e);if(n)return n}getTrackPublicationByName(e){const n=super.getTrackPublicationByName(e);if(n)return n}setupEngine(e){this.engine=e,this.engine.on(D.RemoteMute,(n,r)=>{const i=this.trackPublications.get(n);!i||!i.track||(r?i.mute():i.unmute())}),this.engine.on(D.Connected,this.handleReconnected).on(D.SignalRestarted,this.handleReconnected).on(D.SignalResumed,this.handleReconnected).on(D.Restarting,this.handleReconnecting).on(D.Resuming,this.handleReconnecting).on(D.LocalTrackUnpublished,this.handleLocalTrackUnpublished).on(D.SubscribedQualityUpdate,this.handleSubscribedQualityUpdate).on(D.Disconnected,this.handleDisconnected).on(D.SignalRequestResponse,this.handleSignalRequestResponse).on(D.DataPacketReceived,this.handleDataPacket)}setMetadata(e){return S(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({metadata:e})})}setName(e){return S(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({name:e})})}setAttributes(e){return S(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({attributes:e})})}requestMetadataUpdate(e){return S(this,arguments,void 0,function(n){var r=this;let{metadata:i,name:s,attributes:o}=n;return function*(){return new Promise((a,l)=>S(r,void 0,void 0,function*(){var c,u;try{let d=!1;const h=yield this.engine.client.sendUpdateLocalMetadata((c=i??this.metadata)!==null&&c!==void 0?c:"",(u=s??this.name)!==null&&u!==void 0?u:"",o),f=performance.now();for(this.pendingSignalRequests.set(h,{resolve:a,reject:m=>{l(m),d=!0},values:{name:s,metadata:i,attributes:o}});performance.now()-f<5e3&&!d;){if((!s||this.name===s)&&(!i||this.metadata===i)&&(!o||Object.entries(o).every(m=>{let[g,T]=m;return this.attributes[g]===T||T===""&&!this.attributes[g]}))){this.pendingSignalRequests.delete(h),a();return}yield ut(50)}l(new k0("Request to update local metadata timed out","TimeoutError"))}catch(d){d instanceof Error&&l(d)}}))}()})}setCameraEnabled(e,n,r){return this.setTrackEnabled(O.Source.Camera,e,n,r)}setMicrophoneEnabled(e,n,r){return this.setTrackEnabled(O.Source.Microphone,e,n,r)}setScreenShareEnabled(e,n,r){return this.setTrackEnabled(O.Source.ScreenShare,e,n,r)}setPermissions(e){const n=this.permissions,r=super.setPermissions(e);return r&&n&&this.emit(A.ParticipantPermissionsChanged,n),r}setE2EEEnabled(e){return S(this,void 0,void 0,function*(){this.encryptionType=e?kt.GCM:kt.NONE,yield this.republishAllTracks(void 0,!1)})}setTrackEnabled(e,n,r,i){return S(this,void 0,void 0,function*(){var s,o;this.log.debug("setTrackEnabled",Object.assign(Object.assign({},this.logContext),{source:e,enabled:n})),this.republishPromise&&(yield this.republishPromise);let a=this.getTrackPublication(e);if(n)if(a)yield a.unmute();else{let l;if(this.pendingPublishing.has(e)){const c=yield this.waitForPendingPublicationOfSource(e);return c||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e})),yield c==null?void 0:c.unmute(),c}this.pendingPublishing.add(e);try{switch(e){case O.Source.Camera:l=yield this.createTracks({video:(s=r)!==null&&s!==void 0?s:!0});break;case O.Source.Microphone:l=yield this.createTracks({audio:(o=r)!==null&&o!==void 0?o:!0});break;case O.Source.ScreenShare:l=yield this.createScreenTracks(Object.assign({},r));break;default:throw new kn(e)}}catch(c){throw l==null||l.forEach(u=>{u.stop()}),c instanceof Error&&this.emit(A.MediaDevicesError,c),this.pendingPublishing.delete(e),c}try{const c=[];for(const d of l)this.log.info("publishing track",Object.assign(Object.assign({},this.logContext),ie(d))),c.push(this.publishTrack(d,i));[a]=yield Promise.all(c)}catch(c){throw l==null||l.forEach(u=>{u.stop()}),c}finally{this.pendingPublishing.delete(e)}}else if(!(a!=null&&a.track)&&this.pendingPublishing.has(e)&&(a=yield this.waitForPendingPublicationOfSource(e),a||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e}))),a&&a.track)if(e===O.Source.ScreenShare){a=yield this.unpublishTrack(a.track);const l=this.getTrackPublication(O.Source.ScreenShareAudio);l&&l.track&&this.unpublishTrack(l.track)}else yield a.mute();return a})}enableCameraAndMicrophone(){return S(this,void 0,void 0,function*(){if(!(this.pendingPublishing.has(O.Source.Camera)||this.pendingPublishing.has(O.Source.Microphone))){this.pendingPublishing.add(O.Source.Camera),this.pendingPublishing.add(O.Source.Microphone);try{const e=yield this.createTracks({audio:!0,video:!0});yield Promise.all(e.map(n=>this.publishTrack(n)))}finally{this.pendingPublishing.delete(O.Source.Camera),this.pendingPublishing.delete(O.Source.Microphone)}}})}createTracks(e){return S(this,void 0,void 0,function*(){var n,r;e??(e={});const i=L0(e,(n=this.roomOptions)===null||n===void 0?void 0:n.audioCaptureDefaults,(r=this.roomOptions)===null||r===void 0?void 0:r.videoCaptureDefaults),{audioProcessor:s,videoProcessor:o,optionsWithoutProcessor:a}=_d(i),l=Va(a);let c;try{c=yield navigator.mediaDevices.getUserMedia(l)}catch(u){throw u instanceof Error&&(l.audio&&(this.microphoneError=u),l.video&&(this.cameraError=u)),u}return l.audio&&(this.microphoneError=void 0,this.emit(A.AudioStreamAcquired)),l.video&&(this.cameraError=void 0),Promise.all(c.getTracks().map(u=>S(this,void 0,void 0,function*(){const d=u.kind==="audio";let h;const f=d?l.audio:l.video;typeof f!="boolean"&&(h=f);const m=Q0(u,h,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});return m.kind===O.Kind.Video?m.source=O.Source.Camera:m.kind===O.Kind.Audio&&(m.source=O.Source.Microphone,m.setAudioContext(this.audioContext)),m.mediaStream=c,bn(m)&&s?yield m.setProcessor(s):Ti(m)&&o&&(yield m.setProcessor(o)),m})))})}createScreenTracks(e){return S(this,void 0,void 0,function*(){if(e===void 0&&(e={}),navigator.mediaDevices.getDisplayMedia===void 0)throw new ud("getDisplayMedia not supported");e.resolution===void 0&&!MT()&&(e.resolution=gd.h1080fps30.resolution);const n=$T(e),r=yield navigator.mediaDevices.getDisplayMedia(n),i=r.getVideoTracks();if(i.length===0)throw new kn("no video track found");const s=new Ka(i[0],void 0,!1,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});s.source=O.Source.ScreenShare,e.contentHint&&(s.mediaStreamTrack.contentHint=e.contentHint);const o=[s];if(r.getAudioTracks().length>0){this.emit(A.AudioStreamAcquired);const a=new Wa(r.getAudioTracks()[0],void 0,!1,this.audioContext,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});a.source=O.Source.ScreenShareAudio,o.push(a)}return o})}publishTrack(e,n){return S(this,void 0,void 0,function*(){return this.publishOrRepublishTrack(e,n)})}publishOrRepublishTrack(e,n){return S(this,arguments,void 0,function(r,i){var s=this;let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return function*(){var a,l,c,u;_r(r)&&r.setAudioContext(s.audioContext),yield(a=s.reconnectFuture)===null||a===void 0?void 0:a.promise,s.republishPromise&&!o&&(yield s.republishPromise),wi(r)&&s.pendingPublishPromises.has(r)&&(yield s.pendingPublishPromises.get(r));let d;if(r instanceof MediaStreamTrack)d=r.getConstraints();else{d=r.constraints;let p;switch(r.source){case O.Source.Microphone:p="audioinput";break;case O.Source.Camera:p="videoinput"}p&&s.activeDeviceMap.has(p)&&(d=Object.assign(Object.assign({},d),{deviceId:s.activeDeviceMap.get(p)}))}if(r instanceof MediaStreamTrack)switch(r.kind){case"audio":r=new Wa(r,d,!0,s.audioContext,{loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});break;case"video":r=new Ka(r,d,!0,{loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});break;default:throw new kn("unsupported MediaStreamTrack kind ".concat(r.kind))}else r.updateLoggerOptions({loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});let h;if(s.trackPublications.forEach(p=>{p.track&&p.track===r&&(h=p)}),h)return s.log.warn("track has already been published, skipping",Object.assign(Object.assign({},s.logContext),ie(h))),h;const f="channelCount"in r.mediaStreamTrack.getSettings()&&r.mediaStreamTrack.getSettings().channelCount===2||r.mediaStreamTrack.getConstraints().channelCount===2,m=(l=i==null?void 0:i.forceStereo)!==null&&l!==void 0?l:f;m&&(i||(i={}),i.dtx===void 0&&s.log.info("Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.",Object.assign(Object.assign({},s.logContext),ie(r))),i.red===void 0&&s.log.info("Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work."),(c=i.dtx)!==null&&c!==void 0||(i.dtx=!1),(u=i.red)!==null&&u!==void 0||(i.red=!1));const g=Object.assign(Object.assign({},s.roomOptions.publishDefaults),i);!NT()&&s.roomOptions.e2ee&&(s.log.info("End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2",Object.assign({},s.logContext)),g.simulcast=!1),g.source&&(r.source=g.source);const T=s.publish(r,g,m);s.pendingPublishPromises.set(r,T);try{return yield T}catch(p){throw p}finally{s.pendingPublishPromises.delete(r)}}()})}hasPermissionsToPublish(e){if(!this.permissions)return this.log.warn("no permissions present for publishing track",Object.assign(Object.assign({},this.logContext),ie(e))),!1;const{canPublish:n,canPublishSources:r}=this.permissions;return n&&(r.length===0||r.map(i=>KT(i)).includes(e.source))?!0:(this.log.warn("insufficient permissions to publish",Object.assign(Object.assign({},this.logContext),ie(e))),!1)}publish(e,n,r){return S(this,void 0,void 0,function*(){var i,s,o,a,l,c,u,d,h,f;if(!this.hasPermissionsToPublish(e))throw new vT("failed to publish track, insufficient permissions",403);Array.from(this.trackPublications.values()).find(C=>wi(e)&&C.source===e.source)&&e.source!==O.Source.Unknown&&this.log.info("publishing a second track with the same source: ".concat(e.source),Object.assign(Object.assign({},this.logContext),ie(e))),n.stopMicTrackOnMute&&bn(e)&&(e.stopOnMute=!0),e.source===O.Source.ScreenShare&&Si()&&(n.simulcast=!1),n.videoCodec==="av1"&&!IT()&&(n.videoCodec=void 0),n.videoCodec==="vp9"&&!OT()&&(n.videoCodec=void 0),n.videoCodec===void 0&&(n.videoCodec=Ad),this.enabledPublishVideoCodecs.length>0&&(this.enabledPublishVideoCodecs.some(C=>n.videoCodec===Ha(C.mime))||(n.videoCodec=Ha(this.enabledPublishVideoCodecs[0].mime)));const g=n.videoCodec;e.on(N.Muted,this.onTrackMuted),e.on(N.Unmuted,this.onTrackUnmuted),e.on(N.Ended,this.handleTrackEnded),e.on(N.UpstreamPaused,this.onTrackUpstreamPaused),e.on(N.UpstreamResumed,this.onTrackUpstreamResumed),e.on(N.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate);const T=new Ku({cid:e.mediaStreamTrack.id,name:n.name,type:O.kindToProto(e.kind),muted:e.isMuted,source:O.sourceToProto(e.source),disableDtx:!(!((i=n.dtx)!==null&&i!==void 0)||i),encryption:this.encryptionType,stereo:r,disableRed:this.isE2EEEnabled||!(!((s=n.red)!==null&&s!==void 0)||s),stream:n==null?void 0:n.stream,backupCodecPolicy:n==null?void 0:n.backupCodecPolicy});let p;if(e.kind===O.Kind.Video){let C={width:0,height:0};try{C=yield e.waitForDimensions()}catch{const w=(a=(o=this.roomOptions.videoCaptureDefaults)===null||o===void 0?void 0:o.resolution)!==null&&a!==void 0?a:Os.h720.resolution;C={width:w.width,height:w.height},this.log.error("could not determine track dimensions, using defaults",Object.assign(Object.assign(Object.assign({},this.logContext),ie(e)),{dims:C}))}T.width=C.width,T.height=C.height,Jn(e)&&(Ls(g)&&(e.source===O.Source.ScreenShare&&(n.scalabilityMode="L1T3","contentHint"in e.mediaStreamTrack&&(e.mediaStreamTrack.contentHint="motion",this.log.info("forcing contentHint to motion for screenshare with SVC codecs",Object.assign(Object.assign({},this.logContext),ie(e))))),n.scalabilityMode=(l=n.scalabilityMode)!==null&&l!==void 0?l:"L3T3_KEY"),T.simulcastCodecs=[new Gu({codec:g,cid:e.mediaStreamTrack.id})],n.backupCodec===!0&&(n.backupCodec={codec:Ad}),n.backupCodec&&g!==n.backupCodec.codec&&T.encryption===kt.NONE&&(this.roomOptions.dynacast||(this.roomOptions.dynacast=!0),T.simulcastCodecs.push(new Gu({codec:n.backupCodec.codec,cid:""})))),p=zd(e.source===O.Source.ScreenShare,T.width,T.height,n),T.layers=ty(T.width,T.height,p,Ls(n.videoCodec))}else e.kind===O.Kind.Audio&&(p=[{maxBitrate:(c=n.audioPreset)===null||c===void 0?void 0:c.maxBitrate,priority:(d=(u=n.audioPreset)===null||u===void 0?void 0:u.priority)!==null&&d!==void 0?d:"high",networkPriority:(f=(h=n.audioPreset)===null||h===void 0?void 0:h.priority)!==null&&f!==void 0?f:"high"}]);if(!this.engine||this.engine.isClosed)throw new Me("cannot publish track when not connected");const v=()=>S(this,void 0,void 0,function*(){var C,x,w;if(!this.engine.pcManager)throw new Me("pcManager is not ready");if(e.sender=yield this.engine.createSender(e,n,p),Jn(e)&&((C=n.degradationPreference)!==null&&C!==void 0||(n.degradationPreference=S2(e)),e.setDegradationPreference(n.degradationPreference)),p)if(Si()&&e.kind===O.Kind.Audio){let E;for(const _ of this.engine.pcManager.publisher.getTransceivers())if(_.sender===e.sender){E=_;break}E&&this.engine.pcManager.publisher.setTrackCodecBitrate({transceiver:E,codec:"opus",maxbr:!((x=p[0])===null||x===void 0)&&x.maxBitrate?p[0].maxBitrate/1e3:0})}else e.codec&&Ls(e.codec)&&(!((w=p[0])===null||w===void 0)&&w.maxBitrate)&&this.engine.pcManager.publisher.setTrackCodecBitrate({cid:T.cid,codec:e.codec,maxbr:p[0].maxBitrate/1e3});yield this.engine.negotiate()});let y;if(this.enabledPublishVideoCodecs.length>0)y=(yield Promise.all([this.engine.addTrack(T),v()]))[0];else{y=yield this.engine.addTrack(T);let C;if(y.codecs.forEach(x=>{C===void 0&&(C=x.mimeType)}),C&&e.kind===O.Kind.Video){const x=Ha(C);x!==g&&(this.log.debug("falling back to server selected codec",Object.assign(Object.assign(Object.assign({},this.logContext),ie(e)),{codec:x})),n.videoCodec=x,p=zd(e.source===O.Source.ScreenShare,T.width,T.height,n))}yield v()}const k=new Gd(e.kind,y,e,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});return k.options=n,e.sid=y.sid,this.log.debug("publishing ".concat(e.kind," with encodings"),Object.assign(Object.assign({},this.logContext),{encodings:p,trackInfo:y})),Jn(e)?e.startMonitor(this.engine.client):_r(e)&&e.startMonitor(),this.addTrackPublication(k),this.emit(A.LocalTrackPublished,k),k})}get isLocal(){return!0}publishAdditionalCodecForTrack(e,n,r){return S(this,void 0,void 0,function*(){var i;if(this.encryptionType!==kt.NONE)return;let s;if(this.trackPublications.forEach(f=>{f.track&&f.track===e&&(s=f)}),!s)throw new kn("track is not published");if(!Jn(e))throw new kn("track is not a video track");const o=Object.assign(Object.assign({},(i=this.roomOptions)===null||i===void 0?void 0:i.publishDefaults),r),a=k2(e,n,o);if(!a){this.log.info("backup codec has been disabled, ignoring request to add additional codec for track",Object.assign(Object.assign({},this.logContext),ie(e)));return}const l=e.addSimulcastTrack(n,a);if(!l)return;const c=new Ku({cid:l.mediaStreamTrack.id,type:O.kindToProto(e.kind),muted:e.isMuted,source:O.sourceToProto(e.source),sid:e.sid,simulcastCodecs:[{codec:o.videoCodec,cid:l.mediaStreamTrack.id}]});if(c.layers=ty(c.width,c.height,a),!this.engine||this.engine.isClosed)throw new Me("cannot publish track when not connected");const u=()=>S(this,void 0,void 0,function*(){yield this.engine.createSimulcastSender(e,l,o,a),yield this.engine.negotiate()}),h=(yield Promise.all([this.engine.addTrack(c),u()]))[0];this.log.debug("published ".concat(n," for track ").concat(e.sid),Object.assign(Object.assign({},this.logContext),{encodings:a,trackInfo:h}))})}unpublishTrack(e,n){return S(this,void 0,void 0,function*(){var r,i;if(wi(e)){const c=this.pendingPublishPromises.get(e);c&&(this.log.info("awaiting publish promise before attempting to unpublish",Object.assign(Object.assign({},this.logContext),ie(e))),yield c)}const s=this.getPublicationForTrack(e),o=s?ie(s):void 0;if(this.log.debug("unpublishing track",Object.assign(Object.assign({},this.logContext),o)),!s||!s.track){this.log.warn("track was not unpublished because no publication was found",Object.assign(Object.assign({},this.logContext),o));return}e=s.track,e.off(N.Muted,this.onTrackMuted),e.off(N.Unmuted,this.onTrackUnmuted),e.off(N.Ended,this.handleTrackEnded),e.off(N.UpstreamPaused,this.onTrackUpstreamPaused),e.off(N.UpstreamResumed,this.onTrackUpstreamResumed),e.off(N.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate),n===void 0&&(n=(i=(r=this.roomOptions)===null||r===void 0?void 0:r.stopLocalTrackOnUnpublish)!==null&&i!==void 0?i:!0),n?e.stop():e.stopMonitor();let a=!1;const l=e.sender;if(e.sender=void 0,this.engine.pcManager&&this.engine.pcManager.currentState<we.FAILED&&l)try{for(const c of this.engine.pcManager.publisher.getTransceivers())c.sender===l&&(c.direction="inactive",a=!0);if(this.engine.removeTrack(l)&&(a=!0),Jn(e)){for(const[,c]of e.simulcastCodecs)c.sender&&(this.engine.removeTrack(c.sender)&&(a=!0),c.sender=void 0);e.simulcastCodecs.clear()}}catch(c){this.log.warn("failed to unpublish track",Object.assign(Object.assign(Object.assign({},this.logContext),o),{error:c}))}switch(this.trackPublications.delete(s.trackSid),s.kind){case O.Kind.Audio:this.audioTrackPublications.delete(s.trackSid);break;case O.Kind.Video:this.videoTrackPublications.delete(s.trackSid);break}return this.emit(A.LocalTrackUnpublished,s),s.setTrack(void 0),a&&(yield this.engine.negotiate()),s})}unpublishTracks(e){return S(this,void 0,void 0,function*(){return(yield Promise.all(e.map(r=>this.unpublishTrack(r)))).filter(r=>!!r)})}republishAllTracks(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){r.republishPromise&&(yield r.republishPromise),r.republishPromise=new Promise((s,o)=>S(r,void 0,void 0,function*(){try{const a=[];this.trackPublications.forEach(l=>{l.track&&(n&&(l.options=Object.assign(Object.assign({},l.options),n)),a.push(l))}),yield Promise.all(a.map(l=>S(this,void 0,void 0,function*(){const c=l.track;yield this.unpublishTrack(c,!1),i&&!c.isMuted&&c.source!==O.Source.ScreenShare&&c.source!==O.Source.ScreenShareAudio&&(_r(c)||Jn(c))&&!c.isUserProvided&&(this.log.debug("restarting existing track",Object.assign(Object.assign({},this.logContext),{track:l.trackSid})),yield c.restartTrack()),yield this.publishOrRepublishTrack(c,l.options,!0)}))),s()}catch(a){o(a)}finally{this.republishPromise=void 0}})),yield r.republishPromise}()})}publishData(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function*(){const s=i.reliable?Y.RELIABLE:Y.LOSSY,o=i.destinationIdentities,a=i.topic,l=new ct({kind:s,value:{case:"user",value:new iv({participantIdentity:r.identity,payload:n,destinationIdentities:o,topic:a})}});yield r.engine.sendDataPacket(l,s)}()})}publishDtmf(e,n){return S(this,void 0,void 0,function*(){const r=new ct({kind:Y.RELIABLE,value:{case:"sipDtmf",value:new sv({code:e,digit:n})}});yield this.engine.sendDataPacket(r,Y.RELIABLE)})}sendChatMessage(e,n){return S(this,void 0,void 0,function*(){const r={id:crypto.randomUUID(),message:e,timestamp:Date.now(),attachedFiles:n==null?void 0:n.attachments},i=new ct({value:{case:"chatMessage",value:new zu(Object.assign(Object.assign({},r),{timestamp:pe.parse(r.timestamp)}))}});return yield this.engine.sendDataPacket(i,Y.RELIABLE),this.emit(A.ChatMessage,r),r})}editChatMessage(e,n){return S(this,void 0,void 0,function*(){const r=Object.assign(Object.assign({},n),{message:e,editTimestamp:Date.now()}),i=new ct({value:{case:"chatMessage",value:new zu(Object.assign(Object.assign({},r),{timestamp:pe.parse(r.timestamp),editTimestamp:pe.parse(r.editTimestamp)}))}});return yield this.engine.sendDataPacket(i,Y.RELIABLE),this.emit(A.ChatMessage,r),r})}sendText(e,n){return S(this,void 0,void 0,function*(){var r;const i=crypto.randomUUID(),o=new TextEncoder().encode(e).byteLength,a=(r=n==null?void 0:n.attachments)===null||r===void 0?void 0:r.map(()=>crypto.randomUUID()),l=new Array(a?a.length+1:1).fill(0),c=(d,h)=>{var f;l[h]=d;const m=l.reduce((g,T)=>g+T,0);(f=n==null?void 0:n.onProgress)===null||f===void 0||f.call(n,m)},u=yield this.streamText({streamId:i,totalSize:o,destinationIdentities:n==null?void 0:n.destinationIdentities,topic:n==null?void 0:n.topic,attachedStreamIds:a,attributes:n==null?void 0:n.attributes});return yield u.write(e),c(1,0),yield u.close(),n!=null&&n.attachments&&a&&(yield Promise.all(n.attachments.map((d,h)=>S(this,void 0,void 0,function*(){return this._sendFile(a[h],d,{topic:n.topic,mimeType:d.type,onProgress:f=>{c(f,h+1)}})})))),u.info})}streamText(e){return S(this,void 0,void 0,function*(){var n,r;const i=(n=e==null?void 0:e.streamId)!==null&&n!==void 0?n:crypto.randomUUID(),s={id:i,mimeType:"text/plain",timestamp:Date.now(),topic:(r=e==null?void 0:e.topic)!==null&&r!==void 0?r:"",size:e==null?void 0:e.totalSize,attributes:e==null?void 0:e.attributes},o=new Hu({streamId:i,mimeType:s.mimeType,topic:s.topic,timestamp:Pr(s.timestamp),totalLength:Pr(e==null?void 0:e.totalSize),attributes:s.attributes,contentHeader:{case:"textHeader",value:new gv({version:e==null?void 0:e.version,attachedStreamIds:e==null?void 0:e.attachedStreamIds,replyToStreamId:e==null?void 0:e.replyToStreamId,operationType:(e==null?void 0:e.type)==="update"?Vu.UPDATE:Vu.CREATE})}}),a=e==null?void 0:e.destinationIdentities,l=new ct({destinationIdentities:a,value:{case:"streamHeader",value:o}});yield this.engine.sendDataPacket(l,Y.RELIABLE);let c=0;const u=this,d=new WritableStream({write(m){return S(this,void 0,void 0,function*(){for(const g of HT(m,Za)){yield u.engine.waitForBufferStatusLow(Y.RELIABLE);const T=new $u({content:g,streamId:i,chunkIndex:Pr(c)}),p=new ct({destinationIdentities:a,value:{case:"streamChunk",value:T}});yield u.engine.sendDataPacket(p,Y.RELIABLE),c+=1}})},close(){return S(this,void 0,void 0,function*(){const m=new qu({streamId:i}),g=new ct({destinationIdentities:a,value:{case:"streamTrailer",value:m}});yield u.engine.sendDataPacket(g,Y.RELIABLE)})},abort(m){console.log("Sink error:",m)}});let h=()=>S(this,void 0,void 0,function*(){yield f.close()});u.engine.once(D.Closing,h);const f=new L2(d,s,()=>this.engine.off(D.Closing,h));return f})}sendFile(e,n){return S(this,void 0,void 0,function*(){const r=crypto.randomUUID();return yield this._sendFile(r,e,n),{id:r}})}_sendFile(e,n,r){return S(this,void 0,void 0,function*(){var i,s;const o=n.size,a=new Hu({totalLength:Pr(o),mimeType:(i=r==null?void 0:r.mimeType)!==null&&i!==void 0?i:n.type,streamId:e,topic:r==null?void 0:r.topic,encryptionType:r==null?void 0:r.encryptionType,timestamp:Pr(Date.now()),contentHeader:{case:"byteHeader",value:new vv({name:n.name})}}),l=r==null?void 0:r.destinationIdentities,c=new ct({destinationIdentities:l,value:{case:"streamHeader",value:a}});yield this.engine.sendDataPacket(c,Y.RELIABLE);function u(m){return new Promise(g=>{const T=new FileReader;T.onload=()=>{g(new Uint8Array(T.result))},T.readAsArrayBuffer(m)})}const d=Math.ceil(o/Za);for(let m=0;m<d;m++){const g=yield u(n.slice(m*Za,Math.min((m+1)*Za,o)));yield this.engine.waitForBufferStatusLow(Y.RELIABLE);const T=new $u({content:g,streamId:e,chunkIndex:Pr(m)}),p=new ct({destinationIdentities:l,value:{case:"streamChunk",value:T}});yield this.engine.sendDataPacket(p,Y.RELIABLE),(s=r==null?void 0:r.onProgress)===null||s===void 0||s.call(r,(m+1)/d)}const h=new qu({streamId:e}),f=new ct({destinationIdentities:l,value:{case:"streamTrailer",value:h}});yield this.engine.sendDataPacket(f,Y.RELIABLE)})}performRpc(e){return S(this,arguments,void 0,function(n){var r=this;let{destinationIdentity:i,method:s,payload:o,responseTimeout:a=1e4}=n;return function*(){return new Promise((c,u)=>S(r,void 0,void 0,function*(){var d,h,f,m;if(Ud(o)>G0){u(Te.builtIn("REQUEST_PAYLOAD_TOO_LARGE"));return}if(!((h=(d=this.engine.latestJoinResponse)===null||d===void 0?void 0:d.serverInfo)===null||h===void 0)&&h.version&&Er((m=(f=this.engine.latestJoinResponse)===null||f===void 0?void 0:f.serverInfo)===null||m===void 0?void 0:m.version,"1.8.0")<0){u(Te.builtIn("UNSUPPORTED_SERVER"));return}const g=crypto.randomUUID();yield this.publishRpcRequest(i,g,s,o,a-2e3);const T=setTimeout(()=>{this.pendingAcks.delete(g),u(Te.builtIn("CONNECTION_TIMEOUT")),this.pendingResponses.delete(g),clearTimeout(p)},2e3);this.pendingAcks.set(g,{resolve:()=>{clearTimeout(T)},participantIdentity:i});const p=setTimeout(()=>{this.pendingResponses.delete(g),u(Te.builtIn("RESPONSE_TIMEOUT"))},a);this.pendingResponses.set(g,{resolve:(v,y)=>{clearTimeout(p),this.pendingAcks.has(g)&&(console.warn("RPC response received before ack",g),this.pendingAcks.delete(g),clearTimeout(T)),y?u(y):c(v??"")},participantIdentity:i})}))}()})}registerRpcMethod(e,n){this.rpcHandlers.has(e)&&this.log.warn("you're overriding the RPC handler for method ".concat(e,", in the future this will throw an error")),this.rpcHandlers.set(e,n)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}setTrackSubscriptionPermissions(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];this.participantTrackPermissions=n,this.allParticipantsAllowedToSubscribe=e,this.engine.client.isDisconnected||this.updateTrackSubscriptionPermissions()}handleIncomingRpcAck(e){const n=this.pendingAcks.get(e);n?(n.resolve(),this.pendingAcks.delete(e)):console.error("Ack received for unexpected RPC request",e)}handleIncomingRpcResponse(e,n,r){const i=this.pendingResponses.get(e);i?(i.resolve(n,r),this.pendingResponses.delete(e)):console.error("Response received for unexpected RPC request",e)}publishRpcRequest(e,n,r,i,s){return S(this,void 0,void 0,function*(){const o=new ct({destinationIdentities:[e],kind:Y.RELIABLE,value:{case:"rpcRequest",value:new ov({id:n,method:r,payload:i,responseTimeoutMs:s,version:1})}});yield this.engine.sendDataPacket(o,Y.RELIABLE)})}handleParticipantDisconnected(e){for(const[n,{participantIdentity:r}]of this.pendingAcks)r===e&&this.pendingAcks.delete(n);for(const[n,{participantIdentity:r,resolve:i}]of this.pendingResponses)r===e&&(i(null,Te.builtIn("RECIPIENT_DISCONNECTED")),this.pendingResponses.delete(n))}setEnabledPublishCodecs(e){this.enabledPublishVideoCodecs=e.filter(n=>n.mime.split("/")[0].toLowerCase()==="video")}updateInfo(e){return e.sid!==this.sid||!super.updateInfo(e)?!1:(e.tracks.forEach(n=>{var r,i;const s=this.trackPublications.get(n.sid);if(s){const o=s.isMuted||((i=(r=s.track)===null||r===void 0?void 0:r.isUpstreamPaused)!==null&&i!==void 0?i:!1);o!==n.muted&&(this.log.debug("updating server mute state after reconcile",Object.assign(Object.assign(Object.assign({},this.logContext),ie(s)),{mutedOnServer:o})),this.engine.client.sendMuteTrack(n.sid,o))}}),!0)}getPublicationForTrack(e){let n;return this.trackPublications.forEach(r=>{const i=r.track;i&&(e instanceof MediaStreamTrack?(_r(i)||Jn(i))&&i.mediaStreamTrack===e&&(n=r):e===i&&(n=r))}),n}waitForPendingPublicationOfSource(e){return S(this,void 0,void 0,function*(){const r=Date.now();for(;Date.now()<r+1e4;){const i=Array.from(this.pendingPublishPromises.entries()).find(s=>{let[o]=s;return o.source===e});if(i)return i[1];yield ut(20)}})}}class F2 extends Cn{constructor(e,n,r,i){super(e,n.sid,n.name,i),this.track=void 0,this.allowed=!0,this.disabled=!1,this.currentVideoQuality=Et.HIGH,this.handleEnded=s=>{this.setTrack(void 0),this.emit(N.Ended,s)},this.handleVisibilityChange=s=>{this.log.debug("adaptivestream video visibility ".concat(this.trackSid,", visible=").concat(s),this.logContext),this.disabled=!s,this.emitTrackUpdate()},this.handleVideoDimensionsChange=s=>{this.log.debug("adaptivestream video dimensions ".concat(s.width,"x").concat(s.height),this.logContext),this.videoDimensions=s,this.emitTrackUpdate()},this.subscribed=r,this.updateInfo(n)}setSubscribed(e){const n=this.subscriptionStatus,r=this.permissionStatus;this.subscribed=e,e&&(this.allowed=!0);const i=new Pa({trackSids:[this.trackSid],subscribe:this.subscribed,participantTracks:[new uv({participantSid:"",trackSids:[this.trackSid]})]});this.emit(N.UpdateSubscription,i),this.emitSubscriptionUpdateIfChanged(n),this.emitPermissionUpdateIfChanged(r)}get subscriptionStatus(){return this.subscribed===!1?Cn.SubscriptionStatus.Unsubscribed:super.isSubscribed?Cn.SubscriptionStatus.Subscribed:Cn.SubscriptionStatus.Desired}get permissionStatus(){return this.allowed?Cn.PermissionStatus.Allowed:Cn.PermissionStatus.NotAllowed}get isSubscribed(){return this.subscribed===!1?!1:super.isSubscribed}get isDesired(){return this.subscribed!==!1}get isEnabled(){return!this.disabled}get isLocal(){return!1}setEnabled(e){!this.isManualOperationAllowed()||this.disabled===!e||(this.disabled=!e,this.emitTrackUpdate())}setVideoQuality(e){!this.isManualOperationAllowed()||this.currentVideoQuality===e||(this.currentVideoQuality=e,this.videoDimensions=void 0,this.emitTrackUpdate())}setVideoDimensions(e){var n,r;this.isManualOperationAllowed()&&(((n=this.videoDimensions)===null||n===void 0?void 0:n.width)===e.width&&((r=this.videoDimensions)===null||r===void 0?void 0:r.height)===e.height||(Ed(this.track)&&(this.videoDimensions=e),this.currentVideoQuality=void 0,this.emitTrackUpdate()))}setVideoFPS(e){this.isManualOperationAllowed()&&Ed(this.track)&&this.fps!==e&&(this.fps=e,this.emitTrackUpdate())}get videoQuality(){return this.currentVideoQuality}setTrack(e){const n=this.subscriptionStatus,r=this.permissionStatus,i=this.track;i!==e&&(i&&(i.off(N.VideoDimensionsChanged,this.handleVideoDimensionsChange),i.off(N.VisibilityChanged,this.handleVisibilityChange),i.off(N.Ended,this.handleEnded),i.detach(),i.stopMonitor(),this.emit(N.Unsubscribed,i)),super.setTrack(e),e&&(e.sid=this.trackSid,e.on(N.VideoDimensionsChanged,this.handleVideoDimensionsChange),e.on(N.VisibilityChanged,this.handleVisibilityChange),e.on(N.Ended,this.handleEnded),this.emit(N.Subscribed,e)),this.emitPermissionUpdateIfChanged(r),this.emitSubscriptionUpdateIfChanged(n))}setAllowed(e){const n=this.subscriptionStatus,r=this.permissionStatus;this.allowed=e,this.emitPermissionUpdateIfChanged(r),this.emitSubscriptionUpdateIfChanged(n)}setSubscriptionError(e){this.emit(N.SubscriptionFailed,e)}updateInfo(e){super.updateInfo(e);const n=this.metadataMuted;this.metadataMuted=e.muted,this.track?this.track.setMuted(e.muted):n!==e.muted&&this.emit(e.muted?N.Muted:N.Unmuted)}emitSubscriptionUpdateIfChanged(e){const n=this.subscriptionStatus;e!==n&&this.emit(N.SubscriptionStatusChanged,n,e)}emitPermissionUpdateIfChanged(e){this.permissionStatus!==e&&this.emit(N.SubscriptionPermissionChanged,this.permissionStatus,e)}isManualOperationAllowed(){return this.kind===O.Kind.Video&&this.isAdaptiveStream?(this.log.warn("adaptive stream is enabled, cannot change video track settings",this.logContext),!1):this.isDesired?!0:(this.log.warn("cannot update track settings when not subscribed",this.logContext),!1)}get isAdaptiveStream(){return Ed(this.track)&&this.track.isAdaptiveStream}emitTrackUpdate(){const e=new kv({trackSids:[this.trackSid],disabled:this.disabled,fps:this.fps});this.videoDimensions?(e.width=Math.ceil(this.videoDimensions.width),e.height=Math.ceil(this.videoDimensions.height)):this.currentVideoQuality!==void 0?e.quality=this.currentVideoQuality:e.quality=Et.HIGH,this.emit(N.UpdateSettings,e)}}class Qa extends oy{static fromParticipantInfo(e,n,r){return new Qa(e,n.sid,n.identity,n.name,n.metadata,n.attributes,r,n.kind)}get logContext(){return Object.assign(Object.assign({},super.logContext),{rpID:this.sid,remoteParticipant:this.identity})}constructor(e,n,r,i,s,o,a){let l=arguments.length>7&&arguments[7]!==void 0?arguments[7]:Ea.STANDARD;super(n,r||"",i,s,o,a,l),this.signalClient=e,this.trackPublications=new Map,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.volumeMap=new Map}addTrackPublication(e){super.addTrackPublication(e),e.on(N.UpdateSettings,n=>{this.log.debug("send update settings",Object.assign(Object.assign({},this.logContext),ie(e))),this.signalClient.sendUpdateTrackSettings(n)}),e.on(N.UpdateSubscription,n=>{n.participantTracks.forEach(r=>{r.participantSid=this.sid}),this.signalClient.sendUpdateSubscription(n)}),e.on(N.SubscriptionPermissionChanged,n=>{this.emit(A.TrackSubscriptionPermissionChanged,e,n)}),e.on(N.SubscriptionStatusChanged,n=>{this.emit(A.TrackSubscriptionStatusChanged,e,n)}),e.on(N.Subscribed,n=>{this.emit(A.TrackSubscribed,n,e)}),e.on(N.Unsubscribed,n=>{this.emit(A.TrackUnsubscribed,n,e)}),e.on(N.SubscriptionFailed,n=>{this.emit(A.TrackSubscriptionFailed,e.trackSid,n)})}getTrackPublication(e){const n=super.getTrackPublication(e);if(n)return n}getTrackPublicationByName(e){const n=super.getTrackPublicationByName(e);if(n)return n}setVolume(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:O.Source.Microphone;this.volumeMap.set(n,e);const r=this.getTrackPublication(n);r&&r.track&&r.track.setVolume(e)}getVolume(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:O.Source.Microphone;const n=this.getTrackPublication(e);return n&&n.track?n.track.getVolume():this.volumeMap.get(e)}addSubscribedMediaTrack(e,n,r,i,s,o){let a=this.getTrackPublicationBySid(n);if(a||n.startsWith("TR")||this.trackPublications.forEach(u=>{!a&&e.kind===u.kind.toString()&&(a=u)}),!a){if(o===0){this.log.error("could not find published track",Object.assign(Object.assign({},this.logContext),{trackSid:n})),this.emit(A.TrackSubscriptionFailed,n);return}o===void 0&&(o=20),setTimeout(()=>{this.addSubscribedMediaTrack(e,n,r,i,s,o-1)},150);return}if(e.readyState==="ended"){this.log.error("unable to subscribe because MediaStreamTrack is ended. Do not call MediaStreamTrack.stop()",Object.assign(Object.assign({},this.logContext),ie(a))),this.emit(A.TrackSubscriptionFailed,n);return}const l=e.kind==="video";let c;return l?c=new N2(e,n,i,s):c=new M2(e,n,i,this.audioContext,this.audioOutput),c.source=a.source,c.isMuted=a.isMuted,c.setMediaStream(r),c.start(),a.setTrack(c),this.volumeMap.has(a.source)&&xd(c)&&bn(c)&&c.setVolume(this.volumeMap.get(a.source)),a}get hasMetadata(){return!!this.participantInfo}getTrackPublicationBySid(e){return this.trackPublications.get(e)}updateInfo(e){if(!super.updateInfo(e))return!1;const n=new Map,r=new Map;return e.tracks.forEach(i=>{var s,o;let a=this.getTrackPublicationBySid(i.sid);if(a)a.updateInfo(i);else{const l=O.kindFromProto(i.type);if(!l)return;a=new F2(l,i,(s=this.signalClient.connectOptions)===null||s===void 0?void 0:s.autoSubscribe,{loggerContextCb:()=>this.logContext,loggerName:(o=this.loggerOptions)===null||o===void 0?void 0:o.loggerName}),a.updateInfo(i),r.set(i.sid,a);const c=Array.from(this.trackPublications.values()).find(u=>u.source===(a==null?void 0:a.source));c&&a.source!==O.Source.Unknown&&this.log.debug("received a second track publication for ".concat(this.identity," with the same source: ").concat(a.source),Object.assign(Object.assign({},this.logContext),{oldTrack:ie(c),newTrack:ie(a)})),this.addTrackPublication(a)}n.set(i.sid,a)}),this.trackPublications.forEach(i=>{n.has(i.trackSid)||(this.log.trace("detected removed track on remote participant, unpublishing",Object.assign(Object.assign({},this.logContext),ie(i))),this.unpublishTrack(i.trackSid,!0))}),r.forEach(i=>{this.emit(A.TrackPublished,i)}),!0}unpublishTrack(e,n){const r=this.trackPublications.get(e);if(!r)return;const{track:i}=r;switch(i&&(i.stop(),r.setTrack(void 0)),this.trackPublications.delete(e),r.kind){case O.Kind.Audio:this.audioTrackPublications.delete(e);break;case O.Kind.Video:this.videoTrackPublications.delete(e);break}n&&this.emit(A.TrackUnpublished,r)}setAudioOutput(e){return S(this,void 0,void 0,function*(){this.audioOutput=e;const n=[];this.audioTrackPublications.forEach(r=>{var i;bn(r.track)&&xd(r.track)&&n.push(r.track.setSinkId((i=e.deviceId)!==null&&i!==void 0?i:"default"))}),yield Promise.all(n)})}emit(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return this.log.trace("participant event",Object.assign(Object.assign({},this.logContext),{event:e,args:r})),super.emit(e,...r)}}var X;(function(t){t.Disconnected="disconnected",t.Connecting="connecting",t.Connected="connected",t.Reconnecting="reconnecting",t.SignalReconnecting="signalReconnecting"})(X||(X={}));const B2=4*1e3;class Pi extends nn.EventEmitter{constructor(e){var n,r,i,s;if(super(),n=this,this.state=X.Disconnected,this.activeSpeakers=[],this.isE2EEEnabled=!1,this.audioEnabled=!0,this.isVideoPlaybackBlocked=!1,this.log=K,this.bufferedEvents=[],this.isResuming=!1,this.byteStreamControllers=new Map,this.textStreamControllers=new Map,this.byteStreamHandlers=new Map,this.textStreamHandlers=new Map,this.rpcHandlers=new Map,this.connect=(o,a,l)=>S(this,void 0,void 0,function*(){var c;if(!LT())throw rn()?Error("WebRTC isn't detected, have you called registerGlobals?"):Error("LiveKit doesn't seem to be supported on this browser. Try to update your browser and make sure no browser extensions are disabling webRTC.");const u=yield this.disconnectLock.lock();if(this.state===X.Connected)return this.log.info("already connected to room ".concat(this.name),this.logContext),u(),Promise.resolve();if(this.connectFuture)return u(),this.connectFuture.promise;this.setAndEmitConnectionState(X.Connecting),((c=this.regionUrlProvider)===null||c===void 0?void 0:c.getServerUrl().toString())!==o&&(this.regionUrl=void 0,this.regionUrlProvider=void 0),bd(new URL(o))&&(this.regionUrlProvider===void 0?this.regionUrlProvider=new $d(o,a):this.regionUrlProvider.updateToken(a),this.regionUrlProvider.fetchRegionSettings().then(f=>{var m;(m=this.regionUrlProvider)===null||m===void 0||m.setServerReportedRegions(f)}).catch(f=>{this.log.warn("could not fetch region settings",Object.assign(Object.assign({},this.logContext),{error:f}))}));const d=(f,m,g)=>S(this,void 0,void 0,function*(){var T,p;this.abortController&&this.abortController.abort();const v=new AbortController;this.abortController=v,u==null||u();try{yield this.attemptConnection(g??o,a,l,v),this.abortController=void 0,f()}catch(y){if(this.regionUrlProvider&&y instanceof ce&&y.reason!==Z.Cancelled&&y.reason!==Z.NotAllowed){let k=null;try{k=yield this.regionUrlProvider.getNextBestRegionUrl((T=this.abortController)===null||T===void 0?void 0:T.signal)}catch(C){if(C instanceof ce&&(C.status===401||C.reason===Z.Cancelled)){this.handleDisconnect(this.options.stopLocalTrackOnUnpublish),m(C);return}}k&&!(!((p=this.abortController)===null||p===void 0)&&p.signal.aborted)?(this.log.info("Initial connection failed with ConnectionError: ".concat(y.message,". Retrying with another region: ").concat(k),this.logContext),this.recreateEngine(),yield d(f,m,k)):(this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,O0(y)),m(y))}else{let k=Ft.UNKNOWN_REASON;y instanceof ce&&(k=O0(y)),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,k),m(y)}}}),h=this.regionUrl;return this.regionUrl=void 0,this.connectFuture=new I0((f,m)=>{d(f,m,h)},()=>{this.clearConnectionFutures()}),this.connectFuture.promise}),this.connectSignal=(o,a,l,c,u,d)=>S(this,void 0,void 0,function*(){var h,f,m;const g=yield l.join(o,a,{autoSubscribe:c.autoSubscribe,adaptiveStream:typeof u.adaptiveStream=="object"?!0:u.adaptiveStream,maxRetries:c.maxRetries,e2eeEnabled:!!this.e2eeManager,websocketTimeout:c.websocketTimeout},d.signal);let T=g.serverInfo;if(T||(T={version:g.serverVersion,region:g.serverRegion}),this.serverInfo=T,this.log.debug("connected to Livekit Server ".concat(Object.entries(T).map(p=>{let[v,y]=p;return"".concat(v,": ").concat(y)}).join(", ")),{room:(h=g.room)===null||h===void 0?void 0:h.name,roomSid:(f=g.room)===null||f===void 0?void 0:f.sid,identity:(m=g.participant)===null||m===void 0?void 0:m.identity}),!T.version)throw new gT("unknown server version");return T.version==="0.15.1"&&this.options.dynacast&&(this.log.debug("disabling dynacast due to server version",this.logContext),u.dynacast=!1),g}),this.applyJoinResponse=o=>{const a=o.participant;if(this.localParticipant.sid=a.sid,this.localParticipant.identity=a.identity,this.localParticipant.setEnabledPublishCodecs(o.enabledPublishCodecs),this.options.e2ee&&this.e2eeManager)try{this.e2eeManager.setSifTrailer(o.sifTrailer)}catch(l){this.log.error(l instanceof Error?l.message:"Could not set SifTrailer",Object.assign(Object.assign({},this.logContext),{error:l}))}this.handleParticipantUpdates([a,...o.otherParticipants]),o.room&&this.handleRoomUpdate(o.room)},this.attemptConnection=(o,a,l,c)=>S(this,void 0,void 0,function*(){var u,d;this.state===X.Reconnecting||this.isResuming||!((u=this.engine)===null||u===void 0)&&u.pendingReconnect?(this.log.info("Reconnection attempt replaced by new connection attempt",this.logContext),this.recreateEngine()):this.maybeCreateEngine(),!((d=this.regionUrlProvider)===null||d===void 0)&&d.isCloud()&&this.engine.setRegionUrlProvider(this.regionUrlProvider),this.acquireAudioContext(),this.connOptions=Object.assign(Object.assign({},jd),l),this.connOptions.rtcConfig&&(this.engine.rtcConfig=this.connOptions.rtcConfig),this.connOptions.peerConnectionTimeout&&(this.engine.peerConnectionTimeout=this.connOptions.peerConnectionTimeout);try{const h=yield this.connectSignal(o,a,this.engine,this.connOptions,this.options,c);this.applyJoinResponse(h),this.setupLocalParticipantEvents(),this.emit(M.SignalConnected)}catch(h){yield this.engine.close(),this.recreateEngine();const f=new ce("could not establish signal connection",Z.ServerUnreachable);throw h instanceof Error&&(f.message="".concat(f.message,": ").concat(h.message)),h instanceof ce&&(f.reason=h.reason,f.status=h.status),this.log.debug("error trying to establish signal connection",Object.assign(Object.assign({},this.logContext),{error:h})),f}if(c.signal.aborted)throw yield this.engine.close(),this.recreateEngine(),new ce("Connection attempt aborted",Z.Cancelled);try{yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout,c)}catch(h){throw yield this.engine.close(),this.recreateEngine(),h}dt()&&this.options.disconnectOnPageLeave&&(window.addEventListener("pagehide",this.onPageLeave),window.addEventListener("beforeunload",this.onPageLeave)),dt()&&document.addEventListener("freeze",this.onPageLeave),this.setAndEmitConnectionState(X.Connected),this.emit(M.Connected),this.registerConnectionReconcile()}),this.disconnect=function(){for(var o=arguments.length,a=new Array(o),l=0;l<o;l++)a[l]=arguments[l];return S(n,[...a],void 0,function(){var c=this;let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var d,h,f,m;const g=yield c.disconnectLock.lock();try{if(c.state===X.Disconnected){c.log.debug("already disconnected",c.logContext);return}c.log.info("disconnect from room",Object.assign({},c.logContext)),(c.state===X.Connecting||c.state===X.Reconnecting||c.isResuming)&&(c.log.warn("abort connection attempt",c.logContext),(d=c.abortController)===null||d===void 0||d.abort(),(f=(h=c.connectFuture)===null||h===void 0?void 0:h.reject)===null||f===void 0||f.call(h,new ce("Client initiated disconnect",Z.Cancelled)),c.connectFuture=void 0),!((m=c.engine)===null||m===void 0)&&m.client.isDisconnected||(yield c.engine.client.sendLeave()),c.engine&&(yield c.engine.close()),c.handleDisconnect(u,Ft.CLIENT_INITIATED),c.engine=void 0}finally{g()}}()})},this.onPageLeave=()=>S(this,void 0,void 0,function*(){this.log.info("Page leave detected, disconnecting",this.logContext),yield this.disconnect()}),this.startAudio=()=>S(this,void 0,void 0,function*(){const o=[],a=Vt();if(a&&a.os==="iOS"){const l="livekit-dummy-audio-el";let c=document.getElementById(l);if(!c){c=document.createElement("audio"),c.id=l,c.autoplay=!0,c.hidden=!0;const u=wd();u.enabled=!0;const d=new MediaStream([u]);c.srcObject=d,document.addEventListener("visibilitychange",()=>{c&&(c.srcObject=document.hidden?null:d,document.hidden||(this.log.debug("page visible again, triggering startAudio to resume playback and update playback status",this.logContext),this.startAudio()))}),document.body.append(c),this.once(M.Disconnected,()=>{c==null||c.remove(),c=null})}o.push(c)}this.remoteParticipants.forEach(l=>{l.audioTrackPublications.forEach(c=>{c.track&&c.track.attachedElements.forEach(u=>{o.push(u)})})});try{yield Promise.all([this.acquireAudioContext(),...o.map(l=>(l.muted=!1,l.play()))]),this.handleAudioPlaybackStarted()}catch(l){throw this.handleAudioPlaybackFailed(l),l}}),this.startVideo=()=>S(this,void 0,void 0,function*(){const o=[];for(const a of this.remoteParticipants.values())a.videoTrackPublications.forEach(l=>{var c;(c=l.track)===null||c===void 0||c.attachedElements.forEach(u=>{o.includes(u)||o.push(u)})});yield Promise.all(o.map(a=>a.play())).then(()=>{this.handleVideoPlaybackStarted()}).catch(a=>{a.name==="NotAllowedError"?this.handleVideoPlaybackFailed():this.log.warn("Resuming video playback failed, make sure you call `startVideo` directly in a user gesture handler",this.logContext)})}),this.handleRestarting=()=>{this.clearConnectionReconcile(),this.isResuming=!1;for(const o of this.remoteParticipants.values())this.handleParticipantDisconnected(o.identity,o);this.setAndEmitConnectionState(X.Reconnecting)&&this.emit(M.Reconnecting)},this.handleSignalRestarted=o=>S(this,void 0,void 0,function*(){this.log.debug("signal reconnected to server, region ".concat(o.serverRegion),Object.assign(Object.assign({},this.logContext),{region:o.serverRegion})),this.bufferedEvents=[],this.applyJoinResponse(o);try{yield this.localParticipant.republishAllTracks(void 0,!0)}catch(a){this.log.error("error trying to re-publish tracks after reconnection",Object.assign(Object.assign({},this.logContext),{error:a}))}try{yield this.engine.waitForRestarted(),this.log.debug("fully reconnected to server",Object.assign(Object.assign({},this.logContext),{region:o.serverRegion}))}catch{return}this.setAndEmitConnectionState(X.Connected),this.emit(M.Reconnected),this.registerConnectionReconcile(),this.emitBufferedEvents()}),this.handleParticipantUpdates=o=>{o.forEach(a=>{var l;if(a.identity===this.localParticipant.identity){this.localParticipant.updateInfo(a);return}a.identity===""&&(a.identity=(l=this.sidToIdentity.get(a.sid))!==null&&l!==void 0?l:"");let c=this.remoteParticipants.get(a.identity);a.state===Bu.DISCONNECTED?this.handleParticipantDisconnected(a.identity,c):c=this.getOrCreateParticipant(a.identity,a)})},this.handleActiveSpeakersUpdate=o=>{const a=[],l={};o.forEach(c=>{if(l[c.sid]=!0,c.sid===this.localParticipant.sid)this.localParticipant.audioLevel=c.level,this.localParticipant.setIsSpeaking(!0),a.push(this.localParticipant);else{const u=this.getRemoteParticipantBySid(c.sid);u&&(u.audioLevel=c.level,u.setIsSpeaking(!0),a.push(u))}}),l[this.localParticipant.sid]||(this.localParticipant.audioLevel=0,this.localParticipant.setIsSpeaking(!1)),this.remoteParticipants.forEach(c=>{l[c.sid]||(c.audioLevel=0,c.setIsSpeaking(!1))}),this.activeSpeakers=a,this.emitWhenConnected(M.ActiveSpeakersChanged,a)},this.handleSpeakersChanged=o=>{const a=new Map;this.activeSpeakers.forEach(c=>{const u=this.remoteParticipants.get(c.identity);u&&u.sid!==c.sid||a.set(c.sid,c)}),o.forEach(c=>{let u=this.getRemoteParticipantBySid(c.sid);c.sid===this.localParticipant.sid&&(u=this.localParticipant),u&&(u.audioLevel=c.level,u.setIsSpeaking(c.active),c.active?a.set(c.sid,u):a.delete(c.sid))});const l=Array.from(a.values());l.sort((c,u)=>u.audioLevel-c.audioLevel),this.activeSpeakers=l,this.emitWhenConnected(M.ActiveSpeakersChanged,l)},this.handleStreamStateUpdate=o=>{o.streamStates.forEach(a=>{const l=this.getRemoteParticipantBySid(a.participantSid);if(!l)return;const c=l.getTrackPublicationBySid(a.trackSid);if(!c||!c.track)return;const u=O.streamStateFromProto(a.state);u!==c.track.streamState&&(c.track.streamState=u,l.emit(A.TrackStreamStateChanged,c,c.track.streamState),this.emitWhenConnected(M.TrackStreamStateChanged,c,c.track.streamState,l))})},this.handleSubscriptionPermissionUpdate=o=>{const a=this.getRemoteParticipantBySid(o.participantSid);if(!a)return;const l=a.getTrackPublicationBySid(o.trackSid);l&&l.setAllowed(o.allowed)},this.handleSubscriptionError=o=>{const a=Array.from(this.remoteParticipants.values()).find(c=>c.trackPublications.has(o.trackSid));if(!a)return;const l=a.getTrackPublicationBySid(o.trackSid);l&&l.setSubscriptionError(o.err)},this.handleDataPacket=o=>{const a=this.remoteParticipants.get(o.participantIdentity);if(o.value.case==="user")this.handleUserPacket(a,o.value.value,o.kind);else if(o.value.case==="transcription")this.handleTranscription(a,o.value.value);else if(o.value.case==="sipDtmf")this.handleSipDtmf(a,o.value.value);else if(o.value.case==="chatMessage")this.handleChatMessage(a,o.value.value);else if(o.value.case==="metrics")this.handleMetrics(o.value.value,a);else if(o.value.case==="streamHeader")this.handleStreamHeader(o.value.value,o.participantIdentity);else if(o.value.case==="streamChunk")this.handleStreamChunk(o.value.value);else if(o.value.case==="streamTrailer")this.handleStreamTrailer(o.value.value);else if(o.value.case==="rpcRequest"){const l=o.value.value;this.handleIncomingRpcRequest(o.participantIdentity,l.id,l.method,l.payload,l.responseTimeoutMs,l.version)}},this.handleUserPacket=(o,a,l)=>{this.emit(M.DataReceived,a.payload,o,l,a.topic),o==null||o.emit(A.DataReceived,a.payload,l)},this.handleSipDtmf=(o,a)=>{this.emit(M.SipDTMFReceived,a,o),o==null||o.emit(A.SipDTMFReceived,a)},this.bufferedSegments=new Map,this.handleTranscription=(o,a)=>{const l=a.transcribedParticipantIdentity===this.localParticipant.identity?this.localParticipant:this.getParticipantByIdentity(a.transcribedParticipantIdentity),c=l==null?void 0:l.trackPublications.get(a.trackId),u=FT(a,this.transcriptionReceivedTimes);c==null||c.emit(N.TranscriptionReceived,u),l==null||l.emit(A.TranscriptionReceived,u,c),this.emit(M.TranscriptionReceived,u,l,c)},this.handleChatMessage=(o,a)=>{const l=BT(a);this.emit(M.ChatMessage,l,o)},this.handleMetrics=(o,a)=>{this.emit(M.MetricsReceived,o,a)},this.handleAudioPlaybackStarted=()=>{this.canPlaybackAudio||(this.audioEnabled=!0,this.emit(M.AudioPlaybackStatusChanged,!0))},this.handleAudioPlaybackFailed=o=>{this.log.warn("could not playback audio",Object.assign(Object.assign({},this.logContext),{error:o})),this.canPlaybackAudio&&(this.audioEnabled=!1,this.emit(M.AudioPlaybackStatusChanged,!1))},this.handleVideoPlaybackStarted=()=>{this.isVideoPlaybackBlocked&&(this.isVideoPlaybackBlocked=!1,this.emit(M.VideoPlaybackStatusChanged,!0))},this.handleVideoPlaybackFailed=()=>{this.isVideoPlaybackBlocked||(this.isVideoPlaybackBlocked=!0,this.emit(M.VideoPlaybackStatusChanged,!1))},this.handleDeviceChange=()=>S(this,void 0,void 0,function*(){var o,a;const l=Ae.getInstance().previousDevices,c=yield Ae.getInstance().getDevices(void 0,!1),u=Vt();if((u==null?void 0:u.name)==="Chrome"&&u.os!=="iOS")for(let h of c){const f=l.find(m=>m.deviceId===h.deviceId);f&&f.label!==""&&f.kind===h.kind&&f.label!==h.label&&this.getActiveDevice(h.kind)==="default"&&this.emit(M.ActiveDeviceChanged,h.kind,h.deviceId)}const d=["audiooutput","audioinput","videoinput"];for(let h of d){const f=c.filter(g=>g.kind===h),m=this.getActiveDevice(h);if(m===((o=l.filter(g=>g.kind===h)[0])===null||o===void 0?void 0:o.deviceId)&&f.length>0&&((a=f[0])===null||a===void 0?void 0:a.deviceId)!==m){yield this.switchActiveDevice(h,f[0].deviceId);continue}h==="audioinput"&&!Qn()||h==="videoinput"||f.length>0&&!f.find(g=>g.deviceId===this.getActiveDevice(h))&&(yield this.switchActiveDevice(h,f[0].deviceId))}this.emit(M.MediaDevicesChanged)}),this.handleRoomUpdate=o=>{const a=this.roomInfo;this.roomInfo=o,a&&a.metadata!==o.metadata&&this.emitWhenConnected(M.RoomMetadataChanged,o.metadata),(a==null?void 0:a.activeRecording)!==o.activeRecording&&this.emitWhenConnected(M.RecordingStatusChanged,o.activeRecording)},this.handleConnectionQualityUpdate=o=>{o.updates.forEach(a=>{if(a.participantSid===this.localParticipant.sid){this.localParticipant.setConnectionQuality(a.quality);return}const l=this.getRemoteParticipantBySid(a.participantSid);l&&l.setConnectionQuality(a.quality)})},this.onLocalParticipantMetadataChanged=o=>{this.emit(M.ParticipantMetadataChanged,o,this.localParticipant)},this.onLocalParticipantNameChanged=o=>{this.emit(M.ParticipantNameChanged,o,this.localParticipant)},this.onLocalAttributesChanged=o=>{this.emit(M.ParticipantAttributesChanged,o,this.localParticipant)},this.onLocalTrackMuted=o=>{this.emit(M.TrackMuted,o,this.localParticipant)},this.onLocalTrackUnmuted=o=>{this.emit(M.TrackUnmuted,o,this.localParticipant)},this.onTrackProcessorUpdate=o=>{var a;(a=o==null?void 0:o.onPublish)===null||a===void 0||a.call(o,this)},this.onLocalTrackPublished=o=>S(this,void 0,void 0,function*(){var a,l,c,u,d,h;(a=o.track)===null||a===void 0||a.on(N.TrackProcessorUpdate,this.onTrackProcessorUpdate),(l=o.track)===null||l===void 0||l.on(N.Restarted,this.onLocalTrackRestarted),(d=(u=(c=o.track)===null||c===void 0?void 0:c.getProcessor())===null||u===void 0?void 0:u.onPublish)===null||d===void 0||d.call(u,this),this.emit(M.LocalTrackPublished,o,this.localParticipant),_r(o.track)&&(yield o.track.checkForSilence())&&this.emit(M.LocalAudioSilenceDetected,o);const f=yield(h=o.track)===null||h===void 0?void 0:h.getDeviceId(!1),m=D0(o.source);m&&f&&f!==this.localParticipant.activeDeviceMap.get(m)&&(this.localParticipant.activeDeviceMap.set(m,f),this.emit(M.ActiveDeviceChanged,m,f))}),this.onLocalTrackUnpublished=o=>{var a,l;(a=o.track)===null||a===void 0||a.off(N.TrackProcessorUpdate,this.onTrackProcessorUpdate),(l=o.track)===null||l===void 0||l.off(N.Restarted,this.onLocalTrackRestarted),this.emit(M.LocalTrackUnpublished,o,this.localParticipant)},this.onLocalTrackRestarted=o=>S(this,void 0,void 0,function*(){const a=yield o.getDeviceId(!1),l=D0(o.source);l&&a&&a!==this.localParticipant.activeDeviceMap.get(l)&&(this.log.debug("local track restarted, setting ".concat(l," ").concat(a," active"),this.logContext),this.localParticipant.activeDeviceMap.set(l,a),this.emit(M.ActiveDeviceChanged,l,a))}),this.onLocalConnectionQualityChanged=o=>{this.emit(M.ConnectionQualityChanged,o,this.localParticipant)},this.onMediaDevicesError=o=>{this.emit(M.MediaDevicesError,o)},this.onLocalParticipantPermissionsChanged=o=>{this.emit(M.ParticipantPermissionsChanged,o,this.localParticipant)},this.onLocalChatMessageSent=o=>{this.emit(M.ChatMessage,o,this.localParticipant)},this.setMaxListeners(100),this.remoteParticipants=new Map,this.sidToIdentity=new Map,this.options=Object.assign(Object.assign({},u2),e),this.log=yn((r=this.options.loggerName)!==null&&r!==void 0?r:zt.Room),this.transcriptionReceivedTimes=new Map,this.options.audioCaptureDefaults=Object.assign(Object.assign({},q0),e==null?void 0:e.audioCaptureDefaults),this.options.videoCaptureDefaults=Object.assign(Object.assign({},W0),e==null?void 0:e.videoCaptureDefaults),this.options.publishDefaults=Object.assign(Object.assign({},c2),e==null?void 0:e.publishDefaults),this.maybeCreateEngine(),this.disconnectLock=new yt,this.localParticipant=new U2("","",this.engine,this.options,this.rpcHandlers),this.options.videoCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("videoinput",Yn(this.options.videoCaptureDefaults.deviceId)),this.options.audioCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("audioinput",Yn(this.options.audioCaptureDefaults.deviceId)),!((i=this.options.audioOutput)===null||i===void 0)&&i.deviceId&&this.switchActiveDevice("audiooutput",Yn(this.options.audioOutput.deviceId)).catch(o=>this.log.warn("Could not set audio output: ".concat(o.message),this.logContext)),this.options.e2ee&&this.setupE2EE(),dt()){const o=new AbortController;(s=navigator.mediaDevices)===null||s===void 0||s.addEventListener("devicechange",this.handleDeviceChange,{signal:o.signal}),Pi.cleanupRegistry&&Pi.cleanupRegistry.register(this,()=>{o.abort()})}}registerTextStreamHandler(e,n){if(this.textStreamHandlers.has(e))throw new TypeError('A text stream handler for topic "'.concat(e,'" has already been set.'));this.textStreamHandlers.set(e,n)}unregisterTextStreamHandler(e){this.textStreamHandlers.delete(e)}registerByteStreamHandler(e,n){if(this.byteStreamHandlers.has(e))throw new TypeError('A byte stream handler for topic "'.concat(e,'" has already been set.'));this.byteStreamHandlers.set(e,n)}unregisterByteStreamHandler(e){this.byteStreamHandlers.delete(e)}registerRpcMethod(e,n){if(this.rpcHandlers.has(e))throw Error("RPC handler already registered for method ".concat(e,", unregisterRpcMethod before trying to register again"));this.rpcHandlers.set(e,n)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}handleIncomingRpcRequest(e,n,r,i,s,o){return S(this,void 0,void 0,function*(){if(yield this.engine.publishRpcAck(e,n),o!==1){yield this.engine.publishRpcResponse(e,n,null,Te.builtIn("UNSUPPORTED_VERSION"));return}const a=this.rpcHandlers.get(r);if(!a){yield this.engine.publishRpcResponse(e,n,null,Te.builtIn("UNSUPPORTED_METHOD"));return}let l=null,c=null;try{const u=yield a({requestId:n,callerIdentity:e,payload:i,responseTimeout:s});Ud(u)>G0?(l=Te.builtIn("RESPONSE_PAYLOAD_TOO_LARGE"),console.warn("RPC Response payload too large for ".concat(r))):c=u}catch(u){u instanceof Te?l=u:(console.warn("Uncaught error returned by RPC handler for ".concat(r,". Returning APPLICATION_ERROR instead."),u),l=Te.builtIn("APPLICATION_ERROR"))}yield this.engine.publishRpcResponse(e,n,c,l)})}setE2EEEnabled(e){return S(this,void 0,void 0,function*(){if(this.e2eeManager)yield Promise.all([this.localParticipant.setE2EEEnabled(e)]),this.localParticipant.identity!==""&&this.e2eeManager.setParticipantCryptorEnabled(e,this.localParticipant.identity);else throw Error("e2ee not configured, please set e2ee settings within the room options")})}setupE2EE(){var e;this.options.e2ee&&("e2eeManager"in this.options.e2ee?this.e2eeManager=this.options.e2ee.e2eeManager:this.e2eeManager=new ZT(this.options.e2ee),this.e2eeManager.on(Kn.ParticipantEncryptionStatusChanged,(n,r)=>{VT(r)&&(this.isE2EEEnabled=n),this.emit(M.ParticipantEncryptionStatusChanged,n,r)}),this.e2eeManager.on(Kn.EncryptionError,n=>this.emit(M.EncryptionError,n)),(e=this.e2eeManager)===null||e===void 0||e.setup(this))}get logContext(){var e;return{room:this.name,roomID:(e=this.roomInfo)===null||e===void 0?void 0:e.sid,participant:this.localParticipant.identity,pID:this.localParticipant.sid}}get isRecording(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.activeRecording)!==null&&n!==void 0?n:!1}getSid(){return S(this,void 0,void 0,function*(){return this.state===X.Disconnected?"":this.roomInfo&&this.roomInfo.sid!==""?this.roomInfo.sid:new Promise((e,n)=>{const r=i=>{i.sid!==""&&(this.engine.off(D.RoomUpdate,r),e(i.sid))};this.engine.on(D.RoomUpdate,r),this.once(M.Disconnected,()=>{this.engine.off(D.RoomUpdate,r),n("Room disconnected before room server id was available")})})})}get name(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.name)!==null&&n!==void 0?n:""}get metadata(){var e;return(e=this.roomInfo)===null||e===void 0?void 0:e.metadata}get numParticipants(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.numParticipants)!==null&&n!==void 0?n:0}get numPublishers(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.numPublishers)!==null&&n!==void 0?n:0}maybeCreateEngine(){this.engine&&!this.engine.isClosed||(this.engine=new x2(this.options),this.engine.on(D.ParticipantUpdate,this.handleParticipantUpdates).on(D.RoomUpdate,this.handleRoomUpdate).on(D.SpeakersChanged,this.handleSpeakersChanged).on(D.StreamStateChanged,this.handleStreamStateUpdate).on(D.ConnectionQualityUpdate,this.handleConnectionQualityUpdate).on(D.SubscriptionError,this.handleSubscriptionError).on(D.SubscriptionPermissionUpdate,this.handleSubscriptionPermissionUpdate).on(D.MediaTrackAdded,(e,n,r)=>{this.onTrackAdded(e,n,r)}).on(D.Disconnected,e=>{this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,e)}).on(D.ActiveSpeakersUpdate,this.handleActiveSpeakersUpdate).on(D.DataPacketReceived,this.handleDataPacket).on(D.Resuming,()=>{this.clearConnectionReconcile(),this.isResuming=!0,this.log.info("Resuming signal connection",this.logContext),this.setAndEmitConnectionState(X.SignalReconnecting)&&this.emit(M.SignalReconnecting)}).on(D.Resumed,()=>{this.registerConnectionReconcile(),this.isResuming=!1,this.log.info("Resumed signal connection",this.logContext),this.updateSubscriptions(),this.emitBufferedEvents(),this.setAndEmitConnectionState(X.Connected)&&this.emit(M.Reconnected)}).on(D.SignalResumed,()=>{this.bufferedEvents=[],(this.state===X.Reconnecting||this.isResuming)&&this.sendSyncState()}).on(D.Restarting,this.handleRestarting).on(D.SignalRestarted,this.handleSignalRestarted).on(D.Offline,()=>{this.setAndEmitConnectionState(X.Reconnecting)&&this.emit(M.Reconnecting)}).on(D.DCBufferStatusChanged,(e,n)=>{this.emit(M.DCBufferStatusChanged,e,n)}).on(D.LocalTrackSubscribed,e=>{const n=this.localParticipant.getTrackPublications().find(r=>{let{trackSid:i}=r;return i===e});if(!n){this.log.warn("could not find local track subscription for subscribed event",this.logContext);return}this.localParticipant.emit(A.LocalTrackSubscribed,n),this.emitWhenConnected(M.LocalTrackSubscribed,n,this.localParticipant)}),this.localParticipant&&this.localParticipant.setupEngine(this.engine),this.e2eeManager&&this.e2eeManager.setupEngine(this.engine))}static getLocalDevices(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Ae.getInstance().getDevices(e,n)}prepareConnection(e,n){return S(this,void 0,void 0,function*(){if(this.state===X.Disconnected){this.log.debug("prepareConnection to ".concat(e),this.logContext);try{if(bd(new URL(e))&&n){this.regionUrlProvider=new $d(e,n);const r=yield this.regionUrlProvider.getNextBestRegionUrl();r&&this.state===X.Disconnected&&(this.regionUrl=r,yield fetch(Td(r),{method:"HEAD"}),this.log.debug("prepared connection to ".concat(r),this.logContext))}else yield fetch(Td(e),{method:"HEAD"})}catch(r){this.log.warn("could not prepare connection",Object.assign(Object.assign({},this.logContext),{error:r}))}}})}getParticipantByIdentity(e){return this.localParticipant.identity===e?this.localParticipant:this.remoteParticipants.get(e)}clearConnectionFutures(){this.connectFuture=void 0}simulateScenario(e,n){return S(this,void 0,void 0,function*(){let r=()=>{},i;switch(e){case"signal-reconnect":yield this.engine.client.handleOnClose("simulate disconnect");break;case"speaker":i=new tn({scenario:{case:"speakerUpdate",value:3}});break;case"node-failure":i=new tn({scenario:{case:"nodeFailure",value:!0}});break;case"server-leave":i=new tn({scenario:{case:"serverLeave",value:!0}});break;case"migration":i=new tn({scenario:{case:"migration",value:!0}});break;case"resume-reconnect":this.engine.failNext(),yield this.engine.client.handleOnClose("simulate resume-disconnect");break;case"disconnect-signal-on-resume":r=()=>S(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),i=new tn({scenario:{case:"disconnectSignalOnResume",value:!0}});break;case"disconnect-signal-on-resume-no-messages":r=()=>S(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),i=new tn({scenario:{case:"disconnectSignalOnResumeNoMessages",value:!0}});break;case"full-reconnect":this.engine.fullReconnectOnNext=!0,yield this.engine.client.handleOnClose("simulate full-reconnect");break;case"force-tcp":case"force-tls":i=new tn({scenario:{case:"switchCandidateProtocol",value:e==="force-tls"?2:1}}),r=()=>S(this,void 0,void 0,function*(){const s=this.engine.client.onLeave;s&&s(new _a({reason:Ft.CLIENT_INITIATED,action:yi.RECONNECT}))});break;case"subscriber-bandwidth":if(n===void 0||typeof n!="number")throw new Error("subscriber-bandwidth requires a number as argument");i=new tn({scenario:{case:"subscriberBandwidth",value:Pr(n)}});break;case"leave-full-reconnect":i=new tn({scenario:{case:"leaveRequestFullReconnect",value:!0}})}i&&(yield this.engine.client.sendSimulateScenario(i),yield r())})}get canPlaybackAudio(){return this.audioEnabled}get canPlaybackVideo(){return!this.isVideoPlaybackBlocked}getActiveDevice(e){return this.localParticipant.activeDeviceMap.get(e)}switchActiveDevice(e,n){return S(this,arguments,void 0,function(r,i){var s=this;let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return function*(){var a,l,c,u,d,h,f,m;let g=!0,T=!1;const p=o?{exact:i}:i;if(r==="audioinput"){T=s.localParticipant.audioTrackPublications.size===0;const v=(a=s.getActiveDevice(r))!==null&&a!==void 0?a:s.options.audioCaptureDefaults.deviceId;s.options.audioCaptureDefaults.deviceId=p;const y=Array.from(s.localParticipant.audioTrackPublications.values()).filter(k=>k.source===O.Source.Microphone);try{g=(yield Promise.all(y.map(k=>{var C;return(C=k.audioTrack)===null||C===void 0?void 0:C.setDeviceId(p)}))).every(k=>k===!0)}catch(k){throw s.options.audioCaptureDefaults.deviceId=v,k}}else if(r==="videoinput"){T=s.localParticipant.videoTrackPublications.size===0;const v=(l=s.getActiveDevice(r))!==null&&l!==void 0?l:s.options.videoCaptureDefaults.deviceId;s.options.videoCaptureDefaults.deviceId=p;const y=Array.from(s.localParticipant.videoTrackPublications.values()).filter(k=>k.source===O.Source.Camera);try{g=(yield Promise.all(y.map(k=>{var C;return(C=k.videoTrack)===null||C===void 0?void 0:C.setDeviceId(p)}))).every(k=>k===!0)}catch(k){throw s.options.videoCaptureDefaults.deviceId=v,k}}else if(r==="audiooutput"){if(!kd()&&!s.options.webAudioMix||s.options.webAudioMix&&s.audioContext&&!("setSinkId"in s.audioContext))throw new Error("cannot switch audio output, setSinkId not supported");s.options.webAudioMix&&(i=(c=yield Ae.getInstance().normalizeDeviceId("audiooutput",i))!==null&&c!==void 0?c:""),(u=(m=s.options).audioOutput)!==null&&u!==void 0||(m.audioOutput={});const v=(d=s.getActiveDevice(r))!==null&&d!==void 0?d:s.options.audioOutput.deviceId;s.options.audioOutput.deviceId=i;try{s.options.webAudioMix&&((h=s.audioContext)===null||h===void 0||h.setSinkId(i)),yield Promise.all(Array.from(s.remoteParticipants.values()).map(y=>y.setAudioOutput({deviceId:i})))}catch(y){throw s.options.audioOutput.deviceId=v,y}}return(T||r==="audiooutput")&&(s.localParticipant.activeDeviceMap.set(r,r==="audiooutput"&&((f=s.options.audioOutput)===null||f===void 0?void 0:f.deviceId)||i),s.emit(M.ActiveDeviceChanged,r,i)),g}()})}setupLocalParticipantEvents(){this.localParticipant.on(A.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).on(A.ParticipantNameChanged,this.onLocalParticipantNameChanged).on(A.AttributesChanged,this.onLocalAttributesChanged).on(A.TrackMuted,this.onLocalTrackMuted).on(A.TrackUnmuted,this.onLocalTrackUnmuted).on(A.LocalTrackPublished,this.onLocalTrackPublished).on(A.LocalTrackUnpublished,this.onLocalTrackUnpublished).on(A.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).on(A.MediaDevicesError,this.onMediaDevicesError).on(A.AudioStreamAcquired,this.startAudio).on(A.ChatMessage,this.onLocalChatMessageSent).on(A.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged)}recreateEngine(){var e;(e=this.engine)===null||e===void 0||e.close(),this.engine=void 0,this.isResuming=!1,this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.bufferedEvents=[],this.maybeCreateEngine()}onTrackAdded(e,n,r){if(this.state===X.Connecting||this.state===X.Reconnecting){const u=()=>{this.onTrackAdded(e,n,r),d()},d=()=>{this.off(M.Reconnected,u),this.off(M.Connected,u),this.off(M.Disconnected,d)};this.once(M.Reconnected,u),this.once(M.Connected,u),this.once(M.Disconnected,d);return}if(this.state===X.Disconnected){this.log.warn("skipping incoming track after Room disconnected",this.logContext);return}if(e.readyState==="ended"){this.log.info("skipping incoming track as it already ended",this.logContext);return}const i=RT(n.id),s=i[0];let o=i[1],a=e.id;if(o&&o.startsWith("TR")&&(a=o),s===this.localParticipant.sid){this.log.warn("tried to create RemoteParticipant for local participant",this.logContext);return}const l=Array.from(this.remoteParticipants.values()).find(u=>u.sid===s);if(!l){this.log.error("Tried to add a track for a participant, that's not present. Sid: ".concat(s),this.logContext);return}let c;this.options.adaptiveStream&&(typeof this.options.adaptiveStream=="object"?c=this.options.adaptiveStream:c={}),l.addSubscribedMediaTrack(e,a,n,r,c)}handleDisconnect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,n=arguments.length>1?arguments[1]:void 0;var r;if(this.clearConnectionReconcile(),this.isResuming=!1,this.bufferedEvents=[],this.transcriptionReceivedTimes.clear(),this.state!==X.Disconnected){this.regionUrl=void 0;try{this.remoteParticipants.forEach(i=>{i.trackPublications.forEach(s=>{i.unpublishTrack(s.trackSid)})}),this.localParticipant.trackPublications.forEach(i=>{var s,o,a;i.track&&this.localParticipant.unpublishTrack(i.track,e),e?((s=i.track)===null||s===void 0||s.detach(),(o=i.track)===null||o===void 0||o.stop()):(a=i.track)===null||a===void 0||a.stopMonitor()}),this.localParticipant.off(A.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).off(A.ParticipantNameChanged,this.onLocalParticipantNameChanged).off(A.AttributesChanged,this.onLocalAttributesChanged).off(A.TrackMuted,this.onLocalTrackMuted).off(A.TrackUnmuted,this.onLocalTrackUnmuted).off(A.LocalTrackPublished,this.onLocalTrackPublished).off(A.LocalTrackUnpublished,this.onLocalTrackUnpublished).off(A.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).off(A.MediaDevicesError,this.onMediaDevicesError).off(A.AudioStreamAcquired,this.startAudio).off(A.ChatMessage,this.onLocalChatMessageSent).off(A.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged),this.localParticipant.trackPublications.clear(),this.localParticipant.videoTrackPublications.clear(),this.localParticipant.audioTrackPublications.clear(),this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.activeSpeakers=[],this.audioContext&&typeof this.options.webAudioMix=="boolean"&&(this.audioContext.close(),this.audioContext=void 0),dt()&&(window.removeEventListener("beforeunload",this.onPageLeave),window.removeEventListener("pagehide",this.onPageLeave),window.removeEventListener("freeze",this.onPageLeave),(r=navigator.mediaDevices)===null||r===void 0||r.removeEventListener("devicechange",this.handleDeviceChange))}finally{this.setAndEmitConnectionState(X.Disconnected),this.emit(M.Disconnected,n)}}}handleParticipantDisconnected(e,n){var r;this.remoteParticipants.delete(e),n&&(n.trackPublications.forEach(i=>{n.unpublishTrack(i.trackSid,!0)}),this.emit(M.ParticipantDisconnected,n),(r=this.localParticipant)===null||r===void 0||r.handleParticipantDisconnected(n.identity))}handleStreamHeader(e,n){return S(this,void 0,void 0,function*(){var r;if(e.contentHeader.case==="byteHeader"){const i=this.byteStreamHandlers.get(e.topic);if(!i){this.log.debug("ignoring incoming byte stream due to no handler for topic",e.topic);return}let s;const o={id:e.streamId,name:(r=e.contentHeader.value.name)!==null&&r!==void 0?r:"unknown",mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:za(e.timestamp),attributes:e.attributes},a=new ReadableStream({start:l=>{s=l,this.byteStreamControllers.set(e.streamId,{info:o,controller:s,startTime:Date.now()})}});i(new R2(o,a,za(e.totalLength)),{identity:n})}else if(e.contentHeader.case==="textHeader"){const i=this.textStreamHandlers.get(e.topic);if(!i){this.log.debug("ignoring incoming text stream due to no handler for topic",e.topic);return}let s;const o={id:e.streamId,mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:Number(e.timestamp),attributes:e.attributes},a=new ReadableStream({start:l=>{s=l,this.textStreamControllers.set(e.streamId,{info:o,controller:s,startTime:Date.now()})}});i(new I2(o,a,za(e.totalLength)),{identity:n})}})}handleStreamChunk(e){const n=this.byteStreamControllers.get(e.streamId);n&&e.content.length>0&&n.controller.enqueue(e);const r=this.textStreamControllers.get(e.streamId);r&&e.content.length>0&&r.controller.enqueue(e)}handleStreamTrailer(e){const n=this.textStreamControllers.get(e.streamId);n&&(n.info.attributes=Object.assign(Object.assign({},n.info.attributes),e.attributes),n.controller.close(),this.textStreamControllers.delete(e.streamId));const r=this.byteStreamControllers.get(e.streamId);r&&(r.info.attributes=Object.assign(Object.assign({},r.info.attributes),e.attributes),r.controller.close(),this.byteStreamControllers.delete(e.streamId))}acquireAudioContext(){return S(this,void 0,void 0,function*(){var e,n;if(typeof this.options.webAudioMix!="boolean"&&this.options.webAudioMix.audioContext?this.audioContext=this.options.webAudioMix.audioContext:(!this.audioContext||this.audioContext.state==="closed")&&(this.audioContext=(e=N0())!==null&&e!==void 0?e:void 0),this.options.webAudioMix&&this.remoteParticipants.forEach(i=>i.setAudioContext(this.audioContext)),this.localParticipant.setAudioContext(this.audioContext),this.audioContext&&this.audioContext.state==="suspended")try{yield Promise.race([this.audioContext.resume(),ut(200)])}catch(i){this.log.warn("Could not resume audio context",Object.assign(Object.assign({},this.logContext),{error:i}))}const r=((n=this.audioContext)===null||n===void 0?void 0:n.state)==="running";r!==this.canPlaybackAudio&&(this.audioEnabled=r,this.emit(M.AudioPlaybackStatusChanged,r))})}createParticipant(e,n){var r;let i;return n?i=Qa.fromParticipantInfo(this.engine.client,n,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}):i=new Qa(this.engine.client,"",e,void 0,void 0,void 0,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}),this.options.webAudioMix&&i.setAudioContext(this.audioContext),!((r=this.options.audioOutput)===null||r===void 0)&&r.deviceId&&i.setAudioOutput(this.options.audioOutput).catch(s=>this.log.warn("Could not set audio output: ".concat(s.message),this.logContext)),i}getOrCreateParticipant(e,n){if(this.remoteParticipants.has(e)){const i=this.remoteParticipants.get(e);return n&&i.updateInfo(n)&&this.sidToIdentity.set(n.sid,n.identity),i}const r=this.createParticipant(e,n);return this.remoteParticipants.set(e,r),this.sidToIdentity.set(n.sid,n.identity),this.emitWhenConnected(M.ParticipantConnected,r),r.on(A.TrackPublished,i=>{this.emitWhenConnected(M.TrackPublished,i,r)}).on(A.TrackSubscribed,(i,s)=>{i.kind===O.Kind.Audio?(i.on(N.AudioPlaybackStarted,this.handleAudioPlaybackStarted),i.on(N.AudioPlaybackFailed,this.handleAudioPlaybackFailed)):i.kind===O.Kind.Video&&(i.on(N.VideoPlaybackFailed,this.handleVideoPlaybackFailed),i.on(N.VideoPlaybackStarted,this.handleVideoPlaybackStarted)),this.emit(M.TrackSubscribed,i,s,r)}).on(A.TrackUnpublished,i=>{this.emit(M.TrackUnpublished,i,r)}).on(A.TrackUnsubscribed,(i,s)=>{this.emit(M.TrackUnsubscribed,i,s,r)}).on(A.TrackMuted,i=>{this.emitWhenConnected(M.TrackMuted,i,r)}).on(A.TrackUnmuted,i=>{this.emitWhenConnected(M.TrackUnmuted,i,r)}).on(A.ParticipantMetadataChanged,i=>{this.emitWhenConnected(M.ParticipantMetadataChanged,i,r)}).on(A.ParticipantNameChanged,i=>{this.emitWhenConnected(M.ParticipantNameChanged,i,r)}).on(A.AttributesChanged,i=>{this.emitWhenConnected(M.ParticipantAttributesChanged,i,r)}).on(A.ConnectionQualityChanged,i=>{this.emitWhenConnected(M.ConnectionQualityChanged,i,r)}).on(A.ParticipantPermissionsChanged,i=>{this.emitWhenConnected(M.ParticipantPermissionsChanged,i,r)}).on(A.TrackSubscriptionStatusChanged,(i,s)=>{this.emitWhenConnected(M.TrackSubscriptionStatusChanged,i,s,r)}).on(A.TrackSubscriptionFailed,(i,s)=>{this.emit(M.TrackSubscriptionFailed,i,r,s)}).on(A.TrackSubscriptionPermissionChanged,(i,s)=>{this.emitWhenConnected(M.TrackSubscriptionPermissionChanged,i,s,r)}),n&&r.updateInfo(n),r}sendSyncState(){const e=Array.from(this.remoteParticipants.values()).reduce((r,i)=>(r.push(...i.getTrackPublications()),r),[]),n=this.localParticipant.getTrackPublications();this.engine.sendSyncState(e,n)}updateSubscriptions(){for(const e of this.remoteParticipants.values())for(const n of e.videoTrackPublications.values())n.isSubscribed&&zT(n)&&n.emitTrackUpdate()}getRemoteParticipantBySid(e){const n=this.sidToIdentity.get(e);if(n)return this.remoteParticipants.get(n)}registerConnectionReconcile(){this.clearConnectionReconcile();let e=0;this.connectionReconcileInterval=He.setInterval(()=>{!this.engine||this.engine.isClosed||!this.engine.verifyTransport()?(e++,this.log.warn("detected connection state mismatch",Object.assign(Object.assign({},this.logContext),{numFailures:e,engine:this.engine?{closed:this.engine.isClosed,transportsConnected:this.engine.verifyTransport()}:void 0})),e>=3&&(this.recreateEngine(),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,Ft.STATE_MISMATCH))):e=0},B2)}clearConnectionReconcile(){this.connectionReconcileInterval&&He.clearInterval(this.connectionReconcileInterval)}setAndEmitConnectionState(e){return e===this.state?!1:(this.state=e,this.emit(M.ConnectionStateChanged,this.state),!0)}emitBufferedEvents(){this.bufferedEvents.forEach(e=>{let[n,r]=e;this.emit(n,...r)}),this.bufferedEvents=[]}emitWhenConnected(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];if(this.state===X.Reconnecting||this.isResuming||!this.engine||this.engine.pendingReconnect)this.bufferedEvents.push([e,r]);else if(this.state===X.Connected)return this.emit(e,...r);return!1}simulateParticipants(e){return S(this,void 0,void 0,function*(){var n,r;const i=Object.assign({audio:!0,video:!0,useRealTracks:!1},e.publish),s=Object.assign({count:9,audio:!1,video:!0,aspectRatios:[1.66,1.7,1.3]},e.participants);if(this.handleDisconnect(),this.roomInfo=new Fu({sid:"RM_SIMULATED",name:"simulated-room",emptyTimeout:0,maxParticipants:0,creationTime:pe.parse(new Date().getTime()),metadata:"",numParticipants:1,numPublishers:1,turnPassword:"",enabledCodecs:[],activeRecording:!1}),this.localParticipant.updateInfo(new _s({identity:"simulated-local",name:"local-name"})),this.setupLocalParticipantEvents(),this.emit(M.SignalConnected),this.emit(M.Connected),this.setAndEmitConnectionState(X.Connected),i.video){const o=new Gd(O.Kind.Video,new vi({source:Re.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:Ut.AUDIO,name:"video-dummy"}),new Ka(i.useRealTracks?(yield window.navigator.mediaDevices.getUserMedia({video:!0})).getVideoTracks()[0]:R0(160*((n=s.aspectRatios[0])!==null&&n!==void 0?n:1),160,!0,!0),void 0,!1,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(o),this.localParticipant.emit(A.LocalTrackPublished,o)}if(i.audio){const o=new Gd(O.Kind.Audio,new vi({source:Re.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:Ut.AUDIO}),new Wa(i.useRealTracks?(yield navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0]:wd(),void 0,!1,this.audioContext,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(o),this.localParticipant.emit(A.LocalTrackPublished,o)}for(let o=0;o<s.count-1;o+=1){let a=new _s({sid:Math.floor(Math.random()*1e4).toString(),identity:"simulated-".concat(o),state:Bu.ACTIVE,tracks:[],joinedAt:pe.parse(Date.now())});const l=this.getOrCreateParticipant(a.identity,a);if(s.video){const c=R0(160*((r=s.aspectRatios[o%s.aspectRatios.length])!==null&&r!==void 0?r:1),160,!1,!0),u=new vi({source:Re.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:Ut.AUDIO});l.addSubscribedMediaTrack(c,u.sid,new MediaStream([c]),new RTCRtpReceiver),a.tracks=[...a.tracks,u]}if(s.audio){const c=wd(),u=new vi({source:Re.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:Ut.AUDIO});l.addSubscribedMediaTrack(c,u.sid,new MediaStream([c]),new RTCRtpReceiver),a.tracks=[...a.tracks,u]}l.updateInfo(a)}})}emit(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];if(e!==M.ActiveSpeakersChanged&&e!==M.TranscriptionReceived){const s=ay(r).filter(o=>o!==void 0);this.log.debug("room event ".concat(e),Object.assign(Object.assign({},this.logContext),{event:e,args:s}))}return super.emit(e,...r)}}Pi.cleanupRegistry=typeof FinalizationRegistry<"u"&&new FinalizationRegistry(t=>{t()});function ay(t){return t.map(e=>{if(e)return Array.isArray(e)?ay(e):typeof e=="object"?"logContext"in e?e.logContext:void 0:e})}var qt;(function(t){t[t.IDLE=0]="IDLE",t[t.RUNNING=1]="RUNNING",t[t.SKIPPED=2]="SKIPPED",t[t.SUCCESS=3]="SUCCESS",t[t.FAILED=4]="FAILED"})(qt||(qt={}));class tr extends nn.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.status=qt.IDLE,this.logs=[],this.options={},this.url=e,this.token=n,this.name=this.constructor.name,this.room=new Pi(r.roomOptions),this.connectOptions=r.connectOptions,this.options=r}run(e){return S(this,void 0,void 0,function*(){if(this.status!==qt.IDLE)throw Error("check is running already");this.setStatus(qt.RUNNING);try{yield this.perform()}catch(n){n instanceof Error&&(this.options.errorsAsWarnings?this.appendWarning(n.message):this.appendError(n.message))}return yield this.disconnect(),yield new Promise(n=>setTimeout(n,500)),this.status!==qt.SKIPPED&&this.setStatus(this.isSuccess()?qt.SUCCESS:qt.FAILED),e&&e(),this.getInfo()})}isSuccess(){return!this.logs.some(e=>e.level==="error")}connect(e){return S(this,void 0,void 0,function*(){return this.room.state===X.Connected?this.room:(e||(e=this.url),yield this.room.connect(e,this.token,this.connectOptions),this.room)})}disconnect(){return S(this,void 0,void 0,function*(){this.room&&this.room.state!==X.Disconnected&&(yield this.room.disconnect(),yield new Promise(e=>setTimeout(e,500)))})}skip(){this.setStatus(qt.SKIPPED)}switchProtocol(e){return S(this,void 0,void 0,function*(){let n=!1,r=!1;if(this.room.on(M.Reconnecting,()=>{n=!0}),this.room.once(M.Reconnected,()=>{r=!0}),this.room.simulateScenario("force-".concat(e)),yield new Promise(s=>setTimeout(s,1e3)),!n)return;const i=Date.now()+1e4;for(;Date.now()<i;){if(r)return;yield ut(100)}throw new Error("Could not reconnect using ".concat(e," protocol after 10 seconds"))})}appendMessage(e){this.logs.push({level:"info",message:e}),this.emit("update",this.getInfo())}appendWarning(e){this.logs.push({level:"warning",message:e}),this.emit("update",this.getInfo())}appendError(e){this.logs.push({level:"error",message:e}),this.emit("update",this.getInfo())}setStatus(e){this.status=e,this.emit("update",this.getInfo())}get engine(){var e;return(e=this.room)===null||e===void 0?void 0:e.engine}getInfo(){return{logs:this.logs,name:this.name,status:this.status,description:this.description}}}class z2 extends tr{get description(){return"Cloud regions"}perform(){return S(this,void 0,void 0,function*(){const e=new $d(this.url,this.token);if(!e.isCloud()){this.skip();return}const n=[],r=new Set;for(let s=0;s<3;s++){const o=yield e.getNextBestRegionUrl();if(!o)break;if(r.has(o))continue;r.add(o);const a=yield this.checkCloudRegion(o);this.appendMessage("".concat(a.region," RTT: ").concat(a.rtt,"ms, duration: ").concat(a.duration,"ms")),n.push(a)}n.sort((s,o)=>(s.duration-o.duration)*.5+(s.rtt-o.rtt)*.5);const i=n[0];this.bestStats=i,this.appendMessage("best Cloud region: ".concat(i.region))})}getInfo(){const e=super.getInfo();return e.data=this.bestStats,e}checkCloudRegion(e){return S(this,void 0,void 0,function*(){var n,r;yield this.connect(e),this.options.protocol==="tcp"&&(yield this.switchProtocol("tcp"));const i=(n=this.room.serverInfo)===null||n===void 0?void 0:n.region;if(!i)throw new Error("Region not found");const s=yield this.room.localParticipant.streamText({topic:"test"}),o=1e3,l=1e6/o,c="A".repeat(o),u=Date.now();for(let m=0;m<l;m++)yield s.write(c);yield s.close();const d=Date.now(),h=yield(r=this.room.engine.pcManager)===null||r===void 0?void 0:r.publisher.getStats(),f={region:i,rtt:1e4,duration:d-u};return h==null||h.forEach(m=>{m.type==="candidate-pair"&&m.nominated&&(f.rtt=m.currentRoundTripTime*1e3)}),yield this.disconnect(),f})}}const Kd=1e4;class V2 extends tr{get description(){return"Connection via UDP vs TCP"}perform(){return S(this,void 0,void 0,function*(){const e=yield this.checkConnectionProtocol("udp"),n=yield this.checkConnectionProtocol("tcp");this.bestStats=e,e.qualityLimitationDurations.bandwidth-n.qualityLimitationDurations.bandwidth>.5||(e.packetsLost-n.packetsLost)/e.packetsSent>.01?(this.appendMessage("best connection quality via tcp"),this.bestStats=n):this.appendMessage("best connection quality via udp");const r=this.bestStats;this.appendMessage("upstream bitrate: ".concat((r.bitrateTotal/r.count/1e3/1e3).toFixed(2)," mbps")),this.appendMessage("RTT: ".concat((r.rttTotal/r.count*1e3).toFixed(2)," ms")),this.appendMessage("jitter: ".concat((r.jitterTotal/r.count*1e3).toFixed(2)," ms")),r.packetsLost>0&&this.appendWarning("packets lost: ".concat((r.packetsLost/r.packetsSent*100).toFixed(2),"%")),r.qualityLimitationDurations.bandwidth>1&&this.appendWarning("bandwidth limited ".concat((r.qualityLimitationDurations.bandwidth/(Kd/1e3)*100).toFixed(2),"%")),r.qualityLimitationDurations.cpu>0&&this.appendWarning("cpu limited ".concat((r.qualityLimitationDurations.cpu/(Kd/1e3)*100).toFixed(2),"%"))})}getInfo(){const e=super.getInfo();return e.data=this.bestStats,e}checkConnectionProtocol(e){return S(this,void 0,void 0,function*(){yield this.connect(),e==="tcp"?yield this.switchProtocol("tcp"):yield this.switchProtocol("udp");const n=document.createElement("canvas");n.width=1280,n.height=720;const r=n.getContext("2d");if(!r)throw new Error("Could not get canvas context");let i=0;const s=()=>{i=(i+1)%360,r.fillStyle="hsl(".concat(i,", 100%, 50%)"),r.fillRect(0,0,n.width,n.height),requestAnimationFrame(s)};s();const a=n.captureStream(30).getVideoTracks()[0],c=(yield this.room.localParticipant.publishTrack(a,{simulcast:!1,degradationPreference:"maintain-resolution",videoEncoding:{maxBitrate:2e6}})).track,u={protocol:e,packetsLost:0,packetsSent:0,qualityLimitationDurations:{},rttTotal:0,jitterTotal:0,bitrateTotal:0,count:0},d=setInterval(()=>S(this,void 0,void 0,function*(){const h=yield c.getRTCStatsReport();h==null||h.forEach(f=>{f.type==="outbound-rtp"?(u.packetsSent=f.packetsSent,u.qualityLimitationDurations=f.qualityLimitationDurations,u.bitrateTotal+=f.targetBitrate,u.count++):f.type==="remote-inbound-rtp"&&(u.packetsLost=f.packetsLost,u.rttTotal+=f.roundTripTime,u.jitterTotal+=f.jitter)})}),1e3);return yield new Promise(h=>setTimeout(h,Kd)),clearInterval(d),a.stop(),n.remove(),yield this.disconnect(),u})}}function ly(t){return S(this,void 0,void 0,function*(){var e,n;t??(t={}),(e=t.audio)!==null&&e!==void 0||(t.audio={deviceId:"default"}),(n=t.video)!==null&&n!==void 0||(t.video={deviceId:"default"});const{audioProcessor:r,videoProcessor:i}=_d(t),s=L0(t,q0,W0),o=Va(s),a=navigator.mediaDevices.getUserMedia(o);t.audio&&(Ae.userMediaPromiseMap.set("audioinput",a),a.catch(()=>Ae.userMediaPromiseMap.delete("audioinput"))),t.video&&(Ae.userMediaPromiseMap.set("videoinput",a),a.catch(()=>Ae.userMediaPromiseMap.delete("videoinput")));const l=yield a;return Promise.all(l.getTracks().map(c=>S(this,void 0,void 0,function*(){const u=c.kind==="audio";u?s.audio:s.video;let d;const h=u?o.audio:o.video;typeof h!="boolean"&&(d=h);const f=c.getSettings().deviceId;d!=null&&d.deviceId&&Yn(d.deviceId)!==f?d.deviceId=f:d||(d={deviceId:f});const m=Q0(c,d);return m.kind===O.Kind.Video?m.source=O.Source.Camera:m.kind===O.Kind.Audio&&(m.source=O.Source.Microphone),m.mediaStream=l,bn(m)&&r?yield m.setProcessor(r):Ti(m)&&i&&(yield m.setProcessor(i)),m})))})}function H2(t){return S(this,void 0,void 0,function*(){return(yield ly({audio:!1,video:t}))[0]})}function $2(t){return S(this,void 0,void 0,function*(){return(yield ly({audio:t,video:!1}))[0]})}class q2 extends tr{get description(){return"Can publish audio"}perform(){return S(this,void 0,void 0,function*(){var e;const n=yield this.connect(),r=yield $2();if(yield M0(r,1e3))throw new Error("unable to detect audio from microphone");this.appendMessage("detected audio from microphone"),n.localParticipant.publishTrack(r),yield new Promise(a=>setTimeout(a,3e3));const s=yield(e=r.sender)===null||e===void 0?void 0:e.getStats();if(!s)throw new Error("Could not get RTCStats");let o=0;if(s.forEach(a=>{a.type==="outbound-rtp"&&(a.kind==="audio"||!a.kind&&a.mediaType==="audio")&&(o=a.packetsSent)}),o===0)throw new Error("Could not determine packets are sent");this.appendMessage("published ".concat(o," audio packets"))})}}class W2 extends tr{get description(){return"Can publish video"}perform(){return S(this,void 0,void 0,function*(){var e;const n=yield this.connect(),r=yield H2();yield this.checkForVideo(r.mediaStreamTrack),n.localParticipant.publishTrack(r),yield new Promise(o=>setTimeout(o,5e3));const i=yield(e=r.sender)===null||e===void 0?void 0:e.getStats();if(!i)throw new Error("Could not get RTCStats");let s=0;if(i.forEach(o=>{o.type==="outbound-rtp"&&(o.kind==="video"||!o.kind&&o.mediaType==="video")&&(s+=o.packetsSent)}),s===0)throw new Error("Could not determine packets are sent");this.appendMessage("published ".concat(s," video packets"))})}checkForVideo(e){return S(this,void 0,void 0,function*(){const n=new MediaStream;n.addTrack(e.clone());const r=document.createElement("video");r.srcObject=n,r.muted=!0,yield new Promise(i=>{r.onplay=()=>{setTimeout(()=>{var s,o,a,l;const c=document.createElement("canvas"),u=e.getSettings(),d=(o=(s=u.width)!==null&&s!==void 0?s:r.videoWidth)!==null&&o!==void 0?o:1280,h=(l=(a=u.height)!==null&&a!==void 0?a:r.videoHeight)!==null&&l!==void 0?l:720;c.width=d,c.height=h;const f=c.getContext("2d");f.drawImage(r,0,0);const g=f.getImageData(0,0,c.width,c.height).data;let T=!0;for(let p=0;p<g.length;p+=4)if(g[p]!==0||g[p+1]!==0||g[p+2]!==0){T=!1;break}T?this.appendError("camera appears to be producing only black frames"):this.appendMessage("received video frames"),i()},1e3)},r.play()}),r.remove()})}}class G2 extends tr{get description(){return"Resuming connection after interruption"}perform(){return S(this,void 0,void 0,function*(){var e;const n=yield this.connect();let r=!1,i=!1,s;const o=new Promise(c=>{setTimeout(c,5e3),s=c}),a=()=>{r=!0};n.on(M.SignalReconnecting,a).on(M.Reconnecting,a).on(M.Reconnected,()=>{i=!0,s(!0)}),(e=n.engine.client.ws)===null||e===void 0||e.close();const l=n.engine.client.onClose;if(l&&l(""),yield o,r){if(!i||n.state!==X.Connected)throw this.appendWarning("reconnection is only possible in Redis-based configurations"),new Error("Not able to reconnect")}else throw new Error("Did not attempt to reconnect")})}}class K2 extends tr{get description(){return"Can connect via TURN"}perform(){return S(this,void 0,void 0,function*(){var e,n;const r=new Id,i=yield r.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15e3});let s=!1,o=!1,a=!1;for(let l of i.iceServers)for(let c of l.urls)c.startsWith("turn:")?(o=!0,a=!0):c.startsWith("turns:")&&(o=!0,a=!0,s=!0),c.startsWith("stun:")&&(a=!0);a?o&&!s&&this.appendWarning("TURN is configured server side, but TURN/TLS is unavailable."):this.appendWarning("No STUN servers configured on server side."),yield r.close(),!((n=(e=this.connectOptions)===null||e===void 0?void 0:e.rtcConfig)===null||n===void 0)&&n.iceServers||o?yield this.room.connect(this.url,this.token,{rtcConfig:{iceTransportPolicy:"relay"}}):(this.appendWarning("No TURN servers configured."),this.skip(),yield new Promise(l=>setTimeout(l,0)))})}}class Z2 extends tr{get description(){return"Establishing WebRTC connection"}perform(){return S(this,void 0,void 0,function*(){let e=!1,n=!1;this.room.on(M.SignalConnected,()=>{const r=this.room.engine.client.onTrickle;this.room.engine.client.onTrickle=(i,s)=>{if(i.candidate){const o=new RTCIceCandidate(i);let a="".concat(o.protocol," ").concat(o.address,":").concat(o.port," ").concat(o.type);o.address&&(Q2(o.address)?a+=" (private)":o.protocol==="tcp"&&o.tcpType==="passive"?(e=!0,a+=" (passive)"):o.protocol==="udp"&&(n=!0)),this.appendMessage(a)}r&&r(i,s)},this.room.engine.pcManager&&(this.room.engine.pcManager.subscriber.onIceCandidateError=i=>{i instanceof RTCPeerConnectionIceErrorEvent&&this.appendWarning("error with ICE candidate: ".concat(i.errorCode," ").concat(i.errorText," ").concat(i.url))})});try{yield this.connect(),K.info("now the room is connected")}catch(r){throw this.appendWarning("ports need to be open on firewall in order to connect."),r}e||this.appendWarning("Server is not configured for ICE/TCP"),n||this.appendWarning("No public IPv4 UDP candidates were found. Your server is likely not configured correctly")})}}function Q2(t){const e=t.split(".");if(e.length===4){if(e[0]==="10")return!0;if(e[0]==="192"&&e[1]==="168")return!0;if(e[0]==="172"){const n=parseInt(e[1],10);if(n>=16&&n<=31)return!0}}return!1}class Y2 extends tr{get description(){return"Connecting to signal connection via WebSocket"}perform(){return S(this,void 0,void 0,function*(){var e,n,r;(this.url.startsWith("ws:")||this.url.startsWith("http:"))&&this.appendWarning("Server is insecure, clients may block connections to it");let i=new Id;const s=yield i.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15e3});this.appendMessage("Connected to server, version ".concat(s.serverVersion,".")),((e=s.serverInfo)===null||e===void 0?void 0:e.edition)===dv.Cloud&&(!((n=s.serverInfo)===null||n===void 0)&&n.region)&&this.appendMessage("LiveKit Cloud: ".concat((r=s.serverInfo)===null||r===void 0?void 0:r.region)),yield i.close()})}}class GE extends nn.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.options={},this.checkResults=new Map,this.url=e,this.token=n,this.options=r}getNextCheckId(){const e=this.checkResults.size;return this.checkResults.set(e,{logs:[],status:qt.IDLE,name:"",description:""}),e}updateCheck(e,n){this.checkResults.set(e,n),this.emit("checkUpdate",e,n)}isSuccess(){return Array.from(this.checkResults.values()).every(e=>e.status!==qt.FAILED)}getResults(){return Array.from(this.checkResults.values())}createAndRunCheck(e){return S(this,void 0,void 0,function*(){const n=this.getNextCheckId(),r=new e(this.url,this.token,this.options),i=o=>{this.updateCheck(n,o)};r.on("update",i);const s=yield r.run();return r.off("update",i),s})}checkWebsocket(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(Y2)})}checkWebRTC(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(Z2)})}checkTURN(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(K2)})}checkReconnect(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(G2)})}checkPublishAudio(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(q2)})}checkPublishVideo(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(W2)})}checkConnectionProtocol(){return S(this,void 0,void 0,function*(){const e=yield this.createAndRunCheck(V2);if(e.data&&"protocol"in e.data){const n=e.data;this.options.protocol=n.protocol}return e})}checkCloudRegion(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(z2)})}}const cy=({active:t,handler:e})=>{const n=B.useRef(null),[r,i]=B.useState("inactive"),[s,o]=B.useState(!1),[a,l]=B.useState(!1),c=B.useCallback(()=>{var u;(u=n.current)==null||u.disconnect().catch(d=>{console.warn(d)}),n.current=null},[]);return B.useEffect(()=>{c();const u=()=>{c()};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u)}},[c]),B.useEffect(()=>{if(!t){c();return}(async()=>{try{const d=new Pi;i("pending");const h=await e.getLiveKitCredentials(),f=g=>{if(g.kind===O.Kind.Audio){const T=g.attach();l(!0);const p=()=>{l(!1),T.removeEventListener("ended",p)};T.addEventListener("ended",p),T.play().catch(v=>{console.warn(v)})}},m=g=>{o(g)};await d.prepareConnection(h.url,h.token),d.on(M.TrackSubscribed,f),d.localParticipant.on(A.IsSpeakingChanged,m),await d.connect(h.url,h.token,{autoSubscribe:!0}),await d.localParticipant.setMicrophoneEnabled(!0),await d.startAudio(),i("active")}catch(d){i("error"),console.warn(d),e.terminateLiveKitCall().catch(h=>{console.warn(h)})}})()},[t,c,i,e,o,l]),{roomState:r,isUserSpeaking:s,isApplicationSpeaking:a}},J2=({handler:t,className:e})=>{const[n,r]=B.useState(!1),{roomState:i,isUserSpeaking:s,isApplicationSpeaking:o}=cy({active:n,handler:t});return b.jsxs("div",{className:te("relative flex flex-col items-center justify-center",e),children:[b.jsxs("div",{className:"rounded-full w-fit relative",children:[b.jsx("div",{className:"bg-[rgb(40,41,47)] w-[128px] h-[128px] p-4 z-10 relative rounded-full",children:b.jsx(fa,{className:"w-full h-full text-[rgb(134,135,138)]"})}),n&&o?b.jsx(Lu,{className:"rounded-full"}):null]}),b.jsxs("div",{className:"w-fit flex-none absolute bottom-4 left-1/2 transform -translate-x-1/2",children:[n&&s?b.jsx(Lu,{className:"rounded-inner"}):null,b.jsx(jt,{Icon:Ou,label:"Voice",type:n?i==="error"?"error":"activated":"ghost",onClick:i==="pending"?void 0:()=>{r(a=>!a)}})]})]})},As=({onClick:t,label:e,type:n="ghost",Icon:r,className:i})=>b.jsxs("button",{onClick:t,disabled:t==null,className:te("relative z-10 w-full px-5 py-4 transition-colors rounded-outer flex justify-between items-center focus:outline-0 overflow-hidden before:content-[''] before:absolute before:transition-colors before:-z-10 before:inset-0 before:bg-transparent",{"bg-primary-80 text-secondary-80 enabled:hover:before:bg-primary-80 focus:before:bg-primary-80 enabled:active:before:bg-secondary-10 disabled:bg-primary-10 disabled:text-secondary-40":n==="main","bg-primary-5 text-primary-80 enabled:hover:before:bg-primary-5 focus:before:bg-primary-5 enabled:active:before:bg-secondary-10 disabled:bg-primary-5 disabled:text-primary-20":n==="ghost"},i),children:[e,b.jsx(r,{size:16})]}),X2=({onClose:t,handler:e,className:n})=>b.jsxs("div",{className:te("p-2 md:p-3 flex flex-col flex-grow justify-center gap-2",n),children:[b.jsx(As,{label:"Restart conversation",Icon:vg,type:"ghost",onClick:()=>{e.reset({clearResponses:!0}),e.sendWelcomeIntent(),t()}}),b.jsx(As,{label:"Talk to an agent",Icon:gg,type:"ghost",onClick:()=>{e.sendIntent("NLX.Escalation"),t()}})]});function Zd(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let Rr=Zd();function uy(t){Rr=t}const js={exec:()=>null};function le(t,e=""){let n=typeof t=="string"?t:t.source;const r={replace:(i,s)=>{let o=typeof s=="string"?s:s.source;return o=o.replace(et.caret,"$1"),n=n.replace(i,o),r},getRegex:()=>new RegExp(n,e)};return r}const et={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},ex=/^(?:[ \t]*(?:\n|$))+/,tx=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,nx=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Us=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,rx=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,dy=/(?:[*+-]|\d{1,9}[.)])/,hy=le(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,dy).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),Qd=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,ix=/^[^\n]+/,Yd=/(?!\s*\])(?:\\.|[^\[\]\\])+/,sx=le(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Yd).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ox=le(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,dy).getRegex(),Ya="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Jd=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ax=le("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Jd).replace("tag",Ya).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),fy=le(Qd).replace("hr",Us).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ya).getRegex(),Xd={blockquote:le(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",fy).getRegex(),code:tx,def:sx,fences:nx,heading:rx,hr:Us,html:ax,lheading:hy,list:ox,newline:ex,paragraph:fy,table:js,text:ix},py=le("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Us).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ya).getRegex(),lx={...Xd,table:py,paragraph:le(Qd).replace("hr",Us).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",py).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ya).getRegex()},cx={...Xd,html:le(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Jd).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:js,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:le(Qd).replace("hr",Us).replace("heading",` *#{1,6} *[^
|
|
97
|
+
`},Nd}var z0;function s2(){if(z0)return Ht;z0=1;var t=r2(),e=i2(),n=Md();return Ht.grammar=n,Ht.write=e,Ht.parse=t.parse,Ht.parseParams=t.parseParams,Ht.parseFmtpConfig=t.parseFmtpConfig,Ht.parsePayloads=t.parsePayloads,Ht.parseRemoteCandidates=t.parseRemoteCandidates,Ht.parseImageAttributes=t.parseImageAttributes,Ht.parseSimulcastStreamList=t.parseSimulcastStreamList,Ht}var Xn=s2();function Dd(t,e,n){var r,i,s;e===void 0&&(e=50),n===void 0&&(n={});var o=(r=n.isImmediate)!=null&&r,a=(i=n.callback)!=null&&i,l=n.maxWait,c=Date.now(),u=[];function d(){if(l!==void 0){var f=Date.now()-c;if(f+e>=l)return l-f}return e}var h=function(){var f=[].slice.call(arguments),m=this;return new Promise(function(g,T){var p=o&&s===void 0;if(s!==void 0&&clearTimeout(s),s=setTimeout(function(){if(s=void 0,c=Date.now(),!o){var y=t.apply(m,f);a&&a(y),u.forEach(function(k){return(0,k.resolve)(y)}),u=[]}},d()),p){var v=t.apply(m,f);return a&&a(v),g(v)}u.push({resolve:g,reject:T})})};return h.cancel=function(f){s!==void 0&&clearTimeout(s),u.forEach(function(m){return(0,m.reject)(f)}),u=[]},h}const o2=.7,a2=20,xi={NegotiationStarted:"negotiationStarted",NegotiationComplete:"negotiationComplete",RTPVideoPayloadTypes:"rtpVideoPayloadTypes"};class V0 extends nn.EventEmitter{get pc(){return this._pc||(this._pc=this.createPC()),this._pc}constructor(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r;super(),this.log=K,this.ddExtID=0,this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate=!1,this.trackBitrates=[],this.remoteStereoMids=[],this.remoteNackMids=[],this.negotiate=Dd(i=>S(this,void 0,void 0,function*(){this.emit(xi.NegotiationStarted);try{yield this.createAndSendOffer()}catch(s){if(i)i(s);else throw s}}),a2),this.close=()=>{this._pc&&(this._pc.close(),this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.ondatachannel=null,this._pc.onnegotiationneeded=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ondatachannel=null,this._pc.ontrack=null,this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc=null)},this.log=yn((r=n.loggerName)!==null&&r!==void 0?r:zt.PCTransport),this.loggerOptions=n,this.config=e,this._pc=this.createPC()}createPC(){const e=new RTCPeerConnection(this.config);return e.onicecandidate=n=>{var r;n.candidate&&((r=this.onIceCandidate)===null||r===void 0||r.call(this,n.candidate))},e.onicecandidateerror=n=>{var r;(r=this.onIceCandidateError)===null||r===void 0||r.call(this,n)},e.oniceconnectionstatechange=()=>{var n;(n=this.onIceConnectionStateChange)===null||n===void 0||n.call(this,e.iceConnectionState)},e.onsignalingstatechange=()=>{var n;(n=this.onSignalingStatechange)===null||n===void 0||n.call(this,e.signalingState)},e.onconnectionstatechange=()=>{var n;(n=this.onConnectionStateChange)===null||n===void 0||n.call(this,e.connectionState)},e.ondatachannel=n=>{var r;(r=this.onDataChannel)===null||r===void 0||r.call(this,n)},e.ontrack=n=>{var r;(r=this.onTrack)===null||r===void 0||r.call(this,n)},e}get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions).loggerContextCb)===null||n===void 0?void 0:n.call(e))}get isICEConnected(){return this._pc!==null&&(this.pc.iceConnectionState==="connected"||this.pc.iceConnectionState==="completed")}addIceCandidate(e){return S(this,void 0,void 0,function*(){if(this.pc.remoteDescription&&!this.restartingIce)return this.pc.addIceCandidate(e);this.pendingCandidates.push(e)})}setRemoteDescription(e){return S(this,void 0,void 0,function*(){var n;let r;if(e.type==="offer"){let{stereoMids:i,nackMids:s}=l2(e);this.remoteStereoMids=i,this.remoteNackMids=s}else if(e.type==="answer"){const i=Xn.parse((n=e.sdp)!==null&&n!==void 0?n:"");i.media.forEach(s=>{s.type==="audio"&&this.trackBitrates.some(o=>{if(!o.transceiver||s.mid!=o.transceiver.mid)return!1;let a=0;if(s.rtp.some(c=>c.codec.toUpperCase()===o.codec.toUpperCase()?(a=c.payload,!0):!1),a===0)return!0;let l=!1;for(const c of s.fmtp)if(c.payload===a){c.config=c.config.split(";").filter(u=>!u.includes("maxaveragebitrate")).join(";"),o.maxbr>0&&(c.config+=";maxaveragebitrate=".concat(o.maxbr*1e3)),l=!0;break}return l||o.maxbr>0&&s.fmtp.push({payload:a,config:"maxaveragebitrate=".concat(o.maxbr*1e3)}),!0})}),r=Xn.write(i)}yield this.setMungedSDP(e,r,!0),this.pendingCandidates.forEach(i=>{this.pc.addIceCandidate(i)}),this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate?(this.renegotiate=!1,yield this.createAndSendOffer()):e.type==="answer"&&(this.emit(xi.NegotiationComplete),e.sdp&&Xn.parse(e.sdp).media.forEach(s=>{s.type==="video"&&this.emit(xi.RTPVideoPayloadTypes,s.rtp)}))})}createAndSendOffer(e){return S(this,void 0,void 0,function*(){var n;if(this.onOffer===void 0)return;if(e!=null&&e.iceRestart&&(this.log.debug("restarting ICE",this.logContext),this.restartingIce=!0),this._pc&&this._pc.signalingState==="have-local-offer"){const s=this._pc.remoteDescription;if(e!=null&&e.iceRestart&&s)yield this._pc.setRemoteDescription(s);else{this.renegotiate=!0;return}}else if(!this._pc||this._pc.signalingState==="closed"){this.log.warn("could not createOffer with closed peer connection",this.logContext);return}this.log.debug("starting to negotiate",this.logContext);const r=yield this.pc.createOffer(e);this.log.debug("original offer",Object.assign({sdp:r.sdp},this.logContext));const i=Xn.parse((n=r.sdp)!==null&&n!==void 0?n:"");i.media.forEach(s=>{$0(s),s.type==="audio"?H0(s,[],[]):s.type==="video"&&this.trackBitrates.some(o=>{if(!s.msid||!o.cid||!s.msid.includes(o.cid))return!1;let a=0;if(s.rtp.some(c=>c.codec.toUpperCase()===o.codec.toUpperCase()?(a=c.payload,!0):!1),a===0||(Ls(o.codec)&&this.ensureVideoDDExtensionForSVC(s,i),o.codec!=="av1"))return!0;const l=Math.round(o.maxbr*o2);for(const c of s.fmtp)if(c.payload===a){c.config.includes("x-google-start-bitrate")||(c.config+=";x-google-start-bitrate=".concat(l));break}return!0})}),yield this.setMungedSDP(r,Xn.write(i)),this.onOffer(r)})}createAndSetAnswer(){return S(this,void 0,void 0,function*(){var e;const n=yield this.pc.createAnswer(),r=Xn.parse((e=n.sdp)!==null&&e!==void 0?e:"");return r.media.forEach(i=>{$0(i),i.type==="audio"&&H0(i,this.remoteStereoMids,this.remoteNackMids)}),yield this.setMungedSDP(n,Xn.write(r)),n})}createDataChannel(e,n){return this.pc.createDataChannel(e,n)}addTransceiver(e,n){return this.pc.addTransceiver(e,n)}addTrack(e){if(!this._pc)throw new Me("PC closed, cannot add track");return this._pc.addTrack(e)}setTrackCodecBitrate(e){this.trackBitrates.push(e)}setConfiguration(e){var n;if(!this._pc)throw new Me("PC closed, cannot configure");return(n=this._pc)===null||n===void 0?void 0:n.setConfiguration(e)}canRemoveTrack(){var e;return!!(!((e=this._pc)===null||e===void 0)&&e.removeTrack)}removeTrack(e){var n;return(n=this._pc)===null||n===void 0?void 0:n.removeTrack(e)}getConnectionState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.connectionState)!==null&&n!==void 0?n:"closed"}getICEConnectionState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.iceConnectionState)!==null&&n!==void 0?n:"closed"}getSignallingState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.signalingState)!==null&&n!==void 0?n:"closed"}getTransceivers(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.getTransceivers())!==null&&n!==void 0?n:[]}getSenders(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.getSenders())!==null&&n!==void 0?n:[]}getLocalDescription(){var e;return(e=this._pc)===null||e===void 0?void 0:e.localDescription}getRemoteDescription(){var e;return(e=this.pc)===null||e===void 0?void 0:e.remoteDescription}getStats(){return this.pc.getStats()}getConnectedAddress(){return S(this,void 0,void 0,function*(){var e;if(!this._pc)return;let n="";const r=new Map,i=new Map;if((yield this._pc.getStats()).forEach(a=>{switch(a.type){case"transport":n=a.selectedCandidatePairId;break;case"candidate-pair":n===""&&a.selected&&(n=a.id),r.set(a.id,a);break;case"remote-candidate":i.set(a.id,"".concat(a.address,":").concat(a.port));break}}),n==="")return;const o=(e=r.get(n))===null||e===void 0?void 0:e.remoteCandidateId;if(o!==void 0)return i.get(o)})}setMungedSDP(e,n,r){return S(this,void 0,void 0,function*(){if(n){const i=e.sdp;e.sdp=n;try{this.log.debug("setting munged ".concat(r?"remote":"local"," description"),this.logContext),r?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e);return}catch(s){this.log.warn("not able to set ".concat(e.type,", falling back to unmodified sdp"),Object.assign(Object.assign({},this.logContext),{error:s,sdp:n})),e.sdp=i}}try{r?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e)}catch(i){let s="unknown error";i instanceof Error?s=i.message:typeof i=="string"&&(s=i);const o={error:s,sdp:e.sdp};throw!r&&this.pc.remoteDescription&&(o.remoteSdp=this.pc.remoteDescription),this.log.error("unable to set ".concat(e.type),Object.assign(Object.assign({},this.logContext),{fields:o})),new dd(s)}})}ensureVideoDDExtensionForSVC(e,n){var r,i;if(!((r=e.ext)===null||r===void 0?void 0:r.some(o=>o.uri===S0))){if(this.ddExtID===0){let o=0;n.media.forEach(a=>{var l;a.type==="video"&&((l=a.ext)===null||l===void 0||l.forEach(c=>{c.value>o&&(o=c.value)}))}),this.ddExtID=o+1}(i=e.ext)===null||i===void 0||i.push({value:this.ddExtID,uri:S0})}}}function H0(t,e,n){let r=0;t.rtp.some(i=>i.codec==="opus"?(r=i.payload,!0):!1),r>0&&(t.rtcpFb||(t.rtcpFb=[]),n.includes(t.mid)&&!t.rtcpFb.some(i=>i.payload===r&&i.type==="nack")&&t.rtcpFb.push({payload:r,type:"nack"}),e.includes(t.mid)&&t.fmtp.some(i=>i.payload===r?(i.config.includes("stereo=1")||(i.config+=";stereo=1"),!0):!1))}function l2(t){var e;const n=[],r=[],i=Xn.parse((e=t.sdp)!==null&&e!==void 0?e:"");let s=0;return i.media.forEach(o=>{var a;o.type==="audio"&&(o.rtp.some(l=>l.codec==="opus"?(s=l.payload,!0):!1),!((a=o.rtcpFb)===null||a===void 0)&&a.some(l=>l.payload===s&&l.type==="nack")&&r.push(o.mid),o.fmtp.some(l=>l.payload===s?(l.config.includes("sprop-stereo=1")&&n.push(o.mid),!0):!1))}),{stereoMids:n,nackMids:r}}function $0(t){if(t.connection){const e=t.connection.ip.indexOf(":")>=0;(t.connection.version===4&&e||t.connection.version===6&&!e)&&(t.connection.ip="0.0.0.0",t.connection.version=4)}}const Ad="vp8",c2={audioPreset:pd.music,dtx:!0,red:!0,forceStereo:!1,simulcast:!0,screenShareEncoding:gd.h1080fps15.encoding,stopMicTrackOnMute:!1,videoCodec:Ad,backupCodec:!0},q0={deviceId:"default",autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,voiceIsolation:!0},W0={deviceId:"default",resolution:Os.h720.resolution},u2={adaptiveStream:!1,dynacast:!1,stopLocalTrackOnUnpublish:!0,reconnectPolicy:new tT,disconnectOnPageLeave:!0,webAudioMix:!1},jd={autoSubscribe:!0,maxRetries:1,peerConnectionTimeout:15e3,websocketTimeout:15e3};var we;(function(t){t[t.NEW=0]="NEW",t[t.CONNECTING=1]="CONNECTING",t[t.CONNECTED=2]="CONNECTED",t[t.FAILED=3]="FAILED",t[t.CLOSING=4]="CLOSING",t[t.CLOSED=5]="CLOSED"})(we||(we={}));class d2{get needsPublisher(){return this.isPublisherConnectionRequired}get needsSubscriber(){return this.isSubscriberConnectionRequired}get currentState(){return this.state}constructor(e,n,r){var i;this.peerConnectionTimeout=jd.peerConnectionTimeout,this.log=K,this.updateState=()=>{var s;const o=this.state,a=this.requiredTransports.map(l=>l.getConnectionState());a.every(l=>l==="connected")?this.state=we.CONNECTED:a.some(l=>l==="failed")?this.state=we.FAILED:a.some(l=>l==="connecting")?this.state=we.CONNECTING:a.every(l=>l==="closed")?this.state=we.CLOSED:a.some(l=>l==="closed")?this.state=we.CLOSING:a.every(l=>l==="new")&&(this.state=we.NEW),o!==this.state&&(this.log.debug("pc state change: from ".concat(we[o]," to ").concat(we[this.state]),this.logContext),(s=this.onStateChange)===null||s===void 0||s.call(this,this.state,this.publisher.getConnectionState(),this.subscriber.getConnectionState()))},this.log=yn((i=r.loggerName)!==null&&i!==void 0?i:zt.PCManager),this.loggerOptions=r,this.isPublisherConnectionRequired=!n,this.isSubscriberConnectionRequired=n,this.publisher=new V0(e,r),this.subscriber=new V0(e,r),this.publisher.onConnectionStateChange=this.updateState,this.subscriber.onConnectionStateChange=this.updateState,this.publisher.onIceConnectionStateChange=this.updateState,this.subscriber.onIceConnectionStateChange=this.updateState,this.publisher.onSignalingStatechange=this.updateState,this.subscriber.onSignalingStatechange=this.updateState,this.publisher.onIceCandidate=s=>{var o;(o=this.onIceCandidate)===null||o===void 0||o.call(this,s,Bt.PUBLISHER)},this.subscriber.onIceCandidate=s=>{var o;(o=this.onIceCandidate)===null||o===void 0||o.call(this,s,Bt.SUBSCRIBER)},this.subscriber.onDataChannel=s=>{var o;(o=this.onDataChannel)===null||o===void 0||o.call(this,s)},this.subscriber.onTrack=s=>{var o;(o=this.onTrack)===null||o===void 0||o.call(this,s)},this.publisher.onOffer=s=>{var o;(o=this.onPublisherOffer)===null||o===void 0||o.call(this,s)},this.state=we.NEW,this.connectionLock=new yt,this.remoteOfferLock=new yt}get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions).loggerContextCb)===null||n===void 0?void 0:n.call(e))}requirePublisher(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isPublisherConnectionRequired=e,this.updateState()}requireSubscriber(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isSubscriberConnectionRequired=e,this.updateState()}createAndSendPublisherOffer(e){return this.publisher.createAndSendOffer(e)}setPublisherAnswer(e){return this.publisher.setRemoteDescription(e)}removeTrack(e){return this.publisher.removeTrack(e)}close(){return S(this,void 0,void 0,function*(){if(this.publisher&&this.publisher.getSignallingState()!=="closed"){const e=this.publisher;for(const n of e.getSenders())try{e.canRemoveTrack()&&e.removeTrack(n)}catch(r){this.log.warn("could not removeTrack",Object.assign(Object.assign({},this.logContext),{error:r}))}}yield Promise.all([this.publisher.close(),this.subscriber.close()]),this.updateState()})}triggerIceRestart(){return S(this,void 0,void 0,function*(){this.subscriber.restartingIce=!0,this.needsPublisher&&(yield this.createAndSendPublisherOffer({iceRestart:!0}))})}addIceCandidate(e,n){return S(this,void 0,void 0,function*(){n===Bt.PUBLISHER?yield this.publisher.addIceCandidate(e):yield this.subscriber.addIceCandidate(e)})}createSubscriberAnswerFromOffer(e){return S(this,void 0,void 0,function*(){this.log.debug("received server offer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type,sdp:e.sdp,signalingState:this.subscriber.getSignallingState().toString()}));const n=yield this.remoteOfferLock.lock();try{return yield this.subscriber.setRemoteDescription(e),yield this.subscriber.createAndSetAnswer()}finally{n()}})}updateConfiguration(e,n){this.publisher.setConfiguration(e),this.subscriber.setConfiguration(e),n&&this.triggerIceRestart()}ensurePCTransportConnection(e,n){return S(this,void 0,void 0,function*(){var r;const i=yield this.connectionLock.lock();try{this.isPublisherConnectionRequired&&this.publisher.getConnectionState()!=="connected"&&this.publisher.getConnectionState()!=="connecting"&&(this.log.debug("negotiation required, start negotiating",this.logContext),this.publisher.negotiate()),yield Promise.all((r=this.requiredTransports)===null||r===void 0?void 0:r.map(s=>this.ensureTransportConnected(s,e,n)))}finally{i()}})}negotiate(e){return S(this,void 0,void 0,function*(){return new Promise((n,r)=>S(this,void 0,void 0,function*(){const i=setTimeout(()=>{r("negotiation timed out")},this.peerConnectionTimeout),s=()=>{clearTimeout(i),r("negotiation aborted")};e.signal.addEventListener("abort",s),this.publisher.once(xi.NegotiationStarted,()=>{e.signal.aborted||this.publisher.once(xi.NegotiationComplete,()=>{clearTimeout(i),n()})}),yield this.publisher.negotiate(o=>{clearTimeout(i),r(o)})}))})}addPublisherTransceiver(e,n){return this.publisher.addTransceiver(e,n)}addPublisherTrack(e){return this.publisher.addTrack(e)}createPublisherDataChannel(e,n){return this.publisher.createDataChannel(e,n)}getConnectedAddress(e){return e===Bt.PUBLISHER?this.publisher.getConnectedAddress():e===Bt.SUBSCRIBER?this.publisher.getConnectedAddress():this.requiredTransports[0].getConnectedAddress()}get requiredTransports(){const e=[];return this.isPublisherConnectionRequired&&e.push(this.publisher),this.isSubscriberConnectionRequired&&e.push(this.subscriber),e}ensureTransportConnected(e,n){return S(this,arguments,void 0,function(r,i){var s=this;let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.peerConnectionTimeout;return function*(){if(r.getConnectionState()!=="connected")return new Promise((l,c)=>S(s,void 0,void 0,function*(){const u=()=>{this.log.warn("abort transport connection",this.logContext),He.clearTimeout(d),c(new ce("room connection has been cancelled",Z.Cancelled))};i!=null&&i.signal.aborted&&u(),i==null||i.signal.addEventListener("abort",u);const d=He.setTimeout(()=>{i==null||i.signal.removeEventListener("abort",u),c(new ce("could not establish pc connection",Z.InternalError))},o);for(;this.state!==we.CONNECTED;)if(yield ut(50),i!=null&&i.signal.aborted){c(new ce("room connection has been cancelled",Z.Cancelled));return}He.clearTimeout(d),i==null||i.signal.removeEventListener("abort",u),l()}))}()})}}class Te extends Error{constructor(e,n,r){super(n),this.code=e,this.message=K0(n,Te.MAX_MESSAGE_BYTES),this.data=r?K0(r,Te.MAX_DATA_BYTES):void 0}static fromProto(e){return new Te(e.code,e.message,e.data)}toProto(){return new cv({code:this.code,message:this.message,data:this.data})}static builtIn(e,n){return new Te(Te.ErrorCode[e],Te.ErrorMessage[e],n)}}Te.MAX_MESSAGE_BYTES=256,Te.MAX_DATA_BYTES=15360,Te.ErrorCode={APPLICATION_ERROR:1500,CONNECTION_TIMEOUT:1501,RESPONSE_TIMEOUT:1502,RECIPIENT_DISCONNECTED:1503,RESPONSE_PAYLOAD_TOO_LARGE:1504,SEND_FAILED:1505,UNSUPPORTED_METHOD:1400,RECIPIENT_NOT_FOUND:1401,REQUEST_PAYLOAD_TOO_LARGE:1402,UNSUPPORTED_SERVER:1403,UNSUPPORTED_VERSION:1404},Te.ErrorMessage={APPLICATION_ERROR:"Application error in method handler",CONNECTION_TIMEOUT:"Connection timeout",RESPONSE_TIMEOUT:"Response timeout",RECIPIENT_DISCONNECTED:"Recipient disconnected",RESPONSE_PAYLOAD_TOO_LARGE:"Response payload too large",SEND_FAILED:"Failed to send",UNSUPPORTED_METHOD:"Method not supported at destination",RECIPIENT_NOT_FOUND:"Recipient not found",REQUEST_PAYLOAD_TOO_LARGE:"Request payload too large",UNSUPPORTED_SERVER:"RPC not supported by server",UNSUPPORTED_VERSION:"Unsupported RPC version"};const G0=15360;function Ud(t){return new TextEncoder().encode(t).length}function K0(t,e){if(Ud(t)<=e)return t;let n=0,r=t.length;const i=new TextEncoder;for(;n<r;){const s=Math.floor((n+r+1)/2);i.encode(t.slice(0,s)).length<=e?n=s:r=s-1}return t.slice(0,n)}const Fd=2e3;function qa(t,e){if(!e)return 0;let n,r;return"bytesReceived"in t?(n=t.bytesReceived,r=e.bytesReceived):"bytesSent"in t&&(n=t.bytesSent,r=e.bytesSent),n===void 0||r===void 0||t.timestamp===void 0||e.timestamp===void 0?0:(n-r)*8*1e3/(t.timestamp-e.timestamp)}const h2=1e3;class Z0 extends O{get sender(){return this._sender}set sender(e){this._sender=e}get constraints(){return this._constraints}constructor(e,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,s=arguments.length>4?arguments[4]:void 0;super(e,n,s),this.manuallyStopped=!1,this._isUpstreamPaused=!1,this.handleTrackMuteEvent=()=>this.debouncedTrackMuteHandler().catch(()=>this.log.debug("track mute bounce got cancelled by an unmute event",this.logContext)),this.debouncedTrackMuteHandler=Dd(()=>S(this,void 0,void 0,function*(){yield this.pauseUpstream()}),5e3),this.handleTrackUnmuteEvent=()=>S(this,void 0,void 0,function*(){this.debouncedTrackMuteHandler.cancel("unmute"),yield this.resumeUpstream()}),this.handleEnded=()=>{this.isInBackground&&(this.reacquireTrack=!0),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),this.emit(N.Ended,this)},this.reacquireTrack=!1,this.providedByUser=i,this.muteLock=new yt,this.pauseUpstreamLock=new yt,this.processorLock=new yt,this.restartLock=new yt,this.setMediaStreamTrack(e,!0),this._constraints=e.getConstraints(),r&&(this._constraints=r)}get id(){return this._mediaStreamTrack.id}get dimensions(){if(this.kind!==O.Kind.Video)return;const{width:e,height:n}=this._mediaStreamTrack.getSettings();if(e&&n)return{width:e,height:n}}get isUpstreamPaused(){return this._isUpstreamPaused}get isUserProvided(){return this.providedByUser}get mediaStreamTrack(){var e,n;return(n=(e=this.processor)===null||e===void 0?void 0:e.processedTrack)!==null&&n!==void 0?n:this._mediaStreamTrack}get isLocal(){return!0}getSourceTrackSettings(){return this._mediaStreamTrack.getSettings()}setMediaStreamTrack(e,n){return S(this,void 0,void 0,function*(){var r;if(e===this._mediaStreamTrack&&!n)return;this._mediaStreamTrack&&(this.attachedElements.forEach(s=>{Ci(this._mediaStreamTrack,s)}),this.debouncedTrackMuteHandler.cancel("new-track"),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent)),this.mediaStream=new MediaStream([e]),e&&(e.addEventListener("ended",this.handleEnded),e.addEventListener("mute",this.handleTrackMuteEvent),e.addEventListener("unmute",this.handleTrackUnmuteEvent),this._constraints=e.getConstraints());let i;if(this.processor&&e){const s=yield this.processorLock.lock();try{if(this.log.debug("restarting processor",this.logContext),this.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");this.processorElement&&(bi(e,this.processorElement),this.processorElement.muted=!0),yield this.processor.restart({track:e,kind:this.kind,element:this.processorElement}),i=this.processor.processedTrack}finally{s()}}this.sender&&((r=this.sender.transport)===null||r===void 0?void 0:r.state)!=="closed"&&(yield this.sender.replaceTrack(i??e)),!this.providedByUser&&this._mediaStreamTrack!==e&&this._mediaStreamTrack.stop(),this._mediaStreamTrack=e,e&&(this._mediaStreamTrack.enabled=!this.isMuted,yield this.resumeUpstream(),this.attachedElements.forEach(s=>{bi(i??e,s)}))})}waitForDimensions(){return S(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:h2;return function*(){var r;if(e.kind===O.Kind.Audio)throw new Error("cannot get dimensions for audio tracks");((r=Vt())===null||r===void 0?void 0:r.os)==="iOS"&&(yield ut(10));const i=Date.now();for(;Date.now()-i<n;){const s=e.dimensions;if(s)return s;yield ut(50)}throw new kn("unable to get track dimensions after timeout")}()})}setDeviceId(e){return S(this,void 0,void 0,function*(){return this._constraints.deviceId===e&&this._mediaStreamTrack.getSettings().deviceId===Yn(e)||(this._constraints.deviceId=e,this.isMuted)?!0:(yield this.restartTrack(),Yn(e)===this._mediaStreamTrack.getSettings().deviceId)})}getDeviceId(){return S(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){if(e.source===O.Source.ScreenShare)return;const{deviceId:r,groupId:i}=e._mediaStreamTrack.getSettings(),s=e.kind===O.Kind.Audio?"audioinput":"videoinput";return n?Ae.getInstance().normalizeDeviceId(s,r,i):r}()})}mute(){return S(this,void 0,void 0,function*(){return this.setTrackMuted(!0),this})}unmute(){return S(this,void 0,void 0,function*(){return this.setTrackMuted(!1),this})}replaceTrack(e,n){return S(this,void 0,void 0,function*(){if(!this.sender)throw new kn("unable to replace an unpublished track");let r,i;return typeof n=="boolean"?r=n:n!==void 0&&(r=n.userProvidedTrack,i=n.stopProcessor),this.providedByUser=r??!0,this.log.debug("replace MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(e),i&&this.processor&&(yield this.stopProcessor()),this})}restart(e){return S(this,void 0,void 0,function*(){this.manuallyStopped=!1;const n=yield this.restartLock.lock();try{e||(e=this._constraints);const{deviceId:r,facingMode:i}=e,s=nT(e,["deviceId","facingMode"]);this.log.debug("restarting track with constraints",Object.assign(Object.assign({},this.logContext),{constraints:e}));const o={audio:!1,video:!1};this.kind===O.Kind.Video?o.video=r||i?{deviceId:r,facingMode:i}:!0:o.audio=r?{deviceId:r}:!0,this.attachedElements.forEach(c=>{Ci(this.mediaStreamTrack,c)}),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.stop();const l=(yield navigator.mediaDevices.getUserMedia(o)).getTracks()[0];return yield l.applyConstraints(s),l.addEventListener("ended",this.handleEnded),this.log.debug("re-acquired MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(l),this._constraints=e,this.emit(N.Restarted,this),this.manuallyStopped&&(this.log.warn("track was stopped during a restart, stopping restarted track",this.logContext),this.stop()),this}finally{n()}})}setTrackMuted(e){this.log.debug("setting ".concat(this.kind," track ").concat(e?"muted":"unmuted"),this.logContext),!(this.isMuted===e&&this._mediaStreamTrack.enabled!==e)&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?N.Muted:N.Unmuted,this))}get needsReAcquisition(){return this._mediaStreamTrack.readyState!=="live"||this._mediaStreamTrack.muted||!this._mediaStreamTrack.enabled||this.reacquireTrack}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return S(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),w0()&&(this.log.debug("visibility changed, is in Background: ".concat(this.isInBackground),this.logContext),!this.isInBackground&&this.needsReAcquisition&&!this.isUserProvided&&!this.isMuted&&(this.log.debug("track needs to be reacquired, restarting ".concat(this.source),this.logContext),yield this.restart(),this.reacquireTrack=!1))})}stop(){var e;this.manuallyStopped=!0,super.stop(),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),(e=this.processor)===null||e===void 0||e.destroy(),this.processor=void 0}pauseUpstream(){return S(this,void 0,void 0,function*(){var e;const n=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!0)return;if(!this.sender){this.log.warn("unable to pause upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!0,this.emit(N.UpstreamPaused,this);const r=Vt();if((r==null?void 0:r.name)==="Safari"&&Er(r.version,"12.0")<0)throw new ud("pauseUpstream is not supported on Safari < 12.");((e=this.sender.transport)===null||e===void 0?void 0:e.state)!=="closed"&&(yield this.sender.replaceTrack(null))}finally{n()}})}resumeUpstream(){return S(this,void 0,void 0,function*(){var e;const n=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!1)return;if(!this.sender){this.log.warn("unable to resume upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!1,this.emit(N.UpstreamResumed,this),((e=this.sender.transport)===null||e===void 0?void 0:e.state)!=="closed"&&(yield this.sender.replaceTrack(this.mediaStreamTrack))}finally{n()}})}getRTCStatsReport(){return S(this,void 0,void 0,function*(){var e;return!((e=this.sender)===null||e===void 0)&&e.getStats?yield this.sender.getStats():void 0})}setProcessor(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var s;const o=yield r.processorLock.lock();try{r.log.debug("setting up processor",r.logContext);const a=document.createElement(r.kind),l={kind:r.kind,track:r._mediaStreamTrack,element:a,audioContext:r.audioContext};if(yield n.init(l),r.log.debug("processor initialized",r.logContext),r.processor&&(yield r.stopProcessor()),r.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");if(bi(r._mediaStreamTrack,a),a.muted=!0,a.play().catch(c=>r.log.error("failed to play processor element",Object.assign(Object.assign({},r.logContext),{error:c}))),r.processor=n,r.processorElement=a,r.processor.processedTrack){for(const c of r.attachedElements)c!==r.processorElement&&i&&(Ci(r._mediaStreamTrack,c),bi(r.processor.processedTrack,c));yield(s=r.sender)===null||s===void 0?void 0:s.replaceTrack(r.processor.processedTrack)}r.emit(N.TrackProcessorUpdate,r.processor)}finally{o()}}()})}getProcessor(){return this.processor}stopProcessor(){return S(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var r,i;e.processor&&(e.log.debug("stopping processor",e.logContext),(r=e.processor.processedTrack)===null||r===void 0||r.stop(),yield e.processor.destroy(),e.processor=void 0,n||((i=e.processorElement)===null||i===void 0||i.remove(),e.processorElement=void 0),yield e._mediaStreamTrack.applyConstraints(e._constraints),yield e.setMediaStreamTrack(e._mediaStreamTrack,!0),e.emit(N.TrackProcessorUpdate))}()})}}class Wa extends Z0{get enhancedNoiseCancellation(){return this.isKrispNoiseFilterEnabled}constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=arguments.length>3?arguments[3]:void 0,s=arguments.length>4?arguments[4]:void 0;super(e,O.Kind.Audio,n,r,s),this.stopOnMute=!1,this.isKrispNoiseFilterEnabled=!1,this.monitorSender=()=>S(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let o;try{o=yield this.getSenderStats()}catch(a){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:a}));return}o&&this.prevStats&&(this._currentBitrate=qa(o,this.prevStats)),this.prevStats=o}),this.handleKrispNoiseFilterEnable=()=>{this.isKrispNoiseFilterEnabled=!0,this.log.debug("Krisp noise filter enabled",this.logContext),this.emit(N.AudioTrackFeatureUpdate,this,en.TF_ENHANCED_NOISE_CANCELLATION,!0)},this.handleKrispNoiseFilterDisable=()=>{this.isKrispNoiseFilterEnabled=!1,this.log.debug("Krisp noise filter disabled",this.logContext),this.emit(N.AudioTrackFeatureUpdate,this,en.TF_ENHANCED_NOISE_CANCELLATION,!1)},this.audioContext=i,this.checkForSilence()}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return S(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===O.Source.Microphone&&this.stopOnMute&&!this.isUserProvided&&(this.log.debug("stopping mic track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{n()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return S(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{if(!this.isMuted)return this.log.debug("Track already unmuted",this.logContext),this;const r=this._constraints.deviceId&&this._mediaStreamTrack.getSettings().deviceId!==Yn(this._constraints.deviceId);return this.source===O.Source.Microphone&&(this.stopOnMute||this._mediaStreamTrack.readyState==="ended"||r)&&!this.isUserProvided&&(this.log.debug("reacquiring mic track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this}finally{n()}})}restartTrack(e){return S(this,void 0,void 0,function*(){let n;if(e){const r=Va({audio:e});typeof r.audio!="boolean"&&(n=r.audio)}yield this.restart(n)})}restart(e){const n=Object.create(null,{restart:{get:()=>super.restart}});return S(this,void 0,void 0,function*(){const r=yield n.restart.call(this,e);return this.checkForSilence(),r})}startMonitor(){dt()&&(this.monitorInterval||(this.monitorInterval=setInterval(()=>{this.monitorSender()},Fd)))}setProcessor(e){return S(this,void 0,void 0,function*(){var n;const r=yield this.processorLock.lock();try{if(!rn()&&!this.audioContext)throw Error("Audio context needs to be set on LocalAudioTrack in order to enable processors");this.processor&&(yield this.stopProcessor());const i={kind:this.kind,track:this._mediaStreamTrack,audioContext:this.audioContext};this.log.debug("setting up audio processor ".concat(e.name),this.logContext),yield e.init(i),this.processor=e,this.processor.processedTrack&&(yield(n=this.sender)===null||n===void 0?void 0:n.replaceTrack(this.processor.processedTrack),this.processor.processedTrack.addEventListener("enable-lk-krisp-noise-filter",this.handleKrispNoiseFilterEnable),this.processor.processedTrack.addEventListener("disable-lk-krisp-noise-filter",this.handleKrispNoiseFilterDisable)),this.emit(N.TrackProcessorUpdate,this.processor)}finally{r()}})}setAudioContext(e){this.audioContext=e}getSenderStats(){return S(this,void 0,void 0,function*(){var e;if(!(!((e=this.sender)===null||e===void 0)&&e.getStats))return;const n=yield this.sender.getStats();let r;return n.forEach(i=>{i.type==="outbound-rtp"&&(r={type:"audio",streamId:i.id,packetsSent:i.packetsSent,packetsLost:i.packetsLost,bytesSent:i.bytesSent,timestamp:i.timestamp,roundTripTime:i.roundTripTime,jitter:i.jitter})}),r})}checkForSilence(){return S(this,void 0,void 0,function*(){const e=yield M0(this);return e&&(this.isMuted||this.log.warn("silence detected on local audio track",this.logContext),this.emit(N.AudioSilenceDetected)),e})}}function Q0(t,e,n){switch(t.kind){case"audio":return new Wa(t,e,!1,void 0,n);case"video":return new Ka(t,e,!1,n);default:throw new kn("unsupported track type: ".concat(t.kind))}}const f2=Object.values(Os),p2=Object.values(md),m2=Object.values(gd),g2=[Os.h180,Os.h360],v2=[md.h180,md.h360],y2=t=>[{scaleResolutionDownBy:2,fps:t.encoding.maxFramerate}].map(n=>{var r,i;return new ae(Math.floor(t.width/n.scaleResolutionDownBy),Math.floor(t.height/n.scaleResolutionDownBy),Math.max(15e4,Math.floor(t.encoding.maxBitrate/(Math.pow(n.scaleResolutionDownBy,2)*(((r=t.encoding.maxFramerate)!==null&&r!==void 0?r:30)/((i=n.fps)!==null&&i!==void 0?i:30))))),n.fps,t.encoding.priority)}),Bd=["q","h","f"];function zd(t,e,n,r){var i,s;let o=r==null?void 0:r.videoEncoding;t&&(o=r==null?void 0:r.screenShareEncoding);const a=r==null?void 0:r.simulcast,l=r==null?void 0:r.scalabilityMode,c=r==null?void 0:r.videoCodec;if(!o&&!a&&!l||!e||!n)return[{}];o||(o=b2(t,e,n,c),K.debug("using video encoding",o));const u=o.maxFramerate,d=new ae(e,n,o.maxBitrate,o.maxFramerate,o.priority);if(l&&Ls(c)){const m=new Ga(l),g=[];if(m.spatial>3)throw new Error("unsupported scalabilityMode: ".concat(l));const T=Vt();if(Qn()||rn()||(T==null?void 0:T.name)==="Chrome"&&Er(T==null?void 0:T.version,"113")<0){const p=m.suffix=="h"?2:3;for(let v=0;v<m.spatial;v+=1)g.push({rid:Bd[2-v],maxBitrate:o.maxBitrate/Math.pow(p,v),maxFramerate:d.encoding.maxFramerate});g[0].scalabilityMode=l}else g.push({maxBitrate:o.maxBitrate,maxFramerate:d.encoding.maxFramerate,scalabilityMode:l});return d.encoding.priority&&(g[0].priority=d.encoding.priority,g[0].networkPriority=d.encoding.priority),K.debug("using svc encoding",{encodings:g}),g}if(!a)return[o];let h=[];t?h=(i=J0(r==null?void 0:r.screenShareSimulcastLayers))!==null&&i!==void 0?i:Y0(t,d):h=(s=J0(r==null?void 0:r.videoSimulcastLayers))!==null&&s!==void 0?s:Y0(t,d);let f;if(h.length>0){const m=h[0];h.length>1&&([,f]=h);const g=Math.max(e,n);if(g>=960&&f)return Vd(e,n,[m,f,d],u);if(g>=480)return Vd(e,n,[m,d],u)}return Vd(e,n,[d])}function k2(t,e,n){var r,i,s,o;if(!n.backupCodec||n.backupCodec===!0||n.backupCodec.codec===n.videoCodec)return;e!==n.backupCodec.codec&&K.warn("requested a different codec than specified as backup",{serverRequested:e,backup:n.backupCodec.codec}),n.videoCodec=e,n.videoEncoding=n.backupCodec.encoding;const a=t.mediaStreamTrack.getSettings(),l=(r=a.width)!==null&&r!==void 0?r:(i=t.dimensions)===null||i===void 0?void 0:i.width,c=(s=a.height)!==null&&s!==void 0?s:(o=t.dimensions)===null||o===void 0?void 0:o.height;return t.source===O.Source.ScreenShare&&n.simulcast&&(n.simulcast=!1),zd(t.source===O.Source.ScreenShare,l,c,n)}function b2(t,e,n,r){const i=C2(t,e,n);let{encoding:s}=i[0];const o=Math.max(e,n);for(let a=0;a<i.length;a+=1){const l=i[a];if(s=l.encoding,l.width>=o)break}if(r)switch(r){case"av1":s=Object.assign({},s),s.maxBitrate=s.maxBitrate*.7;break;case"vp9":s=Object.assign({},s),s.maxBitrate=s.maxBitrate*.85;break}return s}function C2(t,e,n){if(t)return m2;const r=e>n?e/n:n/e;return Math.abs(r-16/9)<Math.abs(r-4/3)?f2:p2}function Y0(t,e){if(t)return y2(e);const{width:n,height:r}=e,i=n>r?n/r:r/n;return Math.abs(i-16/9)<Math.abs(i-4/3)?g2:v2}function Vd(t,e,n,r){const i=[];if(n.forEach((s,o)=>{if(o>=Bd.length)return;const a=Math.min(t,e),c={rid:Bd[o],scaleResolutionDownBy:Math.max(1,a/Math.min(s.width,s.height)),maxBitrate:s.encoding.maxBitrate},u=r&&s.encoding.maxFramerate?Math.min(r,s.encoding.maxFramerate):s.encoding.maxFramerate;u&&(c.maxFramerate=u);const d=Si()||o===0;s.encoding.priority&&d&&(c.priority=s.encoding.priority,c.networkPriority=s.encoding.priority),i.push(c)}),rn()&&x0()==="ios"){let s;i.forEach(a=>{s?a.maxFramerate&&a.maxFramerate>s&&(s=a.maxFramerate):s=a.maxFramerate});let o=!0;i.forEach(a=>{var l;a.maxFramerate!=s&&(o&&(o=!1,K.info("Simulcast on iOS React-Native requires all encodings to share the same framerate.")),K.info('Setting framerate of encoding "'.concat((l=a.rid)!==null&&l!==void 0?l:"",'" to ').concat(s)),a.maxFramerate=s)})}return i}function J0(t){if(t)return t.sort((e,n)=>{const{encoding:r}=e,{encoding:i}=n;return r.maxBitrate>i.maxBitrate?1:r.maxBitrate<i.maxBitrate?-1:r.maxBitrate===i.maxBitrate&&r.maxFramerate&&i.maxFramerate?r.maxFramerate>i.maxFramerate?1:-1:0})}class Ga{constructor(e){const n=e.match(/^L(\d)T(\d)(h|_KEY|_KEY_SHIFT){0,1}$/);if(!n)throw new Error("invalid scalability mode");if(this.spatial=parseInt(n[1]),this.temporal=parseInt(n[2]),n.length>3)switch(n[3]){case"h":case"_KEY":case"_KEY_SHIFT":this.suffix=n[3]}}toString(){var e;return"L".concat(this.spatial,"T").concat(this.temporal).concat((e=this.suffix)!==null&&e!==void 0?e:"")}}function S2(t){return t.source===O.Source.ScreenShare||t.constraints.height&&Yn(t.constraints.height)>=1080?"maintain-resolution":"balanced"}const w2=5e3;class Ka extends Z0{get sender(){return this._sender}set sender(e){this._sender=e,this.degradationPreference&&this.setDegradationPreference(this.degradationPreference)}constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=arguments.length>3?arguments[3]:void 0;super(e,O.Kind.Video,n,r,i),this.simulcastCodecs=new Map,this.degradationPreference="balanced",this.monitorSender=()=>S(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let s;try{s=yield this.getSenderStats()}catch(a){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:a}));return}const o=new Map(s.map(a=>[a.rid,a]));if(this.prevStats){let a=0;o.forEach((l,c)=>{var u;const d=(u=this.prevStats)===null||u===void 0?void 0:u.get(c);a+=qa(l,d)}),this._currentBitrate=a}this.prevStats=o}),this.senderLock=new yt}get isSimulcast(){return!!(this.sender&&this.sender.getParameters().encodings.length>1)}startMonitor(e){var n;if(this.signalClient=e,!dt())return;const r=(n=this.sender)===null||n===void 0?void 0:n.getParameters();r&&(this.encodings=r.encodings),!this.monitorInterval&&(this.monitorInterval=setInterval(()=>{this.monitorSender()},Fd))}stop(){this._mediaStreamTrack.getConstraints(),this.simulcastCodecs.forEach(e=>{e.mediaStreamTrack.stop()}),super.stop()}pauseUpstream(){const e=Object.create(null,{pauseUpstream:{get:()=>super.pauseUpstream}});return S(this,void 0,void 0,function*(){var n,r,i,s,o;yield e.pauseUpstream.call(this);try{for(var a=!0,l=Wn(this.simulcastCodecs.values()),c;c=yield l.next(),n=c.done,!n;a=!0)s=c.value,a=!1,yield(o=s.sender)===null||o===void 0?void 0:o.replaceTrack(null)}catch(u){r={error:u}}finally{try{!a&&!n&&(i=l.return)&&(yield i.call(l))}finally{if(r)throw r.error}}})}resumeUpstream(){const e=Object.create(null,{resumeUpstream:{get:()=>super.resumeUpstream}});return S(this,void 0,void 0,function*(){var n,r,i,s,o;yield e.resumeUpstream.call(this);try{for(var a=!0,l=Wn(this.simulcastCodecs.values()),c;c=yield l.next(),n=c.done,!n;a=!0){s=c.value,a=!1;const u=s;yield(o=u.sender)===null||o===void 0?void 0:o.replaceTrack(u.mediaStreamTrack)}}catch(u){r={error:u}}finally{try{!a&&!n&&(i=l.return)&&(yield i.call(l))}finally{if(r)throw r.error}}})}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return S(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===O.Source.Camera&&!this.isUserProvided&&(this.log.debug("stopping camera track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{n()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return S(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.source===O.Source.Camera&&!this.isUserProvided&&(this.log.debug("reacquiring camera track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this):(this.log.debug("Track already unmuted",this.logContext),this)}finally{n()}})}setTrackMuted(e){super.setTrackMuted(e);for(const n of this.simulcastCodecs.values())n.mediaStreamTrack.enabled=!e}getSenderStats(){return S(this,void 0,void 0,function*(){var e;if(!(!((e=this.sender)===null||e===void 0)&&e.getStats))return[];const n=[],r=yield this.sender.getStats();return r.forEach(i=>{var s;if(i.type==="outbound-rtp"){const o={type:"video",streamId:i.id,frameHeight:i.frameHeight,frameWidth:i.frameWidth,framesPerSecond:i.framesPerSecond,framesSent:i.framesSent,firCount:i.firCount,pliCount:i.pliCount,nackCount:i.nackCount,packetsSent:i.packetsSent,bytesSent:i.bytesSent,qualityLimitationReason:i.qualityLimitationReason,qualityLimitationDurations:i.qualityLimitationDurations,qualityLimitationResolutionChanges:i.qualityLimitationResolutionChanges,rid:(s=i.rid)!==null&&s!==void 0?s:i.id,retransmittedPacketsSent:i.retransmittedPacketsSent,targetBitrate:i.targetBitrate,timestamp:i.timestamp},a=r.get(i.remoteId);a&&(o.jitter=a.jitter,o.packetsLost=a.packetsLost,o.roundTripTime=a.roundTripTime),n.push(o)}}),n.sort((i,s)=>{var o,a;return((o=s.frameWidth)!==null&&o!==void 0?o:0)-((a=i.frameWidth)!==null&&a!==void 0?a:0)}),n})}setPublishingQuality(e){const n=[];for(let r=Et.LOW;r<=Et.HIGH;r+=1)n.push(new Ju({quality:r,enabled:r<=e}));this.log.debug("setting publishing quality. max quality ".concat(e),this.logContext),this.setPublishingLayers(n)}restartTrack(e){return S(this,void 0,void 0,function*(){var n,r,i,s,o;let a;if(e){const d=Va({video:e});typeof d.video!="boolean"&&(a=d.video)}yield this.restart(a);try{for(var l=!0,c=Wn(this.simulcastCodecs.values()),u;u=yield c.next(),n=u.done,!n;l=!0){s=u.value,l=!1;const d=s;d.sender&&((o=d.sender.transport)===null||o===void 0?void 0:o.state)!=="closed"&&(d.mediaStreamTrack=this.mediaStreamTrack.clone(),yield d.sender.replaceTrack(d.mediaStreamTrack))}}catch(d){r={error:d}}finally{try{!l&&!n&&(i=c.return)&&(yield i.call(c))}finally{if(r)throw r.error}}})}setProcessor(e){const n=Object.create(null,{setProcessor:{get:()=>super.setProcessor}});return S(this,arguments,void 0,function(r){var i=this;let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var o,a,l,c,u,d;if(yield n.setProcessor.call(i,r,s),!((u=i.processor)===null||u===void 0)&&u.processedTrack)try{for(var h=!0,f=Wn(i.simulcastCodecs.values()),m;m=yield f.next(),o=m.done,!o;h=!0)c=m.value,h=!1,yield(d=c.sender)===null||d===void 0?void 0:d.replaceTrack(i.processor.processedTrack)}catch(g){a={error:g}}finally{try{!h&&!o&&(l=f.return)&&(yield l.call(f))}finally{if(a)throw a.error}}}()})}setDegradationPreference(e){return S(this,void 0,void 0,function*(){if(this.degradationPreference=e,this.sender)try{this.log.debug("setting degradationPreference to ".concat(e),this.logContext);const n=this.sender.getParameters();n.degradationPreference=e,this.sender.setParameters(n)}catch(n){this.log.warn("failed to set degradationPreference",Object.assign({error:n},this.logContext))}})}addSimulcastTrack(e,n){if(this.simulcastCodecs.has(e)){this.log.error("".concat(e," already added, skipping adding simulcast codec"),this.logContext);return}const r={codec:e,mediaStreamTrack:this.mediaStreamTrack.clone(),sender:void 0,encodings:n};return this.simulcastCodecs.set(e,r),r}setSimulcastTrackSender(e,n){const r=this.simulcastCodecs.get(e);r&&(r.sender=n,setTimeout(()=>{this.subscribedCodecs&&this.setPublishingCodecs(this.subscribedCodecs)},w2))}setPublishingCodecs(e){return S(this,void 0,void 0,function*(){var n,r,i,s,o,a,l;if(this.log.debug("setting publishing codecs",Object.assign(Object.assign({},this.logContext),{codecs:e,currentCodec:this.codec})),!this.codec&&e.length>0)return yield this.setPublishingLayers(e[0].qualities),[];this.subscribedCodecs=e;const c=[];try{for(n=!0,r=Wn(e);i=yield r.next(),s=i.done,!s;n=!0){l=i.value,n=!1;const u=l;if(!this.codec||this.codec===u.codec)yield this.setPublishingLayers(u.qualities);else{const d=this.simulcastCodecs.get(u.codec);if(this.log.debug("try setPublishingCodec for ".concat(u.codec),Object.assign(Object.assign({},this.logContext),{simulcastCodecInfo:d})),!d||!d.sender){for(const h of u.qualities)if(h.enabled){c.push(u.codec);break}}else d.encodings&&(this.log.debug("try setPublishingLayersForSender ".concat(u.codec),this.logContext),yield X0(d.sender,d.encodings,u.qualities,this.senderLock,this.log,this.logContext))}}}catch(u){o={error:u}}finally{try{!n&&!s&&(a=r.return)&&(yield a.call(r))}finally{if(o)throw o.error}}return c})}setPublishingLayers(e){return S(this,void 0,void 0,function*(){this.log.debug("setting publishing layers",Object.assign(Object.assign({},this.logContext),{qualities:e})),!(!this.sender||!this.encodings)&&(yield X0(this.sender,this.encodings,e,this.senderLock,this.log,this.logContext))})}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return S(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),w0()&&this.isInBackground&&this.source===O.Source.Camera&&(this._mediaStreamTrack.enabled=!1)})}}function X0(t,e,n,r,i,s){return S(this,void 0,void 0,function*(){const o=yield r.lock();i.debug("setPublishingLayersForSender",Object.assign(Object.assign({},s),{sender:t,qualities:n,senderEncodings:e}));try{const a=t.getParameters(),{encodings:l}=a;if(!l)return;if(l.length!==e.length){i.warn("cannot set publishing layers, encodings mismatch",Object.assign(Object.assign({},s),{encodings:l,senderEncodings:e}));return}let c=!1;const u=Vt();if((u==null?void 0:u.name)==="Chrome"&&Er(u==null?void 0:u.version,"133")>0&&l[0].scalabilityMode){const h=l[0],f=new Ga(h.scalabilityMode);let m=mi.OFF;if(n.forEach(g=>{g.enabled&&(m===mi.OFF||g.quality>m)&&(m=g.quality)}),m===mi.OFF)h.active&&(h.active=!1,c=!0);else if(!h.active||f.spatial!==m+1){c=!0,h.active=!0;const g=new Ga(e[0].scalabilityMode);f.spatial=m+1,f.suffix=g.suffix,f.spatial===1&&(f.suffix=void 0),h.scalabilityMode=f.toString(),h.scaleResolutionDownBy=Math.pow(2,2-m),e[0].maxBitrate&&(h.maxBitrate=e[0].maxBitrate/(h.scaleResolutionDownBy*h.scaleResolutionDownBy))}}else l.forEach((h,f)=>{var m;let g=(m=h.rid)!==null&&m!==void 0?m:"";g===""&&(g="q");const T=ey(g),p=n.find(v=>v.quality===T);p&&h.active!==p.enabled&&(c=!0,h.active=p.enabled,i.debug("setting layer ".concat(p.quality," to ").concat(h.active?"enabled":"disabled"),s),Si()&&(p.enabled?(h.scaleResolutionDownBy=e[f].scaleResolutionDownBy,h.maxBitrate=e[f].maxBitrate,h.maxFrameRate=e[f].maxFrameRate):(h.scaleResolutionDownBy=4,h.maxBitrate=10,h.maxFrameRate=2)))});c&&(a.encodings=l,i.debug("setting encodings",Object.assign(Object.assign({},s),{encodings:a.encodings})),yield t.setParameters(a))}finally{o()}})}function ey(t){switch(t){case"f":return Et.HIGH;case"h":return Et.MEDIUM;case"q":return Et.LOW;default:return Et.HIGH}}function ty(t,e,n,r){if(!n)return[new wr({quality:Et.HIGH,width:t,height:e,bitrate:0,ssrc:0})];if(r){const i=n[0].scalabilityMode,s=new Ga(i),o=[],a=s.suffix=="h"?1.5:2,l=s.suffix=="h"?2:3;for(let c=0;c<s.spatial;c+=1)o.push(new wr({quality:Math.min(Et.HIGH,s.spatial-1)-c,width:Math.ceil(t/Math.pow(a,c)),height:Math.ceil(e/Math.pow(a,c)),bitrate:n[0].maxBitrate?Math.ceil(n[0].maxBitrate/Math.pow(l,c)):0,ssrc:0}));return o}return n.map(i=>{var s,o,a;const l=(s=i.scaleResolutionDownBy)!==null&&s!==void 0?s:1;let c=ey((o=i.rid)!==null&&o!==void 0?o:"");return new wr({quality:c,width:Math.ceil(t/l),height:Math.ceil(e/l),bitrate:(a=i.maxBitrate)!==null&&a!==void 0?a:0,ssrc:0})})}const ny="_lossy",ry="_reliable",T2=2*1e3,Hd="leave-reconnect";var $t;(function(t){t[t.New=0]="New",t[t.Connected=1]="Connected",t[t.Disconnected=2]="Disconnected",t[t.Reconnecting=3]="Reconnecting",t[t.Closed=4]="Closed"})($t||($t={}));class x2 extends nn.EventEmitter{get isClosed(){return this._isClosed}get pendingReconnect(){return!!this.reconnectTimeout}constructor(e){var n;super(),this.options=e,this.rtcConfig={},this.peerConnectionTimeout=jd.peerConnectionTimeout,this.fullReconnectOnNext=!1,this.subscriberPrimary=!1,this.pcState=$t.New,this._isClosed=!0,this.pendingTrackResolvers={},this.reconnectAttempts=0,this.reconnectStart=0,this.attemptingReconnect=!1,this.joinAttempts=0,this.maxJoinAttempts=1,this.shouldFailNext=!1,this.log=K,this.handleDataChannel=r=>S(this,[r],void 0,function(i){var s=this;let{channel:o}=i;return function*(){if(o){if(o.label===ry)s.reliableDCSub=o;else if(o.label===ny)s.lossyDCSub=o;else return;s.log.debug("on data channel ".concat(o.id,", ").concat(o.label),s.logContext),o.onmessage=s.handleDataMessage}}()}),this.handleDataMessage=r=>S(this,void 0,void 0,function*(){var i,s;const o=yield this.dataProcessLock.lock();try{let a;if(r.data instanceof ArrayBuffer)a=r.data;else if(r.data instanceof Blob)a=yield r.data.arrayBuffer();else{this.log.error("unsupported data type",Object.assign(Object.assign({},this.logContext),{data:r.data}));return}const l=ct.fromBinary(new Uint8Array(a));((i=l.value)===null||i===void 0?void 0:i.case)==="speaker"?this.emit(D.ActiveSpeakersUpdate,l.value.value.speakers):(((s=l.value)===null||s===void 0?void 0:s.case)==="user"&&P2(l,l.value.value),this.emit(D.DataPacketReceived,l))}finally{o()}}),this.handleDataError=r=>{const s=r.currentTarget.maxRetransmits===0?"lossy":"reliable";if(r instanceof ErrorEvent&&r.error){const{error:o}=r.error;this.log.error("DataChannel error on ".concat(s,": ").concat(r.message),Object.assign(Object.assign({},this.logContext),{error:o}))}else this.log.error("Unknown DataChannel error on ".concat(s),Object.assign(Object.assign({},this.logContext),{event:r}))},this.handleBufferedAmountLow=r=>{const s=r.currentTarget.maxRetransmits===0?Y.LOSSY:Y.RELIABLE;this.updateAndEmitDCBufferStatus(s)},this.handleDisconnect=(r,i)=>{if(this._isClosed)return;this.log.warn("".concat(r," disconnected"),this.logContext),this.reconnectAttempts===0&&(this.reconnectStart=Date.now());const s=l=>{this.log.warn("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(l,"ms. giving up"),this.logContext),this.emit(D.Disconnected),this.close()},o=Date.now()-this.reconnectStart;let a=this.getNextRetryDelay({elapsedMs:o,retryCount:this.reconnectAttempts});if(a===null){s(o);return}r===Hd&&(a=0),this.log.debug("reconnecting in ".concat(a,"ms"),this.logContext),this.clearReconnectTimeout(),this.token&&this.regionUrlProvider&&this.regionUrlProvider.updateToken(this.token),this.reconnectTimeout=He.setTimeout(()=>this.attemptReconnect(i).finally(()=>this.reconnectTimeout=void 0),a)},this.waitForRestarted=()=>new Promise((r,i)=>{this.pcState===$t.Connected&&r();const s=()=>{this.off(D.Disconnected,o),r()},o=()=>{this.off(D.Restarted,s),i()};this.once(D.Restarted,s),this.once(D.Disconnected,o)}),this.updateAndEmitDCBufferStatus=r=>{const i=this.isBufferStatusLow(r);typeof i<"u"&&i!==this.dcBufferStatus.get(r)&&(this.dcBufferStatus.set(r,i),this.emit(D.DCBufferStatusChanged,i,r))},this.isBufferStatusLow=r=>{const i=this.dataChannelForKind(r);if(i)return i.bufferedAmount<=i.bufferedAmountLowThreshold},this.handleBrowserOnLine=()=>{this.client.currentState===me.RECONNECTING&&(this.clearReconnectTimeout(),this.attemptReconnect(gi.RR_SIGNAL_DISCONNECTED))},this.log=yn((n=e.loggerName)!==null&&n!==void 0?n:zt.Engine),this.loggerOptions={loggerName:e.loggerName,loggerContextCb:()=>this.logContext},this.client=new Id(void 0,this.loggerOptions),this.client.signalLatency=this.options.expSignalLatency,this.reconnectPolicy=this.options.reconnectPolicy,this.registerOnLineListener(),this.closingLock=new yt,this.dataProcessLock=new yt,this.dcBufferStatus=new Map([[Y.LOSSY,!0],[Y.RELIABLE,!0]]),this.client.onParticipantUpdate=r=>this.emit(D.ParticipantUpdate,r),this.client.onConnectionQuality=r=>this.emit(D.ConnectionQualityUpdate,r),this.client.onRoomUpdate=r=>this.emit(D.RoomUpdate,r),this.client.onSubscriptionError=r=>this.emit(D.SubscriptionError,r),this.client.onSubscriptionPermissionUpdate=r=>this.emit(D.SubscriptionPermissionUpdate,r),this.client.onSpeakersChanged=r=>this.emit(D.SpeakersChanged,r),this.client.onStreamStateUpdate=r=>this.emit(D.StreamStateChanged,r),this.client.onRequestResponse=r=>this.emit(D.SignalRequestResponse,r)}get logContext(){var e,n,r,i,s,o,a,l;return{room:(n=(e=this.latestJoinResponse)===null||e===void 0?void 0:e.room)===null||n===void 0?void 0:n.name,roomID:(i=(r=this.latestJoinResponse)===null||r===void 0?void 0:r.room)===null||i===void 0?void 0:i.sid,participant:(o=(s=this.latestJoinResponse)===null||s===void 0?void 0:s.participant)===null||o===void 0?void 0:o.identity,pID:(l=(a=this.latestJoinResponse)===null||a===void 0?void 0:a.participant)===null||l===void 0?void 0:l.sid}}join(e,n,r,i){return S(this,void 0,void 0,function*(){this.url=e,this.token=n,this.signalOpts=r,this.maxJoinAttempts=r.maxRetries;try{this.joinAttempts+=1,this.setupSignalClientCallbacks();const s=yield this.client.join(e,n,r,i);return this._isClosed=!1,this.latestJoinResponse=s,this.subscriberPrimary=s.subscriberPrimary,this.pcManager||(yield this.configure(s)),(!this.subscriberPrimary||s.fastPublish)&&this.negotiate(),this.clientConfiguration=s.clientConfiguration,s}catch(s){if(s instanceof ce&&s.reason===Z.ServerUnreachable&&(this.log.warn("Couldn't connect to server, attempt ".concat(this.joinAttempts," of ").concat(this.maxJoinAttempts),this.logContext),this.joinAttempts<this.maxJoinAttempts))return this.join(e,n,r,i);throw s}})}close(){return S(this,void 0,void 0,function*(){const e=yield this.closingLock.lock();if(this.isClosed){e();return}try{this._isClosed=!0,this.joinAttempts=0,this.emit(D.Closing),this.removeAllListeners(),this.deregisterOnLineListener(),this.clearPendingReconnect(),yield this.cleanupPeerConnections(),yield this.cleanupClient()}finally{e()}})}cleanupPeerConnections(){return S(this,void 0,void 0,function*(){var e;yield(e=this.pcManager)===null||e===void 0?void 0:e.close(),this.pcManager=void 0;const n=r=>{r&&(r.close(),r.onbufferedamountlow=null,r.onclose=null,r.onclosing=null,r.onerror=null,r.onmessage=null,r.onopen=null)};n(this.lossyDC),n(this.lossyDCSub),n(this.reliableDC),n(this.reliableDCSub),this.lossyDC=void 0,this.lossyDCSub=void 0,this.reliableDC=void 0,this.reliableDCSub=void 0})}cleanupClient(){return S(this,void 0,void 0,function*(){yield this.client.close(),this.client.resetCallbacks()})}addTrack(e){if(this.pendingTrackResolvers[e.cid])throw new kn("a track with the same ID has already been published");return new Promise((n,r)=>{const i=setTimeout(()=>{delete this.pendingTrackResolvers[e.cid],r(new ce("publication of local track timed out, no response from server",Z.InternalError))},1e4);this.pendingTrackResolvers[e.cid]={resolve:s=>{clearTimeout(i),n(s)},reject:()=>{clearTimeout(i),r(new Error("Cancelled publication by calling unpublish"))}},this.client.sendAddTrack(e)})}removeTrack(e){if(e.track&&this.pendingTrackResolvers[e.track.id]){const{reject:n}=this.pendingTrackResolvers[e.track.id];n&&n(),delete this.pendingTrackResolvers[e.track.id]}try{return this.pcManager.removeTrack(e),!0}catch(n){this.log.warn("failed to remove track",Object.assign(Object.assign({},this.logContext),{error:n}))}return!1}updateMuteStatus(e,n){this.client.sendMuteTrack(e,n)}get dataSubscriberReadyState(){var e;return(e=this.reliableDCSub)===null||e===void 0?void 0:e.readyState}getConnectedServerAddress(){return S(this,void 0,void 0,function*(){var e;return(e=this.pcManager)===null||e===void 0?void 0:e.getConnectedAddress()})}setRegionUrlProvider(e){this.regionUrlProvider=e}configure(e){return S(this,void 0,void 0,function*(){var n,r;if(this.pcManager&&this.pcManager.currentState!==we.NEW)return;this.participantSid=(n=e.participant)===null||n===void 0?void 0:n.sid;const i=this.makeRTCConfiguration(e);this.pcManager=new d2(i,e.subscriberPrimary,this.loggerOptions),this.emit(D.TransportsCreated,this.pcManager.publisher,this.pcManager.subscriber),this.pcManager.onIceCandidate=(s,o)=>{this.client.sendIceCandidate(s,o)},this.pcManager.onPublisherOffer=s=>{this.client.sendOffer(s)},this.pcManager.onDataChannel=this.handleDataChannel,this.pcManager.onStateChange=(s,o,a)=>S(this,void 0,void 0,function*(){if(this.log.debug("primary PC state changed ".concat(s),this.logContext),["closed","disconnected","failed"].includes(o)&&(this.publisherConnectionPromise=void 0),s===we.CONNECTED){const u=this.pcState===$t.New;this.pcState=$t.Connected,u&&this.emit(D.Connected,e)}else s===we.FAILED&&this.pcState===$t.Connected&&(this.pcState=$t.Disconnected,this.handleDisconnect("peerconnection failed",a==="failed"?gi.RR_SUBSCRIBER_FAILED:gi.RR_PUBLISHER_FAILED));const l=this.client.isDisconnected||this.client.currentState===me.RECONNECTING,c=[we.FAILED,we.CLOSING,we.CLOSED].includes(s);l&&c&&!this._isClosed&&this.emit(D.Offline)}),this.pcManager.onTrack=s=>{this.emit(D.MediaTrackAdded,s.track,s.streams[0],s.receiver)},E2((r=e.serverInfo)===null||r===void 0?void 0:r.protocol)||this.createDataChannels()})}setupSignalClientCallbacks(){this.client.onAnswer=e=>S(this,void 0,void 0,function*(){this.pcManager&&(this.log.debug("received server answer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type})),yield this.pcManager.setPublisherAnswer(e))}),this.client.onTrickle=(e,n)=>{this.pcManager&&(this.log.debug("got ICE candidate from peer",Object.assign(Object.assign({},this.logContext),{candidate:e,target:n})),this.pcManager.addIceCandidate(e,n))},this.client.onOffer=e=>S(this,void 0,void 0,function*(){if(!this.pcManager)return;const n=yield this.pcManager.createSubscriberAnswerFromOffer(e);this.client.sendAnswer(n)}),this.client.onLocalTrackPublished=e=>{var n;if(this.log.debug("received trackPublishedResponse",Object.assign(Object.assign({},this.logContext),{cid:e.cid,track:(n=e.track)===null||n===void 0?void 0:n.sid})),!this.pendingTrackResolvers[e.cid]){this.log.error("missing track resolver for ".concat(e.cid),Object.assign(Object.assign({},this.logContext),{cid:e.cid}));return}const{resolve:r}=this.pendingTrackResolvers[e.cid];delete this.pendingTrackResolvers[e.cid],r(e.track)},this.client.onLocalTrackUnpublished=e=>{this.emit(D.LocalTrackUnpublished,e)},this.client.onLocalTrackSubscribed=e=>{this.emit(D.LocalTrackSubscribed,e)},this.client.onTokenRefresh=e=>{this.token=e},this.client.onRemoteMuteChanged=(e,n)=>{this.emit(D.RemoteMute,e,n)},this.client.onSubscribedQualityUpdate=e=>{this.emit(D.SubscribedQualityUpdate,e)},this.client.onClose=()=>{this.handleDisconnect("signal",gi.RR_SIGNAL_DISCONNECTED)},this.client.onLeave=e=>{switch(this.log.debug("client leave request",Object.assign(Object.assign({},this.logContext),{reason:e==null?void 0:e.reason})),e.regions&&this.regionUrlProvider&&(this.log.debug("updating regions",this.logContext),this.regionUrlProvider.setServerReportedRegions(e.regions)),e.action){case yi.DISCONNECT:this.emit(D.Disconnected,e==null?void 0:e.reason),this.close();break;case yi.RECONNECT:this.fullReconnectOnNext=!0,this.handleDisconnect(Hd);break;case yi.RESUME:this.handleDisconnect(Hd)}}}makeRTCConfiguration(e){var n;const r=Object.assign({},this.rtcConfig);if(!((n=this.signalOpts)===null||n===void 0)&&n.e2eeEnabled&&(this.log.debug("E2EE - setting up transports with insertable streams",this.logContext),r.encodedInsertableStreams=!0),e.iceServers&&!r.iceServers){const i=[];e.iceServers.forEach(s=>{const o={urls:s.urls};s.username&&(o.username=s.username),s.credential&&(o.credential=s.credential),i.push(o)}),r.iceServers=i}return e.clientConfiguration&&e.clientConfiguration.forceRelay===Ps.ENABLED&&(r.iceTransportPolicy="relay"),r.sdpSemantics="unified-plan",r.continualGatheringPolicy="gather_continually",r}createDataChannels(){this.pcManager&&(this.lossyDC&&(this.lossyDC.onmessage=null,this.lossyDC.onerror=null),this.reliableDC&&(this.reliableDC.onmessage=null,this.reliableDC.onerror=null),this.lossyDC=this.pcManager.createPublisherDataChannel(ny,{ordered:!0,maxRetransmits:0}),this.reliableDC=this.pcManager.createPublisherDataChannel(ry,{ordered:!0}),this.lossyDC.onmessage=this.handleDataMessage,this.reliableDC.onmessage=this.handleDataMessage,this.lossyDC.onerror=this.handleDataError,this.reliableDC.onerror=this.handleDataError,this.lossyDC.bufferedAmountLowThreshold=65535,this.reliableDC.bufferedAmountLowThreshold=65535,this.lossyDC.onbufferedamountlow=this.handleBufferedAmountLow,this.reliableDC.onbufferedamountlow=this.handleBufferedAmountLow)}createSender(e,n,r){return S(this,void 0,void 0,function*(){if(vd())return yield this.createTransceiverRTCRtpSender(e,n,r);if(yd())return this.log.warn("using add-track fallback",this.logContext),yield this.createRTCRtpSender(e.mediaStreamTrack);throw new Me("Required webRTC APIs not supported on this device")})}createSimulcastSender(e,n,r,i){return S(this,void 0,void 0,function*(){if(vd())return this.createSimulcastTransceiverSender(e,n,r,i);if(yd())return this.log.debug("using add-track fallback",this.logContext),this.createRTCRtpSender(e.mediaStreamTrack);throw new Me("Cannot stream on this device")})}createTransceiverRTCRtpSender(e,n,r){return S(this,void 0,void 0,function*(){if(!this.pcManager)throw new Me("publisher is closed");const i=[];e.mediaStream&&i.push(e.mediaStream),Ti(e)&&(e.codec=n.videoCodec);const s={direction:"sendonly",streams:i};return r&&(s.sendEncodings=r),(yield this.pcManager.addPublisherTransceiver(e.mediaStreamTrack,s)).sender})}createSimulcastTransceiverSender(e,n,r,i){return S(this,void 0,void 0,function*(){if(!this.pcManager)throw new Me("publisher is closed");const s={direction:"sendonly"};i&&(s.sendEncodings=i);const o=yield this.pcManager.addPublisherTransceiver(n.mediaStreamTrack,s);if(r.videoCodec)return e.setSimulcastTrackSender(r.videoCodec,o.sender),o.sender})}createRTCRtpSender(e){return S(this,void 0,void 0,function*(){if(!this.pcManager)throw new Me("publisher is closed");return this.pcManager.addPublisherTrack(e)})}attemptReconnect(e){return S(this,void 0,void 0,function*(){var n,r,i;if(!this._isClosed){if(this.attemptingReconnect){K.warn("already attempting reconnect, returning early",this.logContext);return}(((n=this.clientConfiguration)===null||n===void 0?void 0:n.resumeConnection)===Ps.DISABLED||((i=(r=this.pcManager)===null||r===void 0?void 0:r.currentState)!==null&&i!==void 0?i:we.NEW)===we.NEW)&&(this.fullReconnectOnNext=!0);try{this.attemptingReconnect=!0,this.fullReconnectOnNext?yield this.restartConnection():yield this.resumeConnection(e),this.clearPendingReconnect(),this.fullReconnectOnNext=!1}catch(s){this.reconnectAttempts+=1;let o=!0;s instanceof Me?(this.log.debug("received unrecoverable error",Object.assign(Object.assign({},this.logContext),{error:s})),o=!1):s instanceof Ei||(this.fullReconnectOnNext=!0),o?this.handleDisconnect("reconnect",gi.RR_UNKNOWN):(this.log.info("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(Date.now()-this.reconnectStart,"ms. giving up"),this.logContext),this.emit(D.Disconnected),yield this.close())}finally{this.attemptingReconnect=!1}}})}getNextRetryDelay(e){try{return this.reconnectPolicy.nextRetryDelayInMs(e)}catch(n){this.log.warn("encountered error in reconnect policy",Object.assign(Object.assign({},this.logContext),{error:n}))}return null}restartConnection(e){return S(this,void 0,void 0,function*(){var n,r,i;try{if(!this.url||!this.token)throw new Me("could not reconnect, url or token not saved");this.log.info("reconnecting, attempt: ".concat(this.reconnectAttempts),this.logContext),this.emit(D.Restarting),this.client.isDisconnected||(yield this.client.sendLeave()),yield this.cleanupPeerConnections(),yield this.cleanupClient();let s;try{if(!this.signalOpts)throw this.log.warn("attempted connection restart, without signal options present",this.logContext),new Ei;s=yield this.join(e??this.url,this.token,this.signalOpts)}catch(o){throw o instanceof ce&&o.reason===Z.NotAllowed?new Me("could not reconnect, token might be expired"):new Ei}if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(this.client.setReconnected(),this.emit(D.SignalRestarted,s),yield this.waitForPCReconnected(),this.client.currentState!==me.CONNECTED)throw new Ei("Signal connection got severed during reconnect");(n=this.regionUrlProvider)===null||n===void 0||n.resetAttempts(),this.emit(D.Restarted)}catch(s){const o=yield(r=this.regionUrlProvider)===null||r===void 0?void 0:r.getNextBestRegionUrl();if(o){yield this.restartConnection(o);return}else throw(i=this.regionUrlProvider)===null||i===void 0||i.resetAttempts(),s}})}resumeConnection(e){return S(this,void 0,void 0,function*(){var n;if(!this.url||!this.token)throw new Me("could not reconnect, url or token not saved");if(!this.pcManager)throw new Me("publisher and subscriber connections unset");this.log.info("resuming signal connection, attempt ".concat(this.reconnectAttempts),this.logContext),this.emit(D.Resuming);let r;try{this.setupSignalClientCallbacks(),r=yield this.client.reconnect(this.url,this.token,this.participantSid,e)}catch(i){let s="";throw i instanceof Error&&(s=i.message,this.log.error(i.message,Object.assign(Object.assign({},this.logContext),{error:i}))),i instanceof ce&&i.reason===Z.NotAllowed?new Me("could not reconnect, token might be expired"):i instanceof ce&&i.reason===Z.LeaveRequest?i:new Ei(s)}if(this.emit(D.SignalResumed),r){const i=this.makeRTCConfiguration(r);this.pcManager.updateConfiguration(i)}else this.log.warn("Did not receive reconnect response",this.logContext);if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(yield this.pcManager.triggerIceRestart(),yield this.waitForPCReconnected(),this.client.currentState!==me.CONNECTED)throw new Ei("Signal connection got severed during reconnect");this.client.setReconnected(),((n=this.reliableDC)===null||n===void 0?void 0:n.readyState)==="open"&&this.reliableDC.id===null&&this.createDataChannels(),this.emit(D.Resumed)})}waitForPCInitialConnection(e,n){return S(this,void 0,void 0,function*(){if(!this.pcManager)throw new Me("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(n,e)})}waitForPCReconnected(){return S(this,void 0,void 0,function*(){this.pcState=$t.Reconnecting,this.log.debug("waiting for peer connection to reconnect",this.logContext);try{if(yield ut(T2),!this.pcManager)throw new Me("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(void 0,this.peerConnectionTimeout),this.pcState=$t.Connected}catch(e){throw this.pcState=$t.Disconnected,new ce("could not establish PC connection, ".concat(e.message),Z.InternalError)}})}publishRpcResponse(e,n,r,i){return S(this,void 0,void 0,function*(){const s=new ct({destinationIdentities:[e],kind:Y.RELIABLE,value:{case:"rpcResponse",value:new lv({requestId:n,value:i?{case:"error",value:i.toProto()}:{case:"payload",value:r??""}})}});yield this.sendDataPacket(s,Y.RELIABLE)})}publishRpcAck(e,n){return S(this,void 0,void 0,function*(){const r=new ct({destinationIdentities:[e],kind:Y.RELIABLE,value:{case:"rpcAck",value:new av({requestId:n})}});yield this.sendDataPacket(r,Y.RELIABLE)})}sendDataPacket(e,n){return S(this,void 0,void 0,function*(){const r=e.toBinary();yield this.ensurePublisherConnected(n);const i=this.dataChannelForKind(n);i&&i.send(r),this.updateAndEmitDCBufferStatus(n)})}waitForBufferStatusLow(e){return new Promise((n,r)=>S(this,void 0,void 0,function*(){if(this.isBufferStatusLow(e))n();else{const i=()=>r("Engine closed");for(this.once(D.Closing,i);!this.dcBufferStatus.get(e);)yield ut(10);this.off(D.Closing,i),n()}}))}ensureDataTransportConnected(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscriberPrimary;return function*(){var s;if(!r.pcManager)throw new Me("PC manager is closed");const o=i?r.pcManager.subscriber:r.pcManager.publisher,a=i?"Subscriber":"Publisher";if(!o)throw new ce("".concat(a," connection not set"),Z.InternalError);let l=!1;!i&&!r.dataChannelForKind(n,i)&&(r.createDataChannels(),l=!0),!l&&!i&&!r.pcManager.publisher.isICEConnected&&r.pcManager.publisher.getICEConnectionState()!=="checking"&&(l=!0),l&&r.negotiate();const c=r.dataChannelForKind(n,i);if((c==null?void 0:c.readyState)==="open")return;const u=new Date().getTime()+r.peerConnectionTimeout;for(;new Date().getTime()<u;){if(o.isICEConnected&&((s=r.dataChannelForKind(n,i))===null||s===void 0?void 0:s.readyState)==="open")return;yield ut(50)}throw new ce("could not establish ".concat(a," connection, state: ").concat(o.getICEConnectionState()),Z.InternalError)}()})}ensurePublisherConnected(e){return S(this,void 0,void 0,function*(){this.publisherConnectionPromise||(this.publisherConnectionPromise=this.ensureDataTransportConnected(e,!1)),yield this.publisherConnectionPromise})}verifyTransport(){return!(!this.pcManager||this.pcManager.currentState!==we.CONNECTED||!this.client.ws||this.client.ws.readyState===WebSocket.CLOSED)}negotiate(){return S(this,void 0,void 0,function*(){return new Promise((e,n)=>S(this,void 0,void 0,function*(){if(!this.pcManager){n(new dd("PC manager is closed"));return}this.pcManager.requirePublisher(),this.pcManager.publisher.getTransceivers().length==0&&!this.lossyDC&&!this.reliableDC&&this.createDataChannels();const r=new AbortController,i=()=>{r.abort(),this.log.debug("engine disconnected while negotiation was ongoing",this.logContext),e()};this.isClosed&&n("cannot negotiate on closed engine"),this.on(D.Closing,i),this.pcManager.publisher.once(xi.RTPVideoPayloadTypes,s=>{const o=new Map;s.forEach(a=>{const l=a.codec.toLowerCase();UT(l)&&o.set(a.payload,l)}),this.emit(D.RTPVideoMapUpdate,o)});try{yield this.pcManager.negotiate(r),e()}catch(s){s instanceof dd&&(this.fullReconnectOnNext=!0),this.handleDisconnect("negotiation",gi.RR_UNKNOWN),n(s)}finally{this.off(D.Closing,i)}}))})}dataChannelForKind(e,n){if(n){if(e===Y.LOSSY)return this.lossyDCSub;if(e===Y.RELIABLE)return this.reliableDCSub}else{if(e===Y.LOSSY)return this.lossyDC;if(e===Y.RELIABLE)return this.reliableDC}}sendSyncState(e,n){var r,i;if(!this.pcManager){this.log.warn("sync state cannot be sent without peer connection setup",this.logContext);return}const s=this.pcManager.subscriber.getLocalDescription(),o=this.pcManager.subscriber.getRemoteDescription(),a=(i=(r=this.signalOpts)===null||r===void 0?void 0:r.autoSubscribe)!==null&&i!==void 0?i:!0,l=new Array,c=new Array;e.forEach(u=>{u.isDesired!==a&&l.push(u.trackSid),u.isEnabled||c.push(u.trackSid)}),this.client.sendSyncState(new Ev({answer:s?$a({sdp:s.sdp,type:s.type}):void 0,offer:o?$a({sdp:o.sdp,type:o.type}):void 0,subscription:new Pa({trackSids:l,subscribe:!a,participantTracks:[]}),publishTracks:qT(n),dataChannels:this.dataChannelsInfo(),trackSidsDisabled:c}))}failNext(){this.shouldFailNext=!0}dataChannelsInfo(){const e=[],n=(r,i)=>{(r==null?void 0:r.id)!==void 0&&r.id!==null&&e.push(new Pv({label:r.label,id:r.id,target:i}))};return n(this.dataChannelForKind(Y.LOSSY),Bt.PUBLISHER),n(this.dataChannelForKind(Y.RELIABLE),Bt.PUBLISHER),n(this.dataChannelForKind(Y.LOSSY,!0),Bt.SUBSCRIBER),n(this.dataChannelForKind(Y.RELIABLE,!0),Bt.SUBSCRIBER),e}clearReconnectTimeout(){this.reconnectTimeout&&He.clearTimeout(this.reconnectTimeout)}clearPendingReconnect(){this.clearReconnectTimeout(),this.reconnectAttempts=0}registerOnLineListener(){dt()&&window.addEventListener("online",this.handleBrowserOnLine)}deregisterOnLineListener(){dt()&&window.removeEventListener("online",this.handleBrowserOnLine)}}class Ei extends Error{}function E2(t){return t!==void 0&&t>13}function P2(t,e){const n=t.participantIdentity?t.participantIdentity:e.participantIdentity;t.participantIdentity=n,e.participantIdentity=n;const r=t.destinationIdentities.length!==0?t.destinationIdentities:e.destinationIdentities;t.destinationIdentities=r,e.destinationIdentities=r}class $d{constructor(e,n){this.lastUpdateAt=0,this.settingsCacheTime=3e3,this.attemptedRegions=[],this.serverUrl=new URL(e),this.token=n}updateToken(e){this.token=e}isCloud(){return bd(this.serverUrl)}getServerUrl(){return this.serverUrl}getNextBestRegionUrl(e){return S(this,void 0,void 0,function*(){if(!this.isCloud())throw Error("region availability is only supported for LiveKit Cloud domains");(!this.regionSettings||Date.now()-this.lastUpdateAt>this.settingsCacheTime)&&(this.regionSettings=yield this.fetchRegionSettings(e));const n=this.regionSettings.regions.filter(r=>!this.attemptedRegions.find(i=>i.url===r.url));if(n.length>0){const r=n[0];return this.attemptedRegions.push(r),K.debug("next region: ".concat(r.region)),r.url}else return null})}resetAttempts(){this.attemptedRegions=[]}fetchRegionSettings(e){return S(this,void 0,void 0,function*(){const n=yield fetch("".concat(_2(this.serverUrl),"/regions"),{headers:{authorization:"Bearer ".concat(this.token)},signal:e});if(n.ok){const r=yield n.json();return this.lastUpdateAt=Date.now(),r}else throw new ce("Could not fetch region settings: ".concat(n.statusText),n.status===401?Z.NotAllowed:Z.InternalError,n.status)})}setServerReportedRegions(e){this.regionSettings=e,this.lastUpdateAt=Date.now()}}function _2(t){return"".concat(t.protocol.replace("ws","http"),"//").concat(t.host,"/settings")}class iy{get info(){return this._info}constructor(e,n,r){this.reader=n,this.totalByteSize=r,this._info=e,this.bytesReceived=0}}class R2 extends iy{handleChunkReceived(e){var n;this.bytesReceived+=e.content.byteLength;const r=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(n=this.onProgress)===null||n===void 0||n.call(this,r)}[Symbol.asyncIterator](){const e=this.reader.getReader();return{next:()=>S(this,void 0,void 0,function*(){try{const{done:n,value:r}=yield e.read();return n?{done:!0,value:void 0}:(this.handleChunkReceived(r),{done:!1,value:r.content})}catch{return{done:!0,value:void 0}}}),return(){return S(this,void 0,void 0,function*(){return e.releaseLock(),{done:!0,value:void 0}})}}}readAll(){return S(this,void 0,void 0,function*(){var e,n,r,i;let s=new Set;try{for(var o=!0,a=Wn(this),l;l=yield a.next(),e=l.done,!e;o=!0){i=l.value,o=!1;const c=i;s.add(c)}}catch(c){n={error:c}}finally{try{!o&&!e&&(r=a.return)&&(yield r.call(a))}finally{if(n)throw n.error}}return Array.from(s)})}}class I2 extends iy{constructor(e,n,r){super(e,n,r),this.receivedChunks=new Map}handleChunkReceived(e){var n;const r=za(e.chunkIndex),i=this.receivedChunks.get(r);if(i&&i.version>e.version)return;this.receivedChunks.set(r,e),this.bytesReceived+=e.content.byteLength;const s=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(n=this.onProgress)===null||n===void 0||n.call(this,s)}[Symbol.asyncIterator](){const e=this.reader.getReader(),n=new TextDecoder;return{next:()=>S(this,void 0,void 0,function*(){try{const{done:r,value:i}=yield e.read();return r?{done:!0,value:void 0}:(this.handleChunkReceived(i),{done:!1,value:n.decode(i.content)})}catch{return{done:!0,value:void 0}}}),return(){return S(this,void 0,void 0,function*(){return e.releaseLock(),{done:!0,value:void 0}})}}}readAll(){return S(this,void 0,void 0,function*(){var e,n,r,i;let s="";try{for(var o=!0,a=Wn(this),l;l=yield a.next(),e=l.done,!e;o=!0)i=l.value,o=!1,s+=i}catch(c){n={error:c}}finally{try{!o&&!e&&(r=a.return)&&(yield r.call(a))}finally{if(n)throw n.error}}return s})}}class O2{constructor(e,n,r){this.writableStream=e,this.defaultWriter=e.getWriter(),this.onClose=r,this.info=n}write(e){return this.defaultWriter.write(e)}close(){return S(this,void 0,void 0,function*(){var e;yield this.defaultWriter.close(),this.defaultWriter.releaseLock(),(e=this.onClose)===null||e===void 0||e.call(this)})}}class L2 extends O2{}class sy extends O{constructor(e,n,r,i,s){super(e,r,s),this.sid=n,this.receiver=i}get isLocal(){return!1}setMuted(e){this.isMuted!==e&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?N.Muted:N.Unmuted,this))}setMediaStream(e){this.mediaStream=e;const n=r=>{r.track===this._mediaStreamTrack&&(e.removeEventListener("removetrack",n),this.receiver&&"playoutDelayHint"in this.receiver&&(this.receiver.playoutDelayHint=void 0),this.receiver=void 0,this._currentBitrate=0,this.emit(N.Ended,this))};e.addEventListener("removetrack",n)}start(){this.startMonitor(),super.enable()}stop(){this.stopMonitor(),super.disable()}getRTCStatsReport(){return S(this,void 0,void 0,function*(){var e;return!((e=this.receiver)===null||e===void 0)&&e.getStats?yield this.receiver.getStats():void 0})}setPlayoutDelay(e){this.receiver?"playoutDelayHint"in this.receiver?this.receiver.playoutDelayHint=e:this.log.warn("Playout delay not supported in this browser"):this.log.warn("Cannot set playout delay, track already ended")}getPlayoutDelay(){if(this.receiver){if("playoutDelayHint"in this.receiver)return this.receiver.playoutDelayHint;this.log.warn("Playout delay not supported in this browser")}else this.log.warn("Cannot get playout delay, track already ended");return 0}startMonitor(){this.monitorInterval||(this.monitorInterval=setInterval(()=>this.monitorReceiver(),Fd)),WT()&&this.registerTimeSyncUpdate()}registerTimeSyncUpdate(){const e=()=>{var n;this.timeSyncHandle=requestAnimationFrame(()=>e());const r=(n=this.receiver)===null||n===void 0?void 0:n.getSynchronizationSources()[0];if(r){const{timestamp:i,rtpTimestamp:s}=r;s&&this.rtpTimestamp!==s&&(this.emit(N.TimeSyncUpdate,{timestamp:i,rtpTimestamp:s}),this.rtpTimestamp=s)}};e()}}class M2 extends sy{constructor(e,n,r,i,s,o){super(e,n,O.Kind.Audio,r,o),this.monitorReceiver=()=>S(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}const a=yield this.getReceiverStats();a&&this.prevStats&&this.receiver&&(this._currentBitrate=qa(a,this.prevStats)),this.prevStats=a}),this.audioContext=i,this.webAudioPluginNodes=[],s&&(this.sinkId=s.deviceId)}setVolume(e){var n;for(const r of this.attachedElements)this.audioContext?(n=this.gainNode)===null||n===void 0||n.gain.setTargetAtTime(e,0,.1):r.volume=e;rn()&&this._mediaStreamTrack._setVolume(e),this.elementVolume=e}getVolume(){if(this.elementVolume)return this.elementVolume;if(rn())return 1;let e=0;return this.attachedElements.forEach(n=>{n.volume>e&&(e=n.volume)}),e}setSinkId(e){return S(this,void 0,void 0,function*(){this.sinkId=e,yield Promise.all(this.attachedElements.map(n=>{if(kd(n))return n.setSinkId(e)}))})}attach(e){const n=this.attachedElements.length===0;return e?super.attach(e):e=super.attach(),this.sinkId&&kd(e)&&e.setSinkId(this.sinkId),this.audioContext&&n&&(this.log.debug("using audio context mapping",this.logContext),this.connectWebAudio(this.audioContext,e),e.volume=0,e.muted=!0),this.elementVolume&&this.setVolume(this.elementVolume),e}detach(e){let n;return e?(n=super.detach(e),this.audioContext&&(this.attachedElements.length>0?this.connectWebAudio(this.audioContext,this.attachedElements[0]):this.disconnectWebAudio())):(n=super.detach(),this.disconnectWebAudio()),n}setAudioContext(e){this.audioContext=e,e&&this.attachedElements.length>0?this.connectWebAudio(e,this.attachedElements[0]):e||this.disconnectWebAudio()}setWebAudioPlugins(e){this.webAudioPluginNodes=e,this.attachedElements.length>0&&this.audioContext&&this.connectWebAudio(this.audioContext,this.attachedElements[0])}connectWebAudio(e,n){this.disconnectWebAudio(),this.sourceNode=e.createMediaStreamSource(n.srcObject);let r=this.sourceNode;this.webAudioPluginNodes.forEach(i=>{r.connect(i),r=i}),this.gainNode=e.createGain(),r.connect(this.gainNode),this.gainNode.connect(e.destination),this.elementVolume&&this.gainNode.gain.setTargetAtTime(this.elementVolume,0,.1),e.state!=="running"&&e.resume().then(()=>{e.state!=="running"&&this.emit(N.AudioPlaybackFailed,new Error("Audio Context couldn't be started automatically"))}).catch(i=>{this.emit(N.AudioPlaybackFailed,i)})}disconnectWebAudio(){var e,n;(e=this.gainNode)===null||e===void 0||e.disconnect(),(n=this.sourceNode)===null||n===void 0||n.disconnect(),this.gainNode=void 0,this.sourceNode=void 0}getReceiverStats(){return S(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let n;return e.forEach(r=>{r.type==="inbound-rtp"&&(n={type:"audio",streamId:r.id,timestamp:r.timestamp,jitter:r.jitter,bytesReceived:r.bytesReceived,concealedSamples:r.concealedSamples,concealmentEvents:r.concealmentEvents,silentConcealedSamples:r.silentConcealedSamples,silentConcealmentEvents:r.silentConcealmentEvents,totalAudioEnergy:r.totalAudioEnergy,totalSamplesDuration:r.totalSamplesDuration})}),n})}}const qd=100;class N2 extends sy{constructor(e,n,r,i,s){super(e,n,O.Kind.Video,r,s),this.elementInfos=[],this.monitorReceiver=()=>S(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}const o=yield this.getReceiverStats();o&&this.prevStats&&this.receiver&&(this._currentBitrate=qa(o,this.prevStats)),this.prevStats=o}),this.debouncedHandleResize=Dd(()=>{this.updateDimensions()},qd),this.adaptiveStreamSettings=i}get isAdaptiveStream(){return this.adaptiveStreamSettings!==void 0}get mediaStreamTrack(){return this._mediaStreamTrack}setMuted(e){super.setMuted(e),this.attachedElements.forEach(n=>{e?Ci(this._mediaStreamTrack,n):bi(this._mediaStreamTrack,n)})}attach(e){if(e?super.attach(e):e=super.attach(),this.adaptiveStreamSettings&&this.elementInfos.find(n=>n.element===e)===void 0){const n=new D2(e);this.observeElementInfo(n)}return e}observeElementInfo(e){this.adaptiveStreamSettings&&this.elementInfos.find(n=>n===e)===void 0?(e.handleResize=()=>{this.debouncedHandleResize()},e.handleVisibilityChanged=()=>{this.updateVisibility()},this.elementInfos.push(e),e.observe(),this.debouncedHandleResize(),this.updateVisibility()):this.log.warn("visibility resize observer not triggered",this.logContext)}stopObservingElementInfo(e){if(!this.isAdaptiveStream){this.log.warn("stopObservingElementInfo ignored",this.logContext);return}const n=this.elementInfos.filter(r=>r===e);for(const r of n)r.stopObserving();this.elementInfos=this.elementInfos.filter(r=>r!==e),this.updateVisibility(),this.debouncedHandleResize()}detach(e){let n=[];if(e)return this.stopObservingElement(e),super.detach(e);n=super.detach();for(const r of n)this.stopObservingElement(r);return n}getDecoderImplementation(){var e;return(e=this.prevStats)===null||e===void 0?void 0:e.decoderImplementation}getReceiverStats(){return S(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let n,r="",i=new Map;return e.forEach(s=>{s.type==="inbound-rtp"?(r=s.codecId,n={type:"video",streamId:s.id,framesDecoded:s.framesDecoded,framesDropped:s.framesDropped,framesReceived:s.framesReceived,packetsReceived:s.packetsReceived,packetsLost:s.packetsLost,frameWidth:s.frameWidth,frameHeight:s.frameHeight,pliCount:s.pliCount,firCount:s.firCount,nackCount:s.nackCount,jitter:s.jitter,timestamp:s.timestamp,bytesReceived:s.bytesReceived,decoderImplementation:s.decoderImplementation}):s.type==="codec"&&i.set(s.id,s)}),n&&r!==""&&i.get(r)&&(n.mimeType=i.get(r).mimeType),n})}stopObservingElement(e){const n=this.elementInfos.filter(r=>r.element===e);for(const r of n)this.stopObservingElementInfo(r)}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return S(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),this.isAdaptiveStream&&this.updateVisibility()})}updateVisibility(){var e,n;const r=this.elementInfos.reduce((a,l)=>Math.max(a,l.visibilityChangedAt||0),0),i=!((n=(e=this.adaptiveStreamSettings)===null||e===void 0?void 0:e.pauseVideoInBackground)!==null&&n!==void 0)||n?this.isInBackground:!1,s=this.elementInfos.some(a=>a.pictureInPicture),o=this.elementInfos.some(a=>a.visible)&&!i||s;if(this.lastVisible!==o){if(!o&&Date.now()-r<qd){He.setTimeout(()=>{this.updateVisibility()},qd);return}this.lastVisible=o,this.emit(N.VisibilityChanged,o,this)}}updateDimensions(){var e,n;let r=0,i=0;const s=this.getPixelDensity();for(const o of this.elementInfos){const a=o.width()*s,l=o.height()*s;a+l>r+i&&(r=a,i=l)}((e=this.lastDimensions)===null||e===void 0?void 0:e.width)===r&&((n=this.lastDimensions)===null||n===void 0?void 0:n.height)===i||(this.lastDimensions={width:r,height:i},this.emit(N.VideoDimensionsChanged,this.lastDimensions,this))}getPixelDensity(){var e;const n=(e=this.adaptiveStreamSettings)===null||e===void 0?void 0:e.pixelDensity;return n==="screen"?E0():n||(E0()>2?2:1)}}class D2{get visible(){return this.isPiP||this.isIntersecting}get pictureInPicture(){return this.isPiP}constructor(e,n){this.onVisibilityChanged=r=>{var i;const{target:s,isIntersecting:o}=r;s===this.element&&(this.isIntersecting=o,this.isPiP=Ds(this.element),this.visibilityChangedAt=Date.now(),(i=this.handleVisibilityChanged)===null||i===void 0||i.call(this))},this.onEnterPiP=()=>{var r,i,s;(i=(r=window.documentPictureInPicture)===null||r===void 0?void 0:r.window)===null||i===void 0||i.addEventListener("pagehide",this.onLeavePiP),this.isPiP=Ds(this.element),(s=this.handleVisibilityChanged)===null||s===void 0||s.call(this)},this.onLeavePiP=()=>{var r;this.isPiP=Ds(this.element),(r=this.handleVisibilityChanged)===null||r===void 0||r.call(this)},this.element=e,this.isIntersecting=n??Wd(e),this.isPiP=dt()&&Ds(e),this.visibilityChangedAt=0}width(){return this.element.clientWidth}height(){return this.element.clientHeight}observe(){var e,n,r;this.isIntersecting=Wd(this.element),this.isPiP=Ds(this.element),this.element.handleResize=()=>{var i;(i=this.handleResize)===null||i===void 0||i.call(this)},this.element.handleVisibilityChanged=this.onVisibilityChanged,_0().observe(this.element),P0().observe(this.element),this.element.addEventListener("enterpictureinpicture",this.onEnterPiP),this.element.addEventListener("leavepictureinpicture",this.onLeavePiP),(e=window.documentPictureInPicture)===null||e===void 0||e.addEventListener("enter",this.onEnterPiP),(r=(n=window.documentPictureInPicture)===null||n===void 0?void 0:n.window)===null||r===void 0||r.addEventListener("pagehide",this.onLeavePiP)}stopObserving(){var e,n,r,i,s;(e=_0())===null||e===void 0||e.unobserve(this.element),(n=P0())===null||n===void 0||n.unobserve(this.element),this.element.removeEventListener("enterpictureinpicture",this.onEnterPiP),this.element.removeEventListener("leavepictureinpicture",this.onLeavePiP),(r=window.documentPictureInPicture)===null||r===void 0||r.removeEventListener("enter",this.onEnterPiP),(s=(i=window.documentPictureInPicture)===null||i===void 0?void 0:i.window)===null||s===void 0||s.removeEventListener("pagehide",this.onLeavePiP)}}function Ds(t){var e,n;return document.pictureInPictureElement===t?!0:!((e=window.documentPictureInPicture)===null||e===void 0)&&e.window?Wd(t,(n=window.documentPictureInPicture)===null||n===void 0?void 0:n.window):!1}function Wd(t,e){const n=e||window;let r=t.offsetTop,i=t.offsetLeft;const s=t.offsetWidth,o=t.offsetHeight,{hidden:a}=t,{display:l}=getComputedStyle(t);for(;t.offsetParent;)t=t.offsetParent,r+=t.offsetTop,i+=t.offsetLeft;return r<n.pageYOffset+n.innerHeight&&i<n.pageXOffset+n.innerWidth&&r+o>n.pageYOffset&&i+s>n.pageXOffset&&!a&&l!=="none"}class Cn extends nn.EventEmitter{constructor(e,n,r,i){var s;super(),this.metadataMuted=!1,this.encryption=kt.NONE,this.log=K,this.handleMuted=()=>{this.emit(N.Muted)},this.handleUnmuted=()=>{this.emit(N.Unmuted)},this.log=yn((s=i==null?void 0:i.loggerName)!==null&&s!==void 0?s:zt.Publication),this.loggerContextCb=this.loggerContextCb,this.setMaxListeners(100),this.kind=e,this.trackSid=n,this.trackName=r,this.source=O.Source.Unknown}setTrack(e){this.track&&(this.track.off(N.Muted,this.handleMuted),this.track.off(N.Unmuted,this.handleUnmuted)),this.track=e,e&&(e.on(N.Muted,this.handleMuted),e.on(N.Unmuted,this.handleUnmuted))}get logContext(){var e;return Object.assign(Object.assign({},(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this)),ie(this))}get isMuted(){return this.metadataMuted}get isEnabled(){return!0}get isSubscribed(){return this.track!==void 0}get isEncrypted(){return this.encryption!==kt.NONE}get audioTrack(){if(bn(this.track))return this.track}get videoTrack(){if(Ti(this.track))return this.track}updateInfo(e){this.trackSid=e.sid,this.trackName=e.name,this.source=O.sourceFromProto(e.source),this.mimeType=e.mimeType,this.kind===O.Kind.Video&&e.width>0&&(this.dimensions={width:e.width,height:e.height},this.simulcasted=e.simulcast),this.encryption=e.encryption,this.trackInfo=e,this.log.debug("update publication info",Object.assign(Object.assign({},this.logContext),{info:e}))}}(function(t){(function(e){e.Desired="desired",e.Subscribed="subscribed",e.Unsubscribed="unsubscribed"})(t.SubscriptionStatus||(t.SubscriptionStatus={})),function(e){e.Allowed="allowed",e.NotAllowed="not_allowed"}(t.PermissionStatus||(t.PermissionStatus={}))})(Cn||(Cn={}));class Gd extends Cn{get isUpstreamPaused(){var e;return(e=this.track)===null||e===void 0?void 0:e.isUpstreamPaused}constructor(e,n,r,i){super(e,n.sid,n.name,i),this.track=void 0,this.handleTrackEnded=()=>{this.emit(N.Ended)},this.updateInfo(n),this.setTrack(r)}setTrack(e){this.track&&this.track.off(N.Ended,this.handleTrackEnded),super.setTrack(e),e&&e.on(N.Ended,this.handleTrackEnded)}get isMuted(){return this.track?this.track.isMuted:super.isMuted}get audioTrack(){return super.audioTrack}get videoTrack(){return super.videoTrack}get isLocal(){return!0}mute(){return S(this,void 0,void 0,function*(){var e;return(e=this.track)===null||e===void 0?void 0:e.mute()})}unmute(){return S(this,void 0,void 0,function*(){var e;return(e=this.track)===null||e===void 0?void 0:e.unmute()})}pauseUpstream(){return S(this,void 0,void 0,function*(){var e;yield(e=this.track)===null||e===void 0?void 0:e.pauseUpstream()})}resumeUpstream(){return S(this,void 0,void 0,function*(){var e;yield(e=this.track)===null||e===void 0?void 0:e.resumeUpstream()})}getTrackFeatures(){var e;if(bn(this.track)){const n=this.track.getSourceTrackSettings(),r=new Set;return n.autoGainControl&&r.add(en.TF_AUTO_GAIN_CONTROL),n.echoCancellation&&r.add(en.TF_ECHO_CANCELLATION),n.noiseSuppression&&r.add(en.TF_NOISE_SUPPRESSION),n.channelCount&&n.channelCount>1&&r.add(en.TF_STEREO),!((e=this.options)===null||e===void 0)&&e.dtx||r.add(en.TF_NO_DTX),this.track.enhancedNoiseCancellation&&r.add(en.TF_ENHANCED_NOISE_CANCELLATION),Array.from(r.values())}else return[]}}var er;(function(t){t.Excellent="excellent",t.Good="good",t.Poor="poor",t.Lost="lost",t.Unknown="unknown"})(er||(er={}));function A2(t){switch(t){case Es.EXCELLENT:return er.Excellent;case Es.GOOD:return er.Good;case Es.POOR:return er.Poor;case Es.LOST:return er.Lost;default:return er.Unknown}}class oy extends nn.EventEmitter{get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions)===null||e===void 0?void 0:e.loggerContextCb)===null||n===void 0?void 0:n.call(e))}get isEncrypted(){return this.trackPublications.size>0&&Array.from(this.trackPublications.values()).every(e=>e.isEncrypted)}get isAgent(){var e;return((e=this.permissions)===null||e===void 0?void 0:e.agent)||this.kind===Ea.AGENT}get kind(){return this._kind}get attributes(){return Object.freeze(Object.assign({},this._attributes))}constructor(e,n,r,i,s,o){let a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:Ea.STANDARD;var l;super(),this.audioLevel=0,this.isSpeaking=!1,this._connectionQuality=er.Unknown,this.log=K,this.log=yn((l=o==null?void 0:o.loggerName)!==null&&l!==void 0?l:zt.Participant),this.loggerOptions=o,this.setMaxListeners(100),this.sid=e,this.identity=n,this.name=r,this.metadata=i,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this._kind=a,this._attributes=s??{}}getTrackPublications(){return Array.from(this.trackPublications.values())}getTrackPublication(e){for(const[,n]of this.trackPublications)if(n.source===e)return n}getTrackPublicationByName(e){for(const[,n]of this.trackPublications)if(n.trackName===e)return n}get connectionQuality(){return this._connectionQuality}get isCameraEnabled(){var e;const n=this.getTrackPublication(O.Source.Camera);return!(!((e=n==null?void 0:n.isMuted)!==null&&e!==void 0)||e)}get isMicrophoneEnabled(){var e;const n=this.getTrackPublication(O.Source.Microphone);return!(!((e=n==null?void 0:n.isMuted)!==null&&e!==void 0)||e)}get isScreenShareEnabled(){return!!this.getTrackPublication(O.Source.ScreenShare)}get isLocal(){return!1}get joinedAt(){return this.participantInfo?new Date(Number.parseInt(this.participantInfo.joinedAt.toString())*1e3):new Date}updateInfo(e){return this.participantInfo&&this.participantInfo.sid===e.sid&&this.participantInfo.version>e.version?!1:(this.identity=e.identity,this.sid=e.sid,this._setName(e.name),this._setMetadata(e.metadata),this._setAttributes(e.attributes),e.permission&&this.setPermissions(e.permission),this.participantInfo=e,this.log.trace("update participant info",Object.assign(Object.assign({},this.logContext),{info:e})),!0)}_setMetadata(e){const n=this.metadata!==e,r=this.metadata;this.metadata=e,n&&this.emit(A.ParticipantMetadataChanged,r)}_setName(e){const n=this.name!==e;this.name=e,n&&this.emit(A.ParticipantNameChanged,e)}_setAttributes(e){const n=GT(this.attributes,e);this._attributes=e,Object.keys(n).length>0&&this.emit(A.AttributesChanged,n)}setPermissions(e){var n,r,i,s,o,a;const l=this.permissions,c=e.canPublish!==((n=this.permissions)===null||n===void 0?void 0:n.canPublish)||e.canSubscribe!==((r=this.permissions)===null||r===void 0?void 0:r.canSubscribe)||e.canPublishData!==((i=this.permissions)===null||i===void 0?void 0:i.canPublishData)||e.hidden!==((s=this.permissions)===null||s===void 0?void 0:s.hidden)||e.recorder!==((o=this.permissions)===null||o===void 0?void 0:o.recorder)||e.canPublishSources.length!==this.permissions.canPublishSources.length||e.canPublishSources.some((u,d)=>{var h;return u!==((h=this.permissions)===null||h===void 0?void 0:h.canPublishSources[d])})||e.canSubscribeMetrics!==((a=this.permissions)===null||a===void 0?void 0:a.canSubscribeMetrics);return this.permissions=e,c&&this.emit(A.ParticipantPermissionsChanged,l),c}setIsSpeaking(e){e!==this.isSpeaking&&(this.isSpeaking=e,e&&(this.lastSpokeAt=new Date),this.emit(A.IsSpeakingChanged,e))}setConnectionQuality(e){const n=this._connectionQuality;this._connectionQuality=A2(e),n!==this._connectionQuality&&this.emit(A.ConnectionQualityChanged,this._connectionQuality)}setAudioContext(e){this.audioContext=e,this.audioTrackPublications.forEach(n=>bn(n.track)&&n.track.setAudioContext(e))}addTrackPublication(e){e.on(N.Muted,()=>{this.emit(A.TrackMuted,e)}),e.on(N.Unmuted,()=>{this.emit(A.TrackUnmuted,e)});const n=e;switch(n.track&&(n.track.sid=e.trackSid),this.trackPublications.set(e.trackSid,e),e.kind){case O.Kind.Audio:this.audioTrackPublications.set(e.trackSid,e);break;case O.Kind.Video:this.videoTrackPublications.set(e.trackSid,e);break}}}function j2(t){var e,n,r;if(!t.participantSid&&!t.participantIdentity)throw new Error("Invalid track permission, must provide at least one of participantIdentity and participantSid");return new Tv({participantIdentity:(e=t.participantIdentity)!==null&&e!==void 0?e:"",participantSid:(n=t.participantSid)!==null&&n!==void 0?n:"",allTracks:(r=t.allowAll)!==null&&r!==void 0?r:!1,trackSids:t.allowedTrackSids||[]})}const Za=15e3;class U2 extends oy{constructor(e,n,r,i,s){super(e,n,void 0,void 0,void 0,{loggerName:i.loggerName,loggerContextCb:()=>this.engine.logContext}),this.pendingPublishing=new Set,this.pendingPublishPromises=new Map,this.participantTrackPermissions=[],this.allParticipantsAllowedToSubscribe=!0,this.encryptionType=kt.NONE,this.enabledPublishVideoCodecs=[],this.pendingAcks=new Map,this.pendingResponses=new Map,this.handleReconnecting=()=>{this.reconnectFuture||(this.reconnectFuture=new I0)},this.handleReconnected=()=>{var o,a;(a=(o=this.reconnectFuture)===null||o===void 0?void 0:o.resolve)===null||a===void 0||a.call(o),this.reconnectFuture=void 0,this.updateTrackSubscriptionPermissions()},this.handleDisconnected=()=>{var o,a;this.reconnectFuture&&(this.reconnectFuture.promise.catch(l=>this.log.warn(l.message,this.logContext)),(a=(o=this.reconnectFuture)===null||o===void 0?void 0:o.reject)===null||a===void 0||a.call(o,"Got disconnected during reconnection attempt"),this.reconnectFuture=void 0)},this.handleSignalRequestResponse=o=>{const{requestId:a,reason:l,message:c}=o,u=this.pendingSignalRequests.get(a);u&&(l!==Xu.OK&&u.reject(new k0(c,l)),this.pendingSignalRequests.delete(a))},this.handleDataPacket=o=>{switch(o.value.case){case"rpcResponse":let a=o.value.value,l=null,c=null;a.value.case==="payload"?l=a.value.value:a.value.case==="error"&&(c=Te.fromProto(a.value.value)),this.handleIncomingRpcResponse(a.requestId,l,c);break;case"rpcAck":let u=o.value.value;this.handleIncomingRpcAck(u.requestId);break}},this.updateTrackSubscriptionPermissions=()=>{this.log.debug("updating track subscription permissions",Object.assign(Object.assign({},this.logContext),{allParticipantsAllowed:this.allParticipantsAllowedToSubscribe,participantTrackPermissions:this.participantTrackPermissions})),this.engine.client.sendUpdateSubscriptionPermissions(this.allParticipantsAllowedToSubscribe,this.participantTrackPermissions.map(o=>j2(o)))},this.onTrackUnmuted=o=>{this.onTrackMuted(o,o.isUpstreamPaused)},this.onTrackMuted=(o,a)=>{if(a===void 0&&(a=!0),!o.sid){this.log.error("could not update mute status for unpublished track",Object.assign(Object.assign({},this.logContext),ie(o)));return}this.engine.updateMuteStatus(o.sid,a)},this.onTrackUpstreamPaused=o=>{this.log.debug("upstream paused",Object.assign(Object.assign({},this.logContext),ie(o))),this.onTrackMuted(o,!0)},this.onTrackUpstreamResumed=o=>{this.log.debug("upstream resumed",Object.assign(Object.assign({},this.logContext),ie(o))),this.onTrackMuted(o,o.isMuted)},this.onTrackFeatureUpdate=o=>{const a=this.audioTrackPublications.get(o.sid);if(!a){this.log.warn("Could not update local audio track settings, missing publication for track ".concat(o.sid),this.logContext);return}this.engine.client.sendUpdateLocalAudioTrack(a.trackSid,a.getTrackFeatures())},this.handleSubscribedQualityUpdate=o=>S(this,void 0,void 0,function*(){var a,l,c,u,d,h;if(!(!((d=this.roomOptions)===null||d===void 0)&&d.dynacast))return;const f=this.videoTrackPublications.get(o.trackSid);if(!f){this.log.warn("received subscribed quality update for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:o.trackSid}));return}if(o.subscribedCodecs.length>0){if(!f.videoTrack)return;const p=yield f.videoTrack.setPublishingCodecs(o.subscribedCodecs);try{for(var m=!0,g=Wn(p),T;T=yield g.next(),a=T.done,!a;m=!0){u=T.value,m=!1;const v=u;PT(v)&&(this.log.debug("publish ".concat(v," for ").concat(f.videoTrack.sid),Object.assign(Object.assign({},this.logContext),ie(f))),yield this.publishAdditionalCodecForTrack(f.videoTrack,v,f.options))}}catch(v){l={error:v}}finally{try{!m&&!a&&(c=g.return)&&(yield c.call(g))}finally{if(l)throw l.error}}}else o.subscribedQualities.length>0&&(yield(h=f.videoTrack)===null||h===void 0?void 0:h.setPublishingLayers(o.subscribedQualities))}),this.handleLocalTrackUnpublished=o=>{const a=this.trackPublications.get(o.trackSid);if(!a){this.log.warn("received unpublished event for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:o.trackSid}));return}this.unpublishTrack(a.track)},this.handleTrackEnded=o=>S(this,void 0,void 0,function*(){if(o.source===O.Source.ScreenShare||o.source===O.Source.ScreenShareAudio)this.log.debug("unpublishing local track due to TrackEnded",Object.assign(Object.assign({},this.logContext),ie(o))),this.unpublishTrack(o);else if(o.isUserProvided)yield o.mute();else if(_r(o)||Jn(o))try{if(dt())try{const a=yield navigator==null?void 0:navigator.permissions.query({name:o.source===O.Source.Camera?"camera":"microphone"});if(a&&a.state==="denied")throw this.log.warn("user has revoked access to ".concat(o.source),Object.assign(Object.assign({},this.logContext),ie(o))),a.onchange=()=>{a.state!=="denied"&&(o.isMuted||o.restartTrack(),a.onchange=null)},new Error("GetUserMedia Permission denied")}catch{}o.isMuted||(this.log.debug("track ended, attempting to use a different device",Object.assign(Object.assign({},this.logContext),ie(o))),_r(o)?yield o.restartTrack({deviceId:"default"}):yield o.restartTrack())}catch{this.log.warn("could not restart track, muting instead",Object.assign(Object.assign({},this.logContext),ie(o))),yield o.mute()}}),this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this.engine=r,this.roomOptions=i,this.setupEngine(r),this.activeDeviceMap=new Map([["audioinput","default"],["videoinput","default"],["audiooutput","default"]]),this.pendingSignalRequests=new Map,this.rpcHandlers=s}get lastCameraError(){return this.cameraError}get lastMicrophoneError(){return this.microphoneError}get isE2EEEnabled(){return this.encryptionType!==kt.NONE}getTrackPublication(e){const n=super.getTrackPublication(e);if(n)return n}getTrackPublicationByName(e){const n=super.getTrackPublicationByName(e);if(n)return n}setupEngine(e){this.engine=e,this.engine.on(D.RemoteMute,(n,r)=>{const i=this.trackPublications.get(n);!i||!i.track||(r?i.mute():i.unmute())}),this.engine.on(D.Connected,this.handleReconnected).on(D.SignalRestarted,this.handleReconnected).on(D.SignalResumed,this.handleReconnected).on(D.Restarting,this.handleReconnecting).on(D.Resuming,this.handleReconnecting).on(D.LocalTrackUnpublished,this.handleLocalTrackUnpublished).on(D.SubscribedQualityUpdate,this.handleSubscribedQualityUpdate).on(D.Disconnected,this.handleDisconnected).on(D.SignalRequestResponse,this.handleSignalRequestResponse).on(D.DataPacketReceived,this.handleDataPacket)}setMetadata(e){return S(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({metadata:e})})}setName(e){return S(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({name:e})})}setAttributes(e){return S(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({attributes:e})})}requestMetadataUpdate(e){return S(this,arguments,void 0,function(n){var r=this;let{metadata:i,name:s,attributes:o}=n;return function*(){return new Promise((a,l)=>S(r,void 0,void 0,function*(){var c,u;try{let d=!1;const h=yield this.engine.client.sendUpdateLocalMetadata((c=i??this.metadata)!==null&&c!==void 0?c:"",(u=s??this.name)!==null&&u!==void 0?u:"",o),f=performance.now();for(this.pendingSignalRequests.set(h,{resolve:a,reject:m=>{l(m),d=!0},values:{name:s,metadata:i,attributes:o}});performance.now()-f<5e3&&!d;){if((!s||this.name===s)&&(!i||this.metadata===i)&&(!o||Object.entries(o).every(m=>{let[g,T]=m;return this.attributes[g]===T||T===""&&!this.attributes[g]}))){this.pendingSignalRequests.delete(h),a();return}yield ut(50)}l(new k0("Request to update local metadata timed out","TimeoutError"))}catch(d){d instanceof Error&&l(d)}}))}()})}setCameraEnabled(e,n,r){return this.setTrackEnabled(O.Source.Camera,e,n,r)}setMicrophoneEnabled(e,n,r){return this.setTrackEnabled(O.Source.Microphone,e,n,r)}setScreenShareEnabled(e,n,r){return this.setTrackEnabled(O.Source.ScreenShare,e,n,r)}setPermissions(e){const n=this.permissions,r=super.setPermissions(e);return r&&n&&this.emit(A.ParticipantPermissionsChanged,n),r}setE2EEEnabled(e){return S(this,void 0,void 0,function*(){this.encryptionType=e?kt.GCM:kt.NONE,yield this.republishAllTracks(void 0,!1)})}setTrackEnabled(e,n,r,i){return S(this,void 0,void 0,function*(){var s,o;this.log.debug("setTrackEnabled",Object.assign(Object.assign({},this.logContext),{source:e,enabled:n})),this.republishPromise&&(yield this.republishPromise);let a=this.getTrackPublication(e);if(n)if(a)yield a.unmute();else{let l;if(this.pendingPublishing.has(e)){const c=yield this.waitForPendingPublicationOfSource(e);return c||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e})),yield c==null?void 0:c.unmute(),c}this.pendingPublishing.add(e);try{switch(e){case O.Source.Camera:l=yield this.createTracks({video:(s=r)!==null&&s!==void 0?s:!0});break;case O.Source.Microphone:l=yield this.createTracks({audio:(o=r)!==null&&o!==void 0?o:!0});break;case O.Source.ScreenShare:l=yield this.createScreenTracks(Object.assign({},r));break;default:throw new kn(e)}}catch(c){throw l==null||l.forEach(u=>{u.stop()}),c instanceof Error&&this.emit(A.MediaDevicesError,c),this.pendingPublishing.delete(e),c}try{const c=[];for(const d of l)this.log.info("publishing track",Object.assign(Object.assign({},this.logContext),ie(d))),c.push(this.publishTrack(d,i));[a]=yield Promise.all(c)}catch(c){throw l==null||l.forEach(u=>{u.stop()}),c}finally{this.pendingPublishing.delete(e)}}else if(!(a!=null&&a.track)&&this.pendingPublishing.has(e)&&(a=yield this.waitForPendingPublicationOfSource(e),a||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e}))),a&&a.track)if(e===O.Source.ScreenShare){a=yield this.unpublishTrack(a.track);const l=this.getTrackPublication(O.Source.ScreenShareAudio);l&&l.track&&this.unpublishTrack(l.track)}else yield a.mute();return a})}enableCameraAndMicrophone(){return S(this,void 0,void 0,function*(){if(!(this.pendingPublishing.has(O.Source.Camera)||this.pendingPublishing.has(O.Source.Microphone))){this.pendingPublishing.add(O.Source.Camera),this.pendingPublishing.add(O.Source.Microphone);try{const e=yield this.createTracks({audio:!0,video:!0});yield Promise.all(e.map(n=>this.publishTrack(n)))}finally{this.pendingPublishing.delete(O.Source.Camera),this.pendingPublishing.delete(O.Source.Microphone)}}})}createTracks(e){return S(this,void 0,void 0,function*(){var n,r;e??(e={});const i=L0(e,(n=this.roomOptions)===null||n===void 0?void 0:n.audioCaptureDefaults,(r=this.roomOptions)===null||r===void 0?void 0:r.videoCaptureDefaults),{audioProcessor:s,videoProcessor:o,optionsWithoutProcessor:a}=_d(i),l=Va(a);let c;try{c=yield navigator.mediaDevices.getUserMedia(l)}catch(u){throw u instanceof Error&&(l.audio&&(this.microphoneError=u),l.video&&(this.cameraError=u)),u}return l.audio&&(this.microphoneError=void 0,this.emit(A.AudioStreamAcquired)),l.video&&(this.cameraError=void 0),Promise.all(c.getTracks().map(u=>S(this,void 0,void 0,function*(){const d=u.kind==="audio";let h;const f=d?l.audio:l.video;typeof f!="boolean"&&(h=f);const m=Q0(u,h,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});return m.kind===O.Kind.Video?m.source=O.Source.Camera:m.kind===O.Kind.Audio&&(m.source=O.Source.Microphone,m.setAudioContext(this.audioContext)),m.mediaStream=c,bn(m)&&s?yield m.setProcessor(s):Ti(m)&&o&&(yield m.setProcessor(o)),m})))})}createScreenTracks(e){return S(this,void 0,void 0,function*(){if(e===void 0&&(e={}),navigator.mediaDevices.getDisplayMedia===void 0)throw new ud("getDisplayMedia not supported");e.resolution===void 0&&!MT()&&(e.resolution=gd.h1080fps30.resolution);const n=$T(e),r=yield navigator.mediaDevices.getDisplayMedia(n),i=r.getVideoTracks();if(i.length===0)throw new kn("no video track found");const s=new Ka(i[0],void 0,!1,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});s.source=O.Source.ScreenShare,e.contentHint&&(s.mediaStreamTrack.contentHint=e.contentHint);const o=[s];if(r.getAudioTracks().length>0){this.emit(A.AudioStreamAcquired);const a=new Wa(r.getAudioTracks()[0],void 0,!1,this.audioContext,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});a.source=O.Source.ScreenShareAudio,o.push(a)}return o})}publishTrack(e,n){return S(this,void 0,void 0,function*(){return this.publishOrRepublishTrack(e,n)})}publishOrRepublishTrack(e,n){return S(this,arguments,void 0,function(r,i){var s=this;let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return function*(){var a,l,c,u;_r(r)&&r.setAudioContext(s.audioContext),yield(a=s.reconnectFuture)===null||a===void 0?void 0:a.promise,s.republishPromise&&!o&&(yield s.republishPromise),wi(r)&&s.pendingPublishPromises.has(r)&&(yield s.pendingPublishPromises.get(r));let d;if(r instanceof MediaStreamTrack)d=r.getConstraints();else{d=r.constraints;let p;switch(r.source){case O.Source.Microphone:p="audioinput";break;case O.Source.Camera:p="videoinput"}p&&s.activeDeviceMap.has(p)&&(d=Object.assign(Object.assign({},d),{deviceId:s.activeDeviceMap.get(p)}))}if(r instanceof MediaStreamTrack)switch(r.kind){case"audio":r=new Wa(r,d,!0,s.audioContext,{loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});break;case"video":r=new Ka(r,d,!0,{loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});break;default:throw new kn("unsupported MediaStreamTrack kind ".concat(r.kind))}else r.updateLoggerOptions({loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});let h;if(s.trackPublications.forEach(p=>{p.track&&p.track===r&&(h=p)}),h)return s.log.warn("track has already been published, skipping",Object.assign(Object.assign({},s.logContext),ie(h))),h;const f="channelCount"in r.mediaStreamTrack.getSettings()&&r.mediaStreamTrack.getSettings().channelCount===2||r.mediaStreamTrack.getConstraints().channelCount===2,m=(l=i==null?void 0:i.forceStereo)!==null&&l!==void 0?l:f;m&&(i||(i={}),i.dtx===void 0&&s.log.info("Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.",Object.assign(Object.assign({},s.logContext),ie(r))),i.red===void 0&&s.log.info("Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work."),(c=i.dtx)!==null&&c!==void 0||(i.dtx=!1),(u=i.red)!==null&&u!==void 0||(i.red=!1));const g=Object.assign(Object.assign({},s.roomOptions.publishDefaults),i);!NT()&&s.roomOptions.e2ee&&(s.log.info("End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2",Object.assign({},s.logContext)),g.simulcast=!1),g.source&&(r.source=g.source);const T=s.publish(r,g,m);s.pendingPublishPromises.set(r,T);try{return yield T}catch(p){throw p}finally{s.pendingPublishPromises.delete(r)}}()})}hasPermissionsToPublish(e){if(!this.permissions)return this.log.warn("no permissions present for publishing track",Object.assign(Object.assign({},this.logContext),ie(e))),!1;const{canPublish:n,canPublishSources:r}=this.permissions;return n&&(r.length===0||r.map(i=>KT(i)).includes(e.source))?!0:(this.log.warn("insufficient permissions to publish",Object.assign(Object.assign({},this.logContext),ie(e))),!1)}publish(e,n,r){return S(this,void 0,void 0,function*(){var i,s,o,a,l,c,u,d,h,f;if(!this.hasPermissionsToPublish(e))throw new vT("failed to publish track, insufficient permissions",403);Array.from(this.trackPublications.values()).find(C=>wi(e)&&C.source===e.source)&&e.source!==O.Source.Unknown&&this.log.info("publishing a second track with the same source: ".concat(e.source),Object.assign(Object.assign({},this.logContext),ie(e))),n.stopMicTrackOnMute&&bn(e)&&(e.stopOnMute=!0),e.source===O.Source.ScreenShare&&Si()&&(n.simulcast=!1),n.videoCodec==="av1"&&!IT()&&(n.videoCodec=void 0),n.videoCodec==="vp9"&&!OT()&&(n.videoCodec=void 0),n.videoCodec===void 0&&(n.videoCodec=Ad),this.enabledPublishVideoCodecs.length>0&&(this.enabledPublishVideoCodecs.some(C=>n.videoCodec===Ha(C.mime))||(n.videoCodec=Ha(this.enabledPublishVideoCodecs[0].mime)));const g=n.videoCodec;e.on(N.Muted,this.onTrackMuted),e.on(N.Unmuted,this.onTrackUnmuted),e.on(N.Ended,this.handleTrackEnded),e.on(N.UpstreamPaused,this.onTrackUpstreamPaused),e.on(N.UpstreamResumed,this.onTrackUpstreamResumed),e.on(N.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate);const T=new Ku({cid:e.mediaStreamTrack.id,name:n.name,type:O.kindToProto(e.kind),muted:e.isMuted,source:O.sourceToProto(e.source),disableDtx:!(!((i=n.dtx)!==null&&i!==void 0)||i),encryption:this.encryptionType,stereo:r,disableRed:this.isE2EEEnabled||!(!((s=n.red)!==null&&s!==void 0)||s),stream:n==null?void 0:n.stream,backupCodecPolicy:n==null?void 0:n.backupCodecPolicy});let p;if(e.kind===O.Kind.Video){let C={width:0,height:0};try{C=yield e.waitForDimensions()}catch{const w=(a=(o=this.roomOptions.videoCaptureDefaults)===null||o===void 0?void 0:o.resolution)!==null&&a!==void 0?a:Os.h720.resolution;C={width:w.width,height:w.height},this.log.error("could not determine track dimensions, using defaults",Object.assign(Object.assign(Object.assign({},this.logContext),ie(e)),{dims:C}))}T.width=C.width,T.height=C.height,Jn(e)&&(Ls(g)&&(e.source===O.Source.ScreenShare&&(n.scalabilityMode="L1T3","contentHint"in e.mediaStreamTrack&&(e.mediaStreamTrack.contentHint="motion",this.log.info("forcing contentHint to motion for screenshare with SVC codecs",Object.assign(Object.assign({},this.logContext),ie(e))))),n.scalabilityMode=(l=n.scalabilityMode)!==null&&l!==void 0?l:"L3T3_KEY"),T.simulcastCodecs=[new Gu({codec:g,cid:e.mediaStreamTrack.id})],n.backupCodec===!0&&(n.backupCodec={codec:Ad}),n.backupCodec&&g!==n.backupCodec.codec&&T.encryption===kt.NONE&&(this.roomOptions.dynacast||(this.roomOptions.dynacast=!0),T.simulcastCodecs.push(new Gu({codec:n.backupCodec.codec,cid:""})))),p=zd(e.source===O.Source.ScreenShare,T.width,T.height,n),T.layers=ty(T.width,T.height,p,Ls(n.videoCodec))}else e.kind===O.Kind.Audio&&(p=[{maxBitrate:(c=n.audioPreset)===null||c===void 0?void 0:c.maxBitrate,priority:(d=(u=n.audioPreset)===null||u===void 0?void 0:u.priority)!==null&&d!==void 0?d:"high",networkPriority:(f=(h=n.audioPreset)===null||h===void 0?void 0:h.priority)!==null&&f!==void 0?f:"high"}]);if(!this.engine||this.engine.isClosed)throw new Me("cannot publish track when not connected");const v=()=>S(this,void 0,void 0,function*(){var C,x,w;if(!this.engine.pcManager)throw new Me("pcManager is not ready");if(e.sender=yield this.engine.createSender(e,n,p),Jn(e)&&((C=n.degradationPreference)!==null&&C!==void 0||(n.degradationPreference=S2(e)),e.setDegradationPreference(n.degradationPreference)),p)if(Si()&&e.kind===O.Kind.Audio){let E;for(const _ of this.engine.pcManager.publisher.getTransceivers())if(_.sender===e.sender){E=_;break}E&&this.engine.pcManager.publisher.setTrackCodecBitrate({transceiver:E,codec:"opus",maxbr:!((x=p[0])===null||x===void 0)&&x.maxBitrate?p[0].maxBitrate/1e3:0})}else e.codec&&Ls(e.codec)&&(!((w=p[0])===null||w===void 0)&&w.maxBitrate)&&this.engine.pcManager.publisher.setTrackCodecBitrate({cid:T.cid,codec:e.codec,maxbr:p[0].maxBitrate/1e3});yield this.engine.negotiate()});let y;if(this.enabledPublishVideoCodecs.length>0)y=(yield Promise.all([this.engine.addTrack(T),v()]))[0];else{y=yield this.engine.addTrack(T);let C;if(y.codecs.forEach(x=>{C===void 0&&(C=x.mimeType)}),C&&e.kind===O.Kind.Video){const x=Ha(C);x!==g&&(this.log.debug("falling back to server selected codec",Object.assign(Object.assign(Object.assign({},this.logContext),ie(e)),{codec:x})),n.videoCodec=x,p=zd(e.source===O.Source.ScreenShare,T.width,T.height,n))}yield v()}const k=new Gd(e.kind,y,e,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});return k.options=n,e.sid=y.sid,this.log.debug("publishing ".concat(e.kind," with encodings"),Object.assign(Object.assign({},this.logContext),{encodings:p,trackInfo:y})),Jn(e)?e.startMonitor(this.engine.client):_r(e)&&e.startMonitor(),this.addTrackPublication(k),this.emit(A.LocalTrackPublished,k),k})}get isLocal(){return!0}publishAdditionalCodecForTrack(e,n,r){return S(this,void 0,void 0,function*(){var i;if(this.encryptionType!==kt.NONE)return;let s;if(this.trackPublications.forEach(f=>{f.track&&f.track===e&&(s=f)}),!s)throw new kn("track is not published");if(!Jn(e))throw new kn("track is not a video track");const o=Object.assign(Object.assign({},(i=this.roomOptions)===null||i===void 0?void 0:i.publishDefaults),r),a=k2(e,n,o);if(!a){this.log.info("backup codec has been disabled, ignoring request to add additional codec for track",Object.assign(Object.assign({},this.logContext),ie(e)));return}const l=e.addSimulcastTrack(n,a);if(!l)return;const c=new Ku({cid:l.mediaStreamTrack.id,type:O.kindToProto(e.kind),muted:e.isMuted,source:O.sourceToProto(e.source),sid:e.sid,simulcastCodecs:[{codec:o.videoCodec,cid:l.mediaStreamTrack.id}]});if(c.layers=ty(c.width,c.height,a),!this.engine||this.engine.isClosed)throw new Me("cannot publish track when not connected");const u=()=>S(this,void 0,void 0,function*(){yield this.engine.createSimulcastSender(e,l,o,a),yield this.engine.negotiate()}),h=(yield Promise.all([this.engine.addTrack(c),u()]))[0];this.log.debug("published ".concat(n," for track ").concat(e.sid),Object.assign(Object.assign({},this.logContext),{encodings:a,trackInfo:h}))})}unpublishTrack(e,n){return S(this,void 0,void 0,function*(){var r,i;if(wi(e)){const c=this.pendingPublishPromises.get(e);c&&(this.log.info("awaiting publish promise before attempting to unpublish",Object.assign(Object.assign({},this.logContext),ie(e))),yield c)}const s=this.getPublicationForTrack(e),o=s?ie(s):void 0;if(this.log.debug("unpublishing track",Object.assign(Object.assign({},this.logContext),o)),!s||!s.track){this.log.warn("track was not unpublished because no publication was found",Object.assign(Object.assign({},this.logContext),o));return}e=s.track,e.off(N.Muted,this.onTrackMuted),e.off(N.Unmuted,this.onTrackUnmuted),e.off(N.Ended,this.handleTrackEnded),e.off(N.UpstreamPaused,this.onTrackUpstreamPaused),e.off(N.UpstreamResumed,this.onTrackUpstreamResumed),e.off(N.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate),n===void 0&&(n=(i=(r=this.roomOptions)===null||r===void 0?void 0:r.stopLocalTrackOnUnpublish)!==null&&i!==void 0?i:!0),n?e.stop():e.stopMonitor();let a=!1;const l=e.sender;if(e.sender=void 0,this.engine.pcManager&&this.engine.pcManager.currentState<we.FAILED&&l)try{for(const c of this.engine.pcManager.publisher.getTransceivers())c.sender===l&&(c.direction="inactive",a=!0);if(this.engine.removeTrack(l)&&(a=!0),Jn(e)){for(const[,c]of e.simulcastCodecs)c.sender&&(this.engine.removeTrack(c.sender)&&(a=!0),c.sender=void 0);e.simulcastCodecs.clear()}}catch(c){this.log.warn("failed to unpublish track",Object.assign(Object.assign(Object.assign({},this.logContext),o),{error:c}))}switch(this.trackPublications.delete(s.trackSid),s.kind){case O.Kind.Audio:this.audioTrackPublications.delete(s.trackSid);break;case O.Kind.Video:this.videoTrackPublications.delete(s.trackSid);break}return this.emit(A.LocalTrackUnpublished,s),s.setTrack(void 0),a&&(yield this.engine.negotiate()),s})}unpublishTracks(e){return S(this,void 0,void 0,function*(){return(yield Promise.all(e.map(r=>this.unpublishTrack(r)))).filter(r=>!!r)})}republishAllTracks(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){r.republishPromise&&(yield r.republishPromise),r.republishPromise=new Promise((s,o)=>S(r,void 0,void 0,function*(){try{const a=[];this.trackPublications.forEach(l=>{l.track&&(n&&(l.options=Object.assign(Object.assign({},l.options),n)),a.push(l))}),yield Promise.all(a.map(l=>S(this,void 0,void 0,function*(){const c=l.track;yield this.unpublishTrack(c,!1),i&&!c.isMuted&&c.source!==O.Source.ScreenShare&&c.source!==O.Source.ScreenShareAudio&&(_r(c)||Jn(c))&&!c.isUserProvided&&(this.log.debug("restarting existing track",Object.assign(Object.assign({},this.logContext),{track:l.trackSid})),yield c.restartTrack()),yield this.publishOrRepublishTrack(c,l.options,!0)}))),s()}catch(a){o(a)}finally{this.republishPromise=void 0}})),yield r.republishPromise}()})}publishData(e){return S(this,arguments,void 0,function(n){var r=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function*(){const s=i.reliable?Y.RELIABLE:Y.LOSSY,o=i.destinationIdentities,a=i.topic,l=new ct({kind:s,value:{case:"user",value:new iv({participantIdentity:r.identity,payload:n,destinationIdentities:o,topic:a})}});yield r.engine.sendDataPacket(l,s)}()})}publishDtmf(e,n){return S(this,void 0,void 0,function*(){const r=new ct({kind:Y.RELIABLE,value:{case:"sipDtmf",value:new sv({code:e,digit:n})}});yield this.engine.sendDataPacket(r,Y.RELIABLE)})}sendChatMessage(e,n){return S(this,void 0,void 0,function*(){const r={id:crypto.randomUUID(),message:e,timestamp:Date.now(),attachedFiles:n==null?void 0:n.attachments},i=new ct({value:{case:"chatMessage",value:new zu(Object.assign(Object.assign({},r),{timestamp:pe.parse(r.timestamp)}))}});return yield this.engine.sendDataPacket(i,Y.RELIABLE),this.emit(A.ChatMessage,r),r})}editChatMessage(e,n){return S(this,void 0,void 0,function*(){const r=Object.assign(Object.assign({},n),{message:e,editTimestamp:Date.now()}),i=new ct({value:{case:"chatMessage",value:new zu(Object.assign(Object.assign({},r),{timestamp:pe.parse(r.timestamp),editTimestamp:pe.parse(r.editTimestamp)}))}});return yield this.engine.sendDataPacket(i,Y.RELIABLE),this.emit(A.ChatMessage,r),r})}sendText(e,n){return S(this,void 0,void 0,function*(){var r;const i=crypto.randomUUID(),o=new TextEncoder().encode(e).byteLength,a=(r=n==null?void 0:n.attachments)===null||r===void 0?void 0:r.map(()=>crypto.randomUUID()),l=new Array(a?a.length+1:1).fill(0),c=(d,h)=>{var f;l[h]=d;const m=l.reduce((g,T)=>g+T,0);(f=n==null?void 0:n.onProgress)===null||f===void 0||f.call(n,m)},u=yield this.streamText({streamId:i,totalSize:o,destinationIdentities:n==null?void 0:n.destinationIdentities,topic:n==null?void 0:n.topic,attachedStreamIds:a,attributes:n==null?void 0:n.attributes});return yield u.write(e),c(1,0),yield u.close(),n!=null&&n.attachments&&a&&(yield Promise.all(n.attachments.map((d,h)=>S(this,void 0,void 0,function*(){return this._sendFile(a[h],d,{topic:n.topic,mimeType:d.type,onProgress:f=>{c(f,h+1)}})})))),u.info})}streamText(e){return S(this,void 0,void 0,function*(){var n,r;const i=(n=e==null?void 0:e.streamId)!==null&&n!==void 0?n:crypto.randomUUID(),s={id:i,mimeType:"text/plain",timestamp:Date.now(),topic:(r=e==null?void 0:e.topic)!==null&&r!==void 0?r:"",size:e==null?void 0:e.totalSize,attributes:e==null?void 0:e.attributes},o=new Hu({streamId:i,mimeType:s.mimeType,topic:s.topic,timestamp:Pr(s.timestamp),totalLength:Pr(e==null?void 0:e.totalSize),attributes:s.attributes,contentHeader:{case:"textHeader",value:new gv({version:e==null?void 0:e.version,attachedStreamIds:e==null?void 0:e.attachedStreamIds,replyToStreamId:e==null?void 0:e.replyToStreamId,operationType:(e==null?void 0:e.type)==="update"?Vu.UPDATE:Vu.CREATE})}}),a=e==null?void 0:e.destinationIdentities,l=new ct({destinationIdentities:a,value:{case:"streamHeader",value:o}});yield this.engine.sendDataPacket(l,Y.RELIABLE);let c=0;const u=this,d=new WritableStream({write(m){return S(this,void 0,void 0,function*(){for(const g of HT(m,Za)){yield u.engine.waitForBufferStatusLow(Y.RELIABLE);const T=new $u({content:g,streamId:i,chunkIndex:Pr(c)}),p=new ct({destinationIdentities:a,value:{case:"streamChunk",value:T}});yield u.engine.sendDataPacket(p,Y.RELIABLE),c+=1}})},close(){return S(this,void 0,void 0,function*(){const m=new qu({streamId:i}),g=new ct({destinationIdentities:a,value:{case:"streamTrailer",value:m}});yield u.engine.sendDataPacket(g,Y.RELIABLE)})},abort(m){console.log("Sink error:",m)}});let h=()=>S(this,void 0,void 0,function*(){yield f.close()});u.engine.once(D.Closing,h);const f=new L2(d,s,()=>this.engine.off(D.Closing,h));return f})}sendFile(e,n){return S(this,void 0,void 0,function*(){const r=crypto.randomUUID();return yield this._sendFile(r,e,n),{id:r}})}_sendFile(e,n,r){return S(this,void 0,void 0,function*(){var i,s;const o=n.size,a=new Hu({totalLength:Pr(o),mimeType:(i=r==null?void 0:r.mimeType)!==null&&i!==void 0?i:n.type,streamId:e,topic:r==null?void 0:r.topic,encryptionType:r==null?void 0:r.encryptionType,timestamp:Pr(Date.now()),contentHeader:{case:"byteHeader",value:new vv({name:n.name})}}),l=r==null?void 0:r.destinationIdentities,c=new ct({destinationIdentities:l,value:{case:"streamHeader",value:a}});yield this.engine.sendDataPacket(c,Y.RELIABLE);function u(m){return new Promise(g=>{const T=new FileReader;T.onload=()=>{g(new Uint8Array(T.result))},T.readAsArrayBuffer(m)})}const d=Math.ceil(o/Za);for(let m=0;m<d;m++){const g=yield u(n.slice(m*Za,Math.min((m+1)*Za,o)));yield this.engine.waitForBufferStatusLow(Y.RELIABLE);const T=new $u({content:g,streamId:e,chunkIndex:Pr(m)}),p=new ct({destinationIdentities:l,value:{case:"streamChunk",value:T}});yield this.engine.sendDataPacket(p,Y.RELIABLE),(s=r==null?void 0:r.onProgress)===null||s===void 0||s.call(r,(m+1)/d)}const h=new qu({streamId:e}),f=new ct({destinationIdentities:l,value:{case:"streamTrailer",value:h}});yield this.engine.sendDataPacket(f,Y.RELIABLE)})}performRpc(e){return S(this,arguments,void 0,function(n){var r=this;let{destinationIdentity:i,method:s,payload:o,responseTimeout:a=1e4}=n;return function*(){return new Promise((c,u)=>S(r,void 0,void 0,function*(){var d,h,f,m;if(Ud(o)>G0){u(Te.builtIn("REQUEST_PAYLOAD_TOO_LARGE"));return}if(!((h=(d=this.engine.latestJoinResponse)===null||d===void 0?void 0:d.serverInfo)===null||h===void 0)&&h.version&&Er((m=(f=this.engine.latestJoinResponse)===null||f===void 0?void 0:f.serverInfo)===null||m===void 0?void 0:m.version,"1.8.0")<0){u(Te.builtIn("UNSUPPORTED_SERVER"));return}const g=crypto.randomUUID();yield this.publishRpcRequest(i,g,s,o,a-2e3);const T=setTimeout(()=>{this.pendingAcks.delete(g),u(Te.builtIn("CONNECTION_TIMEOUT")),this.pendingResponses.delete(g),clearTimeout(p)},2e3);this.pendingAcks.set(g,{resolve:()=>{clearTimeout(T)},participantIdentity:i});const p=setTimeout(()=>{this.pendingResponses.delete(g),u(Te.builtIn("RESPONSE_TIMEOUT"))},a);this.pendingResponses.set(g,{resolve:(v,y)=>{clearTimeout(p),this.pendingAcks.has(g)&&(console.warn("RPC response received before ack",g),this.pendingAcks.delete(g),clearTimeout(T)),y?u(y):c(v??"")},participantIdentity:i})}))}()})}registerRpcMethod(e,n){this.rpcHandlers.has(e)&&this.log.warn("you're overriding the RPC handler for method ".concat(e,", in the future this will throw an error")),this.rpcHandlers.set(e,n)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}setTrackSubscriptionPermissions(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];this.participantTrackPermissions=n,this.allParticipantsAllowedToSubscribe=e,this.engine.client.isDisconnected||this.updateTrackSubscriptionPermissions()}handleIncomingRpcAck(e){const n=this.pendingAcks.get(e);n?(n.resolve(),this.pendingAcks.delete(e)):console.error("Ack received for unexpected RPC request",e)}handleIncomingRpcResponse(e,n,r){const i=this.pendingResponses.get(e);i?(i.resolve(n,r),this.pendingResponses.delete(e)):console.error("Response received for unexpected RPC request",e)}publishRpcRequest(e,n,r,i,s){return S(this,void 0,void 0,function*(){const o=new ct({destinationIdentities:[e],kind:Y.RELIABLE,value:{case:"rpcRequest",value:new ov({id:n,method:r,payload:i,responseTimeoutMs:s,version:1})}});yield this.engine.sendDataPacket(o,Y.RELIABLE)})}handleParticipantDisconnected(e){for(const[n,{participantIdentity:r}]of this.pendingAcks)r===e&&this.pendingAcks.delete(n);for(const[n,{participantIdentity:r,resolve:i}]of this.pendingResponses)r===e&&(i(null,Te.builtIn("RECIPIENT_DISCONNECTED")),this.pendingResponses.delete(n))}setEnabledPublishCodecs(e){this.enabledPublishVideoCodecs=e.filter(n=>n.mime.split("/")[0].toLowerCase()==="video")}updateInfo(e){return e.sid!==this.sid||!super.updateInfo(e)?!1:(e.tracks.forEach(n=>{var r,i;const s=this.trackPublications.get(n.sid);if(s){const o=s.isMuted||((i=(r=s.track)===null||r===void 0?void 0:r.isUpstreamPaused)!==null&&i!==void 0?i:!1);o!==n.muted&&(this.log.debug("updating server mute state after reconcile",Object.assign(Object.assign(Object.assign({},this.logContext),ie(s)),{mutedOnServer:o})),this.engine.client.sendMuteTrack(n.sid,o))}}),!0)}getPublicationForTrack(e){let n;return this.trackPublications.forEach(r=>{const i=r.track;i&&(e instanceof MediaStreamTrack?(_r(i)||Jn(i))&&i.mediaStreamTrack===e&&(n=r):e===i&&(n=r))}),n}waitForPendingPublicationOfSource(e){return S(this,void 0,void 0,function*(){const r=Date.now();for(;Date.now()<r+1e4;){const i=Array.from(this.pendingPublishPromises.entries()).find(s=>{let[o]=s;return o.source===e});if(i)return i[1];yield ut(20)}})}}class F2 extends Cn{constructor(e,n,r,i){super(e,n.sid,n.name,i),this.track=void 0,this.allowed=!0,this.disabled=!1,this.currentVideoQuality=Et.HIGH,this.handleEnded=s=>{this.setTrack(void 0),this.emit(N.Ended,s)},this.handleVisibilityChange=s=>{this.log.debug("adaptivestream video visibility ".concat(this.trackSid,", visible=").concat(s),this.logContext),this.disabled=!s,this.emitTrackUpdate()},this.handleVideoDimensionsChange=s=>{this.log.debug("adaptivestream video dimensions ".concat(s.width,"x").concat(s.height),this.logContext),this.videoDimensions=s,this.emitTrackUpdate()},this.subscribed=r,this.updateInfo(n)}setSubscribed(e){const n=this.subscriptionStatus,r=this.permissionStatus;this.subscribed=e,e&&(this.allowed=!0);const i=new Pa({trackSids:[this.trackSid],subscribe:this.subscribed,participantTracks:[new uv({participantSid:"",trackSids:[this.trackSid]})]});this.emit(N.UpdateSubscription,i),this.emitSubscriptionUpdateIfChanged(n),this.emitPermissionUpdateIfChanged(r)}get subscriptionStatus(){return this.subscribed===!1?Cn.SubscriptionStatus.Unsubscribed:super.isSubscribed?Cn.SubscriptionStatus.Subscribed:Cn.SubscriptionStatus.Desired}get permissionStatus(){return this.allowed?Cn.PermissionStatus.Allowed:Cn.PermissionStatus.NotAllowed}get isSubscribed(){return this.subscribed===!1?!1:super.isSubscribed}get isDesired(){return this.subscribed!==!1}get isEnabled(){return!this.disabled}get isLocal(){return!1}setEnabled(e){!this.isManualOperationAllowed()||this.disabled===!e||(this.disabled=!e,this.emitTrackUpdate())}setVideoQuality(e){!this.isManualOperationAllowed()||this.currentVideoQuality===e||(this.currentVideoQuality=e,this.videoDimensions=void 0,this.emitTrackUpdate())}setVideoDimensions(e){var n,r;this.isManualOperationAllowed()&&(((n=this.videoDimensions)===null||n===void 0?void 0:n.width)===e.width&&((r=this.videoDimensions)===null||r===void 0?void 0:r.height)===e.height||(Ed(this.track)&&(this.videoDimensions=e),this.currentVideoQuality=void 0,this.emitTrackUpdate()))}setVideoFPS(e){this.isManualOperationAllowed()&&Ed(this.track)&&this.fps!==e&&(this.fps=e,this.emitTrackUpdate())}get videoQuality(){return this.currentVideoQuality}setTrack(e){const n=this.subscriptionStatus,r=this.permissionStatus,i=this.track;i!==e&&(i&&(i.off(N.VideoDimensionsChanged,this.handleVideoDimensionsChange),i.off(N.VisibilityChanged,this.handleVisibilityChange),i.off(N.Ended,this.handleEnded),i.detach(),i.stopMonitor(),this.emit(N.Unsubscribed,i)),super.setTrack(e),e&&(e.sid=this.trackSid,e.on(N.VideoDimensionsChanged,this.handleVideoDimensionsChange),e.on(N.VisibilityChanged,this.handleVisibilityChange),e.on(N.Ended,this.handleEnded),this.emit(N.Subscribed,e)),this.emitPermissionUpdateIfChanged(r),this.emitSubscriptionUpdateIfChanged(n))}setAllowed(e){const n=this.subscriptionStatus,r=this.permissionStatus;this.allowed=e,this.emitPermissionUpdateIfChanged(r),this.emitSubscriptionUpdateIfChanged(n)}setSubscriptionError(e){this.emit(N.SubscriptionFailed,e)}updateInfo(e){super.updateInfo(e);const n=this.metadataMuted;this.metadataMuted=e.muted,this.track?this.track.setMuted(e.muted):n!==e.muted&&this.emit(e.muted?N.Muted:N.Unmuted)}emitSubscriptionUpdateIfChanged(e){const n=this.subscriptionStatus;e!==n&&this.emit(N.SubscriptionStatusChanged,n,e)}emitPermissionUpdateIfChanged(e){this.permissionStatus!==e&&this.emit(N.SubscriptionPermissionChanged,this.permissionStatus,e)}isManualOperationAllowed(){return this.kind===O.Kind.Video&&this.isAdaptiveStream?(this.log.warn("adaptive stream is enabled, cannot change video track settings",this.logContext),!1):this.isDesired?!0:(this.log.warn("cannot update track settings when not subscribed",this.logContext),!1)}get isAdaptiveStream(){return Ed(this.track)&&this.track.isAdaptiveStream}emitTrackUpdate(){const e=new kv({trackSids:[this.trackSid],disabled:this.disabled,fps:this.fps});this.videoDimensions?(e.width=Math.ceil(this.videoDimensions.width),e.height=Math.ceil(this.videoDimensions.height)):this.currentVideoQuality!==void 0?e.quality=this.currentVideoQuality:e.quality=Et.HIGH,this.emit(N.UpdateSettings,e)}}class Qa extends oy{static fromParticipantInfo(e,n,r){return new Qa(e,n.sid,n.identity,n.name,n.metadata,n.attributes,r,n.kind)}get logContext(){return Object.assign(Object.assign({},super.logContext),{rpID:this.sid,remoteParticipant:this.identity})}constructor(e,n,r,i,s,o,a){let l=arguments.length>7&&arguments[7]!==void 0?arguments[7]:Ea.STANDARD;super(n,r||"",i,s,o,a,l),this.signalClient=e,this.trackPublications=new Map,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.volumeMap=new Map}addTrackPublication(e){super.addTrackPublication(e),e.on(N.UpdateSettings,n=>{this.log.debug("send update settings",Object.assign(Object.assign({},this.logContext),ie(e))),this.signalClient.sendUpdateTrackSettings(n)}),e.on(N.UpdateSubscription,n=>{n.participantTracks.forEach(r=>{r.participantSid=this.sid}),this.signalClient.sendUpdateSubscription(n)}),e.on(N.SubscriptionPermissionChanged,n=>{this.emit(A.TrackSubscriptionPermissionChanged,e,n)}),e.on(N.SubscriptionStatusChanged,n=>{this.emit(A.TrackSubscriptionStatusChanged,e,n)}),e.on(N.Subscribed,n=>{this.emit(A.TrackSubscribed,n,e)}),e.on(N.Unsubscribed,n=>{this.emit(A.TrackUnsubscribed,n,e)}),e.on(N.SubscriptionFailed,n=>{this.emit(A.TrackSubscriptionFailed,e.trackSid,n)})}getTrackPublication(e){const n=super.getTrackPublication(e);if(n)return n}getTrackPublicationByName(e){const n=super.getTrackPublicationByName(e);if(n)return n}setVolume(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:O.Source.Microphone;this.volumeMap.set(n,e);const r=this.getTrackPublication(n);r&&r.track&&r.track.setVolume(e)}getVolume(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:O.Source.Microphone;const n=this.getTrackPublication(e);return n&&n.track?n.track.getVolume():this.volumeMap.get(e)}addSubscribedMediaTrack(e,n,r,i,s,o){let a=this.getTrackPublicationBySid(n);if(a||n.startsWith("TR")||this.trackPublications.forEach(u=>{!a&&e.kind===u.kind.toString()&&(a=u)}),!a){if(o===0){this.log.error("could not find published track",Object.assign(Object.assign({},this.logContext),{trackSid:n})),this.emit(A.TrackSubscriptionFailed,n);return}o===void 0&&(o=20),setTimeout(()=>{this.addSubscribedMediaTrack(e,n,r,i,s,o-1)},150);return}if(e.readyState==="ended"){this.log.error("unable to subscribe because MediaStreamTrack is ended. Do not call MediaStreamTrack.stop()",Object.assign(Object.assign({},this.logContext),ie(a))),this.emit(A.TrackSubscriptionFailed,n);return}const l=e.kind==="video";let c;return l?c=new N2(e,n,i,s):c=new M2(e,n,i,this.audioContext,this.audioOutput),c.source=a.source,c.isMuted=a.isMuted,c.setMediaStream(r),c.start(),a.setTrack(c),this.volumeMap.has(a.source)&&xd(c)&&bn(c)&&c.setVolume(this.volumeMap.get(a.source)),a}get hasMetadata(){return!!this.participantInfo}getTrackPublicationBySid(e){return this.trackPublications.get(e)}updateInfo(e){if(!super.updateInfo(e))return!1;const n=new Map,r=new Map;return e.tracks.forEach(i=>{var s,o;let a=this.getTrackPublicationBySid(i.sid);if(a)a.updateInfo(i);else{const l=O.kindFromProto(i.type);if(!l)return;a=new F2(l,i,(s=this.signalClient.connectOptions)===null||s===void 0?void 0:s.autoSubscribe,{loggerContextCb:()=>this.logContext,loggerName:(o=this.loggerOptions)===null||o===void 0?void 0:o.loggerName}),a.updateInfo(i),r.set(i.sid,a);const c=Array.from(this.trackPublications.values()).find(u=>u.source===(a==null?void 0:a.source));c&&a.source!==O.Source.Unknown&&this.log.debug("received a second track publication for ".concat(this.identity," with the same source: ").concat(a.source),Object.assign(Object.assign({},this.logContext),{oldTrack:ie(c),newTrack:ie(a)})),this.addTrackPublication(a)}n.set(i.sid,a)}),this.trackPublications.forEach(i=>{n.has(i.trackSid)||(this.log.trace("detected removed track on remote participant, unpublishing",Object.assign(Object.assign({},this.logContext),ie(i))),this.unpublishTrack(i.trackSid,!0))}),r.forEach(i=>{this.emit(A.TrackPublished,i)}),!0}unpublishTrack(e,n){const r=this.trackPublications.get(e);if(!r)return;const{track:i}=r;switch(i&&(i.stop(),r.setTrack(void 0)),this.trackPublications.delete(e),r.kind){case O.Kind.Audio:this.audioTrackPublications.delete(e);break;case O.Kind.Video:this.videoTrackPublications.delete(e);break}n&&this.emit(A.TrackUnpublished,r)}setAudioOutput(e){return S(this,void 0,void 0,function*(){this.audioOutput=e;const n=[];this.audioTrackPublications.forEach(r=>{var i;bn(r.track)&&xd(r.track)&&n.push(r.track.setSinkId((i=e.deviceId)!==null&&i!==void 0?i:"default"))}),yield Promise.all(n)})}emit(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return this.log.trace("participant event",Object.assign(Object.assign({},this.logContext),{event:e,args:r})),super.emit(e,...r)}}var ee;(function(t){t.Disconnected="disconnected",t.Connecting="connecting",t.Connected="connected",t.Reconnecting="reconnecting",t.SignalReconnecting="signalReconnecting"})(ee||(ee={}));const B2=4*1e3;class Pi extends nn.EventEmitter{constructor(e){var n,r,i,s;if(super(),n=this,this.state=ee.Disconnected,this.activeSpeakers=[],this.isE2EEEnabled=!1,this.audioEnabled=!0,this.isVideoPlaybackBlocked=!1,this.log=K,this.bufferedEvents=[],this.isResuming=!1,this.byteStreamControllers=new Map,this.textStreamControllers=new Map,this.byteStreamHandlers=new Map,this.textStreamHandlers=new Map,this.rpcHandlers=new Map,this.connect=(o,a,l)=>S(this,void 0,void 0,function*(){var c;if(!LT())throw rn()?Error("WebRTC isn't detected, have you called registerGlobals?"):Error("LiveKit doesn't seem to be supported on this browser. Try to update your browser and make sure no browser extensions are disabling webRTC.");const u=yield this.disconnectLock.lock();if(this.state===ee.Connected)return this.log.info("already connected to room ".concat(this.name),this.logContext),u(),Promise.resolve();if(this.connectFuture)return u(),this.connectFuture.promise;this.setAndEmitConnectionState(ee.Connecting),((c=this.regionUrlProvider)===null||c===void 0?void 0:c.getServerUrl().toString())!==o&&(this.regionUrl=void 0,this.regionUrlProvider=void 0),bd(new URL(o))&&(this.regionUrlProvider===void 0?this.regionUrlProvider=new $d(o,a):this.regionUrlProvider.updateToken(a),this.regionUrlProvider.fetchRegionSettings().then(f=>{var m;(m=this.regionUrlProvider)===null||m===void 0||m.setServerReportedRegions(f)}).catch(f=>{this.log.warn("could not fetch region settings",Object.assign(Object.assign({},this.logContext),{error:f}))}));const d=(f,m,g)=>S(this,void 0,void 0,function*(){var T,p;this.abortController&&this.abortController.abort();const v=new AbortController;this.abortController=v,u==null||u();try{yield this.attemptConnection(g??o,a,l,v),this.abortController=void 0,f()}catch(y){if(this.regionUrlProvider&&y instanceof ce&&y.reason!==Z.Cancelled&&y.reason!==Z.NotAllowed){let k=null;try{k=yield this.regionUrlProvider.getNextBestRegionUrl((T=this.abortController)===null||T===void 0?void 0:T.signal)}catch(C){if(C instanceof ce&&(C.status===401||C.reason===Z.Cancelled)){this.handleDisconnect(this.options.stopLocalTrackOnUnpublish),m(C);return}}k&&!(!((p=this.abortController)===null||p===void 0)&&p.signal.aborted)?(this.log.info("Initial connection failed with ConnectionError: ".concat(y.message,". Retrying with another region: ").concat(k),this.logContext),this.recreateEngine(),yield d(f,m,k)):(this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,O0(y)),m(y))}else{let k=Ft.UNKNOWN_REASON;y instanceof ce&&(k=O0(y)),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,k),m(y)}}}),h=this.regionUrl;return this.regionUrl=void 0,this.connectFuture=new I0((f,m)=>{d(f,m,h)},()=>{this.clearConnectionFutures()}),this.connectFuture.promise}),this.connectSignal=(o,a,l,c,u,d)=>S(this,void 0,void 0,function*(){var h,f,m;const g=yield l.join(o,a,{autoSubscribe:c.autoSubscribe,adaptiveStream:typeof u.adaptiveStream=="object"?!0:u.adaptiveStream,maxRetries:c.maxRetries,e2eeEnabled:!!this.e2eeManager,websocketTimeout:c.websocketTimeout},d.signal);let T=g.serverInfo;if(T||(T={version:g.serverVersion,region:g.serverRegion}),this.serverInfo=T,this.log.debug("connected to Livekit Server ".concat(Object.entries(T).map(p=>{let[v,y]=p;return"".concat(v,": ").concat(y)}).join(", ")),{room:(h=g.room)===null||h===void 0?void 0:h.name,roomSid:(f=g.room)===null||f===void 0?void 0:f.sid,identity:(m=g.participant)===null||m===void 0?void 0:m.identity}),!T.version)throw new gT("unknown server version");return T.version==="0.15.1"&&this.options.dynacast&&(this.log.debug("disabling dynacast due to server version",this.logContext),u.dynacast=!1),g}),this.applyJoinResponse=o=>{const a=o.participant;if(this.localParticipant.sid=a.sid,this.localParticipant.identity=a.identity,this.localParticipant.setEnabledPublishCodecs(o.enabledPublishCodecs),this.options.e2ee&&this.e2eeManager)try{this.e2eeManager.setSifTrailer(o.sifTrailer)}catch(l){this.log.error(l instanceof Error?l.message:"Could not set SifTrailer",Object.assign(Object.assign({},this.logContext),{error:l}))}this.handleParticipantUpdates([a,...o.otherParticipants]),o.room&&this.handleRoomUpdate(o.room)},this.attemptConnection=(o,a,l,c)=>S(this,void 0,void 0,function*(){var u,d;this.state===ee.Reconnecting||this.isResuming||!((u=this.engine)===null||u===void 0)&&u.pendingReconnect?(this.log.info("Reconnection attempt replaced by new connection attempt",this.logContext),this.recreateEngine()):this.maybeCreateEngine(),!((d=this.regionUrlProvider)===null||d===void 0)&&d.isCloud()&&this.engine.setRegionUrlProvider(this.regionUrlProvider),this.acquireAudioContext(),this.connOptions=Object.assign(Object.assign({},jd),l),this.connOptions.rtcConfig&&(this.engine.rtcConfig=this.connOptions.rtcConfig),this.connOptions.peerConnectionTimeout&&(this.engine.peerConnectionTimeout=this.connOptions.peerConnectionTimeout);try{const h=yield this.connectSignal(o,a,this.engine,this.connOptions,this.options,c);this.applyJoinResponse(h),this.setupLocalParticipantEvents(),this.emit(M.SignalConnected)}catch(h){yield this.engine.close(),this.recreateEngine();const f=new ce("could not establish signal connection",Z.ServerUnreachable);throw h instanceof Error&&(f.message="".concat(f.message,": ").concat(h.message)),h instanceof ce&&(f.reason=h.reason,f.status=h.status),this.log.debug("error trying to establish signal connection",Object.assign(Object.assign({},this.logContext),{error:h})),f}if(c.signal.aborted)throw yield this.engine.close(),this.recreateEngine(),new ce("Connection attempt aborted",Z.Cancelled);try{yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout,c)}catch(h){throw yield this.engine.close(),this.recreateEngine(),h}dt()&&this.options.disconnectOnPageLeave&&(window.addEventListener("pagehide",this.onPageLeave),window.addEventListener("beforeunload",this.onPageLeave)),dt()&&document.addEventListener("freeze",this.onPageLeave),this.setAndEmitConnectionState(ee.Connected),this.emit(M.Connected),this.registerConnectionReconcile()}),this.disconnect=function(){for(var o=arguments.length,a=new Array(o),l=0;l<o;l++)a[l]=arguments[l];return S(n,[...a],void 0,function(){var c=this;let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var d,h,f,m;const g=yield c.disconnectLock.lock();try{if(c.state===ee.Disconnected){c.log.debug("already disconnected",c.logContext);return}c.log.info("disconnect from room",Object.assign({},c.logContext)),(c.state===ee.Connecting||c.state===ee.Reconnecting||c.isResuming)&&(c.log.warn("abort connection attempt",c.logContext),(d=c.abortController)===null||d===void 0||d.abort(),(f=(h=c.connectFuture)===null||h===void 0?void 0:h.reject)===null||f===void 0||f.call(h,new ce("Client initiated disconnect",Z.Cancelled)),c.connectFuture=void 0),!((m=c.engine)===null||m===void 0)&&m.client.isDisconnected||(yield c.engine.client.sendLeave()),c.engine&&(yield c.engine.close()),c.handleDisconnect(u,Ft.CLIENT_INITIATED),c.engine=void 0}finally{g()}}()})},this.onPageLeave=()=>S(this,void 0,void 0,function*(){this.log.info("Page leave detected, disconnecting",this.logContext),yield this.disconnect()}),this.startAudio=()=>S(this,void 0,void 0,function*(){const o=[],a=Vt();if(a&&a.os==="iOS"){const l="livekit-dummy-audio-el";let c=document.getElementById(l);if(!c){c=document.createElement("audio"),c.id=l,c.autoplay=!0,c.hidden=!0;const u=wd();u.enabled=!0;const d=new MediaStream([u]);c.srcObject=d,document.addEventListener("visibilitychange",()=>{c&&(c.srcObject=document.hidden?null:d,document.hidden||(this.log.debug("page visible again, triggering startAudio to resume playback and update playback status",this.logContext),this.startAudio()))}),document.body.append(c),this.once(M.Disconnected,()=>{c==null||c.remove(),c=null})}o.push(c)}this.remoteParticipants.forEach(l=>{l.audioTrackPublications.forEach(c=>{c.track&&c.track.attachedElements.forEach(u=>{o.push(u)})})});try{yield Promise.all([this.acquireAudioContext(),...o.map(l=>(l.muted=!1,l.play()))]),this.handleAudioPlaybackStarted()}catch(l){throw this.handleAudioPlaybackFailed(l),l}}),this.startVideo=()=>S(this,void 0,void 0,function*(){const o=[];for(const a of this.remoteParticipants.values())a.videoTrackPublications.forEach(l=>{var c;(c=l.track)===null||c===void 0||c.attachedElements.forEach(u=>{o.includes(u)||o.push(u)})});yield Promise.all(o.map(a=>a.play())).then(()=>{this.handleVideoPlaybackStarted()}).catch(a=>{a.name==="NotAllowedError"?this.handleVideoPlaybackFailed():this.log.warn("Resuming video playback failed, make sure you call `startVideo` directly in a user gesture handler",this.logContext)})}),this.handleRestarting=()=>{this.clearConnectionReconcile(),this.isResuming=!1;for(const o of this.remoteParticipants.values())this.handleParticipantDisconnected(o.identity,o);this.setAndEmitConnectionState(ee.Reconnecting)&&this.emit(M.Reconnecting)},this.handleSignalRestarted=o=>S(this,void 0,void 0,function*(){this.log.debug("signal reconnected to server, region ".concat(o.serverRegion),Object.assign(Object.assign({},this.logContext),{region:o.serverRegion})),this.bufferedEvents=[],this.applyJoinResponse(o);try{yield this.localParticipant.republishAllTracks(void 0,!0)}catch(a){this.log.error("error trying to re-publish tracks after reconnection",Object.assign(Object.assign({},this.logContext),{error:a}))}try{yield this.engine.waitForRestarted(),this.log.debug("fully reconnected to server",Object.assign(Object.assign({},this.logContext),{region:o.serverRegion}))}catch{return}this.setAndEmitConnectionState(ee.Connected),this.emit(M.Reconnected),this.registerConnectionReconcile(),this.emitBufferedEvents()}),this.handleParticipantUpdates=o=>{o.forEach(a=>{var l;if(a.identity===this.localParticipant.identity){this.localParticipant.updateInfo(a);return}a.identity===""&&(a.identity=(l=this.sidToIdentity.get(a.sid))!==null&&l!==void 0?l:"");let c=this.remoteParticipants.get(a.identity);a.state===Bu.DISCONNECTED?this.handleParticipantDisconnected(a.identity,c):c=this.getOrCreateParticipant(a.identity,a)})},this.handleActiveSpeakersUpdate=o=>{const a=[],l={};o.forEach(c=>{if(l[c.sid]=!0,c.sid===this.localParticipant.sid)this.localParticipant.audioLevel=c.level,this.localParticipant.setIsSpeaking(!0),a.push(this.localParticipant);else{const u=this.getRemoteParticipantBySid(c.sid);u&&(u.audioLevel=c.level,u.setIsSpeaking(!0),a.push(u))}}),l[this.localParticipant.sid]||(this.localParticipant.audioLevel=0,this.localParticipant.setIsSpeaking(!1)),this.remoteParticipants.forEach(c=>{l[c.sid]||(c.audioLevel=0,c.setIsSpeaking(!1))}),this.activeSpeakers=a,this.emitWhenConnected(M.ActiveSpeakersChanged,a)},this.handleSpeakersChanged=o=>{const a=new Map;this.activeSpeakers.forEach(c=>{const u=this.remoteParticipants.get(c.identity);u&&u.sid!==c.sid||a.set(c.sid,c)}),o.forEach(c=>{let u=this.getRemoteParticipantBySid(c.sid);c.sid===this.localParticipant.sid&&(u=this.localParticipant),u&&(u.audioLevel=c.level,u.setIsSpeaking(c.active),c.active?a.set(c.sid,u):a.delete(c.sid))});const l=Array.from(a.values());l.sort((c,u)=>u.audioLevel-c.audioLevel),this.activeSpeakers=l,this.emitWhenConnected(M.ActiveSpeakersChanged,l)},this.handleStreamStateUpdate=o=>{o.streamStates.forEach(a=>{const l=this.getRemoteParticipantBySid(a.participantSid);if(!l)return;const c=l.getTrackPublicationBySid(a.trackSid);if(!c||!c.track)return;const u=O.streamStateFromProto(a.state);u!==c.track.streamState&&(c.track.streamState=u,l.emit(A.TrackStreamStateChanged,c,c.track.streamState),this.emitWhenConnected(M.TrackStreamStateChanged,c,c.track.streamState,l))})},this.handleSubscriptionPermissionUpdate=o=>{const a=this.getRemoteParticipantBySid(o.participantSid);if(!a)return;const l=a.getTrackPublicationBySid(o.trackSid);l&&l.setAllowed(o.allowed)},this.handleSubscriptionError=o=>{const a=Array.from(this.remoteParticipants.values()).find(c=>c.trackPublications.has(o.trackSid));if(!a)return;const l=a.getTrackPublicationBySid(o.trackSid);l&&l.setSubscriptionError(o.err)},this.handleDataPacket=o=>{const a=this.remoteParticipants.get(o.participantIdentity);if(o.value.case==="user")this.handleUserPacket(a,o.value.value,o.kind);else if(o.value.case==="transcription")this.handleTranscription(a,o.value.value);else if(o.value.case==="sipDtmf")this.handleSipDtmf(a,o.value.value);else if(o.value.case==="chatMessage")this.handleChatMessage(a,o.value.value);else if(o.value.case==="metrics")this.handleMetrics(o.value.value,a);else if(o.value.case==="streamHeader")this.handleStreamHeader(o.value.value,o.participantIdentity);else if(o.value.case==="streamChunk")this.handleStreamChunk(o.value.value);else if(o.value.case==="streamTrailer")this.handleStreamTrailer(o.value.value);else if(o.value.case==="rpcRequest"){const l=o.value.value;this.handleIncomingRpcRequest(o.participantIdentity,l.id,l.method,l.payload,l.responseTimeoutMs,l.version)}},this.handleUserPacket=(o,a,l)=>{this.emit(M.DataReceived,a.payload,o,l,a.topic),o==null||o.emit(A.DataReceived,a.payload,l)},this.handleSipDtmf=(o,a)=>{this.emit(M.SipDTMFReceived,a,o),o==null||o.emit(A.SipDTMFReceived,a)},this.bufferedSegments=new Map,this.handleTranscription=(o,a)=>{const l=a.transcribedParticipantIdentity===this.localParticipant.identity?this.localParticipant:this.getParticipantByIdentity(a.transcribedParticipantIdentity),c=l==null?void 0:l.trackPublications.get(a.trackId),u=FT(a,this.transcriptionReceivedTimes);c==null||c.emit(N.TranscriptionReceived,u),l==null||l.emit(A.TranscriptionReceived,u,c),this.emit(M.TranscriptionReceived,u,l,c)},this.handleChatMessage=(o,a)=>{const l=BT(a);this.emit(M.ChatMessage,l,o)},this.handleMetrics=(o,a)=>{this.emit(M.MetricsReceived,o,a)},this.handleAudioPlaybackStarted=()=>{this.canPlaybackAudio||(this.audioEnabled=!0,this.emit(M.AudioPlaybackStatusChanged,!0))},this.handleAudioPlaybackFailed=o=>{this.log.warn("could not playback audio",Object.assign(Object.assign({},this.logContext),{error:o})),this.canPlaybackAudio&&(this.audioEnabled=!1,this.emit(M.AudioPlaybackStatusChanged,!1))},this.handleVideoPlaybackStarted=()=>{this.isVideoPlaybackBlocked&&(this.isVideoPlaybackBlocked=!1,this.emit(M.VideoPlaybackStatusChanged,!0))},this.handleVideoPlaybackFailed=()=>{this.isVideoPlaybackBlocked||(this.isVideoPlaybackBlocked=!0,this.emit(M.VideoPlaybackStatusChanged,!1))},this.handleDeviceChange=()=>S(this,void 0,void 0,function*(){var o,a;const l=Ae.getInstance().previousDevices,c=yield Ae.getInstance().getDevices(void 0,!1),u=Vt();if((u==null?void 0:u.name)==="Chrome"&&u.os!=="iOS")for(let h of c){const f=l.find(m=>m.deviceId===h.deviceId);f&&f.label!==""&&f.kind===h.kind&&f.label!==h.label&&this.getActiveDevice(h.kind)==="default"&&this.emit(M.ActiveDeviceChanged,h.kind,h.deviceId)}const d=["audiooutput","audioinput","videoinput"];for(let h of d){const f=c.filter(g=>g.kind===h),m=this.getActiveDevice(h);if(m===((o=l.filter(g=>g.kind===h)[0])===null||o===void 0?void 0:o.deviceId)&&f.length>0&&((a=f[0])===null||a===void 0?void 0:a.deviceId)!==m){yield this.switchActiveDevice(h,f[0].deviceId);continue}h==="audioinput"&&!Qn()||h==="videoinput"||f.length>0&&!f.find(g=>g.deviceId===this.getActiveDevice(h))&&(yield this.switchActiveDevice(h,f[0].deviceId))}this.emit(M.MediaDevicesChanged)}),this.handleRoomUpdate=o=>{const a=this.roomInfo;this.roomInfo=o,a&&a.metadata!==o.metadata&&this.emitWhenConnected(M.RoomMetadataChanged,o.metadata),(a==null?void 0:a.activeRecording)!==o.activeRecording&&this.emitWhenConnected(M.RecordingStatusChanged,o.activeRecording)},this.handleConnectionQualityUpdate=o=>{o.updates.forEach(a=>{if(a.participantSid===this.localParticipant.sid){this.localParticipant.setConnectionQuality(a.quality);return}const l=this.getRemoteParticipantBySid(a.participantSid);l&&l.setConnectionQuality(a.quality)})},this.onLocalParticipantMetadataChanged=o=>{this.emit(M.ParticipantMetadataChanged,o,this.localParticipant)},this.onLocalParticipantNameChanged=o=>{this.emit(M.ParticipantNameChanged,o,this.localParticipant)},this.onLocalAttributesChanged=o=>{this.emit(M.ParticipantAttributesChanged,o,this.localParticipant)},this.onLocalTrackMuted=o=>{this.emit(M.TrackMuted,o,this.localParticipant)},this.onLocalTrackUnmuted=o=>{this.emit(M.TrackUnmuted,o,this.localParticipant)},this.onTrackProcessorUpdate=o=>{var a;(a=o==null?void 0:o.onPublish)===null||a===void 0||a.call(o,this)},this.onLocalTrackPublished=o=>S(this,void 0,void 0,function*(){var a,l,c,u,d,h;(a=o.track)===null||a===void 0||a.on(N.TrackProcessorUpdate,this.onTrackProcessorUpdate),(l=o.track)===null||l===void 0||l.on(N.Restarted,this.onLocalTrackRestarted),(d=(u=(c=o.track)===null||c===void 0?void 0:c.getProcessor())===null||u===void 0?void 0:u.onPublish)===null||d===void 0||d.call(u,this),this.emit(M.LocalTrackPublished,o,this.localParticipant),_r(o.track)&&(yield o.track.checkForSilence())&&this.emit(M.LocalAudioSilenceDetected,o);const f=yield(h=o.track)===null||h===void 0?void 0:h.getDeviceId(!1),m=D0(o.source);m&&f&&f!==this.localParticipant.activeDeviceMap.get(m)&&(this.localParticipant.activeDeviceMap.set(m,f),this.emit(M.ActiveDeviceChanged,m,f))}),this.onLocalTrackUnpublished=o=>{var a,l;(a=o.track)===null||a===void 0||a.off(N.TrackProcessorUpdate,this.onTrackProcessorUpdate),(l=o.track)===null||l===void 0||l.off(N.Restarted,this.onLocalTrackRestarted),this.emit(M.LocalTrackUnpublished,o,this.localParticipant)},this.onLocalTrackRestarted=o=>S(this,void 0,void 0,function*(){const a=yield o.getDeviceId(!1),l=D0(o.source);l&&a&&a!==this.localParticipant.activeDeviceMap.get(l)&&(this.log.debug("local track restarted, setting ".concat(l," ").concat(a," active"),this.logContext),this.localParticipant.activeDeviceMap.set(l,a),this.emit(M.ActiveDeviceChanged,l,a))}),this.onLocalConnectionQualityChanged=o=>{this.emit(M.ConnectionQualityChanged,o,this.localParticipant)},this.onMediaDevicesError=o=>{this.emit(M.MediaDevicesError,o)},this.onLocalParticipantPermissionsChanged=o=>{this.emit(M.ParticipantPermissionsChanged,o,this.localParticipant)},this.onLocalChatMessageSent=o=>{this.emit(M.ChatMessage,o,this.localParticipant)},this.setMaxListeners(100),this.remoteParticipants=new Map,this.sidToIdentity=new Map,this.options=Object.assign(Object.assign({},u2),e),this.log=yn((r=this.options.loggerName)!==null&&r!==void 0?r:zt.Room),this.transcriptionReceivedTimes=new Map,this.options.audioCaptureDefaults=Object.assign(Object.assign({},q0),e==null?void 0:e.audioCaptureDefaults),this.options.videoCaptureDefaults=Object.assign(Object.assign({},W0),e==null?void 0:e.videoCaptureDefaults),this.options.publishDefaults=Object.assign(Object.assign({},c2),e==null?void 0:e.publishDefaults),this.maybeCreateEngine(),this.disconnectLock=new yt,this.localParticipant=new U2("","",this.engine,this.options,this.rpcHandlers),this.options.videoCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("videoinput",Yn(this.options.videoCaptureDefaults.deviceId)),this.options.audioCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("audioinput",Yn(this.options.audioCaptureDefaults.deviceId)),!((i=this.options.audioOutput)===null||i===void 0)&&i.deviceId&&this.switchActiveDevice("audiooutput",Yn(this.options.audioOutput.deviceId)).catch(o=>this.log.warn("Could not set audio output: ".concat(o.message),this.logContext)),this.options.e2ee&&this.setupE2EE(),dt()){const o=new AbortController;(s=navigator.mediaDevices)===null||s===void 0||s.addEventListener("devicechange",this.handleDeviceChange,{signal:o.signal}),Pi.cleanupRegistry&&Pi.cleanupRegistry.register(this,()=>{o.abort()})}}registerTextStreamHandler(e,n){if(this.textStreamHandlers.has(e))throw new TypeError('A text stream handler for topic "'.concat(e,'" has already been set.'));this.textStreamHandlers.set(e,n)}unregisterTextStreamHandler(e){this.textStreamHandlers.delete(e)}registerByteStreamHandler(e,n){if(this.byteStreamHandlers.has(e))throw new TypeError('A byte stream handler for topic "'.concat(e,'" has already been set.'));this.byteStreamHandlers.set(e,n)}unregisterByteStreamHandler(e){this.byteStreamHandlers.delete(e)}registerRpcMethod(e,n){if(this.rpcHandlers.has(e))throw Error("RPC handler already registered for method ".concat(e,", unregisterRpcMethod before trying to register again"));this.rpcHandlers.set(e,n)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}handleIncomingRpcRequest(e,n,r,i,s,o){return S(this,void 0,void 0,function*(){if(yield this.engine.publishRpcAck(e,n),o!==1){yield this.engine.publishRpcResponse(e,n,null,Te.builtIn("UNSUPPORTED_VERSION"));return}const a=this.rpcHandlers.get(r);if(!a){yield this.engine.publishRpcResponse(e,n,null,Te.builtIn("UNSUPPORTED_METHOD"));return}let l=null,c=null;try{const u=yield a({requestId:n,callerIdentity:e,payload:i,responseTimeout:s});Ud(u)>G0?(l=Te.builtIn("RESPONSE_PAYLOAD_TOO_LARGE"),console.warn("RPC Response payload too large for ".concat(r))):c=u}catch(u){u instanceof Te?l=u:(console.warn("Uncaught error returned by RPC handler for ".concat(r,". Returning APPLICATION_ERROR instead."),u),l=Te.builtIn("APPLICATION_ERROR"))}yield this.engine.publishRpcResponse(e,n,c,l)})}setE2EEEnabled(e){return S(this,void 0,void 0,function*(){if(this.e2eeManager)yield Promise.all([this.localParticipant.setE2EEEnabled(e)]),this.localParticipant.identity!==""&&this.e2eeManager.setParticipantCryptorEnabled(e,this.localParticipant.identity);else throw Error("e2ee not configured, please set e2ee settings within the room options")})}setupE2EE(){var e;this.options.e2ee&&("e2eeManager"in this.options.e2ee?this.e2eeManager=this.options.e2ee.e2eeManager:this.e2eeManager=new ZT(this.options.e2ee),this.e2eeManager.on(Kn.ParticipantEncryptionStatusChanged,(n,r)=>{VT(r)&&(this.isE2EEEnabled=n),this.emit(M.ParticipantEncryptionStatusChanged,n,r)}),this.e2eeManager.on(Kn.EncryptionError,n=>this.emit(M.EncryptionError,n)),(e=this.e2eeManager)===null||e===void 0||e.setup(this))}get logContext(){var e;return{room:this.name,roomID:(e=this.roomInfo)===null||e===void 0?void 0:e.sid,participant:this.localParticipant.identity,pID:this.localParticipant.sid}}get isRecording(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.activeRecording)!==null&&n!==void 0?n:!1}getSid(){return S(this,void 0,void 0,function*(){return this.state===ee.Disconnected?"":this.roomInfo&&this.roomInfo.sid!==""?this.roomInfo.sid:new Promise((e,n)=>{const r=i=>{i.sid!==""&&(this.engine.off(D.RoomUpdate,r),e(i.sid))};this.engine.on(D.RoomUpdate,r),this.once(M.Disconnected,()=>{this.engine.off(D.RoomUpdate,r),n("Room disconnected before room server id was available")})})})}get name(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.name)!==null&&n!==void 0?n:""}get metadata(){var e;return(e=this.roomInfo)===null||e===void 0?void 0:e.metadata}get numParticipants(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.numParticipants)!==null&&n!==void 0?n:0}get numPublishers(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.numPublishers)!==null&&n!==void 0?n:0}maybeCreateEngine(){this.engine&&!this.engine.isClosed||(this.engine=new x2(this.options),this.engine.on(D.ParticipantUpdate,this.handleParticipantUpdates).on(D.RoomUpdate,this.handleRoomUpdate).on(D.SpeakersChanged,this.handleSpeakersChanged).on(D.StreamStateChanged,this.handleStreamStateUpdate).on(D.ConnectionQualityUpdate,this.handleConnectionQualityUpdate).on(D.SubscriptionError,this.handleSubscriptionError).on(D.SubscriptionPermissionUpdate,this.handleSubscriptionPermissionUpdate).on(D.MediaTrackAdded,(e,n,r)=>{this.onTrackAdded(e,n,r)}).on(D.Disconnected,e=>{this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,e)}).on(D.ActiveSpeakersUpdate,this.handleActiveSpeakersUpdate).on(D.DataPacketReceived,this.handleDataPacket).on(D.Resuming,()=>{this.clearConnectionReconcile(),this.isResuming=!0,this.log.info("Resuming signal connection",this.logContext),this.setAndEmitConnectionState(ee.SignalReconnecting)&&this.emit(M.SignalReconnecting)}).on(D.Resumed,()=>{this.registerConnectionReconcile(),this.isResuming=!1,this.log.info("Resumed signal connection",this.logContext),this.updateSubscriptions(),this.emitBufferedEvents(),this.setAndEmitConnectionState(ee.Connected)&&this.emit(M.Reconnected)}).on(D.SignalResumed,()=>{this.bufferedEvents=[],(this.state===ee.Reconnecting||this.isResuming)&&this.sendSyncState()}).on(D.Restarting,this.handleRestarting).on(D.SignalRestarted,this.handleSignalRestarted).on(D.Offline,()=>{this.setAndEmitConnectionState(ee.Reconnecting)&&this.emit(M.Reconnecting)}).on(D.DCBufferStatusChanged,(e,n)=>{this.emit(M.DCBufferStatusChanged,e,n)}).on(D.LocalTrackSubscribed,e=>{const n=this.localParticipant.getTrackPublications().find(r=>{let{trackSid:i}=r;return i===e});if(!n){this.log.warn("could not find local track subscription for subscribed event",this.logContext);return}this.localParticipant.emit(A.LocalTrackSubscribed,n),this.emitWhenConnected(M.LocalTrackSubscribed,n,this.localParticipant)}),this.localParticipant&&this.localParticipant.setupEngine(this.engine),this.e2eeManager&&this.e2eeManager.setupEngine(this.engine))}static getLocalDevices(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Ae.getInstance().getDevices(e,n)}prepareConnection(e,n){return S(this,void 0,void 0,function*(){if(this.state===ee.Disconnected){this.log.debug("prepareConnection to ".concat(e),this.logContext);try{if(bd(new URL(e))&&n){this.regionUrlProvider=new $d(e,n);const r=yield this.regionUrlProvider.getNextBestRegionUrl();r&&this.state===ee.Disconnected&&(this.regionUrl=r,yield fetch(Td(r),{method:"HEAD"}),this.log.debug("prepared connection to ".concat(r),this.logContext))}else yield fetch(Td(e),{method:"HEAD"})}catch(r){this.log.warn("could not prepare connection",Object.assign(Object.assign({},this.logContext),{error:r}))}}})}getParticipantByIdentity(e){return this.localParticipant.identity===e?this.localParticipant:this.remoteParticipants.get(e)}clearConnectionFutures(){this.connectFuture=void 0}simulateScenario(e,n){return S(this,void 0,void 0,function*(){let r=()=>{},i;switch(e){case"signal-reconnect":yield this.engine.client.handleOnClose("simulate disconnect");break;case"speaker":i=new tn({scenario:{case:"speakerUpdate",value:3}});break;case"node-failure":i=new tn({scenario:{case:"nodeFailure",value:!0}});break;case"server-leave":i=new tn({scenario:{case:"serverLeave",value:!0}});break;case"migration":i=new tn({scenario:{case:"migration",value:!0}});break;case"resume-reconnect":this.engine.failNext(),yield this.engine.client.handleOnClose("simulate resume-disconnect");break;case"disconnect-signal-on-resume":r=()=>S(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),i=new tn({scenario:{case:"disconnectSignalOnResume",value:!0}});break;case"disconnect-signal-on-resume-no-messages":r=()=>S(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),i=new tn({scenario:{case:"disconnectSignalOnResumeNoMessages",value:!0}});break;case"full-reconnect":this.engine.fullReconnectOnNext=!0,yield this.engine.client.handleOnClose("simulate full-reconnect");break;case"force-tcp":case"force-tls":i=new tn({scenario:{case:"switchCandidateProtocol",value:e==="force-tls"?2:1}}),r=()=>S(this,void 0,void 0,function*(){const s=this.engine.client.onLeave;s&&s(new _a({reason:Ft.CLIENT_INITIATED,action:yi.RECONNECT}))});break;case"subscriber-bandwidth":if(n===void 0||typeof n!="number")throw new Error("subscriber-bandwidth requires a number as argument");i=new tn({scenario:{case:"subscriberBandwidth",value:Pr(n)}});break;case"leave-full-reconnect":i=new tn({scenario:{case:"leaveRequestFullReconnect",value:!0}})}i&&(yield this.engine.client.sendSimulateScenario(i),yield r())})}get canPlaybackAudio(){return this.audioEnabled}get canPlaybackVideo(){return!this.isVideoPlaybackBlocked}getActiveDevice(e){return this.localParticipant.activeDeviceMap.get(e)}switchActiveDevice(e,n){return S(this,arguments,void 0,function(r,i){var s=this;let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return function*(){var a,l,c,u,d,h,f,m;let g=!0,T=!1;const p=o?{exact:i}:i;if(r==="audioinput"){T=s.localParticipant.audioTrackPublications.size===0;const v=(a=s.getActiveDevice(r))!==null&&a!==void 0?a:s.options.audioCaptureDefaults.deviceId;s.options.audioCaptureDefaults.deviceId=p;const y=Array.from(s.localParticipant.audioTrackPublications.values()).filter(k=>k.source===O.Source.Microphone);try{g=(yield Promise.all(y.map(k=>{var C;return(C=k.audioTrack)===null||C===void 0?void 0:C.setDeviceId(p)}))).every(k=>k===!0)}catch(k){throw s.options.audioCaptureDefaults.deviceId=v,k}}else if(r==="videoinput"){T=s.localParticipant.videoTrackPublications.size===0;const v=(l=s.getActiveDevice(r))!==null&&l!==void 0?l:s.options.videoCaptureDefaults.deviceId;s.options.videoCaptureDefaults.deviceId=p;const y=Array.from(s.localParticipant.videoTrackPublications.values()).filter(k=>k.source===O.Source.Camera);try{g=(yield Promise.all(y.map(k=>{var C;return(C=k.videoTrack)===null||C===void 0?void 0:C.setDeviceId(p)}))).every(k=>k===!0)}catch(k){throw s.options.videoCaptureDefaults.deviceId=v,k}}else if(r==="audiooutput"){if(!kd()&&!s.options.webAudioMix||s.options.webAudioMix&&s.audioContext&&!("setSinkId"in s.audioContext))throw new Error("cannot switch audio output, setSinkId not supported");s.options.webAudioMix&&(i=(c=yield Ae.getInstance().normalizeDeviceId("audiooutput",i))!==null&&c!==void 0?c:""),(u=(m=s.options).audioOutput)!==null&&u!==void 0||(m.audioOutput={});const v=(d=s.getActiveDevice(r))!==null&&d!==void 0?d:s.options.audioOutput.deviceId;s.options.audioOutput.deviceId=i;try{s.options.webAudioMix&&((h=s.audioContext)===null||h===void 0||h.setSinkId(i)),yield Promise.all(Array.from(s.remoteParticipants.values()).map(y=>y.setAudioOutput({deviceId:i})))}catch(y){throw s.options.audioOutput.deviceId=v,y}}return(T||r==="audiooutput")&&(s.localParticipant.activeDeviceMap.set(r,r==="audiooutput"&&((f=s.options.audioOutput)===null||f===void 0?void 0:f.deviceId)||i),s.emit(M.ActiveDeviceChanged,r,i)),g}()})}setupLocalParticipantEvents(){this.localParticipant.on(A.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).on(A.ParticipantNameChanged,this.onLocalParticipantNameChanged).on(A.AttributesChanged,this.onLocalAttributesChanged).on(A.TrackMuted,this.onLocalTrackMuted).on(A.TrackUnmuted,this.onLocalTrackUnmuted).on(A.LocalTrackPublished,this.onLocalTrackPublished).on(A.LocalTrackUnpublished,this.onLocalTrackUnpublished).on(A.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).on(A.MediaDevicesError,this.onMediaDevicesError).on(A.AudioStreamAcquired,this.startAudio).on(A.ChatMessage,this.onLocalChatMessageSent).on(A.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged)}recreateEngine(){var e;(e=this.engine)===null||e===void 0||e.close(),this.engine=void 0,this.isResuming=!1,this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.bufferedEvents=[],this.maybeCreateEngine()}onTrackAdded(e,n,r){if(this.state===ee.Connecting||this.state===ee.Reconnecting){const u=()=>{this.onTrackAdded(e,n,r),d()},d=()=>{this.off(M.Reconnected,u),this.off(M.Connected,u),this.off(M.Disconnected,d)};this.once(M.Reconnected,u),this.once(M.Connected,u),this.once(M.Disconnected,d);return}if(this.state===ee.Disconnected){this.log.warn("skipping incoming track after Room disconnected",this.logContext);return}if(e.readyState==="ended"){this.log.info("skipping incoming track as it already ended",this.logContext);return}const i=RT(n.id),s=i[0];let o=i[1],a=e.id;if(o&&o.startsWith("TR")&&(a=o),s===this.localParticipant.sid){this.log.warn("tried to create RemoteParticipant for local participant",this.logContext);return}const l=Array.from(this.remoteParticipants.values()).find(u=>u.sid===s);if(!l){this.log.error("Tried to add a track for a participant, that's not present. Sid: ".concat(s),this.logContext);return}let c;this.options.adaptiveStream&&(typeof this.options.adaptiveStream=="object"?c=this.options.adaptiveStream:c={}),l.addSubscribedMediaTrack(e,a,n,r,c)}handleDisconnect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,n=arguments.length>1?arguments[1]:void 0;var r;if(this.clearConnectionReconcile(),this.isResuming=!1,this.bufferedEvents=[],this.transcriptionReceivedTimes.clear(),this.state!==ee.Disconnected){this.regionUrl=void 0;try{this.remoteParticipants.forEach(i=>{i.trackPublications.forEach(s=>{i.unpublishTrack(s.trackSid)})}),this.localParticipant.trackPublications.forEach(i=>{var s,o,a;i.track&&this.localParticipant.unpublishTrack(i.track,e),e?((s=i.track)===null||s===void 0||s.detach(),(o=i.track)===null||o===void 0||o.stop()):(a=i.track)===null||a===void 0||a.stopMonitor()}),this.localParticipant.off(A.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).off(A.ParticipantNameChanged,this.onLocalParticipantNameChanged).off(A.AttributesChanged,this.onLocalAttributesChanged).off(A.TrackMuted,this.onLocalTrackMuted).off(A.TrackUnmuted,this.onLocalTrackUnmuted).off(A.LocalTrackPublished,this.onLocalTrackPublished).off(A.LocalTrackUnpublished,this.onLocalTrackUnpublished).off(A.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).off(A.MediaDevicesError,this.onMediaDevicesError).off(A.AudioStreamAcquired,this.startAudio).off(A.ChatMessage,this.onLocalChatMessageSent).off(A.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged),this.localParticipant.trackPublications.clear(),this.localParticipant.videoTrackPublications.clear(),this.localParticipant.audioTrackPublications.clear(),this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.activeSpeakers=[],this.audioContext&&typeof this.options.webAudioMix=="boolean"&&(this.audioContext.close(),this.audioContext=void 0),dt()&&(window.removeEventListener("beforeunload",this.onPageLeave),window.removeEventListener("pagehide",this.onPageLeave),window.removeEventListener("freeze",this.onPageLeave),(r=navigator.mediaDevices)===null||r===void 0||r.removeEventListener("devicechange",this.handleDeviceChange))}finally{this.setAndEmitConnectionState(ee.Disconnected),this.emit(M.Disconnected,n)}}}handleParticipantDisconnected(e,n){var r;this.remoteParticipants.delete(e),n&&(n.trackPublications.forEach(i=>{n.unpublishTrack(i.trackSid,!0)}),this.emit(M.ParticipantDisconnected,n),(r=this.localParticipant)===null||r===void 0||r.handleParticipantDisconnected(n.identity))}handleStreamHeader(e,n){return S(this,void 0,void 0,function*(){var r;if(e.contentHeader.case==="byteHeader"){const i=this.byteStreamHandlers.get(e.topic);if(!i){this.log.debug("ignoring incoming byte stream due to no handler for topic",e.topic);return}let s;const o={id:e.streamId,name:(r=e.contentHeader.value.name)!==null&&r!==void 0?r:"unknown",mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:za(e.timestamp),attributes:e.attributes},a=new ReadableStream({start:l=>{s=l,this.byteStreamControllers.set(e.streamId,{info:o,controller:s,startTime:Date.now()})}});i(new R2(o,a,za(e.totalLength)),{identity:n})}else if(e.contentHeader.case==="textHeader"){const i=this.textStreamHandlers.get(e.topic);if(!i){this.log.debug("ignoring incoming text stream due to no handler for topic",e.topic);return}let s;const o={id:e.streamId,mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:Number(e.timestamp),attributes:e.attributes},a=new ReadableStream({start:l=>{s=l,this.textStreamControllers.set(e.streamId,{info:o,controller:s,startTime:Date.now()})}});i(new I2(o,a,za(e.totalLength)),{identity:n})}})}handleStreamChunk(e){const n=this.byteStreamControllers.get(e.streamId);n&&e.content.length>0&&n.controller.enqueue(e);const r=this.textStreamControllers.get(e.streamId);r&&e.content.length>0&&r.controller.enqueue(e)}handleStreamTrailer(e){const n=this.textStreamControllers.get(e.streamId);n&&(n.info.attributes=Object.assign(Object.assign({},n.info.attributes),e.attributes),n.controller.close(),this.textStreamControllers.delete(e.streamId));const r=this.byteStreamControllers.get(e.streamId);r&&(r.info.attributes=Object.assign(Object.assign({},r.info.attributes),e.attributes),r.controller.close(),this.byteStreamControllers.delete(e.streamId))}acquireAudioContext(){return S(this,void 0,void 0,function*(){var e,n;if(typeof this.options.webAudioMix!="boolean"&&this.options.webAudioMix.audioContext?this.audioContext=this.options.webAudioMix.audioContext:(!this.audioContext||this.audioContext.state==="closed")&&(this.audioContext=(e=N0())!==null&&e!==void 0?e:void 0),this.options.webAudioMix&&this.remoteParticipants.forEach(i=>i.setAudioContext(this.audioContext)),this.localParticipant.setAudioContext(this.audioContext),this.audioContext&&this.audioContext.state==="suspended")try{yield Promise.race([this.audioContext.resume(),ut(200)])}catch(i){this.log.warn("Could not resume audio context",Object.assign(Object.assign({},this.logContext),{error:i}))}const r=((n=this.audioContext)===null||n===void 0?void 0:n.state)==="running";r!==this.canPlaybackAudio&&(this.audioEnabled=r,this.emit(M.AudioPlaybackStatusChanged,r))})}createParticipant(e,n){var r;let i;return n?i=Qa.fromParticipantInfo(this.engine.client,n,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}):i=new Qa(this.engine.client,"",e,void 0,void 0,void 0,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}),this.options.webAudioMix&&i.setAudioContext(this.audioContext),!((r=this.options.audioOutput)===null||r===void 0)&&r.deviceId&&i.setAudioOutput(this.options.audioOutput).catch(s=>this.log.warn("Could not set audio output: ".concat(s.message),this.logContext)),i}getOrCreateParticipant(e,n){if(this.remoteParticipants.has(e)){const i=this.remoteParticipants.get(e);return n&&i.updateInfo(n)&&this.sidToIdentity.set(n.sid,n.identity),i}const r=this.createParticipant(e,n);return this.remoteParticipants.set(e,r),this.sidToIdentity.set(n.sid,n.identity),this.emitWhenConnected(M.ParticipantConnected,r),r.on(A.TrackPublished,i=>{this.emitWhenConnected(M.TrackPublished,i,r)}).on(A.TrackSubscribed,(i,s)=>{i.kind===O.Kind.Audio?(i.on(N.AudioPlaybackStarted,this.handleAudioPlaybackStarted),i.on(N.AudioPlaybackFailed,this.handleAudioPlaybackFailed)):i.kind===O.Kind.Video&&(i.on(N.VideoPlaybackFailed,this.handleVideoPlaybackFailed),i.on(N.VideoPlaybackStarted,this.handleVideoPlaybackStarted)),this.emit(M.TrackSubscribed,i,s,r)}).on(A.TrackUnpublished,i=>{this.emit(M.TrackUnpublished,i,r)}).on(A.TrackUnsubscribed,(i,s)=>{this.emit(M.TrackUnsubscribed,i,s,r)}).on(A.TrackMuted,i=>{this.emitWhenConnected(M.TrackMuted,i,r)}).on(A.TrackUnmuted,i=>{this.emitWhenConnected(M.TrackUnmuted,i,r)}).on(A.ParticipantMetadataChanged,i=>{this.emitWhenConnected(M.ParticipantMetadataChanged,i,r)}).on(A.ParticipantNameChanged,i=>{this.emitWhenConnected(M.ParticipantNameChanged,i,r)}).on(A.AttributesChanged,i=>{this.emitWhenConnected(M.ParticipantAttributesChanged,i,r)}).on(A.ConnectionQualityChanged,i=>{this.emitWhenConnected(M.ConnectionQualityChanged,i,r)}).on(A.ParticipantPermissionsChanged,i=>{this.emitWhenConnected(M.ParticipantPermissionsChanged,i,r)}).on(A.TrackSubscriptionStatusChanged,(i,s)=>{this.emitWhenConnected(M.TrackSubscriptionStatusChanged,i,s,r)}).on(A.TrackSubscriptionFailed,(i,s)=>{this.emit(M.TrackSubscriptionFailed,i,r,s)}).on(A.TrackSubscriptionPermissionChanged,(i,s)=>{this.emitWhenConnected(M.TrackSubscriptionPermissionChanged,i,s,r)}),n&&r.updateInfo(n),r}sendSyncState(){const e=Array.from(this.remoteParticipants.values()).reduce((r,i)=>(r.push(...i.getTrackPublications()),r),[]),n=this.localParticipant.getTrackPublications();this.engine.sendSyncState(e,n)}updateSubscriptions(){for(const e of this.remoteParticipants.values())for(const n of e.videoTrackPublications.values())n.isSubscribed&&zT(n)&&n.emitTrackUpdate()}getRemoteParticipantBySid(e){const n=this.sidToIdentity.get(e);if(n)return this.remoteParticipants.get(n)}registerConnectionReconcile(){this.clearConnectionReconcile();let e=0;this.connectionReconcileInterval=He.setInterval(()=>{!this.engine||this.engine.isClosed||!this.engine.verifyTransport()?(e++,this.log.warn("detected connection state mismatch",Object.assign(Object.assign({},this.logContext),{numFailures:e,engine:this.engine?{closed:this.engine.isClosed,transportsConnected:this.engine.verifyTransport()}:void 0})),e>=3&&(this.recreateEngine(),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,Ft.STATE_MISMATCH))):e=0},B2)}clearConnectionReconcile(){this.connectionReconcileInterval&&He.clearInterval(this.connectionReconcileInterval)}setAndEmitConnectionState(e){return e===this.state?!1:(this.state=e,this.emit(M.ConnectionStateChanged,this.state),!0)}emitBufferedEvents(){this.bufferedEvents.forEach(e=>{let[n,r]=e;this.emit(n,...r)}),this.bufferedEvents=[]}emitWhenConnected(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];if(this.state===ee.Reconnecting||this.isResuming||!this.engine||this.engine.pendingReconnect)this.bufferedEvents.push([e,r]);else if(this.state===ee.Connected)return this.emit(e,...r);return!1}simulateParticipants(e){return S(this,void 0,void 0,function*(){var n,r;const i=Object.assign({audio:!0,video:!0,useRealTracks:!1},e.publish),s=Object.assign({count:9,audio:!1,video:!0,aspectRatios:[1.66,1.7,1.3]},e.participants);if(this.handleDisconnect(),this.roomInfo=new Fu({sid:"RM_SIMULATED",name:"simulated-room",emptyTimeout:0,maxParticipants:0,creationTime:pe.parse(new Date().getTime()),metadata:"",numParticipants:1,numPublishers:1,turnPassword:"",enabledCodecs:[],activeRecording:!1}),this.localParticipant.updateInfo(new _s({identity:"simulated-local",name:"local-name"})),this.setupLocalParticipantEvents(),this.emit(M.SignalConnected),this.emit(M.Connected),this.setAndEmitConnectionState(ee.Connected),i.video){const o=new Gd(O.Kind.Video,new vi({source:Re.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:Ut.AUDIO,name:"video-dummy"}),new Ka(i.useRealTracks?(yield window.navigator.mediaDevices.getUserMedia({video:!0})).getVideoTracks()[0]:R0(160*((n=s.aspectRatios[0])!==null&&n!==void 0?n:1),160,!0,!0),void 0,!1,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(o),this.localParticipant.emit(A.LocalTrackPublished,o)}if(i.audio){const o=new Gd(O.Kind.Audio,new vi({source:Re.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:Ut.AUDIO}),new Wa(i.useRealTracks?(yield navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0]:wd(),void 0,!1,this.audioContext,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(o),this.localParticipant.emit(A.LocalTrackPublished,o)}for(let o=0;o<s.count-1;o+=1){let a=new _s({sid:Math.floor(Math.random()*1e4).toString(),identity:"simulated-".concat(o),state:Bu.ACTIVE,tracks:[],joinedAt:pe.parse(Date.now())});const l=this.getOrCreateParticipant(a.identity,a);if(s.video){const c=R0(160*((r=s.aspectRatios[o%s.aspectRatios.length])!==null&&r!==void 0?r:1),160,!1,!0),u=new vi({source:Re.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:Ut.AUDIO});l.addSubscribedMediaTrack(c,u.sid,new MediaStream([c]),new RTCRtpReceiver),a.tracks=[...a.tracks,u]}if(s.audio){const c=wd(),u=new vi({source:Re.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:Ut.AUDIO});l.addSubscribedMediaTrack(c,u.sid,new MediaStream([c]),new RTCRtpReceiver),a.tracks=[...a.tracks,u]}l.updateInfo(a)}})}emit(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];if(e!==M.ActiveSpeakersChanged&&e!==M.TranscriptionReceived){const s=ay(r).filter(o=>o!==void 0);this.log.debug("room event ".concat(e),Object.assign(Object.assign({},this.logContext),{event:e,args:s}))}return super.emit(e,...r)}}Pi.cleanupRegistry=typeof FinalizationRegistry<"u"&&new FinalizationRegistry(t=>{t()});function ay(t){return t.map(e=>{if(e)return Array.isArray(e)?ay(e):typeof e=="object"?"logContext"in e?e.logContext:void 0:e})}var qt;(function(t){t[t.IDLE=0]="IDLE",t[t.RUNNING=1]="RUNNING",t[t.SKIPPED=2]="SKIPPED",t[t.SUCCESS=3]="SUCCESS",t[t.FAILED=4]="FAILED"})(qt||(qt={}));class tr extends nn.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.status=qt.IDLE,this.logs=[],this.options={},this.url=e,this.token=n,this.name=this.constructor.name,this.room=new Pi(r.roomOptions),this.connectOptions=r.connectOptions,this.options=r}run(e){return S(this,void 0,void 0,function*(){if(this.status!==qt.IDLE)throw Error("check is running already");this.setStatus(qt.RUNNING);try{yield this.perform()}catch(n){n instanceof Error&&(this.options.errorsAsWarnings?this.appendWarning(n.message):this.appendError(n.message))}return yield this.disconnect(),yield new Promise(n=>setTimeout(n,500)),this.status!==qt.SKIPPED&&this.setStatus(this.isSuccess()?qt.SUCCESS:qt.FAILED),e&&e(),this.getInfo()})}isSuccess(){return!this.logs.some(e=>e.level==="error")}connect(e){return S(this,void 0,void 0,function*(){return this.room.state===ee.Connected?this.room:(e||(e=this.url),yield this.room.connect(e,this.token,this.connectOptions),this.room)})}disconnect(){return S(this,void 0,void 0,function*(){this.room&&this.room.state!==ee.Disconnected&&(yield this.room.disconnect(),yield new Promise(e=>setTimeout(e,500)))})}skip(){this.setStatus(qt.SKIPPED)}switchProtocol(e){return S(this,void 0,void 0,function*(){let n=!1,r=!1;if(this.room.on(M.Reconnecting,()=>{n=!0}),this.room.once(M.Reconnected,()=>{r=!0}),this.room.simulateScenario("force-".concat(e)),yield new Promise(s=>setTimeout(s,1e3)),!n)return;const i=Date.now()+1e4;for(;Date.now()<i;){if(r)return;yield ut(100)}throw new Error("Could not reconnect using ".concat(e," protocol after 10 seconds"))})}appendMessage(e){this.logs.push({level:"info",message:e}),this.emit("update",this.getInfo())}appendWarning(e){this.logs.push({level:"warning",message:e}),this.emit("update",this.getInfo())}appendError(e){this.logs.push({level:"error",message:e}),this.emit("update",this.getInfo())}setStatus(e){this.status=e,this.emit("update",this.getInfo())}get engine(){var e;return(e=this.room)===null||e===void 0?void 0:e.engine}getInfo(){return{logs:this.logs,name:this.name,status:this.status,description:this.description}}}class z2 extends tr{get description(){return"Cloud regions"}perform(){return S(this,void 0,void 0,function*(){const e=new $d(this.url,this.token);if(!e.isCloud()){this.skip();return}const n=[],r=new Set;for(let s=0;s<3;s++){const o=yield e.getNextBestRegionUrl();if(!o)break;if(r.has(o))continue;r.add(o);const a=yield this.checkCloudRegion(o);this.appendMessage("".concat(a.region," RTT: ").concat(a.rtt,"ms, duration: ").concat(a.duration,"ms")),n.push(a)}n.sort((s,o)=>(s.duration-o.duration)*.5+(s.rtt-o.rtt)*.5);const i=n[0];this.bestStats=i,this.appendMessage("best Cloud region: ".concat(i.region))})}getInfo(){const e=super.getInfo();return e.data=this.bestStats,e}checkCloudRegion(e){return S(this,void 0,void 0,function*(){var n,r;yield this.connect(e),this.options.protocol==="tcp"&&(yield this.switchProtocol("tcp"));const i=(n=this.room.serverInfo)===null||n===void 0?void 0:n.region;if(!i)throw new Error("Region not found");const s=yield this.room.localParticipant.streamText({topic:"test"}),o=1e3,l=1e6/o,c="A".repeat(o),u=Date.now();for(let m=0;m<l;m++)yield s.write(c);yield s.close();const d=Date.now(),h=yield(r=this.room.engine.pcManager)===null||r===void 0?void 0:r.publisher.getStats(),f={region:i,rtt:1e4,duration:d-u};return h==null||h.forEach(m=>{m.type==="candidate-pair"&&m.nominated&&(f.rtt=m.currentRoundTripTime*1e3)}),yield this.disconnect(),f})}}const Kd=1e4;class V2 extends tr{get description(){return"Connection via UDP vs TCP"}perform(){return S(this,void 0,void 0,function*(){const e=yield this.checkConnectionProtocol("udp"),n=yield this.checkConnectionProtocol("tcp");this.bestStats=e,e.qualityLimitationDurations.bandwidth-n.qualityLimitationDurations.bandwidth>.5||(e.packetsLost-n.packetsLost)/e.packetsSent>.01?(this.appendMessage("best connection quality via tcp"),this.bestStats=n):this.appendMessage("best connection quality via udp");const r=this.bestStats;this.appendMessage("upstream bitrate: ".concat((r.bitrateTotal/r.count/1e3/1e3).toFixed(2)," mbps")),this.appendMessage("RTT: ".concat((r.rttTotal/r.count*1e3).toFixed(2)," ms")),this.appendMessage("jitter: ".concat((r.jitterTotal/r.count*1e3).toFixed(2)," ms")),r.packetsLost>0&&this.appendWarning("packets lost: ".concat((r.packetsLost/r.packetsSent*100).toFixed(2),"%")),r.qualityLimitationDurations.bandwidth>1&&this.appendWarning("bandwidth limited ".concat((r.qualityLimitationDurations.bandwidth/(Kd/1e3)*100).toFixed(2),"%")),r.qualityLimitationDurations.cpu>0&&this.appendWarning("cpu limited ".concat((r.qualityLimitationDurations.cpu/(Kd/1e3)*100).toFixed(2),"%"))})}getInfo(){const e=super.getInfo();return e.data=this.bestStats,e}checkConnectionProtocol(e){return S(this,void 0,void 0,function*(){yield this.connect(),e==="tcp"?yield this.switchProtocol("tcp"):yield this.switchProtocol("udp");const n=document.createElement("canvas");n.width=1280,n.height=720;const r=n.getContext("2d");if(!r)throw new Error("Could not get canvas context");let i=0;const s=()=>{i=(i+1)%360,r.fillStyle="hsl(".concat(i,", 100%, 50%)"),r.fillRect(0,0,n.width,n.height),requestAnimationFrame(s)};s();const a=n.captureStream(30).getVideoTracks()[0],c=(yield this.room.localParticipant.publishTrack(a,{simulcast:!1,degradationPreference:"maintain-resolution",videoEncoding:{maxBitrate:2e6}})).track,u={protocol:e,packetsLost:0,packetsSent:0,qualityLimitationDurations:{},rttTotal:0,jitterTotal:0,bitrateTotal:0,count:0},d=setInterval(()=>S(this,void 0,void 0,function*(){const h=yield c.getRTCStatsReport();h==null||h.forEach(f=>{f.type==="outbound-rtp"?(u.packetsSent=f.packetsSent,u.qualityLimitationDurations=f.qualityLimitationDurations,u.bitrateTotal+=f.targetBitrate,u.count++):f.type==="remote-inbound-rtp"&&(u.packetsLost=f.packetsLost,u.rttTotal+=f.roundTripTime,u.jitterTotal+=f.jitter)})}),1e3);return yield new Promise(h=>setTimeout(h,Kd)),clearInterval(d),a.stop(),n.remove(),yield this.disconnect(),u})}}function ly(t){return S(this,void 0,void 0,function*(){var e,n;t??(t={}),(e=t.audio)!==null&&e!==void 0||(t.audio={deviceId:"default"}),(n=t.video)!==null&&n!==void 0||(t.video={deviceId:"default"});const{audioProcessor:r,videoProcessor:i}=_d(t),s=L0(t,q0,W0),o=Va(s),a=navigator.mediaDevices.getUserMedia(o);t.audio&&(Ae.userMediaPromiseMap.set("audioinput",a),a.catch(()=>Ae.userMediaPromiseMap.delete("audioinput"))),t.video&&(Ae.userMediaPromiseMap.set("videoinput",a),a.catch(()=>Ae.userMediaPromiseMap.delete("videoinput")));const l=yield a;return Promise.all(l.getTracks().map(c=>S(this,void 0,void 0,function*(){const u=c.kind==="audio";u?s.audio:s.video;let d;const h=u?o.audio:o.video;typeof h!="boolean"&&(d=h);const f=c.getSettings().deviceId;d!=null&&d.deviceId&&Yn(d.deviceId)!==f?d.deviceId=f:d||(d={deviceId:f});const m=Q0(c,d);return m.kind===O.Kind.Video?m.source=O.Source.Camera:m.kind===O.Kind.Audio&&(m.source=O.Source.Microphone),m.mediaStream=l,bn(m)&&r?yield m.setProcessor(r):Ti(m)&&i&&(yield m.setProcessor(i)),m})))})}function H2(t){return S(this,void 0,void 0,function*(){return(yield ly({audio:!1,video:t}))[0]})}function $2(t){return S(this,void 0,void 0,function*(){return(yield ly({audio:t,video:!1}))[0]})}class q2 extends tr{get description(){return"Can publish audio"}perform(){return S(this,void 0,void 0,function*(){var e;const n=yield this.connect(),r=yield $2();if(yield M0(r,1e3))throw new Error("unable to detect audio from microphone");this.appendMessage("detected audio from microphone"),n.localParticipant.publishTrack(r),yield new Promise(a=>setTimeout(a,3e3));const s=yield(e=r.sender)===null||e===void 0?void 0:e.getStats();if(!s)throw new Error("Could not get RTCStats");let o=0;if(s.forEach(a=>{a.type==="outbound-rtp"&&(a.kind==="audio"||!a.kind&&a.mediaType==="audio")&&(o=a.packetsSent)}),o===0)throw new Error("Could not determine packets are sent");this.appendMessage("published ".concat(o," audio packets"))})}}class W2 extends tr{get description(){return"Can publish video"}perform(){return S(this,void 0,void 0,function*(){var e;const n=yield this.connect(),r=yield H2();yield this.checkForVideo(r.mediaStreamTrack),n.localParticipant.publishTrack(r),yield new Promise(o=>setTimeout(o,5e3));const i=yield(e=r.sender)===null||e===void 0?void 0:e.getStats();if(!i)throw new Error("Could not get RTCStats");let s=0;if(i.forEach(o=>{o.type==="outbound-rtp"&&(o.kind==="video"||!o.kind&&o.mediaType==="video")&&(s+=o.packetsSent)}),s===0)throw new Error("Could not determine packets are sent");this.appendMessage("published ".concat(s," video packets"))})}checkForVideo(e){return S(this,void 0,void 0,function*(){const n=new MediaStream;n.addTrack(e.clone());const r=document.createElement("video");r.srcObject=n,r.muted=!0,yield new Promise(i=>{r.onplay=()=>{setTimeout(()=>{var s,o,a,l;const c=document.createElement("canvas"),u=e.getSettings(),d=(o=(s=u.width)!==null&&s!==void 0?s:r.videoWidth)!==null&&o!==void 0?o:1280,h=(l=(a=u.height)!==null&&a!==void 0?a:r.videoHeight)!==null&&l!==void 0?l:720;c.width=d,c.height=h;const f=c.getContext("2d");f.drawImage(r,0,0);const g=f.getImageData(0,0,c.width,c.height).data;let T=!0;for(let p=0;p<g.length;p+=4)if(g[p]!==0||g[p+1]!==0||g[p+2]!==0){T=!1;break}T?this.appendError("camera appears to be producing only black frames"):this.appendMessage("received video frames"),i()},1e3)},r.play()}),r.remove()})}}class G2 extends tr{get description(){return"Resuming connection after interruption"}perform(){return S(this,void 0,void 0,function*(){var e;const n=yield this.connect();let r=!1,i=!1,s;const o=new Promise(c=>{setTimeout(c,5e3),s=c}),a=()=>{r=!0};n.on(M.SignalReconnecting,a).on(M.Reconnecting,a).on(M.Reconnected,()=>{i=!0,s(!0)}),(e=n.engine.client.ws)===null||e===void 0||e.close();const l=n.engine.client.onClose;if(l&&l(""),yield o,r){if(!i||n.state!==ee.Connected)throw this.appendWarning("reconnection is only possible in Redis-based configurations"),new Error("Not able to reconnect")}else throw new Error("Did not attempt to reconnect")})}}class K2 extends tr{get description(){return"Can connect via TURN"}perform(){return S(this,void 0,void 0,function*(){var e,n;const r=new Id,i=yield r.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15e3});let s=!1,o=!1,a=!1;for(let l of i.iceServers)for(let c of l.urls)c.startsWith("turn:")?(o=!0,a=!0):c.startsWith("turns:")&&(o=!0,a=!0,s=!0),c.startsWith("stun:")&&(a=!0);a?o&&!s&&this.appendWarning("TURN is configured server side, but TURN/TLS is unavailable."):this.appendWarning("No STUN servers configured on server side."),yield r.close(),!((n=(e=this.connectOptions)===null||e===void 0?void 0:e.rtcConfig)===null||n===void 0)&&n.iceServers||o?yield this.room.connect(this.url,this.token,{rtcConfig:{iceTransportPolicy:"relay"}}):(this.appendWarning("No TURN servers configured."),this.skip(),yield new Promise(l=>setTimeout(l,0)))})}}class Z2 extends tr{get description(){return"Establishing WebRTC connection"}perform(){return S(this,void 0,void 0,function*(){let e=!1,n=!1;this.room.on(M.SignalConnected,()=>{const r=this.room.engine.client.onTrickle;this.room.engine.client.onTrickle=(i,s)=>{if(i.candidate){const o=new RTCIceCandidate(i);let a="".concat(o.protocol," ").concat(o.address,":").concat(o.port," ").concat(o.type);o.address&&(Q2(o.address)?a+=" (private)":o.protocol==="tcp"&&o.tcpType==="passive"?(e=!0,a+=" (passive)"):o.protocol==="udp"&&(n=!0)),this.appendMessage(a)}r&&r(i,s)},this.room.engine.pcManager&&(this.room.engine.pcManager.subscriber.onIceCandidateError=i=>{i instanceof RTCPeerConnectionIceErrorEvent&&this.appendWarning("error with ICE candidate: ".concat(i.errorCode," ").concat(i.errorText," ").concat(i.url))})});try{yield this.connect(),K.info("now the room is connected")}catch(r){throw this.appendWarning("ports need to be open on firewall in order to connect."),r}e||this.appendWarning("Server is not configured for ICE/TCP"),n||this.appendWarning("No public IPv4 UDP candidates were found. Your server is likely not configured correctly")})}}function Q2(t){const e=t.split(".");if(e.length===4){if(e[0]==="10")return!0;if(e[0]==="192"&&e[1]==="168")return!0;if(e[0]==="172"){const n=parseInt(e[1],10);if(n>=16&&n<=31)return!0}}return!1}class Y2 extends tr{get description(){return"Connecting to signal connection via WebSocket"}perform(){return S(this,void 0,void 0,function*(){var e,n,r;(this.url.startsWith("ws:")||this.url.startsWith("http:"))&&this.appendWarning("Server is insecure, clients may block connections to it");let i=new Id;const s=yield i.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15e3});this.appendMessage("Connected to server, version ".concat(s.serverVersion,".")),((e=s.serverInfo)===null||e===void 0?void 0:e.edition)===dv.Cloud&&(!((n=s.serverInfo)===null||n===void 0)&&n.region)&&this.appendMessage("LiveKit Cloud: ".concat((r=s.serverInfo)===null||r===void 0?void 0:r.region)),yield i.close()})}}class GE extends nn.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.options={},this.checkResults=new Map,this.url=e,this.token=n,this.options=r}getNextCheckId(){const e=this.checkResults.size;return this.checkResults.set(e,{logs:[],status:qt.IDLE,name:"",description:""}),e}updateCheck(e,n){this.checkResults.set(e,n),this.emit("checkUpdate",e,n)}isSuccess(){return Array.from(this.checkResults.values()).every(e=>e.status!==qt.FAILED)}getResults(){return Array.from(this.checkResults.values())}createAndRunCheck(e){return S(this,void 0,void 0,function*(){const n=this.getNextCheckId(),r=new e(this.url,this.token,this.options),i=o=>{this.updateCheck(n,o)};r.on("update",i);const s=yield r.run();return r.off("update",i),s})}checkWebsocket(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(Y2)})}checkWebRTC(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(Z2)})}checkTURN(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(K2)})}checkReconnect(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(G2)})}checkPublishAudio(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(q2)})}checkPublishVideo(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(W2)})}checkConnectionProtocol(){return S(this,void 0,void 0,function*(){const e=yield this.createAndRunCheck(V2);if(e.data&&"protocol"in e.data){const n=e.data;this.options.protocol=n.protocol}return e})}checkCloudRegion(){return S(this,void 0,void 0,function*(){return this.createAndRunCheck(z2)})}}const cy=({active:t,handler:e})=>{const n=B.useRef(null),[r,i]=B.useState("inactive"),[s,o]=B.useState(!1),[a,l]=B.useState(!1),c=B.useCallback(()=>{var u;(u=n.current)==null||u.disconnect().catch(d=>{console.warn(d)}),n.current=null},[]);return B.useEffect(()=>{c();const u=()=>{c()};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u)}},[c]),B.useEffect(()=>{if(!t){c();return}(async()=>{try{const d=new Pi;i("pending");const h=await e.getLiveKitCredentials(),f=T=>{const p=T.some(y=>y.isAgent),v=T.some(y=>y.isLocal);l(p),o(v)},m=T=>{T.kind===O.Kind.Audio&&T.attach().play().catch(v=>{console.warn(v)})},g=T=>{o(T)};await d.prepareConnection(h.url,h.token),d.on(M.TrackSubscribed,m),d.on(M.ActiveSpeakersChanged,f),d.localParticipant.on(A.IsSpeakingChanged,g),await d.connect(h.url,h.token,{autoSubscribe:!0}),await d.localParticipant.setMicrophoneEnabled(!0),await d.startAudio(),i("active")}catch(d){i("error"),console.warn(d),e.terminateLiveKitCall().catch(h=>{console.warn(h)})}})()},[t,c,i,e,o,l]),{roomState:r,isUserSpeaking:s,isApplicationSpeaking:a}},J2=({handler:t,className:e})=>{const[n,r]=B.useState(!1),{roomState:i,isUserSpeaking:s,isApplicationSpeaking:o}=cy({active:n,handler:t});return b.jsxs("div",{className:J("relative flex flex-col items-center justify-center",e),children:[b.jsxs("div",{className:"rounded-full w-fit relative",children:[b.jsx("div",{className:"bg-[rgb(40,41,47)] w-[128px] h-[128px] p-4 z-10 relative rounded-full",children:b.jsx(fa,{className:"w-full h-full text-[rgb(134,135,138)]"})}),n&&o?b.jsx(Lu,{className:"rounded-full"}):null]}),b.jsxs("div",{className:"w-fit flex-none absolute bottom-4 left-1/2 transform -translate-x-1/2",children:[n&&s?b.jsx(Lu,{className:"rounded-inner"}):null,b.jsx(jt,{Icon:Ou,label:"Voice",type:n?i==="error"?"error":"activated":"ghost",onClick:()=>{r(a=>!a)}})]})]})},As=({onClick:t,label:e,type:n="ghost",Icon:r,className:i})=>b.jsxs("button",{onClick:t,disabled:t==null,className:J("relative z-10 w-full px-5 py-4 transition-colors rounded-outer flex justify-between items-center focus:outline-0 overflow-hidden before:content-[''] before:absolute before:transition-colors before:-z-10 before:inset-0 before:bg-transparent",{"bg-primary-80 text-secondary-80 enabled:hover:before:bg-primary-80 focus:before:bg-primary-80 enabled:active:before:bg-secondary-10 disabled:bg-primary-10 disabled:text-secondary-40":n==="main","bg-primary-5 text-primary-80 enabled:hover:before:bg-primary-5 focus:before:bg-primary-5 enabled:active:before:bg-secondary-10 disabled:bg-primary-5 disabled:text-primary-20":n==="ghost"},i),children:[e,b.jsx(r,{size:16})]}),X2=({onClose:t,handler:e,className:n})=>b.jsxs("div",{className:J("p-2 md:p-3 flex flex-col flex-grow justify-center gap-2",n),children:[b.jsx(As,{label:"Restart conversation",Icon:vg,type:"ghost",onClick:()=>{e.reset({clearResponses:!0}),e.sendWelcomeIntent(),t()}}),b.jsx(As,{label:"Talk to an agent",Icon:gg,type:"ghost",onClick:()=>{e.sendIntent("NLX.Escalation"),t()}})]});function Zd(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let Rr=Zd();function uy(t){Rr=t}const js={exec:()=>null};function le(t,e=""){let n=typeof t=="string"?t:t.source;const r={replace:(i,s)=>{let o=typeof s=="string"?s:s.source;return o=o.replace(et.caret,"$1"),n=n.replace(i,o),r},getRegex:()=>new RegExp(n,e)};return r}const et={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},ex=/^(?:[ \t]*(?:\n|$))+/,tx=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,nx=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Us=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,rx=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,dy=/(?:[*+-]|\d{1,9}[.)])/,hy=le(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,dy).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),Qd=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,ix=/^[^\n]+/,Yd=/(?!\s*\])(?:\\.|[^\[\]\\])+/,sx=le(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Yd).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ox=le(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,dy).getRegex(),Ya="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Jd=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ax=le("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Jd).replace("tag",Ya).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),fy=le(Qd).replace("hr",Us).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ya).getRegex(),Xd={blockquote:le(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",fy).getRegex(),code:tx,def:sx,fences:nx,heading:rx,hr:Us,html:ax,lheading:hy,list:ox,newline:ex,paragraph:fy,table:js,text:ix},py=le("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Us).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ya).getRegex(),lx={...Xd,table:py,paragraph:le(Qd).replace("hr",Us).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",py).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ya).getRegex()},cx={...Xd,html:le(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Jd).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:js,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:le(Qd).replace("hr",Us).replace("heading",` *#{1,6} *[^
|
|
98
98
|
]`).replace("lheading",hy).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},ux=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,dx=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,my=/^( {2,}|\\)\n(?!\s*$)/,hx=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Ja=/[\p{P}\p{S}]/u,eh=/[\s\p{P}\p{S}]/u,gy=/[^\s\p{P}\p{S}]/u,fx=le(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,eh).getRegex(),px=/(?!~)[\p{P}\p{S}]/u,mx=/(?!~)[\s\p{P}\p{S}]/u,gx=/(?:[^\s\p{P}\p{S}]|~)/u,vx=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,yx=le(/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,"u").replace(/punct/g,Ja).getRegex(),vy="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",kx=le(vy,"gu").replace(/notPunctSpace/g,gy).replace(/punctSpace/g,eh).replace(/punct/g,Ja).getRegex(),bx=le(vy,"gu").replace(/notPunctSpace/g,gx).replace(/punctSpace/g,mx).replace(/punct/g,px).getRegex(),Cx=le("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,gy).replace(/punctSpace/g,eh).replace(/punct/g,Ja).getRegex(),Sx=le(/\\(punct)/,"gu").replace(/punct/g,Ja).getRegex(),wx=le(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Tx=le(Jd).replace("(?:-->|$)","-->").getRegex(),xx=le("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Tx).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Xa=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Ex=le(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",Xa).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),yy=le(/^!?\[(label)\]\[(ref)\]/).replace("label",Xa).replace("ref",Yd).getRegex(),ky=le(/^!?\[(ref)\](?:\[\])?/).replace("ref",Yd).getRegex(),Px=le("reflink|nolink(?!\\()","g").replace("reflink",yy).replace("nolink",ky).getRegex(),th={_backpedal:js,anyPunctuation:Sx,autolink:wx,blockSkip:vx,br:my,code:dx,del:js,emStrongLDelim:yx,emStrongRDelimAst:kx,emStrongRDelimUnd:Cx,escape:ux,link:Ex,nolink:ky,punctuation:fx,reflink:yy,reflinkSearch:Px,tag:xx,text:hx,url:js},_x={...th,link:le(/^!?\[(label)\]\((.*?)\)/).replace("label",Xa).getRegex(),reflink:le(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Xa).getRegex()},nh={...th,emStrongRDelimAst:bx,url:le(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},Rx={...nh,br:le(my).replace("{2,}","*").getRegex(),text:le(nh.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},el={normal:Xd,gfm:lx,pedantic:cx},Fs={normal:th,gfm:nh,breaks:Rx,pedantic:_x},Ix={"&":"&","<":"<",">":">",'"':""","'":"'"},by=t=>Ix[t];function sn(t,e){if(e){if(et.escapeTest.test(t))return t.replace(et.escapeReplace,by)}else if(et.escapeTestNoEncode.test(t))return t.replace(et.escapeReplaceNoEncode,by);return t}function Cy(t){try{t=encodeURI(t).replace(et.percentDecode,"%")}catch{return null}return t}function Sy(t,e){var s;const n=t.replace(et.findPipe,(o,a,l)=>{let c=!1,u=a;for(;--u>=0&&l[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(et.splitPipe);let i=0;if(r[0].trim()||r.shift(),r.length>0&&!((s=r.at(-1))!=null&&s.trim())&&r.pop(),e)if(r.length>e)r.splice(e);else for(;r.length<e;)r.push("");for(;i<r.length;i++)r[i]=r[i].trim().replace(et.slashPipe,"|");return r}function Bs(t,e,n){const r=t.length;if(r===0)return"";let i=0;for(;i<r&&t.charAt(r-i-1)===e;)i++;return t.slice(0,r-i)}function Ox(t,e){if(t.indexOf(e[1])===-1)return-1;let n=0;for(let r=0;r<t.length;r++)if(t[r]==="\\")r++;else if(t[r]===e[0])n++;else if(t[r]===e[1]&&(n--,n<0))return r;return-1}function wy(t,e,n,r,i){const s=e.href,o=e.title||null,a=t[1].replace(i.other.outputLinkReplace,"$1");if(t[0].charAt(0)!=="!"){r.state.inLink=!0;const l={type:"link",raw:n,href:s,title:o,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,l}return{type:"image",raw:n,href:s,title:o,text:a}}function Lx(t,e,n){const r=t.match(n.other.indentCodeCompensation);if(r===null)return e;const i=r[1];return e.split(`
|
|
99
99
|
`).map(s=>{const o=s.match(n.other.beginningSpace);if(o===null)return s;const[a]=o;return a.length>=i.length?s.slice(i.length):s}).join(`
|
|
100
|
-
`)}class tl{constructor(e){
|
|
100
|
+
`)}class tl{constructor(e){te(this,"options");te(this,"rules");te(this,"lexer");this.options=e||Rr}space(e){const n=this.rules.block.newline.exec(e);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(e){const n=this.rules.block.code.exec(e);if(n){const r=n[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?r:Bs(r,`
|
|
101
101
|
`)}}}fences(e){const n=this.rules.block.fences.exec(e);if(n){const r=n[0],i=Lx(r,n[3]||"",this.rules);return{type:"code",raw:r,lang:n[2]?n[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):n[2],text:i}}}heading(e){const n=this.rules.block.heading.exec(e);if(n){let r=n[2].trim();if(this.rules.other.endingHash.test(r)){const i=Bs(r,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(r=i.trim())}return{type:"heading",raw:n[0],depth:n[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(e){const n=this.rules.block.hr.exec(e);if(n)return{type:"hr",raw:Bs(n[0],`
|
|
102
102
|
`)}}blockquote(e){const n=this.rules.block.blockquote.exec(e);if(n){let r=Bs(n[0],`
|
|
103
103
|
`).split(`
|
|
@@ -119,7 +119,7 @@ ${d}`:d;const h=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.block
|
|
|
119
119
|
`+f}!m&&!f.trim()&&(m=!0),u+=w+`
|
|
120
120
|
`,e=e.substring(w.length+1),h=E.slice(g)}}s.loose||(a?s.loose=!0:this.rules.other.doubleBlankLine.test(u)&&(a=!0));let T=null,p;this.options.gfm&&(T=this.rules.other.listIsTask.exec(d),T&&(p=T[0]!=="[ ] ",d=d.replace(this.rules.other.listReplaceTask,""))),s.items.push({type:"list_item",raw:u,task:!!T,checked:p,loose:!1,text:d,tokens:[]}),s.raw+=u}const l=s.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;s.raw=s.raw.trimEnd();for(let c=0;c<s.items.length;c++)if(this.lexer.state.top=!1,s.items[c].tokens=this.lexer.blockTokens(s.items[c].text,[]),!s.loose){const u=s.items[c].tokens.filter(h=>h.type==="space"),d=u.length>0&&u.some(h=>this.rules.other.anyLine.test(h.raw));s.loose=d}if(s.loose)for(let c=0;c<s.items.length;c++)s.items[c].loose=!0;return s}}html(e){const n=this.rules.block.html.exec(e);if(n)return{type:"html",block:!0,raw:n[0],pre:n[1]==="pre"||n[1]==="script"||n[1]==="style",text:n[0]}}def(e){const n=this.rules.block.def.exec(e);if(n){const r=n[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),i=n[2]?n[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",s=n[3]?n[3].substring(1,n[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):n[3];return{type:"def",tag:r,raw:n[0],href:i,title:s}}}table(e){var a;const n=this.rules.block.table.exec(e);if(!n||!this.rules.other.tableDelimiter.test(n[2]))return;const r=Sy(n[1]),i=n[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=(a=n[3])!=null&&a.trim()?n[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
121
121
|
`):[],o={type:"table",raw:n[0],header:[],align:[],rows:[]};if(r.length===i.length){for(const l of i)this.rules.other.tableAlignRight.test(l)?o.align.push("right"):this.rules.other.tableAlignCenter.test(l)?o.align.push("center"):this.rules.other.tableAlignLeft.test(l)?o.align.push("left"):o.align.push(null);for(let l=0;l<r.length;l++)o.header.push({text:r[l],tokens:this.lexer.inline(r[l]),header:!0,align:o.align[l]});for(const l of s)o.rows.push(Sy(l,o.header.length).map((c,u)=>({text:c,tokens:this.lexer.inline(c),header:!1,align:o.align[u]})));return o}}lheading(e){const n=this.rules.block.lheading.exec(e);if(n)return{type:"heading",raw:n[0],depth:n[2].charAt(0)==="="?1:2,text:n[1],tokens:this.lexer.inline(n[1])}}paragraph(e){const n=this.rules.block.paragraph.exec(e);if(n){const r=n[1].charAt(n[1].length-1)===`
|
|
122
|
-
`?n[1].slice(0,-1):n[1];return{type:"paragraph",raw:n[0],text:r,tokens:this.lexer.inline(r)}}}text(e){const n=this.rules.block.text.exec(e);if(n)return{type:"text",raw:n[0],text:n[0],tokens:this.lexer.inline(n[0])}}escape(e){const n=this.rules.inline.escape.exec(e);if(n)return{type:"escape",raw:n[0],text:n[1]}}tag(e){const n=this.rules.inline.tag.exec(e);if(n)return!this.lexer.state.inLink&&this.rules.other.startATag.test(n[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:n[0]}}link(e){const n=this.rules.inline.link.exec(e);if(n){const r=n[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;const o=Bs(r.slice(0,-1),"\\");if((r.length-o.length)%2===0)return}else{const o=Ox(n[2],"()");if(o>-1){const l=(n[0].indexOf("!")===0?5:4)+n[1].length+o;n[2]=n[2].substring(0,o),n[0]=n[0].substring(0,l).trim(),n[3]=""}}let i=n[2],s="";if(this.options.pedantic){const o=this.rules.other.pedanticHrefTitle.exec(i);o&&(i=o[1],s=o[3])}else s=n[3]?n[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?i=i.slice(1):i=i.slice(1,-1)),wy(n,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},n[0],this.lexer,this.rules)}}reflink(e,n){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){const i=(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=n[i.toLowerCase()];if(!s){const o=r[0].charAt(0);return{type:"text",raw:o,text:o}}return wy(r,s,r[0],this.lexer,this.rules)}}emStrong(e,n,r=""){let i=this.rules.inline.emStrongLDelim.exec(e);if(!i||i[3]&&r.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!r||this.rules.inline.punctuation.exec(r)){const o=[...i[0]].length-1;let a,l,c=o,u=0;const d=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,n=n.slice(-1*e.length+o);(i=d.exec(n))!=null;){if(a=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!a)continue;if(l=[...a].length,i[3]||i[4]){c+=l;continue}else if((i[5]||i[6])&&o%3&&!((o+l)%3)){u+=l;continue}if(c-=l,c>0)continue;l=Math.min(l,l+c+u);const h=[...i[0]][0].length,f=e.slice(0,o+i.index+h+l);if(Math.min(o,l)%2){const g=f.slice(1,-1);return{type:"em",raw:f,text:g,tokens:this.lexer.inlineTokens(g)}}const m=f.slice(2,-2);return{type:"strong",raw:f,text:m,tokens:this.lexer.inlineTokens(m)}}}}codespan(e){const n=this.rules.inline.code.exec(e);if(n){let r=n[2].replace(this.rules.other.newLineCharGlobal," ");const i=this.rules.other.nonSpaceChar.test(r),s=this.rules.other.startingSpaceChar.test(r)&&this.rules.other.endingSpaceChar.test(r);return i&&s&&(r=r.substring(1,r.length-1)),{type:"codespan",raw:n[0],text:r}}}br(e){const n=this.rules.inline.br.exec(e);if(n)return{type:"br",raw:n[0]}}del(e){const n=this.rules.inline.del.exec(e);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2])}}autolink(e){const n=this.rules.inline.autolink.exec(e);if(n){let r,i;return n[2]==="@"?(r=n[1],i="mailto:"+r):(r=n[1],i=r),{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}url(e){var r;let n;if(n=this.rules.inline.url.exec(e)){let i,s;if(n[2]==="@")i=n[0],s="mailto:"+i;else{let o;do o=n[0],n[0]=((r=this.rules.inline._backpedal.exec(n[0]))==null?void 0:r[0])??"";while(o!==n[0]);i=n[0],n[1]==="www."?s="http://"+n[0]:s=n[0]}return{type:"link",raw:n[0],text:i,href:s,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(e){const n=this.rules.inline.text.exec(e);if(n){const r=this.lexer.state.inRawBlock;return{type:"text",raw:n[0],text:n[0],escaped:r}}}}class Pt{constructor(e){
|
|
122
|
+
`?n[1].slice(0,-1):n[1];return{type:"paragraph",raw:n[0],text:r,tokens:this.lexer.inline(r)}}}text(e){const n=this.rules.block.text.exec(e);if(n)return{type:"text",raw:n[0],text:n[0],tokens:this.lexer.inline(n[0])}}escape(e){const n=this.rules.inline.escape.exec(e);if(n)return{type:"escape",raw:n[0],text:n[1]}}tag(e){const n=this.rules.inline.tag.exec(e);if(n)return!this.lexer.state.inLink&&this.rules.other.startATag.test(n[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:n[0]}}link(e){const n=this.rules.inline.link.exec(e);if(n){const r=n[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;const o=Bs(r.slice(0,-1),"\\");if((r.length-o.length)%2===0)return}else{const o=Ox(n[2],"()");if(o>-1){const l=(n[0].indexOf("!")===0?5:4)+n[1].length+o;n[2]=n[2].substring(0,o),n[0]=n[0].substring(0,l).trim(),n[3]=""}}let i=n[2],s="";if(this.options.pedantic){const o=this.rules.other.pedanticHrefTitle.exec(i);o&&(i=o[1],s=o[3])}else s=n[3]?n[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?i=i.slice(1):i=i.slice(1,-1)),wy(n,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},n[0],this.lexer,this.rules)}}reflink(e,n){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){const i=(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=n[i.toLowerCase()];if(!s){const o=r[0].charAt(0);return{type:"text",raw:o,text:o}}return wy(r,s,r[0],this.lexer,this.rules)}}emStrong(e,n,r=""){let i=this.rules.inline.emStrongLDelim.exec(e);if(!i||i[3]&&r.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!r||this.rules.inline.punctuation.exec(r)){const o=[...i[0]].length-1;let a,l,c=o,u=0;const d=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,n=n.slice(-1*e.length+o);(i=d.exec(n))!=null;){if(a=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!a)continue;if(l=[...a].length,i[3]||i[4]){c+=l;continue}else if((i[5]||i[6])&&o%3&&!((o+l)%3)){u+=l;continue}if(c-=l,c>0)continue;l=Math.min(l,l+c+u);const h=[...i[0]][0].length,f=e.slice(0,o+i.index+h+l);if(Math.min(o,l)%2){const g=f.slice(1,-1);return{type:"em",raw:f,text:g,tokens:this.lexer.inlineTokens(g)}}const m=f.slice(2,-2);return{type:"strong",raw:f,text:m,tokens:this.lexer.inlineTokens(m)}}}}codespan(e){const n=this.rules.inline.code.exec(e);if(n){let r=n[2].replace(this.rules.other.newLineCharGlobal," ");const i=this.rules.other.nonSpaceChar.test(r),s=this.rules.other.startingSpaceChar.test(r)&&this.rules.other.endingSpaceChar.test(r);return i&&s&&(r=r.substring(1,r.length-1)),{type:"codespan",raw:n[0],text:r}}}br(e){const n=this.rules.inline.br.exec(e);if(n)return{type:"br",raw:n[0]}}del(e){const n=this.rules.inline.del.exec(e);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2])}}autolink(e){const n=this.rules.inline.autolink.exec(e);if(n){let r,i;return n[2]==="@"?(r=n[1],i="mailto:"+r):(r=n[1],i=r),{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}url(e){var r;let n;if(n=this.rules.inline.url.exec(e)){let i,s;if(n[2]==="@")i=n[0],s="mailto:"+i;else{let o;do o=n[0],n[0]=((r=this.rules.inline._backpedal.exec(n[0]))==null?void 0:r[0])??"";while(o!==n[0]);i=n[0],n[1]==="www."?s="http://"+n[0]:s=n[0]}return{type:"link",raw:n[0],text:i,href:s,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(e){const n=this.rules.inline.text.exec(e);if(n){const r=this.lexer.state.inRawBlock;return{type:"text",raw:n[0],text:n[0],escaped:r}}}}class Pt{constructor(e){te(this,"tokens");te(this,"options");te(this,"state");te(this,"tokenizer");te(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Rr,this.options.tokenizer=this.options.tokenizer||new tl,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={other:et,block:el.normal,inline:Fs.normal};this.options.pedantic?(n.block=el.pedantic,n.inline=Fs.pedantic):this.options.gfm&&(n.block=el.gfm,this.options.breaks?n.inline=Fs.breaks:n.inline=Fs.gfm),this.tokenizer.rules=n}static get rules(){return{block:el,inline:Fs}}static lex(e,n){return new Pt(n).lex(e)}static lexInline(e,n){return new Pt(n).inlineTokens(e)}lex(e){e=e.replace(et.carriageReturn,`
|
|
123
123
|
`),this.blockTokens(e,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){const r=this.inlineQueue[n];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,n=[],r=!1){var i,s,o;for(this.options.pedantic&&(e=e.replace(et.tabCharGlobal," ").replace(et.spaceLine,""));e;){let a;if((s=(i=this.options.extensions)==null?void 0:i.block)!=null&&s.some(c=>(a=c.call({lexer:this},e,n))?(e=e.substring(a.raw.length),n.push(a),!0):!1))continue;if(a=this.tokenizer.space(e)){e=e.substring(a.raw.length);const c=n.at(-1);a.raw.length===1&&c!==void 0?c.raw+=`
|
|
124
124
|
`:n.push(a);continue}if(a=this.tokenizer.code(e)){e=e.substring(a.raw.length);const c=n.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=`
|
|
125
125
|
`+a.raw,c.text+=`
|
|
@@ -129,7 +129,7 @@ ${d}`:d;const h=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.block
|
|
|
129
129
|
`+a.raw,c.text+=`
|
|
130
130
|
`+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):n.push(a),r=l.length!==e.length,e=e.substring(a.raw.length);continue}if(a=this.tokenizer.text(e)){e=e.substring(a.raw.length);const c=n.at(-1);(c==null?void 0:c.type)==="text"?(c.raw+=`
|
|
131
131
|
`+a.raw,c.text+=`
|
|
132
|
-
`+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):n.push(a);continue}if(e){const c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return this.state.top=!0,n}inline(e,n=[]){return this.inlineQueue.push({src:e,tokens:n}),n}inlineTokens(e,n=[]){var a,l,c;let r=e,i=null;if(this.tokens.links){const u=Object.keys(this.tokens.links);if(u.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(r))!=null;)u.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.blockSkip.exec(r))!=null;)r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(r))!=null;)r=r.slice(0,i.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s=!1,o="";for(;e;){s||(o=""),s=!1;let u;if((l=(a=this.options.extensions)==null?void 0:a.inline)!=null&&l.some(h=>(u=h.call({lexer:this},e,n))?(e=e.substring(u.raw.length),n.push(u),!0):!1))continue;if(u=this.tokenizer.escape(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.tag(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.link(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(u.raw.length);const h=n.at(-1);u.type==="text"&&(h==null?void 0:h.type)==="text"?(h.raw+=u.raw,h.text+=u.text):n.push(u);continue}if(u=this.tokenizer.emStrong(e,r,o)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.codespan(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.br(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.del(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.autolink(e)){e=e.substring(u.raw.length),n.push(u);continue}if(!this.state.inLink&&(u=this.tokenizer.url(e))){e=e.substring(u.raw.length),n.push(u);continue}let d=e;if((c=this.options.extensions)!=null&&c.startInline){let h=1/0;const f=e.slice(1);let m;this.options.extensions.startInline.forEach(g=>{m=g.call({lexer:this},f),typeof m=="number"&&m>=0&&(h=Math.min(h,m))}),h<1/0&&h>=0&&(d=e.substring(0,h+1))}if(u=this.tokenizer.inlineText(d)){e=e.substring(u.raw.length),u.raw.slice(-1)!=="_"&&(o=u.raw.slice(-1)),s=!0;const h=n.at(-1);(h==null?void 0:h.type)==="text"?(h.raw+=u.raw,h.text+=u.text):n.push(u);continue}if(e){const h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return n}}class nl{constructor(e){
|
|
132
|
+
`+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):n.push(a);continue}if(e){const c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return this.state.top=!0,n}inline(e,n=[]){return this.inlineQueue.push({src:e,tokens:n}),n}inlineTokens(e,n=[]){var a,l,c;let r=e,i=null;if(this.tokens.links){const u=Object.keys(this.tokens.links);if(u.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(r))!=null;)u.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.blockSkip.exec(r))!=null;)r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(r))!=null;)r=r.slice(0,i.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s=!1,o="";for(;e;){s||(o=""),s=!1;let u;if((l=(a=this.options.extensions)==null?void 0:a.inline)!=null&&l.some(h=>(u=h.call({lexer:this},e,n))?(e=e.substring(u.raw.length),n.push(u),!0):!1))continue;if(u=this.tokenizer.escape(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.tag(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.link(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(u.raw.length);const h=n.at(-1);u.type==="text"&&(h==null?void 0:h.type)==="text"?(h.raw+=u.raw,h.text+=u.text):n.push(u);continue}if(u=this.tokenizer.emStrong(e,r,o)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.codespan(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.br(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.del(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.autolink(e)){e=e.substring(u.raw.length),n.push(u);continue}if(!this.state.inLink&&(u=this.tokenizer.url(e))){e=e.substring(u.raw.length),n.push(u);continue}let d=e;if((c=this.options.extensions)!=null&&c.startInline){let h=1/0;const f=e.slice(1);let m;this.options.extensions.startInline.forEach(g=>{m=g.call({lexer:this},f),typeof m=="number"&&m>=0&&(h=Math.min(h,m))}),h<1/0&&h>=0&&(d=e.substring(0,h+1))}if(u=this.tokenizer.inlineText(d)){e=e.substring(u.raw.length),u.raw.slice(-1)!=="_"&&(o=u.raw.slice(-1)),s=!0;const h=n.at(-1);(h==null?void 0:h.type)==="text"?(h.raw+=u.raw,h.text+=u.text):n.push(u);continue}if(e){const h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return n}}class nl{constructor(e){te(this,"options");te(this,"parser");this.options=e||Rr}space(e){return""}code({text:e,lang:n,escaped:r}){var o;const i=(o=(n||"").match(et.notSpaceStart))==null?void 0:o[0],s=e.replace(et.endingNewline,"")+`
|
|
133
133
|
`;return i?'<pre><code class="language-'+sn(i)+'">'+(r?s:sn(s,!0))+`</code></pre>
|
|
134
134
|
`:"<pre><code>"+(r?s:sn(s,!0))+`</code></pre>
|
|
135
135
|
`}blockquote({tokens:e}){return`<blockquote>
|
|
@@ -147,13 +147,13 @@ ${this.parser.parse(e)}</blockquote>
|
|
|
147
147
|
`}tablerow({text:e}){return`<tr>
|
|
148
148
|
${e}</tr>
|
|
149
149
|
`}tablecell(e){const n=this.parser.parseInline(e.tokens),r=e.header?"th":"td";return(e.align?`<${r} align="${e.align}">`:`<${r}>`)+n+`</${r}>
|
|
150
|
-
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${sn(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:n,tokens:r}){const i=this.parser.parseInline(r),s=Cy(e);if(s===null)return i;e=s;let o='<a href="'+e+'"';return n&&(o+=' title="'+sn(n)+'"'),o+=">"+i+"</a>",o}image({href:e,title:n,text:r}){const i=Cy(e);if(i===null)return sn(r);e=i;let s=`<img src="${e}" alt="${r}"`;return n&&(s+=` title="${sn(n)}"`),s+=">",s}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:sn(e.text)}}class rh{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}}class _t{constructor(e){
|
|
151
|
-
`+this.renderer.text(c);n?r+=this.renderer.paragraph({type:"paragraph",raw:u,text:u,tokens:[{type:"text",raw:u,text:u,escaped:!0}]}):r+=u;continue}default:{const c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return r}parseInline(e,n=this.renderer){var i,s;let r="";for(let o=0;o<e.length;o++){const a=e[o];if((s=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&s[a.type]){const c=this.options.extensions.renderers[a.type].call({parser:this},a);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)){r+=c||"";continue}}const l=a;switch(l.type){case"escape":{r+=n.text(l);break}case"html":{r+=n.html(l);break}case"link":{r+=n.link(l);break}case"image":{r+=n.image(l);break}case"strong":{r+=n.strong(l);break}case"em":{r+=n.em(l);break}case"codespan":{r+=n.codespan(l);break}case"br":{r+=n.br(l);break}case"del":{r+=n.del(l);break}case"text":{r+=n.text(l);break}default:{const c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return r}}class zs{constructor(e){
|
|
150
|
+
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${sn(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:n,tokens:r}){const i=this.parser.parseInline(r),s=Cy(e);if(s===null)return i;e=s;let o='<a href="'+e+'"';return n&&(o+=' title="'+sn(n)+'"'),o+=">"+i+"</a>",o}image({href:e,title:n,text:r}){const i=Cy(e);if(i===null)return sn(r);e=i;let s=`<img src="${e}" alt="${r}"`;return n&&(s+=` title="${sn(n)}"`),s+=">",s}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:sn(e.text)}}class rh{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}}class _t{constructor(e){te(this,"options");te(this,"renderer");te(this,"textRenderer");this.options=e||Rr,this.options.renderer=this.options.renderer||new nl,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new rh}static parse(e,n){return new _t(n).parse(e)}static parseInline(e,n){return new _t(n).parseInline(e)}parse(e,n=!0){var i,s;let r="";for(let o=0;o<e.length;o++){const a=e[o];if((s=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&s[a.type]){const c=a,u=this.options.extensions.renderers[c.type].call({parser:this},c);if(u!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(c.type)){r+=u||"";continue}}const l=a;switch(l.type){case"space":{r+=this.renderer.space(l);continue}case"hr":{r+=this.renderer.hr(l);continue}case"heading":{r+=this.renderer.heading(l);continue}case"code":{r+=this.renderer.code(l);continue}case"table":{r+=this.renderer.table(l);continue}case"blockquote":{r+=this.renderer.blockquote(l);continue}case"list":{r+=this.renderer.list(l);continue}case"html":{r+=this.renderer.html(l);continue}case"paragraph":{r+=this.renderer.paragraph(l);continue}case"text":{let c=l,u=this.renderer.text(c);for(;o+1<e.length&&e[o+1].type==="text";)c=e[++o],u+=`
|
|
151
|
+
`+this.renderer.text(c);n?r+=this.renderer.paragraph({type:"paragraph",raw:u,text:u,tokens:[{type:"text",raw:u,text:u,escaped:!0}]}):r+=u;continue}default:{const c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return r}parseInline(e,n=this.renderer){var i,s;let r="";for(let o=0;o<e.length;o++){const a=e[o];if((s=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&s[a.type]){const c=this.options.extensions.renderers[a.type].call({parser:this},a);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)){r+=c||"";continue}}const l=a;switch(l.type){case"escape":{r+=n.text(l);break}case"html":{r+=n.html(l);break}case"link":{r+=n.link(l);break}case"image":{r+=n.image(l);break}case"strong":{r+=n.strong(l);break}case"em":{r+=n.em(l);break}case"codespan":{r+=n.codespan(l);break}case"br":{r+=n.br(l);break}case"del":{r+=n.del(l);break}case"text":{r+=n.text(l);break}default:{const c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return r}}class zs{constructor(e){te(this,"options");te(this,"block");this.options=e||Rr}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?Pt.lex:Pt.lexInline}provideParser(){return this.block?_t.parse:_t.parseInline}}te(zs,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"]));class Mx{constructor(...e){te(this,"defaults",Zd());te(this,"options",this.setOptions);te(this,"parse",this.parseMarkdown(!0));te(this,"parseInline",this.parseMarkdown(!1));te(this,"Parser",_t);te(this,"Renderer",nl);te(this,"TextRenderer",rh);te(this,"Lexer",Pt);te(this,"Tokenizer",tl);te(this,"Hooks",zs);this.use(...e)}walkTokens(e,n){var i,s;let r=[];for(const o of e)switch(r=r.concat(n.call(this,o)),o.type){case"table":{const a=o;for(const l of a.header)r=r.concat(this.walkTokens(l.tokens,n));for(const l of a.rows)for(const c of l)r=r.concat(this.walkTokens(c.tokens,n));break}case"list":{const a=o;r=r.concat(this.walkTokens(a.items,n));break}default:{const a=o;(s=(i=this.defaults.extensions)==null?void 0:i.childTokens)!=null&&s[a.type]?this.defaults.extensions.childTokens[a.type].forEach(l=>{const c=a[l].flat(1/0);r=r.concat(this.walkTokens(c,n))}):a.tokens&&(r=r.concat(this.walkTokens(a.tokens,n)))}}return r}use(...e){const n=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(r=>{const i={...r};if(i.async=this.defaults.async||i.async||!1,r.extensions&&(r.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){const o=n.renderers[s.name];o?n.renderers[s.name]=function(...a){let l=s.renderer.apply(this,a);return l===!1&&(l=o.apply(this,a)),l}:n.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const o=n[s.level];o?o.unshift(s.tokenizer):n[s.level]=[s.tokenizer],s.start&&(s.level==="block"?n.startBlock?n.startBlock.push(s.start):n.startBlock=[s.start]:s.level==="inline"&&(n.startInline?n.startInline.push(s.start):n.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(n.childTokens[s.name]=s.childTokens)}),i.extensions=n),r.renderer){const s=this.defaults.renderer||new nl(this.defaults);for(const o in r.renderer){if(!(o in s))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;const a=o,l=r.renderer[a],c=s[a];s[a]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d||""}}i.renderer=s}if(r.tokenizer){const s=this.defaults.tokenizer||new tl(this.defaults);for(const o in r.tokenizer){if(!(o in s))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;const a=o,l=r.tokenizer[a],c=s[a];s[a]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d}}i.tokenizer=s}if(r.hooks){const s=this.defaults.hooks||new zs;for(const o in r.hooks){if(!(o in s))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;const a=o,l=r.hooks[a],c=s[a];zs.passThroughHooks.has(o)?s[a]=u=>{if(this.defaults.async)return Promise.resolve(l.call(s,u)).then(h=>c.call(s,h));const d=l.call(s,u);return c.call(s,d)}:s[a]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d}}i.hooks=s}if(r.walkTokens){const s=this.defaults.walkTokens,o=r.walkTokens;i.walkTokens=function(a){let l=[];return l.push(o.call(this,a)),s&&(l=l.concat(s.call(this,a))),l}}this.defaults={...this.defaults,...i}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,n){return Pt.lex(e,n??this.defaults)}parser(e,n){return _t.parse(e,n??this.defaults)}parseMarkdown(e){return(r,i)=>{const s={...i},o={...this.defaults,...s},a=this.onError(!!o.silent,!!o.async);if(this.defaults.async===!0&&s.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof r>"u"||r===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof r!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(r)+", string expected"));o.hooks&&(o.hooks.options=o,o.hooks.block=e);const l=o.hooks?o.hooks.provideLexer():e?Pt.lex:Pt.lexInline,c=o.hooks?o.hooks.provideParser():e?_t.parse:_t.parseInline;if(o.async)return Promise.resolve(o.hooks?o.hooks.preprocess(r):r).then(u=>l(u,o)).then(u=>o.hooks?o.hooks.processAllTokens(u):u).then(u=>o.walkTokens?Promise.all(this.walkTokens(u,o.walkTokens)).then(()=>u):u).then(u=>c(u,o)).then(u=>o.hooks?o.hooks.postprocess(u):u).catch(a);try{o.hooks&&(r=o.hooks.preprocess(r));let u=l(r,o);o.hooks&&(u=o.hooks.processAllTokens(u)),o.walkTokens&&this.walkTokens(u,o.walkTokens);let d=c(u,o);return o.hooks&&(d=o.hooks.postprocess(d)),d}catch(u){return a(u)}}}onError(e,n){return r=>{if(r.message+=`
|
|
152
152
|
Please report this to https://github.com/markedjs/marked.`,e){const i="<p>An error occurred:</p><pre>"+sn(r.message+"",!0)+"</pre>";return n?Promise.resolve(i):i}if(n)return Promise.reject(r);throw r}}}const Ir=new Mx;function se(t,e){return Ir.parse(t,e)}se.options=se.setOptions=function(t){return Ir.setOptions(t),se.defaults=Ir.defaults,uy(se.defaults),se},se.getDefaults=Zd,se.defaults=Rr,se.use=function(...t){return Ir.use(...t),se.defaults=Ir.defaults,uy(se.defaults),se},se.walkTokens=function(t,e){return Ir.walkTokens(t,e)},se.parseInline=Ir.parseInline,se.Parser=_t,se.parser=_t.parse,se.Renderer=nl,se.TextRenderer=rh,se.Lexer=Pt,se.lexer=Pt.lex,se.Tokenizer=tl,se.Hooks=zs,se.parse=se,se.options,se.setOptions,se.use,se.walkTokens,se.parseInline,_t.parse,Pt.lex;const Nx=30,Vs=17,Dx=t=>t<.5?2*t*t:1-Math.pow(-2*t+2,2)/2,ih=990,rl=ih+300,Ax=({d:t})=>{const e=Math.PI/2,n=t/Vs/2.8,r=e*Math.min(n,1),i=n<1?(t-Math.sin(r))/Math.cos(r)*.5:0,s=-t,o=t,a=t-Vs*Math.sin(r),l=Vs*Math.cos(r),c=a-i*Math.cos(r),u=l-i*Math.sin(r);return b.jsxs(b.Fragment,{children:[b.jsx("circle",{cx:s,cy:"0",r:Vs}),b.jsx("circle",{cx:o,cy:"0",r:Vs}),n<.45?b.jsx("path",{d:`
|
|
153
153
|
M${-a},${l}
|
|
154
154
|
C${-c},${u} ${c},${u} ${a},${l} L${a},${-l}
|
|
155
155
|
C${c},${-u} ${-c},${-u} ${-a},${-l} Z
|
|
156
|
-
`}):null]})},jx=t=>t<1/3?t*3:t<2/3?1:3-t*3,Ty=t=>t<1/3?0:t<2/3?(t-1/3)*3:1,Ux=({label:t,className:e})=>{const[n,r]=B.useState(null),i=B.useRef(!1);if(B.useEffect(()=>{const f=m=>{r(g=>g==null?{start:m,current:m}:{...g,current:m}),i.current||requestAnimationFrame(f)};i.current||requestAnimationFrame(f)},[i,r]),n==null)return null;let s,o;const a=n.current-n.start,l=a%rl,c=Math.floor(a/rl);if(l<ih){const f=a/rl,m=Math.floor(f),g=Dx((f-m)*(rl/ih));s=jx(g),o=c%2?Ty(g):1+Ty(g)}else s=0,o=0;const u=s>.2?0:5*(.2-s)/.2,d=.3,h=s>d?1-.25*(s-d)/(1-d):1;return b.jsx("div",{className:te("h-full w-full flex items-center justify-center",e),children:b.jsxs("div",{className:"flex flex-col items-center justify-center gap-3",children:[b.jsx("div",{className:te("w-8 h-8 block text-accent"),children:b.jsx("svg",{viewBox:"0 0 100 100",stroke:"none",fill:"currentColor",style:{filter:`drop-shadow(0 0 ${u}px var(--accent))`},children:b.jsx("g",{transform:`translate(50 50) rotate(${o*90})`,opacity:h,children:b.jsx(Ax,{d:Nx*s})})})}),b.jsx("p",{className:"text-primary-60",children:t})]})})},Fx=({handler:t,message:e,responseIndex:n,messageIndex:r,className:i})=>e.choices.length>0?b.jsx("div",{className:i,children:b.jsx("ul",{className:"space-y-2",children:e.choices.map((s,o)=>e.selectedChoiceId==null||s.choiceId===e.selectedChoiceId?b.jsx("li",{className:"w-full",children:b.jsx(As,{type:"ghost",Icon:pa,onClick:e.selectedChoiceId==null?()=>{t.sendChoice(s.choiceId,{},{responseIndex:n,messageIndex:r})}:void 0,label:s.choiceText})},o):null)})}):null,sh=({text:t,files:e})=>b.jsxs("div",{className:"space-y-2",children:[b.jsx("div",{className:"flex justify-end pl-10 text-base",children:b.jsx("div",{className:"text-primary-60 p-3 rounded-inner bg-primary-5 whitespace-pre-wrap",children:t})}),e!=null?b.jsx("div",{className:"flex flex-wrap justify-end gap-2",children:e.map((n,r)=>b.jsx("img",{className:"rounded-inner h-20",src:URL.createObjectURL(n)},r))}):null]}),Bx=({message:t})=>b.jsxs("div",{className:"bg-error-secondary text-error-primary text-base p-3 rounded-inner flex items-center gap-2",children:[b.jsx(kg,{className:"w-4 h-4 flex-none"}),b.jsx("p",{className:"text-primary-80",children:t})]}),zx=({responses:t,colorMode:e,uploadedFiles:n,lastBotResponseIndex:r,isWaiting:i,customModalities:s,handler:o,className:a,enabled:l})=>{const c=B.useRef(null),u=B.useRef(null);return B.useEffect(()=>{i||setTimeout(()=>{var d;(d=u.current)==null||d.scrollIntoView({behavior:"smooth"})})},[i]),b.jsxs("div",{className:te("relative",a),children:[b.jsx("div",{"data-theme":e==="dark"?"light":"dark",className:te("absolute inset-x-0 h-[1px] top-0 bg-background opacity-[0.01] backdrop-blur-md")}),i?b.jsx(Ux,{label:"Thinking",className:"absolute inset-0"}):null,b.jsx("div",{className:te("absolute inset-0 p-2 md:p-3 overflow-y-auto no-scrollbar space-y-8",i?"opacity-0":"opacity-100"),ref:c,children:t.map((d,h)=>{if(d.type==="user")return d.payload.type==="text"?b.jsx(sh,{text:d.payload.text},h):d.payload.type==="structured"&&d.payload.utterance!=null&&d.payload.uploadIds!=null?b.jsx(sh,{text:d.payload.utterance,files:d.payload.uploadIds.map(m=>n[m]).filter(m=>m!=null)},h):null;if(d.type==="failure")return b.jsx(Bx,{message:d.payload.text},h);const f=r!=null&&h===r;return b.jsxs(B.Fragment,{children:[b.jsxs("div",{className:te("space-y-2",f?"min-h-full":""),ref:f?u:void 0,children:[d.payload.messages.map((m,g)=>b.jsx("div",{className:"text-base",children:b.jsx("div",{className:"pr-10 space-y-6",dangerouslySetInnerHTML:{__html:se(m.text)}})},g)),Object.entries(d.payload.modalities??{}).map(([m,g])=>{const T=s[m];return T==null?(console.warn(`Custom component implementation missing for the ${m} modality.`),null):b.jsx(T,{data:g,conversationHandler:o,enabled:l},m)})]}),d.payload.messages.map((m,g)=>{if(m.selectedChoiceId!=null){const T=m.choices.find(p=>p.choiceId===m.selectedChoiceId);return T==null?null:b.jsx(sh,{text:T.choiceText},g)}return null})]},h)})},"messages")]})},Vx=()=>b.jsxs("div",{className:te("flex-grow flex flex-col items-center justify-center gap-6 text-primary-80","fullscreen-error"),children:[b.jsx(fa,{className:"w-20 h-20 text-primary-20"}),b.jsxs("div",{className:"text-center",children:[b.jsx("h3",{className:"text-xl mb-2",children:"Oops!"}),b.jsx("p",{children:"Something went wrong."}),b.jsx("p",{children:"Try again later."})]})]});function oh(){return oh=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},oh.apply(null,arguments)}function Hx(t,e){if(t==null)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(e.indexOf(r)!==-1)continue;n[r]=t[r]}return n}var $x=B.useLayoutEffect,qx=function(e){var n=wn.useRef(e);return $x(function(){n.current=e}),n},xy=function(e,n){if(typeof e=="function"){e(n);return}e.current=n},Wx=function(e,n){var r=wn.useRef();return wn.useCallback(function(i){e.current=i,r.current&&xy(r.current,null),r.current=n,n&&xy(n,i)},[n])},Ey={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0",display:"block"},Gx=function(e){Object.keys(Ey).forEach(function(n){e.style.setProperty(n,Ey[n],"important")})},Py=Gx,tt=null,_y=function(e,n){var r=e.scrollHeight;return n.sizingStyle.boxSizing==="border-box"?r+n.borderSize:r-n.paddingSize};function Kx(t,e,n,r){n===void 0&&(n=1),r===void 0&&(r=1/0),tt||(tt=document.createElement("textarea"),tt.setAttribute("tabindex","-1"),tt.setAttribute("aria-hidden","true"),Py(tt)),tt.parentNode===null&&document.body.appendChild(tt);var i=t.paddingSize,s=t.borderSize,o=t.sizingStyle,a=o.boxSizing;Object.keys(o).forEach(function(h){var f=h;tt.style[f]=o[f]}),Py(tt),tt.value=e;var l=_y(tt,t);tt.value=e,l=_y(tt,t),tt.value="x";var c=tt.scrollHeight-i,u=c*n;a==="border-box"&&(u=u+i+s),l=Math.max(u,l);var d=c*r;return a==="border-box"&&(d=d+i+s),l=Math.min(d,l),[l,c]}var Ry=function(){},Zx=function(e,n){return e.reduce(function(r,i){return r[i]=n[i],r},{})},Qx=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width","wordBreak","wordSpacing","scrollbarGutter"],Yx=!!document.documentElement.currentStyle,Jx=function(e){var n=window.getComputedStyle(e);if(n===null)return null;var r=Zx(Qx,n),i=r.boxSizing;if(i==="")return null;Yx&&i==="border-box"&&(r.width=parseFloat(r.width)+parseFloat(r.borderRightWidth)+parseFloat(r.borderLeftWidth)+parseFloat(r.paddingRight)+parseFloat(r.paddingLeft)+"px");var s=parseFloat(r.paddingBottom)+parseFloat(r.paddingTop),o=parseFloat(r.borderBottomWidth)+parseFloat(r.borderTopWidth);return{sizingStyle:r,paddingSize:s,borderSize:o}},Xx=Jx;function Iy(t,e,n){var r=qx(n);B.useLayoutEffect(function(){var i=function(o){return r.current(o)};if(t)return t.addEventListener(e,i),function(){return t.removeEventListener(e,i)}},[])}var eE=function(e){Iy(window,"resize",e)},tE=function(e){Iy(document.fonts,"loadingdone",e)},nE=["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"],rE=function(e,n){var r=e.cacheMeasurements,i=e.maxRows,s=e.minRows,o=e.onChange,a=o===void 0?Ry:o,l=e.onHeightChange,c=l===void 0?Ry:l,u=Hx(e,nE),d=u.value!==void 0,h=B.useRef(null),f=Wx(h,n),m=B.useRef(0),g=B.useRef(),T=function(){var y=h.current,k=r&&g.current?g.current:Xx(y);if(k){g.current=k;var C=Kx(k,y.value||y.placeholder||"x",s,i),x=C[0],w=C[1];m.current!==x&&(m.current=x,y.style.setProperty("height",x+"px","important"),c(x,{rowHeight:w}))}},p=function(y){d||T(),a(y)};return B.useLayoutEffect(T),eE(T),tE(T),B.createElement("textarea",oh({},u,{onChange:p,ref:f}))},iE=B.forwardRef(rE);const Oy=8,sE=({className:t,choiceMessage:e,handler:n,voiceEnabled:r,uploadUrl:i,onFileUpload:s,enabled:o})=>{const[a,l]=B.useState(!1),[c,u]=B.useState(""),[d,h]=B.useState(null),[f,m]=B.useState(null),g=B.useRef(null),T=B.useRef(null),p=wg(),[v,y]=B.useState(!1),{roomState:k,isUserSpeaking:C}=cy({active:v,handler:n});B.useEffect(()=>{var W;p&&((W=T.current)==null||W.focus())},[p]);const x=B.useMemo(()=>c.trim()==="",[c]),[w,E]=B.useState(!1),_=x&&f==null||w||!o,R=()=>{if(_)return;const W=(je,Ke)=>{(Ke==null?void 0:Ke.type)==="bot"&&(E(!1),n.unsubscribe(W),u(""),m(null),p&&setTimeout(()=>{var nt;(nt=T.current)==null||nt.focus()}))};n.subscribe(W),E(!0),i!=null&&f!=null?n.sendStructured({uploadIds:[i.uploadId],utterance:c}):n.sendText(c)},j=i!=null&&o,V=()=>{h("Something went wrong. Please try again.")},oe=W=>{var z,H;if(i==null){V();return}const je=(H=(z=W.target)==null?void 0:z.files)==null?void 0:H[0];if(je==null){V();return}const{name:Ke,size:nt,type:U}=je;if(m({name:Ke,size:nt,type:U}),nt/1024**2>Oy){h(`The file is too big. Max file size: ${Oy}mb`);return}fetch(i.url,{method:"PUT",headers:{"Content-Type":"image/jpeg"},body:je}).then(()=>{h(null),s({uploadId:i.uploadId,file:je})}).catch(()=>{V()})};return b.jsxs("div",{className:te("p-2 md:p-3 relative",t),children:[e!=null?b.jsx(Fx,{...e,handler:n,className:te("absolute inset-x-0 z-10 top-0 transform -translate-y-full px-2 md:px-3",e.message.selectedChoiceId!=null?"md:top-2":"md:top-1")}):null,(e==null?void 0:e.message.selectedChoiceId)!=null?null:b.jsxs("div",{className:te("bg-primary-5 transition-colors duration-200 p-2 rounded-outer text-base font-normal",a?"":"hover:bg-secondary-20"),children:[d!=null&&b.jsxs("div",{className:"flex items-center py-1 mb-2 w-full bg-error-secondary rounded-inner",children:[b.jsx(Iu,{size:16}),b.jsx("span",{className:"truncate ml-1",children:d})]}),f&&b.jsxs(b.Fragment,{children:[b.jsxs("div",{className:"flex items-center justify-between mb-2 w-full",children:[b.jsxs("p",{className:"flex items-center truncate mx-2",children:[d!=null?b.jsx(Iu,{size:16,className:"text-error-primary"}):b.jsx(hg,{size:16,className:"text-primary-60"}),b.jsx("span",{className:"truncate ml-3",children:f.name})]}),b.jsx(jt,{className:"flex-none",Icon:mg,label:"Delete",onClick:j?()=>{m(null),h(null),g.current!=null&&(g.current.value="")}:void 0,type:"ghost"})]}),b.jsx("hr",{className:"border-b-px border-background mb-2 -mx-2"})]}),b.jsxs("div",{className:te("flex items-end gap-1"),children:[r?b.jsxs("div",{className:"flex-none relative",children:[v&&C?b.jsx(Lu,{className:"rounded-inner"}):null,b.jsx(jt,{className:te("flex-none"),Icon:Ou,label:"Voice",type:v?k==="error"?"error":"activated":"ghost",onClick:k==="pending"?void 0:()=>{y(W=>!W)}})]}):null,j&&f==null?b.jsxs(b.Fragment,{children:[b.jsx("label",{htmlFor:"file-upload",className:"p-3 w-10 h-10 flex-none block transition-colors rounded-inner bg-primary-80 hover:bg-primary-80 text-secondary-80 cursor-pointer",children:b.jsx(Ru,{})}),b.jsx("input",{type:"file",id:"file-upload",className:"sr-only",accept:".jpg, .jpeg, .png, .webp, .mp4, .mpeg4, .avi, .mov, .pdf",onChange:oe,ref:g})]}):b.jsx(jt,{className:"flex-none",Icon:Ru,label:"Upload file",type:"ghost"}),b.jsx(iE,{disabled:w||!o,className:te("h-10 w-full resize-none mr-2 px-2 py-2 outline-none","bg-transparent text-primary-80 placeholder:text-primary-40 caret-accent","disabled:text-primary-40"),placeholder:"Type something",maxRows:10,onFocus:()=>{l(!0)},onBlur:()=>{l(!1)},value:c,onChange:W=>{u(W.target.value)},onKeyDown:W=>{W.key==="Enter"&&!W.shiftKey&&(W.preventDefault(),R())},ref:T}),b.jsx(jt,{className:"flex-none",label:"Send message",onClick:_?void 0:()=>{R()},type:"main",Icon:pa})]})]})]})},oE=t=>({"--font-family":t.fontFamily,"--inner-border-radius":t.innerBorderRadius,"--outer-border-radius":t.outerBorderRadius,"--primary-80":t.primary80,"--primary-60":t.primary60,"--primary-40":t.primary40,"--primary-20":t.primary20,"--primary-10":t.primary10,"--primary-5":t.primary5,"--primary-1":t.primary1,"--secondary-80":t.secondary80,"--secondary-60":t.secondary60,"--secondary-40":t.secondary40,"--secondary-20":t.secondary20,"--secondary-10":t.secondary10,"--secondary-5":t.secondary5,"--secondary-1":t.secondary1,"--accent":t.accent,"--accent-20":t.accent20,"--background":t.background,"--overlay":t.overlay,"--warning-primary":t.warningPrimary,"--warning-secondary":t.warningSecondary,"--error-primary":t.errorPrimary,"--error-secondary":t.errorSecondary}),aE={fontFamily:'"Neue Haas Grotesk", sans-serif',innerBorderRadius:"12px",outerBorderRadius:"20px",primary80:"rgba(0, 2, 9, 0.8)",primary60:"rgba(0, 2, 9, 0.6)",primary40:"rgba(0, 2, 9, 0.4)",primary20:"rgba(0, 2, 9, 0.2)",primary10:"rgba(0, 2, 9, 0.1)",primary5:"rgba(0, 2, 9, 0.05)",primary1:"rgba(0, 2, 9, 0.01)",secondary80:"rgba(255, 255, 255, 0.85)",secondary60:"rgba(255, 255, 255, 0.65)",secondary40:"rgba(255, 255, 255, 0.45)",secondary20:"rgba(255, 255, 255, 0.25)",secondary10:"rgba(255, 255, 255, 0.15)",secondary5:"rgba(255, 255, 255, 0.08)",secondary1:"rgba(255, 255, 255, 0.01)",accent:"rgb(28, 99, 218)",accent20:"rgba(28, 99, 218, 0.2)",background:"rgba(220, 220, 220, 0.9)",overlay:"rgba(0, 2, 9, 0.4)",warningPrimary:"rgb(220, 159, 3)",warningSecondary:"rgb(255, 242, 209)",errorPrimary:"rgb(157, 3, 3)",errorSecondary:"rgb(255, 223, 230)"},lE={fontFamily:'"Neue Haas Grotesk", sans-serif',innerBorderRadius:"12px",outerBorderRadius:"20px",primary80:"rgba(255, 255, 255, 0.85)",primary60:"rgba(255, 255, 255, 0.65)",primary40:"rgba(255, 255, 255, 0.45)",primary20:"rgba(255, 255, 255, 0.25)",primary10:"rgba(255, 255, 255, 0.15)",primary5:"rgba(255, 255, 255, 0.08)",primary1:"rgba(255, 255, 255, 0.01)",secondary80:"rgba(0, 2, 9, 0.8)",secondary60:"rgba(0, 2, 9, 0.6)",secondary40:"rgba(0, 2, 9, 0.4)",secondary20:"rgba(0, 2, 9, 0.2)",secondary10:"rgba(0, 2, 9, 0.1)",secondary5:"rgba(0, 2, 9, 0.05)",secondary1:"rgba(0, 2, 9, 0.01)",accent:"rgb(174, 202, 255)",accent20:"rgba(174, 202, 255, 0.25)",background:"rgba(0, 2, 9, 0.9)",overlay:"rgba(0, 2, 9, 0.4)",warningPrimary:"rgb(255, 214, 108)",warningSecondary:"rgb(95, 65, 29)",errorPrimary:"rgb(255, 133, 162)",errorSecondary:"rgb(94, 4, 4)"},ah=({colorMode:t,children:e,theme:n,className:r})=>{const i={...t==="dark"?lE:aE,...n??{}};return b.jsx("div",{className:te(r),style:{...oE(i),colorScheme:t},children:e})},Ly=B.forwardRef((t,e)=>{var x,w,E;const n=B.useMemo(()=>PC(t.config),[t.config]),[r,i]=B.useState([]),s=((x=r[r.length-1])==null?void 0:x.type)==="user",o=t.colorMode??"dark",[a,l]=B.useState(t.embedded),c=EC(t.config),[u,d]=B.useState(!1),h=B.useRef(t.embedded),f=t.input??"text",m=B.useCallback(_=>{t.onClose!=null&&(t.onClose(_),_.defaultPrevented||l(!1))},[t.onClose,l]);B.useEffect(()=>{h.current=a},[a]),B.useImperativeHandle(e,()=>({setExpanded:l,getExpanded(){return h.current},getConversationHandler(){return n}}),[n,l]),B.useEffect(()=>{const _=R=>{i(R)};return n.subscribe(_),()=>{n.unsubscribe(_)}},[n,i]);const g=B.useRef(!1);B.useEffect(()=>{!a||g.current||(g.current=!0,t.initializeConversation(n))},[t.initializeConversation,n,a]);const T=t.windowSize??(t.embedded?"full":"half"),p=B.useMemo(()=>{const _=dg(j=>j.type==="bot",r);if(_===-1)return null;const R=r[_];return(R==null?void 0:R.type)!=="bot"?null:{index:_,response:R}},[r]),v=B.useMemo(()=>{if(p==null)return;const _=dg(j=>j.choices.length>0,p.response.payload.messages);if(_===-1)return;const R=p.response.payload.messages[_];if(R!=null)return{message:R,messageIndex:_,responseIndex:p.index}},[p]),[y,k]=B.useState({}),C=t.customModalities??{};return n==null?null:b.jsx(b.Fragment,{children:a?b.jsxs(ah,{theme:t.theme,colorMode:o,className:"grid grid-cols-2 xl:grid-cols-[1fr_632px] fixed inset-0 z-touchpoint",children:[T==="half"?b.jsx("div",{className:"hidden md:block bg-overlay"}):null,b.jsxs("div",{className:te("w-full bg-background text-primary-80 flex relative flex-col h-full backdrop-blur-overlay",{"col-span-2 md:col-span-1":T==="half","col-span-2":T==="full"}),children:[b.jsx(CS,{windowSize:t.embedded?"embedded":T,colorMode:o,brandIcon:t.brandIcon,isSettingsOpen:u,enabled:t.enabled,toggleSettings:t.enableSettings?()=>{d(_=>!_)}:void 0,renderCollapse:t.onClose!=null,collapse:m,reset:()=>{n.reset({clearResponses:!0}),n.sendWelcomeIntent()}}),u?b.jsx(X2,{className:te("flex-none",T==="full"?"w-full md:max-w-content md:mx-auto":""),onClose:()=>{d(!1)},handler:n}):f==="text"||f==="textAndVoice"?b.jsxs(b.Fragment,{children:[c?b.jsx(zx,{enabled:t.enabled,isWaiting:s,lastBotResponseIndex:p==null?void 0:p.index,responses:r,colorMode:o,handler:n,uploadedFiles:y,customModalities:C,className:te("flex-grow",T==="full"?"w-full md:max-w-content md:mx-auto":"")}):b.jsx(Vx,{}),b.jsx(sE,{className:te("flex-none",T==="full"?"w-full md:max-w-content md:mx-auto":""),enabled:t.enabled,choiceMessage:v,handler:n,voiceEnabled:f==="textAndVoice",uploadUrl:(E=(w=p==null?void 0:p.response.payload.metadata)==null?void 0:w.uploadUrls)==null?void 0:E[0],onFileUpload:({uploadId:_,file:R})=>{k(j=>({...j,[_]:R}))}})]}):b.jsx(J2,{handler:n,className:"flex-grow"})]})]}):t.launchIcon!==!1?b.jsx(ah,{className:"font-sans",theme:t.theme,colorMode:o,children:b.jsx(uS,{className:"fixed z-100 bottom-2 right-2 backdrop-blur z-launchButton",iconUrl:typeof t.launchIcon=="string"?t.launchIcon:void 0,onClick:()=>{l(!0)},label:"Expand chat"})}):null})});Ly.displayName="App";const My=`*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-family);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*{font-family:var(--font-family)!important}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-1\\/2{left:50%}.right-2{right:.5rem}.top-0{top:0}.top-1\\/2{top:50%}.z-10{z-index:10}.z-launchButton{z-index:100}.z-touchpoint{z-index:1000}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-4{height:1rem}.h-52{height:13rem}.h-64{height:16rem}.h-72{height:18rem}.h-8{height:2rem}.h-\\[128px\\]{height:128px}.h-\\[1px\\]{height:1px}.h-\\[360px\\]{height:360px}.h-full{height:100%}.min-h-full{min-height:100%}.w-10{width:2.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-4{width:1rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\\[128px\\]{width:128px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-content{max-width:608px}.flex-none{flex:none}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-1\\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\\[320px\\,1fr\\]{grid-template-columns:320px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-full{border-radius:9999px}.rounded-inner{border-radius:var(--inner-border-radius)}.rounded-outer{border-radius:var(--outer-border-radius)}.border{border-width:1px}.border-background{border-color:var(--background)}.bg-\\[rgb\\(40\\,41\\,47\\)\\]{--tw-bg-opacity: 1;background-color:rgb(40 41 47 / var(--tw-bg-opacity))}.bg-accent{background-color:var(--accent)}.bg-accent-20{background-color:var(--accent-20)}.bg-background{background-color:var(--background)}.bg-black\\/50{background-color:#00000080}.bg-error-primary{background-color:var(--error-primary)}.bg-error-secondary{background-color:var(--error-secondary)}.bg-overlay{background-color:var(--overlay)}.bg-primary-5{background-color:var(--primary-5)}.bg-primary-80{background-color:var(--primary-80)}.bg-secondary-60{background-color:var(--secondary-60)}.bg-transparent{background-color:transparent}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pl-10{padding-left:2.5rem}.pl-4{padding-left:1rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-sans{font-family:var(--font-family)}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-normal{font-weight:400}.text-\\[rgb\\(134\\,135\\,138\\)\\]{--tw-text-opacity: 1;color:rgb(134 135 138 / var(--tw-text-opacity))}.text-accent{color:var(--accent)}.text-error-primary{color:var(--error-primary)}.text-primary-20{color:var(--primary-20)}.text-primary-40{color:var(--primary-40)}.text-primary-60{color:var(--primary-60)}.text-primary-80{color:var(--primary-80)}.text-secondary-40{color:var(--secondary-40)}.text-secondary-80{color:var(--secondary-80)}.placeholder-primary-20::-moz-placeholder{color:var(--primary-20)}.placeholder-primary-20::placeholder{color:var(--primary-20)}.placeholder-primary-40::-moz-placeholder{color:var(--primary-40)}.placeholder-primary-40::placeholder{color:var(--primary-40)}.caret-accent{caret-color:var(--accent)}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-\\[0\\.01\\]{opacity:.01}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.outline-0{outline-width:0px}.outline-2{outline-width:2px}.outline-accent{outline-color:var(--accent)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-overlay{--tw-backdrop-blur: blur(48px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@property --glow-opacity{syntax: "<percentage>"; inherits: false; initial-value: 0%;}.fullscreen-error svg{animation:error-glow 3s ease infinite;--glow-opacity: 0%;filter:drop-shadow(0 0 6px color-mix(in srgb,transparent,var(--accent) var(--glow-opacity)))}@keyframes error-glow{0%{color:var(--primary);fill-opacity:8%;--glow-opacity: 0%}22%{color:var(--primary);fill-opacity:8%;--glow-opacity: 0%}35%{color:var(--accent);fill-opacity:80%;--glow-opacity: 60%}45%{color:var(--accent);fill-opacity:70%;--glow-opacity: 30%}55%{color:var(--accent);fill-opacity:60%;--glow-opacity: 60%}60%{color:var(--primary);fill-opacity:8%;--glow-opacity: 0%}to{color:var(--primary);fill-opacity:8%;--glow-opacity: 0%}}.placeholder\\:text-primary-40::-moz-placeholder{color:var(--primary-40)}.placeholder\\:text-primary-40::placeholder{color:var(--primary-40)}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:inset-0:before{content:var(--tw-content);top:0;right:0;bottom:0;left:0}.before\\:-z-10:before{content:var(--tw-content);z-index:-10}.before\\:bg-transparent:before{content:var(--tw-content);background-color:transparent}.before\\:transition-colors:before{content:var(--tw-content);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.before\\:content-\\[\\'\\'\\]:before{--tw-content: "";content:var(--tw-content)}.after\\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:inset-0:after{content:var(--tw-content);top:0;right:0;bottom:0;left:0}.after\\:rounded-outer:after{content:var(--tw-content);border-radius:var(--outer-border-radius)}.after\\:content-\\[\\'\\'\\]:after{--tw-content: "";content:var(--tw-content)}.hover\\:bg-primary-80:hover{background-color:var(--primary-80)}.hover\\:bg-secondary-20:hover{background-color:var(--secondary-20)}.hover\\:text-primary-80:hover{color:var(--primary-80)}.hover\\:after\\:bg-primary-10:hover:after{content:var(--tw-content);background-color:var(--primary-10)}.focus\\:outline-0:focus{outline-width:0px}.focus\\:before\\:bg-primary-10:focus:before{content:var(--tw-content);background-color:var(--primary-10)}.focus\\:before\\:bg-primary-40:focus:before{content:var(--tw-content);background-color:var(--primary-40)}.focus\\:before\\:bg-primary-5:focus:before{content:var(--tw-content);background-color:var(--primary-5)}.focus\\:before\\:bg-primary-80:focus:before{content:var(--tw-content);background-color:var(--primary-80)}.enabled\\:hover\\:before\\:bg-primary-10:hover:enabled:before{content:var(--tw-content);background-color:var(--primary-10)}.enabled\\:hover\\:before\\:bg-primary-40:hover:enabled:before{content:var(--tw-content);background-color:var(--primary-40)}.enabled\\:hover\\:before\\:bg-primary-5:hover:enabled:before{content:var(--tw-content);background-color:var(--primary-5)}.enabled\\:hover\\:before\\:bg-primary-80:hover:enabled:before{content:var(--tw-content);background-color:var(--primary-80)}.enabled\\:active\\:before\\:bg-secondary-10:active:enabled:before{content:var(--tw-content);background-color:var(--secondary-10)}.disabled\\:bg-accent-20:disabled{background-color:var(--accent-20)}.disabled\\:bg-primary-10:disabled{background-color:var(--primary-10)}.disabled\\:bg-primary-5:disabled{background-color:var(--primary-5)}.disabled\\:bg-secondary-20:disabled{background-color:var(--secondary-20)}.disabled\\:text-primary-20:disabled{color:var(--primary-20)}.disabled\\:text-primary-40:disabled{color:var(--primary-40)}.disabled\\:text-secondary-40:disabled{color:var(--secondary-40)}@media (min-width: 768px){.md\\:absolute{position:absolute}.md\\:left-0{left:0}.md\\:right-0{right:0}.md\\:top-0{top:0}.md\\:top-1{top:.25rem}.md\\:top-2{top:.5rem}.md\\:-order-1{order:-1}.md\\:col-span-1{grid-column:span 1 / span 1}.md\\:mx-auto{margin-left:auto;margin-right:auto}.md\\:block{display:block}.md\\:w-fit{width:-moz-fit-content;width:fit-content}.md\\:max-w-content{max-width:608px}.md\\:-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\\:flex-col{flex-direction:column}.md\\:p-3{padding:.75rem}.md\\:px-3{padding-left:.75rem;padding-right:.75rem}}@media (min-width: 1280px){.xl\\:grid-cols-\\[1fr_632px\\]{grid-template-columns:1fr 632px}}`,Ny=({children:t,faded:e})=>b.jsx("p",{className:te("text-base",e?"text-primary-60":"text-primary-80"),children:t}),Dy=({children:t})=>b.jsx("p",{className:"text-sm text-primary-60",children:t}),Ay=({children:t,selected:e,onClick:n})=>b.jsx("div",{className:te("block shrink-0 rounded-inner overflow-hidden","w-80 space-y-px",e?"outline outline-2 outline-accent":""),onClick:n,children:t}),jy=({src:t,alt:e})=>b.jsx("img",{src:t,alt:e,className:"w-full h-52 object-cover"}),Uy=({left:t,right:e,icon:n})=>b.jsxs("div",{className:"flex items-center relative justify-between gap-2 bg-primary-5 px-3 py-4",children:[b.jsx("div",{className:"space-y-1 text-left",children:t}),b.jsx("div",{className:"space-y-1 text-right",children:e}),n!=null?b.jsx(n,{className:"text-primary-60 w-4 h-4 absolute top-1/2 left-1/2 transform -translate-y-1/2 -translate-x-1/2"}):null]});/*! *****************************************************************************
|
|
156
|
+
`}):null]})},jx=t=>t<1/3?t*3:t<2/3?1:3-t*3,Ty=t=>t<1/3?0:t<2/3?(t-1/3)*3:1,Ux=({label:t,className:e})=>{const[n,r]=B.useState(null),i=B.useRef(!1);if(B.useEffect(()=>{const f=m=>{r(g=>g==null?{start:m,current:m}:{...g,current:m}),i.current||requestAnimationFrame(f)};i.current||requestAnimationFrame(f)},[i,r]),n==null)return null;let s,o;const a=n.current-n.start,l=a%rl,c=Math.floor(a/rl);if(l<ih){const f=a/rl,m=Math.floor(f),g=Dx((f-m)*(rl/ih));s=jx(g),o=c%2?Ty(g):1+Ty(g)}else s=0,o=0;const u=s>.2?0:5*(.2-s)/.2,d=.3,h=s>d?1-.25*(s-d)/(1-d):1;return b.jsx("div",{className:J("h-full w-full flex items-center justify-center",e),children:b.jsxs("div",{className:"flex flex-col items-center justify-center gap-3",children:[b.jsx("div",{className:J("w-8 h-8 block text-accent"),children:b.jsx("svg",{viewBox:"0 0 100 100",stroke:"none",fill:"currentColor",style:{filter:`drop-shadow(0 0 ${u}px var(--accent))`},children:b.jsx("g",{transform:`translate(50 50) rotate(${o*90})`,opacity:h,children:b.jsx(Ax,{d:Nx*s})})})}),b.jsx("p",{className:"text-primary-60",children:t})]})})},Fx=({handler:t,message:e,responseIndex:n,messageIndex:r,className:i})=>e.choices.length>0?b.jsx("div",{className:i,children:b.jsx("ul",{className:"space-y-2",children:e.choices.map((s,o)=>e.selectedChoiceId==null||s.choiceId===e.selectedChoiceId?b.jsx("li",{className:"w-full",children:b.jsx(As,{type:"ghost",Icon:pa,onClick:e.selectedChoiceId==null?()=>{t.sendChoice(s.choiceId,{},{responseIndex:n,messageIndex:r})}:void 0,label:s.choiceText})},o):null)})}):null,sh=({text:t,bubble:e,files:n})=>b.jsxs("div",{className:"space-y-2",children:[b.jsx("div",{className:"flex justify-end pl-10 text-base",children:b.jsx("div",{className:J("text-primary-60 rounded-inner whitespace-pre-wrap",e?"bg-primary-5 p-3":""),children:t})}),n!=null?b.jsx("div",{className:"flex flex-wrap justify-end gap-2",children:n.map((r,i)=>b.jsx("img",{className:"rounded-inner h-20",src:URL.createObjectURL(r)},i))}):null]}),Bx=({message:t})=>b.jsxs("div",{className:"bg-error-secondary text-error-primary text-base p-3 rounded-inner flex items-center gap-2",children:[b.jsx(kg,{className:"w-4 h-4 flex-none"}),b.jsx("p",{className:"text-primary-80",children:t})]}),zx=({responses:t,colorMode:e,uploadedFiles:n,userMessageBubble:r,agentMessageBubble:i,lastBotResponseIndex:s,isWaiting:o,customModalities:a,handler:l,className:c,enabled:u})=>{const d=B.useRef(null),h=B.useRef(null);return B.useEffect(()=>{o||setTimeout(()=>{var f;(f=h.current)==null||f.scrollIntoView({behavior:"smooth"})})},[o]),b.jsxs("div",{className:J("relative",c),children:[b.jsx("div",{"data-theme":e==="dark"?"light":"dark",className:J("absolute inset-x-0 h-[1px] top-0 bg-background opacity-[0.01] backdrop-blur-md")}),o?b.jsx(Ux,{label:"Thinking",className:"absolute inset-0"}):null,b.jsx("div",{className:J("absolute inset-0 p-2 md:p-3 overflow-y-auto no-scrollbar space-y-8",o?"opacity-0":"opacity-100"),ref:d,children:t.map((f,m)=>{if(f.type==="user")return f.payload.type==="text"?b.jsx(sh,{text:f.payload.text,bubble:r},m):f.payload.type==="structured"&&f.payload.utterance!=null&&f.payload.uploadIds!=null?b.jsx(sh,{bubble:r,text:f.payload.utterance,files:f.payload.uploadIds.map(T=>n[T]).filter(T=>T!=null)},m):null;if(f.type==="failure")return b.jsx(Bx,{message:f.payload.text},m);const g=s!=null&&m===s;return b.jsxs(B.Fragment,{children:[b.jsxs("div",{className:J("space-y-2",g?"min-h-full":""),ref:g?h:void 0,children:[f.payload.messages.map((T,p)=>b.jsx("div",{className:"text-base",children:b.jsx("div",{className:J("space-y-6 markdown",i?"p-3 w-fit bg-secondary-40 mr-10 rounded-inner":""),dangerouslySetInnerHTML:{__html:se(T.text)}})},p)),Object.entries(f.payload.modalities??{}).map(([T,p])=>{const v=a[T];return v==null?(console.warn(`Custom component implementation missing for the ${T} modality.`),null):b.jsx(v,{data:p,conversationHandler:l,enabled:u},T)})]}),f.payload.messages.map((T,p)=>{if(T.selectedChoiceId!=null){const v=T.choices.find(y=>y.choiceId===T.selectedChoiceId);return v==null?null:b.jsx(sh,{text:v.choiceText,bubble:r},p)}return null})]},m)})},"messages")]})},Vx=()=>b.jsxs("div",{className:J("flex-grow flex flex-col items-center justify-center gap-6 text-primary-80","fullscreen-error"),children:[b.jsx(fa,{className:"w-20 h-20 text-primary-20"}),b.jsxs("div",{className:"text-center",children:[b.jsx("h3",{className:"text-xl mb-2",children:"Oops!"}),b.jsx("p",{children:"Something went wrong."}),b.jsx("p",{children:"Try again later."})]})]});function oh(){return oh=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},oh.apply(null,arguments)}function Hx(t,e){if(t==null)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(e.indexOf(r)!==-1)continue;n[r]=t[r]}return n}var $x=B.useLayoutEffect,qx=function(e){var n=wn.useRef(e);return $x(function(){n.current=e}),n},xy=function(e,n){if(typeof e=="function"){e(n);return}e.current=n},Wx=function(e,n){var r=wn.useRef();return wn.useCallback(function(i){e.current=i,r.current&&xy(r.current,null),r.current=n,n&&xy(n,i)},[n])},Ey={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0",display:"block"},Gx=function(e){Object.keys(Ey).forEach(function(n){e.style.setProperty(n,Ey[n],"important")})},Py=Gx,tt=null,_y=function(e,n){var r=e.scrollHeight;return n.sizingStyle.boxSizing==="border-box"?r+n.borderSize:r-n.paddingSize};function Kx(t,e,n,r){n===void 0&&(n=1),r===void 0&&(r=1/0),tt||(tt=document.createElement("textarea"),tt.setAttribute("tabindex","-1"),tt.setAttribute("aria-hidden","true"),Py(tt)),tt.parentNode===null&&document.body.appendChild(tt);var i=t.paddingSize,s=t.borderSize,o=t.sizingStyle,a=o.boxSizing;Object.keys(o).forEach(function(h){var f=h;tt.style[f]=o[f]}),Py(tt),tt.value=e;var l=_y(tt,t);tt.value=e,l=_y(tt,t),tt.value="x";var c=tt.scrollHeight-i,u=c*n;a==="border-box"&&(u=u+i+s),l=Math.max(u,l);var d=c*r;return a==="border-box"&&(d=d+i+s),l=Math.min(d,l),[l,c]}var Ry=function(){},Zx=function(e,n){return e.reduce(function(r,i){return r[i]=n[i],r},{})},Qx=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width","wordBreak","wordSpacing","scrollbarGutter"],Yx=!!document.documentElement.currentStyle,Jx=function(e){var n=window.getComputedStyle(e);if(n===null)return null;var r=Zx(Qx,n),i=r.boxSizing;if(i==="")return null;Yx&&i==="border-box"&&(r.width=parseFloat(r.width)+parseFloat(r.borderRightWidth)+parseFloat(r.borderLeftWidth)+parseFloat(r.paddingRight)+parseFloat(r.paddingLeft)+"px");var s=parseFloat(r.paddingBottom)+parseFloat(r.paddingTop),o=parseFloat(r.borderBottomWidth)+parseFloat(r.borderTopWidth);return{sizingStyle:r,paddingSize:s,borderSize:o}},Xx=Jx;function Iy(t,e,n){var r=qx(n);B.useLayoutEffect(function(){var i=function(o){return r.current(o)};if(t)return t.addEventListener(e,i),function(){return t.removeEventListener(e,i)}},[])}var eE=function(e){Iy(window,"resize",e)},tE=function(e){Iy(document.fonts,"loadingdone",e)},nE=["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"],rE=function(e,n){var r=e.cacheMeasurements,i=e.maxRows,s=e.minRows,o=e.onChange,a=o===void 0?Ry:o,l=e.onHeightChange,c=l===void 0?Ry:l,u=Hx(e,nE),d=u.value!==void 0,h=B.useRef(null),f=Wx(h,n),m=B.useRef(0),g=B.useRef(),T=function(){var y=h.current,k=r&&g.current?g.current:Xx(y);if(k){g.current=k;var C=Kx(k,y.value||y.placeholder||"x",s,i),x=C[0],w=C[1];m.current!==x&&(m.current=x,y.style.setProperty("height",x+"px","important"),c(x,{rowHeight:w}))}},p=function(y){d||T(),a(y)};return B.useLayoutEffect(T),eE(T),tE(T),B.createElement("textarea",oh({},u,{onChange:p,ref:f}))},iE=B.forwardRef(rE);const Oy=8,sE=({className:t,choiceMessage:e,handler:n,voiceEnabled:r,uploadUrl:i,onFileUpload:s,enabled:o})=>{const[a,l]=B.useState(!1),[c,u]=B.useState(""),[d,h]=B.useState(null),[f,m]=B.useState(null),g=B.useRef(null),T=B.useRef(null),p=wg(),[v,y]=B.useState(!1),{roomState:k,isUserSpeaking:C}=cy({active:v,handler:n});B.useEffect(()=>{var W;p&&((W=T.current)==null||W.focus())},[p]);const x=B.useMemo(()=>c.trim()==="",[c]),[w,E]=B.useState(!1),_=x&&f==null||w||!o,R=()=>{if(_)return;const W=(je,Ke)=>{(Ke==null?void 0:Ke.type)==="bot"&&(E(!1),n.unsubscribe(W),u(""),m(null),p&&setTimeout(()=>{var nt;(nt=T.current)==null||nt.focus()}))};n.subscribe(W),E(!0),i!=null&&f!=null?n.sendStructured({uploadIds:[i.uploadId],utterance:c}):n.sendText(c)},j=i!=null&&o,V=()=>{h("Something went wrong. Please try again.")},oe=W=>{var z,H;if(i==null){V();return}const je=(H=(z=W.target)==null?void 0:z.files)==null?void 0:H[0];if(je==null){V();return}const{name:Ke,size:nt,type:U}=je;if(m({name:Ke,size:nt,type:U}),nt/1024**2>Oy){h(`The file is too big. Max file size: ${Oy}mb`);return}fetch(i.url,{method:"PUT",headers:{"Content-Type":"image/jpeg"},body:je}).then(()=>{h(null),s({uploadId:i.uploadId,file:je})}).catch(()=>{V()})};return b.jsxs("div",{className:J("p-2 md:p-3 relative",t),children:[e!=null?b.jsx(Fx,{...e,handler:n,className:J("absolute inset-x-0 z-10 top-0 transform -translate-y-full px-2 md:px-3",e.message.selectedChoiceId!=null?"md:top-2":"md:top-1")}):null,(e==null?void 0:e.message.selectedChoiceId)!=null?null:b.jsxs("div",{className:J("bg-primary-5 transition-colors duration-200 p-2 rounded-outer text-base font-normal",a?"":"hover:bg-secondary-20"),children:[d!=null&&b.jsxs("div",{className:"flex items-center py-1 mb-2 w-full bg-error-secondary rounded-inner",children:[b.jsx(Iu,{size:16}),b.jsx("span",{className:"truncate ml-1",children:d})]}),f&&b.jsxs(b.Fragment,{children:[b.jsxs("div",{className:"flex items-center justify-between mb-2 w-full",children:[b.jsxs("p",{className:"flex items-center truncate mx-2",children:[d!=null?b.jsx(Iu,{size:16,className:"text-error-primary"}):b.jsx(hg,{size:16,className:"text-primary-60"}),b.jsx("span",{className:"truncate ml-3",children:f.name})]}),b.jsx(jt,{className:"flex-none",Icon:mg,label:"Delete",onClick:j?()=>{m(null),h(null),g.current!=null&&(g.current.value="")}:void 0,type:"ghost"})]}),b.jsx("hr",{className:"border-b-px border-background mb-2 -mx-2"})]}),b.jsxs("div",{className:J("flex items-end gap-1"),children:[r?b.jsxs("div",{className:"flex-none relative",children:[v&&C?b.jsx(Lu,{className:"rounded-inner"}):null,b.jsx(jt,{className:J("flex-none"),Icon:Ou,label:"Voice",type:v?k==="error"?"error":"activated":"ghost",onClick:k==="pending"?void 0:()=>{y(W=>!W)}})]}):null,j&&f==null?b.jsxs(b.Fragment,{children:[b.jsx("label",{htmlFor:"file-upload",className:"p-3 w-10 h-10 flex-none block transition-colors rounded-inner bg-primary-80 hover:bg-primary-80 text-secondary-80 cursor-pointer",children:b.jsx(Ru,{})}),b.jsx("input",{type:"file",id:"file-upload",className:"sr-only",accept:".jpg, .jpeg, .png, .webp, .mp4, .mpeg4, .avi, .mov, .pdf",onChange:oe,ref:g})]}):b.jsx(jt,{className:"flex-none",Icon:Ru,label:"Upload file",type:"ghost"}),b.jsx(iE,{disabled:w||!o,className:J("h-10 w-full resize-none mr-2 px-2 py-2 outline-none","bg-transparent text-primary-80 placeholder:text-primary-40 caret-accent","disabled:text-primary-40"),placeholder:"Type something",maxRows:10,onFocus:()=>{l(!0)},onBlur:()=>{l(!1)},value:c,onChange:W=>{u(W.target.value)},onKeyDown:W=>{W.key==="Enter"&&!W.shiftKey&&(W.preventDefault(),R())},ref:T}),b.jsx(jt,{className:"flex-none",label:"Send message",onClick:_?void 0:()=>{R()},type:"main",Icon:pa})]})]})]})},oE=t=>({"--font-family":t.fontFamily,"--inner-border-radius":t.innerBorderRadius,"--outer-border-radius":t.outerBorderRadius,"--primary-80":t.primary80,"--primary-60":t.primary60,"--primary-40":t.primary40,"--primary-20":t.primary20,"--primary-10":t.primary10,"--primary-5":t.primary5,"--primary-1":t.primary1,"--secondary-80":t.secondary80,"--secondary-60":t.secondary60,"--secondary-40":t.secondary40,"--secondary-20":t.secondary20,"--secondary-10":t.secondary10,"--secondary-5":t.secondary5,"--secondary-1":t.secondary1,"--accent":t.accent,"--accent-20":t.accent20,"--background":t.background,"--overlay":t.overlay,"--warning-primary":t.warningPrimary,"--warning-secondary":t.warningSecondary,"--error-primary":t.errorPrimary,"--error-secondary":t.errorSecondary}),aE={fontFamily:'"Neue Haas Grotesk", sans-serif',innerBorderRadius:"12px",outerBorderRadius:"20px",primary80:"rgba(0, 2, 9, 0.8)",primary60:"rgba(0, 2, 9, 0.6)",primary40:"rgba(0, 2, 9, 0.4)",primary20:"rgba(0, 2, 9, 0.2)",primary10:"rgba(0, 2, 9, 0.1)",primary5:"rgba(0, 2, 9, 0.05)",primary1:"rgba(0, 2, 9, 0.01)",secondary80:"rgba(255, 255, 255, 0.85)",secondary60:"rgba(255, 255, 255, 0.65)",secondary40:"rgba(255, 255, 255, 0.45)",secondary20:"rgba(255, 255, 255, 0.25)",secondary10:"rgba(255, 255, 255, 0.15)",secondary5:"rgba(255, 255, 255, 0.08)",secondary1:"rgba(255, 255, 255, 0.01)",accent:"rgb(28, 99, 218)",accent20:"rgba(28, 99, 218, 0.2)",background:"rgba(220, 220, 220, 0.9)",overlay:"rgba(0, 2, 9, 0.4)",warningPrimary:"rgb(220, 159, 3)",warningSecondary:"rgb(255, 242, 209)",errorPrimary:"rgb(157, 3, 3)",errorSecondary:"rgb(255, 223, 230)"},lE={fontFamily:'"Neue Haas Grotesk", sans-serif',innerBorderRadius:"12px",outerBorderRadius:"20px",primary80:"rgba(255, 255, 255, 0.85)",primary60:"rgba(255, 255, 255, 0.65)",primary40:"rgba(255, 255, 255, 0.45)",primary20:"rgba(255, 255, 255, 0.25)",primary10:"rgba(255, 255, 255, 0.15)",primary5:"rgba(255, 255, 255, 0.08)",primary1:"rgba(255, 255, 255, 0.01)",secondary80:"rgba(0, 2, 9, 0.8)",secondary60:"rgba(0, 2, 9, 0.6)",secondary40:"rgba(0, 2, 9, 0.4)",secondary20:"rgba(0, 2, 9, 0.2)",secondary10:"rgba(0, 2, 9, 0.1)",secondary5:"rgba(0, 2, 9, 0.05)",secondary1:"rgba(0, 2, 9, 0.01)",accent:"rgb(174, 202, 255)",accent20:"rgba(174, 202, 255, 0.25)",background:"rgba(0, 2, 9, 0.9)",overlay:"rgba(0, 2, 9, 0.4)",warningPrimary:"rgb(255, 214, 108)",warningSecondary:"rgb(95, 65, 29)",errorPrimary:"rgb(255, 133, 162)",errorSecondary:"rgb(94, 4, 4)"},ah=({colorMode:t,children:e,theme:n,className:r})=>{const i={...t==="dark"?lE:aE,...n??{}};return b.jsx("div",{className:J(r),style:{...oE(i),colorScheme:t},children:e})},Ly=B.forwardRef((t,e)=>{var x,w,E;const n=B.useMemo(()=>PC(t.config),[t.config]),[r,i]=B.useState([]),s=((x=r[r.length-1])==null?void 0:x.type)==="user",o=t.colorMode??"dark",[a,l]=B.useState(t.embedded),c=EC(t.config),[u,d]=B.useState(!1),h=B.useRef(t.embedded),f=t.input??"text",m=B.useCallback(_=>{t.onClose!=null&&(t.onClose(_),_.defaultPrevented||l(!1))},[t.onClose,l]);B.useEffect(()=>{h.current=a},[a]),B.useImperativeHandle(e,()=>({setExpanded:l,getExpanded(){return h.current},getConversationHandler(){return n}}),[n,l]),B.useEffect(()=>{const _=R=>{i(R)};return n.subscribe(_),()=>{n.unsubscribe(_)}},[n,i]);const g=B.useRef(!1);B.useEffect(()=>{!a||g.current||(g.current=!0,t.initializeConversation(n))},[t.initializeConversation,n,a]);const T=t.windowSize??(t.embedded?"full":"half"),p=B.useMemo(()=>{const _=dg(j=>j.type==="bot",r);if(_===-1)return null;const R=r[_];return(R==null?void 0:R.type)!=="bot"?null:{index:_,response:R}},[r]),v=B.useMemo(()=>{if(p==null)return;const _=dg(j=>j.choices.length>0,p.response.payload.messages);if(_===-1)return;const R=p.response.payload.messages[_];if(R!=null)return{message:R,messageIndex:_,responseIndex:p.index}},[p]),[y,k]=B.useState({}),C=t.customModalities??{};return n==null?null:b.jsx(b.Fragment,{children:a?b.jsxs(ah,{theme:t.theme,colorMode:o,className:"grid grid-cols-2 xl:grid-cols-[1fr_632px] fixed inset-0 z-touchpoint",children:[T==="half"?b.jsx("div",{className:"hidden md:block bg-overlay"}):null,b.jsxs("div",{className:J("w-full bg-background text-primary-80 flex relative flex-col h-full backdrop-blur-overlay",{"col-span-2 md:col-span-1":T==="half","col-span-2":T==="full"}),children:[b.jsx(CS,{windowSize:t.embedded?"embedded":T,colorMode:o,brandIcon:t.brandIcon,isSettingsOpen:u,enabled:t.enabled,toggleSettings:t.enableSettings?()=>{d(_=>!_)}:void 0,renderCollapse:t.onClose!=null,collapse:m,reset:()=>{n.reset({clearResponses:!0}),n.sendWelcomeIntent()}}),u?b.jsx(X2,{className:J("flex-none",T==="full"?"w-full md:max-w-content md:mx-auto":""),onClose:()=>{d(!1)},handler:n}):f==="text"||f==="textAndVoice"?b.jsxs(b.Fragment,{children:[c?b.jsx(zx,{enabled:t.enabled,userMessageBubble:t.userMessageBubble??!1,agentMessageBubble:t.agentMessageBubble??!1,isWaiting:s,lastBotResponseIndex:p==null?void 0:p.index,responses:r,colorMode:o,handler:n,uploadedFiles:y,customModalities:C,className:J("flex-grow",T==="full"?"w-full md:max-w-content md:mx-auto":"")}):b.jsx(Vx,{}),b.jsx(sE,{className:J("flex-none",T==="full"?"w-full md:max-w-content md:mx-auto":""),enabled:t.enabled,choiceMessage:v,handler:n,voiceEnabled:f==="textAndVoice",uploadUrl:(E=(w=p==null?void 0:p.response.payload.metadata)==null?void 0:w.uploadUrls)==null?void 0:E[0],onFileUpload:({uploadId:_,file:R})=>{k(j=>({...j,[_]:R}))}})]}):b.jsx(J2,{handler:n,className:"flex-grow"})]})]}):t.launchIcon!==!1?b.jsx(ah,{className:"font-sans",theme:t.theme,colorMode:o,children:b.jsx(uS,{className:"fixed z-100 bottom-2 right-2 backdrop-blur z-launchButton",iconUrl:typeof t.launchIcon=="string"?t.launchIcon:void 0,onClick:()=>{l(!0)},label:"Expand chat"})}):null})});Ly.displayName="App";const My=`*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-family);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*{font-family:var(--font-family)!important}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-1\\/2{left:50%}.right-2{right:.5rem}.top-0{top:0}.top-1\\/2{top:50%}.z-10{z-index:10}.z-launchButton{z-index:100}.z-touchpoint{z-index:1000}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-4{height:1rem}.h-52{height:13rem}.h-64{height:16rem}.h-72{height:18rem}.h-8{height:2rem}.h-\\[128px\\]{height:128px}.h-\\[1px\\]{height:1px}.h-\\[360px\\]{height:360px}.h-full{height:100%}.min-h-full{min-height:100%}.w-10{width:2.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-4{width:1rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\\[128px\\]{width:128px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-content{max-width:608px}.flex-none{flex:none}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-1\\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\\[320px\\,1fr\\]{grid-template-columns:320px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-full{border-radius:9999px}.rounded-inner{border-radius:var(--inner-border-radius)}.rounded-outer{border-radius:var(--outer-border-radius)}.border{border-width:1px}.border-background{border-color:var(--background)}.bg-\\[rgb\\(40\\,41\\,47\\)\\]{--tw-bg-opacity: 1;background-color:rgb(40 41 47 / var(--tw-bg-opacity))}.bg-accent{background-color:var(--accent)}.bg-accent-20{background-color:var(--accent-20)}.bg-background{background-color:var(--background)}.bg-black\\/50{background-color:#00000080}.bg-error-primary{background-color:var(--error-primary)}.bg-error-secondary{background-color:var(--error-secondary)}.bg-overlay{background-color:var(--overlay)}.bg-primary-5{background-color:var(--primary-5)}.bg-primary-80{background-color:var(--primary-80)}.bg-secondary-40{background-color:var(--secondary-40)}.bg-secondary-60{background-color:var(--secondary-60)}.bg-transparent{background-color:transparent}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pl-10{padding-left:2.5rem}.pl-4{padding-left:1rem}.pr-2{padding-right:.5rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-sans{font-family:var(--font-family)}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-normal{font-weight:400}.text-\\[rgb\\(134\\,135\\,138\\)\\]{--tw-text-opacity: 1;color:rgb(134 135 138 / var(--tw-text-opacity))}.text-accent{color:var(--accent)}.text-error-primary{color:var(--error-primary)}.text-primary-20{color:var(--primary-20)}.text-primary-40{color:var(--primary-40)}.text-primary-60{color:var(--primary-60)}.text-primary-80{color:var(--primary-80)}.text-secondary-40{color:var(--secondary-40)}.text-secondary-80{color:var(--secondary-80)}.placeholder-primary-20::-moz-placeholder{color:var(--primary-20)}.placeholder-primary-20::placeholder{color:var(--primary-20)}.placeholder-primary-40::-moz-placeholder{color:var(--primary-40)}.placeholder-primary-40::placeholder{color:var(--primary-40)}.caret-accent{caret-color:var(--accent)}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-\\[0\\.01\\]{opacity:.01}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.outline-0{outline-width:0px}.outline-2{outline-width:2px}.outline-accent{outline-color:var(--accent)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-overlay{--tw-backdrop-blur: blur(48px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@property --glow-opacity{syntax: "<percentage>"; inherits: false; initial-value: 0%;}.fullscreen-error svg{animation:error-glow 3s ease infinite;--glow-opacity: 0%;filter:drop-shadow(0 0 6px color-mix(in srgb,transparent,var(--accent) var(--glow-opacity)))}@keyframes error-glow{0%{color:var(--primary);fill-opacity:8%;--glow-opacity: 0%}22%{color:var(--primary);fill-opacity:8%;--glow-opacity: 0%}35%{color:var(--accent);fill-opacity:80%;--glow-opacity: 60%}45%{color:var(--accent);fill-opacity:70%;--glow-opacity: 30%}55%{color:var(--accent);fill-opacity:60%;--glow-opacity: 60%}60%{color:var(--primary);fill-opacity:8%;--glow-opacity: 0%}to{color:var(--primary);fill-opacity:8%;--glow-opacity: 0%}}.markdown ul{list-style-position:inside;list-style-type:disc}.markdown ol{list-style-position:inside;list-style-type:decimal}.markdown hr{border-color:var(--primary-20)}.markdown a{text-decoration-line:underline}.markdown h1,.markdown h2,.markdown h3{font-weight:700}.placeholder\\:text-primary-40::-moz-placeholder{color:var(--primary-40)}.placeholder\\:text-primary-40::placeholder{color:var(--primary-40)}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:inset-0:before{content:var(--tw-content);top:0;right:0;bottom:0;left:0}.before\\:-z-10:before{content:var(--tw-content);z-index:-10}.before\\:bg-transparent:before{content:var(--tw-content);background-color:transparent}.before\\:transition-colors:before{content:var(--tw-content);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.before\\:content-\\[\\'\\'\\]:before{--tw-content: "";content:var(--tw-content)}.after\\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:inset-0:after{content:var(--tw-content);top:0;right:0;bottom:0;left:0}.after\\:rounded-outer:after{content:var(--tw-content);border-radius:var(--outer-border-radius)}.after\\:content-\\[\\'\\'\\]:after{--tw-content: "";content:var(--tw-content)}.hover\\:bg-primary-80:hover{background-color:var(--primary-80)}.hover\\:bg-secondary-20:hover{background-color:var(--secondary-20)}.hover\\:text-primary-80:hover{color:var(--primary-80)}.hover\\:after\\:bg-primary-10:hover:after{content:var(--tw-content);background-color:var(--primary-10)}.focus\\:outline-0:focus{outline-width:0px}.focus\\:before\\:bg-primary-10:focus:before{content:var(--tw-content);background-color:var(--primary-10)}.focus\\:before\\:bg-primary-40:focus:before{content:var(--tw-content);background-color:var(--primary-40)}.focus\\:before\\:bg-primary-5:focus:before{content:var(--tw-content);background-color:var(--primary-5)}.focus\\:before\\:bg-primary-80:focus:before{content:var(--tw-content);background-color:var(--primary-80)}.enabled\\:hover\\:before\\:bg-primary-10:hover:enabled:before{content:var(--tw-content);background-color:var(--primary-10)}.enabled\\:hover\\:before\\:bg-primary-40:hover:enabled:before{content:var(--tw-content);background-color:var(--primary-40)}.enabled\\:hover\\:before\\:bg-primary-5:hover:enabled:before{content:var(--tw-content);background-color:var(--primary-5)}.enabled\\:hover\\:before\\:bg-primary-80:hover:enabled:before{content:var(--tw-content);background-color:var(--primary-80)}.enabled\\:active\\:before\\:bg-secondary-10:active:enabled:before{content:var(--tw-content);background-color:var(--secondary-10)}.disabled\\:bg-accent-20:disabled{background-color:var(--accent-20)}.disabled\\:bg-primary-10:disabled{background-color:var(--primary-10)}.disabled\\:bg-primary-5:disabled{background-color:var(--primary-5)}.disabled\\:bg-secondary-20:disabled{background-color:var(--secondary-20)}.disabled\\:text-primary-20:disabled{color:var(--primary-20)}.disabled\\:text-primary-40:disabled{color:var(--primary-40)}.disabled\\:text-secondary-40:disabled{color:var(--secondary-40)}@media (min-width: 768px){.md\\:absolute{position:absolute}.md\\:left-0{left:0}.md\\:right-0{right:0}.md\\:top-0{top:0}.md\\:top-1{top:.25rem}.md\\:top-2{top:.5rem}.md\\:-order-1{order:-1}.md\\:col-span-1{grid-column:span 1 / span 1}.md\\:mx-auto{margin-left:auto;margin-right:auto}.md\\:block{display:block}.md\\:w-fit{width:-moz-fit-content;width:fit-content}.md\\:max-w-content{max-width:608px}.md\\:-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\\:flex-col{flex-direction:column}.md\\:p-3{padding:.75rem}.md\\:px-3{padding-left:.75rem;padding-right:.75rem}}@media (min-width: 1280px){.xl\\:grid-cols-\\[1fr_632px\\]{grid-template-columns:1fr 632px}}`,Ny=({children:t,faded:e})=>b.jsx("p",{className:J("text-base",e?"text-primary-60":"text-primary-80"),children:t}),Dy=({children:t})=>b.jsx("p",{className:"text-sm text-primary-60",children:t}),Ay=({children:t,selected:e,onClick:n})=>b.jsx("div",{className:J("block shrink-0 rounded-inner overflow-hidden","w-80 space-y-px",e?"outline outline-2 outline-accent":""),onClick:n,children:t}),jy=({src:t,alt:e})=>b.jsx("img",{src:t,alt:e,className:"w-full h-52 object-cover"}),Uy=({left:t,right:e,icon:n})=>b.jsxs("div",{className:"flex items-center relative justify-between gap-2 bg-primary-5 px-3 py-4",children:[b.jsx("div",{className:"space-y-1 text-left",children:t}),b.jsx("div",{className:"space-y-1 text-right",children:e}),n!=null?b.jsx(n,{className:"text-primary-60 w-4 h-4 absolute top-1/2 left-1/2 transform -translate-y-1/2 -translate-x-1/2"}):null]});/*! *****************************************************************************
|
|
157
157
|
Copyright (c) Microsoft Corporation.
|
|
158
158
|
|
|
159
159
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -196,4 +196,4 @@ Please report this to https://github.com/markedjs/marked.`,e){const i="<p>An err
|
|
|
196
196
|
cursor: -webkit-grab;
|
|
197
197
|
cursor: grab; }
|
|
198
198
|
`);var ch,hE=(ch="indiana-scroll-container",function(t,e){if(!t)return ch;var n;typeof t=="string"?n=t:e=t;var r=ch;return n&&(r+="__"+n),r+(e?Object.keys(e).reduce(function(i,s){var o=e[s];return o&&(i+=" "+(typeof o=="boolean"?r+"--"+s:r+"--"+s+"_"+o)),i},""):"")}),fE=function(t){function e(n){var r=t.call(this,n)||this;return r.onEndScroll=function(){r.scrolling=!1,!r.pressed&&r.started&&r.processEnd()},r.onScroll=function(i){var s=r.container.current;s.scrollLeft===r.scrollLeft&&s.scrollTop===r.scrollTop||(r.scrolling=!0,r.processScroll(i),r.onEndScroll())},r.onTouchStart=function(i){var s=r.props.nativeMobileScroll;if(r.isDraggable(i.target))if(r.internal=!0,s&&r.scrolling)r.pressed=!0;else{var o=i.touches[0];r.processClick(i,o.clientX,o.clientY),!s&&r.props.stopPropagation&&i.stopPropagation()}},r.onTouchEnd=function(i){var s=r.props.nativeMobileScroll;r.pressed&&(!r.started||r.scrolling&&s?r.pressed=!1:r.processEnd(),r.forceUpdate())},r.onTouchMove=function(i){var s=r.props.nativeMobileScroll;if(r.pressed&&(!s||!r.isMobile)){var o=i.touches[0];o&&r.processMove(i,o.clientX,o.clientY),i.preventDefault(),r.props.stopPropagation&&i.stopPropagation()}},r.onMouseDown=function(i){r.isDraggable(i.target)&&r.isScrollable()&&(r.internal=!0,r.props.buttons.indexOf(i.button)!==-1&&(r.processClick(i,i.clientX,i.clientY),i.preventDefault(),r.props.stopPropagation&&i.stopPropagation()))},r.onMouseMove=function(i){r.pressed&&(r.processMove(i,i.clientX,i.clientY),i.preventDefault(),r.props.stopPropagation&&i.stopPropagation())},r.onMouseUp=function(i){r.pressed&&(r.started?r.processEnd():(r.internal=!1,r.pressed=!1,r.forceUpdate(),r.props.onClick&&r.props.onClick(i)),i.preventDefault(),r.props.stopPropagation&&i.stopPropagation())},r.container=wn.createRef(),r.onEndScroll=dE(r.onEndScroll,300),r.scrolling=!1,r.started=!1,r.pressed=!1,r.internal=!1,r.getRef=r.getRef.bind(r),r}return function(n,r){function i(){this.constructor=n}Fy(n,r),n.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}(e,t),e.prototype.componentDidMount=function(){var n=this.props.nativeMobileScroll,r=this.container.current;window.addEventListener("mouseup",this.onMouseUp),window.addEventListener("mousemove",this.onMouseMove),window.addEventListener("touchmove",this.onTouchMove,{passive:!1}),window.addEventListener("touchend",this.onTouchEnd),r.addEventListener("touchstart",this.onTouchStart,{passive:!1}),r.addEventListener("mousedown",this.onMouseDown,{passive:!1}),n&&(this.isMobile=this.isMobileDevice(),this.isMobile&&this.forceUpdate())},e.prototype.componentWillUnmount=function(){window.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("touchmove",this.onTouchMove),window.removeEventListener("touchend",this.onTouchEnd)},e.prototype.getElement=function(){return this.container.current},e.prototype.isMobileDevice=function(){return window.orientation!==void 0||navigator.userAgent.indexOf("IEMobile")!==-1},e.prototype.isDraggable=function(n){var r=this.props.ignoreElements;if(r){var i=n.closest(r);return i===null||i.contains(this.getElement())}return!0},e.prototype.isScrollable=function(){var n=this.container.current;return n&&(n.scrollWidth>n.clientWidth||n.scrollHeight>n.clientHeight)},e.prototype.processClick=function(n,r,i){var s=this.container.current;this.scrollLeft=s.scrollLeft,this.scrollTop=s.scrollTop,this.clientX=r,this.clientY=i,this.pressed=!0},e.prototype.processStart=function(n){n===void 0&&(n=!0);var r=this.props.onStartScroll;this.started=!0,n&&document.body.classList.add("indiana-dragging"),r&&r({external:!this.internal}),this.forceUpdate()},e.prototype.processScroll=function(n){if(this.started){var r=this.props.onScroll;r&&r({external:!this.internal})}else this.processStart(!1)},e.prototype.processMove=function(n,r,i){var s=this.props,o=s.horizontal,a=s.vertical,l=s.activationDistance,c=s.onScroll,u=this.container.current;this.started?(o&&(u.scrollLeft-=r-this.clientX),a&&(u.scrollTop-=i-this.clientY),c&&c({external:!this.internal}),this.clientX=r,this.clientY=i,this.scrollLeft=u.scrollLeft,this.scrollTop=u.scrollTop):(o&&Math.abs(r-this.clientX)>l||a&&Math.abs(i-this.clientY)>l)&&(this.clientX=r,this.clientY=i,this.processStart())},e.prototype.processEnd=function(){var n=this.props.onEndScroll;this.container.current&&n&&n({external:!this.internal}),this.pressed=!1,this.started=!1,this.scrolling=!1,this.internal=!1,document.body.classList.remove("indiana-dragging"),this.forceUpdate()},e.prototype.getRef=function(n){[this.container,this.props.innerRef].forEach(function(r){r&&(typeof r=="function"?r(n):r.current=n)})},e.prototype.render=function(){var n=this.props,r=n.children,i=n.draggingClassName,s=n.className,o=n.style,a=n.hideScrollbars,l=n.component;return wn.createElement(l,{className:uE(s,this.pressed&&i,hE({dragging:this.pressed,"hide-scrollbars":a,"native-scroll":this.isMobile})),style:o,ref:this.getRef,onScroll:this.onScroll},r)},e.defaultProps={nativeMobileScroll:!0,hideScrollbars:!0,activationDistance:10,vertical:!0,horizontal:!0,stopPropagation:!1,style:{},component:"div",buttons:[0]},e}(B.PureComponent);const By=({children:t})=>b.jsx(fE,{className:"flex gap-x-2 pt-3 pb-1 overflow-x-auto no-scrollbar px-2 -mx-2",children:t});function zy(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function pE(t,e,n){return e=ol(e),function(r,i){if(i&&(typeof i=="object"||typeof i=="function"))return i;if(i!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(s){if(s===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s}(r)}(t,$y()?Reflect.construct(e,n||[],ol(t).constructor):e.apply(t,n))}function mE(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function gE(t,e,n){return Object.defineProperty(t,"prototype",{writable:!1}),t}function Vy(t,e){var n=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(l,c){if(l){if(typeof l=="string")return zy(l,c);var u={}.toString.call(l).slice(8,-1);return u==="Object"&&l.constructor&&(u=l.constructor.name),u==="Map"||u==="Set"?Array.from(l):u==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u)?zy(l,c):void 0}}(t))||e){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
199
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,o=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var l=n.next();return o=l.done,l},e:function(l){a=!0,s=l},f:function(){try{o||n.return==null||n.return()}finally{if(a)throw s}}}}function Hy(t,e,n){return(e=function(r){var i=function(s,o){if(typeof s!="object"||!s)return s;var a=s[Symbol.toPrimitive];if(a!==void 0){var l=a.call(s,o);if(typeof l!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(s)}(r,"string");return typeof i=="symbol"?i:i+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function sl(){return sl=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},sl.apply(null,arguments)}function ol(t){return ol=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ol(t)}function vE(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&uh(t,e)}function $y(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return($y=function(){return!!t})()}function qy(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function al(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?qy(Object(n),!0).forEach(function(r){Hy(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):qy(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Wy(t,e){if(t==null)return{};var n,r,i=function(o,a){if(o==null)return{};var l={};for(var c in o)if({}.hasOwnProperty.call(o,c)){if(a.includes(c))continue;l[c]=o[c]}return l}(t,e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(r=0;r<s.length;r++)n=s[r],e.includes(n)||{}.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function uh(t,e){return uh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},uh(t,e)}function Hs(t,e){var n,r=e.replacementChars,i=e.replacement,s=e.separate,o=r,a="",l=Vy(t);try{for(l.s();!(n=l.n()).done;){var c,u=n.value,d=!Object.prototype.hasOwnProperty.call(i,u)&&((c=i[o[0]])===null||c===void 0?void 0:c.test(u));(s&&u===o[0]||d)&&(o=o.slice(1),a+=u)}}catch(h){l.e(h)}finally{l.f()}return a}function Gy(t,e){var n,r=e.mask,i=e.replacement,s=e.separate,o=e.showMask,a=0,l="",c=Vy(r);try{for(c.s();!(n=c.n()).done;){var u=n.value;if(!o&&t[a]===void 0)break;Object.prototype.hasOwnProperty.call(i,u)&&t[a]!==void 0?l+=t[a++]:l+=u}}catch(h){c.e(h)}finally{c.f()}if(s&&!o){for(var d=r.length-1;d>=0&&l[d]===r[d];d--);l=l.slice(0,d+1)}return l}function Ky(t,e){for(var n=e.mask,r=e.replacement,i=[],s=0;s<n.length;s++){var o,a=(o=t[s])!==null&&o!==void 0?o:n[s],l=Object.prototype.hasOwnProperty.call(r,a)?"replacement":t[s]!==void 0&&t[s]!==n[s]?"input":"mask";i.push({type:l,value:a,index:s})}return i}function _i(t){return t.length>0?Hy({},t,/./):{}}function dh(t,e){for(var n=e.start,r=n===void 0?0:n,i=e.end,s=e.mask,o=e.replacement,a=e.separate,l=t.slice(r,i),c=s.slice(r,i),u="",d=0;d<c.length;d++){var h=Object.prototype.hasOwnProperty.call(o,c[d]);h&&l[d]!==void 0&&l[d]!==c[d]?u+=l[d]:h&&a&&(u+=c[d])}return u}function Zy(t,e){var n=e.mask,r=e.replacement,i=typeof r=="string"?_i(r):r,s=RegExp("[^".concat(Object.keys(i).join(""),"]"),"g");return Gy(Hs(t,{replacementChars:n.replace(s,""),replacement:i,separate:!1}),{mask:n,replacement:i,separate:!1,showMask:!1})}function yE(t,e){var n=e.mask,r=e.replacement,i=typeof r=="string"?_i(r):r,s=dh(t,{mask:n,replacement:i,separate:!1}),o=RegExp("[^".concat(Object.keys(i).join(""),"]"),"g");return Hs(s,{replacementChars:n.replace(o,""),replacement:i,separate:!1})}function kE(t,e){var n=e.mask,r=e.replacement,i=typeof r=="string"?_i(r):r;return Ky(Zy(t,{mask:n,replacement:i}),{mask:n,replacement:i})}var bE=["[","]","\\","/","^","$",".","|","?","*","+","(",")","{","}"];function Qy(t){return bE.includes(t)?"\\".concat(t):t}function CE(t,e){for(var n=e.mask,r=e.replacement,i=typeof r=="string"?_i(r):r,s=t==="partial"||t==="partial-inexact",o=t==="full"||t==="partial",a="",l=0;l<n.length;l++){var c=n[l];l===0&&(a="^"),s&&(a+="("),a+=Object.prototype.hasOwnProperty.call(i,c)?"".concat(o?"(?!".concat(Qy(c),")"):"","(").concat(i[c].source,")"):Qy(c),l===n.length-1&&(s&&(a+=")?".repeat(n.length)),a+="$")}return a}function SE(t,e){return new Proxy(t,{set:function(n,r,i){return r==="current"&&(i!==t.current&&(t.current!==null&&e.unregister(t.current),i!==null&&e.register(i)),n[r]=i,!0)}})}function wE(t,e,n){return e=$s(e),function(r,i){if(i&&(typeof i=="object"||typeof i=="function"))return i;if(i!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(s){if(s===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s}(r)}(t,hh()?Reflect.construct(e,n||[],$s(t).constructor):e.apply(t,n))}function Yy(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Jy(t,e,n){return Object.defineProperty(t,"prototype",{writable:!1}),t}function TE(t,e,n){return(e=function(r){var i=function(s,o){if(typeof s!="object"||!s)return s;var a=s[Symbol.toPrimitive];if(a!==void 0){var l=a.call(s,o);if(typeof l!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(s)}(r,"string");return typeof i=="symbol"?i:i+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function $s(t){return $s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},$s(t)}function xE(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&qs(t,e)}function hh(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(hh=function(){return!!t})()}function Xy(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function e1(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Xy(Object(n),!0).forEach(function(r){TE(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Xy(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function EE(t,e){if(t==null)return{};var n,r,i=function(o,a){if(o==null)return{};var l={};for(var c in o)if({}.hasOwnProperty.call(o,c)){if(a.includes(c))continue;l[c]=o[c]}return l}(t,e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(r=0;r<s.length;r++)n=s[r],e.includes(n)||{}.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function qs(t,e){return qs=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},qs(t,e)}function fh(t){return fh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fh(t)}function ph(t){var e=typeof Map=="function"?new Map:void 0;return ph=function(n){if(n===null||!function(i){try{return Function.toString.call(i).indexOf("[native code]")!==-1}catch{return typeof i=="function"}}(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(e!==void 0){if(e.has(n))return e.get(n);e.set(n,r)}function r(){return function(i,s,o){if(hh())return Reflect.construct.apply(null,arguments);var a=[null];a.push.apply(a,s);var l=new(i.bind.apply(i,a));return o&&qs(l,o.prototype),l}(n,arguments,$s(this).constructor)}return r.prototype=Object.create(n.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),qs(r,n)},ph(t)}var Ws=function(t){function e(n){var r;return Yy(this,e),(r=wE(this,e,[n])).name="SyntheticChangeError",r}return xE(e,t),Jy(e)}(ph(Error)),t1,PE=["options"],_E=["text","email","tel","search","url"],n1=Jy(function t(e){var n=e.init,r=e.tracking;Yy(this,t);var i=new WeakMap;this.register=function(s){var o;if(_E.includes(s.type)){var a=(o=s._wrapperState)!==null&&o!==void 0?o:{},l=a.initialValue,c=l===void 0?"":l,u=a.controlled,d=u!==void 0&&u,h=n({initialValue:s.value||c,controlled:d}),f=h.value,m=h.options,g={value:f,options:m,fallbackOptions:m},T={id:-1,cachedId:-1},p={value:"",selectionStart:0,selectionEnd:0},v=Object.getOwnPropertyDescriptor("_valueTracker"in s?s:HTMLInputElement.prototype,"value");Object.defineProperty(s,"value",e1(e1({},v),{},{set:function(x){var w;p.value=x,v==null||(w=v.set)===null||w===void 0||w.call(s,x)}})),s.value=f;var y=function(){var x=function(){var w,E;p.selectionStart=(w=s.selectionStart)!==null&&w!==void 0?w:0,p.selectionEnd=(E=s.selectionEnd)!==null&&E!==void 0?E:0,T.id=window.setTimeout(x)};T.id=window.setTimeout(x)},k=function(){window.clearTimeout(T.id),T.id=-1,T.cachedId=-1},C=function(x){try{var w,E;if(T.cachedId===T.id)throw new Ws("The input selection has not been updated.");T.cachedId=T.id;var _=s.value,R=s.selectionStart,j=s.selectionEnd;if(R===null||j===null)throw new Ws("The selection attributes have not been initialized.");var V,oe=p.value;if(x.inputType===void 0&&(p.selectionStart=0,p.selectionEnd=oe.length),R>p.selectionStart?V="insert":R<=p.selectionStart&&R<p.selectionEnd?V="deleteBackward":R===p.selectionEnd&&_.length<oe.length&&(V="deleteForward"),V===void 0||(V==="deleteBackward"||V==="deleteForward")&&_.length>oe.length)throw new Ws("Input type detection error.");var W="",je=p.selectionStart,Ke=p.selectionEnd;if(V==="insert")W=_.slice(p.selectionStart,R);else{var nt=oe.length-_.length;je=R,Ke=R+nt}g.value!==oe?g.options=g.fallbackOptions:g.fallbackOptions=g.options;var U=g.options,z=r({inputType:V,previousValue:oe,previousOptions:U,value:_,addedValue:W,changeStart:je,changeEnd:Ke,selectionStart:R,selectionEnd:j}),H=z.options,J=EE(z,PE);s.value=J.value,s.setSelectionRange(J.selectionStart,J.selectionEnd),g.value=J.value,g.options=H,p.selectionStart=J.selectionStart,p.selectionEnd=J.selectionEnd,(w=s._valueTracker)===null||w===void 0||(E=w.setValue)===null||E===void 0||E.call(w,oe)}catch(be){if(s.value=p.value,s.setSelectionRange(p.selectionStart,p.selectionEnd),x.preventDefault(),x.stopPropagation(),be.name!=="SyntheticChangeError")throw be}};document.activeElement===s&&y(),s.addEventListener("focus",y),s.addEventListener("blur",k),s.addEventListener("input",C),i.set(s,{onFocus:y,onBlur:k,onInput:C})}},this.unregister=function(s){var o=i.get(s);o!==void 0&&(s.removeEventListener("focus",o.onFocus),s.removeEventListener("blur",o.onBlur),s.removeEventListener("input",o.onInput),i.delete(s))}});t1=n1,Object.defineProperty(t1.prototype,Symbol.toStringTag,{writable:!1,enumerable:!1,configurable:!0,value:"Input"});function RE(t,e){return B.useCallback(function(n){t.current=n,typeof e=="function"?e(n):fh(e)==="object"&&e!==null&&(e.current=n)},[t,e])}var r1,IE=["track","modify"];function Ri(t){var e,n,r,i;return{mask:(e=t.mask)!==null&&e!==void 0?e:"",replacement:typeof t.replacement=="string"?_i(t.replacement):(n=t.replacement)!==null&&n!==void 0?n:{},showMask:(r=t.showMask)!==null&&r!==void 0&&r,separate:(i=t.separate)!==null&&i!==void 0&&i,track:t.track,modify:t.modify}}var i1=function(t){function e(){var n,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return mE(this,e),(n=pE(this,e,[{init:function(i){var s=i.initialValue,o=i.controlled,a=Ri(r),l=a.mask,c=a.replacement,u=a.separate,d=a.showMask;return s=o||s?s:d?l:"",{value:s,options:{mask:l,replacement:c,separate:u}}},tracking:function(i){var s=i.inputType,o=i.previousValue,a=i.previousOptions,l=i.addedValue,c=i.changeStart,u=i.changeEnd,d=Ri(r),h=d.track,f=d.modify,m=Wy(d,IE),g=m.mask,T=m.replacement,p=m.showMask,v=m.separate,y=al(al({},s==="insert"?{inputType:s,data:l}:{inputType:s,data:null}),{},{value:o,selectionStart:c,selectionEnd:u}),k=h==null?void 0:h(y);if(k===!1)throw new Ws("Custom tracking stop.");k===null?l="":k!==!0&&k!==void 0&&(l=k);var C=f==null?void 0:f(y);(C==null?void 0:C.mask)!==void 0&&(g=C.mask),(C==null?void 0:C.replacement)!==void 0&&(T=typeof(C==null?void 0:C.replacement)=="string"?_i(C==null?void 0:C.replacement):C.replacement),(C==null?void 0:C.showMask)!==void 0&&(p=C.showMask),(C==null?void 0:C.separate)!==void 0&&(v=C.separate);var x=dh(o,al({end:c},a)),w=dh(o,al({start:u},a)),E=RegExp("[^".concat(Object.keys(T).join(""),"]"),"g"),_=g.replace(E,"");if(x&&(x=Hs(x,{replacementChars:_,replacement:T,separate:v}),_=_.slice(x.length)),l&&(l=Hs(l,{replacementChars:_,replacement:T,separate:!1}),_=_.slice(l.length)),s==="insert"&&l==="")throw new Ws("The character does not match the key value of the `replacement` object.");if(v){var R=g.slice(c,u).replace(E,""),j=R.length-l.length;j<0?w=w.slice(-j):j>0&&(w=R.slice(-j)+w)}w&&(w=Hs(w,{replacementChars:_,replacement:T,separate:v}));var V=Gy(x+l+w,{mask:g,replacement:T,separate:v,showMask:p}),oe=function(W){var je,Ke,nt,U=W.inputType,z=W.value,H=W.addedValue,J=W.beforeChangeValue,be=W.mask,Or=W.replacement,Sn=W.separate,Lr=Ky(z,{mask:be,replacement:Or}).filter(function(mh){var a1=mh.type;return a1==="input"||Sn&&a1==="replacement"}),on=(je=Lr[J.length+H.length-1])===null||je===void 0?void 0:je.index,Wt=(Ke=Lr[J.length-1])===null||Ke===void 0?void 0:Ke.index,Li=(nt=Lr[J.length+H.length])===null||nt===void 0?void 0:nt.index;if(U==="insert"){if(on!==void 0)return on+1;if(Li!==void 0)return Li;if(Wt!==void 0)return Wt+1}if(U==="deleteForward"){if(Li!==void 0)return Li;if(Wt!==void 0)return Wt+1}if(U==="deleteBackward"){if(Wt!==void 0)return Wt+1;if(Li!==void 0)return Li}var o1=z.split("").findIndex(function(mh){return Object.prototype.hasOwnProperty.call(Or,mh)});return o1!==-1?o1:z.length}({inputType:s,value:V,addedValue:l,beforeChangeValue:x,mask:g,replacement:T,separate:v});return{value:V,selectionStart:oe,selectionEnd:oe,options:{mask:g,replacement:T,separate:v}}}}])).format=function(i){return Zy(i,Ri(r))},n.formatToParts=function(i){return kE(i,Ri(r))},n.unformat=function(i){return yE(i,Ri(r))},n.generatePattern=function(i){return CE(i,Ri(r))},n}return vE(e,n1),gE(e)}();r1=i1,Object.defineProperty(r1.prototype,Symbol.toStringTag,{writable:!1,enumerable:!1,configurable:!0,value:"Mask"});function OE(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.mask,n=t.replacement,r=t.showMask,i=t.separate,s=t.track,o=t.modify,a=B.useRef(null),l=B.useRef({mask:e,replacement:n,showMask:r,separate:i,track:s,modify:o});return l.current.mask=e,l.current.replacement=n,l.current.showMask=r,l.current.separate=i,l.current.track=s,l.current.modify=o,B.useMemo(function(){return SE(a,new i1(l.current))},[])}var LE=["component","mask","replacement","showMask","separate","track","modify"];function ME(t,e){var n=t.component,r=t.mask,i=t.replacement,s=t.showMask,o=t.separate,a=t.track,l=t.modify,c=Wy(t,LE),u=OE({mask:r,replacement:i,showMask:s,separate:o,track:a,modify:l}),d=RE(u,e);return n?wn.createElement(n,sl({ref:d},c)):wn.createElement("input",sl({ref:d},c))}var NE=B.forwardRef(ME);const DE={mask:"MM / DD / YYYY",replacement:{D:/\d/,M:/\d/,Y:/\d/},showMask:!0},s1=({onSubmit:t})=>{const e=t==null,[n,r]=B.useState(null);return b.jsxs("div",{className:te("relative bg-primary-5 flex items-center justify-between pl-4 py-2 pr-2 rounded-outer transition-colors duration-500 before:content-[''] before:absolute before:transition-colors before:-z-10 before:inset-0 before:bg-transparent",e?"":"hover:bg-secondary-20"),children:[b.jsxs("div",{className:"flex items-center",children:[b.jsx(pg,{className:"w-4 h-4 text-primary-60"}),b.jsx(NE,{...DE,className:te("bg-transparent text-primary-80 outline-0 ml-2 py-2.5",e?"placeholder-primary-20 pointer-events-none":"placeholder-primary-40"),placeholder:"MM / DD / YYYY",onChange:i=>{const s=i.target.value,[o,a,l]=s.split(" / ");o!=null&&o.length===2&&a!=null&&a.length===2&&l!=null&&l.length===4?r(`${l}-${o}-${a}`):r(null)}})]}),b.jsx(jt,{className:"flex-none",label:"Send message",onClick:n==null||t==null?void 0:()=>{t(n)},type:"main",Icon:pa})]})},AE=({children:t,mode:e,theme:n})=>b.jsxs(b.Fragment,{children:[b.jsx("style",{children:My}),b.jsx(ah,{className:"bg-background p-4 rounded-outer space-y-4",theme:n,colorMode:e,children:t})]}),jE=(t=>Db.bind((e,...n)=>B.createElement(t[e]??e,...n)))({TextButton:As,IconButton:jt,BaseText:Ny,SmallText:Dy,DateInput:s1,Carousel:By,CustomCard:Ay,CustomCardRow:Uy,CustomCardImageRow:jy,...Cg});class UE extends HTMLElement{constructor(){super(...arguments);Mi(this,Ks);Mi(this,Ii,null);Mi(this,Gs,null);Mi(this,nr,null);ee(this,"onRef",null);ee(this,"embedded",!0);ee(this,"onClose",null);ee(this,"enableSettings",!1);Mi(this,Oi,!0)}set enabled(n){Rt(this,Oi)!==n&&(Zs(this,Oi,n),vh(this,Ks,yh).call(this))}set touchpointConfiguration(n){jC(Rt(this,nr),n)||(Zs(this,nr,n),vh(this,Ks,yh).call(this))}disconnectedCallback(){var n;(n=Rt(this,Ii))==null||n.unmount()}}Ii=new WeakMap,Gs=new WeakMap,nr=new WeakMap,Oi=new WeakMap,Ks=new WeakSet,yh=function(){Rt(this,Gs)??Zs(this,Gs,this.attachShadow({mode:"closed"})),Rt(this,Ii)??Zs(this,Ii,Fm(Rt(this,Gs))),Rt(this,nr)!=null&&Rt(this,Ii).render(b.jsxs(b.Fragment,{children:[b.jsx("style",{children:My}),b.jsx(Ly,{...Rt(this,nr),embedded:this.embedded,initializeConversation:Rt(this,nr).initializeConversation??(n=>{n.sendWelcomeIntent()}),onClose:this.onClose,enableSettings:this.enableSettings,enabled:Rt(this,Oi),ref:n=>{var r;n!=null&&((r=this.onRef)==null||r.call(this,n))}})]}))},((t,e)=>{customElements.get(t)==null&&customElements.define(t,e)})("nlx-touchpoint",UE);const FE=t=>new Promise(e=>{const n=document.createElement("nlx-touchpoint");n.embedded=!1,n.onRef=r=>{e({set expanded(i){r.setExpanded(i)},get expanded(){return r.getExpanded()},get conversationHandler(){return r.getConversationHandler()},teardown:()=>{document.body.removeChild(n)}})},n.onClose=()=>{},n.enableSettings=!0,n.touchpointConfiguration=t,document.body.appendChild(n)});$.BaseText=Ny,$.Carousel=By,$.CustomCard=Ay,$.CustomCardImageRow=jy,$.CustomCardRow=Uy,$.DateInput=s1,$.IconButton=jt,$.Icons=Cg,$.PreviewContainer=AE,$.React=wn,$.SmallText=Dy,$.TextButton=As,$.create=FE,$.html=jE,Object.defineProperty($,Symbol.toStringTag,{value:"Module"})});
|
|
199
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,o=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var l=n.next();return o=l.done,l},e:function(l){a=!0,s=l},f:function(){try{o||n.return==null||n.return()}finally{if(a)throw s}}}}function Hy(t,e,n){return(e=function(r){var i=function(s,o){if(typeof s!="object"||!s)return s;var a=s[Symbol.toPrimitive];if(a!==void 0){var l=a.call(s,o);if(typeof l!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(s)}(r,"string");return typeof i=="symbol"?i:i+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function sl(){return sl=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},sl.apply(null,arguments)}function ol(t){return ol=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ol(t)}function vE(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&uh(t,e)}function $y(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return($y=function(){return!!t})()}function qy(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function al(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?qy(Object(n),!0).forEach(function(r){Hy(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):qy(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Wy(t,e){if(t==null)return{};var n,r,i=function(o,a){if(o==null)return{};var l={};for(var c in o)if({}.hasOwnProperty.call(o,c)){if(a.includes(c))continue;l[c]=o[c]}return l}(t,e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(r=0;r<s.length;r++)n=s[r],e.includes(n)||{}.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function uh(t,e){return uh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},uh(t,e)}function Hs(t,e){var n,r=e.replacementChars,i=e.replacement,s=e.separate,o=r,a="",l=Vy(t);try{for(l.s();!(n=l.n()).done;){var c,u=n.value,d=!Object.prototype.hasOwnProperty.call(i,u)&&((c=i[o[0]])===null||c===void 0?void 0:c.test(u));(s&&u===o[0]||d)&&(o=o.slice(1),a+=u)}}catch(h){l.e(h)}finally{l.f()}return a}function Gy(t,e){var n,r=e.mask,i=e.replacement,s=e.separate,o=e.showMask,a=0,l="",c=Vy(r);try{for(c.s();!(n=c.n()).done;){var u=n.value;if(!o&&t[a]===void 0)break;Object.prototype.hasOwnProperty.call(i,u)&&t[a]!==void 0?l+=t[a++]:l+=u}}catch(h){c.e(h)}finally{c.f()}if(s&&!o){for(var d=r.length-1;d>=0&&l[d]===r[d];d--);l=l.slice(0,d+1)}return l}function Ky(t,e){for(var n=e.mask,r=e.replacement,i=[],s=0;s<n.length;s++){var o,a=(o=t[s])!==null&&o!==void 0?o:n[s],l=Object.prototype.hasOwnProperty.call(r,a)?"replacement":t[s]!==void 0&&t[s]!==n[s]?"input":"mask";i.push({type:l,value:a,index:s})}return i}function _i(t){return t.length>0?Hy({},t,/./):{}}function dh(t,e){for(var n=e.start,r=n===void 0?0:n,i=e.end,s=e.mask,o=e.replacement,a=e.separate,l=t.slice(r,i),c=s.slice(r,i),u="",d=0;d<c.length;d++){var h=Object.prototype.hasOwnProperty.call(o,c[d]);h&&l[d]!==void 0&&l[d]!==c[d]?u+=l[d]:h&&a&&(u+=c[d])}return u}function Zy(t,e){var n=e.mask,r=e.replacement,i=typeof r=="string"?_i(r):r,s=RegExp("[^".concat(Object.keys(i).join(""),"]"),"g");return Gy(Hs(t,{replacementChars:n.replace(s,""),replacement:i,separate:!1}),{mask:n,replacement:i,separate:!1,showMask:!1})}function yE(t,e){var n=e.mask,r=e.replacement,i=typeof r=="string"?_i(r):r,s=dh(t,{mask:n,replacement:i,separate:!1}),o=RegExp("[^".concat(Object.keys(i).join(""),"]"),"g");return Hs(s,{replacementChars:n.replace(o,""),replacement:i,separate:!1})}function kE(t,e){var n=e.mask,r=e.replacement,i=typeof r=="string"?_i(r):r;return Ky(Zy(t,{mask:n,replacement:i}),{mask:n,replacement:i})}var bE=["[","]","\\","/","^","$",".","|","?","*","+","(",")","{","}"];function Qy(t){return bE.includes(t)?"\\".concat(t):t}function CE(t,e){for(var n=e.mask,r=e.replacement,i=typeof r=="string"?_i(r):r,s=t==="partial"||t==="partial-inexact",o=t==="full"||t==="partial",a="",l=0;l<n.length;l++){var c=n[l];l===0&&(a="^"),s&&(a+="("),a+=Object.prototype.hasOwnProperty.call(i,c)?"".concat(o?"(?!".concat(Qy(c),")"):"","(").concat(i[c].source,")"):Qy(c),l===n.length-1&&(s&&(a+=")?".repeat(n.length)),a+="$")}return a}function SE(t,e){return new Proxy(t,{set:function(n,r,i){return r==="current"&&(i!==t.current&&(t.current!==null&&e.unregister(t.current),i!==null&&e.register(i)),n[r]=i,!0)}})}function wE(t,e,n){return e=$s(e),function(r,i){if(i&&(typeof i=="object"||typeof i=="function"))return i;if(i!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(s){if(s===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s}(r)}(t,hh()?Reflect.construct(e,n||[],$s(t).constructor):e.apply(t,n))}function Yy(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Jy(t,e,n){return Object.defineProperty(t,"prototype",{writable:!1}),t}function TE(t,e,n){return(e=function(r){var i=function(s,o){if(typeof s!="object"||!s)return s;var a=s[Symbol.toPrimitive];if(a!==void 0){var l=a.call(s,o);if(typeof l!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(s)}(r,"string");return typeof i=="symbol"?i:i+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function $s(t){return $s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},$s(t)}function xE(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&qs(t,e)}function hh(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(hh=function(){return!!t})()}function Xy(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function e1(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Xy(Object(n),!0).forEach(function(r){TE(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Xy(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function EE(t,e){if(t==null)return{};var n,r,i=function(o,a){if(o==null)return{};var l={};for(var c in o)if({}.hasOwnProperty.call(o,c)){if(a.includes(c))continue;l[c]=o[c]}return l}(t,e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(r=0;r<s.length;r++)n=s[r],e.includes(n)||{}.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function qs(t,e){return qs=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},qs(t,e)}function fh(t){return fh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fh(t)}function ph(t){var e=typeof Map=="function"?new Map:void 0;return ph=function(n){if(n===null||!function(i){try{return Function.toString.call(i).indexOf("[native code]")!==-1}catch{return typeof i=="function"}}(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(e!==void 0){if(e.has(n))return e.get(n);e.set(n,r)}function r(){return function(i,s,o){if(hh())return Reflect.construct.apply(null,arguments);var a=[null];a.push.apply(a,s);var l=new(i.bind.apply(i,a));return o&&qs(l,o.prototype),l}(n,arguments,$s(this).constructor)}return r.prototype=Object.create(n.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),qs(r,n)},ph(t)}var Ws=function(t){function e(n){var r;return Yy(this,e),(r=wE(this,e,[n])).name="SyntheticChangeError",r}return xE(e,t),Jy(e)}(ph(Error)),t1,PE=["options"],_E=["text","email","tel","search","url"],n1=Jy(function t(e){var n=e.init,r=e.tracking;Yy(this,t);var i=new WeakMap;this.register=function(s){var o;if(_E.includes(s.type)){var a=(o=s._wrapperState)!==null&&o!==void 0?o:{},l=a.initialValue,c=l===void 0?"":l,u=a.controlled,d=u!==void 0&&u,h=n({initialValue:s.value||c,controlled:d}),f=h.value,m=h.options,g={value:f,options:m,fallbackOptions:m},T={id:-1,cachedId:-1},p={value:"",selectionStart:0,selectionEnd:0},v=Object.getOwnPropertyDescriptor("_valueTracker"in s?s:HTMLInputElement.prototype,"value");Object.defineProperty(s,"value",e1(e1({},v),{},{set:function(x){var w;p.value=x,v==null||(w=v.set)===null||w===void 0||w.call(s,x)}})),s.value=f;var y=function(){var x=function(){var w,E;p.selectionStart=(w=s.selectionStart)!==null&&w!==void 0?w:0,p.selectionEnd=(E=s.selectionEnd)!==null&&E!==void 0?E:0,T.id=window.setTimeout(x)};T.id=window.setTimeout(x)},k=function(){window.clearTimeout(T.id),T.id=-1,T.cachedId=-1},C=function(x){try{var w,E;if(T.cachedId===T.id)throw new Ws("The input selection has not been updated.");T.cachedId=T.id;var _=s.value,R=s.selectionStart,j=s.selectionEnd;if(R===null||j===null)throw new Ws("The selection attributes have not been initialized.");var V,oe=p.value;if(x.inputType===void 0&&(p.selectionStart=0,p.selectionEnd=oe.length),R>p.selectionStart?V="insert":R<=p.selectionStart&&R<p.selectionEnd?V="deleteBackward":R===p.selectionEnd&&_.length<oe.length&&(V="deleteForward"),V===void 0||(V==="deleteBackward"||V==="deleteForward")&&_.length>oe.length)throw new Ws("Input type detection error.");var W="",je=p.selectionStart,Ke=p.selectionEnd;if(V==="insert")W=_.slice(p.selectionStart,R);else{var nt=oe.length-_.length;je=R,Ke=R+nt}g.value!==oe?g.options=g.fallbackOptions:g.fallbackOptions=g.options;var U=g.options,z=r({inputType:V,previousValue:oe,previousOptions:U,value:_,addedValue:W,changeStart:je,changeEnd:Ke,selectionStart:R,selectionEnd:j}),H=z.options,X=EE(z,PE);s.value=X.value,s.setSelectionRange(X.selectionStart,X.selectionEnd),g.value=X.value,g.options=H,p.selectionStart=X.selectionStart,p.selectionEnd=X.selectionEnd,(w=s._valueTracker)===null||w===void 0||(E=w.setValue)===null||E===void 0||E.call(w,oe)}catch(be){if(s.value=p.value,s.setSelectionRange(p.selectionStart,p.selectionEnd),x.preventDefault(),x.stopPropagation(),be.name!=="SyntheticChangeError")throw be}};document.activeElement===s&&y(),s.addEventListener("focus",y),s.addEventListener("blur",k),s.addEventListener("input",C),i.set(s,{onFocus:y,onBlur:k,onInput:C})}},this.unregister=function(s){var o=i.get(s);o!==void 0&&(s.removeEventListener("focus",o.onFocus),s.removeEventListener("blur",o.onBlur),s.removeEventListener("input",o.onInput),i.delete(s))}});t1=n1,Object.defineProperty(t1.prototype,Symbol.toStringTag,{writable:!1,enumerable:!1,configurable:!0,value:"Input"});function RE(t,e){return B.useCallback(function(n){t.current=n,typeof e=="function"?e(n):fh(e)==="object"&&e!==null&&(e.current=n)},[t,e])}var r1,IE=["track","modify"];function Ri(t){var e,n,r,i;return{mask:(e=t.mask)!==null&&e!==void 0?e:"",replacement:typeof t.replacement=="string"?_i(t.replacement):(n=t.replacement)!==null&&n!==void 0?n:{},showMask:(r=t.showMask)!==null&&r!==void 0&&r,separate:(i=t.separate)!==null&&i!==void 0&&i,track:t.track,modify:t.modify}}var i1=function(t){function e(){var n,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return mE(this,e),(n=pE(this,e,[{init:function(i){var s=i.initialValue,o=i.controlled,a=Ri(r),l=a.mask,c=a.replacement,u=a.separate,d=a.showMask;return s=o||s?s:d?l:"",{value:s,options:{mask:l,replacement:c,separate:u}}},tracking:function(i){var s=i.inputType,o=i.previousValue,a=i.previousOptions,l=i.addedValue,c=i.changeStart,u=i.changeEnd,d=Ri(r),h=d.track,f=d.modify,m=Wy(d,IE),g=m.mask,T=m.replacement,p=m.showMask,v=m.separate,y=al(al({},s==="insert"?{inputType:s,data:l}:{inputType:s,data:null}),{},{value:o,selectionStart:c,selectionEnd:u}),k=h==null?void 0:h(y);if(k===!1)throw new Ws("Custom tracking stop.");k===null?l="":k!==!0&&k!==void 0&&(l=k);var C=f==null?void 0:f(y);(C==null?void 0:C.mask)!==void 0&&(g=C.mask),(C==null?void 0:C.replacement)!==void 0&&(T=typeof(C==null?void 0:C.replacement)=="string"?_i(C==null?void 0:C.replacement):C.replacement),(C==null?void 0:C.showMask)!==void 0&&(p=C.showMask),(C==null?void 0:C.separate)!==void 0&&(v=C.separate);var x=dh(o,al({end:c},a)),w=dh(o,al({start:u},a)),E=RegExp("[^".concat(Object.keys(T).join(""),"]"),"g"),_=g.replace(E,"");if(x&&(x=Hs(x,{replacementChars:_,replacement:T,separate:v}),_=_.slice(x.length)),l&&(l=Hs(l,{replacementChars:_,replacement:T,separate:!1}),_=_.slice(l.length)),s==="insert"&&l==="")throw new Ws("The character does not match the key value of the `replacement` object.");if(v){var R=g.slice(c,u).replace(E,""),j=R.length-l.length;j<0?w=w.slice(-j):j>0&&(w=R.slice(-j)+w)}w&&(w=Hs(w,{replacementChars:_,replacement:T,separate:v}));var V=Gy(x+l+w,{mask:g,replacement:T,separate:v,showMask:p}),oe=function(W){var je,Ke,nt,U=W.inputType,z=W.value,H=W.addedValue,X=W.beforeChangeValue,be=W.mask,Or=W.replacement,Sn=W.separate,Lr=Ky(z,{mask:be,replacement:Or}).filter(function(mh){var a1=mh.type;return a1==="input"||Sn&&a1==="replacement"}),on=(je=Lr[X.length+H.length-1])===null||je===void 0?void 0:je.index,Wt=(Ke=Lr[X.length-1])===null||Ke===void 0?void 0:Ke.index,Li=(nt=Lr[X.length+H.length])===null||nt===void 0?void 0:nt.index;if(U==="insert"){if(on!==void 0)return on+1;if(Li!==void 0)return Li;if(Wt!==void 0)return Wt+1}if(U==="deleteForward"){if(Li!==void 0)return Li;if(Wt!==void 0)return Wt+1}if(U==="deleteBackward"){if(Wt!==void 0)return Wt+1;if(Li!==void 0)return Li}var o1=z.split("").findIndex(function(mh){return Object.prototype.hasOwnProperty.call(Or,mh)});return o1!==-1?o1:z.length}({inputType:s,value:V,addedValue:l,beforeChangeValue:x,mask:g,replacement:T,separate:v});return{value:V,selectionStart:oe,selectionEnd:oe,options:{mask:g,replacement:T,separate:v}}}}])).format=function(i){return Zy(i,Ri(r))},n.formatToParts=function(i){return kE(i,Ri(r))},n.unformat=function(i){return yE(i,Ri(r))},n.generatePattern=function(i){return CE(i,Ri(r))},n}return vE(e,n1),gE(e)}();r1=i1,Object.defineProperty(r1.prototype,Symbol.toStringTag,{writable:!1,enumerable:!1,configurable:!0,value:"Mask"});function OE(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.mask,n=t.replacement,r=t.showMask,i=t.separate,s=t.track,o=t.modify,a=B.useRef(null),l=B.useRef({mask:e,replacement:n,showMask:r,separate:i,track:s,modify:o});return l.current.mask=e,l.current.replacement=n,l.current.showMask=r,l.current.separate=i,l.current.track=s,l.current.modify=o,B.useMemo(function(){return SE(a,new i1(l.current))},[])}var LE=["component","mask","replacement","showMask","separate","track","modify"];function ME(t,e){var n=t.component,r=t.mask,i=t.replacement,s=t.showMask,o=t.separate,a=t.track,l=t.modify,c=Wy(t,LE),u=OE({mask:r,replacement:i,showMask:s,separate:o,track:a,modify:l}),d=RE(u,e);return n?wn.createElement(n,sl({ref:d},c)):wn.createElement("input",sl({ref:d},c))}var NE=B.forwardRef(ME);const DE={mask:"MM / DD / YYYY",replacement:{D:/\d/,M:/\d/,Y:/\d/},showMask:!0},s1=({onSubmit:t})=>{const e=t==null,[n,r]=B.useState(null);return b.jsxs("div",{className:J("relative bg-primary-5 flex items-center justify-between pl-4 py-2 pr-2 rounded-outer transition-colors duration-500 before:content-[''] before:absolute before:transition-colors before:-z-10 before:inset-0 before:bg-transparent",e?"":"hover:bg-secondary-20"),children:[b.jsxs("div",{className:"flex items-center",children:[b.jsx(pg,{className:"w-4 h-4 text-primary-60"}),b.jsx(NE,{...DE,className:J("bg-transparent text-primary-80 outline-0 ml-2 py-2.5",e?"placeholder-primary-20 pointer-events-none":"placeholder-primary-40"),placeholder:"MM / DD / YYYY",onChange:i=>{const s=i.target.value,[o,a,l]=s.split(" / ");o!=null&&o.length===2&&a!=null&&a.length===2&&l!=null&&l.length===4?r(`${l}-${o}-${a}`):r(null)}})]}),b.jsx(jt,{className:"flex-none",label:"Send message",onClick:n==null||t==null?void 0:()=>{t(n)},type:"main",Icon:pa})]})},AE=({children:t,mode:e,theme:n})=>b.jsxs(b.Fragment,{children:[b.jsx("style",{children:My}),b.jsx(ah,{className:"bg-background p-4 rounded-outer space-y-4",theme:n,colorMode:e,children:t})]}),jE=(t=>Db.bind((e,...n)=>B.createElement(t[e]??e,...n)))({TextButton:As,IconButton:jt,BaseText:Ny,SmallText:Dy,DateInput:s1,Carousel:By,CustomCard:Ay,CustomCardRow:Uy,CustomCardImageRow:jy,...Cg});class UE extends HTMLElement{constructor(){super(...arguments);Mi(this,Ks);Mi(this,Ii,null);Mi(this,Gs,null);Mi(this,nr,null);te(this,"onRef",null);te(this,"embedded",!0);te(this,"onClose",null);te(this,"enableSettings",!1);Mi(this,Oi,!0)}set enabled(n){Rt(this,Oi)!==n&&(Zs(this,Oi,n),vh(this,Ks,yh).call(this))}set touchpointConfiguration(n){jC(Rt(this,nr),n)||(Zs(this,nr,n),vh(this,Ks,yh).call(this))}disconnectedCallback(){var n;(n=Rt(this,Ii))==null||n.unmount()}}Ii=new WeakMap,Gs=new WeakMap,nr=new WeakMap,Oi=new WeakMap,Ks=new WeakSet,yh=function(){Rt(this,Gs)??Zs(this,Gs,this.attachShadow({mode:"closed"})),Rt(this,Ii)??Zs(this,Ii,Fm(Rt(this,Gs))),Rt(this,nr)!=null&&Rt(this,Ii).render(b.jsxs(b.Fragment,{children:[b.jsx("style",{children:My}),b.jsx(Ly,{...Rt(this,nr),embedded:this.embedded,initializeConversation:Rt(this,nr).initializeConversation??(n=>{n.sendWelcomeIntent()}),onClose:this.onClose,enableSettings:this.enableSettings,enabled:Rt(this,Oi),ref:n=>{var r;n!=null&&((r=this.onRef)==null||r.call(this,n))}})]}))},((t,e)=>{customElements.get(t)==null&&customElements.define(t,e)})("nlx-touchpoint",UE);const FE=t=>new Promise(e=>{const n=document.createElement("nlx-touchpoint");n.embedded=!1,n.onRef=r=>{e({set expanded(i){r.setExpanded(i)},get expanded(){return r.getExpanded()},get conversationHandler(){return r.getConversationHandler()},teardown:()=>{document.body.removeChild(n)}})},n.onClose=()=>{},n.enableSettings=!0,n.touchpointConfiguration=t,document.body.appendChild(n)});$.BaseText=Ny,$.Carousel=By,$.CustomCard=Ay,$.CustomCardImageRow=jy,$.CustomCardRow=Uy,$.DateInput=s1,$.IconButton=jt,$.Icons=Cg,$.PreviewContainer=AE,$.React=wn,$.SmallText=Dy,$.TextButton=As,$.create=FE,$.html=jE,Object.defineProperty($,Symbol.toStringTag,{value:"Module"})});
|