PageSourceSearch

https://www.delphi.ai/_next/static/immutable/chunks/274cbk7ft856u.js

js delphi.ai collected 2026-10-03 17:35:44 UTC 626,302 bytes, 6 lines download raw bytes

1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="1f89ba9a-8536-6b48-2d85-fcd96ddab26d")}catch(e){}}();
2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,357601,e=>{"use strict";var t=e.i(546711),n=e.i(218885),i=e.i(591401),r=e.i(358557),a=e.i(712954),s=e.i(702907),o=e.i(142555),c=e.i(725542);function l(e,t){[...t].reverse().forEach(n=>{let i=e.getVariant(n);i&&(0,o.setTarget)(e,i),e.variantChildren&&e.variantChildren.forEach(e=>{l(e,t)})})}function d(){let e=!1,t=new Set,n={subscribe:e=>(t.add(e),()=>void t.delete(e)),start(n,i){(0,c.invariant)(e,"controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.");let r=[];return t.forEach(e=>{r.push((0,s.animateVisualElement)(e,n,{transitionOverride:i}))}),Promise.all(r)},set:n=>((0,c.invariant)(e,"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook."),t.forEach(e=>{var t,i;t=e,Array.isArray(i=n)?l(t,i):"string"==typeof i?l(t,[i]):(0,o.setTarget)(t,i)})),stop(){t.forEach(e=>{e.values.forEach(e=>e.stop())})},mount:()=>(e=!0,()=>{e=!1,n.stop()})};return n}let u=function(){let e=(0,r.useConstant)(d);return(0,a.useIsomorphicLayoutEffect)(e.mount,[]),e};var h=e.i(145373),p=e.i(632137),m=e.i(667724);let f=2*Math.PI*8.5;e.s(["CallCountdown",0,function(){let e,r,a,s,o,c,l,d,g,v,b=(0,n.c)(24),{status:y,remainingVoiceSeconds:k,startedAt:T}=(0,m.useVoiceCallContext)(),S=u(),[C,w]=(0,h.useState)(k),[E,P]=(0,h.useState)(k);E!==k&&(P(k),w(k));let R="active"===y;b[0]!==S||b[1]!==R||b[2]!==k||b[3]!==T?(e=()=>{if(!R||null===k||null===T)return;let e=()=>{let e=Math.max(k-Math.floor((Date.now()-T)/1e3),0);w(e);let t=k<=0?0:e/k;return S.start({strokeDashoffset:f-t*f}),e>0};e();let t=setInterval(()=>{e()||clearInterval(t)},1e3);return()=>clearInterval(t)},r=[R,k,T,S],b[0]=S,b[1]=R,b[2]=k,b[3]=T,b[4]=e,b[5]=r):(e=b[4],r=b[5]),(0,h.useEffect)(e,r),b[6]!==C||b[7]!==k?(a=null===k||null===C?"Unlimited":function(e){if(e<=0)return"0 minutes left";let t=Math.max(Math.floor(e/60),1);if(t<=119)return`${t} minute${1===t?"":"s"} left`;let n=Math.floor(e/3600);return n<=23?`${n} hours left`:"24+ hours left"}(C),b[6]=C,b[7]=k,b[8]=a):a=b[8];let I=a;b[9]===Symbol.for("react.memo_cache_sentinel")?(s=(0,t.jsx)("div",{"aria-hidden":!0,className:"delphi-call-countdown-divider h-6 w-px bg-sand-6"}),b[9]=s):s=b[9];let _=R?"stroke-current opacity-40":"stroke-tangerine-3";return b[10]!==_?(o=(0,p.cn)(_),b[10]=_,b[11]=o):o=b[11],b[12]!==o?(c=(0,t.jsx)("circle",{cx:"10",cy:"10",r:8.5,fill:"none",strokeWidth:"3",className:o}),b[12]=o,b[13]=c):c=b[13],b[14]!==S?(l=(0,t.jsx)(i.motion.circle,{cx:"10",cy:"10",r:8.5,fill:"none",strokeWidth:"3",strokeLinecap:"round",className:"stroke-current",strokeDasharray:`${f} ${f}`,strokeDashoffset:f,animate:S}),b[14]=S,b[15]=l):l=b[15],b[16]!==c||b[17]!==l?(d=(0,t.jsxs)("svg",{className:"delphi-call-countdown-icon -rotate-90 text-brand-accent",width:"20",height:"20",viewBox:"0 0 20 20",children:[c,l]}),b[16]=c,b[17]=l,b[18]=d):d=b[18],b[19]!==I?(g=(0,t.jsx)("p",{className:"delphi-call-countdown-message hidden tabular-nums text-fg-mid lg:block",children:I}),b[19]=I,b[20]=g):g=b[20],b[21]!==d||b[22]!==g?(v=(0,t.jsxs)(t.Fragment,{children:[s,(0,t.jsxs)("div",{className:"delphi-call-countdown-container ml-auto flex items-center justify-center gap-2",children:[d,g]})]}),b[21]=d,b[22]=g,b[23]=v):v=b[23],v}],357601)},345430,332152,e=>{"use strict";var t=e.i(546711),n=e.i(218885),i=e.i(145373);e.i(981831),e.i(111541),e.i(765918),e.i(403773);let r=(0,i.createContext)(null),a=[{question:"Okay so we're at forty-nine a seat and churn has honestly been fine, like under two percent. But my cofounder keeps 
2saying we're leaving money on the table. How do I even know if we're underpriced?",answer:"Churn being fine is usually the tell. Low churn at a low price means people would keep paying at a higher one. Raise the price for new customers only, by more than feels comfortable, and watch close rates for six weeks."},{question:"What should I look for in a first product hire?",answer:"Judgment about users over process fluency. Process you can teach in a quarter. Taste takes years."}];function s(e,t){return e.split(" ").slice(0,Math.max(0,t)).join(" ")}function o(e){return e+1}e.s(["DevCaptionSegmentsProvider",0,function(e){let i,a=(0,n.c)(3),{segments:s,children:o}=e;return a[0]!==o||a[1]!==s?(i=(0,t.jsx)(r,{value:s,children:o}),a[0]=o,a[1]=s,a[2]=i):i=a[2],i},"useCaptionScriptPlayer",0,function(e){let t,r,c,l=(0,n.c)(6),[d,u]=(0,i.useState)(0);return e||0===d||u(0),l[0]!==e?(t=()=>{if(!e)return;let t=window.setInterval(()=>u(o),120);return()=>window.clearInterval(t)},r=[e],l[0]=e,l[1]=t,l[2]=r):(t=l[1],r=l[2]),(0,i.useEffect)(t,r),l[3]!==e||l[4]!==d?(c=e?function(e){let t=[],n=e;for(let[e,i]of a.entries()){let r=i.question.split(" ").length,a=i.answer.split(" ").length,o=Math.min(n,r);if(o>0&&t.push({id:`dev-q-${e}`,speaker:"visitor",text:s(i.question,o)}),(n-=r+12)<=0)break;let c=Math.min(n,a);if(c>0&&t.push({id:`dev-a-${e}`,speaker:"mind",text:s(i.answer,c)}),(n-=a+15)<=0)break}return t}(d):null,l[3]=e,l[4]=d,l[5]=c):c=l[5],c},"useDevCaptionSegments",0,function(){return(0,i.use)(r)}],332152),e.i(667724);let c=(0,i.createContext)(null);e.s(["CallDevTools",0,function(e){(0,n.c)(2);let{children:t}=e;return t},"useDevCloneStatus",0,function(){return(0,i.use)(c)}],345430)},259355,400148,e=>{"use strict";var t=e.i(546711),n=e.i(218885),i=e.i(92553),r=e.i(981831),a=e.i(403773),s=e.i(632137),o=e.i(667724);e.s(["CallEndedDoors",0,function(e){let c,l,d,u,h,p=(0,n.c)(19),{className:m,transcriptClassName:f,shareClassName:g}=e,{threadId:v,openTranscript:b,isOpeningTranscript:y,canViewTranscript:k,openShare:T,canShare:S,isSharing:C,voiceSettingsHref:w}=(0,o.useVoiceCallContext)(),E=!!v&&k,P=!!v&&S;return E||P||w?(p[0]!==m?(c=(0,s.cn)("flex flex-col gap-1 sm:flex-row sm:gap-2",m),p[0]=m,p[1]=c):c=p[1],p[2]!==y||p[3]!==b||p[4]!==E||p[5]!==f?(l=E?(0,t.jsxs)(r.Button,{className:(0,s.cn)("mx-auto w-fit",f),onClick:b,disabled:y,variant:"ghost",children:[y?"Loading...":"View Transcript",(0,t.jsx)(a.CircleArrowUpRightSolidIcon,{"data-icon":"inline-end"})]}):null,p[2]=y,p[3]=b,p[4]=E,p[5]=f,p[6]=l):l=p[6],p[7]!==C||p[8]!==T||p[9]!==g||p[10]!==P?(d=P?(0,t.jsxs)(r.Button,{className:(0,s.cn)("mx-auto w-fit",g),onClick:T,disabled:C,variant:"ghost",children:[C?"Sharing...":"Share Call",(0,t.jsx)(a.ShareSolidIcon,{"data-icon":"inline-end"})]}):null,p[7]=C,p[8]=T,p[9]=g,p[10]=P,p[11]=d):d=p[11],p[12]!==w?(u=w?(0,t.jsx)(r.Button,{className:"mx-auto w-fit",variant:"ghost",asChild:!0,children:(0,t.jsxs)(i.default,{href:w,children:["Update Voice",(0,t.jsx)(a.VoiceSolidIcon,{"data-icon":"inline-end"})]})}):null,p[12]=w,p[13]=u):u=p[13],p[14]!==c||p[15]!==l||p[16]!==d||p[17]!==u?(h=(0,t.jsxs)("div",{className:c,children:[l,d,u]}),p[14]=c,p[15]=l,p[16]=d,p[17]=u,p[18]=h):h=p[18],h):null}],259355);let c={leading:"To call, allow microphone access in your",action:"browser settings",trailing:"."};e.s(["failReasonContent",0,function(e,t){switch(e){case"quota_exceeded":return{icon:a.TriangleExclamationSolidIcon,title:"Voice Limit Reached",detail:`You've used your free voice time with ${t}. Keep the conversation going in chat.`,shortMessage:"Calling disabled"};case"mic_denied":return{icon:a.MicrophoneSlashIcon,title:"Microphone Blocked",detail:`${c.leading} ${c.action}${c.trailing}`,shortMessage:"Microphone access is required to call. Enable it in your browser settings."};case"connect_timeout":return{icon:a.TriangleExclamationSolidIcon,title:"Couldn't Connect",detail:"The call didn't go through. Try calling again.",shortMessage:"Could not connect. Please try again."};case"restricted_browser":return{icon:a.TriangleExclamationSolidIcon,title:"Browser Not Supported",detail
2:"Voice calls don't work in this browser. Open this page in Chrome or Safari.",shortMessage:"Voice calls don't work in this browser. Open in Chrome or Safari."};case"access_revoked":return{icon:a.PhoneSlashSolidIcon,title:"Call Ended",detail:`${t} isn't available to call.`,shortMessage:`${t} isn't available to call.`};case"email_required":case"generic":case null:return{icon:a.TriangleExclamationSolidIcon,title:"Call Failed",detail:"Something went wrong. Try calling again.",shortMessage:"Something went wrong"};default:return e}},"microphonePermissionDetail",0,c],400148)},234895,e=>{"use strict";var t=e.i(546711),n=e.i(218885),i=e.i(340904),r=e.i(212905),a=e.i(667724);function s(e){return(0,t.jsx)(i.SelectItem,{value:e.code,children:e.label},e.code)}e.s(["CallLanguageSelect",0,function(){let e,o,c,l,d,u,h=(0,n.c)(15),{status:p,language:m,setLanguage:f,languageSwitchPending:g,languageOptions:v,multipleLanguages:b}=(0,a.useVoiceCallContext)();h[0]!==g||h[1]!==p?(e=(0,r.callLanguageSelectMode)(p,g),h[0]=g,h[1]=p,h[2]=e):e=h[2];let y=e;if("hidden"===y||0===v.length||!b)return null;let k="disabled"===y;return h[3]!==f?(o=e=>f(e),h[3]=f,h[4]=o):o=h[4],h[5]===Symbol.for("react.memo_cache_sentinel")?(c=(0,t.jsx)(i.SelectTrigger,{"aria-label":"Call language",className:"delphi-call-language-select-trigger rounded-xl border-loud bg-surface-primary px-4",children:(0,t.jsx)(i.SelectValue,{placeholder:"Language",className:"delphi-call-language-select-value line-clamp-1"})}),h[5]=c):c=h[5],h[6]!==v?(l=v.map(s),h[6]=v,h[7]=l):l=h[7],h[8]!==l?(d=(0,t.jsx)(i.SelectContent,{align:"end",sideOffset:12,className:"max-h-80",children:(0,t.jsx)(i.SelectGroup,{children:l})}),h[8]=l,h[9]=d):d=h[9],h[10]!==m||h[11]!==k||h[12]!==o||h[13]!==d?(u=(0,t.jsxs)(i.Select,{value:m,disabled:k,onValueChange:o,children:[c,d]}),h[10]=m,h[11]=k,h[12]=o,h[13]=d,h[14]=u):u=h[14],u}])},122123,e=>{"use strict";e.s(["formatElapsed",0,function(e){let t=Math.floor(e/60);return`${String(t).padStart(2,"0")}:${String(e%60).padStart(2,"0")}`}])},933485,e=>{"use strict";var t=e.i(546711),n=e.i(218885),i=e.i(591401),r=e.i(632137);let a={hidden:{opacity:0},visible:e=>({opacity:[.25,.5,1,1,1,.5,.25,.25,.25,.25,.25],transition:{duration:1,repeat:1/0,ease:"linear",delay:.15*e}})};function s(e){return(0,t.jsx)(i.motion.div,{className:"block size-1.5 rounded-full bg-current",custom:e,initial:"hidden",animate:"visible",exit:"hidden",variants:a},e)}e.s(["Dots",0,function(e){let a,o,c,l=(0,n.c)(5),{className:d}=e;return l[0]!==d?(a=(0,r.cn)("flex items-center gap-1",d),l[0]=d,l[1]=a):a=l[1],l[2]===Symbol.for("react.memo_cache_sentinel")?(o=[0,1,2].map(s),l[2]=o):o=l[2],l[3]!==a?(c=(0,t.jsx)(i.motion.div,{role:"progressbar",className:a,children:o}),l[3]=a,l[4]=c):c=l[4],c}])},932016,e=>{"use strict";function t(e){return"quota_exceeded"!==e&&"restricted_browser"!==e&&"access_revoked"!==e}e.s(["canRetryLegacyCall",0,function(e){return t(e)&&"mic_denied"!==e},"canRetryProfileCall",0,t])},782151,e=>{"use strict";var t=e.i(546711),n=e.i(218885),i=e.i(591401),r=e.i(981831),a=e.i(667724);e.s(["Idle",0,function(){let e,s,o,c,l=(0,n.c)(5),{startCall:d,failReason:u}=(0,a.useVoiceCallContext)();return"access_revoked"===u?null:(l[0]===Symbol.for("react.memo_cache_sentinel")?(e={opacity:0,y:20},s={opacity:1,y:0},o={opacity:0,y:20},l[0]=e,l[1]=s,l[2]=o):(e=l[0],s=l[1],o=l[2]),l[3]!==d?(c=(0,t.jsx)(i.motion.div,{layout:!0,initial:e,animate:s,exit:o,className:"delphi-call-idle-container flex flex-col items-center gap-3",children:(0,t.jsx)(r.Button,{size:"lg",variant:"solid",className:"delphi-call-idle-start",onClick:()=>void d(),children:"Start a call"})}),l[3]=d,l[4]=c):c=l[4],c)}])},533003,e=>{"use strict";var t=e.i(218885),n=e.i(145373);function i(){return Date.now()}e.s(["useCallElapsedSeconds",0,function(e){let r,a,s=(0,t.c)(4),{status:o,startedAt:c,endedAt:l}=e,d="active"===o,[u,h]=(0,n.useState)(i);return(s[0]!==d||s[1]!==c?(r=()=>{if(null===c||!d)return;let e=setInterval(()=>h(Date.now()),1e3);return()=>clearInterval(e)},a=[d,c],s[0]=d,s[1]=c,s[2]=r,s[3]=a):(r=s[2],a=s[3]),(0,n.useEffect)(r,a),null===c)?0:d?Math.max(0,Math.floor((u-c)/1e3)):null!==l?Math.max(0,Math.floor((l-c)/1e3)):0}])},805987,322177,e=>{"use strict";var t=e.i(218885),n=e.i(79929);let i={"arnold-schwarz":{title:"You have used up all of your free time with Arnold Intelligence (AI).",subt
2itle:"Get unlimited access to Arnold with The Pump app.",redirectUrl:"https://arnoldspumpclub.com/pages/the-pump"},drmarkhyman:{title:"You've used up your available quota for Dr. Hyman.",subtitle:"Get unlimited access when you join the Hyman Hive.",bullets:["Access Premium Features: Voice & Text","Get 24/7 Access to AI Mark","Receive Expert-Guided Advice"],buttonText:"Learn More",redirectUrl:"https://drhyman.com/products/ai-mark?variant=45794652258435",showProfilePicture:!0},jayabraham:{title:"You've used up your available quota for Jay Abraham.",subtitle:"Get unlimited access.",redirectUrl:"https://askjayi.com/checkout"},gabbybernstein:{title:"You've used up your available quota for Gabby Bernstein.",subtitle:"Get unlimited access.",redirectUrl:"https://gabbybernstein.com/ai"},"natalie-ellis":{title:"You've used up your free trial with Natalie Ellis' AI clone",subtitle:"Unlock unlimited access now when you join The Freedom Engine™ AI.",bullets:["24/7 AI access to Natalie's $36M+ strategies","Instant answers for fast growth and real results","Business support at the moment you need it"],redirectUrl:"https://bossbabe.com/getfreedomengine"},marisapeer:{title:"You've reached your Marisa AI usage quota",subtitle:"Click here to learn more",redirectUrl:"https://hl.marisapeer.com/ai"},jeffersonfisher:{title:"You've Run Out of Free Messages",subtitle:"Unlock Unlimited Messaging with Jefferson AI",bullets:["Personal Communication Expert 24/7","Text or Call, Supports SMS & WhatsApp","Try before you buy"],redirectUrl:"https://jefferson.ai/checkout"},stevedvalentine:{title:"You've Run Out of Trial Messages",subtitle:"Unlock Unlimited Messaging with Steve Valentine AI",bullets:["Real Estate Mentor 24/7","Unlimited Text or Calling, Supports SMS","Try before you buy"],redirectUrl:"https://stevedvalentine.com/checkout"},garybrecka:{title:"You’ve used up your available quota for Gary.",subtitle:"Get unlimited access when you join Ultimate Human AI.",bullets:["Access Premium Features: Voice & Text","Get 24/7 Access to AI Gary","Guidance Built on Gary’s Proven Protocols"],buttonText:"Learn More",redirectUrl:"https://www.theultimatehuman.com/memberships",showProfilePicture:!0},"rupok-ghosh":{title:"You've hit your free message limit with Lenny.",subtitle:"Subscribe to Lenny's Newsletter for unlimited access to Lenny Bot.",bullets:[],buttonText:"Verify Subscription",redirectUrl:"https://www.lennysnewsletter.com/cc/lenny-bot"},lenny:{title:"You've hit your free message limit with Lenny.",subtitle:"Subscribe to Lenny's Newsletter for unlimited access to Lenny Bot.",bullets:[],buttonText:"Verify Subscription",redirectUrl:"https://www.lennysnewsletter.com/cc/lenny-bot"},"nick-norwitz":{title:"You've hit your free message limit with Nick.",subtitle:"Subscribe to Stay Curious for unlimited access to Ask Nick.",bullets:[],buttonText:"Subscribe",redirectUrl:"https://staycuriousmetabolism.substack.com/subscribe"},"arthur-brooks":{title:"You've reached your free limit for now.",subtitle:"If you've been finding these conversations useful, there's a way to keep them going. Get unlimited time with my digital mind, plus a monthly live call with me.",buttonText:"Join the Meaning Membership",redirectUrl:"https://www.arthurbrooks.com/meaning-membership",showProfilePicture:!0}};function r(e){let t;return(t=i[e])?{title:t.title,subtitle:t.subtitle,bullets:t.bullets,buttonText:t.buttonText,showProfilePicture:t.showProfilePicture,redirectUrl:t.redirectUrl}:null}let a=new Set(["arthur-brooks","drmarkhyman","garybrecka","lenny","nick-norwitz","rupok-ghosh"]);function s(e){return a.has(e)?r(e):null}e.s(["PAYWALL_CONFIG_ENABLED_SLUGS",0,a,"getPaywallConfig",0,r,"useCustomVisitorPaywall",0,s],322177);var o=e.i(667724);e.s(["useCallFailPaywall",0,function(){let e,i,r=(0,t.c)(8),{failReason:a,ownerUsername:c,paywallOverride:l,onSecondaryUpgrade:d}=(0,o.useVoiceCallContext)(),u=s(c),h=l??u,p="quota_exceeded"===a&&!!h?.redirectUrl;r[0]!==d||r[1]!==h||r[2]!==l?(e=()=>{l&&d?d():h?.redirectUrl&&(0,n.openVisitorPaywallRedirect)(h.redirectUrl)},r[0]=d,r[1]=h,r[2]=l,r[3]=e):e=r[3];let m=e;return r[4]!==m||r[5]!==h||r[6]!==p?(i={paywall:h,showUpgrade:p,handleUpgrade:m},r[4]=m,r[5]=h,r[6]=p,r[7]=i):i=r[7],i}],805987)},525808,484474,368791,952479,571416,212905,518040,174576,693492,59805,e=>{"use strict";let t,n,i,r,a,s,o,c,l,d;var u,h,p=e.i(218885),m=e.i(593854),f=e.i(730684),g=e.i(599826);function v({apiBaseUrl:e,authorizationToken:t,channelId:n}){if(e||t||n)return{...e?{baseUrl:e}:void 0,...n?{query:(0,g.embedChannelQuery)(n)}:void 0,...t?{credentials:"omit",headers:{Authorization:`Bearer ${t}`}}:void 0}}e.s(["voiceCallRequestOptions",0,v],484474),e.s(["useCallQuota",0,function(e,t){let n,i,r,a,s=(0,p.c)(13);if(s[0]!==e||s[1]!==t){let r=v(void 0===t?{}:t);i=m.useQuery,n=(0,f.getVoiceCallQuotaOptions)({...r??{},query:{...r?.query,owner_username:e}}),s[0]=e,s[1]=t,s[2]=n,s[3]=i}else n=s[2],i=s[3];let o=!!e;s[4]!==n||s[5]!==o?(r={...n,enabled:o},s[4]=n,s[5]=o,s[6]=r):r=s[6];let{data:c,isPending:l,isFetching:d,isError:u,refetch:h}=i(r),g=c?.data;return s[7]!==u||s[8]!==d||s[9]!==l||s[10]!==h||s[11]!==g?(a={data:g,isPending:l,isFetching:d,isError:u,refetch:h}
2,s[7]=u,s[8]=d,s[9]=l,s[10]=h,s[11]=g,s[12]=a):a=s[12],a}],525808);var b=e.i(602415),y=e.i(144628),k=e.i(145373),T=Object.defineProperty,S=(e,t,n)=>{let i;return(i="symbol"!=typeof t?t+"":t)in e?T(e,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[i]=n};class C{constructor(){S(this,"_locking"),S(this,"_locks"),this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){let e;this._locks+=1;let t=new Promise(t=>e=()=>{this._locks-=1,t()}),n=this._locking.then(()=>e);return this._locking=this._locking.then(()=>t),n}}function w(e,t){if(!e)throw Error(t)}function E(e){if("number"!=typeof e)throw Error("invalid int 32: "+typeof e);if(!Number.isInteger(e)||e>0x7fffffff||e<-0x80000000)throw Error("invalid int 32: "+e)}function P(e){if("number"!=typeof e)throw Error("invalid uint 32: "+typeof e);if(!Number.isInteger(e)||e>0xffffffff||e<0)throw Error("invalid uint 32: "+e)}function R(e){if("number"!=typeof e)throw Error("invalid float 32: "+typeof e);if(Number.isFinite(e)&&(e>34028234663852886e22||e<-34028234663852886e22))throw Error("invalid float 32: "+e)}let I=Symbol("@bufbuild/protobuf/enum-type");function _(e,t,n,i){e[I]=x(t,n.map(t=>({no:t.no,name:t.name,localName:e[t.no]})))}function x(e,t,n){let i=Object.create(null),r=Object.create(null),a=[];for(let e of t){let t=O(e);a.push(t),i[e.name]=t,r[e.no]=t}return{typeName:e,values:a,findName:e=>i[e],findNumber:e=>r[e]}}function O(e){return"localName"in e?e:Object.assign(Object.assign({},e),{localName:e.name})}class M{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){let n=this.getType().runtime.bin,i=n.makeReadOptions(t);return n.readMessage(this,i.readerFactory(e),e.byteLength,i),this}fromJson(e,t){let n=this.getType(),i=n.runtime.json,r=i.makeReadOptions(t);return i.readMessage(n,e,r,this),this}fromJsonString(e,t){let n;try{n=JSON.parse(e)}catch(e){throw Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(e instanceof Error?e.message:String(e)))}return this.fromJson(n,t)}toBinary(e){let t=this.getType().runtime.bin,n=t.makeWriteOptions(e),i=n.writerFactory();return t.writeMessage(this,i,n),i.finish()}toJson(e){let t=this.getType().runtime.json,n=t.makeWriteOptions(e);return t.writeMessage(this,n)}toJsonString(e){var t;return JSON.stringify(this.toJson(e),null,null!=(t=null==e?void 0:e.prettySpaces)?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function D(){let e=0,t=0;for(let n=0;n<28;n+=7){let i=this.buf[this.pos++];if(e|=(127&i)<<n,(128&i)==0)return this.assertBounds(),[e,t]}let n=this.buf[this.pos++];if(e|=(15&n)<<28,t=(112&n)>>4,(128&n)==0)return this.assertBounds(),[e,t];for(let n=3;n<=31;n+=7){let i=this.buf[this.pos++];if(t|=(127&i)<<n,(128&i)==0)return this.assertBounds(),[e,t]}throw Error("invalid varint")}function A(e,t,n){for(let i=0;i<28;i+=7){let r=e>>>i,a=r>>>7!=0||0!=t,s=(a?128|r:r)&255;if(n.push(s),!a)return}let i=e>>>28&15|(7&t)<<4,r=t>>3!=0;if(n.push((r?128|i:i)&255),r){for(let e=3;e<31;e+=7){let i=t>>>e,r=i>>>7!=0,a=(r?128|i:i)&255;if(n.push(a),!r)return}n.push(t>>>31&1)}}function N(e){let t="-"===e[0];t&&(e=e.slice(1));let n=0,i=0;function r(t,r){let a=Number(e.slice(t,r));i*=1e6,(n=1e6*n+a)>=0x100000000&&(i+=n/0x100000000|0,n%=0x100000000)}return r(-24,-18),r(-18,-12),r(-12,-6),r(-6),t?j(n,i):U(n,i)}function L(e,t){if({lo:e,hi:t}={lo:e>>>0,hi:t>>>0},t<=2097151)return String(0x100000000*t+e);let n=0xffffff&e,i=(e>>>24|t<<8)&0xffffff,r=t>>16&65535,a=n+6777216*i+6710656*r,s=i+8147497*r,o=2*r;return a>=1e7&&(s+=Math.floor(a/1e7),a%=1e7),s>=1e7&&(o+=Math.floor(s/1e7),s%=1e7),o.toString()+F(s)+F(a)}function U(e,t){return{lo:0|e,hi:0|t}}function j(e,t){return t=~t,e?e=~e+1:t+=1,U(e,t)}let F=e=>{let t=String(e);return"0000000".slice(t.length)+t};function B(e,t){if(e>=0){for(;e>127;)t.push(127&e|128),e>>>=7;t.push(e)}else{for(let n=0;n<9;n++)t.push(127&e|128),e>>=7;t.push(1)}}function q(){let e=this.buf[this.pos++],t=127&e;if((128&e)==0||(t|=(127&(e=this.buf[this.pos++]))<<7,(128&e)==0)||(t|=(127&(e=this.buf[this.pos++]))<<14,(128&e)==0)||(t|=(127&(e=this.buf[this.pos++]))<<21,(128&e)==0))return this.assertBounds(),t;
2t|=(15&(e=this.buf[this.pos++]))<<28;for(let t=5;(128&e)!=0&&t<10;t++)e=this.buf[this.pos++];if((128&e)!=0)throw Error("invalid varint");return this.assertBounds(),t>>>0}let V=function(){let e=new DataView(new ArrayBuffer(8));if("function"==typeof BigInt&&"function"==typeof e.getBigInt64&&"function"==typeof e.getBigUint64&&"function"==typeof e.setBigInt64&&"function"==typeof e.setBigUint64&&("object"!=typeof b.default||"object"!=typeof b.default.env||"1"!==b.default.env.BUF_BIGINT_DISABLE)){let t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),i=BigInt("0"),r=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(e){let i="bigint"==typeof e?e:BigInt(e);if(i>n||i<t)throw Error("int64 invalid: ".concat(e));return i},uParse(e){let t="bigint"==typeof e?e:BigInt(e);if(t>r||t<i)throw Error("uint64 invalid: ".concat(e));return t},enc(t){return e.setBigInt64(0,this.parse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(t){return e.setBigInt64(0,this.uParse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec:(t,n)=>(e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigInt64(0,!0)),uDec:(t,n)=>(e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigUint64(0,!0))}}let t=e=>w(/^-?[0-9]+$/.test(e),"int64 invalid: ".concat(e)),n=e=>w(/^[0-9]+$/.test(e),"uint64 invalid: ".concat(e));return{zero:"0",supported:!1,parse:e=>("string"!=typeof e&&(e=e.toString()),t(e),e),uParse:e=>("string"!=typeof e&&(e=e.toString()),n(e),e),enc:e=>("string"!=typeof e&&(e=e.toString()),t(e),N(e)),uEnc:e=>("string"!=typeof e&&(e=e.toString()),n(e),N(e)),dec:(e,t)=>{let n,i,r;return(i=0x80000000&(n=U(e,t)).hi)&&(n=j(n.lo,n.hi)),r=L(n.lo,n.hi),i?"-"+r:r},uDec:(e,t)=>L(e,t)}}();function H(e,t,n){if(t===n)return!0;if(e==cR.BYTES){if(!(t instanceof Uint8Array)||!(n instanceof Uint8Array)||t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!1;return!0}switch(e){case cR.UINT64:case cR.FIXED64:case cR.INT64:case cR.SFIXED64:case cR.SINT64:return t==n}return!1}function z(e,t){switch(e){case cR.BOOL:return!1;case cR.UINT64:case cR.FIXED64:case cR.INT64:case cR.SFIXED64:case cR.SINT64:return 0==t?V.zero:"0";case cR.DOUBLE:case cR.FLOAT:return 0;case cR.BYTES:return new Uint8Array(0);case cR.STRING:return"";default:return 0}}function W(e,t){switch(e){case cR.BOOL:return!1===t;case cR.STRING:return""===t;case cR.BYTES:return t instanceof Uint8Array&&!t.byteLength;default:return 0==t}}(oH=cR||(cR={}))[oH.DOUBLE=1]="DOUBLE",oH[oH.FLOAT=2]="FLOAT",oH[oH.INT64=3]="INT64",oH[oH.UINT64=4]="UINT64",oH[oH.INT32=5]="INT32",oH[oH.FIXED64=6]="FIXED64",oH[oH.FIXED32=7]="FIXED32",oH[oH.BOOL=8]="BOOL",oH[oH.STRING=9]="STRING",oH[oH.BYTES=12]="BYTES",oH[oH.UINT32=13]="UINT32",oH[oH.SFIXED32=15]="SFIXED32",oH[oH.SFIXED64=16]="SFIXED64",oH[oH.SINT32=17]="SINT32",oH[oH.SINT64=18]="SINT64",(oz=cI||(cI={}))[oz.BIGINT=0]="BIGINT",oz[oz.STRING=1]="STRING",(oW=c_||(c_={}))[oW.Varint=0]="Varint",oW[oW.Bit64=1]="Bit64",oW[oW.LengthDelimited=2]="LengthDelimited",oW[oW.StartGroup=3]="StartGroup",oW[oW.EndGroup=4]="EndGroup",oW[oW.Bit32=5]="Bit32";class G{constructor(e){this.stack=[],this.textEncoder=null!=e?e:new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let t=0;t<this.chunks.length;t++)e+=this.chunks[t].length;let t=new Uint8Array(e),n=0;for(let e=0;e<this.chunks.length;e++)t.set(this.chunks[e],n),n+=this.chunks[e].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(P(e);e>127;)this.buf.push(127&e|128),e>>>=7;return this.buf.push(e),this}int32(e){return E(e),B(e,this.buf),this}bool(e){return this.buf.push(+!!e),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){R(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){P(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){E(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return E(e),B(e=(e<<1^e>>31)>>>0,this.buf),this}sfixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),i=V.enc(e);return n.setInt32(0,i.lo,!0),n.setInt32(4,i.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),i=V.uEnc(e);return n.setInt32(0,i.lo,!0),n.setInt32(4,i.hi,!0),this.raw(t)}int64(e){let t=V.enc(e);return A(t.lo,t.hi,this.buf),this}sint64(e){let t=V.enc(e),n=t.hi>>31;return A(t.lo<<1^n,(t.hi<<1|t.lo>>>31)^n,this.buf),this}uint64(e){let t=V.uEnc(e);return A(t.lo,t.hi,this.buf),this}}class J{constructor(e,t){this.varint64=D,this.uint32=q,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=null!=t?t:new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,n=7&e;
2if(t<=0||n<0||n>5)throw Error("illegal tag: field no "+t+" wire type "+n);return[t,n]}skip(e,t){let n=this.pos;switch(e){case c_.Varint:for(;128&this.buf[this.pos++];);break;case c_.Bit64:this.pos+=4;case c_.Bit32:this.pos+=4;break;case c_.LengthDelimited:let i=this.uint32();this.pos+=i;break;case c_.StartGroup:for(;;){let[e,n]=this.tag();if(n===c_.EndGroup){if(void 0!==t&&e!==t)throw Error("invalid end group tag");break}this.skip(n,e)}break;default:throw Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){let e=this.uint32();return e>>>1^-(1&e)}int64(){return V.dec(...this.varint64())}uint64(){return V.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),n=-(1&e);return e=(e>>>1|(1&t)<<31)^n,t=t>>>1^n,V.dec(e,t)}bool(){let[e,t]=this.varint64();return 0!==e||0!==t}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return V.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return V.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(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}}function K(e){let t=e.field.localName,n=Object.create(null);return n[t]=function(e){let t=e.field;if(t.repeated)return[];if(void 0!==t.default)return t.default;switch(t.kind){case"enum":return t.T.values[0].no;case"scalar":return z(t.T,t.L);case"message":let n=t.T,i=new n;return n.fieldWrapper?n.fieldWrapper.unwrapField(i):i;case"map":throw"map fields are not allowed to be extensions"}}(e),[n,()=>n[t]]}let $="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),Y=[];for(let e=0;e<$.length;e++)Y[$[e].charCodeAt(0)]=e;Y[45]=$.indexOf("+"),Y[95]=$.indexOf("/");let Q={dec(e){let t=3*e.length/4;"="==e[e.length-2]?t-=2:"="==e[e.length-1]&&(t-=1);let n=new Uint8Array(t),i=0,r=0,a,s=0;for(let t=0;t<e.length;t++){if(void 0===(a=Y[e.charCodeAt(t)]))switch(e[t]){case"=":r=0;case"\n":case"\r":case"	":case" ":continue;default:throw Error("invalid base64 string.")}switch(r){case 0:s=a,r=1;break;case 1:n[i++]=s<<2|(48&a)>>4,s=a,r=2;break;case 2:n[i++]=(15&s)<<4|(60&a)>>2,s=a,r=3;break;case 3:n[i++]=(3&s)<<6|a,r=0}}if(1==r)throw Error("invalid base64 string.");return n.subarray(0,i)},enc(e){let t="",n=0,i,r=0;for(let a=0;a<e.length;a++)switch(i=e[a],n){case 0:t+=$[i>>2],r=(3&i)<<4,n=1;break;case 1:t+=$[r|i>>4],r=(15&i)<<2,n=2;break;case 2:t+=$[r|i>>6],t+=$[63&i],n=0}return n&&(t+=$[r],t+="=",1==n&&(t+="=")),t}};function X(e,t){let n=e.getType();return t.extendee.typeName===n.typeName&&!!n.runtime.bin.listUnknownFields(e).find(e=>e.no==t.field.no)}function Z(e,t){w(e.extendee.typeName==t.getType().typeName,"extension ".concat(e.typeName," can only be applied to message ").concat(e.extendee.typeName))}function ee(e,t){let n=e.localName;if(e.repeated)return t[n].length>0;if(e.oneof)return t[e.oneof.localName].case===n;switch(e.kind){case"enum":case"scalar":if(e.opt||e.req)return void 0!==t[n];if("enum"==e.kind)return t[n]!==e.T.values[0].no;return!W(e.T,t[n]);case"message":return void 0!==t[n];case"map":return Object.keys(t[n]).length>0}}function et(e,t){let n=e.localName,i=!e.opt&&!e.req;if(e.repeated)t[n]=[];else if(e.oneof)t[e.oneof.localName]={case:void 0};else switch(e.kind){case"map":t[n]={};break;case"enum":t[n]=i?e.T.values[0].no:void 0;break;case"scalar":t[n]=i?z(e.T,e.L):void 0;break;case"message":t[n]=void 0}}function en(e,t){if(null===e||"object"!=typeof e||!Object.getOwnPropertyNames(M.prototype).every(t=>t in e&&"function"==typeof e[t]))return!1;let n=e.getType();return null!==n&&"function"==typeof n&&"typeName"in n&&"string"==typeof n.typeName&&(void 0===t||n.typeName==t.typeName)}function ei(e,t){return en(t)||!e.fieldWrapper?t:e.fieldWrapper.wrapField(t)}cR.DOUBLE,cR.FLOAT,cR.INT64,cR.UINT64,cR.INT32,cR.UINT32,cR.BOOL,cR.STRING,cR.BYTES;let er={ignoreUnknownFields:!1},ea={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},es=Symbol(),eo=Symbol();function ec(e){if(null===e)return"null";switch(typeof e){case"object":return Array.isArray(e)?"array":"object";case"string":return e.length>100?"string":'"'.concat(e.split('"').join('\\"'),'"');default:return String(e)}}function el(e,t,n,i,r){let a=n.localName;if(n.repeated){if(w("map"!=n.kind),null===t)return;if(!Array.isArray(t))throw Error("cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(ec(t)));let s=e[a];for(let e of t){if(null===e)throw Error("cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(ec(e)));switch(n.kind){case"message":s.push(n.T.fromJson(e,i));break;case"enum":let t=eu(n.T,e,i.ignoreUnknownFields,!0);t!==eo&&s.push(t);break;case"scalar":try{s.push(ed(n.T,e,n.L,!0))}catch(i){let t="cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(ec(e));throw i instanceof Error&&i.message.length>0&&(t+=": ".concat(i.message)),Error(t)}}}}else if("map"==n.kind){if(null===t)return;if("object"!=typeof t||Array.isArray(t))throw Error("cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(ec(t)));let s=e[a];for(let[e,a]of Object.entries(t)){let o;if(null===a)throw Error("cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: map value null"));try{o=function(e,t){if(e===cR.BOOL)switch(t){case"true":t=!0;break;case"false":t=!1}return ed(e,t,cI.BIGINT,!0).toString()}(n.K,e)}catch(i){let e="cannot decode map key for field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(ec(t));throw i instanceof Error&&i.message.length>0&&(e+=": ".concat(i.message)),Error(e)}switch(n.V.kind){case"message":s[o]=n.V.T.fromJson(a,i);break;case"enum":let c=eu(n.V.T,a,i.ignoreUnknownFields,!0);c!==eo&&(s[o]=c);break;case"scalar":try{s[o]=ed(n.V.T,a,cI.BIGINT,!0)}catch(i){let e="cannot decode map value for field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(ec(t));throw i instanceof Error&&i.message.length>0&&(e+=": ".concat(i.message)),Error(e)}}}}else switch(n.oneof&&(e=e[n.oneof.localName]={case:a},a="value"),n.kind){case"message":let s=n.T;if(null===t&&"google.protobuf.Value"!=s.typeName)return;let o=e[a];en(o)?o.fromJson(t,i):(e[a]=o=s.fromJson(t,i),s.fieldWrapper&&!n.oneof&&(e[a]=s.fieldWrapper.unwrapField(o)));break;case"enum":let c=eu(n.T,t,i.ignoreUnknownFields,!1);switch(c){case es:et(n,e);break;case eo:break;default:e[a]=c}break;case"scalar":try{let i=ed(n.T,t,n.L,!1);i===es?et(n,e):e[a]=i}catch(i){let e="cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(ec(t));throw i instanceof Error&&i.message.length>0&&(e+=": ".concat(i.message)),Error(e)}}}function ed(e,t,n,i){if(null===t)return i?z(e,n):es;switch(e){case cR.DOUBLE:case cR.FLOAT:if("NaN"===t)return NaN;if("Infinity"===t)return 1/0;if("-Infinity"===t)return-1/0;if(""===t||"string"==typeof t&&t.trim().length!==t.length||"string"!=typeof t&&"number"!=typeof t)break;let r=Number(t);if(Number.isNaN(r)||!Number.isFinite(r))break;return e==cR.FLOAT&&R(r),r;
2case cR.INT32:case cR.FIXED32:case cR.SFIXED32:case cR.SINT32:case cR.UINT32:let a;if("number"==typeof t?a=t:"string"==typeof t&&t.length>0&&t.trim().length===t.length&&(a=Number(t)),void 0===a)break;return e==cR.UINT32||e==cR.FIXED32?P(a):E(a),a;case cR.INT64:case cR.SFIXED64:case cR.SINT64:if("number"!=typeof t&&"string"!=typeof t)break;let s=V.parse(t);return n?s.toString():s;case cR.FIXED64:case cR.UINT64:if("number"!=typeof t&&"string"!=typeof t)break;let o=V.uParse(t);return n?o.toString():o;case cR.BOOL:if("boolean"!=typeof t)break;return t;case cR.STRING:if("string"!=typeof t)break;try{encodeURIComponent(t)}catch(e){throw Error("invalid UTF8")}return t;case cR.BYTES:if(""===t)return new Uint8Array(0);if("string"!=typeof t)break;return Q.dec(t)}throw Error()}function eu(e,t,n,i){if(null===t)return"google.protobuf.NullValue"==e.typeName?0:i?e.values[0].no:es;switch(typeof t){case"number":if(Number.isInteger(t))return t;break;case"string":let r=e.findName(t);if(void 0!==r)return r.no;if(n)return eo}throw Error("cannot decode enum ".concat(e.typeName," from JSON: ").concat(ec(t)))}function eh(e,t,n){if("map"==e.kind){w("object"==typeof t&&null!=t);let i={},r=Object.entries(t);switch(e.V.kind){case"scalar":for(let[t,n]of r)i[t.toString()]=em(e.V.T,n);break;case"message":for(let[e,t]of r)i[e.toString()]=t.toJson(n);break;case"enum":let a=e.V.T;for(let[e,t]of r)i[e.toString()]=ep(a,t,n.enumAsInteger)}return n.emitDefaultValues||r.length>0?i:void 0}if(e.repeated){w(Array.isArray(t));let i=[];switch(e.kind){case"scalar":for(let n=0;n<t.length;n++)i.push(em(e.T,t[n]));break;case"enum":for(let r=0;r<t.length;r++)i.push(ep(e.T,t[r],n.enumAsInteger));break;case"message":for(let e=0;e<t.length;e++)i.push(t[e].toJson(n))}return n.emitDefaultValues||i.length>0?i:void 0}switch(e.kind){case"scalar":return em(e.T,t);case"enum":return ep(e.T,t,n.enumAsInteger);case"message":return ei(e.T,t).toJson(n)}}function ep(e,t,n){var i;if(w("number"==typeof t),"google.protobuf.NullValue"==e.typeName)return null;if(n)return t;let r=e.findNumber(t);return null!=(i=null==r?void 0:r.name)?i:t}function em(e,t){switch(e){case cR.INT32:case cR.SFIXED32:case cR.SINT32:case cR.FIXED32:case cR.UINT32:return w("number"==typeof t),t;case cR.FLOAT:case cR.DOUBLE:if(w("number"==typeof t),Number.isNaN(t))return"NaN";if(t===1/0)return"Infinity";if(t===-1/0)return"-Infinity";return t;case cR.STRING:return w("string"==typeof t),t;case cR.BOOL:return w("boolean"==typeof t),t;case cR.UINT64:case cR.FIXED64:case cR.INT64:case cR.SFIXED64:case cR.SINT64:return w("bigint"==typeof t||"string"==typeof t||"number"==typeof t),t.toString();case cR.BYTES:return w(t instanceof Uint8Array),Q.enc(t)}}let ef=Symbol("@bufbuild/protobuf/unknown-fields"),eg={readUnknownFields:!0,readerFactory:e=>new J(e)},ev={writeUnknownFields:!0,writerFactory:()=>new G};function eb(e,t,n,i,r){let{repeated:a,localName:s}=n;switch(n.oneof&&((e=e[n.oneof.localName]).case!=s&&delete e.value,e.case=s,s="value"),n.kind){case"scalar":case"enum":let o="enum"==n.kind?cR.INT32:n.T,c=eT;if("scalar"==n.kind&&n.L>0&&(c=ek),a){let n=e[s];if(i==c_.LengthDelimited&&o!=cR.STRING&&o!=cR.BYTES){let e=t.uint32()+t.pos;for(;t.pos<e;)n.push(c(t,o))}else n.push(c(t,o))}else e[s]=c(t,o);break;case"message":let l=n.T;a?e[s].push(ey(t,new l,r,n)):en(e[s])?ey(t,e[s],r,n):(e[s]=ey(t,new l,r,n),!l.fieldWrapper||n.oneof||n.repeated||(e[s]=l.fieldWrapper.unwrapField(e[s])));break;case"map":let[d,u]=function(e,t,n){let i,r,a=t.uint32(),s=t.pos+a;for(;t.pos<s;){let[a]=t.tag();switch(a){case 1:i=eT(t,e.K);break;case 2:switch(e.V.kind){case"scalar":r=eT(t,e.V.T);break;case"enum":r=t.int32();break;case"message":r=ey(t,new e.V.T,n,void 0)}}}if(void 0===i&&(i=z(e.K,cI.BIGINT)),"string"!=typeof i&&"number"!=typeof i&&(i=i.toString()),void 0===r)switch(e.V.kind){case"scalar":r=z(e.V.T,cI.BIGINT);break;case"enum":r=e.V.T.values[0].no;break;case"message":r=new e.V.T}return[i,r]}(n,t,r);e[s][d]=u}}function ey(e,t,n,i){let r=t.getType().runtime.bin,a=null==i?void 0:i.delimited;return r.readMessage(t,e,a?i.no:e.uint32(),n,a),t}function ek(e,t){let n=eT(e,t);return"bigint"==typeof n?n.toString():n}function eT(e,t){switch(t){case cR.STRING:return e.string();case cR.BOOL:return e.bool();case cR.DOUBLE:return e.double();case cR.FLOAT:return e.float();case cR.INT32:return e.int32();case cR.INT64:return e.int64();case cR.UINT64:return e.uint64();case cR.FIXED64:return e.fixed64();case cR.BYTES:return e.bytes();case cR.FIXED32:return e.fixed32();case cR.SFIXED32:return e.sfixed32();case cR.SFIXED64:return e.sfixed64();case cR.SINT64:return e.sint64();case cR.UINT32:return e.uint32();case cR.SINT32:return e.sint32()}}function eS(e,t,n,i){w(void 0!==t);let r=e.repeated;switch(e.kind){case"scalar":case"enum":let a="enum"==e.kind?cR.INT32:e.T;if(r)if(w(Array.isArray(t)),e.packed)!function(e,t,n,i){if(!i.length)return;e.tag(n,c_.LengthDelimited).fork();let[,r]=eE(t);for(let t=0;t<i.length;t++)e[r](i[t]);e.join()}(n,a,e.no,t);else for(let i of t)ew(n,a,e.no,i);else ew(n,a,e.no,t);break;case"message":if(r)for(let r of(w(Array.isArray(t)),t))eC(n,i,e,r);else eC(n,i,e,t);break;case"map":for(let[r,a]of(w("object"==typeof t&&null!=t),Object.entries(t)))!function(e,t,n,i,r){e.tag(n.no,c_.LengthDelimited),e.fork();let a=i;switch(n.K){case cR.INT32:case cR.FIXED32:case cR.UINT32:case cR.SFIXED32:case cR.SINT32:a=Number.parseInt(i);break;case cR.BOOL:w("true"==i||"false"==i),a="true"==i}switch(ew(e,n.K,1,a),n.V.kind){case"scalar":ew(e,n.V.T,2,r);break;case"enum":ew(e,cR.INT32,2,r);break;case"message":w(void 0!==r),e.tag(2,c_.LengthDelimited).bytes(r.toBinary(t))}e.join()}(n,i,e,r,a)}}function eC(e,t,n,i){let r=ei(n.T,i);n.delimited?e.tag(n.no,c_.StartGroup).raw(r.toBinary(t)).tag(n.no,c_.EndGroup):e.tag(n.no,c_.LengthDelimited).bytes(r.toBinary(t))}function ew(e,t,n,i){w(void 0!==i);let[r,a]=eE(t);e.tag(n,r)[a](i)}function eE(e){let t=c_.Varint;switch(e){case cR.BYTES:case cR.STRING:t=c_.LengthDelimited;break;case cR.DOUBLE:case cR.FIXED64:case cR.SFIXED64:t=c_.Bit64;break;case cR.FIXED32:case cR.SFIXED32:case cR.FLOAT:t=c_.Bit32}return[t,cR[e].toLowerCase()]}function eP(e){if(void 0===e)return e;if(en(e))return e.clone();if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t}return e}function eR(e){return e instanceof Uint8Array?e:new Uint8Array(e)}class eI{constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){let e={};for(let t of this.list())e[t.jsonName]=e[t.name]=t;this.jsonNames=e}return this.jsonNames[e]}find(e){if(!this.numbers){let e={};for(let t of this.list())e[t.no]=t;this.numbers=e}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,t)=>
2e.no-t.no)),this.numbersAsc}byMember(){if(!this.members){let e;this.members=[];let t=this.members;for(let n of this.list())n.oneof?n.oneof!==e&&(e=n.oneof,t.push(e)):t.push(n)}return this.members}}function e_(e,t){let n=eO(e);return t?n:eN(eA(n))}let ex=eO;function eO(e){let t=!1,n=[];for(let i=0;i<e.length;i++){let r=e.charAt(i);switch(r){case"_":t=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(r),t=!1;break;default:t&&(t=!1,r=r.toUpperCase()),n.push(r)}}return n.join("")}let eM=new Set(["constructor","toString","toJSON","valueOf"]),eD=new Set(["getType","clone","equals","fromBinary","fromJson","fromJsonString","toBinary","toJson","toJsonString","toObject"]),eA=e=>{if(eD.has(e))return"".concat(e,"$");return e},eN=e=>{if(eM.has(e))return"".concat(e,"$");return e};class eL{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=function(e){return e_(e,!1)}(e)}addField(e){w(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 e=0;e<this.fields.length;e++)this._lookup[this.fields[e].localName]=this.fields[e]}return this._lookup[e]}}let eU=(oG=e=>new eI(e,e=>(function(e){var t,n,i,r,a,s;let o,c=[];for(let l of"function"==typeof e?e():e){if(l.localName=e_(l.name,void 0!==l.oneof),l.jsonName=null!=(t=l.jsonName)?t:ex(l.name),l.repeated=null!=(n=l.repeated)&&n,"scalar"==l.kind&&(l.L=null!=(i=l.L)?i:cI.BIGINT),l.delimited=null!=(r=l.delimited)&&r,l.req=null!=(a=l.req)&&a,l.opt=null!=(s=l.opt)&&s,void 0===l.packed&&(l.packed="enum"==l.kind||"scalar"==l.kind&&l.T!=cR.BYTES&&l.T!=cR.STRING),void 0!==l.oneof){let e="string"==typeof l.oneof?l.oneof:l.oneof.name;o&&o.name==e||(o=new eL(e)),l.oneof=o,o.addField(l)}c.push(l)}return c})(e)),oJ=e=>{for(let t of e.getType().fields.byMember()){if(t.opt)continue;let n=t.localName;if(t.repeated){e[n]=[];continue}switch(t.kind){case"oneof":e[n]={case:void 0};break;case"enum":e[n]=0;break;case"map":e[n]={};break;case"scalar":e[n]=z(t.T,t.L)}}},{syntax:"proto3",json:{makeReadOptions:function(e){return e?Object.assign(Object.assign({},er),e):er},makeWriteOptions:function(e){return e?Object.assign(Object.assign({},ea),e):ea},readMessage(e,t,n,i){if(null==t||Array.isArray(t)||"object"!=typeof t)throw Error("cannot decode message ".concat(e.typeName," from JSON: ").concat(ec(t)));i=null!=i?i:new e;let r=new Map,a=n.typeRegistry;for(let[s,o]of Object.entries(t)){let t=e.fields.findJsonName(s);if(t){if(t.oneof){if(null===o&&"scalar"==t.kind)continue;let n=r.get(t.oneof);if(void 0!==n)throw Error("cannot decode message ".concat(e.typeName,' from JSON: multiple keys for oneof "').concat(t.oneof.name,'" present: "').concat(n,'", "').concat(s,'"'));r.set(t.oneof,s)}el(i,o,t,n,e)}else{let t=!1;if((null==a?void 0:a.findExtension)&&s.startsWith("[")&&s.endsWith("]")){let r=a.findExtension(s.substring(1,s.length-1));if(r&&r.extendee.typeName==e.typeName){t=!0;let[e,a]=K(r);el(e,o,r.field,n,r),function(e,t,n,i){Z(t,e);let r=t.runtime.bin.makeReadOptions(i),a=t.runtime.bin.makeWriteOptions(i);if(X(e,t)){let n=e.getType().runtime.bin.listUnknownFields(e).filter(e=>e.no!=t.field.no);for(let t of(e.getType().runtime.bin.discardUnknownFields(e),n))e.getType().runtime.bin.onUnknownField(e,t.no,t.wireType,t.data)}let s=a.writerFactory(),o=t.field;o.opt||o.repeated||"enum"!=o.kind&&"scalar"!=o.kind||(o=Object.assign(Object.assign({},t.field),{opt:!0})),t.runtime.bin.writeField(o,n,s,a);let c=r.readerFactory(s.finish());for(;c.pos<c.len;){let[t,n]=c.tag(),i=c.skip(n,t);e.getType().runtime.bin.onUnknownField(e,t,n,i)}}(i,r,a(),n)}}if(!t&&!n.ignoreUnknownFields)throw Error("cannot decode message ".concat(e.typeName,' from JSON: key "').concat(s,'" is unknown'))}}return i},writeMessage(e,t){let n,i=e.getType(),r={};try{for(n of i.fields.byNumber()){if(!ee(n,e)){var a;if(n.req)throw"required field not set";if(!t.emitDefaultValues||!((a=n).repeated||"map"==a.kind||!a.oneof&&"message"!=a.kind&&!a.opt&&!
2a.req))continue}let i=n.oneof?e[n.oneof.localName].value:e[n.localName],s=eh(n,i,t);void 0!==s&&(r[t.useProtoFieldName?n.name:n.jsonName]=s)}let s=t.typeRegistry;if(null==s?void 0:s.findExtensionFor)for(let n of i.runtime.bin.listUnknownFields(e)){let a=s.findExtensionFor(i.typeName,n.no);if(a&&X(e,a)){let n=function(e,t,n){Z(t,e);let i=t.runtime.bin.makeReadOptions(n),r=function(e,t){if(!t.repeated&&("enum"==t.kind||"scalar"==t.kind)){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.no)return[e[n]];return[]}return e.filter(e=>e.no===t.no)}(e.getType().runtime.bin.listUnknownFields(e),t.field),[a,s]=K(t);for(let e of r)t.runtime.bin.readField(a,i.readerFactory(e.data),t.field,e.wireType,i);return s()}(e,a,t),i=eh(a.field,n,t);void 0!==i&&(r[a.field.jsonName]=i)}}}catch(r){let e=n?"cannot encode field ".concat(i.typeName,".").concat(n.name," to JSON"):"cannot encode message ".concat(i.typeName," to JSON"),t=r instanceof Error?r.message:String(r);throw Error(e+(t.length>0?": ".concat(t):""))}return r},readScalar:(e,t,n)=>ed(e,t,null!=n?n:cI.BIGINT,!0),writeScalar(e,t,n){if(void 0!==t&&(n||W(e,t)))return em(e,t)},debug:ec},bin:{makeReadOptions:function(e){return e?Object.assign(Object.assign({},eg),e):eg},makeWriteOptions:function(e){return e?Object.assign(Object.assign({},ev),e):ev},listUnknownFields(e){var t;return null!=(t=e[ef])?t:[]},discardUnknownFields(e){delete e[ef]},writeUnknownFields(e,t){let n=e[ef];if(n)for(let e of n)t.tag(e.no,e.wireType).raw(e.data)},onUnknownField(e,t,n,i){Array.isArray(e[ef])||(e[ef]=[]),e[ef].push({no:t,wireType:n,data:i})},readMessage(e,t,n,i,r){let a,s,o=e.getType(),c=r?t.len:t.pos+n;for(;t.pos<c&&([a,s]=t.tag(),!0!==r||s!=c_.EndGroup);){let n=o.fields.find(a);if(!n){let n=t.skip(s,a);i.readUnknownFields&&this.onUnknownField(e,a,s,n);continue}eb(e,t,n,s,i)}if(r&&(s!=c_.EndGroup||a!==n))throw Error("invalid end group tag")},readField:eb,writeMessage(e,t,n){let i=e.getType();for(let r of i.fields.byNumber()){if(!ee(r,e)){if(r.req)throw Error("cannot encode field ".concat(i.typeName,".").concat(r.name," to binary: required field not set"));continue}let a=r.oneof?e[r.oneof.localName].value:e[r.localName];eS(r,a,t,n)}return n.writeUnknownFields&&this.writeUnknownFields(e,t),t},writeField(e,t,n,i){void 0!==t&&eS(e,t,n,i)}},util:Object.assign(Object.assign({},{setEnumType:_,initPartial(e,t){if(void 0!==e)for(let n of t.getType().fields.byMember()){let i=n.localName;if(null!=e[i])switch(n.kind){case"oneof":let r=e[i].case;if(void 0===r)continue;let a=n.findField(r),s=e[i].value;a&&"message"==a.kind&&!en(s,a.T)?s=new a.T(s):a&&"scalar"===a.kind&&a.T===cR.BYTES&&(s=eR(s)),t[i]={case:r,value:s};break;case"scalar":case"enum":let o=e[i];n.T===cR.BYTES&&(o=n.repeated?o.map(eR):eR(o)),t[i]=o;break;case"map":switch(n.V.kind){case"scalar":case"enum":if(n.V.T===cR.BYTES)for(let[n,r]of Object.entries(e[i]))t[i][n]=eR(r);else Object.assign(t[i],e[i]);break;case"message":let c=n.V.T;for(let n of Object.keys(e[i])){let r=e[i][n];c.fieldWrapper||(r=new c(r)),t[i][n]=r}}break;case"message":let l=n.T;if(n.repeated)t[i]=e[i].map(e=>en(e,l)?e:new l(e));else{let n=e[i];l.fieldWrapper?"google.protobuf.BytesValue"===l.typeName?t[i]=eR(n):t[i]=n:t[i]=en(n,l)?n:new l(n)}}}},equals:(e,t,n)=>t===n||!!t&&!!n&&e.fields.byMember().every(e=>{let i=t[e.localName],r=n[e.localName];if(e.repeated){if(i.length!==r.length)return!1;switch(e.kind){case"message":return i.every((t,n)=>e.T.equals(t,r[n]));case"scalar":return i.every((t,n)=>H(e.T,t,r[n]));case"enum":return i.every((e,t)=>H(cR.INT32,e,r[t]))}throw Error("repeated cannot contain ".concat(e.kind))}switch(e.kind){case"message":let a=i,s=r;return e.T.fieldWrapper&&(void 0===a||en(a)||(a=e.T.fieldWrapper.wrapField(a)),void 0===s||en(s)||(s=e.T.fieldWrapper.wrapField(s))),e.T.equals(a,s);case"enum":return H(cR.INT32,i,r);case"scalar":return H(e.T,i,r);case"oneof":if(i.case!==r.case)return!1;let o=e.findField(i.case);if(void 0===o)return!0;switch(o.kind){case"message":return o.T.equals(i.value,r.value);case"enum":return H(cR.INT32,i.value,r.value);case"scalar":return H(o.T,i.value,r.value)}throw Error("oneof cannot contain ".concat(o.kind));case"map":let c=Object.keys(i).concat(Object.keys(r));switch(e.V.kind){case"message":let l=e.V.T;return c.every(e=>l.equals(i[e],r[e]));case"enum":return c.every(e=>H(cR.INT32,i[e],r[e]));case"scalar":let d=e.V.T;return c.every(e=>H(d,i[e],r[e]))}}}),clone(e){let t=e.getType(),n=new t;for(let i of t.fields.byMember()){let t,r=e[i.localName];if(i.repeated)t=r.map(eP);else if("map"==i.kind)for(let[e,a]of(t=n[i.localName],Object.entries(r)))t[e]=eP(a);else t="oneof"==i.kind?i.findField(r.case)?{case:r.case,value:eP(r.value)}:{case:void 0}:eP(r);n[i.localName]=t}for(let i of t.runtime.bin.listUnknownFields(e))t.runtime.bin.onUnknownField(n,i.no,i.wireType,i.data);return n}}),{newFieldList:oG,initFields:oJ}),makeMessageType(e,t,n){var i,r;let a,s;return i=this,Object.setPrototypeOf((s=({[a=null!=(r=null==n?void 0:n.localName)?r:e.substring(e.lastIndexOf(".")+1)]:function(e){i.util.initFields(this),i.util.initPartial(e,this)}})[a]).prototype,new M),Object.assign(s,{runtime:i,typeName:e,fields:i.util.newFieldList(t),fromBinary:(e,t)=>new s().fromBinary(e,t),fromJson:(e,t)=>new s().fromJson(e,t),fromJsonString:(e,t)=>
2new s().fromJsonString(e,t),equals:(e,t)=>i.util.equals(s,e,t)}),s},makeEnum:function(e,t,n){let i={};for(let e of t){let t=O(e);i[t.localName]=t.no,i[t.no]=t.localName}return _(i,e,t),i},makeEnumType:x,getEnumType:function(e){let t=e[I];return w(t,"missing enum type on enum object"),t},makeExtension(e,t,n){var i;let r;return i=this,{typeName:e,extendee:t,get field(){if(!r){let t="function"==typeof n?n():n;t.name=e.split(".").pop(),t.jsonName="[".concat(e,"]"),r=i.util.newFieldList([t]).list()[0]}return r},runtime:i}}});class ej extends M{constructor(e){super(),this.seconds=V.zero,this.nanos=0,eU.util.initPartial(e,this)}fromJson(e,t){if("string"!=typeof e)throw Error("cannot decode google.protobuf.Timestamp from JSON: ".concat(eU.json.debug(e)));let n=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(!n)throw Error("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");let i=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(i))throw 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 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=V.parse(i/1e3),this.nanos=0,n[7]&&(this.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9),this}toJson(e){let t=1e3*Number(this.seconds);if(t<Date.parse("0001-01-01T00:00:00Z")||t>Date.parse("9999-12-31T23:59:59Z"))throw 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 Error("cannot encode google.protobuf.Timestamp to JSON: nanos must not be negative");let n="Z";if(this.nanos>0){let e=(this.nanos+1e9).toString().substring(1);n="000000"===e.substring(3)?"."+e.substring(0,3)+"Z":"000"===e.substring(6)?"."+e.substring(0,6)+"Z":"."+e+"Z"}return new Date(t).toISOString().replace(".000Z",n)}toDate(){return new Date(1e3*Number(this.seconds)+Math.ceil(this.nanos/1e6))}static now(){return ej.fromDate(new Date)}static fromDate(e){let t=e.getTime();return new ej({seconds:V.parse(Math.floor(t/1e3)),nanos:t%1e3*1e6})}static fromBinary(e,t){return new ej().fromBinary(e,t)}static fromJson(e,t){return new ej().fromJson(e,t)}static fromJsonString(e,t){return new ej().fromJsonString(e,t)}static equals(e,t){return eU.util.equals(ej,e,t)}}ej.runtime=eU,ej.typeName="google.protobuf.Timestamp",ej.fields=eU.util.newFieldList(()=>[{no:1,name:"seconds",kind:"scalar",T:3},{no:2,name:"nanos",kind:"scalar",T:5}]);let eF=eU.makeMessageType("livekit.MetricsBatch",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:ej},{no:3,name:"str_data",kind:"scalar",T:9,repeated:!0},{no:4,name:"time_series",kind:"message",T:eB,repeated:!0},{no:5,name:"events",kind:"message",T:eV,repeated:!0}]),eB=eU.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:eq,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),eq=eU.makeMessageType("livekit.MetricSample",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:ej},{no:3,name:"value",kind:"scalar",T:2}]),eV=eU.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:ej},{no:7,name:"normalized_end_timestamp",kind:"message",T:ej,opt:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"rid",kind:"scalar",T:13}]),eH=eU.makeEnum("livekit.AudioCodec",[{no:0,name:"DEFAULT_AC"},{no:1,name:"OPUS"},{no:2,name:"AAC"},{no:3,name:"AC_MP3"}]),ez=eU.makeEnum("livekit.VideoCodec",[{no:0,name:"DEFAULT_VC"},{no:1,name:"H264_BASELINE"},{no:2,name:"H264_MAIN"},{no:3,name:"H264_HIGH"},{no:4,name:"VP8"}]),eW=eU.makeEnum("livekit.ImageCodec",[{no:0,name:"IC_DEFAULT"},{no:1,name:"IC_JPEG"}]),eG=eU.makeEnum("livekit.BackupCodecPolicy",[{no:0,name:"PREFER_REGRESSION"},{no:1,name:"SIMULCAST"},{no:2,name:"REGRESSION"}]),eJ=eU.makeEnum("livekit.TrackType",[{no:0,name:"AUDIO"},{no:1,name:"VIDEO"},{no:2,name:"DATA"}]),eK=eU.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"}]),e$=eU.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),eY=eU.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),eQ=eU.makeEnum("livekit.ClientConfigSetting",[{no:0,name:"UNSET"},{no:1,name:"DISABLED"},{no:2,name:"ENABLED"}]),eX=eU.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"},{no:14,name:"CONNECTION_TIMEOUT"},{no:15,name:"MEDIA_FAILURE"},{no:16,name:"AGENT_ERROR"}]),eZ=eU.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"}]),e0=eU.makeEnum("livekit.SubscriptionError",[{no:0,name:"SE_UNKNOWN"},{no:1,name:"SE_CODEC_UNSUPPORTED"},{no:2,name:"SE_TRACK_NOTFOUND"}]),e1=eU.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"},{no:6,name:"TF_PRECONNECT_BUFFER"}]),e2=eU.makeEnum("livekit.PacketTrailerFeature",[{no:0,name:"PTF_USER_TIMESTAMP"},{no:1,name:"PTF_FRAME_ID"}]),e5=eU.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:e3,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:tx}]),e3=eU.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),e4=eU.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:eU.getEnumType(eK),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},{no:13,name:"can_manage_agent_session",kind:"scalar",T:8}]),e6=eU.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:eU.getEnumType(e9)},{no:4,name:"tracks",kind:"message",T:tn,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:e4},{no:12,name:"region",kind:"scalar",T:9},{no:13,name:"is_publisher",kind:"scalar",T:8},{no:14,name:"kind",kind:"enum",T:eU.getEnumType(e8)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:eU.getEnumType(eX)},{no:18,name:"kind_details",kind:"enum",T:eU.getEnumType(e7),repeated:!0},{no:19,name:"data_tracks",kind:"message",T:ti,repeated:!0},{no:20,name:"client_protocol",kind:"scalar",T:5}]),e9=eU.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),e8=eU.makeEnum("livekit.ParticipantInfo.Kind",[{no:0,name:"STANDARD"},{no:1,name:"INGRESS"},{no:2,name:"EGRESS"},{no:3,name:"SIP"},{no:4,name:"AGENT"},{no:7,name:"CONNECTOR"},{no:8,name:"BRIDGE"}]),e7=eU.makeEnum("livekit.ParticipantInfo.KindDetail",[{no:0,name:"CLOUD_AGENT"},{no:1,name:"FORWARDED"},{no:2,name:"CONNECTOR_WHATSAPP"},{no:3,name:"CONNECTOR_TWILIO"},{no:4,name:"BRIDGE_RTSP"}]),te=eU.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),tt=eU.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:ta,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:eU.getEnumType(ts)},{no:6,name:"sdp_cid",kind:"scalar",T:9}]),tn=eU.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:eU.getEnumType(eJ)},{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:eU.getEnumType(eK)},{no:10,name:"layers",kind:"message",T:ta,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:tt,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:eU.getEnumType(te)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:tx},{no:19,name:"audio_features",kind:"enum",T:eU.getEnumType(e1),repeated:!0},{no:20,name:"backup_codec_policy",kind:"enum",T:eU.getEnumType(eG)},{no:21,name:"packet_trailer_features",kind:"enum",T:eU.getEnumType(e2),repeated:!0}]),ti=eU.makeMessageType("livekit.DataTrackInfo",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13},{no:2,name:"sid",kind:"scalar",T:9},{no:3,name:"name",kind:"scalar",T:9},{no:4,name:"encryption",kind:"enum",T:eU.getEnumType(te)}]),tr=eU.makeMessageType("livekit.DataTrackSubscriptionOptions",()=>[{no:1,name:"target_fps",kind:"scalar",T:13,opt:!0}]),ta=eU.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:eU.getEnumType(e$)},{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},{no:6,name:"spatial_layer",kind:"scalar",T:5},{no:7,name:"rid",kind:"scalar",T:9},{no:8,name:"repair_ssrc",kind:"scalar",T:13}]),ts=eU.makeEnum("livekit.VideoLayer.Mode",[{no:0,name:"MODE_UNUSED"},{no:1,name:"ONE_SPATIAL_LAYER_PER_STREAM"},{no:2,name:"MULTIPLE_SPATIAL_LAYERS_PER_STREAM"},{no:3,name:"ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR"}]),to=eU.makeMessageType("livekit.DataPacket",()=>[{no:1,name:"kind",kind:"enum",T:eU.getEnumType(tc)},{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:tp,oneof:"value"},{no:3,name:"speaker",kind:"message",T:tu,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:tm,oneof:"value"},{no:7,name:"transcription",kind:"message",T:tf,oneof:"value"},{no:8,name:"metrics",kind:"message",T:eF,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:tv,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:tb,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:ty,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:tk,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:tA,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:tN,oneof:"value"},{no:15,name:"stream_trailer",kind:"message",T:tL,oneof:"value"},{no:18,name:"encrypted_packet",kind:"message",T:tl,oneof:"value"},{no:16,name:"sequence",kind:"scalar",T:13},{no:17,name:"participant_sid",kind:"scalar",T:9}]),tc=eU.makeEnum("livekit.DataPacket.Kind",[{no:0,name:"RELIABLE"},{no:1,name:"LOSSY"}]),tl=eU.makeMessageType("livekit.EncryptedPacket",()=>[{no:1,name:"encryption_type",kind:"enum",T:eU.getEnumType(te)},{no:2,name:"iv",kind:"scalar",T:12},{no:3,name:"key_index",kind:"scalar",T:13},{no:4,name:"encrypted_value",kind:"scalar",T:12}]),td=eU.makeMessageType("livekit.EncryptedPacketPayload",()=>[{no:1,name:"user",kind:"message",T:tp,oneof:"value"},{no:3,name:"chat_message",kind:"message",T:tv,oneof:"value"},{no:4,name:"rpc_request",kind:"message",T:tb,oneof:"value"},{no:5,name:"rpc_ack",kind:"message",T:ty,oneof:"value"},{no:6,name:"rpc_response",kind:"message",T:tk,oneof:"value"},{no:7,name:"stream_header",kind:"message",T:tA,oneof:"value"},{no:8,name:"stream_chunk",kind:"message",T:tN,oneof:"value"},{no:9,name:"stream_trailer",kind:"message",T:tL,oneof:"value"}]),tu=eU.makeMessageType("livekit.ActiveSpeakerUpdate",()=>[{no:1,name:"speakers",kind:"message",T:th,repeated:!0}]),th=eU.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}]),tp=eU.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}]),tm=eU.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),tf=eU.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:tg,repeated:!0}]),tg=eU.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}]),tv=eU.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}]),tb=eU.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},{no:6,name:"compressed_payload",kind:"scalar",T:12}]),ty=eU.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),tk=eU.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:tT,oneof:"value"},{no:4,name:"compressed_payload",kind:"scalar",T:12,oneof:"value"}]),tT=eU.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}]),tS=eU.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_s
2id",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),tC=eU.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:eU.getEnumType(tw)},{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}]),tw=eU.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),tE=eU.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:eU.getEnumType(tP)},{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},{no:12,name:"client_protocol",kind:"scalar",T:5}]),tP=eU.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"},{no:13,name:"UNREAL"},{no:14,name:"ESP32"}]),tR=eU.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:tI},{no:2,name:"screen",kind:"message",T:tI},{no:3,name:"resume_connection",kind:"enum",T:eU.getEnumType(eQ)},{no:4,name:"disabled_codecs",kind:"message",T:t_},{no:5,name:"force_relay",kind:"enum",T:eU.getEnumType(eQ)}]),tI=eU.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:eU.getEnumType(eQ)}]),t_=eU.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:e3,repeated:!0},{no:2,name:"publish",kind:"message",T:e3,repeated:!0}]),tx=eU.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),tO=eU.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),tM=eU.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:eU.getEnumType(tO)},{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"}),tD=eU.makeMessageType("livekit.DataStream.ByteHeader",()=>[{no:1,name:"name",kind:"scalar",T:9}],{localName:"DataStream_ByteHeader"}),tA=eU.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:eU.getEnumType(te)},{no:8,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:9,name:"text_header",kind:"message",T:tM,oneof:"content_header"},{no:10,name:"byte_header",kind:"message",T:tD,oneof:"content_header"}],{localName:"DataStream_Header"}),tN=eU.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"}),tL=eU.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"}),tU=eU.makeMessageType("livekit.FilterParams",()=>[{no:1,name:"include_events",kind:"scalar",T:9,repeated:!0},{no:2,name:"exclude_events",kind:"scalar",T:9,repeated:!0}]),tj=eU.makeMessageType("livekit.WebhookConfig",()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"signing_key",kind:"scalar",T:9},{no:3,name:"filter_params",kind:"message",T:tU}]),tF=eU.makeMessageType("livekit.SubscribedAudioCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"enabled",kind:"scalar",T:8}]),tB=eU.makeEnum("livekit.JobRestartPolicy",[{no:0,name:"JRP_ON_FAILURE"},{no:1,name:"JRP_NEVER"}]),tq=eU.makeMessageType("livekit.RoomAgentDispatch",()=>[{no:1,name:"agent_name",kind:"scalar",T:9},{no:2,name:"metadata",kind:"scalar",T:9},{no:3,name:"restart_policy",kind:"enum",T:eU.getEnumType(tB)}]),tV=eU.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),tH=eU.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),tz=eU.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),tW=eU.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:t9,oneof:"message"},{no:2,name:"answer",kind:"message",T:t9,oneof:"message"},{no:3,name:"trickle",kind:"message",T:t1,oneof:"message"},{no:4,name:"add_track",kind:"message",T:tK,oneof:"message"},{no:5,name:"mute",kind:"message",T:t2,oneof:"message"},{no:6,name:"subscription",kind:"message",T:t7,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:nn,oneof:"message"},{no:8,name:"leave",kind:"message",T:na,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:no,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:nT,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:nw,oneof:"message"},{no:13,name:"simulate",kind:"message",T:nR,oneof:"message"},{no:14,name:"ping",kind:"scalar",T:3,oneof:"message"},{no:15,name:"update_metadata",kind:"message",T:nc,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:nI,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:ni,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:nr,oneof:"message"},{no:19,name:"publish_data_track_request",kind:"message",T:t$,oneof:"message"},{no:20,name:"unpublish_data_track_request",kind:"message",T:tQ,oneof:"message"},{no:21,name:"update_data_subscription",kind:"message",T:ne,oneof:"message"}]),tG=eU.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:t5,oneof:"message"},{no:2,name:"answer",kind:"message",T:t9,oneof:"message"},{no:3,name:"offer",kind:"message",T:t9,oneof:"message"},{no:4,name:"trickle",kind:"message",T:t1,oneof:"message"},{no:5,name:"update",kind:"message",T:t8,oneof:"message"},{no:6,name:"track_published",kind:"message",T:t4,oneof:"message"},{no:8,name:"leave",kind:"message",T:na,oneof:"message"},{no:9,name:"mute",kind:"message",T:t2,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:nd,oneof:"message"},{no:11,name:"room_update",kind:"message",T:nu,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:np,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:nf,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:nb,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:nS,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:t6,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:t3,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:n_,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:nM,oneof:"message"},{no:22,name:"request_response",kind:"message",T:nD,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:nN,oneof:"message"},{no:24,name:"room_moved",kind:"message",T:nC,oneof:"message"},{no:25,name:"media_sections_requirement",kind:"message",T:nB,oneof:"message"},{no:26,name:"subscribed_audio_codec_update",kind:"message",T:ny,oneof:"message"},{no:27,name:"publish_data_track_response",kind:"message",T:tY,oneof:"message"},{no:28,name:"unpublish_data_track_response",kind:"message",T:tX,oneof:"message"},{no:29,name:"data_track_subscriber_handles",kind:"message",T:tZ,oneof:"message"}]),tJ=eU.makeMessageType("livekit.SimulcastCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"cid",kind:"scalar",T:9},{no:4,name:"layers",kind:"message",T:ta,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:eU.getEnumType(ts)}]),tK=eU.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:eU.getEnumType(eJ)},{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:eU.getEnumType(eK)},{no:9,name:"layers",kind:"message",T:ta,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:tJ,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:eU.getEnumType(te)},{no:15,name:"stream",kind:"scalar",T:9},{no:16,name:"backup_codec_policy",kind:"enum",T:eU.getEnumType(eG)},{no:17,name:"audio_features",kind:"enum",T:eU.getEnumType(e1),repeated:!0},{no:18,name:"packet_trailer_features",kind:"enum",T:eU.getEnumType(e2),repeated:!0}]),t$=eU.makeMessageType("livekit.PublishDataTrackRequest",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"encryption",kind:"enum",T:eU.getEnumType(te)}]),tY=eU.makeMessageType("livekit.PublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:ti}]),tQ=eU.makeMessageType("livekit.UnpublishDataTrackRequest",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13}]),tX=eU.makeMessageType("livekit.UnpublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:ti}]),tZ=eU.makeMessageType("livekit.DataTrackSubscriberHandles",()=>[{no:1,name:"sub_handles",kind:"map",K:13,V:{kind:"message",T:t0}}]),t0=eU.makeMessageType("livekit.DataTrackSubscriberHandles.PublishedDataTrack",()=>[{no:1,name:"publisher_identity",kind:"scalar",T:9},{no:2,name:"publisher_sid",kind:"scalar",T:9},{no:3,name:"track_sid",kind:"scalar",T:9}],{localName:"DataTrackSubscriberHandles_PublishedDataTrack"}),t1=eU.makeMessageType("livekit.TrickleRequest",()=>[{no:1,name:"candidateInit",kind:"scalar",T:9},{no:2,name:"target",kind:"enum",T:eU.getEnumType(tV)},{no:3,name:"final",kind:"scalar",T:8}]),t2=eU.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),t5=eU.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:e5},{no:2,name:"participant",kind:"message",T:e6},{no:3,name:"other_participants",kind:"message",T:e6,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:nl,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:tR},{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:tC},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:e3,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),t3=eU.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:nl,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:tR},{no:3,name:"server_info",kind:"message",T:tC},{no:4,name:"last_message_seq",kind:"scalar",T:13}]),t4=eU.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:tn}]),t6=eU.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),t9=eU.makeMessageType("livekit.SessionDescription",()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"sdp",kind:"scalar",T:9},{no:3,name:"id",kind:"scalar",T:13},{no:4,name:"mid_to_track_id",kind:"map",K:9,V:{kind:"scalar",T:9}}]),t8=eU.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:e6,repeated:!0}]),t7=eU.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:tS,repeated:!0}]),ne=eU.makeMessageType("livekit.UpdateDataSubscription",()=>[{no:1,name:"updates",kind:"message",T:nt,repeated:!0}]),nt=eU.makeMessageType("livekit.UpdateDataSubscription.Update",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribe",kind:"scalar",T:8},{no:3,name:"options",kind:"message",T:tr}],{localName:"UpdateDataSubscription_Update"}),nn=eU.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:eU.getEnumType(e$)},{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}]),ni=eU.makeMessageType("livekit.UpdateLocalAudioTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"features",kind:"enum",T:eU.getEnumType(e1),repeated:!0}]),nr=eU.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}]),na=eU.makeMessageType("livekit.LeaveRequest",()=>[{no:1,name:"can_reconnect",kind:"scalar",T:8},{no:2,name:"reason",kind:"enum",T:eU.getEnumType(eX)},{no:3,name:"action",kind:"enum",T:eU.getEnumType(ns)},{no:4,name:"regions",kind:"message",T:nx}]),ns=eU.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),no=eU.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:ta,repeated:!0}]),nc=eU.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}]),nl=eU.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}]),nd=eU.makeMessageType("livekit.SpeakersChanged",()=>[{no:1,name:"speakers",kind:"message",T:th,repeated:!0}]),nu=eU.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:e5}]),nh=eU.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:eU.getEnumType(eY)},{no:3,name:"score",kind:"scalar",T:2}]),np=eU.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:nh,repeated:!0}]),nm=eU.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:eU.getEnumType(tH)}]),nf=eU.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:nm,repeated:!0}]),ng=eU.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:eU.getEnumType(e$)},{no:2,name:"enabled",kind:"scalar",T:8}]),nv=eU.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:ng,repeated:!0}]),nb=eU.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:ng,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:nv,repeated:!0}]),ny=eU.makeMessageType("livekit.SubscribedAudioCodecUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_audio_codecs",kind:"message",T:tF,repeated:!0}]),nk=eU.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_iden
2tity",kind:"scalar",T:9}]),nT=eU.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:nk,repeated:!0}]),nS=eU.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}]),nC=eU.makeMessageType("livekit.RoomMovedResponse",()=>[{no:1,name:"room",kind:"message",T:e5},{no:2,name:"token",kind:"scalar",T:9},{no:3,name:"participant",kind:"message",T:e6},{no:4,name:"other_participants",kind:"message",T:e6,repeated:!0}]),nw=eU.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:t9},{no:2,name:"subscription",kind:"message",T:t7},{no:3,name:"publish_tracks",kind:"message",T:t4,repeated:!0},{no:4,name:"data_channels",kind:"message",T:nP,repeated:!0},{no:5,name:"offer",kind:"message",T:t9},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0},{no:7,name:"datachannel_receive_states",kind:"message",T:nE,repeated:!0},{no:8,name:"publish_data_tracks",kind:"message",T:tY,repeated:!0}]),nE=eU.makeMessageType("livekit.DataChannelReceiveState",()=>[{no:1,name:"publisher_sid",kind:"scalar",T:9},{no:2,name:"last_seq",kind:"scalar",T:13}]),nP=eU.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:eU.getEnumType(tV)}]),nR=eU.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:eU.getEnumType(tz),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"}]),nI=eU.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),n_=eU.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),nx=eU.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:nO,repeated:!0}]),nO=eU.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}]),nM=eU.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:eU.getEnumType(e0)}]),nD=eU.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:eU.getEnumType(nA)},{no:3,name:"message",kind:"scalar",T:9},{no:4,name:"trickle",kind:"message",T:t1,oneof:"request"},{no:5,name:"add_track",kind:"message",T:tK,oneof:"request"},{no:6,name:"mute",kind:"message",T:t2,oneof:"request"},{no:7,name:"update_metadata",kind:"message",T:nc,oneof:"request"},{no:8,name:"update_audio_track",kind:"message",T:ni,oneof:"request"},{no:9,name:"update_video_track",kind:"message",T:nr,oneof:"request"},{no:10,name:"publish_data_track",kind:"message",T:t$,oneof:"request"},{no:11,name:"unpublish_data_track",kind:"message",T:tQ,oneof:"request"}]),nA=eU.makeEnum("livekit.RequestResponse.Reason",[{no:0,name:"OK"},{no:1,name:"NOT_FOUND"},{no:2,name:"NOT_ALLOWED"},{no:3,name:"LIMIT_EXCEEDED"},{no:4,name:"QUEUED"},{no:5,name:"UNSUPPORTED_TYPE"},{no:6,name:"UNCLASSIFIED_ERROR"},{no:7,name:"INVALID_HANDLE"},{no:8,name:"INVALID_NAME"},{no:9,name:"DUPLICATE_HANDLE"},{no:10,name:"DUPLICATE_NAME"}]),nN=eU.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),nL=eU.makeMessageType("livekit.ConnectionSettings",()=>[{no:1,name:"auto_subscribe",kind:"scalar",T:8},{no:2,name:"adaptive_stream",kind:"scalar",T:8},{no:3,name:"subscriber_allow_pause",kind:"scalar",T:8,opt:!0},{no:4,name:"disable_ice_lite",kind:"scalar",T:8},{no:5,name:"auto_subscribe_data_track",kind:"scalar",T:8,opt:!0}]),nU=eU.makeMessageType("livekit.JoinRequest",()=>[{no:1,name:"client_info",kind:"message",T:tE},{no:2,name:"connection_settings",kind:"message",T:nL},{no:3,name:"metadata",kind:"scalar",T:9},{no:4,name:"participant_attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"add_track_requests",kind:"message",T:tK,repeated:!0},{no:6,name:"publisher_offer",kind:"message",T:t9},{no:7,name:"reconnect",kind:"scalar",T:8},{no:8,name:"reconnect_reason",kind:"enum",T:eU.getEnumType(eZ)},{no:9,name:"participant_sid",kind:"scalar",T:9},{no:10,name:"sync_state",kind:"message",T:nw}]),nj=eU.makeMessageType("livekit.WrappedJoinRequest",()=>[{no:1,name:"compression",kind:"enum",T:eU.getEnumType(nF)},{no:2,name:"join_request",kind:"scalar",T:12}]),nF=eU.makeEnum("livekit.WrappedJoinRequest.Compression",[{no:0,name:"NONE"},{no:1,name:"GZIP"}]),nB=eU.makeMessageType("livekit.MediaSectionsRequirement",()=>[{no:1,name:"num_audios",kind:"scalar",T:13},{no:2,name:"num_videos",kind:"scalar",T:13}]),nq=eU.makeEnum("livekit.EncodingOptionsPreset",[{no:0,name:"H264_720P_30"},{no:1,name:"H264_720P_60"},{no:2,name:"H264_1080P_30"},{no:3,name:"H264_1080P_60"},{no:4,name:"PORTRAIT_H264_720P_30"},{no:5,name:"PORTRAIT_H264_720P_60"},{no:6,name:"PORTRAIT_H264_1080P_30"},{no:7,name:"PORTRAIT_H264_1080P_60"}]),nV=eU.makeEnum("livekit.EncodedFileType",[{no:0,name:"DEFAULT_FILETYPE"},{no:1,name:"MP4"},{no:2,name:"OGG"},{no:3,name:"MP3"}]),nH=eU.makeEnum("livekit.StreamProtocol",[{no:0,name:"DEFAULT_PROTOCOL"},{no:1,name:"RTMP"},{no:2,name:"SRT"},{no:3,name:"WEBSOCKET"}]),nz=eU.makeEnum("livekit.SegmentedFileProtocol",[{no:0,name:"DEFAULT_SEGMENTED_FILE_PROTOCOL"},{no:1,name:"HLS_PROTOCOL"}]),nW=eU.makeEnum("livekit.SegmentedFileSuffix",[{no:0,name:"INDEX"},{no:1,name:"TIMESTAMP"}]),nG=eU.makeEnum("livekit.ImageFileSuffix",[{no:0,name:"IMAGE_SUFFIX_INDEX"},{no:1,name:"IMAGE_SUFFIX_TIMESTAMP"},{no:2,name:"IMAGE_SUFFIX_NONE_OVERWRITE"}]),nJ=eU.makeEnum("livekit.AudioMixing",[{no:0,name:"DEFAULT_MIXING"},{no:1,name:"DUAL_CHANNEL_AGENT"},{no:2,name:"DUAL_CHANNEL_ALTERNATE"}]),nK=eU.makeMessageType("livekit.EncodingOptions",()=>[{no:1,name:"width",kind:"scalar",T:5},{no:2,name:"height",kind:"scalar",T:5},{no:3,name:"depth",kind:"scalar",T:5},{no:4,name:"framerate",kind:"scalar",T:5},{no:5,name:"audio_codec",kind:"enum",T:eU.getEnumType(eH)},{no:6,name:"audio_bitrate",kind:"scalar",T:5},{no:7,name:"audio_frequency",kind:"scalar",T:5},{no:8,name:"video_codec",kind:"enum",T:eU.getEnumType(ez)},{no:9,name:"video_bitrate",kind:"scalar",T:5},{no:10,name:"key_frame_interval",kind:"scalar",T:1},{no:11,name:"audio_quality",kind:"scalar",T:5},{no:12,name:"video_quality",kind:"scalar",T:5}]),n$=eU.makeMessageType("livekit.StreamOutput",()=>[{no:1,name:"protocol",kind:"enum",T:eU.getEnumType(nH)},{no:2,name:"urls",kind:"scalar",T:9,repeated:!0}]),nY=eU.makeMessageType("livekit.SegmentedFileOutput",()=>[{no:1,name:"protocol",kind:"enum",T:eU.getEnumType(nz)},{no:2,name:"filename_prefix",kind:"scalar",T:9},{no:3,name:"playlist_name",kind:"scalar",T:9},{no:11,name:"live_playlist_name",kind:"scalar",T:9},{no:4,name:"segment_duration",kind:"scalar",T:13},{no:10,name:"filename_suffix",kind:"enum",T:eU.getEnumType(nW)},{no:8,name:"disable_manifest",kind:"scalar",T:8},{no:5,name:"s3",kind:"message",T:nX,oneof:"output"},{no:6,name:"gcp",kind:"message",T:nZ,oneof:"output"},{no:7,name:"azure",kind:"message",T:n0,oneof:"output"},{no:9,name:"aliOSS",kind:"message",T:n1,oneof:"output"}]),nQ=eU.makeMessageType("livekit.ImageOutput",()=>[{no:1,name:"capture_interval",kind:"scalar",T:13},{no:2,name:"width",kind:"scalar",T:5},{no:3,name:"height",kind:"scalar",T:5},{no:4,name:"filename_prefix",kind:"scalar",T:9},{no:5,name:"filename_suffix",kind:"enum",T:eU.getEnumType(nG)},{no:6,name:"image_codec",kind:"enum",T:eU.getEnumType(eW)},{no:7,name:"disable_manifest",kind:"scalar",T:8},{no:8,name:"s3",kind:"message",T:nX,oneof:"output"},{no:9,name:"gcp",kind:"message",T:nZ,oneof:"output"},{no:10,name:"azure",kind:"message",T:n0,oneof:"output"},{no:11,name:"aliOSS",kind:"message",T:n1,oneof:"output"}]),nX=eU.makeMessageType("livekit.S3Upload",()=>[{no:1,name:"access_key",kind:"scalar",T:9},{no:2,name:"secret",kind:"scalar",T:9},{no:11,name:"session_token",kind:"scalar",T:9},{no:12,name:"assume_role_arn",kind:"scalar",T:9},{no:13,name:"assume_role_external_id",kind:"scalar",T:9},{no:3,name:"region",kind:"scalar",T:9},{no:4,name:"endpoint",kind:"scalar",T:9},{no:5,name:"bucket",kind:"scalar",T:9},{no:6,name:"force_path_style",kind:"scalar",T:8},{no:7,name:"metadata",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:8,name:"tagging",kind:"scalar",T:9},{no:9,name:"content_disposition",kind:"scalar",T:9},{no:10,name:"proxy",kind:"message",T:n2}]),nZ=eU.makeMessageType("livekit.GCPUpload",()=>[{no:1,name:"credentials",kind:"scalar",T:9},{no:2,name:"bucket",kind:"scalar",T:9},{no:3,name:"proxy",kind:"message",T:n2}]),n0=eU.makeMessageType("livekit.AzureBlobUpload",()=>[{no:1,name:"account_name",kind:"scalar",T:9},{no:2,name:"account_key",kind:"scalar",T:9},{no:3,name:"container_name",kind:"scalar",T:9}]),n1=eU.makeMessageType("livekit.AliOSSUpload",()=>[{no:1,name:"access_key",kind:"scalar",T:9},{no:2,name:"secret",kind:"scalar",T:9},{no:3,name:"region",kind:"scalar",T:9},{no:4,name:"endpoint",kind:"scalar",T:9},{no:5,name:"bucket",kind:"scalar",T:9}]),n2=eU.makeMessageType("livekit.ProxyConfig",()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"username",kind:"scalar",T:9},{no:3,name:"password",kind:"scalar",T:9}]),n5=eU.makeMessageType("livekit.AutoParticipantEgress",()=>[{no:1,name:"preset",kind:"enum",T:eU.getEnumType(nq),oneof:"options"},{no:2,name:"advanced",kind:"message",T:nK,oneof:"options"},{no:3,name:"file_outputs",kind:"message",T:n6,repeated:!0},{no:4,name:"segment_outputs",kind:"message",T:nY,repeated:!0}]),n3=eU.makeMessageType("livekit.AutoTrackEgress",()=>[{no:1,name:"filepath",kind:"scalar",T:9},{no:5,name:"disable_manifest",kind:"scalar",T:8},{no:2,name:"s3",kind:"message",T:nX,oneof:"output"},{no:3,name:"gcp",kind:"message",T:nZ,oneof:"output"},{no:4,name:"azure",kind:"message",T:n0,oneof:"output"},{no:6,name:"aliOSS",kind:"message",T:n1,oneof:"output"}]),n4=eU.makeMessageType("livekit.RoomCompositeEgressRequest",()=>[{no:1,name:"room_name",kind:"scalar",T:9},{no:2,name:"layout",kind:"scalar",T:9},{no:3,name:"audio_only",kind:"scalar",T:8},{no:15,name:"audio_mixing",kind:"enum",T:eU.getEnumType(nJ)},{no:4,name:"video_only",kind:"scalar",T:8},{no:5,name:"custom_base_url",kind:"scalar",T:9},{no:6,name:"file",kind:"message",T:n6,oneof:"output"},{no:7,name:"stream",kind:"message",T:n$,oneof:"output"},{no:10,name:"segments",kind:"message",T:nY,oneof:"output"},{no:8,name:"preset",kind:"enum",T:eU.getEnumType(nq),oneof:"options"},{no:9,name:"advanced",kind:"message",T:nK,oneof:"options"},{no:11,name:"file_outputs",kind:"message",T:n6,repeated:!0},{no:12,name:"stream_outputs",kind:"message",T:n$,repeated:!0},{no:13,name:"segment_outputs",kind:"message",T:nY,repeated:!0},{no:14,name:"image_outputs",kind:"message",T:nQ,repeated:!0},{no:16,name:"webhooks",kind:"message",T:tj,repeated:!0}]),n6=eU.makeMessageType("livekit.EncodedFileOutput",()=>[{no:1,name:"file_type",kind:"enum",T:eU.getEnumType(nV)},{no:2,name:"filepath",kind:"scalar",T:9},{no:6,name:"disable_manifest",kind:"scalar",T:8},{no:3,name:"s3",kind:"message",T:nX,oneof:"output"},{no:4,name:"gcp",kind:"message",T:nZ,oneof:"output"},{no:5,name:"azure",kind:"message",T:n0,oneof:"output"},{no:7,name:"aliOSS",kind:"message",T:n1,oneof:"output"}]),n9=eU.makeMessageType("livekit.RoomEgress",()=>[{no:1,name:"room",kind:"message",T:n4},{no:3,name:"participant",kind:"message",T:n5},{no:2,name:"tracks",kind:"message",T:n3}]),n8=eU.makeMessageType("livekit.RoomConfiguration",()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"empty_timeout",kind:"scalar",T:13},{no:3,name:"departure_timeout",kind:"scalar",T:13},{no:4,name:"max_participants",kind:"scalar",T:13},{no:11,name:"metadata",kind:"scalar",T:9},{no:5,name:"egress",kind:"message",T:n9},{no:7,name:"min_playout_delay",kind:"scalar",T:13},{no:8,name:"max_playout_delay",kind:"scalar",T:13},{no:9,name:"sync_streams",kind:"scalar",T:8},{no:10,name:"agents",kind:"message",T:tq,repeated:!0},{no:12,name:"tags",kind:"map",K:9,V:{kind:"scalar",T:9}}]);
2var n7={exports:{}},ie=n7.exports,it=function(){var e;return cx?n7.exports:(cx=1,e=function(){var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],r={},a=null;function s(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(){for(var n=this.getLevel(),r=0;r<i.length;r++){var a=i[r];this[a]=r<n?e:this.methodFactory(a,n,this.name)}if(this.log=this.debug,typeof console===t&&n<this.levels.SILENT)return"No console available for logging"}function l(e){return function(){typeof console!==t&&(c.call(this),this[e].apply(this,arguments))}}function d(i,r,a){var c;return"debug"===(c=i)&&(c="log"),typeof console!==t&&("trace"===c&&n?o:void 0!==console[c]?s(console,c):void 0!==console.log?s(console,"log"):e)||l.apply(this,arguments)}function u(e,n){var s,o,l,u=this,h="loglevel";function p(){var e;if(typeof window!==t&&h){try{e=window.localStorage[h]}catch(e){}if(typeof e===t)try{var n=window.document.cookie,i=encodeURIComponent(h),r=n.indexOf(i+"=");-1!==r&&(e=/^([^;]+)/.exec(n.slice(r+i.length+1))[1])}catch(e){}return void 0===u.levels[e]&&(e=void 0),e}}function m(e){var t=e;if("string"==typeof t&&void 0!==u.levels[t.toUpperCase()]&&(t=u.levels[t.toUpperCase()]),"number"==typeof t&&t>=0&&t<=u.levels.SILENT)return t;throw TypeError("log.setLevel() called with invalid level: "+e)}"string"==typeof e?h+=":"+e:"symbol"==typeof e&&(h=void 0),u.name=e,u.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},u.methodFactory=n||d,u.getLevel=function(){return null!=l?l:null!=o?o:s},u.setLevel=function(e,n){return l=m(e),!1!==n&&function(e){var n=(i[e]||"silent").toUpperCase();if(typeof window!==t&&h){try{window.localStorage[h]=n;return}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch(e){}}}(l),c.call(u)},u.setDefaultLevel=function(e){o=m(e),p()||u.setLevel(e,!1)},u.resetLevel=function(){if(l=null,typeof window!==t&&h){try{window.localStorage.removeItem(h)}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}c.call(u)},u.enableAll=function(e){u.setLevel(u.levels.TRACE,e)},u.disableAll=function(e){u.setLevel(u.levels.SILENT,e)},u.rebuild=function(){if(a!==u&&(s=m(a.getLevel())),c.call(u),a===u)for(var e in r)r[e].rebuild()},s=m(a?a.getLevel():"WARN");var f=p();null!=f&&(l=m(f)),c.call(u)}(a=new u).getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw TypeError("You must supply a name when creating a logger.");var t=r[e];return t||(t=r[e]=new u(e,a.methodFactory)),t};var h=typeof window!==t?window.log:void 0;return a.noConflict=function(){return typeof window!==t&&window.log===a&&(window.log=h),a},a.getLoggers=function(){return r},a.default=a,a},n7.exports?n7.exports=e():ie.log=e(),n7.exports)}();(oK=cO||(cO={}))[oK.trace=0]="trace",oK[oK.debug=1]="debug",oK[oK.info=2]="info",oK[oK.warn=3]="warn",oK[oK.error=4]="error",oK[oK.silent=5]="silent",(o$=cM||(cM={})).Default="livekit",o$.Room="livekit-room",o$.TokenSource="livekit-token-source",o$.Participant="livekit-participant",o$.Track="livekit-track",o$.Publication="livekit-track-publication",o$.Engine="livekit-engine",o$.Signal="livekit-signal",o$.PCManager="livekit-pc-manager",o$.PCTransport="livekit-pc-transport",o$.E2EE="lk-e2ee",o$.DataTracks="livekit-data-tracks";let ii=it.getLogger("livekit"),ir=Object.values(cM).map(e=>it.getLogger(e));function ia(e){let t=it.getLogger(e);return t.setDefaultLevel(ii.getLevel()),t}ii.setDefaultLevel(cO.info);let is=it.getLogger("lk-e2ee"),io=[0,300,1200,2700,4800,7e3,7e3,7e3,7e3,7e3];function ic(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&0>t.indexOf(i)&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,i=Object.getOwnPropertySymbols(e);r<i.length;r++)0>t.indexOf(i[r])&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]]);return n}
2function il(e,t,n,i){return new(n||(n=Promise))(function(r,a){function s(e){try{c(i.next(e))}catch(e){a(e)}}function o(e){try{c(i.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?r(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(s,o)}c((i=i.apply(e,t||[])).next())})}function id(e){return this instanceof id?(this.v=e,this):new id(e)}function iu(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(n){t[n]=e[n]&&function(t){return new Promise(function(i,r){var a,s,o;a=i,s=r,o=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){a({value:e,done:o})},s)})}}}"function"==typeof SuppressedError&&SuppressedError;var ih={exports:{}},ip=function(){if(cD)return ih.exports;cD=1;var e,t="object"==typeof Reflect?Reflect:null,n=t&&"function"==typeof t.apply?t.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};e=t&&"function"==typeof t.ownKeys?t.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function r(){r.init.call(this)}ih.exports=r,ih.exports.once=function(e,t){return new Promise(function(n,i){var r,a,s;function o(n){e.removeListener(t,c),i(n)}function c(){"function"==typeof e.removeListener&&e.removeListener("error",o),n([].slice.call(arguments))}m(e,t,c,{once:!0}),"error"!==t&&(r=e,a=o,s={once:!0},"function"==typeof r.on&&m(r,"error",a,s))})},r.EventEmitter=r,r.prototype._events=void 0,r.prototype._eventsCount=0,r.prototype._maxListeners=void 0;var a=10;function s(e){if("function"!=typeof e)throw TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function o(e){return void 0===e._maxListeners?r.defaultMaxListeners:e._maxListeners}function c(e,t,n,i){if(s(n),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),c=a[t]),void 0===c)c=a[t]=n,++e._eventsCount;else if("function"==typeof c?c=a[t]=i?[n,c]:[c,n]:i?c.unshift(n):c.push(n),(r=o(e))>0&&c.length>r&&!c.warned){c.warned=!0;var r,a,c,l=Error("Possible EventEmitter memory leak detected. "+c.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=c.length,console&&console.warn&&console.warn(l)}return e}function l(){if(!this.fired)return(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0==arguments.length)?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=l.bind(i);return r.listener=n,i.wrapFn=r,r}function u(e,t,n){var i=e._events;if(void 0===i)return[];var r=i[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(r):p(r,r.length)}function h(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function p(e,t){for(var n=Array(t),i=0;i<t;++i)n[i]=e[i];return n}function m(e,t,n,i){if("function"==typeof e.on)i.once?e.once(t,n):e.on(t,n);else if("function"==typeof e.addEventListener)e.addEventListener(t,function r(a){i.once&&e.removeEventListener(t,r),n(a)});else throw TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}return Object.defineProperty(r,"defaultMaxListeners",{enumerable:!0,get:function(){return a}
2,set:function(e){if("number"!=typeof e||e<0||i(e))throw RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");a=e}}),r.init=function(){(void 0===this._events||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},r.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||i(e))throw RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},r.prototype.getMaxListeners=function(){return o(this)},r.prototype.emit=function(e){for(var t=[],i=1;i<arguments.length;i++)t.push(arguments[i]);var r="error"===e,a=this._events;if(void 0!==a)r=r&&void 0===a.error;else if(!r)return!1;if(r){if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var s,o=Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var c=a[e];if(void 0===c)return!1;if("function"==typeof c)n(c,this,t);else for(var l=c.length,d=p(c,l),i=0;i<l;++i)n(d[i],this,t);return!0},r.prototype.addListener=function(e,t){return c(this,e,t,!1)},r.prototype.on=r.prototype.addListener,r.prototype.prependListener=function(e,t){return c(this,e,t,!0)},r.prototype.once=function(e,t){return s(t),this.on(e,d(this,e,t)),this},r.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,d(this,e,t)),this},r.prototype.removeListener=function(e,t){var n,i,r,a,o;if(s(t),void 0===(i=this._events)||void 0===(n=i[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(r=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,r=a;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,r),1===n.length&&(i[e]=n[0]),void 0!==i.removeListener&&this.emit("removeListener",e,o||t)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(e){var t,n,i;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0==arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0==arguments.length){var r,a=Object.keys(n);for(i=0;i<a.length;++i)"removeListener"!==(r=a[i])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this},r.prototype.listeners=function(e){return u(this,e,!0)},r.prototype.rawListeners=function(e){return u(this,e,!1)},r.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},r.prototype.listenerCount=h,r.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]},ih.exports}();let im=!0,ig=!0;function iv(e,t,n){let i=e.match(t);return i&&i.length>=n&&parseFloat(i[n],10)}function ib(e,t,n){if(!e.RTCPeerConnection)return;if(!Object.getOwnPropertyDescriptor(EventTarget.prototype,"addEventListener").writable)return void iT("Unable to polyfill events");let i=e.RTCPeerConnection.prototype,r=i.addEventListener;i.addEventListener=function(e,i){if(e!==t)return r.apply(this,arguments);let a=e=>{let t=n(e);t&&(i.handleEvent?i.handleEvent(t):i(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(i,a),r.apply(this,[e,a])};let a=i.removeEventListener;i.removeEventListener=function(e,n){if(e!==t||!this._eventMap||!this._eventMap[t]||!this._eventMap[t].has(n))return a.apply(this,arguments);let i=this._eventMap[t].get(n);return this._eventMap[t].delete(n),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,a.apply(this,[e,i])}
vendor: 39,404 bytes, line 2
2,Object.defineProperty(i,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})}function iy(e){return"boolean"!=typeof e?Error("Argument type: "+typeof e+". Please use a boolean."):(im=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function ik(e){return"boolean"!=typeof e?Error("Argument type: "+typeof e+". Please use a boolean."):(ig=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function iT(){"object"==typeof window&&!im&&"u">typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}function iS(e,t){ig&&console.warn(e+" is deprecated, please use "+t+" instead.")}function iC(e){return"[object Object]"===Object.prototype.toString.call(e)}function iw(e,t,n){let i=n?"outbound-rtp":"inbound-rtp",r=new Map;if(null===t)return r;let a=[];return e.forEach(e=>{"track"===e.type&&e.trackIdentifier===t.id&&a.push(e)}),a.forEach(t=>{e.forEach(n=>{n.type===i&&n.trackId===t.id&&function e(t,n,i){!n||i.has(n.id)||(i.set(n.id,n),Object.keys(n).forEach(r=>{r.endsWith("Id")?e(t,t.get(n[r]),i):r.endsWith("Ids")&&n[r].forEach(n=>{e(t,t.get(n),i)})}))}(e,n,r)})}),r}let iE=iT;function iP(e,t){let n=e&&e.navigator;if(!n.mediaDevices)return;let i=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;let t={};return Object.keys(e).forEach(n=>{if("require"===n||"advanced"===n||"mediaSource"===n)return;let i="object"==typeof e[n]?e[n]:{ideal:e[n]};void 0!==i.exact&&"number"==typeof i.exact&&(i.min=i.max=i.exact);let r=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==i.ideal){t.optional=t.optional||[];let e={};"number"==typeof i.ideal?(e[r("min",n)]=i.ideal,t.optional.push(e),(e={})[r("max",n)]=i.ideal):e[r("",n)]=i.ideal,t.optional.push(e)}void 0!==i.exact&&"number"!=typeof i.exact?(t.mandatory=t.mandatory||{},t.mandatory[r("",n)]=i.exact):["min","max"].forEach(e=>{void 0!==i[e]&&(t.mandatory=t.mandatory||{},t.mandatory[r(e,n)]=i[e])})}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},r=function(e,r){if(t.version>=61)return r(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){let t=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])};t((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),t(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=i(e.audio)}if(e&&"object"==typeof e.video){let a=e.video.facingMode;a=a&&("object"==typeof a?a:{ideal:a});let s=t.version<66;if(a&&("user"===a.exact||"environment"===a.exact||"user"===a.ideal||"environment"===a.ideal)&&!(n.mediaDevices.getSupportedConstraints&&n.mediaDevices.getSupportedConstraints().facingMode&&!s)){let t;if(delete e.video.facingMode,"environment"===a.exact||"environment"===a.ideal?t=["back","rear"]:("user"===a.exact||"user"===a.ideal)&&(t=["front"]),t)return n.mediaDevices.enumerateDevices().then(n=>{let s=(n=n.filter(e=>"videoinput"===e.kind)).find(e=>t.some(t=>e.label.toLowerCase().includes(t)));return!s&&n.length&&t.includes("back")&&(s=n[n.length-1]),s&&(e.video.deviceId=a.exact?{exact:s.deviceId}:{ideal:s.deviceId}),e.video=i(e.video),iE("chrome: "+JSON.stringify(e)),r(e)})}e.video=i(e.video)}return iE("chrome: "+JSON.stringify(e)),r(e)},a=function(e){return t.version>=64?e:{name:({PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"})[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(n.getUserMedia=(function(e,t,i){r(e,e=>{n.webkitGetUserMedia(e,t,e=>{i&&i(a(e))})})}).bind(n),n.mediaDevices.getUserMedia){let e=n.mediaDevices.getUserMedia.bind(n.mediaDevices);n.mediaDevices.getUserMedia=function(t){return r(t,t=>e(t).then(e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEach(e=>{e.stop()}),new DOMException("","NotFoundError");return e},e=>Promise.reject(a(e))))}}}function iR(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function iI(e,t){if(!(t.version>102))if("object"!=typeof e||!e.RTCPeerConnection||"ontrack"in e.RTCPeerConnection.prototype)ib(e,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e));else{Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",n=>{let i;i=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===n.track.id):{track:n.track};let r=new Event("track");r.track=n.track,r.receiver=i,r.transceiver={receiver:i},r.streams=[t.stream],this.dispatchEvent(r)}),t.stream.getTracks().forEach(n=>{let i;i=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===n.id):{track:n};let r=new Event("track");r.track=n,r.receiver=i,r.transceiver={receiver:i},r.streams=[t.stream],this.dispatchEvent(r)})},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}}function i_(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){let t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};let n=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,i){let r=n.apply(this,arguments);return r||(r=t(this,e),this._senders.push(r)),r};let i=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){i.apply(this,arguments);let t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}let n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach(e=>{this._senders.push(t(this,e))})};let i=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],i.apply(this,[e]),e.getTracks().forEach(e=>{let t=this._senders.find(t=>t.track===e);t&&this._senders.splice(this._senders.indexOf(t),1)})}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){let t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function ix(e,t){if(t.version>=67||!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){let t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});let n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){let e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){let e=this;return this._pc.getStats().then(t=>iw(t,e.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){let t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),ib(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){let e=this;return this._pc.getStats().then(t=>iw(t,e.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype&&"getStats"in e.RTCRtpReceiver.prototype))return;let n=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){let e,t,n,i=arguments[0];return(this.getSenders().forEach(t=>{t.track===i&&(e?n=!0:e=t)}),this.getReceivers().forEach(e=>(e.track===i&&(t?n=!0:t=e),e.track===i)),n||e&&t)?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):e?e.getStats():t?t.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return n.apply(this,arguments)}}function iO(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(e=>this._shimmedLocalStreams[e][0])};let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){if(!n)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let i=t.apply(this,arguments);return this._shimmedLocalStreams[n.id]?-1===this._shimmedLocalStreams[n.id].indexOf(i)&&this._shimmedLocalStreams[n.id].push(i):this._shimmedLocalStreams[n.id]=[n,i],i};let n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException("Track already exists.","InvalidAccessError")});let t=this.getSenders();n.apply(this,arguments);let i=this.getSenders().filter(e=>-1===t.indexOf(e));this._shimmedLocalStreams[e.id]=[e].concat(i)};let i=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],i.apply(this,arguments)};let r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach(t=>{let n=this._shimmedLocalStreams[t].indexOf(e);-1!==n&&this._shimmedLocalStreams[t].splice(n,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]}),r.apply(this,arguments)}}function iM(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return iO(e);let n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){let e=n.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map(e=>this._reverseStreams[e.id])};let i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[t.id]){let n=new e.MediaStream(t.getTracks());this._streams[t.id]=n,this._reverseStreams[n.id]=t,t=n}i.apply(this,[t])};let r=e.RTCPeerConnection.prototype.removeStream;function a(e,t){let n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{let i=e._reverseStreams[t],r=e._streams[i.id];n=n.replace(RegExp(r.id,"g"),i.id)}),new RTCSessionDescription({type:t.type,sdp:n})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},r.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,n){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let i=[].slice.call(arguments,1);if(1!==i.length||!i[0].getTracks().find(e=>e===t))throw new DOMException("The adapter.js addTrack polyfill only supports a single  stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(e=>e.track===t))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let r=this._streams[n.id];if(r)r.addTrack(t),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{let i=new e.MediaStream([t]);this._streams[n.id]=i,this._reverseStreams[i.id]=n,this.addStream(i)}return this.getSenders().find(e=>e.track===t)},["createOffer","createAnswer"].forEach(function(t){let n=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=({[t](){let e=arguments,t=arguments.length&&"function"==typeof arguments[0];return t?n.apply(this,[t=>{let n=a(this,t);e[0].apply(null,[n])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):n.apply(this,arguments).then(e=>a(this,e))}})[t]});let s=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){var e,t;let n;return arguments.length&&arguments[0].type?(arguments[0]=(e=this,t=arguments[0],n=t.sdp,Object.keys(e._reverseStreams||[]).forEach(t=>{let i=e._reverseStreams[t],r=e._streams[i.id];n=n.replace(RegExp(i.id,"g"),r.id)}),new RTCSessionDescription({type:t.type,sdp:n})),s.apply(this,arguments)):s.apply(this,arguments)};let o=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){let e=o.get.apply(this);return""===e.type?e:a(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){let t;if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(e._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{},Object.keys(this._streams).forEach(n=>{this._streams[n].getTracks().find(t=>e.track===t)&&(t=this._streams[n])}),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function iD(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){let n=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=({[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}})[t]})}function iA(e,t){t.version>102||ib(e,"negotiationneeded",e=>{let n=e.target;if(!(t.version<72)&&(!n.getConfiguration||"plan-b"!==n.getConfiguration().sdpSemantics)||"stable"===n.signalingState)return e})}var iN=Object.freeze({__proto__:null,fixNegotiationNeeded:iA,shimAddTrackRemoveTrack:iM,shimAddTrackRemoveTrackWithNative:iO,shimGetSendersWithDtmf:i_,shimGetUserMedia:iP,shimMediaStream:iR,shimOnTrack:iI,shimPeerConnection:iD,shimSenderReceiverGetStats:ix});function iL(e,t){let n=e&&e.navigator,i=e&&e.MediaStreamTrack;if(n.getUserMedia=function(e,t,i){iS("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),n.mediaDevices.getUserMedia(e).then(t,i)},!(t.version>55&&"autoGainControl"in n.mediaDevices.getSupportedConstraints())){let e=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])},t=n.mediaDevices.getUserMedia.bind(n.mediaDevices);if(n.mediaDevices.getUserMedia=function(n){return"object"==typeof n&&"object"==typeof n.audio&&(e((n=JSON.parse(JSON.stringify(n))).audio,"autoGainControl","mozAutoGainControl"),e(n.audio,"noiseSuppression","mozNoiseSuppression")),t(n)},i&&i.prototype.getSettings){let t=i.prototype.getSettings;i.prototype.getSettings=function(){let n=t.apply(this,arguments);return e(n,"mozAutoGainControl","autoGainControl"),e(n,"mozNoiseSuppression","noiseSuppression"),n}}if(i&&i.prototype.applyConstraints){let t=i.prototype.applyConstraints;i.prototype.applyConstraints=function(n){return"audio"===this.kind&&"object"==typeof n&&(e(n=JSON.parse(JSON.stringify(n)),"autoGainControl","mozAutoGainControl"),e(n,"noiseSuppression","mozNoiseSuppression")),t.apply(this,[n])}}}}function iU(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function ij(e,t){"object"==typeof e&&(e.RTCPeerConnection||e.mozRTCPeerConnection)&&(!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){let n=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=({[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}})[t]}))}function iF(e,t){if("object"!=typeof e||!(e.RTCPeerConnection||e.mozRTCPeerConnection)||t.version>=151)return;let n={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},i=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){let[e,r,a]=arguments;return"closed"===this.signalingState?Promise.resolve(new Map):i.apply(this,[e||null]).then(e=>{if(t.version<53&&!r)try{e.forEach(e=>{e.type=n[e.type]||e.type})}catch(t){if("TypeError"!==t.name)throw t;e.forEach((t,i)=>{e.set(i,Object.assign({},t,{type:n[t.type]||t.type}))})}return e}).then(r,a)}}function iB(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;let t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});let n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){let e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function iq(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;let t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),ib(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function iV(e){!e.RTCPeerConnection||"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){iS("removeStream","removeTrack"),this.getSenders().forEach(t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)})})}function iH(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function iz(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]);let n=(e=[...e]).length>0;n&&e.forEach(e=>{if("rid"in e&&!/^[a-z0-9]{0,16}$/i.test(e.rid))throw TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw RangeError("max_framerate must be >= 0.0")});let i=t.apply(this,arguments);if(n){let{sender:t}=i,n=t.getParameters();"encodings"in n&&(1!==n.encodings.length||0!==Object.keys(n.encodings[0]).length)||(n.encodings=e,t.sendEncodings=e,this.setParametersPromises.push(t.setParameters(n).then(()=>{delete t.sendEncodings}).catch(()=>{delete t.sendEncodings})))}return i})}function iW(e){if(!("object"==typeof e&&e.RTCRtpSender))return;let t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){let e=t.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function iG(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}function iJ(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}var iK=Object.freeze({__proto__:null,shimAddTransceiver:iz,shimCreateAnswer:iJ,shimCreateOffer:iG,shimGetDisplayMedia:function(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(n){if(!(n&&n.video)){let e=new DOMException("getDisplayMedia without video constraints is undefined");return e.name="NotFoundError",e.code=8,Promise.reject(e)}return!0===n.video?n.video={mediaSource:t}:n.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(n)})},shimGetParameters:iW,shimGetStats:iF,shimGetUserMedia:iL,shimOnTrack:iU,shimPeerConnection:ij,shimRTCDataChannel:iH,shimReceiverGetStats:iq,shimRemoveStream:iV,shimSenderGetStats:iB});function i$(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach(n=>t.call(this,n,e)),e.getVideoTracks().forEach(n=>t.call(this,n,e))},e.RTCPeerConnection.prototype.addTrack=function(e){for(var n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return i&&i.forEach(e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]}),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);let t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);let n=e.getTracks();this.getSenders().forEach(e=>{n.includes(e.track)&&this.removeTrack(e)})})}}function iY(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach(e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);let t=new Event("addstream");t.stream=e,this.dispatchEvent(t)})})}});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){let e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach(t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);let n=new Event("addstream");n.stream=t,e.dispatchEvent(n)})}),t.apply(e,arguments)}}}function iQ(e){if("object"!=typeof e||!e.RTCPeerConnection)return;let t=e.RTCPeerConnection.prototype,n=t.createOffer,i=t.createAnswer,r=t.setLocalDescription,a=t.setRemoteDescription,s=t.addIceCandidate;t.createOffer=function(e,t){let i=arguments.length>=2?arguments[2]:arguments[0],r=n.apply(this,[i]);return t?(r.then(e,t),Promise.resolve()):r},t.createAnswer=function(e,t){let n=arguments.length>=2?arguments[2]:arguments[0],r=i.apply(this,[n]);return t?(r.then(e,t),Promise.resolve()):r};let o=function(e,t,n){let i=r.apply(this,[e]);return n?(i.then(t,n),Promise.resolve()):i};t.setLocalDescription=o,t.setRemoteDescription=o=function(e,t,n){let i=a.apply(this,[e]);return n?(i.then(t,n),Promise.resolve()):i},t.addIceCandidate=function(e,t,n){let i=s.apply(this,[e]);return n?(i.then(t,n),Promise.resolve()):i}}function iX(e){let t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){let e=t.mediaDevices,n=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>n(iZ(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=(function(e,n,i){t.mediaDevices.getUserMedia(e).then(n,i)}).bind(t))}function iZ(e){return e&&void 0!==e.video?Object.assign({},e,{video:function e(t){return iC(t)?Object.keys(t).reduce(function(n,i){let r=iC(t[i]),a=r?e(t[i]):t[i],s=r&&!Object.keys(a).length;return void 0===a||s?n:Object.assign(n,{[i]:a})},{}):t}(e.video)}):e}function i0(e){if(!e.RTCPeerConnection)return;let t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,n){if(e&&e.iceServers){let t=[];for(let n=0;n<e.iceServers.length;n++){let i=e.iceServers[n];void 0===i.urls&&i.url?(iS("RTCIceServer.url","RTCIceServer.urls"),(i=JSON.parse(JSON.stringify(i))).urls=i.url,delete i.url,t.push(i)):t.push(e.iceServers[n])}e.iceServers=t}return new t(e,n)},e.RTCPeerConnection.prototype=t.prototype,"generateCertificate"in t&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get:()=>t.generateCertificate})}function i1(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function i2(e){let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);let t=this.getTransceivers().find(e=>"audio"===e.receiver.track.kind);!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);let n=this.getTransceivers().find(e=>"video"===e.receiver.track.kind);!1===e.offerToReceiveVideo&&n?"sendrecv"===n.direction?n.setDirection?n.setDirection("sendonly"):n.direction="sendonly":"recvonly"===n.direction&&(n.setDirection?n.setDirection("inactive"):n.direction="inactive"):!0!==e.offerToReceiveVideo||n||this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}}function i5(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var i3=Object.freeze({__proto__:null,shimAudioContext:i5,shimCallbacksAPI:iQ,shimConstraints:iZ,shimCreateOfferLegacy:i2,shimGetUserMedia:iX,shimLocalStreamsAPI:i$,shimRTCIceServerUrls:i0,shimRemoteStreamsAPI:iY,shimTrackEventTransceiver:i1}),i4={exports:{}},i6=function(){let e;return cA?i4.exports:(cA=1,(e={}).generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},e.localCName=e.generateIdentifier(),e.splitLines=function(e){return e.trim().split("\n").map(e=>e.trim())},e.splitSections=function(e){return e.split("\nm=").map((e,t)=>(t>0?"m="+e:e).trim()+"\r\n")},e.getDescription=function(t){let n=e.splitSections(t);return n&&n[0]},e.getMediaSections=function(t){let n=e.splitSections(t);return n.shift(),n},e.matchPrefix=function(t,n){return e.splitLines(t).filter(e=>0===e.indexOf(n))},e.parseCandidate=function(e){let t,n={foundation:(t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" "))[0],component:{1:"rtp",2:"rtcp"}[t[1]]||t[1],protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]};for(let e=8;e<t.length;e+=2)switch(t[e]){case"raddr":n.relatedAddress=t[e+1];break;case"rport":n.relatedPort=parseInt(t[e+1],10);break;case"tcptype":n.tcpType=t[e+1];break;case"ufrag":n.ufrag=t[e+1],n.usernameFragment=t[e+1];break;default:void 0===n[t[e]]&&(n[t[e]]=t[e+1])}return n},e.writeCandidate=function(e){let t=[];t.push(e.foundation);let n=e.component;"rtp"===n?t.push(1):"rtcp"===n?t.push(2):t.push(n),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);let i=e.type;return t.push("typ"),t.push(i),"host"!==i&&e.relatedAddress&&void 0!==e.relatedPort&&(t.push("raddr"),t.push(e.relatedAddress),t.push("rport"),t.push(e.relatedPort)),e.tcpType&&"tcp"===e.protocol.toLowerCase()&&(t.push("tcptype"),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push("ufrag"),t.push(e.usernameFragment||e.ufrag)),"candidate:"+t.join(" ")},e.parseIceOptions=function(e){return e.substring(14).split(" ")},e.parseRtpMap=function(e){let t=e.substring(9).split(" "),n={payloadType:parseInt(t.shift(),10)};return n.name=(t=t[0].split("/"))[0],n.clockRate=parseInt(t[1],10),n.channels=3===t.length?parseInt(t[2],10):1,n.numChannels=n.channels,n},e.writeRtpMap=function(e){let t=e.payloadType;void 0!==e.preferredPayloadType&&(t=e.preferredPayloadType);let n=e.channels||e.numChannels||1;return"a=rtpmap:"+t+" "+e.name+"/"+e.clockRate+(1!==n?"/"+n:"")+"\r\n"},e.parseExtmap=function(e){let t=e.substring(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1],attributes:t.slice(2).join(" ")}},e.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+(e.attributes?" "+e.attributes:"")+"\r\n"},e.parseFmtp=function(e){let t,n={},i=e.substring(e.indexOf(" ")+1).split(";");for(let e=0;e<i.length;e++)n[(t=i[e].trim().split("="))[0].trim()]=t[1];return n},e.writeFmtp=function(e){let t="",n=e.payloadType;if(void 0!==e.preferredPayloadType&&(n=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){let i=[];Object.keys(e.parameters).forEach(t=>{void 0!==e.parameters[t]?i.push(t+"="+e.parameters[t]):i.push(t)}),t+="a=fmtp:"+n+" "+i.join(";")+"\r\n"}return t},e.parseRtcpFb=function(e){let t=e.substring(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}},e.writeRtcpFb=function(e){let t="",n=e.payloadType;return void 0!==e.preferredPayloadType&&(n=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach(e=>{t+="a=rtcp-fb:"+n+" "+e.type+(e.parameter&&e.parameter.length?" "+e.parameter:"")+"\r\n"}),t},e.parseSsrcMedia=function(e){let t=e.indexOf(" "),n={ssrc:parseInt(e.substring(7,t),10)},i=e.indexOf(":",t);return i>-1?(n.attribute=e.substring(t+1,i),n.value=e.substring(i+1)):n.attribute=e.substring(t+1),n},e.parseSsrcGroup=function(e){let t=e.substring(13).split(" ");return{semantics:t.shift(),ssrcs:t.map(e=>parseInt(e,10))}},e.getMid=function(t){let n=e.matchPrefix(t,"a=mid:")[0];if(n)return n.substring(6)},e.parseFingerprint=function(e){let t=e.substring(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1].toUpperCase()}},e.getDtlsParameters=function(t,n){return{role:"auto",fingerprints:e.matchPrefix(t+n,"a=fingerprint:").map(e.parseFingerprint)}},e.writeDtlsParameters=function(e,t){let n="a=setup:"+t+"\r\n";return e.fingerprints.forEach(e=>{n+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"}),n},e.parseCryptoLine=function(e){let t=e.substring(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},e.writeCryptoLine=function(t){return"a=crypto:"+t.tag+" "+t.cryptoSuite+" "+("object"==typeof t.keyParams?e.writeCryptoKeyParams(t.keyParams):t.keyParams)+(t.sessionParams?" "+t.sessionParams.join(" "):"")+"\r\n"},e.parseCryptoKeyParams=function(e){if(0!==e.indexOf("inline:"))return null;let t=e.substring(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}},e.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")},e.getCryptoParameters=function(t,n){return e.matchPrefix(t+n,"a=crypto:").map(e.parseCryptoLine)},e.getIceParameters=function(t,n){let i=e.matchPrefix(t+n,"a=ice-ufrag:")[0],r=e.matchPrefix(t+n,"a=ice-pwd:")[0];return i&&r?{usernameFragment:i.substring(12),password:r.substring(10)}:null},e.writeIceParameters=function(e){let t="a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n";return e.iceLite&&(t+="a=ice-lite\r\n"),t},e.parseRtpParameters=function(t){let n={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},i=e.splitLines(t)[0].split(" ");n.profile=i[2];for(let r=3;r<i.length;r++){let a=i[r],s=e.matchPrefix(t,"a=rtpmap:"+a+" ")[0];if(s){let i=e.parseRtpMap(s),r=e.matchPrefix(t,"a=fmtp:"+a+" ");switch(i.parameters=r.length?e.parseFmtp(r[0]):{},i.rtcpFeedback=e.matchPrefix(t,"a=rtcp-fb:"+a+" ").map(e.parseRtcpFb),n.codecs.push(i),i.name.toUpperCase()){case"RED":case"ULPFEC":n.fecMechanisms.push(i.name.toUpperCase())}}}e.matchPrefix(t,"a=extmap:").forEach(t=>{n.headerExtensions.push(e.parseExtmap(t))});let r=e.matchPrefix(t,"a=rtcp-fb:* ").map(e.parseRtcpFb);return n.codecs.forEach(e=>{r.forEach(t=>{e.rtcpFeedback.find(e=>e.type===t.type&&e.parameter===t.parameter)||e.rtcpFeedback.push(t)})}),n},e.writeRtpDescription=function(t,n){let i="";i+="m="+t+" ",i+=n.codecs.length>0?"9":"0",i+=" "+(n.profile||"UDP/TLS/RTP/SAVPF")+" ",i+=n.codecs.map(e=>void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType).join(" ")+"\r\n",i+="c=IN IP4 0.0.0.0\r\n",i+="a=rtcp:9 IN IP4 0.0.0.0\r\n",n.codecs.forEach(t=>{i+=e.writeRtpMap(t),i+=e.writeFmtp(t),i+=e.writeRtcpFb(t)});let r=0;return n.codecs.forEach(e=>{e.maxptime>r&&(r=e.maxptime)}),r>0&&(i+="a=maxptime:"+r+"\r\n"),n.headerExtensions&&n.headerExtensions.forEach(t=>{i+=e.writeExtmap(t)}),i},e.parseRtpEncodingParameters=function(t){let n,i=[],r=e.parseRtpParameters(t),a=-1!==r.fecMechanisms.indexOf("RED"),s=-1!==r.fecMechanisms.indexOf("ULPFEC"),o=e.matchPrefix(t,"a=ssrc:").map(t=>e.parseSsrcMedia(t)).filter(e=>"cname"===e.attribute),c=o.length>0&&o[0].ssrc,l=e.matchPrefix(t,"a=ssrc-group:FID").map(e=>e.substring(17).split(" ").map(e=>parseInt(e,10)));l.length>0&&l[0].length>1&&l[0][0]===c&&(n=l[0][1]),r.codecs.forEach(e=>{if("RTX"===e.name.toUpperCase()&&e.parameters.apt){let t={ssrc:c,codecPayloadType:parseInt(e.parameters.apt,10)};c&&n&&(t.rtx={ssrc:n}),i.push(t),a&&((t=JSON.parse(JSON.stringify(t))).fec={ssrc:c,mechanism:s?"red+ulpfec":"red"},i.push(t))}}),0===i.length&&c&&i.push({ssrc:c});let d=e.matchPrefix(t,"b=");return d.length&&(d=0===d[0].indexOf("b=TIAS:")?parseInt(d[0].substring(7),10):0===d[0].indexOf("b=AS:")?1e3*parseInt(d[0].substring(5),10)*.95-16e3:void 0,i.forEach(e=>{e.maxBitrate=d})),i},e.parseRtcpParameters=function(t){let n={},i=e.matchPrefix(t,"a=ssrc:").map(t=>e.parseSsrcMedia(t)).filter(e=>"cname"===e.attribute)[0];i&&(n.cname=i.value,n.ssrc=i.ssrc);let r=e.matchPrefix(t,"a=rtcp-rsize");return n.reducedSize=r.length>0,n.compound=0===r.length,n.mux=e.matchPrefix(t,"a=rtcp-mux").length>0,n},e.writeRtcpParameters=function(e){let t="";return e.reducedSize&&(t+="a=rtcp-rsize\r\n"),e.mux&&(t+="a=rtcp-mux\r\n"),void 0!==e.ssrc&&e.cname&&(t+="a=ssrc:"+e.ssrc+" cname:"+e.cname+"\r\n"),t},e.parseMsid=function(t){let n,i=e.matchPrefix(t,"a=msid:");if(1===i.length)return{stream:(n=i[0].substring(7).split(" "))[0],track:n[1]};let r=e.matchPrefix(t,"a=ssrc:").map(t=>e.parseSsrcMedia(t)).filter(e=>"msid"===e.attribute);if(r.length>0)return{stream:(n=r[0].value.split(" "))[0],track:n[1]}},e.parseSctpDescription=function(t){let n,i=e.parseMLine(t),r=e.matchPrefix(t,"a=max-message-size:");r.length>0&&(n=parseInt(r[0].substring(19),10)),isNaN(n)&&(n=65536);let a=e.matchPrefix(t,"a=sctp-port:");if(a.length>0)return{port:parseInt(a[0].substring(12),10),protocol:i.fmt,maxMessageSize:n};let s=e.matchPrefix(t,"a=sctpmap:");if(s.length>0){let e=s[0].substring(10).split(" ");return{port:parseInt(e[0],10),protocol:e[1],maxMessageSize:n}}},e.writeSctpDescription=function(e,t){let n=[];return n="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&n.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),n.join("")},e.generateSessionId=function(){return Math.random().toString().substr(2,22)},e.writeSessionBoilerplate=function(t,n,i){return"v=0\r\no="+(i||"thisisadapterortc")+" "+(t||e.generateSessionId())+" "+(void 0!==n?n:2)+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},e.getDirection=function(t,n){let i=e.splitLines(t);for(let e=0;e<i.length;e++)switch(i[e]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return i[e].substring(2)}return n?e.getDirection(n):"sendrecv"},e.getKind=function(t){return e.splitLines(t)[0].split(" ")[0].substring(2)},e.isRejected=function(e){return"0"===e.split(" ",2)[1]},e.parseMLine=function(t){let n=e.splitLines(t)[0].substring(2).split(" ");return{kind:n[0],port:parseInt(n[1],10),protocol:n[2],fmt:n.slice(3).join(" ")}},e.parseOLine=function(t){let n=e.matchPrefix(t,"o=")[0].substring(2).split(" ");return{username:n[0],sessionId:n[1],sessionVersion:parseInt(n[2],10),netType:n[3],addressType:n[4],address:n[5]}},e.isValidSDP=function(t){if("string"!=typeof t||0===t.length)return!1;let n=e.splitLines(t);for(let e=0;e<n.length;e++)if(n[e].length<2||"="!==n[e].charAt(1))return!1;return!0},i4.exports=e,i4.exports)}(),i9=i6&&i6.__esModule&&Object.prototype.hasOwnProperty.call(i6,"default")?i6.default:i6,i8=(oY={__proto__:null,default:i9}
2,[i6].forEach(function(e){e&&"string"!=typeof e&&!Array.isArray(e)&&Object.keys(e).forEach(function(t){if("default"!==t&&!(t in oY)){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(oY,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})}),Object.freeze(oY));function i7(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;let t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substring(2)),e.candidate&&e.candidate.length){let n=new t(e),i=i9.parseCandidate(e.candidate);for(let e in i)e in n||Object.defineProperty(n,e,{value:i[e]});return n.toJSON=function(){return{candidate:n.candidate,sdpMid:n.sdpMid,sdpMLineIndex:n.sdpMLineIndex,usernameFragment:n.usernameFragment}},n}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,ib(e,"icecandidate",t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t))}function re(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||ib(e,"icecandidate",e=>{if(e.candidate){let t=i9.parseCandidate(e.candidate.candidate);"relay"===t.type&&(e.candidate.relayProtocol=({0:"tls",1:"tcp",2:"udp"})[t.priority>>24])}return e})}function rt(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});let n=function(e){if(!e||!e.sdp)return!1;let t=i9.splitSections(e.sdp);return t.shift(),t.some(e=>{let t=i9.parseMLine(e);return t&&"application"===t.kind&&-1!==t.protocol.indexOf("SCTP")})},i=function(e){let t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return -1;let n=parseInt(t[1],10);return n!=n?-1:n},r=function(e){let n=65536;return"firefox"===t.browser&&(n=t.version<57?-1===e?16384:0x7ffffff5:t.version<60?57===t.version?65535:65536:0x7ffffff5),n},a=function(e,n){let i=65536;"firefox"===t.browser&&57===t.version&&(i=65535);let r=i9.matchPrefix(e.sdp,"a=max-message-size:");return r.length>0?i=parseInt(r[0].substring(19),10):"firefox"===t.browser&&-1!==n&&(i=0x7ffffff5),i},s=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===t.browser&&t.version>=76){let{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(n(arguments[0])){let e,t=i(arguments[0]),n=r(t),s=a(arguments[0],t);e=0===n&&0===s?1/0:0===n||0===s?Math.max(n,s):Math.min(n,s);let o={};Object.defineProperty(o,"maxMessageSize",{get:()=>e}),this._sctp=o}return s.apply(this,arguments)}}function rn(e,t){if(!(e.RTCPeerConnection&&"createDataChannel"in e.RTCPeerConnection.prototype)||"chrome"===t.browser&&t.version>149||"firefox"===t.browser&&t.version>60)return;function n(e,t){let n=e.send;e.send=function(){let i=arguments[0],r=i.length||i.size||i.byteLength;if("open"===e.readyState&&t.sctp&&r>t.sctp.maxMessageSize)throw TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return n.apply(e,arguments)}}let i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){let e=i.apply(this,arguments);return n(e,this),e},ib(e,"datachannel",e=>(n(e.channel,e.target),e))}function ri(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;let t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return({completed:"connected",checking:"connecting"})[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}
2),["setLocalDescription","setRemoteDescription"].forEach(e=>{let n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{let t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;let n=new Event("connectionstatechange",e);t.dispatchEvent(n)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}})}function rr(e,t){if(!e.RTCPeerConnection||"chrome"===t.browser&&t.version>=71||"safari"===t.browser&&t._safariVersion>=13.1)return;let n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){let n=t.sdp.split("\n").filter(e=>"a=extmap-allow-mixed"!==e.trim()).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:n}):t.sdp=n}return n.apply(this,arguments)}}function ra(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let n=e.RTCPeerConnection.prototype.addIceCandidate;n&&0!==n.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function rs(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let n=e.RTCPeerConnection.prototype.setLocalDescription;n&&0!==n.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return n.apply(this,arguments);if(!(e={type:e.type,sdp:e.sdp}).type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}return e.sdp||"offer"!==e.type&&"answer"!==e.type?n.apply(this,[e]):("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then(e=>n.apply(this,[e]))})}var ro=Object.freeze({__proto__:null,removeExtmapAllowMixed:rr,shimAddIceCandidateNullOrEmpty:ra,shimConnectionState:ri,shimMaxMessageSize:rt,shimParameterlessSetLocalDescription:rs,shimRTCIceCandidate:i7,shimRTCIceCandidateRelayProtocol:re,shimSendThrowTypeError:rn});!function(){let{window:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0},n=iT,i=function(e){let t={browser:null,version:null};if(void 0===e||!e.navigator||!e.navigator.userAgent)return t.browser="Not a browser.",t;let{navigator:n}=e;if(n.userAgentData&&n.userAgentData.brands){let e=n.userAgentData.brands.find(e=>"Chromium"===e.brand);if(e)return{browser:"chrome",version:parseInt(e.version,10)}}return n.mozGetUserMedia?(t.browser="firefox",t.version=parseInt(iv(n.userAgent,/Firefox\/(\d+)\./,1))):n.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection?(t.browser="chrome",t.version=parseInt(iv(n.userAgent,/Chrom(e|ium)\/(\d+)\./,2))||null):e.RTCPeerConnection&&n.userAgent.match(/AppleWebKit\/(\d+)\./)?(t.browser="safari",t.version=parseInt(iv(n.userAgent,/AppleWebKit\/(\d+)\./,1)),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype,t._safariVersion=iv(n.userAgent,/Version\/(\d+(\.?\d+))/,1)):t.browser="Not a supported browser.",t}(e),r={browserDetails:i,commonShim:ro,extractVersion:iv,disableLog:iy,disableWarnings:ik,sdp:i8};switch(i.browser){case"chrome":if(!iN||!iD||!t.shimChrome){n("Chrome shim is not included in this adapter release.");break}if(null===i.version){n("Chrome shim can not determine version, not shimming.");break}n("adapter.js shimming chrome."),r.browserShim=iN,ra(e,i),rs(e),iP(e,i),iR(e),iD(e,i),iI(e,i),iM(e,i),i_(e),ix(e,i),iA(e,i),i7(e),re(e),ri(e),rt(e,i),rn(e,i),rr(e,i);break;case"firefox":if(!iK||!ij||!t.shimFirefox){n("Firefox shim is not included in this adapter release.");break}n("adapter.js shimming firefox."),r.browserShim=iK,ra(e,i),rs(e),iL(e,i),ij(e,i),iF(e,i),iU(e),iV(e),iB(e),iq(e),iH(e),iz(e),iW(e),iG(e),iJ(e),i7(e),ri(e),rt(e,i),rn(e,i);break;case"safari":if(!i3||!t.shimSafari){n("Safari shim is not included in this adapter release.");break}n("adapter.js shimming safari."),r.browserShim=i3,ra(e,i),rs(e),i0(e),i2(e),iQ(e),i$(e),iY(e),i1(e),iX(e),i5(e),i7(e),re(e),rt(e,i),rn(e,i),rr(e,i);break;default:n("Unsupported browser!")}}({window:"u"<typeof window?void 0:window});class rc extends(cN=Promise){constructor(e){super(e)}catch(e){return super.catch(e)}static reject(e){return super.reject(e)}static all(e){return super.all(e)}static race(e){return super.race(e)}}rc.resolve=e=>Reflect.get(cN,"resolve",rc).call(rc,e);let rl=/version\/(\d+(\.?_?\d+)+)/i;function rd(e){let n=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(void 0===e&&"u"<typeof navigator)return;let i=(null!=e?e:navigator.userAgent).toLowerCase();if(void 0===t||n){let e=ru.find(e=>{let{test:t}=e;return t.test(i)});t=null==e?void 0:e.describe(i)}return t}let ru=[{test:/firefox|iceweasel|fxios/i,describe:e=>({name:"Firefox",version:rh(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e),os:e.toLowerCase().includes("fxios")?"iOS":void 0,osVersion:rp(e)})},{test:/chrom|crios|crmo/i,describe:e=>({name:"Chrome",version:rh(/(?:chrome|chromium|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e),os:e.toLowerCase().includes("crios")?"iOS":void 0,osVersion:rp(e)})},{test:/safari|applewebkit/i,describe:e=>({name:"Safari",version:rh(rl,e),os:e.includes("mobile/")?"iOS":"macOS",osVersion:rp(e)})}];function rh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=t.match(e);return i&&i.length>=n&&i[n]||""}function rp(e){return e.includes("mac os")?rh(/\(.+?(\d+_\d+(:?_\d+)?)/,e,1).replace(/_/g,"."):void 0}
2class rm extends Error{constructor(e,t,n){super(t||"an error has occurred"),this.name="LiveKitError",this.code=e,void 0!==(null==n?void 0:n.cause)&&(this.cause=null==n?void 0:n.cause)}}class rf extends rm{}(oQ=cL||(cL={}))[oQ.NotAllowed=0]="NotAllowed",oQ[oQ.ServerUnreachable=1]="ServerUnreachable",oQ[oQ.InternalError=2]="InternalError",oQ[oQ.Cancelled=3]="Cancelled",oQ[oQ.LeaveRequest=4]="LeaveRequest",oQ[oQ.Timeout=5]="Timeout",oQ[oQ.WebSocket=6]="WebSocket",oQ[oQ.ServiceNotFound=7]="ServiceNotFound";class rg extends rf{constructor(e,t,n,i){super(1,e),this.name="ConnectionError",this.status=n,this.reason=t,this.context=i,this.reasonName=cL[t]}static notAllowed(e,t,n){return new rg(e,cL.NotAllowed,t,n)}static timeout(e){return new rg(e,cL.Timeout)}static leaveRequest(e,t){return new rg(e,cL.LeaveRequest,void 0,t)}static internal(e,t){return new rg(e,cL.InternalError,void 0,t)}static cancelled(e){return new rg(e,cL.Cancelled)}static serverUnreachable(e,t){return new rg(e,cL.ServerUnreachable,t)}static websocket(e,t,n){return new rg(e,cL.WebSocket,t,n)}static serviceNotFound(e,t){return new rg(e,cL.ServiceNotFound,void 0,t)}}class rv extends rm{constructor(e){super(21,null!=e?e:"device is unsupported"),this.name="DeviceUnsupportedError"}}class rb extends rm{constructor(e){super(20,null!=e?e:"track is invalid"),this.name="TrackInvalidError"}}class ry extends rm{constructor(e){super(10,null!=e?e:"unsupported server"),this.name="UnsupportedServer"}}class rk extends rm{constructor(e){super(12,null!=e?e:"unexpected connection state"),this.name="UnexpectedConnectionState"}}class rT extends rm{constructor(e){super(13,null!=e?e:"unable to negotiate"),this.name="NegotiationError"}}class rS extends rm{constructor(e,t){super(15,e),this.name="PublishTrackError",this.status=t}}class rC extends rf{constructor(e,t){super(15,e),this.name="SignalRequestError",this.reason=t,this.reasonName="string"==typeof t?t:nA[t]}}(oX=cU||(cU={}))[oX.AlreadyOpened=0]="AlreadyOpened",oX[oX.AbnormalEnd=1]="AbnormalEnd",oX[oX.DecodeFailed=2]="DecodeFailed",oX[oX.LengthExceeded=3]="LengthExceeded",oX[oX.Incomplete=4]="Incomplete",oX[oX.HandlerAlreadyRegistered=7]="HandlerAlreadyRegistered",oX[oX.EncryptionTypeMismatch=8]="EncryptionTypeMismatch";class rw extends rf{constructor(e,t){super(16,e),this.name="DataStreamError",this.reason=t,this.reasonName=cU[t]}}class rE extends rm{constructor(e){super(18,e),this.name="SignalReconnectError"}}(oZ=cj||(cj={})).PermissionDenied="PermissionDenied",oZ.NotFound="NotFound",oZ.DeviceInUse="DeviceInUse",oZ.Other="Other",(o0=cj||(cj={})).getFailure=function(e){if(e&&"name"in e)return"NotFoundError"===e.name||"DevicesNotFoundError"===e.name?o0.NotFound:"NotAllowedError"===e.name||"PermissionDeniedError"===e.name?o0.PermissionDenied:"NotReadableError"===e.name||"TrackStartError"===e.name?o0.DeviceInUse:o0.Other};class rP{}rP.setTimeout=function(){return setTimeout(...arguments)},rP.setInterval=function(){return setInterval(...arguments)},rP.clearTimeout=function(){return clearTimeout(...arguments)},rP.clearInterval=function(){return clearInterval(...arguments)},(o1=cF||(cF={})).Connected="connected",o1.Reconnecting="reconnecting",o1.SignalReconnecting="signalReconnecting",o1.Reconnected="reconnected",o1.Disconnected="disconnected",o1.ConnectionStateChanged="connectionStateChanged",o1.Moved="moved",o1.MediaDevicesChanged="mediaDevicesChanged",o1.ParticipantConnected="participantConnected",o1.ParticipantDisconnected="participantDisconnected",o1.TrackPublished="trackPublished",o1.TrackSubscribed="trackSubscribed",o1.TrackSubscriptionFailed="trackSubscriptionFailed",o1.TrackUnpublished="trackUnpublished",o1.TrackUnsubscribed="trackUnsubscribed",o1.TrackMuted="trackMuted",o1.TrackUnmuted="trackUnmuted",o1.LocalTrackPublished="localTrackPublished",o1.LocalTrackUnpublished="localTrackUnpublished",o1.LocalAudioSilenceDetected="localAudioSilenceDetected",o1.ActiveSpeakersChanged="activeSpeakersChanged",o1.ParticipantMetadataChanged="participantMetadataChanged",o1.ParticipantNameChanged="participantNameChanged",o1.ParticipantAttributesChanged="participantAttributesChanged",o1.ParticipantActive="participantActive",o1.RoomMetadataChanged="roomMetadataChanged",o1.DataReceived="dataReceived",o1.SipDTMFReceived="sipDTMFReceived",o1.TranscriptionReceived="transcriptionReceived",o1.ConnectionQualityChanged="connectionQualityChanged",o1.TrackStreamStateChanged="trackStreamStateChanged",o1.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",o1.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",o1.AudioPlaybackStatusChanged="audioPlaybackChanged",o1.VideoPlaybackStatusChanged="videoPlaybackChanged",o1.MediaDevicesError="mediaDevicesError",o1.ParticipantPermissionsChanged="participantPermissionsChanged",o1.SignalConnected="signalConnected",o1.RecordingStatusChanged="recordingStatusChanged",o1.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",o1.EncryptionError="encryptionError",o1.DCBufferStatusChanged="dcBufferStatusChanged",o1.ActiveDeviceChanged="activeDeviceChanged",o1.ChatMessage="chatMessage",o1.LocalTrackSubscribed="localTrackSubscribed",o1.MetricsReceived="metricsReceived",o1.DataTrackPublished="dataTrackPublished",o1.DataTrackUnpublished="dataTrackUnpublished",o1.LocalDataTrackPublished="localDataTrackPublished",o1.LocalDataTrackUnpublished="localDataTrackUnpublished",(o2=cB||(cB={})).TrackPublished="trackPublished",o2.TrackSubscribed="trackSubscribed",o2.TrackSubscriptionFailed="trackSubscriptionFailed",o2.TrackUnpublished="trackUnpublished",o2.TrackUnsubscribed="trackUnsubscribed",o2.TrackMuted="trackMuted",o2.TrackUnmuted="trackUnmuted",o2.LocalTrackPublished="localTrackPublished",o2.LocalTrackUnpublished="localTrackUnpublished",o2.LocalTrackCpuConstrained="localTrackCpuConstrained",o2.LocalSenderCreated="localSenderCreated",o2.ParticipantMetadataChanged="participantMetadataChanged",o2.ParticipantNameChanged="participantNameChanged",o2.DataReceived="dataReceived",o2.SipDTMFReceived="sipDTMFReceived",o2.TranscriptionReceived="transcriptionReceived",o2.IsSpeakingChanged="isSpeakingChanged",o2.ConnectionQualityChanged="connectionQualityChanged",o2.TrackStreamStateChanged="trackStreamStateChanged",o2.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",o2.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",o2.TrackCpuConstrained="trackCpuConstrained",o2.MediaDevicesError="mediaDevicesError",o2.AudioStreamAcquired="audioStreamAcquired",o2.ParticipantPermissionsChanged="participantPermissionsChanged",o2.PCTrackAdded="pcTrackAdded",o2.AttributesChanged="attributesChanged",o2.LocalTrackSubscribed="localTrackSubscribed",o2.ChatMessage="chatMessage",o2.Active="active",(o5=cq||(cq={})).TransportsCreated="transportsCreated",o5.Connected="connected",o5.Disconnected="disconnected",o5.Resuming="resuming",o5.Resumed="resumed",o5.Restarting="restarting",o5.Restarted="restarted",o5.SignalResumed="signalResumed",o5.SignalRestarted="signalRestarted",o5.Closing="closing",o5.MediaTrackAdded="mediaTrackAdded",o5.ActiveSpeakersUpdate="activeSpeakersUpdate",o5.DataPacketReceived="dataPacketReceived",o5.RTPVideoMapUpdate="rtpVideoMapUpdate",o5.DCBufferStatusChanged="dcBufferStatusChanged",o5.ParticipantUpdate="participantUpdate",o5.RoomUpdate="roomUpdate",o5.SpeakersChanged="speakersChanged",o5.StreamStateChanged="streamStateChanged",o5.ConnectionQualityUpdate="connectionQualityUpdate",o5.SubscriptionError="subscriptionError",o5.SubscriptionPermissionUpdate="subscriptionPermissionUpdate",o5.RemoteMute="remoteMute",o5.SubscribedQualityUpdate="subscribedQualityUpdate",o5.LocalTrackUnpublished="localTrackUnpublished",o5.LocalTrackSubscribed="localTrackSubscribed",o5.Offline="offline",o5.SignalRequestResponse="signalRequestResponse",o5.SignalConnected="signalConnected",o5.RoomMoved="roomMoved",o5.PublishDataTrackResponse="publishDataTrackResponse",o5.UnPublishDataTrackResponse="unPublishDataTrackResponse",o5.DataTrackSubscriberHandles="dataTrackSubscriberHandles",o5.DataTrackPacketReceived="dataTrackPacketReceived",o5.Joined="joined",o5.TokenRefreshed="tokenRefreshed",o5.ServerRegionsReported="serverRegionsReported",(o3=cV||(cV={})).Message="message",o3.Muted="muted",o3.Unmuted="unmuted",o3.Restarted="restarted",o3.Ended="ended",o3.Subscribed="subscribed",o3.Unsubscribed="unsubscribed",o3.CpuConstrained="cpuConstrained",o3.UpdateSettings="updateSettings",o3.UpdateSubscription="updateSubscription",o3.AudioPlaybackStarted="audioPlaybackStarted",o3.AudioPlaybackFailed="audioPlaybackFailed",o3.AudioSilenceDetected="audioSilenceDetected",o3.VisibilityChanged="visibilityChanged",o3.VideoDimensionsChanged="videoDimensionsChanged",o3.VideoPlaybackStarted="videoPlaybackStarted",o3.VideoPlaybackFailed="videoPlaybackFailed",o3.ElementAttached="elementAttached",o3.ElementDetached="elementDetached",o3.UpstreamPaused="upstreamPaused",o3.UpstreamResumed="upstreamResumed",o3.
2SubscriptionPermissionChanged="subscriptionPermissionChanged",o3.SubscriptionStatusChanged="subscriptionStatusChanged",o3.SubscriptionFailed="subscriptionFailed",o3.TrackProcessorUpdate="trackProcessorUpdate",o3.AudioTrackFeatureUpdate="audioTrackFeatureUpdate",o3.TranscriptionReceived="transcriptionReceived",o3.TimeSyncUpdate="timeSyncUpdate",o3.PreConnectBufferFlushed="preConnectBufferFlushed";class rR{constructor(e,t,n,i,r){if("object"==typeof e)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(void 0!==t&&void 0!==n)this.width=e,this.height=t,this.aspectRatio=e/t,this.encoding={maxBitrate:n,maxFramerate:i,priority:r};else throw 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}}}let rI=["vp8","h264"],r_=["vp8","h264","vp9","av1","h265"];function rx(e){return!!rI.find(t=>t===e)}(o4=cH||(cH={}))[o4.PREFER_REGRESSION=0]="PREFER_REGRESSION",o4[o4.SIMULCAST=1]="SIMULCAST",o4[o4.REGRESSION=2]="REGRESSION",(o6=cz||(cz={})).telephone={maxBitrate:12e3}
2,o6.speech={maxBitrate:24e3},o6.music={maxBitrate:48e3},o6.musicStereo={maxBitrate:64e3},o6.musicHighQuality={maxBitrate:96e3},o6.musicHighQualityStereo={maxBitrate:128e3};let rO={h90:new rR(160,90,9e4,20),h180:new rR(320,180,16e4,20),h216:new rR(384,216,18e4,20),h360:new rR(640,360,45e4,20),h540:new rR(960,540,8e5,25),h720:new rR(1280,720,17e5,30),h1080:new rR(1920,1080,3e6,30),h1440:new rR(2560,1440,5e6,30),h2160:new rR(3840,2160,8e6,30)},rM={h120:new rR(160,120,7e4,20),h180:new rR(240,180,125e3,20),h240:new rR(320,240,14e4,20),h360:new rR(480,360,33e4,20),h480:new rR(640,480,5e5,20),h540:new rR(720,540,6e5,25),h720:new rR(960,720,13e5,30),h1080:new rR(1440,1080,23e5,30),h1440:new rR(1920,1440,38e5,30)},rD={h360fps3:new rR(640,360,2e5,3,"medium"),h360fps15:new rR(640,360,4e5,15,"medium"),h720fps5:new rR(1280,720,8e5,5,"medium"),h720fps15:new rR(1280,720,15e5,15,"medium"),h720fps30:new rR(1280,720,2e6,30,"medium"),h1080fps15:new rR(1920,1080,25e5,15,"medium"),h1080fps30:new rR(1920,1080,5e6,30,"medium"),original:new rR(0,0,7e6,30,"medium")};function rA(e,t,n){var i,r;let{optionsWithoutProcessor:a,audioProcessor:s,videoProcessor:o}=rV(null!=e?e:{}),c=null==t?void 0:t.processor,l=null==n?void 0:n.processor,d=null!=a?a:{};return!0===d.audio&&(d.audio={}),!0===d.video&&(d.video={}),d.audio&&(rN(d.audio,t),null!=(i=d.audio).deviceId||(i.deviceId={ideal:"default"}),(s||c)&&(d.audio.processor=null!=s?s:c)),d.video&&(rN(d.video,n),null!=(r=d.video).deviceId||(r.deviceId={ideal:"default"}),(o||l)&&(d.video.processor=null!=o?o:l)),d}function rN(e,t){return Object.keys(t).forEach(n=>{void 0===e[n]&&(e[n]=t[n])}),e}function rL(e){var t,n;let i={};if(e.video)if("object"==typeof e.video){let n={},r=e.video;Object.keys(r).forEach(e=>{"resolution"===e?rN(n,r.resolution):n[e]=r[e]}),i.video=n,null!=(t=i.video).deviceId||(t.deviceId={ideal:"default"})}else i.video=!!e.video&&{deviceId:{ideal:"default"}};else i.video=!1;return e.audio?"object"==typeof e.audio?(i.audio=e.audio,null!=(n=i.audio).deviceId||(n.deviceId={ideal:"default"})):i.audio={deviceId:{ideal:"default"}}:i.audio=!1,i}function rU(e){return il(this,arguments,void 0,function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200;return function*(){let n=rj();if(n){let i=n.createAnalyser();i.fftSize=2048;let r=new Uint8Array(i.frequencyBinCount);n.createMediaStreamSource(new MediaStream([e.mediaStreamTrack])).connect(i),yield r$(t),i.getByteTimeDomainData(r);let a=r.some(e=>128!==e&&0!==e);return n.close(),!a}return!1}()})}function rj(){var e;let t="u">typeof window&&(window.AudioContext||window.webkitAudioContext);if(t){let n=new t({latencyHint:"interactive"});if("suspended"===n.state&&"u">typeof window&&(null==(e=window.document)?void 0:e.body)){let e=()=>il(this,void 0,void 0,function*(){var t;try{"suspended"===n.state&&(yield n.resume())}catch(e){console.warn("Error trying to auto-resume audio context",e)}finally{null==(t=window.document.body)||t.removeEventListener("click",e)}});n.addEventListener("statechange",()=>{var t;"closed"===n.state&&(null==(t=window.document.body)||t.removeEventListener("click",e))}),window.document.body.addEventListener("click",e)}return n}}function rF(e){return e===rW.Source.Microphone?"audioinput":e===rW.Source.Camera?"videoinput":void 0}function rB(e){return e.split("/")[1].toLowerCase()}function rq(e){return"mediaStreamTrack"in e?{trackID:e.sid,source:e.source,muted:e.isMuted,enabled:e.mediaStreamTrack.enabled,kind:e.kind,streamID:e.mediaStreamID,streamTrackID:e.mediaStreamTrack.id}:{trackID:e.trackSid,enabled:e.isEnabled,muted:e.isMuted,trackInfo:Object.assign({mimeType:e.mimeType,name:e.trackName,encrypted:e.isEncrypted,kind:e.kind,source:e.source},e.track?rq(e.track):{})}}function rV(e){let t,n,i=Object.assign({},e);return"object"==typeof i.audio&&i.audio.processor&&(t=i.audio.processor,i.audio=Object.assign(Object.assign({},i.audio),{processor:void 0})),"object"==typeof i.video&&i.video.processor&&(n=i.video.processor,i.video=Object.assign(Object.assign({},i.video),{processor:void 0})),{audioProcessor:t,videoProcessor:n,optionsWithoutProcessor:void 0===i?i:"function"!=typeof structuredClone?JSON.parse(JSON.stringify(i)):"object"==typeof i&&null!==i?
2structuredClone(Object.assign({},i)):structuredClone(i)}}function rH(e,t){return e.width*e.height<t.width*t.height}let rz=[];(o9=cW||(cW={}))[o9.LOW=0]="LOW",o9[o9.MEDIUM=1]="MEDIUM",o9[o9.HIGH=2]="HIGH";class rW extends ip.EventEmitter{get streamState(){return this._streamState}setStreamState(e){this._streamState=e}constructor(e,t){var n;let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};super(),this.attachedElements=[],this.isMuted=!1,this._streamState=rW.StreamState.Active,this.isInBackground=!1,this._currentBitrate=0,this.log=ii,this.appVisibilityChangedListener=()=>{this.backgroundTimeout&&clearTimeout(this.backgroundTimeout),"hidden"===document.visibilityState?this.backgroundTimeout=setTimeout(()=>this.handleAppVisibilityChanged(),5e3):this.handleAppVisibilityChanged()},this.log=ia(null!=(n=i.loggerName)?n:cM.Track),this.loggerContextCb=i.loggerContextCb,this.setMaxListeners(100),this.kind=t,this._mediaStreamTrack=e,this._mediaStreamID=e.id,this.source=rW.Source.Unknown}get logContext(){var e;return Object.assign(Object.assign({},null==(e=this.loggerContextCb)?void 0:e.call(this)),rq(this))}get currentBitrate(){return this._currentBitrate}get mediaStreamTrack(){return this._mediaStreamTrack}get mediaStreamID(){return this._mediaStreamID}attach(e){let t="audio";this.kind===rW.Kind.Video&&(t="video"),0===this.attachedElements.length&&this.kind===rW.Kind.Video&&this.addAppVisibilityListener(),!e&&("audio"===t&&(rz.forEach(t=>{null!==t.parentElement||e||(e=t)}),e&&rz.splice(rz.indexOf(e),1)),e||(e=document.createElement(t))),this.attachedElements.includes(e)||this.attachedElements.push(e),rG(this.mediaStreamTrack,e);let n=e.srcObject.getTracks(),i=n.some(e=>"audio"===e.kind);return e.play().then(()=>{this.emit(i?cV.AudioPlaybackStarted:cV.VideoPlaybackStarted)}).catch(t=>{"NotAllowedError"===t.name?this.emit(i?cV.AudioPlaybackFailed:cV.VideoPlaybackFailed,t):"AbortError"===t.name?ii.debug("".concat(i?"audio":"video"," playback aborted, likely due to new play request")):ii.warn("could not playback ".concat(i?"audio":"video"),t),i&&e&&n.some(e=>"video"===e.kind)&&"NotAllowedError"===t.name&&(e.muted=!0,e.play().catch(()=>{}))}),this.emit(cV.ElementAttached,e),e}detach(e){try{if(e){rJ(this.mediaStreamTrack,e);let t=this.attachedElements.indexOf(e);return t>=0&&(this.attachedElements.splice(t,1),this.recycleElement(e),this.emit(cV.ElementDetached,e)),e}let t=[];return this.attachedElements.forEach(e=>{rJ(this.mediaStreamTrack,e),t.push(e),this.recycleElement(e),this.emit(cV.ElementDetached,e)}),this.attachedElements=[],t}finally{0===this.attachedElements.length&&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=ia(e.loggerName)),e.loggerContextCb&&(this.loggerContextCb=e.loggerContextCb)}recycleElement(e){if(e instanceof HTMLAudioElement){let t=!0;e.pause(),rz.forEach(e=>{e.parentElement||(t=!1)}),t&&rz.push(e)}}handleAppVisibilityChanged(){return il(this,void 0,void 0,function*(){this.isInBackground="hidden"===document.visibilityState,this.isInBackground||this.kind!==rW.Kind.Video||setTimeout(()=>this.attachedElements.forEach(e=>e.play().catch(()=>{})),0)})}addAppVisibilityListener(){r4()?(this.isInBackground="hidden"===document.visibilityState,document.addEventListener("visibilitychange",this.appVisibilityChangedListener)):this.isInBackground=!1}removeAppVisibilityListener(){r4()&&document.removeEventListener("visibilitychange",this.appVisibilityChangedListener)}}function rG(e,t){let n,i;n=t.srcObject instanceof MediaStream?t.srcObject:new MediaStream,(i="audio"===e.kind?n.getAudioTracks():n.getVideoTracks()).includes(e)||(i.forEach(e=>{n.removeTrack(e)}),n.addTrack(e)),r2()&&t instanceof HTMLVideoElement||(t.autoplay=!0),t.muted=0===n.getAudioTracks().length,t instanceof HTMLVideoElement&&(t.playsInline=!0),t.srcObject!==n&&(t.srcObject=n,(r2()||r0())&&t instanceof HTMLVideoElement&&setTimeout(()=>{t.srcObject=n,t.play().catch(()=>{})},0))}function rJ(e,t){if(t.srcObject instanceof MediaStream){let n=t.srcObject;n.removeTrack(e),n.getTracks().length>0?t.srcObject=n:t.srcObject=null}}(o7=r=(o8=rW||(rW={})).Kind||(o8.Kind={})).Audio="audio",o7.Video="video",o7.Unknown="unknown",(ce=a=o8.Source||(o8.Source={})).Camera="camera",ce.Microphone="microphone",ce.ScreenShare="screen_share",ce.ScreenShareAudio="screen_share_audio",ce.Unknown="unknown",(ct=s=o8.StreamState||(o8.StreamState={})).Active="active",ct.Paused="paused",ct.Unknown="unknown",o8.kindToProto=function(e){switch(e){case r.Audio:return eJ.AUDIO;case r.Video:return eJ.VIDEO;default:return eJ.DATA}},o8.kindFromProto=function(e){switch(e){case eJ.AUDIO:return r.Audio;case eJ.VIDEO:return r.Video;default:return r.Unknown}},o8.sourceToProto=function(e){switch(e){case a.Camera:return eK.CAMERA;case a.Microphone:return eK.MICROPHONE;case a.ScreenShare:return eK.SCREEN_SHARE;case a.ScreenShareAudio:return eK.SCREEN_SHARE_AUDIO;default:return eK.UNKNOWN}},o8.sourceFromProto=function(e){switch(e){case eK.CAMERA:return a.Camera;case eK.MICROPHONE:return a.Microphone;case eK.SCREEN_SHARE:return a.ScreenShare;case eK.SCREEN_SHARE_AUDIO:return a.ScreenShareAudio;default:return a.Unknown}},o8.streamStateFromProto=function(e){switch(e){case tH.ACTIVE:return s.Active;case tH.PAUSED:return s.Paused;default:return s.Unknown}};let rK="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";function r$(e){return new rc(t=>rP.setTimeout(t,e))}function rY(){return"addTransceiver"in RTCPeerConnection.prototype}function rQ(){return"addTrack"in RTCPeerConnection.prototype}function rX(e){return"av1"===e||"vp9"===e}function rZ(e){return!(!document||r5())&&(e||(e=document.createElement("audio")),"setSinkId"in e)}function r0(){var e;return(null==(e=rd())?void 0:e.name)==="Firefox"}function r1(){let e=rd();return!!e&&"Chrome"===e.name&&"iOS"!==e.os}function r2(){var e;return(null==(e=rd())?void 0:e.name)==="Safari"}function r5(){let e=rd();return(null==e?void 0:e.name)==="Safari"||(null==e?void 0:e.os)==="iOS"}function r3(){var e,t;return!!r4()&&(null!=(t=null==(e=navigator.userAgentData)?void 0:e.mobile)?t:/Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent))}function r4(){return"u">typeof document}function r6(){return"ReactNative"==navigator.product}function r9(e){return e.hostname.endsWith(".livekit.cloud")||e.hostname.endsWith(".livekit.run")}function r8(e){return r9(e)?e.hostname.split(".")[0]:null}function r7(){if(e.g&&e.g.LiveKitReactNativeGlobal)return e.g.LiveKitReactNativeGlobal}function ae(){if(!r6())return;let e=r7();if(e)return e.platform}function at(){if(r4())return window.devicePixelRatio;if(r6()){let e=r7();if(e)return e.devicePixelRatio}return 1}function an(e,t){let n=e.split("."),i=t.split("."),r=Math.min(n.length,i.length);for(let e=0;e<r;++e){let t=parseInt(n[e],10),a=parseInt(i[e],10);if(t>a)return 1;if(t<a)return -1;if(e===r-1&&t===a)return 0}return""===e&&""!==t?-1:""===t?1:n.length==i.length?0:n.length<i.length?-1:1}function ai(e){for(let t of e)t.target.handleResize(t)}
2function ar(e){for(let t of e)t.target.handleVisibilityChanged(t)}let aa=null,as=()=>(aa||(aa=new ResizeObserver(ai)),aa),ao=null,ac=()=>(ao||(ao=new IntersectionObserver(ar,{root:null,rootMargin:"0px"})),ao);function al(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:16,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=document.createElement("canvas");r.width=e,r.height=t;let a=r.getContext("2d");null==a||a.fillRect(0,0,r.width,r.height),i&&a&&(a.beginPath(),a.arc(e/2,t/2,50,0,2*Math.PI,!0),a.closePath(),a.fillStyle="grey",a.fill());let[s]=r.captureStream().getTracks();if(!s)throw Error("Could not get empty media stream video track");return s.enabled=n,s}function ad(){if(!n){let e=new AudioContext,t=e.createOscillator(),i=e.createGain();i.gain.setValueAtTime(0,0);let r=e.createMediaStreamDestination();if(t.connect(i),i.connect(r),t.start(),[n]=r.stream.getAudioTracks(),!n)throw Error("Could not get empty media stream audio track");n.enabled=!1}return n.clone()}class au{get isResolved(){return this._isResolved}constructor(e,t){this._isResolved=!1,this.onFinally=t,this.promise=new Promise((t,n)=>il(this,void 0,void 0,function*(){this.resolve=t,this.reject=n,e&&(yield e(t,n))})).finally(()=>{var e;this._isResolved=!0,null==(e=this.onFinally)||e.call(this)})}}function ah(e,t){let n=Object.assign({cloneTrack:!1,fftSize:2048,smoothingTimeConstant:.8,minDecibels:-100,maxDecibels:-80},t),i=rj();if(!i)throw Error("Audio Context not supported on this browser");let r=n.cloneTrack?e.mediaStreamTrack.clone():e.mediaStreamTrack,a=i.createMediaStreamSource(new MediaStream([r])),s=i.createAnalyser();s.minDecibels=n.minDecibels,s.maxDecibels=n.maxDecibels,s.fftSize=n.fftSize,s.smoothingTimeConstant=n.smoothingTimeConstant,a.connect(s);let o=new Uint8Array(s.frequencyBinCount);return{calculateVolume:()=>{s.getByteFrequencyData(o);let e=0;for(let t of o)e+=Math.pow(t/255,2);return Math.sqrt(e/o.length)},analyser:s,cleanup:()=>il(this,void 0,void 0,function*(){yield i.close(),n.cloneTrack&&r.stop()})}}function ap(e){if("string"==typeof e||"number"==typeof e)return e;if(Array.isArray(e))return e[0];if(void 0!==e.exact)return Array.isArray(e.exact)?e.exact[0]:e.exact;if(void 0!==e.ideal)return Array.isArray(e.ideal)?e.ideal[0]:e.ideal;throw Error("could not unwrap constraint")}function am(e){return e.startsWith("ws")?e.replace(/^(ws)/,"http"):e}function af(e){switch(e.reason){case cL.LeaveRequest:return e.context;case cL.Cancelled:return eX.CLIENT_INITIATED;case cL.NotAllowed:return eX.USER_REJECTED;case cL.ServerUnreachable:return eX.JOIN_FAILURE;default:return eX.UNKNOWN_REASON}}function ag(e){return void 0!==e?Number(e):void 0}function av(e){return void 0!==e?BigInt(e):void 0}function ab(e){return!!e&&!(e instanceof MediaStreamTrack)&&e.isLocal}function ay(e){return!!e&&e.kind==rW.Kind.Audio}function ak(e){return!!e&&e.kind==rW.Kind.Video}function aT(e){return ab(e)&&ak(e)}function aS(e){return ab(e)&&ay(e)}function aC(e){return!!e&&!e.isLocal}function aw(e){return aC(e)&&ak(e)}function aE(){return"u">typeof CompressionStream}function aP(e){return e.endsWith("/")?e:"".concat(e,"/")}function aR(e,t){return e.pathname="".concat(aP(e.pathname)).concat(t),e}function aI(e){if("string"==typeof e)return tG.fromJson(JSON.parse(e),{ignoreUnknownFields:!0});if(e instanceof ArrayBuffer)return tG.fromBinary(new Uint8Array(e));throw Error("could not decode websocket message: ".concat(typeof e))}let a_="lk_e2ee";function ax(){return void 0!==window.RTCRtpScriptTransform}(cn=cG||(cG={})).SetKey="setKey",cn.RatchetRequest="ratchetRequest",cn.KeyRatcheted="keyRatcheted",(cJ||(cJ={})).KeyRatcheted="keyRatcheted",(ci=cK||(cK={})).ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",ci.EncryptionError="encryptionError",(c$||(c$={})).Error="cryptorError",ip.EventEmitter,(cr=cY||(cY={}))[cr.InvalidKey=0]="InvalidKey",cr[cr.MissingKey=1]="MissingKey",cr[cr.InternalError=2]="InternalError";class aO extends ip.EventEmitter{constructor(e,t){super(),this.decryptDataRequests=new Map,this.encryptDataRequests=new Map,this.onWorkerMessage=e=>{var t,n;let{kind:i,data:r}=e.data;switch(i){case"error":if(ii.error(r.error.message),r.uuid){let e=this.decryptDataRequests.get(r.uuid);if(null==e?void 0:e.reject){e.reject(r.error);break}let t=this.encryptDataRequests.get(r.uuid);if(null==t?void 0:t.reject){t.reject(r.error);break}}
2this.emit(cK.EncryptionError,r.error,r.participantIdentity);break;case"initAck":r.enabled&&this.keyProvider.getKeys().forEach(e=>{this.postKey(e,!1)});break;case"enable":if(r.enabled&&this.keyProvider.getKeys().forEach(e=>{this.postKey(e,!1)}),this.encryptionEnabled!==r.enabled&&r.participantIdentity===(null==(t=this.room)?void 0:t.localParticipant.identity))this.emit(cK.ParticipantEncryptionStatusChanged,r.enabled,this.room.localParticipant),this.encryptionEnabled=r.enabled;else if(r.participantIdentity){let e=null==(n=this.room)?void 0:n.getParticipantByIdentity(r.participantIdentity);if(!e)throw TypeError("couldn't set encryption status, participant not found".concat(r.participantIdentity));this.emit(cK.ParticipantEncryptionStatusChanged,r.enabled,e)}break;case"ratchetKey":this.keyProvider.emit(cG.KeyRatcheted,r.ratchetResult,r.participantIdentity,r.keyIndex);break;case"decryptDataResponse":let a=this.decryptDataRequests.get(r.uuid);(null==a?void 0:a.resolve)&&a.resolve(r);break;case"encryptDataResponse":let s=this.encryptDataRequests.get(r.uuid);(null==s?void 0:s.resolve)&&s.resolve(r)}},this.onWorkerError=e=>{ii.error("e2ee worker encountered an error:",{error:e.error}),this.emit(cK.EncryptionError,e.error,void 0)},this.keyProvider=e.keyProvider,this.worker=e.worker,this.encryptionEnabled=!1,this.dataChannelEncryptionEnabled=t}get isEnabled(){return this.encryptionEnabled}get isDataChannelEncryptionEnabled(){return this.isEnabled&&this.dataChannelEncryptionEnabled}setup(e){if(!(void 0!==window.RTCRtpSender&&void 0!==window.RTCRtpSender.prototype.createEncodedStreams||ax()))throw new rv("tried to setup end-to-e
2nd encryption on an unsupported browser");if(ii.info("setting up e2ee"),e!==this.room){this.room=e,this.setupEventListeners(e,this.keyProvider);let t={kind:"init",data:{keyProviderOptions:this.keyProvider.getOptions(),loglevel:is.getLevel()}};this.worker&&(ii.info("initializing worker",{worker:this.worker}),this.worker.onmessage=this.onWorkerMessage,this.worker.onerror=this.onWorkerError,this.worker.postMessage(t))}}setParticipantCryptorEnabled(e,t){ii.debug("set e2ee to ".concat(e," for participant ").concat(t)),this.postEnable(e,t)}setSifTrailer(e){e&&0!==e.length?this.postSifTrailer(e):ii.warn("ignoring server sent trailer as it's empty")}setupEngine(e){e.on(cq.RTPVideoMapUpdate,e=>{this.postRTPMap(e)})}setupEventListeners(e,t){e.on(cF.TrackPublished,(e,t)=>this.setParticipantCryptorEnabled(e.trackInfo.encryption!==te.NONE,t.identity)),e.on(cF.ConnectionStateChanged,t=>{t===ll.Connected&&e.remoteParticipants.forEach(e=>{e.trackPublications.forEach(t=>{this.setParticipantCryptorEnabled(t.trackInfo.encryption!==te.NONE,e.identity)})})}).on(cF.TrackUnsubscribed,(e,t,n)=>{var i;let r={kind:"removeTransform",data:{participantIdentity:n.identity,trackId:e.mediaStreamID}};null==(i=this.worker)||i.postMessage(r)}).on(cF.TrackSubscribed,(e,t,n)=>{this.setupE2EEReceiver(e,n.identity,t.trackInfo)}).on(cF.SignalConnected,()=>{if(!this.room)throw TypeError("expected room to be present on signal connect");let e=t.getLatestManuallySetKeyIndex();t.getKeys().forEach(t=>{var n;this.postKey(t,e===(null!=(n=t.keyIndex)?n:0))}),this.setParticipantCryptorEnabled(this.room.localParticipant.isE2EEEnabled,this.room.localParticipant.identity)}),e.localParticipant.on(cB.LocalSenderCreated,(e,t)=>il(this,void 0,void 0,function*(){this.setupE2EESender(t,e)})),e.localParticipant.on(cB.LocalTrackPublished,e=>{if(!ak(e.track)||!r5())return;let t={kind:"updateCodec",data:{trackId:e.track.mediaStreamID,codec:rB(e.trackInfo.codecs[0].mimeType),participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(t)}),t.on(cG.SetKey,(e,t)=>this.postKey(e,null==t||t)).on(cG.RatchetRequest,(e,t)=>this.postRatchetRequest(e,t))}encryptData(e){return il(this,void 0,void 0,function*(){if(!this.worker)throw Error("could not encrypt data, worker is missing");let t=crypto.randomUUID(),n={kind:"encryptDataRequest",data:{uuid:t,payload:e,participantIdentity:this.room.localParticipant.identity}},i=new au;return i.onFinally=()=>{this.encryptDataRequests.delete(t)},this.encryptDataRequests.set(t,i),this.worker.postMessage(n),i.promise})}handleEncryptedData(e,t,n,i){if(!this.worker)throw Error("could not handle encrypted data, worker is missing");let r=crypto.randomUUID(),a=new au;return a.onFinally=()=>{this.decryptDataRequests.delete(r)},this.decryptDataRequests.set(r,a),this.worker.postMessage({kind:"decryptDataRequest",data:{uuid:r,payload:e,iv:t,participantIdentity:n,keyIndex:i}}),a.promise}postRatchetRequest(e,t){if(!this.worker)throw Error("could not ratchet key, worker is missing");this.worker.postMessage({kind:"ratchetRequest",data:{participantIdentity:e,keyIndex:t}})}postKey(e,t){var n;let{key:i,participantIdentity:r,keyIndex:a}=e;if(!this.worker)throw Error("could not set key, worker is missing");let s={kind:"setKey",data:{participantIdentity:r,isPublisher:r===(null==(n=this.room)?void 0:n.localParticipant.identity),key:i,keyIndex:a,updateCurrentKeyIndex:t}};this.worker.postMessage(s)}postEnable(e,t){if(this.worker)this.worker.postMessage({kind:"enable",data:{enabled:e,participantIdentity:t}});else throw ReferenceError("failed to enable e2ee, worker is not ready")}postRTPMap(e){var t;if(!this.worker)throw TypeError("could not post rtp map, worker is missing");if(!(null==(t=this.room)?void 0:t.localParticipant.identity))throw TypeError("could not post rtp map, local participant identity is missing");let n={kind:"setRTPMap",data:{map:e,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(n)}postSifTrailer(e){if(!this.worker)throw Error("could not post SIF trailer, worker is missing");this.worker.postMessage({kind:"setSifTrailer",data:{trailer:e}})}setupE2EEReceiver(e,t,n){if(e.receiver){if(!(null==n?void 0:n.mimeType)||""===n.mimeType)throw TypeError("MimeType missing from trackInfo, cannot set up E2EE cryptor");this.handleReceiver(e.receiver,e.mediaStreamID,t,"video"===e.kind?rB(n.mimeType):void 0)}}setupE2EESender(e,t){if(!ab(e)||!t){t||ii.warn("early return because sender is not ready");return}this.handleSender(t,e.mediaStreamID,void 0)}handleReceiver(e,t,n,i){return il(this,void 0,void 0,function*(){if(this.worker){if(ax()&&!r1())e.transform=new RTCRtpScriptTransform(this.worker,{kind:"decode",participantIdentity:n,trackId:t,codec:i});else{if(a_ in e&&i)return void this.worker.postMessage({kind:"updateCodec",data:{trackId:t,codec:i,participantIdentity:n}});let r=e.writableStream,a=e.readableStream;if(!r||!a){let t=e.createEncodedStreams();e.writableStream=t.writable,r=t.writable,e.readableStream=t.readable,a=t.readable}let s={kind:"decode",data:{readableStream:a,writableStream:r,trackId:t,codec:i,participantIdentity:n,isReuse:a_ in e}};this.worker.postMessage(s,[a,r])}e[a_]=!0}})}handleSender(e,t,n){var i;if(!(a_ in e)&&this.worker){if(!(null==(i=this.room)?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(ax()&&!r1()){ii.info("initialize script transform");let i={kind:"encode",participantIdentity:this.room.localParticipant.identity,trackId:t,codec:n};e.transform=new RTCRtpScriptTransform(this.worker,i)}else{ii.info("initialize encoded streams");let i=e.createEncodedStreams(),r={kind:"encode",data:{readableStream:i.readable,writableStream:i.writable,codec:n,trackId:t,participantIdentity:this.room.localParticipant.identity,isReuse:!1}};this.worker.postMessage(r,[i.readable,i.writable])}e[a_]=!0}}}class aM{constructor(){this.failedConnectionAttempts=new Map,this.backOffPromises=new Map}static getInstance(){return this._instance||(this._instance=new aM),this._instance}addFailedConnectionAttempt(e){var t;let n=r8(new URL(e));if(!n)return;let i=null!=(t=this.failedConnectionAttempts.get(n))?t:0;this.failedConnectionAttempts.set(n,i+1),this.backOffPromises.set(n,r$(Math.min(500*Math.pow(2,i),15e3)))}getBackOffPromise(e){let t=new URL(e),n=t&&r8(t);return n&&this.backOffPromises.get(n)||Promise.resolve()}resetFailedConnectionAttempts(e){let t=new URL(e),n=t&&r8(t);n&&(this.failedConnectionAttempts.set(n,0),this.backOffPromises.set(n,Promise.resolve()))}resetAll(){this.backOffPromises.clear(),this.failedConnectionAttempts.clear()}}aM._instance=null;let aD="default";class aA{constructor(){this._previousDevices=[]}static getInstance(){return void 0===this.instance&&(this.instance=new aA),this.instance}get previousDevices(){return this._previousDevices}getDevices(e){return il(this,arguments,void 0,function(e){var t=this;let n=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return function*(){var i;if((null==(i=aA.userMediaPromiseMap)?void 0:i.size)>
20){ii.debug("awaiting getUserMedia promise");try{e?yield aA.userMediaPromiseMap.get(e):yield Promise.all(aA.userMediaPromiseMap.values())}catch(e){ii.warn("error waiting for media permissons")}}let r=yield navigator.mediaDevices.enumerateDevices();if(n&&!(r2()&&t.hasDeviceInUse(e))&&(0===r.filter(t=>t.kind===e).length||r.some(t=>{let n=""===t.label,i=!e||t.kind===e;return n&&i}))){let t=yield navigator.mediaDevices.getUserMedia({video:"audioinput"!==e&&"audiooutput"!==e,audio:"videoinput"!==e&&{deviceId:{ideal:"default"}}});r=yield navigator.mediaDevices.enumerateDevices(),t.getTracks().forEach(e=>{e.stop()})}return t._previousDevices=r,e&&(r=r.filter(t=>t.kind===e)),r}()})}normalizeDeviceId(e,t,n){return il(this,void 0,void 0,function*(){if(t!==aD)return t;let i=yield this.getDevices(e),r=i.find(e=>e.deviceId===aD);if(!r)return void ii.warn("could not reliably determine default device");let a=i.find(e=>e.deviceId!==aD&&e.groupId===(null!=n?n:r.groupId));return a?null==a?void 0:a.deviceId:void ii.warn("could not reliably determine default device")})}hasDeviceInUse(e){return e?aA.userMediaPromiseMap.has(e):aA.userMediaPromiseMap.size>0}}aA.mediaDeviceKinds=["audioinput","audiooutput","videoinput"],aA.userMediaPromiseMap=new Map;class aN{static u16(e){return new aN(e,65535)}static u32(e){return new aN(e,0xffffffff)}constructor(e,t){if(this.value=e,e<0)throw Error("WrapAroundUnsignedInt: cannot faithfully represent an integer smaller than 0");if(t>Number.MAX_SAFE_INTEGER)throw Error("WrapAroundUnsignedInt: cannot faithfully represent an integer bigger than MAX_SAFE_INTEGER.");this.maxSize=t,this.clamp()}clamp(){for(;this.value>this.maxSize;)this.value-=this.maxSize+1;for(;this.value<0;)this.value+=this.maxSize+1}clone(){return new aN(this.value,this.maxSize)}update(e){this.value=e(this.value),this.clamp()}increment(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.update(t=>t+e)}decrement(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.update(t=>t-e)}getThenIncrement(){let e=this.value;return this.increment(),new aN(e,this.maxSize)}isBefore(e){let t=this.value>>>0,n=(e.value>>>0)-t>>>0;return 0!==n&&n<this.maxSize+1}}class aL{static fromRtpTicks(e){return new aL(e,9e4)}static rtpRandom(){let e=Math.round(0xffffffff*Math.random());return aL.fromRtpTicks(e)}constructor(e,t){this.timestamp=aN.u32(e),this.rateInHz=t}asTicks(){return this.timestamp.value}clone(){return new aL(this.timestamp.value,this.rateInHz)}wrappingAdd(e){this.timestamp.increment(e)}isBefore(e){return this.timestamp.isBefore(e.timestamp)}}class aU{constructor(e,t,n){this.epoch=t,this.base=n,this.previous=n.clone(),this.rateInHz=e}static startingNow(e,t){return new aU(t,new Date,e)}static startingAtTime(e,t,n){return new aU(n,e,t)}static rtpStartingNow(e){return aU.startingNow(e,9e4)}static rtpStartingAtTime(e,t){return aU.startingAtTime(e,t,9e4)}now(){return this.at(new Date)}at(e){let t=e.getTime()-this.epoch.getTime(),n=aU.durationInMsToTicks(t,this.rateInHz),i=this.base.clone();return i.wrappingAdd(n),i.isBefore(this.previous)&&(i=this.previous),this.previous=i.clone(),i.clone()}static durationInMsToTicks(e,t){return Math.round((1e6*e*t+5e8)/1e9)}}function aj(e){if(e instanceof DataView)return e;if(e instanceof ArrayBuffer)return new DataView(e);if(e instanceof Uint8Array)return new DataView(e.buffer,e.byteOffset,e.byteLength);throw Error("Error coercing ".concat(e," to DataView - input was not DataView, ArrayBuffer, or Uint8Array."))}(ca=cQ||(cQ={}))[ca.Reserved=0]="Reserved",ca[ca.TooLarge=1]="TooLarge";class aF extends rf{constructor(e,t){super(19,e),this.name="DataTrackHandleError",this.reason=t,this.reasonName=cQ[t]}isReason(e){return this.reason===e}static tooLarge(){return new aF("Value too large to be a valid track handle",cQ.TooLarge)}static reserved(e){return new aF("0x".concat(e.toString(16)," is a reserved value."),cQ.Reserved)}}let aB={fromNumber(e){if(0===e)throw aF.reserved(e);if(e>65535)throw aF.tooLarge();return e}};class aq{constructor(){this.value=0}get(){return(this.value+=1,this.value>65535)?null:this.value}}let aV=e=>({sid:e.sid,pubHandle:e.pubHandle,name:e.name,usesE2ee:e.encryption!==te.NONE});(cs=cX||(cX={}))[cs.WAITING=0]="WAITING",cs[cs.RUNNING=1]="RUNNING",cs[cs.COMPLETED=2]="COMPLETED";class aH{constructor(){this.pendingTasks=new Map,this.taskMutex=new C,this.nextTaskIndex=0}run(e){return il(this,void 0,void 0,function*(){let t={id:this.nextTaskIndex++,enqueuedAt:Date.now(),status:cX.WAITING};this.pendingTasks.set(t.id,t);let n=yield this.taskMutex.lock();try{return t.executedAt=Date.now(),t.status=cX.RUNNING,yield e()}finally{t.status=cX.COMPLETED,this.pendingTasks.delete(t.id),n()}})}flush(){return il(this,void 0,void 0,function*(){return this.run(()=>il(this,void 0,void 0,function*(){}))})}
2snapshot(){return Array.from(this.pendingTasks.values())}}class az{get readyState(){return this.ws.readyState}constructor(e){var t,n;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null==(t=i.signal)?void 0:t.aborted)throw new DOMException("This operation was aborted","AbortError");this.url=e;const r=new WebSocket(e,null!=(n=i.protocols)?n:[]);r.binaryType="arraybuffer",this.ws=r;const a=function(){let{closeCode:e,reason:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r.close(e,t)};this.opened=new rc((e,t)=>{let n=()=>{t(rg.websocket("Encountered websocket error during connection establishment"))};r.onopen=()=>{e({readable:new ReadableStream({start(e){r.onmessage=t=>{let{data:n}=t;return e.enqueue(n)},r.onerror=t=>e.error(t)},cancel:a}),writable:new WritableStream({write(e){r.send(e)},abort(){r.close()},close:a}),protocol:r.protocol,extensions:r.extensions}),r.removeEventListener("error",n)},r.addEventListener("error",n)}),this.closed=new rc((e,t)=>{let n=()=>il(this,void 0,void 0,function*(){let n=new rc(e=>{r.readyState===WebSocket.CLOSED||r.addEventListener("close",t=>{e(t)},{once:!0})}),i=yield rc.race([r$(250),n]);i?e(i):t(rg.websocket("Encountered unspecified websocket error without a timely close event"))});r.onclose=t=>{let{code:i,reason:a}=t;e({closeCode:i,reason:a}),r.removeEventListener("error",n)},r.addEventListener("error",n)}),i.signal&&(i.signal.onabort=()=>r.close()),this.close=a}}let aW=["syncState","trickle","offer","answer","simulate","leave"];(co=cZ||(cZ={}))[co.CONNECTING=0]="CONNECTING",co[co.CONNECTED=1]="CONNECTED",co[co.RECONNECTING=2]="RECONNECTING",co[co.DISCONNECTING=3]="DISCONNECTING",co[co.DISCONNECTED=4]="DISCONNECTED";class aG{get currentState(){return this.state}get isDisconnected(){return this.state===cZ.DISCONNECTING||this.state===cZ.DISCONNECTED}get isEstablishingConnection(){return this.state===cZ.CONNECTING||this.state===cZ.RECONNECTING}getNextRequestId(){return this._requestId+=1,this._requestId}constructor(){var e;let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.rtt=0,this.state=cZ.DISCONNECTED,this.log=ii,this._requestId=0,this.useV0SignalPath=!1,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.onMediaSectionsRequirement=void 0},this.log=ia(null!=(e=n.loggerName)?e:cM.Signal),this.loggerContextCb=n.loggerContextCb,this.useJSON=t,this.requestQueue=new aH,this.queuedRequests=[],this.closingLock=new C,this.connectionLock=new C,this.state=cZ.DISCONNECTED}get logContext(){var e,t;return null!=(t=null==(e=this.loggerContextCb)?void 0:e.call(this))?t:{}}join(e,t,n,i){return il(this,arguments,void 0,function(e,t,n,i){var r=this;let a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s=arguments.length>5?arguments[5]:void 0;return function*(){return r.state=cZ.CONNECTING,r.options=n,yield r.connect(e,t,n,i,a,s)}()})}reconnect(e,t,n,i){return il(this,void 0,void 0,function*(){return this.options?(this.state=cZ.RECONNECTING,this.clearPingInterval(),yield this.connect(e,t,Object.assign(Object.assign({},this.options),{reconnect:!0,sid:n,reconnectReason:i}),void 0,this.useV0SignalPath)):void this.log.warn("attempted to reconnect without signal options being set, ignoring",this.logContext)})}connect(e,t,n,i){return il(this,arguments,void 0,function(e,t,n,i){var r=this;let a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s=arguments.length>5?arguments[5]:void 0;return function*(){var o,c,l,d,u;let h,p,m=yield r.connectionLock.lock();r.connectOptions=n,r.useV0SignalPath=a;let f=(p=new tE({sdk:tP.JS,protocol:16,version:"2.18.7"}),r6()&&(p.os=null!=(o=ae())?o:""),p),g=(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=function(e,t){let n=new URL(e.startsWith("http")?e.replace(/^(http)/,"ws"):e);return t.forEach((e,t)=>{n.searchParams.set(t,e)}),aR(n,"rtc")}(e,t);return n?i:aR(i,"v1")})(e,a?(c=t,l=f,d=n,(h=new URLSearchParams).set("access_token",c),d.reconnect&&(h.set("reconnect","1"),d.sid&&h.set("sid",d.sid)),h.set("auto_subscribe",d.autoSubscribe?"1":"0"),h.set("sdk",r6()?"reactnative":"js"),h.set("version",l.version),h.set("protocol",l.protocol.toString()),l.deviceModel&&h.set("device_model",l.deviceModel),l.os&&h.set("os",l.os),l.osVersion&&h.set("os_version",l.osVersion),l.browser&&h.set("browser",l.browser),l.browserVersion&&h.set("browser_version",l.browserVersion),d.adaptiveStream&&h.set("adaptive_stream","1"),d.reconnectReason&&h.set("reconnect_reason",d.reconnectReason.toString()),(null==(u=navigator.connection)?void 0:u.type)&&h.set("network",navigator.connection.type),h):yield function(e,t,n,i){return il(this,void 0,void 0,function*(){let r,a,s=new URLSearchParams;s.set("access_token",e);let o=new nU({clientInfo:t,connectionSettings:new nL({autoSubscribe:!!n.autoSubscribe,adaptiveStream:!!n.adaptiveStream}),reconnect:!!n.reconnect,participantSid:n.sid?n.sid:void 0,publisherOffer:i});n.reconnectReason&&(o.reconnectReason=n.reconnectReason);let c=o.toBinary();if(aE()){let e=new CompressionStream("gzip"),t=e.writable.getWriter();t.write(new Uint8Array(c)),t.close();let n=[],i=e.readable.getReader();for(;;){let{done:e,value:t}=yield i.read();if(e)break;n.push(t)}let s=new Uint8Array(n.reduce((e,t)=>
2e+t.length,0)),o=0;for(let e of n)s.set(e,o),o+=e.length;r=s,a=nF.GZIP}else r=c,a=nF.NONE;let l=new nj({joinRequest:r,compression:a}).toBinary();return s.set("join_request",btoa(Array.from(l,e=>String.fromCodePoint(e)).join("")).replace(/\+/g,"-").replace(/\//g,"_")),s})}(t,f,n,s),a).toString(),v=aR(new URL(am(g)),"validate").toString();return new Promise((e,t)=>il(r,void 0,void 0,function*(){var r,a;try{let s=!1,o=e=>il(this,void 0,void 0,function*(){if(s)return;s=!0;let n=e instanceof Event?e.currentTarget:e,i=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Unknown reason";if(!(e instanceof AbortSignal))return t;let n=e.reason;switch(typeof n){case"string":return n;case"object":return n instanceof Error?n.message:t;default:return"toString"in n?n.toString():t}}(n,"Abort handler called");this.streamWriter&&!this.isDisconnected?this.sendLeave().then(()=>this.close(i)).catch(e=>{this.log.error(e),this.close()}):this.close(),c(),t(rg.cancelled(i))});null==i||i.addEventListener("abort",o);let c=()=>{clearTimeout(l),null==i||i.removeEventListener("abort",o)},l=setTimeout(()=>{o(rg.timeout("room connection has timed out (signal)"))},n.websocketTimeout),d=(e,t)=>{this.handleSignalConnected(e,l,t)},u=new URL(g);u.searchParams.has("access_token")&&u.searchParams.set("access_token","<redacted>"),this.log.debug("connecting to ".concat(u),Object.assign({reconnect:n.reconnect,reconnectReason:n.reconnectReason},this.logContext)),this.ws&&(yield this.close(!1)),this.ws=new az(g);try{this.ws.closed.then(e=>{var n;this.isEstablishingConnection&&t(rg.internal("Websocket got closed during a (re)connection attempt: ".concat(e.reason))),1e3!==e.closeCode&&(this.log.warn("websocket closed",Object.assign(Object.assign({},this.logContext),{reason:e.reason,code:e.closeCode,wasClean:1e3===e.closeCode,state:this.state})),this.state===cZ.CONNECTED&&this.handleOnClose(null!=(n=e.reason)?n:"Unexpected WS error"))}).catch(e=>{this.isEstablishingConnection&&t(rg.internal("Websocket error during a (re)connection attempt: ".concat(e)))});let i=yield this.ws.opened.catch(e=>il(this,void 0,void 0,function*(){if(this.state!==cZ.CONNECTED){this.state=cZ.DISCONNECTED,clearTimeout(l);let n=yield this.handleConnectionError(e,v);t(n);return}this.handleWSError(e),t(e)}));if(clearTimeout(l),!i)return;let s=i.readable.getReader();this.streamWriter=i.writable.getWriter();let o=yield s.read();if(s.releaseLock(),!o.value)throw rg.internal("no message received as first message");let c=aI(o.value),u=this.validateFirstMessage(c,null!=(r=n.reconnect)&&r);if(!u.isValid)return void t(u.error);(null==(a=c.message)?void 0:a.case)==="join"&&(this.pingTimeoutDuration=c.message.value.pingTimeout,this.pingIntervalDuration=c.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.onJoined&&this.onJoined(c.message.value));let h=u.shouldProcessFirstMessage?c:void 0;d(i,h),e(u.response)}catch(e){t(e)}finally{c()}}finally{m()}}))}()})}startReadingLoop(e,t){return il(this,void 0,void 0,function*(){for(t&&this.handleSignalResponse(t);;){this.signalLatency&&(yield r$(this.signalLatency));let{done:t,value:n}=yield e.read();if(t)break;let i=aI(n);this.handleSignalResponse(i)}})}close(){return il(this,arguments,void 0,function(){var e=this;let t=!(arguments.length>0)||void 0===arguments[0]||arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Close method called on signal client";return function*(){if([cZ.DISCONNECTING||cZ.DISCONNECTED].includes(e.state))return void e.log.debug("ignoring signal close as it's already in disconnecting state");let i=yield e.closingLock.lock();try{if(e.clearPingInterval(),t&&(e.state=cZ.DISCONNECTING),e.ws){e.ws.close({closeCode:1e3,reason:n});let t=e.ws.closed;e.ws=void 0,e.streamWriter=void 0,yield Promise.race([t,r$(250)])}}catch(t){e.log.debug("websocket error while closing",Object.assign(Object.assign({},e.logContext),{error:t}))}finally{t&&(e.state=cZ.DISCONNECTED),i()}}()})}sendOffer(e,t){this.log.debug("sending offer",Object.assign(Object.assign({},this.logContext),{offerSdp:e.sdp})),this.sendRequest({case:"offer",value:aK(e,t)})}sendAnswer(e,t){return this.log.debug("sending answer",Object.assign(Object.assign({},this.logContext),{answerSdp:e.sdp})),this.sendRequest({case:"answer",value:aK(e,t)})}sendIceCandidate(e,t){return this.log.debug("sending ice candidate",Object.assign(Object.assign({},this.logContext),{candidate:e})),this.sendRequest({case:"trickle",value:new t1({candidateInit:JSON.stringify(e),target:t})})}sendMuteTrack(e,t){return this.sendRequest({case:"mute",value:new t2({sid:e,muted:t})})}sendAddTrack(e){return this.sendRequest({case:"addTrack",value:e})}sendUpdateLocalMetadata(e,t){return il(this,arguments,void 0,function(e,t){var n=this;let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){let r=n.getNextRequestId();return yield n.sendRequest({case:"updateMetadata",value:new nc({requestId:r,metadata:e,name:t,attributes:i})}),r}()})}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,t){return this.sendRequest({case:"updateLayers",value:new no({trackSid:e,layers:t})})}sendUpdateSubscriptionPermissions(e,t){return this.sendRequest({case:"subscriptionPermission",value:new nT({allParticipants:e,trackPermissions:t})})}sendSimulateScenario(e){return this.sendRequest({case:"simulate",value:e})}sendPing(){return Promise.all([this.sendRequest({case:"ping",value:V.parse(Date.now())}),this.sendRequest({case:"pingReq",value:new nI({timestamp:V.parse(Date.now()),rtt:V.parse(this.rtt)})})])}sendUpdateLocalAudioTrack(e,t){return this.sendRequest({case:"updateAudioTrack",value:new ni({trackSid:e,features:t})})}sendLeave(){return this.sendRequest({case:"leave",value:new na({reason:eX.CLIENT_INITIATED,action:ns.DISCONNECT})})}sendPublishDataTrackRequest(e,t,n){return this.sendRequest({case:"publishDataTrackRequest",value:new t$({pubHandle:e,name:t,encryption:n?te.GCM:te.NONE})})}sendUnPublishDataTrackRequest(e){return this.sendRequest({case:"unpublishDataTrackRequest",value:new tQ({pubHandle:e})})}sendUpdateDataSubscription(e,t){return this.sendRequest({case:"updateDataSubscription",value:new ne({updates:[new nt({trackSid:e,subscribe:t})]})})}sendRequest(e){return il(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function*(){let i;if(!n&&(i=aW.indexOf(e.case)>=0,ii.trace("request allowed to bypass queue:",{canPass:i,req:e}),!i)&&t.state===cZ.RECONNECTING)return void t.queuedRequests.push(()=>il(t,void 0,void 0,function*(){yield this.sendRequest(e,!0)}));if(n||(yield t.requestQueue.flush()),t.signalLatency&&(yield r$(t.signalLatency)),t.isDisconnected)return void t.log.debug("skipping signal request (type: ".concat(e.case,") - SignalClient disconnected"));if(!t.streamWriter)return void t.log.error("cannot send signal request before connected, type: ".concat(null==e?void 0:e.case),t.logContext);let r=new tW({message:e});try{t.useJSON?yield t.streamWriter.write(r.toJsonString()):yield t.streamWriter.write(r.toBinary())}catch(e){t.log.error("error sending signal message",Object.assign(Object.assign({},t.logContext),{error:e}))}}()})}handleSignalResponse(e){var t,n;let i=e.message;if(void 0==i)return void this.log.debug("received unsupported message",this.logContext);let r=!1;if("answer"===i.case){let e=aJ(i.value);this.onAnswer&&this.onAnswer(e,i.value.id,i.value.midToTrackId)}else if("offer"===i.case){let e=aJ(i.value);this.onOffer&&this.onOffer(e,i.value.id,i.value.midToTrackId)}else if("trickle"===i.case){let e=JSON.parse(i.value.candidateInit);this.onTrickle&&this.onTrickle(e,i.value.target)}else"update"===i.case?this.onParticipantUpdate&&this.onParticipantUpdate(null!=(t=i.value.participants)?t:[]):"trackPublished"===i.case?this.onLocalTrackPublished&&this.onLocalTrackPublished(i.value):"speakersChanged"===i.case?this.onSpeakersChanged&&this.onSpeakersChanged(null!=(n=i.value.speakers)?n:[]):"leave"===i.case?this.onLeave&&this.onLeave(i.value):"mute"===i.case?this.onRemoteMuteChanged&&this.onRemoteMuteChanged(i.value.sid,i.value.muted):"roomUpdate"===i.case?this.onRoomUpdate&&i.value.room&&this.onRoomUpdate(i.value.room):"connectionQuality"===i.case?this.onConnectionQuality&&this.onConnectionQuality(i.value):"streamStateUpdate"===i.case?this.onStreamStateUpdate&&this.onStreamStateUpdate(i.value):"subscribedQualityUpdate"===i.case?this.onSubscribedQualityUpdate&&this.onSubscribedQualityUpdate(i.value):"subscriptionPermissionUpdate"===i.case?this.onSubscriptionPermissionUpdate&&this.onSubscriptionPermissionUpdate(i.value):"refreshToken"===i.case?this.onTokenRefresh&&this.onTokenRefresh(i.value):"trackUnpublished"===i.case?this.onLocalTrackUnpublished&&this.onLocalTrackUnpublished(i.value):"subscriptionResponse"===i.case?this.onSubscriptionError&&this.onSubscriptionError(i.value):"pong"===i.case||("pongResp"===i.case?(this.rtt=Date.now()-Number.parseInt(i.value.lastPingTimestamp.toString()),this.resetPingTimeout(),r=!0):"requestResponse"===i.case?this.onRequestResponse&&this.onRequestResponse(i.value):"trackSubscribed"===i.case?this.onLocalTrackSubscribed&&this.onLocalTrackSubscribed(i.value.trackSid):"roomMoved"===i.case?(this.onTokenRefresh&&this.onTokenRefresh(i.value.token),this.onRoomMoved&&this.onRoomMoved(i.value)):"mediaSectionsRequirement"===i.case?this.onMediaSectionsRequirement&&this.onMediaSectionsRequirement
2(i.value):"publishDataTrackResponse"===i.case?this.onPublishDataTrackResponse&&this.onPublishDataTrackResponse(i.value):"unpublishDataTrackResponse"===i.case?this.onUnPublishDataTrackResponse&&this.onUnPublishDataTrackResponse(i.value):"dataTrackSubscriberHandles"===i.case?this.onDataTrackSubscriberHandles&&this.onDataTrackSubscriberHandles(i.value):this.log.debug("unsupported message",Object.assign(Object.assign({},this.logContext),{msgCase:i.case})));r||this.resetPingTimeout()}setReconnected(){for(;this.queuedRequests.length>0;){let e=this.queuedRequests.shift();e&&this.requestQueue.run(e)}}handleOnClose(e){return il(this,void 0,void 0,function*(){if(this.state===cZ.DISCONNECTED)return;let t=this.onClose;yield this.close(void 0,e),this.log.debug("websocket connection closed: ".concat(e),Object.assign(Object.assign({},this.logContext),{reason:e})),t&&t(e)})}handleWSError(e){this.log.error("websocket error",Object.assign(Object.assign({},this.logContext),{error:e}))}resetPingTimeout(){(this.clearPingTimeout(),this.pingTimeoutDuration)?this.pingTimeout=rP.setTimeout(()=>{this.log.warn("ping timeout triggered. last pong received at: ".concat(new Date(Date.now()-1e3*this.pingTimeoutDuration).toUTCString()),this.logContext),this.handleOnClose("ping timeout")},1e3*this.pingTimeoutDuration):this.log.warn("ping timeout duration not set",this.logContext)}clearPingTimeout(){this.pingTimeout&&rP.clearTimeout(this.pingTimeout)}startPingInterval(){(this.clearPingInterval(),this.resetPingTimeout(),this.pingIntervalDuration)?(this.log.debug("start ping interval",this.logContext),this.pingInterval=rP.setInterval(()=>{this.sendPing()},1e3*this.pingIntervalDuration)):this.log.warn("ping interval duration not set",this.logContext)}clearPingInterval(){this.log.debug("clearing ping interval",this.logContext),this.clearPingTimeout(),this.pingInterval&&rP.clearInterval(this.pingInterval)}handleSignalConnected(e,t,n){this.state=cZ.CONNECTED,clearTimeout(t),this.startPingInterval(),this.startReadingLoop(e.readable.getReader(),n)}validateFirstMessage(e,t){var n,i,r,a,s;if((null==(n=e.message)?void 0:n.case)==="join")return{isValid:!0,response:e.message.value};if(this.state===cZ.RECONNECTING&&(null==(i=e.message)?void 0:i.case)!=="leave")if((null==(r=e.message)?void 0:r.case)==="reconnect")return{isValid:!0,response:e.message.value};else return this.log.debug("declaring signal reconnected without reconnect response received",this.logContext),{isValid:!0,response:void 0,shouldProcessFirstMessage:!0};return this.isEstablishingConnection&&(null==(a=e.message)?void 0:a.case)==="leave"?{isValid:!1,error:rg.leaveRequest("Received leave request while trying to (re)connect",e.message.value.reason)}:t?{isValid:!1,error:rg.internal("Unexpected first message")}:{isValid:!1,error:rg.internal("did not receive join response, got ".concat(null==(s=e.message)?void 0:s.case," instead"))}}handleConnectionError(e,t){return il(this,void 0,void 0,function*(){try{let n=yield fetch(t);switch(n.status){case 404:let i=yield n.text();if(i.includes("requested room does not exist"))return rg.notAllowed(i,n.status);return rg.serviceNotFound("v1 RTC path not found. Consider upgrading your LiveKit server version","v0-rtc");case 401:case 403:let r=yield n.text();return rg.notAllowed(r,n.status)}if(e instanceof rg)return e;return rg.internal("Encountered unknown websocket error during connection: ".concat(e),{status:n.status,statusText:n.statusText})}catch(e){return e instanceof rg?e:rg.serverUnreachable(e instanceof Error?e.message:"server was not reachable")}})}}function aJ(e){let t={type:"offer",sdp:e.sdp};switch(e.type){case"answer":case"offer":case"pranswer":case"rollback":t.type=e.type}return t}function aK(e,t){return new t9({sdp:e.sdp,type:e.type,id:t})}class a${constructor(){this.buffer=[],this._totalSize=0}push(e){this.buffer.push(e),this._totalSize+=e.data.byteLength}pop(){let e=this.buffer.shift();return e&&(this._totalSize-=e.data.byteLength),e}getAll(){return this.buffer.slice()}popToSequence(e){for(;this.buffer.length>0;)if(this.buffer[0].sequence<=e)this.pop();else break}alignBufferedAmount(e){for(;this.buffer.length>0;){let t=this.buffer[0];if(this._totalSize-t.data.byteLength<=e)break;this.pop()}}get length(){return this.buffer.length}}class aY{constructor(e){this._map=new Map,this._lastCleanup=0,this.ttl=e}set(e,t){let n=Date.now();n-this._lastCleanup>this.ttl/2&&this.cleanup();let i=n+this.ttl;return this._map.set(e,{value:t,expiresAt:i}),this}get(e){let t=this._map.get(e);if(t)return t.expiresAt<Date.now()?void this._map.delete(e):t.value}has(e){let t=this._map.get(e);
2return!!t&&(!(t.expiresAt<Date.now())||(this._map.delete(e),!1))}delete(e){return this._map.delete(e)}clear(){this._map.clear()}cleanup(){let e=Date.now();for(let[t,n]of this._map.entries())n.expiresAt<e&&this._map.delete(t);this._lastCleanup=e}get size(){return this.cleanup(),this._map.size}forEach(e){for(let[t,n]of(this.cleanup(),this._map.entries()))n.expiresAt>=Date.now()&&e(n.value,t,this.asValueMap())}map(e){this.cleanup();let t=[],n=this.asValueMap();for(let[i,r]of n.entries())t.push(e(r,i,n));return t}asValueMap(){let e=new Map;for(let[t,n]of this._map.entries())n.expiresAt>=Date.now()&&e.set(t,n.value);return e}}var aQ={},aX={},aZ={exports:{}};function a0(){if(c0)return aZ.exports;c0=1;var e=aZ.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 null!=e.address?"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 null!=e.subtype?"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 null!=e.sessionConfig?"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 t="candidate:%s %d %s %d %s %d typ %s";return t+=(null!=e.raddr?" raddr %s rport %d":"%v%v")+(null!=e.tcptype?" tcptype %s":"%v"),null!=e.generation&&(t+=" generation %d"),t+=(null!=e["network-id"]?" network-id %d":"%v")+(null!=e["network-cost"]?" network-cost %d":"%v")}},{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 t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{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","max
2MessageSize"],format:function(e){return null!=e.maxMessageSize?"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: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: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"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+((null!=e.id?"id=%s %s":"%v%s")+(null!=e.mediaClockValue?"=%s":"")+(null!=e.rateNumerator?" rate=%s":"")+(null!=e.rateDenominator?"/%s":""))}},{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(e).forEach(function(t){e[t].forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})}),aZ.exports}var a1=function(){if(c3)return aQ;c3=1;var e=function(){var e,t,n,i,r,a;return c1?aX:(c1=1,e=function(e){return String(Number(e))===e?Number(e):e},t=function(t,n,i,r){if(r&&!i)n[r]=e(t[1]);else for(var a=0;a<i.length;a+=1)null!=t[a+1]&&(n[i[a]]=e(t[a+1]))},n=function(e,n,i){var r=e.name&&e.names;e.push&&!n[e.push]?n[e.push]=[]:r&&!n[e.name]&&(n[e.name]={});var a=e.push?{}:r?n[e.name]:n;t(i.match(e.reg),a,e.names,e.name),e.push&&n[e.push].push(a)},i=a0(),r=RegExp.prototype.test.bind(/^([a-z])=(.*)/),aX.parse=function(e){var t={},a=[],s=t;return e.split(/(\r\n|\r|\n)/).filter(r).forEach(function(e){var t=e[0],r=e.slice(2);"m"===t&&(a.push({rtp:[],fmtp:[]}),s=a[a.length-1]);for(var o=0;o<(i[t]||[]).length;o+=1){var c=i[t][o];if(c.reg.test(r))return n(c,s,r)}}),t.media=a,t},a=function(t,n){var i=n.split(/=(.+)/,2);return 2===i.length?t[i[0]]=e(i[1]):1===i.length&&n.length>1&&(t[i[0]]=void 0),t},aX.parseParams=function(e){return e.split(/;\s?/).reduce(a,{})},aX.parseFmtpConfig=aX.parseParams,aX.parsePayloads=function(e){return e.toString().split(" ").map(Number)},aX.parseRemoteCandidates=function(t){for(var n=[],i=t.split(" ").map(e),r=0;r<i.length;r+=3)n.push({component:i[r],ip:i[r+1],port:i[r+2]});return n},aX.parseImageAttributes=function(e){return e.split(" ").map(function(e){return e.substring(1,e.length-1).split(",").reduce(a,{})})},aX.parseSimulcastStreamList=function(t){return t.split(";").map(function(t){return t.split(",").map(function(t){var n,i=!1;return"~"!==t[0]?n=e(t):(n=e(t.substring(1,t.length)),i=!0),{scid:n,paused:i}})})},aX)}(),t=function(){if(c5)return c2;c5=1;var e=a0(),t=/%[sdv%]/g,n=function(e){var n=1,i=arguments,r=i.length;return e.replace(t,function(e){if(n>=r)return e;var t=i[n];switch(n+=1,e){case"%%":return"%";case"%s":return String(t);case"%d":return Number(t);case"%v":return""}})},i=function(e,t,i){var r=[e+"="+(t.format instanceof Function?t.format(t.push?i:i[t.name]):t.format)];if(t.names)for(var a=0;a<t.names.length;a+=1){var s=t.names[a];t.name?r.push(i[t.name][s]):r.push(i[t.names[a]])}else r.push(i[t.name]);return n.apply(null,r)},r=["v","o","s","i","u","e","p","c","b","t","r","z","a"],a=["i","c","b","a"];return c2=function(t,n){n=n||{}
2,null==t.version&&(t.version=0),null==t.name&&(t.name=" "),t.media.forEach(function(e){null==e.payloads&&(e.payloads="")});var s=n.outerOrder||r,o=n.innerOrder||a,c=[];return s.forEach(function(n){e[n].forEach(function(e){e.name in t&&null!=t[e.name]?c.push(i(n,e,t)):e.push in t&&null!=t[e.push]&&t[e.push].forEach(function(t){c.push(i(n,e,t))})})}),t.media.forEach(function(t){c.push(i("m",e.m[0],t)),o.forEach(function(n){e[n].forEach(function(e){e.name in t&&null!=t[e.name]?c.push(i(n,e,t)):e.push in t&&null!=t[e.push]&&t[e.push].forEach(function(t){c.push(i(n,e,t))})})})}),c.join("\r\n")+"\r\n"}}();return aQ.grammar=a0(),aQ.write=t,aQ.parse=e.parse,aQ.parseParams=e.parseParams,aQ.parseFmtpConfig=e.parseFmtpConfig,aQ.parsePayloads=e.parsePayloads,aQ.parseRemoteCandidates=e.parseRemoteCandidates,aQ.parseImageAttributes=e.parseImageAttributes,aQ.parseSimulcastStreamList=e.parseSimulcastStreamList,aQ}();function a2(e){var t,n;let i,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=null!=(t=a.isImmediate)&&t,o=null!=(n=a.callback)&&n,c=a.maxWait,l=Date.now(),d=[],u=function(){for(var t=arguments.length,n=Array(t),a=0;a<t;a++)n[a]=arguments[a];let u=this;return new Promise((t,a)=>{let h=s&&void 0===i;if(void 0!==i&&rP.clearTimeout(i),i=rP.setTimeout(function(){if(i=void 0,l=Date.now(),!s){let t=e.apply(u,n);o&&o(t),d.forEach(e=>{let{resolve:n}=e;return n(t)}),d=[]}},function(){if(void 0!==c){let e=Date.now()-l;if(e+r>=c)return c-e}return r}()),h){let i=e.apply(u,n);return o&&o(i),t(i)}d.push({resolve:t,reject:a})})};return u.cancel=function(e){void 0!==i&&rP.clearTimeout(i),d.forEach(t=>{let{reject:n}=t;return n(e)}),d=[]},u}let a5="negotiationStarted",a3="negotiationComplete",a4="rtpVideoPayloadTypes";class a6 extends ip.EventEmitter{get pc(){return this._pc||(this._pc=this.createPC()),this._pc}constructor(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),this.log=ii,this.ddExtID=0,this.latestOfferId=0,this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate=!1,this.trackBitrates=[],this.remoteStereoMids=[],this.remoteNackMids=[],this.negotiate=a2(e=>il(this,void 0,void 0,function*(){this.emit(a5);try{yield this.createAndSendOffer()}catch(t){if(e)e(t);else throw t}}),20),this.close=()=>{this._pc&&(this.pendingInitialOffer=void 0,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=ia(null!=(t=n.loggerName)?t:cM.PCTransport),this.loggerOptions=n,this.config=e,this._pc=this.createPC(),this.offerLock=new C}createPC(){let e=new RTCPeerConnection(this.config);return e.onicecandidate=e=>{var t;e.candidate&&(null==(t=this.onIceCandidate)||t.call(this,e.candidate))},e.onicecandidateerror=e=>{var t;null==(t=this.onIceCandidateError)||t.call(this,e)},e.oniceconnectionstatechange=()=>{var t;null==(t=this.onIceConnectionStateChange)||t.call(this,e.iceConnectionState)},e.onsignalingstatechange=()=>{var t;null==(t=this.onSignalingStatechange)||t.call(this,e.signalingState)},e.onconnectionstatechange=()=>{var t;null==(t=this.onConnectionStateChange)||t.call(this,e.connectionState)},e.ondatachannel=e=>{var t;null==(t=this.onDataChannel)||t.call(this,e)},e.ontrack=e=>{var t;null==(t=this.onTrack)||t.call(this,e)},e}get logContext(){var e,t;return Object.assign({},null==(t=(e=this.loggerOptions).loggerContextCb)?void 0:t.call(e))}get isICEConnected(){return null!==this._pc&&("connected"===this.pc.iceConnectionState||"completed"===this.pc.iceConnectionState)}addIceCandidate(e){return il(this,void 0,void 0,function*(){if(this.pc.remoteDescription&&!this.restartingIce)return this.pc.addIceCandidate(e);this.pendingCandidates.push(e)})}setRemoteDescription(e,t){return il(this,void 0,void 0,function*(){var n,i,r,a;let s;if("answer"===e.type&&this.latestOfferId>0&&t>0&&t!==this.latestOfferId)return this.log.warn("ignoring answer for old offer",Object.assign(Object.assign({},this.logContext),{offerId:t,latestOfferId:this.latestOfferId})),!1;if("offer"===e.type){let t,n,i,s,{stereoMids:o,nackMids:c}=(r=e,t=[],n=[],i=a1.parse(null!=(a=r.sdp)?a:""),s=0,i.media.forEac
2h(e=>{var i;let r=a7(e.mid);"audio"===e.type&&(e.rtp.some(e=>"opus"===e.codec&&(s=e.payload,!0)),(null==(i=e.rtcpFb)?void 0:i.some(e=>e.payload===s&&"nack"===e.type))&&n.push(r),e.fmtp.some(e=>e.payload===s&&(e.config.includes("sprop-stereo=1")&&t.push(r),!0)))}),{stereoMids:t,nackMids:n});this.remoteStereoMids=o,this.remoteNackMids=c}else if("answer"===e.type){if(this.pendingInitialOffer&&this._pc){let e=this.pendingInitialOffer;this.pendingInitialOffer=void 0;let t=a1.parse(null!=(n=e.sdp)?n:"");t.media.forEach(e=>{a8(e)}),this.log.debug("setting pending initial offer before processing answer",this.logContext),yield this.setMungedSDP(e,a1.write(t))}let t=a1.parse(null!=(i=e.sdp)?i:"");t.media.forEach(e=>{let t=a7(e.mid);"audio"===e.type&&this.trackBitrates.some(n=>{if(!n.transceiver||t!=n.transceiver.mid)return!1;let i=0;if(e.rtp.some(e=>e.codec.toUpperCase()===n.codec.toUpperCase()&&(i=e.payload,!0)),0===i)return!0;let r=!1;for(let t of e.fmtp)if(t.payload===i){t.config=t.config.split(";").filter(e=>!e.includes("maxaveragebitrate")).join(";"),n.maxbr>0&&(t.config+=";maxaveragebitrate=".concat(1e3*n.maxbr)),r=!0;break}return!r&&n.maxbr>0&&e.fmtp.push({payload:i,config:"maxaveragebitrate=".concat(1e3*n.maxbr)}),!0})}),s=a1.write(t)}return yield this.setMungedSDP(e,s,!0),this.pendingCandidates.forEach(e=>{this.pc.addIceCandidate(e)}),this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate?(this.renegotiate=!1,yield this.createAndSendOffer()):"answer"===e.type&&(this.emit
2(a3),e.sdp&&a1.parse(e.sdp).media.forEach(e=>{"video"===e.type&&this.emit(a4,e.rtp)})),!0})}createInitialOffer(){return il(this,void 0,void 0,function*(){var e;let t=yield this.offerLock.lock();try{if("stable"!==this.pc.signalingState)return void this.log.warn("signaling state is not stable, cannot create initial offer",this.logContext);let t=this.latestOfferId+1;this.latestOfferId=t;let n=yield this.pc.createOffer();this.pendingInitialOffer={sdp:n.sdp,type:n.type};let i=a1.parse(null!=(e=n.sdp)?e:"");return i.media.forEach(e=>{a8(e)}),n.sdp=a1.write(i),{offer:n,offerId:t}}finally{t()}})}createAndSendOffer(e){return il(this,void 0,void 0,function*(){var t;let n=yield this.offerLock.lock();try{if(void 0===this.onOffer)return;if((null==e?void 0:e.iceRestart)&&(this.log.debug("restarting ICE",this.logContext),this.restartingIce=!0),this._pc&&("have-local-offer"===this._pc.signalingState||this.pendingInitialOffer)){let t=this._pc.remoteDescription;if((null==e?void 0:e.iceRestart)&&t)yield this._pc.setRemoteDescription(t);else{this.renegotiate=!0,this.log.debug("requesting renegotiation",Object.assign({},this.logContext));return}}else if(!this._pc||"closed"===this._pc.signalingState)return void this.log.warn("could not createOffer with closed peer connection",this.logContext);this.log.debug("starting to negotiate",this.logContext);let n=this.latestOfferId+1;this.latestOfferId=n;let i=yield this.pc.createOffer(e);this.log.debug("original offer",Object.assign({sdp:i.sdp},this.logContext));let r=a1.parse(null!=(t=i.sdp)?t:"");if(r.media.forEach(e=>{a8(e),"audio"===e.type?a9(e,["all"],[]):"video"===e.type&&this.trackBitrates.some(t=>{if(!e.msid||!t.cid||!e.msid.includes(t.cid))return!1;let n=0;if(e.rtp.some(e=>e.codec.toUpperCase()===t.codec.toUpperCase()&&(n=e.payload,!0)),0===n||(rX(t.codec)&&!r2()&&this.ensureVideoDDExtensionForSVC(e,r),!rX(t.codec)))return!0;let i=Math.round(.7*t.maxbr);for(let t of e.fmtp)if(t.payload===n){t.config.includes("x-google-start-bitrate")||(t.config+=";x-google-start-bitrate=".concat(i));break}return!0})}),this.latestOfferId>n)return void this.log.warn("latestOfferId mismatch",Object.assign(Object.assign({},this.logContext),{latestOfferId:this.latestOfferId,offerId:n}));yield this.setMungedSDP(i,a1.write(r)),this.onOffer(i,this.latestOfferId)}finally{n()}})}createAndSetAnswer(){return il(this,void 0,void 0,function*(){var e;let t=yield this.pc.createAnswer(),n=a1.parse(null!=(e=t.sdp)?e:"");return n.media.forEach(e=>{a8(e),"audio"===e.type&&a9(e,this.remoteStereoMids,this.remoteNackMids)}),yield this.setMungedSDP(t,a1.write(n)),t})}createDataChannel(e,t){return this.pc.createDataChannel(e,t)}addTransceiver(e,t){return this.pc.addTransceiver(e,t)}addTransceiverOfKind(e,t){return this.pc.addTransceiver(e,t)}addTrack(e){if(!this._pc)throw new rk("PC closed, cannot add track");return this._pc.addTrack(e)}setTrackCodecBitrate(e){this.trackBitrates.push(e)}setConfiguration(e){var t;if(!this._pc)throw new rk("PC closed, cannot configure");return null==(t=this._pc)?void 0:t.setConfiguration(e)}canRemoveTrack(){var e;return!!(null==(e=this._pc)?void 0:e.removeTrack)}removeTrack(e){var t;return null==(t=this._pc)?void 0:t.removeTrack(e)}getConnectionState(){var e,t;return null!=(t=null==(e=this._pc)?void 0:e.connectionState)?t:"closed"}getICEConnectionState(){var e,t;return null!=(t=null==(e=this._pc)?void 0:e.iceConnectionState)?t:"closed"}getSignallingState(){var e,t;return null!=(t=null==(e=this._pc)?void 0:e.signalingState)?t:"closed"}getTransceivers(){var e,t;return null!=(t=null==(e=this._pc)?void 0:e.getTransceivers())?t:[]}getSenders(){var e,t;return null!=(t=null==(e=this._pc)?void 0:e.getSenders())?t:[]}getLocalDescription(){var e;return null==(e=this._pc)?void 0:e.localDescription}getRemoteDescription(){var e;return null==(e=this.pc)?void 0:e.remoteDescription}getStats(){return this.pc.getStats()}getConnectedAddress(){return il(this,void 0,void 0,function*(){var e;if(!this._pc)return;let t="",n=new Map,i=new Map;if((yield this._pc.getStats()).forEach(e=>{switch(e.type){case"transport":t=e.selectedCandidatePairId;break;case"candidate-pair":""===t&&e.selected&&(t=e.id),n.set(e.id,e);break;case"remote-candidate":i.set(e.id,"".concat(e.address,":").concat(e.port))}}),""===t)return;let r=null==(e=n.get(t))?void 0:e.remoteCandidateId;if(void 0!==r)return i.get(r)})}
2setMungedSDP(e,t,n){return il(this,void 0,void 0,function*(){var i,r;let a=e.sdp;if(t){e.sdp=t;try{this.log.debug("setting munged ".concat(n?"remote":"local"," description"),this.logContext),n?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e);return}catch(n){this.log.warn("not able to set ".concat(e.type,", falling back to unmodified sdp"),Object.assign(Object.assign({},this.logContext),{error:n,mungedSdp:t,originalSdp:a})),e.sdp=a}}try{n?yield null==(i=this._pc)?void 0:i.setRemoteDescription(e):yield null==(r=this._pc)?void 0:r.setLocalDescription(e)}catch(s){let i="unknown error";s instanceof Error?i=s.message:"string"==typeof s&&(i=s);let r={error:i,sdp:e.sdp};throw t&&t!==a&&(r.mungedSdp=t),!n&&this.pc.remoteDescription&&(r.remoteSdp=this.pc.remoteDescription),this.log.error("unable to set ".concat(e.type),Object.assign(Object.assign({},this.logContext),{fields:r})),new rT(i)}})}ensureVideoDDExtensionForSVC(e,t){var n,i;if(!(null==(n=e.ext)?void 0:n.some(e=>e.uri===rK))){if(0===this.ddExtID){let e=0;t.media.forEach(t=>{var n;null==(n=t.ext)||n.forEach(t=>{t.value>e&&(e=t.value)})}),this.ddExtID=e+1}null==(i=e.ext)||i.push({value:this.ddExtID,uri:rK})}}}function a9(e,t,n){let i=a7(e.mid),r=0;e.rtp.some(e=>"opus"===e.codec&&(r=e.payload,!0)),r>0&&(e.rtcpFb||(e.rtcpFb=[]),n.includes(i)&&!e.rtcpFb.some(e=>e.payload===r&&"nack"===e.type)&&e.rtcpFb.push({payload:r,type:"nack"}),(t.includes(i)||1===t.length&&"all"===t[0])&&e.fmtp.some(e=>e.payload===r&&(e.config.includes("stereo=1")||(e.config+=";stereo=1"),!0)))}function a8(e){if(e.connection){let t=e.connection.ip.indexOf(":")>=0;(4===e.connection.version&&t||6===e.connection.version&&!t)&&(e.connection.ip="0.0.0.0",e.connection.version=4)}}function a7(e){return"number"==typeof e?e.toFixed(0):e}let se={audioPreset:cz.music,dtx:!0,red:!0,forceStereo:!1,simulcast:!0,screenShareEncoding:rD.h1080fps15.encoding,stopMicTrackOnMute:!1,videoCodec:"vp8",backupCodec:!0,preConnectBuffer:!1},st={deviceId:{ideal:"default"},autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,voiceIsolation:!0},sn={deviceId:{ideal:"default"},resolution:rO.h720.resolution},si={adaptiveStream:!1,dynacast:!1,stopLocalTrackOnUnpublish:!0,reconnectPolicy:new class{constructor(e){this._retryDelays=void 0!==e?[...e]:io}nextRetryDelayInMs(e){if(e.retryCount>=this._retryDelays.length)return null;let t=this._retryDelays[e.retryCount];return e.retryCount<=1?t:t+1e3*Math.random()}},disconnectOnPageLeave:!0,webAudioMix:!1,singlePeerConnection:!0},sr={autoSubscribe:!0,maxRetries:1,peerConnectionTimeout:15e3,websocketTimeout:15e3};(cc=c4||(c4={}))[cc.NEW=0]="NEW",cc[cc.CONNECTING=1]="CONNECTING",cc[cc.CONNECTED=2]="CONNECTED",cc[cc.FAILED=3]="FAILED",cc[cc.CLOSING=4]="CLOSING",cc[cc.CLOSED=5]="CLOSED";class sa{get needsPublisher(){return this.isPublisherConnectionRequired}get needsSubscriber(){return this.isSubscriberConnectionRequired}get currentState(){return this.state}get mode(){return this._mode}constructor(e,t,n){var i;this.peerConnectionTimeout=sr.peerConnectionTimeout,this.log=ii,this.updateState=()=>{var e,t;let n=this.state,i=this.requiredTransports.map(e=>e.getConnectionState());i.every(e=>"connected"===e)?this.state=c4.CONNECTED:i.some(e=>"failed"===e)?this.state=c4.FAILED:i.some(e=>"connecting"===e)?this.state=c4.CONNECTING:i.every(e=>"closed"===e)?this.state=c4.CLOSED:i.some(e=>"closed"===e)?this.state=c4.CLOSING:i.every(e=>"new"===e)&&(this.state=c4.NEW),n!==this.state&&(this.log.debug("pc state change: from ".concat(c4[n]," to ").concat(c4[this.state]),this.logContext),null==(e=this.onStateChange)||e.call(this,this.state,this.publisher.getConnectionState(),null==(t=this.subscriber)?void 0:t.getConnectionState()))},this.log=ia(null!=(i=t.loggerName)?i:cM.PCManager),this.loggerOptions=t,this.isPublisherConnectionRequired="subscriber-primary"!==e,this.isSubscriberConnectionRequired="subscriber-primary"===e,this.publisher=new a6(n,t),this._mode=e,"publisher-only"!==e&&(this.subscriber=new a6(n,t),this.subscriber.onConnectionStateChange=this.updateState,this.subscriber.onIceConnectionStateChange=this.updateState,this.subscriber.onSignalingStatechange=this.updateState,this.subscriber.onIceCandidate=e=>{var t;null==(t=this.onIceCandidate)||t.call(this,e,tV.SUBSCRIBER)},this.subscriber.onDataChannel=e=>{var t;null==(t=this.onDataChannel)||t.call(this,e)},this.subscriber.onTrack=e=>{var t;null==(t=this.onTrack)||t.call(this,e)}),this.publisher.onConnectionStateChange=this.updateState,this.publisher.onIceConnectionStateChange=this.updateState,this.publisher.onSignalingStatechange=this.updateState,this.publisher.onIceCandidate=e=>{var t;null==(t=this.onIceCandidate)||t.call(this,e,tV.PUBLISHER)},this.publisher.onTrack=e=>{var t;null==(t=this.onTrack)||t.call(this,e)},this.publisher.onOffer=(e,t)=>{var n;null==(n=this.onPublisherOffer)||n.call(this,e,t)},this.state=c4.NEW,this.connectionLock=new C,this.remoteOfferLock=new C}get logContext(){var e,t;return Object.assign({},null==(t=(e=this.loggerOptions).loggerContextCb)?void 0:t.call(e))}requirePublisher(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];this.isPublisherConnectionRequired=e,this.updateState()}createAndSendPublisherOffer(e){return this.publisher.createAndSendOffer(e)}setPublisherAnswer(e,t){return this.publisher.setRemoteDescription(e,t)}removeTrack(e){return this.publisher.removeTrack(e)}close(){return il(this,void 0,void 0,function*(){var e;if(this.publisher&&"closed"!==this.publisher.getSignallingState()){let e=this.publisher;for(let t of e.getSenders())try{e.canRemoveTrack()&&e.removeTrack(t)}catch(e){this.log.warn("could not removeTrack",Object.assign(Object.assign({},this.logContext),{error:e}))}}yield Promise.all([this.publisher.close(),null==(e=this.subscriber)?void 0:e.close()]),this.updateState()})}triggerIceRestart(){return il(this,void 0,void 0,function*(){this.subscriber&&(this.subscriber.restartingIce=!0),this.needsPublisher&&(yield this.createAndSendPublisherOffer({iceRestart:!0}))})}addIceCandidate(e,t){return il(this,void 0,void 0,function*(){var n;t===tV.PUBLISHER?yield this.publisher.addIceCandidate(e):yield null==(n=this.subscriber)?void 0:n.addIceCandidate(e)})}createSubscriberAnswerFromOffer(e,t){return il(this,void 0,void 0,function*(){var n,i,r;this.log.debug("received server offer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type,sdp:e.sdp,signalingState:null==(n=this.subscriber)?void 0:n.getSignallingState().toString()}));let a=yield this.remoteOfferLock.lock();try{if(!(yield null==(i=this.subscriber)?void 0:i.setRemoteDescription(e,t)))return;return yield null==(r=this.subscriber)?void 0:r.createAndSetAnswer()}finally{a()}})}updateConfiguration(e,t){var n;this.publisher.setConfiguration(e),null==(n=this.subscriber)||n.setConfiguration(e),t&&this.triggerIceRestart()}ensurePCTransportConnection(e,t){return il(this,void 0,void 0,function*(){var n;let i=yield this.connectionLock.lock();try{this.isPublisherConnectionRequired&&"connected"!==this.publisher.getConnectionState()&&"connecting"!==this.publisher.getConnectionState()&&(this.log.debug("negotiation required, start negotiating",this.logContext),this.publisher.negotiate()),yield Promise.all(null==(n=this.requiredTransports)?void 0:n.map(n=>
2this.ensureTransportConnected(n,e,t)))}finally{i()}})}negotiate(e){return il(this,void 0,void 0,function*(){return new rc((t,n)=>il(this,void 0,void 0,function*(){let i=setTimeout(()=>{n(new rT("negotiation timed out"))},this.peerConnectionTimeout),r=()=>{clearTimeout(i),this.publisher.off(a5,s),e.signal.removeEventListener("abort",a)},a=()=>{r(),n(new rT("negotiation aborted"))},s=()=>{e.signal.aborted||(clearTimeout(i),i=setTimeout(()=>{r(),n(new rT("negotiation timed out"))},this.peerConnectionTimeout))};e.signal.addEventListener("abort",a),this.publisher.on(a5,s),this.publisher.once(a3,()=>{r(),t()}),yield this.publisher.negotiate(e=>{r(),e instanceof Error?n(e):n(Error(String(e)))})}))})}addPublisherTransceiver(e,t){return this.publisher.addTransceiver(e,t)}addPublisherTransceiverOfKind(e,t){return this.publisher.addTransceiverOfKind(e,t)}getMidForReceiver(e){let t=(this.subscriber?this.subscriber.getTransceivers():this.publisher.getTransceivers()).find(t=>t.receiver===e);return null==t?void 0:t.mid}addPublisherTrack(e){return this.publisher.addTrack(e)}createPublisherDataChannel(e,t){return this.publisher.createDataChannel(e,t)}getConnectedAddress(e){return e===tV.PUBLISHER||e===tV.SUBSCRIBER?this.publisher.getConnectedAddress():this.requiredTransports[0].getConnectedAddress()}get requiredTransports(){let e=[];return this.isPublisherConnectionRequired&&e.push(this.publisher),this.isSubscriberConnectionRequired&&this.subscriber&&e.push(this.subscriber),e}ensureTransportConnected(e,t){return il(this,arguments,void 0,function(e,t){var n=this;let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.peerConnectionTimeout;return function*(){if("connected"!==e.getConnectionState())return new Promise((e,r)=>il(n,void 0,void 0,function*(){let n=()=>{this.log.warn("abort transport connection",this.logContext),rP.clearTimeout(a),r(rg.cancelled("room connection has been cancelled"))};(null==t?void 0:t.signal.aborted)&&n(),null==t||t.signal.addEventListener("abort",n);let a=rP.setTimeout(()=>{null==t||t.signal.removeEventListener("abort",n),r(rg.internal("could not establish pc connection"))},i);for(;this.state!==c4.CONNECTED;)if(yield r$(50),null==t?void 0:t.signal.aborted)return void r(rg.cancelled("room connection has been cancelled"));rP.clearTimeout(a),null==t||t.signal.removeEventListener("abort",n),e()}))}()})}}
2class ss extends Error{constructor(e,t,n){super(t),this.code=e,this.message=sc(t,ss.MAX_MESSAGE_BYTES),this.data=n?sc(n,ss.MAX_DATA_BYTES):void 0}static fromProto(e){return new ss(e.code,e.message,e.data)}toProto(){return new tT({code:this.code,message:this.message,data:this.data})}static builtIn(e,t){return new ss(ss.ErrorCode[e],ss.ErrorMessage[e],t)}}function so(e){return new TextEncoder().encode(e).length}function sc(e,t){if(so(e)<=t)return e;let n=0,i=e.length,r=new TextEncoder;for(;n<i;){let a=Math.floor((n+i+1)/2);r.encode(e.slice(0,a)).length<=t?n=a:i=a-1}return e.slice(0,n)}function sl(e,t){let n,i;return t?("bytesReceived"in e?(n=e.bytesReceived,i=t.bytesReceived):"bytesSent"in e&&(n=e.bytesSent,i=t.bytesSent),void 0===n||void 0===i||void 0===e.timestamp||void 0===t.timestamp)?0:(n-i)*8e3/(e.timestamp-t.timestamp):0}ss.MAX_MESSAGE_BYTES=256,ss.MAX_DATA_BYTES=15360,ss.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},ss.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"};let sd="u">typeof MediaRecorder,su=sd?MediaRecorder:class{constructor(){throw Error("MediaRecorder is not available in this environment")}};class sh extends su{constructor(e,t){let n,i;if(!sd)throw Error("MediaRecorder is not available in this environment");super(new MediaStream([e.mediaStreamTrack]),t);const r=()=>{this.removeEventListener("dataavailable",n),this.removeEventListener("stop",r),this.removeEventListener("error",a),null==i||i.close(),i=void 0},a=e=>{null==i||i.error(e),this.removeEventListener("dataavailable",n),this.removeEventListener("stop",r),this.removeEventListener("error",a),i=void 0};this.byteStream=new ReadableStream({start:e=>{i=e,n=t=>il(this,void 0,void 0,function*(){let n;if(t.data.arrayBuffer)n=new Uint8Array((yield t.data.arrayBuffer()));else if(t.data.byteArray)n=t.data.byteArray;else throw Error("no data available!");void 0!==i&&e.enqueue(n)}),this.addEventListener("dataavailable",n)},cancel:()=>{r()}}),this.addEventListener("stop",r),this.addEventListener("error",a)}}class sp extends rW{get sender(){return this._sender}set sender(e){this._sender=e}get constraints(){return this._constraints}get hasPreConnectBuffer(){return!!this.localTrackRecorder}constructor(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=arguments.length>4?arguments[4]:void 0;super(e,t,r),this.manuallyStopped=!1,this.pendingDeviceChange=!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=a2(()=>il(this,void 0,void 0,function*(){yield this.pauseUpstream()}),5e3),this.handleTrackUnmuteEvent=()=>il(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(cV.Ended,this)},this.reacquireTrack=!1,this.providedByUser=i,this.muteLock=new C,this.pauseUpstreamLock=new C,this.trackChangeLock=new C,this.trackChangeLock.lock().then(t=>il(this,void 0,void 0,function*(){try{yield this.setMediaStreamTrack(e,!0)}finally{t()}})),this._constraints=e.getConstraints(),n&&(this._constraints=n)}get id(){return this._mediaStreamTrack.id}get dimensions(){if(this.kind!==rW.Kind.Video)return;let{width:e,height:t}=this._mediaStreamTrack.getSettings();if(e&&t)return{width:e,height:t}}get isUpstreamPaused(){return this._isUpstreamPaused}get isUserProvided(){return this.providedByUser}get mediaStreamTrack(){var e,t;return null!=(t=null==(e=this.processor)?void 0:e.processedTrack)?t:this._mediaStreamTrack}get isLocal(){return!0}getSourceTrackSettings(){return this._mediaStreamTrack.getSettings()}setMediaStreamTrack(e,t,n){return il(this,void 0,void 0,function*(){var i;let r;if(e!==this._mediaStreamTrack||t){if(this._mediaStreamTrack&&(this.attachedElements.forEac
2h(e=>{rJ(this._mediaStreamTrack,e)}),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()),this.processor&&e){if(this.log.debug("restarting processor",this.logContext),"unknown"===this.kind)throw TypeError("cannot set processor on track of unknown kind");this.processorElement&&(rG(e,this.processorElement),this.processorElement.muted=!0),yield this.processor.restart({track:e,kind:this.kind,element:this.processorElement,localTrack:this}),r=this.processor.processedTrack}this.sender&&(null==(i=this.sender.transport)?void 0:i.state)!=="closed"&&(yield this.sender.replaceTrack(null!=r?r:e)),this.providedByUser||this._mediaStreamTrack===e||this._mediaStreamTrack.stop(),this._mediaStreamTrack=e,e&&(this._mediaStreamTrack.enabled=!!n||!this.isMuted,yield this.resumeUpstream(),this.attachedElements.forEach(t=>{rG(null!=r?r:e,t)}))}})}waitForDimensions(){return il(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e3;return function*(){var n;if(e.kind===rW.Kind.Audio)throw Error("cannot get dimensions for audio tracks");(null==(n=rd())?void 0:n.os)==="iOS"&&(yield r$(10));let i=Date.now();for(;Date.now()-i<t;){let t=e.dimensions;if(t)return t;yield r$(50)}throw new rb("unable to get track dimensions after timeout")}()})}setDeviceId(e){return il(this,void 0,void 0,function*(){return this._constraints.deviceId===e&&this._mediaStreamTrack.getSettings().deviceId===ap(e)||((this._constraints.deviceId=e,this.isMuted)?(this.pendingDeviceChange=!0,!0):(yield this.restartTrack(),ap(e)===this._mediaStreamTrack.getSettings().deviceId))})}getDeviceId(){return il(this,arguments,void 0,function(){var e=this;let t=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return function*(){if(e.source===rW.Source.ScreenShare)return;let{deviceId:n,groupId:i}=e._mediaStreamTrack.getSettings(),r=e.kind===rW.Kind.Audio?"audioinput":"videoinput";return t?aA.getInstance().normalizeDeviceId(r,n,i):n}()})}mute(){return il(this,void 0,void 0,function*(){return this.setTrackMuted(!0),this})}unmute(){return il(this,void 0,void 0,function*(){return this.setTrackMuted(!1),this})}replaceTrack(e,t){return il(this,void 0,void 0,function*(){let n=yield this.trackChangeLock.lock();try{let n,i;if(!this.sender)throw new rb("unable to replace an unpublished track");"boolean"==typeof t?n=t:void 0!==t&&(n=t.userProvidedTrack,i=t.stopProcessor),this.providedByUser=null==n||n,this.log.debug("replace MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(e),i&&this.processor&&(yield this.internalStopProcessor())}finally{n()}return yield this.onSenderTrackSwapped(),this})}onSenderTrackSwapped(){return il(this,void 0,void 0,function*(){})}restart(e,t){return il(this,void 0,void 0,function*(){this.manuallyStopped=!1;let n=yield this.trackChangeLock.lock();try{e||(e=this._constraints);let{deviceId:n,facingMode:i}=e,r=ic(e,["deviceId","facingMode"]);this.log.debug("restarting track with constraints",Object.assign(Object.assign({},this.logContext),{constraints:e}));let a={audio:!1,video:!1};this.kind===rW.Kind.Video?a.video=!n&&!i||{deviceId:n,facingMode:i}:a.audio=!n||Object.assign({deviceId:n},r),this.attachedElements.forEach(e=>{rJ(this.mediaStreamTrack,e)}),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.stop();let s=(yield navigator.mediaDevices.getUserMedia(a)).getTracks()[0];return this.kind===rW.Kind.Video&&(yield s.applyConstraints(r)),s.addEventListener("ended",this.handleEnded),this.log.debug("re-acquired MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(s,!1,t),this._constraints=e,this.pendingDeviceChange=!1,this.emit
2(cV.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?cV.Muted:cV.Unmuted,this))}get needsReAcquisition(){return"live"!==this._mediaStreamTrack.readyState||this._mediaStreamTrack.muted||!this._mediaStreamTrack.enabled||this.reacquireTrack}handleAppVisibilityChanged(){let e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return il(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),r3()&&(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),null==(e=this.processor)||e.destroy(),this.processor=void 0}pauseUpstream(){return il(this,void 0,void 0,function*(){var e;let t=yield this.pauseUpstreamLock.lock();try{if(!0===this._isUpstreamPaused)return;if(!this.sender)return void this.log.warn("unable to pause upstream for an unpublished track",this.logContext);this._isUpstreamPaused=!0,this.emit(cV.UpstreamPaused,this);let t=rd();if((null==t?void 0:t.name)==="Safari"&&0>an(t.version,"12.0"))throw new rv("pauseUpstream is not supported on Safari < 12.");(null==(e=this.sender.transport)?void 0:e.state)!=="closed"&&(yield this.sender.replaceTrack(null))}finally{t()}})}resumeUpstream(){return il(this,void 0,void 0,function*(){var e;let t=yield this.pauseUpstreamLock.lock();try{if(!1===this._isUpstreamPaused)return;if(!this.sender)return void this.log.warn("unable to resume upstream for an unpublished track",this.logContext);this._isUpstreamPaused=!1,this.emit(cV.UpstreamResumed,this),(null==(e=this.sender.transport)?void 0:e.state)!=="closed"&&(yield this.sender.replaceTrack(this.mediaStreamTrack))}finally{t()}})}getRTCStatsReport(){return il(this,void 0,void 0,function*(){var e;if(null==(e=this.sender)?void 0:e.getStats)return yield this.sender.getStats()})}setProcessor(e){return il(this,arguments,void 0,function(e){var t=this;let n=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return function*(){var i;let r=yield t.trackChangeLock.lock();try{t.log.debug("setting up processor",t.logContext);let r=document.createElement(t.kind),a={kind:t.kind,track:t._mediaStreamTrack,element:r,audioContext:t.audioContext,localTrack:t};if(yield e.init(a),t.log.debug("processor initialized",t.logContext),t.processor&&(yield t.internalStopProcessor()),"unknown"===t.kind)throw TypeError("cannot set processor on track of unknown kind");if(rG(t._mediaStreamTrack,r),r.muted=!0,r.play().catch(e=>{e instanceof DOMException&&"AbortError"===e.name?(t.log.warn("failed to play processor element, retrying",Object.assign(Object.assign({},t.logContext),{error:e})),setTimeout(()=>{r.play().catch(e=>{t.log.error("failed to play processor element",Object.assign(Object.assign({},t.logContext),{err:e}))})},100)):t.log.error("failed to play processor element",Object.assign(Object.assign({},t.logContext),{error:e}))}),t.processor=e,t.processorElement=r,t.processor.processedTrack){for(let e of t.attachedElements)e!==t.processorElement&&n&&(rJ(t._mediaStreamTrack,e),rG(t.processor.processedTrack,e));yield null==(i=t.sender)?void 0:i.replaceTrack(t.processor.processedTrack)}t.emit(cV.TrackProcessorUpdate,t.processor)}finally{r()}yield t.onSenderTrackSwapped()}()})}getProcessor(){return this.processor}stopProcessor(){return il(this,arguments,void 0,function(){var e=this;let t=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return function*(){let n=yield e.trackChangeLock.lock();try{yield e.internalStopProcessor(t)}finally{n()}yield e.onSenderTrackSwapped()}()})}internalStopProcessor(){return il(this,arguments,void 0,function(){var e=this;let t=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return function*(){var n,i;e.processor&&(e.log.debug("stopping processor",e.logContext),null==(n=e.processor.processedTrack)||n.stop(),yield e.processor.destroy(),e.processor=void 0,t||(null==(i=e.processorElement)||i.remove(),e.processorElement=void 0),yield e._mediaStreamTrack.applyConstraints(e._constraints),yield e.setMediaStreamTrack(e._mediaStreamTrack,!0),e.emit(cV.TrackProcessorUpdate))}()})}startPreConnectBuffer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100;if(!sd)return void this.log.warn("MediaRecorder is not available, cannot start prec
2onnect buffer",this.logContext);if(this.localTrackRecorder)return void this.log.warn("preconnect buffer already started");{let e="audio/webm;codecs=opus";MediaRecorder.isTypeSupported(e)||(e="video/mp4"),this.localTrackRecorder=new sh(this,{mimeType:e})}this.localTrackRecorder.start(e),this.autoStopPreConnectBuffer=setTimeout(()=>{this.log.warn("preconnect buffer timed out, stopping recording automatically",this.logContext),this.stopPreConnectBuffer()},1e4)}stopPreConnectBuffer(){clearTimeout(this.autoStopPreConnectBuffer),this.localTrackRecorder&&(this.localTrackRecorder.stop(),this.localTrackRecorder=void 0)}getPreConnectBuffer(){var e;return null==(e=this.localTrackRecorder)?void 0:e.byteStream}getPreConnectBufferMimeType(){var e;return null==(e=this.localTrackRecorder)?void 0:e.mimeType}}class sm extends sp{get enhancedNoiseCancellation(){return this.isKrispNoiseFilterEnabled}constructor(e,t){let n=!(arguments.length>2)||void 0===arguments[2]||arguments[2],i=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;super(e,rW.Kind.Audio,t,n,r),this.stopOnMute=!1,this.isKrispNoiseFilterEnabled=!1,this.monitorSender=()=>il(this,void 0,void 0,function*(){let e;if(!this.sender){this._currentBitrate=0;return}try{e=yield this.getSenderStats()}catch(e){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:e}));return}e&&this.prevStats&&(this._currentBitrate=sl(e,this.prevStats)),this.prevStats=e}),this.handleKrispNoiseFilterEnable=()=>{this.isKrispNoiseFilterEnabled=!0,this.log.debug("Krisp noise filter enabled",this.logContext),this.emit(cV.AudioTrackFeatureUpdate,this,e1.TF_ENHANCED_NOISE_CANCELLATION,!0)},this.handleKrispNoiseFilterDisable=()=>{this.isKrispNoiseFilterEnabled=!1,this.log.debug("Krisp noise filter disabled",this.logContext),this.emit(cV.AudioTrackFeatureUpdate,this,e1.TF_ENHANCED_NOISE_CANCELLATION,!1)},this.audioContext=i,this.checkForSilence()}mute(){let e=Object.create(null,{mute:{get:()=>super.mute}});return il(this,void 0,void 0,function*(){let t=yield this.muteLock.lock();try{if(this.isMuted)return this.log.debug("Track already muted",this.logContext),this;return this.source===rW.Source.Microphone&&this.stopOnMute&&!this.isUserProvided&&(this.log.debug("stopping mic track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this}finally{t()}})}unmute(){let e=Object.create(null,{unmute:{get:()=>super.unmute}});return il(this,void 0,void 0,function*(){let t=yield this.muteLock.lock();try{if(!this.isMuted)return this.log.debug("Track already unmuted",this.logContext),this;return this.source===rW.Source.Microphone&&(this.stopOnMute||"ended"===this._mediaStreamTrack.readyState||this.pendingDeviceChange)&&!this.isUserProvided&&(this.log.debug("reacquiring mic track",this.logContext),yield this.restart(void 0,!0)),yield e.unmute.call(this),this}finally{t()}})}restartTrack(e){return il(this,void 0,void 0,function*(){let t;if(e){let n=rL({audio:e});"boolean"!=typeof n.audio&&(t=n.audio)}yield this.restart(t)})}restart(e,t){let n=Object.create(null,{restart:{get:()=>super.restart}});return il(this,void 0,void 0,function*(){let i=yield n.restart.call(this,e,t);return this.checkForSilence(),i})}startMonitor(){!r4()||this.monitorInterval||(this.monitorInterval=setInterval(()=>{this.monitorSender()},2e3))}setProcessor(e){return il(this,void 0,void 0,function*(){var t;let n=yield this.trackChangeLock.lock();try{if(!r6()&&!this.audioContext)throw Error("Audio context needs to be set on LocalAudioTrack in order to enable processors");this.processor&&(yield this.internalStopProcessor());let n={kind:this.kind,track:this._mediaStreamTrack,audioContext:this.audioContext,localTrack:this};this.log.debug("setting up audio processor ".concat(e.name),this.logContext),yield e.init(n),this.processor=e,this.processor.processedTrack&&(yield null==(t=this.sender)?void 0:t.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
2(cV.TrackProcessorUpdate,this.processor)}finally{n()}})}setAudioContext(e){this.audioContext=e}getSenderStats(){return il(this,void 0,void 0,function*(){var e;let t;if(null==(e=this.sender)?void 0:e.getStats)return(yield this.sender.getStats()).forEach(e=>{"outbound-rtp"===e.type&&(t={type:"audio",streamId:e.id,packetsSent:e.packetsSent,packetsLost:e.packetsLost,bytesSent:e.bytesSent,timestamp:e.timestamp,roundTripTime:e.roundTripTime,jitter:e.jitter})}),t})}checkForSilence(){return il(this,void 0,void 0,function*(){let e=yield rU(this);return e&&(this.isMuted||this.log.debug("silence detected on local audio track",this.logContext),this.emit(cV.AudioSilenceDetected)),e})}}let sf=Object.values(rO),sg=Object.values(rM),sv=Object.values(rD),sb=[rO.h180,rO.h360],sy=[rM.h180,rM.h360],sk=["q","h","f"];function sT(e,t,n,i){var r,a,s;let o,c=null==i?void 0:i.videoEncoding;e&&(c=null==i?void 0:i.screenShareEncoding);let l=null==i?void 0:i.simulcast,d=null==i?void 0:i.scalabilityMode,u=null==i?void 0:i.videoCodec;if(!c&&!l&&!d||!t||!n)return[{}];c||(c=function(e,t,n,i){let r=function(e,t,n){if(e)return sv;let i=t>n?t/n:n/t;return Math.abs(i-16/9)<Math.abs(i-4/3)?sf:sg}(e,t,n),{encoding:a}=r[0],s=Math.max(t,n);for(let e=0;e<r.length;e+=1){let t=r[e];if(a=t.encoding,t.width>=s)break}if(i)switch(i){case"av1":case"h265":(a=Object.assign({},a)).maxBitrate=.7*a.maxBitrate;break;case"vp9":(a=Object.assign({},a)).maxBitrate=.85*a.maxBitrate}return a}(e,t,n,u),ii.debug("using video encoding",c));let h=c.maxFramerate,p=new rR(t,n,c.maxBitrate,c.maxFramerate,c.priority);if(d&&rX(u)){let e=new sP(d),t=[];if(e.spatial>3)throw Error("unsupported scalabilityMode: ".concat(d));let n=rd();if(r5()||r6()||(null==n?void 0:n.name)==="Chrome"&&0>an(null==n?void 0:n.version,"113")){let i="h"==e.suffix?2:3,r=((s=n)||(s=rd()),(null==s?void 0:s.name)==="Safari"&&an(s.version,"18.3")>0||(null==s?void 0:s.os)==="iOS"&&!!(null==s?void 0:s.osVersion)&&an(s.osVersion,"18.3")>0);for(let n=0;n<e.spatial;n+=1)t.push({rid:sk[2-n],maxBitrate:c.maxBitrate/Math.pow(i,n),maxFramerate:p.encoding.maxFramerate,scaleResolutionDownBy:r?Math.pow(2,n):void 0});t[0].scalabilityMode=d}else t.push({maxBitrate:c.maxBitrate,maxFramerate:p.encoding.maxFramerate,scalabilityMode:d});return p.encoding.priority&&(t[0].priority=p.encoding.priority,t[0].networkPriority=p.encoding.priority),ii.debug("using svc encoding",{encodings:t}),t}if(!l)return[c];let m=[];if((m=e?null!=(r=sE(null==i?void 0:i.screenShareSimulcastLayers))?r:sC(e,p):null!=(a=sE(null==i?void 0:i.videoSimulcastLayers))?a:sC(e,p)).length>0){let e=m[0];m.length>1&&([,o]=m);let i=Math.max(t,n);if(i>=960&&o)return sw(t,n,[e,o,p],h);if(i>=480)return sw(t,n,[e,p],h)}return sw(t,n,[p])}function sS(e,t,n){var i,r,a,s;if(!n.backupCodec||!0===n.backupCodec||n.backupCodec.codec===n.videoCodec)return;t!==n.backupCodec.codec&&ii.warn("requested a different codec than specified as backup",{serverRequested:t,backup:n.backupCodec.codec}),n.videoCodec=t,n.videoEncoding=n.backupCodec.encoding;let o=e.mediaStreamTrack.getSettings(),c=null!=(i=o.width)?i:null==(r=e.dimensions)?void 0:r.width,l=null!=(a=o.height)?a:null==(s=e.dimensions)?void 0:s.height;return e.source===rW.Source.ScreenShare&&n.simulcast&&(n.simulcast=!1),sT(e.source===rW.Source.ScreenShare,c,l,n)}function sC(e,t){if(e)return[{scaleResolutionDownBy:2,fps:t.encoding.maxFramerate}].map(e=>{var n,i;return new rR(Math.floor(t.width/e.scaleResolutionDownBy),Math.floor(t.height/e.scaleResolutionDownBy),Math.max(15e4,Math.floor(t.encoding.maxBitrate/(Math.pow(e.scaleResolutionDownBy,2)*((null!=(n=t.encoding.maxFramerate)?n:30)/(null!=(i=e.fps)?i:30))))),e.fps,t.encoding.priority)});let{width:n,height:i}=t,r=n>i?n/i:i/n;return Math.abs(r-16/9)<Math.abs(r-4/3)?sb:sy}function sw(e,t,n,i){let r=[];if(n.forEach((n,a)=>
2{if(a>=sk.length)return;let s=Math.min(e,t),o={rid:sk[a],scaleResolutionDownBy:Math.max(1,s/Math.min(n.width,n.height)),maxBitrate:n.encoding.maxBitrate},c=i&&n.encoding.maxFramerate?Math.min(i,n.encoding.maxFramerate):n.encoding.maxFramerate;c&&(o.maxFramerate=c);let l=rd(),d=(null==l?void 0:l.name)==="Firefox"&&"iOS"!==l.os||0===a;n.encoding.priority&&d&&(o.priority=n.encoding.priority,o.networkPriority=n.encoding.priority),r.push(o)}),r6()&&"ios"===ae()){let e;r.forEach(t=>{e?t.maxFramerate&&t.maxFramerate>e&&(e=t.maxFramerate):e=t.maxFramerate});let t=!0;r.forEach(n=>{var i;n.maxFramerate!=e&&(t&&(t=!1,ii.info("Simulcast on iOS React-Native requires all encodings to share the same framerate.")),ii.info('Setting framerate of encoding "'.concat(null!=(i=n.rid)?i:"",'" to ').concat(e)),n.maxFramerate=e)})}return r}function sE(e){if(e)return e.sort((e,t)=>{let{encoding:n}=e,{encoding:i}=t;return n.maxBitrate>i.maxBitrate?1:n.maxBitrate<i.maxBitrate?-1:n.maxBitrate===i.maxBitrate&&n.maxFramerate&&i.maxFramerate?n.maxFramerate>i.maxFramerate?1:-1:0})}class sP{constructor(e){const t=e.match(/^L(\d)T(\d)(h|_KEY|_KEY_SHIFT){0,1}$/);if(!t)throw Error("invalid scalability mode");if(this.spatial=parseInt(t[1]),this.temporal=parseInt(t[2]),t.length>3)switch(t[3]){case"h":case"_KEY":case"_KEY_SHIFT":this.suffix=t[3]}}toString(){var e;return"L".concat(this.spatial,"T").concat(this.temporal).concat(null!=(e=this.suffix)?e:"")}}class sR extends sp{get sender(){return this._sender}set sender(e){this._sender=e,this.degradationPreference&&this.setDegradationPreference(this.degradationPreference)}constructor(e,t){let n=!(arguments.length>2)||void 0===arguments[2]||arguments[2],i=arguments.length>3?arguments[3]:void 0;super(e,rW.Kind.Video,t,n,i),this.simulcastCodecs=new Map,this.degradationPreference="balanced",this.isCpuConstrained=!1,this.optimizeForPerformance=!1,this.monitorSender=()=>il(this,void 0,void 0,function*(){let e;if(!this.sender){this._currentBitrate=0;return}try{e=yield this.getSenderStats()}catch(e){this.log.error("could not get video sender stats",Object.assign(Object.assign({},this.logContext),{error:e}));return}let t=new Map(e.map(e=>[e.rid,e])),n=e.some(e=>"cpu"===e.qualityLimitationReason);if(n!==this.isCpuConstrained&&(this.isCpuConstrained=n,this.isCpuConstrained&&this.emit(cV.CpuConstrained)),this.prevStats){let e=0;t.forEach((t,n)=>{var i;let r=null==(i=this.prevStats)?void 0:i.get(n);e+=sl(t,r)}),this._currentBitrate=e}this.prevStats=t}),this.senderLock=new C}get isSimulcast(){return!!this.sender&&!!(this.sender.getParameters().encodings.length>1)}startMonitor(e){var t;if(this.signalClient=e,!r4())return;let n=null==(t=this.sender)?void 0:t.getParameters();n&&(this.encodings=n.encodings),this.monitorInterval||(this.monitorInterval=setInterval(()=>{this.monitorSender()},2e3))}stop(){this._mediaStreamTrack.getConstraints(),this.simulcastCodecs.forEach(e=>{e.mediaStreamTrack.stop()}),super.stop()}pauseUpstream(){let e=Object.create(null,{pauseUpstream:{get:()=>super.pauseUpstream}});return il(this,void 0,void 0,function*(){yield e.pauseUpstream.call(this);try{for(var t,n,i,r,a,s,o=!0,c=iu(this.simulcastCodecs.values());!(t=(s=yield c.next()).done);o=!0)r=s.value,o=!1,yield null==(a=r.sender)?void 0:a.replaceTrack(null)}catch(e){n={error:e}}finally{try{!o&&!t&&(i=c.return)&&(yield i.call(c))}finally{if(n)throw n.error}}})}resumeUpstream(){let e=Object.create(null,{resumeUpstream:{get:()=>super.resumeUpstream}});return il(this,void 0,void 0,function*(){yield e.resumeUpstream.call(this);try{for(var t,n,i,r,a,s,o=!0,c=iu(this.simulcastCodecs.values());!(t=(s=yield c.next()).done);o=!0)r=s.value,o=!1,yield null==(a=r.sender)?void 0:a.replaceTrack(r.mediaStreamTrack)}catch(e){n={error:e}}finally{try{!o&&!t&&(i=c.return)&&(yield i.call(c))}finally{if(n)throw n.error}}})}mute(){let e=Object.create(null,{mute:{get:()=>super.mute}});return il(this,void 0,void 0,function*(){let t=yield this.muteLock.lock();try{if(this.isMuted)return this.log.debug("Track already muted",this.logContext),this;return this.source!==rW.Source.Camera||this.isUserProvided||(this.log.debug("stopping camera track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this}finally{t()}})}unmute(){let e=Object.create(null,{unmute:{get:()=>super.unmute}});return il(this,void 0,void 0,function*(){let t=yield this.muteLock.lock();try{if(!this.isMuted)return this.log.debug("Track already unmuted",this.logContext),this;return this.source!==rW.Source.Camera||this.isUserProvided||(this.log.debug("reacquiring camera track",this.logContext),yield this.restart(void 0,!0)),yield e.unmute.call(this),this}finally{t()}})}setTrackMuted(e){for(let t of(super.setTrackMuted(e),this.simulcastCodecs.values())
2)t.mediaStreamTrack.enabled=!e}getSenderStats(){return il(this,void 0,void 0,function*(){var e;if(!(null==(e=this.sender)?void 0:e.getStats))return[];let t=[],n=yield this.sender.getStats();return n.forEach(e=>{var i;if("outbound-rtp"===e.type){let r={type:"video",streamId:e.id,frameHeight:e.frameHeight,frameWidth:e.frameWidth,framesPerSecond:e.framesPerSecond,framesSent:e.framesSent,firCount:e.firCount,pliCount:e.pliCount,nackCount:e.nackCount,packetsSent:e.packetsSent,bytesSent:e.bytesSent,qualityLimitationReason:e.qualityLimitationReason,qualityLimitationDurations:e.qualityLimitationDurations,qualityLimitationResolutionChanges:e.qualityLimitationResolutionChanges,rid:null!=(i=e.rid)?i:e.id,retransmittedPacketsSent:e.retransmittedPacketsSent,targetBitrate:e.targetBitrate,timestamp:e.timestamp},a=n.get(e.remoteId);a&&(r.jitter=a.jitter,r.packetsLost=a.packetsLost,r.roundTripTime=a.roundTripTime),t.push(r)}}),t.sort((e,t)=>{var n,i;return(null!=(n=t.frameWidth)?n:0)-(null!=(i=e.frameWidth)?i:0)}),t})}setPublishingQuality(e){let t=[];for(let n=cW.LOW;n<=cW.HIGH;n+=1)t.push(new ng({quality:n,enabled:n<=e}));this.log.debug("setting publishing quality. max quality ".concat(e),this.logContext),this.setPublishingLayers(rX(this.codec),t)}restartTrack(e){return il(this,void 0,void 0,function*(){let t;if(e){let n=rL({video:e});"boolean"!=typeof n.video&&(t=n.video)}yield this.restart(t),this.isCpuConstrained=!1;try{for(var n,i,r,a,s,o,c=!0,l=iu(this.simulcastCodecs.values());!(n=(o=yield l.next()).done);c=!0)a=o.value,c=!1,a.sender&&(null==(s=a.sender.transport)?void 0:s.state)!=="closed"&&(a.mediaStreamTrack=this.mediaStreamTrack.clone(),yield a.sender.replaceTrack(a.mediaStreamTrack))}catch(e){i={error:e}}finally{try{!c&&!n&&(r=l.return)&&(yield r.call(l))}finally{if(i)throw i.error}}yield this.onSenderTrackSwapped()})}onSenderTrackSwapped(){return il(this,void 0,void 0,function*(){yield this.refreshSen
2derEncodings()})}refreshSenderEncodings(){return il(this,void 0,void 0,function*(){var e;if(!this.sender||!this.publishOptions||this.optimizeForPerformance)return;let t=yield this.senderLock.lock();try{let t;try{t=yield this.waitForDimensions()}catch(e){this.log.warn("could not determine new track dimensions, skipping encoding recompute",Object.assign(Object.assign({},this.logContext),{error:e}));return}if(this.lastEncodedDimensions&&this.lastEncodedDimensions.width===t.width&&this.lastEncodedDimensions.height===t.height)return;let n=this.source===rW.Source.ScreenShare,i=sT(n,t.width,t.height,Object.assign({},this.publishOptions));for(let[n,r]of(yield this.applyEncodingsToSender(this.sender,i),this.encodings=i,this.lastEncodedDimensions=t,this.simulcastCodecs)){if(!r.sender||(null==(e=r.sender.transport)?void 0:e.state)==="closed"||!rx(n))continue;let t=Object.assign({},this.publishOptions),i=sS(this,n,t);i&&(yield this.applyEncodingsToSender(r.sender,i),r.encodings=i)}}catch(e){this.log.warn("failed to apply recomputed encodings",Object.assign(Object.assign({},this.logContext),{error:e}))}finally{t()}})}applyEncodingsToSender(e,t){return il(this,void 0,void 0,function*(){let n=e.getParameters();
2n.encodings&&n.encodings.length===t.length&&(n.encodings.forEach((e,n)=>{if(!1===e.active)return;let i=t[n];void 0!==i.scaleResolutionDownBy&&(e.scaleResolutionDownBy=i.scaleResolutionDownBy),void 0!==i.maxBitrate&&(e.maxBitrate=i.maxBitrate),void 0!==i.maxFramerate&&(e.maxFramerate=i.maxFramerate),void 0!==i.priority&&(e.priority=i.priority,e.networkPriority=i.priority)}),this.log.debug("updating sender encodings after track restart",Object.assign(Object.assign({},this.logContext),{encodings:n.encodings})),yield e.setParameters(n))})}setProcessor(e){let t=Object.create(null,{setProcessor:{get:()=>super.setProcessor}});return il(this,arguments,void 0,function(e){var n=this;let i=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return function*(){if(yield t.setProcessor.call(n,e,i),null==(c=n.processor)?void 0:c.processedTrack)try{for(var r,a,s,o,c,l,d,u=!0,h=iu(n.simulcastCodecs.values());!(r=(d=yield h.next()).done);u=!0)o=d.value,u=!1,yield null==(l=o.sender)?void 0:l.replaceTrack(n.processor.processedTrack)}catch(e){a={error:e}}finally{try{!u&&!r&&(s=h.return)&&(yield s.call(h))}finally{if(a)throw a.error}}}()})}setDegradationPreference(e){return il(this,void 0,void 0,function*(){if(this.degradationPreference=e,this.sender)try{this.log.debug("setting degradationPreference to ".concat(e),this.logContext);let t=this.sender.getParameters();t.degradationPreference=e,this.sender.setParameters(t)}catch(e){this.log.warn("failed to set degradationPreference",Object.assign({error:e},this.logContext))}})}addSimulcastTrack(e,t){if(this.simulcastCodecs.has(e))return void this.log.error("".concat(e," already added, skipping adding simulcast codec"),this.logContext);let n={codec:e,mediaStreamTrack:this.mediaStreamTrack.clone(),sender:void 0,encodings:t};return this.simulcastCodecs.set(e,n),n}setSimulcastTrackSender(e,t){let n=this.simulcastCodecs.get(e);n&&(n.sender=t,setTimeout(()=>{this.subscribedCodecs&&this.setPublishingCodecs(this.subscribedCodecs)},5e3))}setPublishingCodecs(e){return il(this,void 0,void 0,function*(){var t,n,i,r,a,s,o;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(rX(e[0].codec),e[0].qualities),[];this.subscribedCodecs=e;let c=[];try{for(t=!0,n=iu(e);!(r=(i=yield n.next()).done);t=!0)if(o=i.value,t=!1,this.codec&&this.codec!==o.codec){let e=this.simulcastCodecs.get(o.codec);if(this.log.debug("try setPublishingCodec for ".concat(o.codec),Object.assign(Object.assign({},this.logContext),{simulcastCodecInfo:e})),e&&e.sender)e.encodings&&(this.log.debug("try setPublishingLayersForSender ".concat(o.codec),this.logContext),yield sI(e.sender,e.encodings,o.qualities,this.senderLock,rX(o.codec),this.log,this.logContext));else for(let e of o.qualities)if(e.enabled){c.push(o.codec);break}}else yield this.setPublishingLayers(rX(o.codec),o.qualities)}catch(e){a={error:e}}finally{try{!t&&!r&&(s=n.return)&&(yield s.call(n))}finally{if(a)throw a.error}}return c})}setPublishingLayers(e,t){return il(this,void 0,void 0,function*(){this.optimizeForPerformance?this.log.info("skipping setPublishingLayers due to optimized publishing performance",Object.assign(Object.assign({},this.logContext),{qualities:t})):(this.log.debug("setting publishing layers",Object.assign(Object.assign({},this.logContext),{qualities:t})),this.sender&&this.encodings&&(yield sI(this.sender,this.encodings,t,this.senderLock,e,this.log,this.logContext)))})}prioritizePerformance(){return il(this,void 0,void 0,function*(){if(!this.sender)throw Error("sender not found");let e=yield this.senderLock.lock();try{this.optimizeForPerformance=!0;let e=this.sender.getParameters();e.encodings=e.encodings.map((e,t)=>{var n;return Object.assign(Object.assign({},e),{active:0===t,scaleResolutionDownBy:Math.max(1,Math.ceil((null!=(n=this.mediaStreamTrack.getSettings().height)?n:360)/360)),scalabilityMode:0===t&&rX(this.codec)?"L1T3":void 0,maxFramerate:15*(0===t),maxBitrate:0===t?e.maxBitrate:0})}),this.log.debug("setting performance optimised encodings",Object.assign(Object.assign({},this.logContext),{encodings:e.encodings})),this.encodings=e.encodings,yield this.sender.setParameters(e)}catch(e){this.log.error("failed to set performance optimised encodings",Object.assign(Object.assign({},this.logContext),{error:e})),this.optimizeForPerformance=!1}finally{e()}})}handleAppVisibilityChanged(){let e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return il(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),r3()&&this.isInBackgroun
2d&&this.source===rW.Source.Camera&&(this._mediaStreamTrack.enabled=!1)})}}function sI(e,t,n,i,r,a,s){return il(this,void 0,void 0,function*(){let o=yield i.lock();a.debug("setPublishingLayersForSender",Object.assign(Object.assign({},s),{sender:e,qualities:n,senderEncodings:t}));try{let i=e.getParameters(),{encodings:o}=i;if(!o)return;if(o.length!==t.length)return void a.warn("cannot set publishing layers, encodings mismatch",Object.assign(Object.assign({},s),{encodings:o,senderEncodings:t}));let c=!1;r&&n.some(e=>e.enabled)&&n.forEach(e=>e.enabled=!0),o.forEach((e,i)=>{var r;let o=null!=(r=e.rid)?r:"";""===o&&(o="q");let l=s_(o),d=n.find(e=>e.quality===l);d&&e.active!==d.enabled&&(c=!0,e.active=d.enabled,a.debug("setting layer ".concat(d.quality," to ").concat(e.active?"enabled":"disabled"),s),r0()&&(d.enabled?(e.scaleResolutionDownBy=t[i].scaleResolutionDownBy,e.maxBitrate=t[i].maxBitrate,e.maxFrameRate=t[i].maxFrameRate):(e.scaleResolutionDownBy=4,e.maxBitrate=10,e.maxFrameRate=2)))}),c&&(i.encodings=o,a.debug("setting encodings",Object.assign(Object.assign({},s),{encodings:i.encodings})),yield e.setParameters(i))}finally{o()}})}function s_(e){switch(e){case"f":default:return cW.HIGH;case"h":return cW.MEDIUM;case"q":return cW.LOW}}function sx(e,t,n,i){if(!n)return[new ta({quality:cW.HIGH,width:e,height:t,bitrate:0,ssrc:0})];if(i){let i=new sP(n[0].scalabilityMode),r=[],a="h"==i.suffix?1.5:2,s="h"==i.suffix?2:3;for(let o=0;o<i.spatial;o+=1)r.push(new ta({quality:Math.min(cW.HIGH,i.spatial-1)-o,width:Math.ceil(e/Math.pow(a,o)),height:Math.ceil(t/Math.pow(a,o)),bitrate:n[0].maxBitrate?Math.ceil(n[0].maxBitrate/Math.pow(s,o)):0,ssrc:0}));return r}return n.map(n=>{var i,r,a;let s=null!=(i=n.scaleResolutionDownBy)?i:1;return new ta({quality:s_(null!=(r=n.rid)?r:""),width:Math.ceil(e/s),height:Math.ceil(t/s),bitrate:null!=(a=n.maxBitrate)?a:0,ssrc:0})})}let sO="_lossy",sM="_reliable",sD="_data_track",sA="leave-reconnect";(cl=c6||(c6={}))[cl.New=0]="New",cl[cl.Connected=1]="Connected",cl[cl.Disconnected=2]="Disconnected",cl[cl.Reconnecting=3]="Reconnecting",cl[cl.Closed=4]="Closed",(cd=c9||(c9={}))[cd.RELIABLE=0]="RELIABLE",cd[cd.LOSSY=1]="LOSSY",cd[cd.DATA_TRACK_LOSSY=2]="DATA_TRACK_LOSSY";class sN extends ip.EventEmitter{get isClosed(){return this._isClosed}get isNewlyCreated(){return this._isNewlyCreated}get pendingReconnect(){return!!this.reconnectTimeout}constructor(e){var t;super(),this.options=e,this.rtcConfig={},this.peerConnectionTimeout=sr.peerConnectionTimeout,this.fullReconnectOnNext=!1,this.latestRemoteOfferId=0,this.subscriberPrimary=!1,this.pcState=c6.New,this._isClosed=!0,this._isNewlyCreated=!0,this.pendingTrackResolvers={},this.reconnectAttempts=0,this.reconnectStart=0,this.attemptingReconnect=!1,this.joinAttempts=0,this.maxJoinAttempts=1,this.shouldFailNext=!1,this.shouldFailOnV1Path=!1,this.log=ii,this.reliableDataSequence=1,this.reliableMessageBuffer=new a$,this.reliableReceivedState=new aY(3e4),this.lossyDataStatCurrentBytes=0,this.lossyDataStatByterate=0,this.lossyDataDropCount=0,this.midToTrackId={},this.isWaitingForNetworkReconnect=!1,this.bufferStatusLowClosingFuture=new au,this.handleDataChannel=e=>il(this,[e],void 0,function(e){var t=this;let{channel:n}=e;return function*(){let e;if(n){if(n.label===sM)t.reliableDCSub=n,e=t.handleDataMessage;else if(n.label===sO)t.lossyDCSub=n,e=t.handleDataMessage;else{if(n.label!==sD)return;t.dataTrackDCSub=n,e=t.handleDataTrackMessage}t.log.debug("on data channel ".concat(n.id,", ").concat(n.label),t.logContext),n.onmessage=e}}()}),this.handleDataMessage=e=>il(this,void 0,void 0,function*(){var t,n,i,r,a;let s=yield this.dataProcessLock.lock();try{let s;if(e.data instanceof ArrayBuffer)s=e.data;else{if(!(e.data instanceof Blob))return void this.log.error("unsupported data type",Object.assign(Object.assign({},this.logContext),{data:e.data}));s=yield e.data.arrayBuffer()}let o=to.fromBinary(new Uint8Array(s));if(o.sequence>0&&""!==o.participantSid){let e=this.reliableReceivedState.get(o.participantSid);if(e&&o.sequence<=e)return;this.reliableReceivedState.set(o.participantSid,o.sequence)}
2if((null==(t=o.value)?void 0:t.case)==="speaker")this.emit(cq.ActiveSpeakersUpdate,o.value.value.speakers);else if((null==(n=o.value)?void 0:n.case)==="encryptedPacket"){if(!this.e2eeManager)return void this.log.error("Received encrypted packet but E2EE not set up",this.logContext);let e=yield null==(i=this.e2eeManager)?void 0:i.handleEncryptedData(o.value.value.encryptedValue,o.value.value.iv,o.participantIdentity,o.value.value.keyIndex),t=td.fromBinary(e.payload),n=new to({value:t.value,participantIdentity:o.participantIdentity,participantSid:o.participantSid});(null==(r=n.value)?void 0:r.case)==="user"&&sL(n,n.value.value),this.emit(cq.DataPacketReceived,n,o.value.value.encryptionType)}else(null==(a=o.value)?void 0:a.case)==="user"&&sL(o,o.value.value),this.emit(cq.DataPacketReceived,o,te.NONE)}finally{s()}}),this.handleDataTrackMessage=e=>il(this,void 0,void 0,function*(){let t;if(e.data instanceof ArrayBuffer)t=e.data;else{if(!(e.data instanceof Blob))return void this.log.error("unsupported data type",Object.assign(Object.assign({},this.logContext),{data:e.data}));t=yield e.data.arrayBuffer()}this.emit("dataTrackPacketReceived",new Uint8Array(t))}),this.handleDataError=e=>{let t=0===e.currentTarget.maxRetransmits?"lossy":"reliable";if(e instanceof ErrorEvent&&e.error){let{error:n}=e.error;this.log.error("DataChannel error on ".concat(t,": ").concat(e.message),Object.assign(Object.assign({},this.logContext),{error:n}))}else this.log.error("Unknown DataChannel error on ".concat(t),Object.assign(Object.assign({},this.logContext),{event:e}))},this.handleBufferedAmountLow=e=>{this.updateAndEmitDCBufferStatus(e)},this.handleDisconnect=(e,t)=>{if(this._isClosed)return;this.log.warn("".concat(e," disconnected"),this.logContext),0===this.reconnectAttempts&&(this.reconnectStart=Date.now());let n=e=>{this.log.warn("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(e,"ms. giving up"),this.logContext),this.emit(cq.Disconnected),this.close()},i=Date.now()-this.reconnectStart,r=this.getNextRetryDelay({elapsedMs:i,retryCount:this.reconnectAttempts});null===r?n(i):(e===sA&&(r=0),this.log.debug("reconnecting in ".concat(r,"ms"),this.logContext),this.clearReconnectTimeout(),this.token&&this.emit(cq.TokenRefreshed,this.token),this.reconnectTimeout=rP.setTimeout(()=>this.attemptReconnect(t).finally(()=>this.reconnectTimeout=void 0),r))},this.waitForRestarted=()=>new Promise((e,t)=>{this.pcState===c6.Connected&&e();let n=()=>{this.off(cq.Disconnected,i),e()},i=()=>{this.off(cq.Restarted,n),t()};this.once(cq.Restarted,n),this.once(cq.Disconnected,i)}),this.updateAndEmitDCBufferStatus=e=>{if(e===c9.RELIABLE){let t=this.dataChannelForKind(e);t&&this.reliableMessageBuffer.alignBufferedAmount(t.bufferedAmount)}let t=this.isBufferStatusLow(e);void 0!==t&&t!==this.dcBufferStatus.get(e)&&(this.dcBufferStatus.set(e,t),this.emit(cq.DCBufferStatusChanged,t,e))},this.isBufferStatusLow=e=>{let t=this.dataChannelForKind(e);if(t)return t.bufferedAmount<=t.bufferedAmountLowThreshold},this.handleBrowserOnLine=()=>il(this,void 0,void 0,function*(){!this.url||(yield fetch(am(this.url),{method:"HEAD"}).then(e=>e.ok).catch(()=>!1))&&(this.log.info("detected network reconnected"),(this.client.currentState===cZ.RECONNECTING||this.isWaitingForNetworkReconnect&&this.client.currentState===cZ.CONNECTED)&&(this.clearReconnectTimeout(),this.attemptReconnect(eZ.RR_SIGNAL_DISCONNECTED),this.isWaitingForNetworkReconnect=!1))}),this.handleBrowserOffline=()=>il(this,void 0,void 0,function*(){if(this.url)try{yield Promise.race([fetch(am(this.url),{method:"HEAD"}),r$(4e3).then(()=>Promise.reject())])}catch(e){!1===window.navigator.onLine&&(this.log.info("detected network interruption"),this.isWaitingForNetworkReconnect=!0)}}),this.log=ia(null!=(t=e.loggerName)?t:cM.Engine),this.loggerOptions={loggerName:e.loggerName,loggerContextCb:()=>this.logContext},this.client=new aG(void 0,this.loggerOptions),this.client.signalLatency=this.options.expSignalLatency,this.reconnectPolicy=this.options.reconnectPolicy,this.closingLock=new C,this.dataProcessLock=new C,this.dcBufferStatus=new Map([[c9.RELIABLE,!0],[c9.LOSSY,!0
2],[c9.DATA_TRACK_LOSSY,!0]]),this.client.onParticipantUpdate=e=>this.emit(cq.ParticipantUpdate,e),this.client.onConnectionQuality=e=>this.emit(cq.ConnectionQualityUpdate,e),this.client.onRoomUpdate=e=>this.emit(cq.RoomUpdate,e),this.client.onSubscriptionError=e=>this.emit(cq.SubscriptionError,e),this.client.onSubscriptionPermissionUpdate=e=>this.emit(cq.SubscriptionPermissionUpdate,e),this.client.onSpeakersChanged=e=>this.emit(cq.SpeakersChanged,e),this.client.onStreamStateUpdate=e=>this.emit(cq.StreamStateChanged,e),this.client.onRequestResponse=e=>this.emit(cq.SignalRequestResponse,e),this.client.onParticipantUpdate=e=>this.emit(cq.ParticipantUpdate,e),this.client.onJoined=e=>this.emit(cq.Joined,e),this.on(cq.Closing,()=>{var e,t;null==(t=(e=this.bufferStatusLowClosingFuture).reject)||t.call(e,new rk("engine closed"))}),this.bufferStatusLowClosingFuture.promise.catch(()=>{})}get logContext(){var e,t,n,i,r,a;return{room:null==(t=null==(e=this.latestJoinResponse)?void 0:e.room)?void 0:t.name,roomID:null==(i=null==(n=this.latestJoinResponse)?void 0:n.room)?void 0:i.sid,participant:null==(a=null==(r=this.latestJoinResponse)?void 0:r.participant)?void 0:a.identity,participantID:this.participantSid}}join(e,t,n,i){return il(this,arguments,void 0,function(e,t,n,i){var r=this;let a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return function*(){var s,o,c,l,d,u;r._isNewlyCreated=!1,r.url=e,r.token=t,r.signalOpts=n,r.maxJoinAttempts=n.maxRetries;try{let h;if(r.joinAttempts+=1,r.setupSignalClientCallbacks(),!a&&aE()){r.pcManager||(yield r.configure(),r.createDataChannels(),r.addMediaSections(3,3));let e=yield null==(s=r.pcManager)?void 0:s.publisher.createInitialOffer();e&&(h=aK(e.offer,e.offerId))}if(null==i?void 0:i.aborted)throw rg.cancelled("Connection aborted");if(!a&&r.shouldFailOnV1Path)throw r.shouldFailOnV1Path=!1,rg.serviceNotFound("Simulated v1 path failure","v0-rtc");let p=yield r.client.join(e,t,n,i,a,h);r._isClosed=!1,r.latestJoinResponse=p,r.participantSid=null==(o=p.participant)?void 0:o.sid,r.subscriberPrimary=p.subscriberPrimary,!a&&aE()?null==(c=r.pcManager)||c.updateConfiguration(r.makeRTCConfiguration(p)):(r.pcManager||(yield r.configure(p,!a)),(!r.subscriberPrimary||p.fastPublish)&&r.negotiate().catch(e=>{ii.error(e,r.logContext)})),r.registerOnLineListener(),r.clientConfiguration=p.clientConfiguration,r.emit(cq.SignalConnected,p);let m=p.serverInfo;return m||(m={version:p.serverVersion,region:p.serverRegion}),r.log.debug("connected to Livekit Server ".concat(Object.entries(m).map(e=>{let[t,n]=e;return"".concat(t,": ").concat(n)}).join(", ")),{room:null==(l=p.room)?void 0:l.name,roomSid:null==(d=p.room)?void 0:d.sid,identity:null==(u=p.participant)?void 0:u.identity}),{joinResponse:p,serverInfo:m}}catch(s){if(s instanceof rg){if(s.reason===cL.ServerUnreachable){if(r.log.warn("Couldn't connect to server, attempt ".concat(r.joinAttempts," of ").concat(r.maxJoinAttempts),r.logContext),r.joinAttempts<r.maxJoinAttempts)return r.join(e,t,n,i,a)}else if(s.reason===cL.ServiceNotFound)return r.log.warn("Initial connection failed: ".concat(s.message," – Retrying")),r.pcManager&&(r.pcManager.onStateChange=void 0,yield r.cleanupPeerConnections()),r.join(e,t,n,i,!0)}throw s}}()})}close(){return il(this,void 0,void 0,function*(){let e=yield this.closingLock.lock();if(this.isClosed)return void e();try{this._isClosed=!0,this.joinAttempts=0,this.emit(cq.Closing),this.removeAllListeners(),this.deregisterOnLineListener(),this.clearPendingReconnect(),this.cleanupLossyDataStats(),yield this.cleanupPeerConnections(),yield this.cleanupClient()}finally{e()}})}cleanupPeerConnections(){return il(this,void 0,void 0,function*(){var e;yield null==(e=this.pcManager)?void 0:e.close(),this.pcManager=void 0;let t=e=>{e&&(e.close(),e.onbufferedamountlow=null,e.onclose=null,e.onclosing=null,e.onerror=null,e.onmessage=null,e.onopen=null)};t(this.lossyDC),t(this.lossyDCSub),t(this.reliableDC),t(this.reliableDCSub),t(this.dataTrackDC),t(this.dataTrackDCSub),this.lossyDC=void 0,this.lossyDCSub=void 0,this.reliableDC=void 0,this.reliableDCSub=void 0,this.dataTrackDC=void 0,this.dataTrackDCSub=void 0,this.reliableMessageBuffer=new a$,this.reliableDataSequence=1,this.reliableReceivedState.clear()})}cleanupLossyDataStats(){this.lossyDataStatByterate=0,this.lossyDataStatCurrentBytes=0,this.lossyDataStatInterval&&(clearInterval(this.lossyDataStatInterval),this.lossyDataStatInterval=void 0),this.lossyDataDropCount=0}cleanupClient(){return il(this,void 0,void 0,function*(){for(let e of(yield this.client.close(),this.client.resetCallbacks(),Object.keys(this.pendingTrackResolvers)))this.pendingTrackResolvers[e].reject();this.pendingTrackResolvers={}})}addTrack(e){if(this.pendingTrackResolvers[e.cid])throw new rb("a track with the same ID has already been published");return new Promise((t,n)=>{let i=setTimeout(()=>{delete this.pendingTrackResolvers[e.cid],n(rg.timeout("publication of local track timed out, no response from server"))},1e4);this.pendingTrackResolvers[e.cid]={resolve:e=>{clearTimeout(i),t(e)},reject:()=>{clearTimeout(i),n(Error("Cancelled publication by calling unpublish"))}},this.client.sendAddTrack(e)})}removeTrack(e){if(e.track&&this.pendingTrackResolvers[e.track.id]){let{reject:t}=this.pendingTrackResolvers[e.track.id];t&&t(),delete this.pendingTrackResolvers[e.track.id]}try{return this.pcManager.removeTrack(e),!0}catch(e){this.log.warn("failed to remove track",Object.assign(Object.assign({},this.logContext),{error:e}))}return!1}updateMuteStatus(e,t){this.client.sendMuteTrack(e,t)}get dataSubscriberReadyState(){var e;return null==(e=this.reliableDCSub)?void 0:e.readyState}getConnectedServerAddress(){return il(this,void 0,void 0,function*(){var e;return null==(e=this.pcManager)?void 0:e.getConnectedAddress()})}setRegionStrategy(e){this.regionStrategy=e}configure(e,t){return il(this,void 0,void 0,function*(){var n;if(!this.pcManager||this.pcManager.currentState===c4.NEW){if(e){this.participantSid=null==(n=e.participant)?void 0:n.sid;let i=this.makeRTCConfiguration(e);this.pcManager=new sa(t?"publisher-only":e.subscriberPrimary?"subscriber-primary":"publisher-primary",this.loggerOptions,i)}else{let e=this.makeRTCConfiguration();this.pcManager=new sa("publisher-only",this.loggerOptions,e)}
2this.emit(cq.TransportsCreated,this.pcManager.publisher,this.pcManager.subscriber),this.pcManager.onIceCandidate=(e,t)=>{this.client.sendIceCandidate(e,t)},this.pcManager.onPublisherOffer=(e,t)=>{this.client.sendOffer(e,t)},this.pcManager.onDataChannel=this.handleDataChannel,this.pcManager.onStateChange=(e,t,n)=>il(this,void 0,void 0,function*(){if(this.log.debug("primary PC state changed ".concat(e),this.logContext),["closed","disconnected","failed"].includes(t)&&(this.publisherConnectionPromise=void 0),e===c4.CONNECTED){let e=this.pcState===c6.New;this.pcState=c6.Connected,e&&this.emit(cq.Connected,this.latestJoinResponse)}else e===c4.FAILED&&(this.pcState===c6.Connected||this.pcState===c6.Reconnecting)&&(this.pcState=c6.Disconnected,this.handleDisconnect("peerconnection failed","failed"===n?eZ.RR_SUBSCRIBER_FAILED:eZ.RR_PUBLISHER_FAILED));let i=this.client.isDisconnected||this.client.currentState===cZ.RECONNECTING,r=[c4.FAILED,c4.CLOSING,c4.CLOSED].includes(e);i&&r&&!this._isClosed&&this.emit(cq.Offline)}),this.pcManager.onTrack=e=>{0!==e.streams.length&&this.emit(cq.MediaTrackAdded,e.track,e.streams[0],e.receiver)}}})}setupSignalClientCallbacks(){this.client.onAnswer=(e,t,n)=>il(this,void 0,void 0,function*(){this.pcManager&&(this.log.debug("received server answer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type,sdp:e.sdp,midToTrackId:n})),this.midToTrackId=n,yield this.pcManager.setPublisherAnswer(e,t))}),this.client.onTrickle=(e,t)=>{this.pcManager&&(this.log.debug("got ICE candidate from peer",Object.assign(Object.assign({},this.logContext),{candidate:e,target:t})),this.pcManager.addIceCandidate(e,t))},this.client.onOffer=(e,t,n)=>il(this,void 0,void 0,function*(){if(this.latestRemoteOfferId=t,!this.pcManager)return;this.midToTrackId=n;let i=yield this.pcManager.createSubscriberAnswerFromOffer(e,t);i&&this.client.sendAnswer(i,t)}),this.client.onLocalTrackPublished=e=>{var t;if(this.log.debug("received trackPublishedResponse",Object.assign(Object.assign({},this.logContext),{cid:e.cid,track:null==(t=e.track)?void 0:t.sid})),!this.pendingTrackResolvers[e.cid])return void this.log.error("missing track resolver for ".concat(e.cid),Object.assign(Object.assign({},this.logContext),{cid:e.cid}));let{resolve:n}=this.pendingTrackResolvers[e.cid];delete this.pendingTrackResolvers[e.cid],n(e.track)},this.client.onLocalTrackUnpublished=e=>{this.emit(cq.LocalTrackUnpublished,e)},this.client.onLocalTrackSubscribed=e=>{this.emit(cq.LocalTrackSubscribed,e)},this.client.onTokenRefresh=e=>{this.token=e,this.emit(cq.TokenRefreshed,e)},this.client.onRemoteMuteChanged=(e,t)=>{this.emit(cq.RemoteMute,e,t)},this.client.onSubscribedQualityUpdate=e=>{this.emit(cq.SubscribedQualityUpdate,e)},this.client.onRoomMoved=e=>{var t;this.participantSid=null==(t=e.participant)?void 0:t.sid,this.latestJoinResponse&&(this.latestJoinResponse.room=e.room),this.emit(cq.RoomMoved,e)},this.client.onMediaSectionsRequirement=e=>{this.addMediaSections(e.numAudios,e.numVideos),this.negotiate()},this.client.onPublishDataTrackResponse=e=>{this.emit(cq.PublishDataTrackResponse,e)},this.client.onUnPublishDataTrackResponse=e=>{this.emit(cq.UnPublishDataTrackResponse,e)},this.client.onDataTrackSubscriberHandles=e=>{this.emit(cq.DataTrackSubscriberHandles,e)},this.client.onClose=()=>{this.handleDisconnect("signal",eZ.RR_SIGNAL_DISCONNECTED)},this.client.onLeave=e=>{switch(this.log.debug("client leave request",Object.assign(Object.assign({},this.logContext),{reason:null==e?void 0:e.reason})),e.regions&&(this.log.debug("updating regions",this.logContext),this.emit(cq.ServerRegionsReported,e.regions)),e.action){case ns.DISCONNECT:this.emit(cq.Disconnected,null==e?void 0:e.reason),this.close();break;case ns.RECONNECT:this.fullReconnectOnNext=!0,this.handleDisconnect(sA);break;case ns.RESUME:this.handleDisconnect(sA)}}}makeRTCConfiguration(e){var t;let n=Object.assign({},this.rtcConfig);if((null==(t=this.signalOpts)?void 0:t.e2eeEnabled)&&(this.log.debug("E2EE - setting up transports with insertable streams",this.logContext),n.encodedInsertableStreams=!0),n.sdpSemantics="unified-plan",n.continualGatheringPolicy="gather_continually",!e)return n;if(e.iceServers&&!n.iceServers){let t=[];
2e.iceServers.forEach(e=>{let n={urls:e.urls};e.username&&(n.username=e.username),e.credential&&(n.credential=e.credential),t.push(n)}),n.iceServers=t}return e.clientConfiguration&&e.clientConfiguration.forceRelay===eQ.ENABLED&&(n.iceTransportPolicy="relay"),n}addMediaSections(e,t){var n,i;let r={direction:"recvonly"};for(let t=0;t<e;t++)null==(n=this.pcManager)||n.addPublisherTransceiverOfKind("audio",r);for(let e=0;e<t;e++)null==(i=this.pcManager)||i.addPublisherTransceiverOfKind("video",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.dataTrackDC&&(this.dataTrackDC.onmessage=null,this.dataTrackDC.onerror=null),this.lossyDC=this.pcManager.createPublisherDataChannel(sO,{ordered:!1,maxRetransmits:0}),this.reliableDC=this.pcManager.createPublisherDataChannel(sM,{ordered:!0}),this.dataTrackDC=this.pcManager.createPublisherDataChannel(sD,{ordered:!1,maxRetransmits:0}),this.lossyDC.onmessage=this.handleDataMessage,this.reliableDC.onmessage=this.handleDataMessage,this.dataTrackDC.onmessage=this.handleDataTrackMessage,this.lossyDC.onerror=this.handleDataError,this.reliableDC.onerror=this.handleDataError,this.dataTrackDC.onerror=this.handleDataError,this.lossyDC.bufferedAmountLowThreshold=65535,this.reliableDC.bufferedAmountLowThreshold=65535,this.dataTrackDC.bufferedAmountLowThreshold=65535,this.lossyDC.onbufferedamountlow=()=>this.handleBufferedAmountLow(c9.LOSSY),this.reliableDC.onbufferedamountlow=()=>this.handleBufferedAmountLow(c9.RELIABLE),this.dataTrackDC.onbufferedamountlow=()=>this.handleBufferedAmountLow(c9.DATA_TRACK_LOSSY),this.cleanupLossyDataStats(),this.lossyDataStatInterval=setInterval(()=>{this.lossyDataStatByterate=this.lossyDataStatCurrentBytes,this.lossyDataStatCurrentBytes=0;let e=this.dataChannelForKind(c9.LOSSY);e&&(e.bufferedAmountLowThreshold=Math.min(Math.max(this.lossyDataStatByterate/10,8192),262144))},1e3))}createSender(e,t,n){return il(this,void 0,void 0,function*(){if(rY())return yield this.createTransceiverRTCRtpSender(e,t,n);if(rQ())return this.log.warn("using add-track fallback",this.logContext),yield this.createRTCRtpSender(e.mediaStreamTrack);throw new rk("Required webRTC APIs not supported on this device")})}createSimulcastSender(e,t,n,i){return il(this,void 0,void 0,function*(){if(rY())return this.createSimulcastTransceiverSender(e,t,n,i);if(rQ())return this.log.debug("using add-track fallback",this.logContext),this.createRTCRtpSender(e.mediaStreamTrack);throw new rk("Cannot stream on this device")})}createTransceiverRTCRtpSender(e,t,n){return il(this,void 0,void 0,function*(){if(!this.pcManager)throw new rk("publisher is closed");let i=[];e.mediaStream&&i.push(e.mediaStream),ak(e)&&(e.codec=t.videoCodec);let r={direction:"sendonly",streams:i};return n&&(r.sendEncodings=n),(yield this.pcManager.addPublisherTransceiver(e.mediaStreamTrack,r)).sender})}createSimulcastTransceiverSender(e,t,n,i){return il(this,void 0,void 0,function*(){if(!this.pcManager)throw new rk("publisher is closed");let r={direction:"sendonly"};i&&(r.sendEncodings=i);let a=yield this.pcManager.addPublisherTransceiver(t.mediaStreamTrack,r);if(n.videoCodec)return e.setSimulcastTrackSender(n.videoCodec,a.sender),a.sender})}createRTCRtpSender(e){return il(this,void 0,void 0,function*(){if(!this.pcManager)throw new rk("publisher is closed");return this.pcManager.addPublisherTrack(e)})}attemptReconnect(e){return il(this,void 0,void 0,function*(){var t,n,i;if(!this._isClosed){if(this.attemptingReconnect)return void ii.warn("already attempting reconnect, returning early",this.logContext);((null==(t=this.clientConfiguration)?void 0:t.resumeConnection)===eQ.DISABLED||(null!=(i=null==(n=this.pcManager)?void 0:n.currentState)?i:c4.NEW)===c4.NEW)&&(this.fullReconnectOnNext=!0);try{this.attemptingReconnect=!0,this.fullReconnectOnNext?yield this.restartConnection():yield this.resumeConnection(e),this.clearPendingReconnect(),this.fullReconnectOnNext=!1}catch(t){this.reconnectAttempts+=1;let e=!0;t instanceof rk?(this.log.debug("received unrecoverable error",Object.assign(Object.assign({},this.logContext),{error:t})),e=!1):t instanceof rE||(this.fullReconnectOnNext=!0),e?this.handleDisconnect("reconnect",eZ.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
2(cq.Disconnected),yield this.close())}finally{this.attemptingReconnect=!1}}})}getNextRetryDelay(e){try{return this.reconnectPolicy.nextRetryDelayInMs(e)}catch(e){this.log.warn("encountered error in reconnect policy",Object.assign(Object.assign({},this.logContext),{error:e}))}return null}restartConnection(e){return il(this,void 0,void 0,function*(){var t,n,i;try{let n;if(!this.url||!this.token)throw new rk("could not reconnect, url or token not saved");this.log.info("reconnecting, attempt: ".concat(this.reconnectAttempts),this.logContext),this.emit(cq.Restarting),this.client.isDisconnected||(yield this.client.sendLeave()),yield this.cleanupPeerConnections(),yield this.cleanupClient();try{if(!this.signalOpts)throw this.log.warn("attempted connection restart, without signal options present",this.logContext),new rE;n=(yield this.join(null!=e?e:this.url,this.token,this.signalOpts,void 0,!this.options.singlePeerConnection)).joinResponse}catch(e){if(e instanceof rg&&e.reason===cL.NotAllowed)throw new rk("could not reconnect, token might be expired");throw new rE}if(this.shouldFailNext)throw this.shouldFailNext=!1,Error("simulated failure");if(this.client.setReconnected(),this.emit(cq.SignalRestarted,n),yield this.waitForPCReconnected(),this.client.currentState!==cZ.CONNECTED)throw new rE("Signal connection got severed during reconnect");null==(t=this.regionStrategy)||t.resetAttempts(),this.emit(cq.Restarted)}catch(t){let e=yield null==(n=this.regionStrategy)?void 0:n.getNextUrl();if(e)return void(yield this.restartConnection(e));throw null==(i=this.regionStrategy)||i.resetAttempts(),t}})}resumeConnection(e){return il(this,void 0,void 0,function*(){var t;let n;if(!this.url||!this.token)throw new rk("could not reconnect, url or token not saved");if(!this.pcManager)throw new rk("publisher and subscriber connections unset");this.log.info("resuming signal connection, attempt ".concat(this.reconnectAttempts),this.logContext),this.emit(cq.Resuming);try{this.setupSignalClientCallbacks(),n=yield this.client.reconnect(this.url,this.token,this.participantSid,e)}catch(t){let e="";if(t instanceof Error&&(e=t.message,this.log.error(t.message,Object.assign(Object.assign({},this.logContext),{error:t}))),t instanceof rg&&t.reason===cL.NotAllowed)throw new rk("could not reconnect, token might be expired");if(t instanceof rg&&t.reason===cL.LeaveRequest)throw t;throw new rE(e)}
2if(this.emit(cq.SignalResumed),n){let e=this.makeRTCConfiguration(n);this.pcManager.updateConfiguration(e),this.latestJoinResponse&&(this.latestJoinResponse.serverInfo=n.serverInfo)}else this.log.warn("Did not receive reconnect response",this.logContext);if(this.shouldFailNext)throw this.shouldFailNext=!1,Error("simulated failure");if(yield this.pcManager.triggerIceRestart(),yield this.waitForPCReconnected(),this.client.currentState!==cZ.CONNECTED)throw new rE("Signal connection got severed during reconnect");this.client.setReconnected(),(null==(t=this.reliableDC)?void 0:t.readyState)==="open"&&null===this.reliableDC.id&&this.createDataChannels(),(null==n?void 0:n.lastMessageSeq)&&this.resendReliableMessagesForResume(n.lastMessageSeq),this.emit(cq.Resumed)})}waitForPCInitialConnection(e,t){return il(this,void 0,void 0,function*(){if(!this.pcManager)throw new rk("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(t,e)})}waitForPCReconnected(){return il(this,void 0,void 0,function*(){this.pcState=c6.Reconnecting,this.log.debug("waiting for peer connection to reconnect",this.logContext);try{if(yield r$(2e3),!this.pcManager)throw new rk("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(void 0,this.peerConnectionTimeout),this.pcState=c6.Connected}catch(e){throw this.pcState=c6.Disconnected,rg.internal("could not establish PC connection, ".concat(e.message))}})}publishRpcResponse(e,t,n,i){return il(this,void 0,void 0,function*(){let r=new to({destinationIdentities:[e],kind:tc.RELIABLE,value:{case:"rpcResponse",value:new tk({requestId:t,value:i?{case:"error",value:i.toProto()}:{case:"payload",value:null!=n?n:""}})}});yield this.sendDataPacket(r,c9.RELIABLE)})}publishRpcAck(e,t){return il(this,void 0,void 0,function*(){let n=new to({destinationIdentities:[e],kind:tc.RELIABLE,value:{case:"rpcAck",value:new ty({requestId:t})}});yield this.sendDataPacket(n,c9.RELIABLE)})}sendDataPacket(e,t){return il(this,void 0,void 0,function*(){if(yield this.ensurePublisherConnected(t),this.e2eeManager&&this.e2eeManager.isDataChannelEncryptionEnabled){let t=function(e){var t,n,i,r,a;if((null==(t=e.value)?void 0:t.case)!=="sipDtmf"&&(null==(n=e.value)?void 0:n.case)!=="metrics"&&(null==(i=e.value)?void 0:i.case)!=="speaker"&&(null==(r=e.value)?void 0:r.case)!=="transcription"&&(null==(a=e.value)?void 0:a.case)!=="encryptedPacket")return new td({value:e.value})}(e);if(t){let n=yield this.e2eeManager.encryptData(t.toBinary());e.value={case:"encryptedPacket",value:new tl({encryptedValue:n.payload,iv:n.iv,keyIndex:n.keyIndex})}}}t===c9.RELIABLE&&(e.sequence=this.reliableDataSequence,this.reliableDataSequence+=1);let n=e.toBinary();switch(t){case c9.LOSSY:case c9.DATA_TRACK_LOSSY:return this.sendLossyBytes(n,t);case c9.RELIABLE:let i=this.dataChannelForKind(t);if(i){if(yield this.waitForBufferStatusLow(t),this.reliableMessageBuffer.push({data:n,sequence:e.sequence}),this.attemptingReconnect)return;i.send(n)}this.updateAndEmitDCBufferStatus(t)}})}sendLossyBytes(e,t){return il(this,arguments,void 0,function(e,t){var n=this;let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"drop";return function*(){yield n.ensurePublisherConnected(t);let r=n.dataChannelForKind(t);if(r){if(!n.isBufferStatusLow(t))switch(i){case"wait":yield n.waitForBufferStatusLow(t);break;case"drop":n.lossyDataDropCount+=1,n.lossyDataDropCount%100==0&&n.log.warn("dropping lossy data channel messages, total dropped: ".concat(n.lossyDataDropCount),n.logContext);return}if(n.lossyDataStatCurrentBytes+=e.byteLength,n.attemptingReconnect)return;r.send(e)}n.updateAndEmitDCBufferStatus(t)}()})}resendReliableMessagesForResume(e){return il(this,void 0,void 0,function*(){yield this.ensurePublisherConnected(c9.RELIABLE);let t=this.dataChannelForKind(c9.RELIABLE);t&&(this.reliableMessageBuffer.popToSequence(e),this.reliableMessageBuffer.getAll().forEach(e=>{t.send(e.data)})),this.updateAndEmitDCBufferStatus(c9.RELIABLE)})}waitForBufferStatusLow(e){return il(this,void 0,void 0,function*(){return new rc((t,n)=>il(this,void 0,void 0,function*(){if(this.isClosed&&n(new rk("engine closed")),this.isBufferStatusLow(e))t();else{let i=this.dataChannelForKind(e);if(!i)return void n(new rk("DataChannel not found, kind: ".concat(e)));this.bufferStatusLowClosingFuture.promise.catch(e=>n(e)),i.addEventListener("bufferedamountlow",()=>t(),{once:!0})}}))})}ensureDataTransportConnected(e){return il(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.subscriberPrimary;return function*(){var i;if(!t.pcManager)throw new rk("PC manager is closed");let r=n?t.pcManager.subscriber:t.pcManager.publisher,a=n?"Subscriber":"Publisher";if(!r)throw rg.internal("".concat(a," connection not set"));let s=!1;
2n||t.dataChannelForKind(e,n)||(t.createDataChannels(),s=!0),s||n||t.pcManager.publisher.isICEConnected||"checking"===t.pcManager.publisher.getICEConnectionState()||(s=!0),s&&t.negotiate().catch(e=>{ii.error(e,t.logContext)});let o=t.dataChannelForKind(e,n);if((null==o?void 0:o.readyState)==="open")return;let c=new Date().getTime()+t.peerConnectionTimeout;for(;new Date().getTime()<c;){if(r.isICEConnected&&(null==(i=t.dataChannelForKind(e,n))?void 0:i.readyState)==="open")return;yield r$(50)}throw rg.internal("could not establish ".concat(a," connection, state: ").concat(r.getICEConnectionState()))}()})}ensurePublisherConnected(e){return il(this,void 0,void 0,function*(){this.publisherConnectionPromise||(this.publisherConnectionPromise=this.ensureDataTransportConnected(e,!1)),yield this.publisherConnectionPromise})}verifyTransport(){return!!this.pcManager&&!![c4.CONNECTING,c4.CONNECTED].includes(this.pcManager.currentState)&&!!this.client.ws&&this.client.ws.readyState!==WebSocket.CLOSED}negotiate(){return il(this,void 0,void 0,function*(){return new rc((e,t)=>il(this,void 0,void 0,function*(){if(!this.pcManager)return void t(new rT("PC manager is closed"));this.pcManager.requirePublisher(),0!=this.pcManager.publisher.getTransceivers().length||this.lossyDC||this.reliableDC||this.dataTrackDC||this.createDataChannels();let n=new AbortController,i=()=>{n.abort(),this.log.debug("engine disconnected while negotiation was ongoing",this.logContext),e()};this.isClosed&&t(new rT("cannot negotiate on closed engine")),this.on(cq.Closing,i),this.on(cq.Restarting,i),this.pcManager.publisher.once(a4,e=>{let t=new Map;e.forEach(e=>{let n=e.codec.toLowerCase();r_.includes(n)&&t.set(e.payload,n)}),this.emit(cq.RTPVideoMapUpdate,t)});try{yield this.pcManager.negotiate(n),e()}catch(i){if(n.signal.aborted)return void e();i instanceof rT&&(this.fullReconnectOnNext=!0),this.handleDisconnect("negotiation",eZ.RR_UNKNOWN),i instanceof Error?t(i):t(Error(String(i)))}finally{this.off(cq.Closing,i),this.off(cq.Restarting,i)}}))})}dataChannelForKind(e,t){switch(e){case c9.RELIABLE:if(!t)return this.reliableDC;return this.reliableDCSub;case c9.LOSSY:if(!t)return this.lossyDC;return this.lossyDCSub;case c9.DATA_TRACK_LOSSY:if(!t)return this.dataTrackDC;return this.dataTrackDCSub}}sendSyncState(e,t,n){var i,r,a,s;let o;if(!this.pcManager)return void this.log.warn("sync state cannot be sent without peer connection setup",this.logContext);let c=this.pcManager.publisher.getLocalDescription(),l=this.pcManager.publisher.getRemoteDescription(),d=null==(i=this.pcManager.subscriber)?void 0:i.getRemoteDescription(),u=null==(r=this.pcManager.subscriber)?void 0:r.getLocalDescription(),h=null==(s=null==(a=this.signalOpts)?void 0:a.autoSubscribe)||s,p=[],m=[];e.forEach(e=>{e.isDesired!==h&&p.push(e.trackSid),e.isEnabled||m.push(e.trackSid)}),this.client.sendSyncState(new nw({answer:"publisher-only"===this.pcManager.mode?l?aK({sdp:l.sdp,type:l.type}):void 0:u?aK({sdp:u.sdp,type:u.type}):void 0,offer:"publisher-only"===this.pcManager.mode?c?aK({sdp:c.sdp,type:c.type}):void 0:d?aK({sdp:d.sdp,type:d.type}):void 0,subscription:new t7({trackSids:p,subscribe:!h,participantTracks:[]}),publishTracks:(o=[],t.forEach(e=>{void 0!==e.track&&o.push(new t4({cid:e.track.mediaStreamID,track:e.trackInfo}))}),o),dataChannels:this.dataChannelsInfo(),trackSidsDisabled:m,datachannelReceiveStates:this.reliableReceivedState.map((e,t)=>new nE({publisherSid:t,lastSeq:e})),publishDataTracks:n.map(e=>{let t;return new tY({info:new ti({sid:(t=e).sid,pubHandle:t.pubHandle,name:t.name,encryption:t.usesE2ee?te.GCM:te.NONE})})})}))}failNext(){this.shouldFailNext=!0}failNextV1Path(){this.shouldFailOnV1Path=!0}dataChannelsInfo(){let e=[],t=(t,n)=>{(null==t?void 0:t.id)!==void 0&&null!==t.id&&e.push(new nP({label:t.label,id:t.id,target:n}))};return t(this.dataChannelForKind(c9.LOSSY),tV.PUBLISHER),t(this.dataChannelForKind(c9.RELIABLE),tV.PUBLISHER),t(this.dataChannelForKind(c9.LOSSY,!0),tV.SUBSCRIBER),t(this.dataChannelForKind(c9.RELIABLE,!0),tV.SUBSCRIBER),e}clearReconnectTimeout(){this.reconnectTimeout&&rP.clearTimeout(this.reconnectTimeout)}clearPendingReconnect(){this.clearReconnectTimeout(),this.reconnectAttempts=0}registerOnLineListener(){r4()&&(window.addEventListener("online",this.handleBrowserOnLine),window.addEventListener("offline",this.handleBrowserOffline))}deregisterOnLineListener(){r4()&&(window.removeEventListener("online",this.handleBrowserOnLine),window.removeEventListener("offline",this.handleBrowserOffline))}getTrackIdForReceiver(e){var t;let n=null==(t=this.pcManager)?void 0:t.getMidForReceiver(e);if(n){let e=Object.entries(this.midToTrackId).find(e=>{let[t]=e;return t===n});if(e)return e[1]}}}function sL(e,t){let n=e.participantIdentity?e.participantIdentity:t.participantIdentity;e.participantIdentity=n,t.participantIdentity=n;let i=0!==e.destinationIdentities.length?e.destinationIdentities:t.destinationIdentities;e.destinationIdentities=i,t.destinationIdentities=i}
2class sU{static fetchRegionSettings(e,t,n){return il(this,void 0,void 0,function*(){let i=yield sU.fetchLock.lock();try{var r;let i=yield fetch("".concat((r=e,"".concat(r.protocol.replace("ws","http"),"//").concat(r.host,"/settings")),"/regions"),{headers:{authorization:"Bearer ".concat(t)},signal:n});if(i.ok){let e=function(e){var t;let n=e.get("Cache-Control");if(n){let e=null==(t=n.match(/(?:^|[,\s])max-age=(\d+)/))?void 0:t[1];if(e)return parseInt(e,10)}}(i.headers);return{regionSettings:yield i.json(),updatedAtInMs:Date.now(),maxAgeInMs:e?1e3*e:5e3}}if(401===i.status)throw rg.notAllowed("Could not fetch region settings: ".concat(i.statusText),i.status);throw rg.internal("Could not fetch region settings: ".concat(i.statusText))}catch(e){if(e instanceof rg)throw e;if(null==n?void 0:n.aborted)throw rg.cancelled("Region fetching was aborted");throw rg.serverUnreachable("Could not fetch region settings, ".concat(e instanceof Error?"".concat(e.name,": ").concat(e.message):e))}finally{i()}})}static scheduleRefetch(e,t,n){return il(this,void 0,void 0,function*(){clearTimeout(sU.settingsTimeouts.get(e.hostname)),sU.settingsTimeouts.set(e.hostname,setTimeout(()=>il(this,void 0,void 0,function*(){try{let n=yield sU.fetchRegionSettings(e,t);sU.updateCachedRegionSettings(e,t,n)}catch(i){if(i instanceof rg&&i.reason===cL.NotAllowed)return void ii.debug("token is not valid, cancelling auto region refresh");ii.debug("auto refetching of region settings failed",{error:i}),sU.scheduleRefetch(e,t,n)}}),n))})}static updateCachedRegionSettings(e,t,n){sU.cache.set(e.hostname,n),sU.scheduleRefetch(e,t,n.maxAgeInMs)}static stopRefetch(e){let t=sU.settingsTimeouts.get(e);t&&(clearTimeout(t),sU.settingsTimeouts.delete(e))}static scheduleCleanup(e){let t=sU.connectionTrackers.get(e);t&&(t.cleanupTimeout&&clearTimeout(t.cleanupTimeout),t.cleanupTimeout=setTimeout(()=>{let t=sU.connectionTrackers.get(e);t&&0===t.connectionCount&&(ii.debug("stopping region refetch after disconnect delay",{hostname:e}),sU.stopRefetch(e)),t&&(t.cleanupTimeout=void 0)},3e4))}static cancelCleanup(e){let t=sU.connectionTrackers.get(e);(null==t?void 0:t.cleanupTimeout)&&(clearTimeout(t.cleanupTimeout),t.cleanupTimeout=void 0)}notifyConnected(){let e=this.serverUrl.hostname,t=sU.connectionTrackers.get(e);t||(t={connectionCount:0},sU.connectionTrackers.set(e,t)),t.connectionCount++,sU.cancelCleanup(e)}notifyDisconnected(){let e=this.serverUrl.hostname,t=sU.connectionTrackers.get(e);t&&(t.connectionCount=Math.max(0,t.connectionCount-1),0===t.connectionCount&&sU.scheduleCleanup(e))}constructor(e,t){this.attemptedRegions=[],this.serverUrl=new URL(e),this.token=t}updateToken(e){var t;this.token=e;let n=this.getServerUrl(),i=sU.cache.get(n.hostname);sU.scheduleRefetch(this.serverUrl,this.token,null!=(t=null==i?void 0:i.maxAgeInMs)?t:5e3)}isCloud(){return r9(this.serverUrl)}getServerUrl(){return this.serverUrl}fetchRegionSettings(e){return il(this,void 0,void 0,function*(){return sU.fetchRegionSettings(this.serverUrl,this.token,e)})}getNextBestRegionUrl(e){return il(this,void 0,void 0,function*(){if(!this.isCloud())throw Error("region availability is only supported for LiveKit Cloud domains");let t=sU.cache.get(this.serverUrl.hostname);(!t||Date.now()-t.updatedAtInMs>t.maxAgeInMs)&&(t=yield this.fetchRegionSettings(e),sU.updateCachedRegionSettings(this.serverUrl,this.token,t));let n=t.regionSettings.regions.filter(e=>!this.attemptedRegions.find(t=>t.url===e.url));if(!(n.length>0))return null;{let e=n[0];return this.attemptedRegions.push(e),ii.debug("next region: ".concat(e.region)),e.url}})}resetAttempts(){this.attemptedRegions=[]}setServerReportedRegions(e){sU.updateCachedRegionSettings(this.serverUrl,this.token,e)}}sU.cache=new Map,sU.settingsTimeouts=new Map,sU.connectionTrackers=new Map,sU.fetchLock=new C;class sj{get info(){return this._info}validateBytesReceived(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if("number"==typeof this.totalByteSize&&0!==this.totalByteSize){if(e&&this.bytesReceived<this.totalByteSize)throw new rw("Not enough chunk(s) received - expected ".concat(this.totalByteSize," bytes of data total, only received ").concat(this.bytesReceived," bytes"),cU.Incomplete);else if(this.bytesReceived>this.totalByteSize)throw new rw("Extra chunk(s) received - expected ".concat(this.totalByteSize," bytes of data total, received ").concat(this.bytesReceived," bytes"),cU.LengthExceeded)}}constructor(e,t,n){this.reader=t,this.totalByteSize=n,this._info=e,this.bytesReceived=0}}class sF extends sj{handleChunkReceived(e){var t;this.bytesReceived+=e.content.byteLength,this.validateBytesReceived();let n=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;null==(t=this.onProgress)||t.call(this,n)}[Symbol.asyncIterator](){let e=this.reader.getReader();e.closed.catch(()=>{});let t=()=>{e.releaseLock(),this.signal=void 0};return{next:()=>il(this,void 0,void 0,function*(){try{let t=this.signal;if(null==t?void 0:t.aborted)throw t.reason;let n=yield new Promise((n,i)=>{if(t){let r=()=>i(t.reason);t.addEventListener("abort",r,{once:!0}),e.read().then(n,i).finally(()=>{t.removeEventListener("abort",r)})}else e.read().then(n,i)});if(n.done)return this.validateBytesReceived(!0),{done:!0,value:void 0};return this.handleChunkReceived(n.value),{done:!1,value:n.value.content}}catch(e){throw t(),e}}),return(){return il(this,void 0,void 0,function*(){return t(),{done:!0,value:void 0}})}}}withAbortSignal(e){return this.signal=e,this}readAll(){return il(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function*(){var n,i,r,a;let s=new Set,o=t.signal?e.withAbortSignal(t.signal):e;try{for(var c,l=!0,d=iu(o);!(n=(c=yield d.next()).done);l=!0)a=c.value,l=!1,s.add(a)}catch(e){i={error:e}}finally{try{!l&&!n&&(r=d.return)&&(yield r.call(d))}finally{if(i)throw i.error}}return Array.from(s)}()})}}class sB extends sj{constructor(e,t,n){super(e,t,n),this.receivedChunks=new Map}handleChunkReceived(e){var t;let n=ag(e.chunkIndex),i=this.receivedChunks.get(n);if(i&&i.version>e.version)return;this.receivedChunks.set(n,e),this.bytesReceived+=e.content.byteLength,this.validateBytesReceived();let r=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;null==(t=this.onProgress)||t.call(this,r)}[Symbol.asyncIterator](){let e=this.reader.getReader();e.closed.catch(()=>{});let t=new TextDecoder("utf-8",{fatal:!0}),n=this.signal,i=()=>{e.releaseLock(),this.signal=void 0};return{next:()=>il(this,void 0,void 0,function*(){try{if(null==n?void 0:n.aborted)throw n.reason;let i=yield new Promise((t,i)=>{if(n){let r=()=>i(n.reason);n.addEventListener("abort",r,{once:!0}),e.read().then(t,i).finally(()=>{n.removeEventListener("abort",r)})}else e.read().then(t,i)});if(i.done)return this.validateBytesReceived(!0),{done:!0,value:void 0};{let e;this.handleChunkReceived(i.value);try{e=t.decode(i.value.content)}catch(e){throw new rw("Cannot decode datastream chunk ".concat(i.value.chunkIndex," as text: ").concat(e),cU.DecodeFailed)}return{done:!1,value:e}}}catch(e){throw i(),e}}),return(){return il(this,void 0,void 0,function*(){return i(),{done:!0,value:void 0}})}}}withAbortSignal(e){return this.signal=e,this}readAll(){return il(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function*(){var n,i,r,a;let s="",o=t.signal?e.withAbortSignal(t.signal):e;try{for(var c,l=!0,d=iu(o);!(n=(c=yield d.next()).done);l=!0)a=c.value,l=!1,s+=a}catch(e){i={error:e}}finally{try{!l&&!n&&(r=d.return)&&(yield r.call(d))}finally{if(i)throw i.error}}return s}()})}}class sq{constructor(){this.log=ii,this.byteStreamControllers=new Map,this.textStreamControllers=new Map,this.byteStreamHandlers=new Map,this.textStreamHandlers=new Map,this.isConnected=!1,this.bufferedPackets=[]}setConnected(e){this.isConnected=e,e&&this.flushBufferedPackets()}flushBufferedPackets(){let e=this.bufferedPackets;for(let{packet:t,encryptionType:n}of(this.bufferedPackets=[],e))this.handleDataStreamPacket(t,n)}registerTextStreamHandler(e,t){if(this.textStreamHandlers.has(e))throw new rw('A text stream handler for topic "'.concat(e,'" has already been set.'),cU.HandlerAlreadyRegistered);this.textStreamHandlers.set(e,t)}unregisterTextStreamHandler(e){this.textStreamHandlers.delete(e)}registerByteStreamHandler(e,t){if(this.byteStreamHandlers.has(e))throw new rw('A byte stream handler for topic "'.concat(e,'" has already been set.'),cU.HandlerAlreadyRegistered);this.byteStreamHandlers.set(e,t)}unregisterByteStreamHandler(e){this.byteStreamHandlers.delete(e)}clearControllers(){this.byteStreamControllers.clear(),this.textStreamControllers.clear(),this.bufferedPackets=[]}
2validateParticipantHasNoActiveDataStreams(e){let t=Array.from(this.textStreamControllers.entries()).filter(t=>t[1].sendingParticipantIdentity===e),n=Array.from(this.byteStreamControllers.entries()).filter(t=>t[1].sendingParticipantIdentity===e);if(t.length>0||n.length>0){let i=new rw("Participant ".concat(e," unexpectedly disconnected in the middle of sending data"),cU.AbnormalEnd);for(let[e,t]of n)t.controller.error(i),this.byteStreamControllers.delete(e);for(let[e,n]of t)n.controller.error(i),this.textStreamControllers.delete(e)}}handleDataStreamPacket(e,t){if(!this.isConnected)return void this.bufferedPackets.push({packet:e,encryptionType:t});switch(e.value.case){case"streamHeader":return this.handleStreamHeader(e.value.value,e.participantIdentity,t);case"streamChunk":return this.handleStreamChunk(e.value.value,t);case"streamTrailer":return this.handleStreamTrailer(e.value.value,t);default:throw Error('DataPacket of value "'.concat(e.value.case,'" is not data stream related!'))}}handleStreamHeader(e,t,n){var i;if("byteHeader"===e.contentHeader.case){let r,a=this.byteStreamHandlers.get(e.topic);if(!a)return void this.log.debug("ignoring incoming byte stream due to no handler for topic",e.topic);let s={id:e.streamId,name:null!=(i=e.contentHeader.value.name)?i:"unknown",mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:ag(e.timestamp),attributes:e.attributes,encryptionType:n},o=new ReadableStream({start:n=>{if(r=n,this.textStreamControllers.has(e.streamId))throw new rw("A data stream read is already in progress for a stream with id ".concat(e.streamId,"."),cU.AlreadyOpened);this.byteStreamControllers.set(e.streamId,{info:s,controller:r,startTime:Date.now(),sendingParticipantIdentity:t})}});a(new sF(s,o,ag(e.totalLength)),{identity:t})}else if("textHeader"===e.contentHeader.case){let i,r=this.textStreamHandlers.get(e.topic);if(!r)return void this.log.debug("ignoring incoming text stream due to no handler for topic",e.topic);let a={id:e.streamId,mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:Number(e.timestamp),attributes:e.attributes,encryptionType:n,attachedStreamIds:e.contentHeader.value.attachedStreamIds},s=new ReadableStream({start:n=>{if(i=n,this.textStreamControllers.has(e.streamId))throw new rw("A data stream read is already in progress for a stream with id ".concat(e.streamId,"."),cU.AlreadyOpened);this.textStreamControllers.set(e.streamId,{info:a,controller:i,startTime:Date.now(),sendingParticipantIdentity:t})}});r(new sB(a,s,ag(e.totalLength)),{identity:t})}}handleStreamChunk(e,t){let n=this.byteStreamControllers.get(e.streamId);n&&(n.info.encryptionType!==t?(n.controller.error(new rw("Encryption type mismatch for stream ".concat(e.streamId,". Expected ").concat(t,", got ").concat(n.info.encryptionType),cU.EncryptionTypeMismatch)),this.byteStreamControllers.delete(e.streamId)):e.content.length>0&&n.controller.enqueue(e));let i=this.textStreamControllers.get(e.streamId);i&&(i.info.encryptionType!==t?(i.controller.error(new rw("Encryption type mismatch for stream ".concat(e.streamId,". Expected ").concat(t,", got ").concat(i.info.encryptionType),cU.EncryptionTypeMismatch)),this.textStreamControllers.delete(e.streamId)):e.content.length>0&&i.controller.enqueue(e))}handleStreamTrailer(e,t){let n=this.textStreamControllers.get(e.streamId);n&&(n.info.encryptionType!==t?n.controller.error(new rw("Encryption type mismatch for stream ".concat(e.streamId,". Expected ").concat(t,", got ").concat(n.info.encryptionType),cU.EncryptionTypeMismatch)):(n.info.attributes=Object.assign(Object.assign({},n.info.attributes),e.attributes),n.controller.close(),this.textStreamControllers.delete(e.streamId)));let i=this.byteStreamControllers.get(e.streamId);i&&(i.info.encryptionType!==t?i.controller.error(new rw("Encryption type mismatch for stream ".concat(e.streamId,". Expected ").concat(t,", got ").concat(i.info.encryptionType),cU.EncryptionTypeMismatch)):(i.info.attributes=Object.assign(Object.assign({},i.info.attributes),e.attributes),i.controller.close()),this.byteStreamControllers.delete(e.streamId))}}class sV{constructor(e,t,n){this.writableStream=e,this.defaultWriter=e.getWriter(),this.onClose=n,this.info=t}write(e){return this.defaultWriter.write(e)}close(){return il(this,void 0,void 0,function*(){var e;yield this.defaultWriter.close(),this.defaultWriter.releaseLock(),null==(e=this.onClose)||e.call(this)})}}class sH extends sV{}class sz extends sV{}class sW{constructor(e,t){this.engine=e,this.log=t}setupEngine(e){this.engine=e}sendText(e,t){return il(this,void 0,void 0,function*(){var n;let i=crypto.randomUUID(),r=new TextEncoder().encode(e).byteLength,a=null==(n=null==t?void 0:t.attachments)?void 0:n.map(()=>crypto.randomUUID()),s=Array(a?a.length+1:1).fill(0),o=(e,n)=>{var i;s[n]=e;let r=s.reduce((e,t)=>
2e+t,0);null==(i=null==t?void 0:t.onProgress)||i.call(t,r)},c=yield this.streamText({streamId:i,totalSize:r,destinationIdentities:null==t?void 0:t.destinationIdentities,topic:null==t?void 0:t.topic,attachedStreamIds:a,attributes:null==t?void 0:t.attributes});return yield c.write(e),o(1,0),yield c.close(),(null==t?void 0:t.attachments)&&a&&(yield Promise.all(t.attachments.map((e,n)=>il(this,void 0,void 0,function*(){return this._sendFile(a[n],e,{topic:t.topic,mimeType:e.type,onProgress:e=>{o(e,n+1)}})})))),c.info})}streamText(e){return il(this,void 0,void 0,function*(){var t,n,i;let r=null!=(t=null==e?void 0:e.streamId)?t:crypto.randomUUID(),a={id:r,mimeType:"text/plain",timestamp:Date.now(),topic:null!=(n=null==e?void 0:e.topic)?n:"",size:null==e?void 0:e.totalSize,attributes:null==e?void 0:e.attributes,encryptionType:(null==(i=this.engine.e2eeManager)?void 0:i.isDataChannelEncryptionEnabled)?te.GCM:te.NONE,attachedStreamIds:null==e?void 0:e.attachedStreamIds},s=new tA({streamId:r,mimeType:a.mimeType,topic:a.topic,timestamp:av(a.timestamp),totalLength:av(a.size),attributes:a.attributes,contentHeader:{case:"textHeader",value:new tM({version:null==e?void 0:e.version,attachedStreamIds:a.attachedStreamIds,replyToStreamId:null==e?void 0:e.replyToStreamId,operationType:(null==e?void 0:e.type)==="update"?tO.UPDATE:tO.CREATE})}}),o=null==e?void 0:e.destinationIdentities,c=new to({destinationIdentities:o,value:{case:"streamHeader",value:s}});yield this.engine.sendDataPacket(c,c9.RELIABLE);let l=0,d=this.engine,u=new WritableStream({write(e){return il(this,void 0,void 0,function*(){for(let t of function(e){let t=[],n=new TextEncoder().encode(e);for(;n.length>15e3;){let e=15e3;for(;e>0;){let t=n[e];if(void 0!==t&&(192&t)!=128)break;e--}t.push(n.slice(0,e)),n=n.slice(e)}return n.length>0&&t.push(n),t}(e)){let e=new to({destinationIdentities:o,value:{case:"streamChunk",value:new tN({content:t,streamId:r,chunkIndex:av(l)})}});yield d.sendDataPacket(e,c9.RELIABLE),l+=1}})},close(){return il(this,void 0,void 0,function*(){let e=new to({destinationIdentities:o,value:{case:"streamTrailer",value:new tL({streamId:r})}});yield d.sendDataPacket(e,c9.RELIABLE)})},abort(e){console.log("Sink error:",e)}}),h=()=>il(this,void 0,void 0,function*(){yield p.close()});d.once(cq.Closing,h);let p=new sH(u,a,()=>this.engine.off(cq.Closing,h));return p})}sendFile(e,t){return il(this,void 0,void 0,function*(){let n=crypto.randomUUID();return yield this._sendFile(n,e,t),{id:n}})}_sendFile(e,t,n){return il(this,void 0,void 0,function*(){var i;let r=yield this.streamBytes({streamId:e,totalSize:t.size,name:t.name,mimeType:null!=(i=null==n?void 0:n.mimeType)?i:t.type,topic:null==n?void 0:n.topic,destinationIdentities:null==n?void 0:n.destinationIdentities}),a=t.stream().getReader();for(;;){let{done:e,value:t}=yield a.read();if(e)break;yield r.write(t)}return yield r.close(),r.info})}streamBytes(e){return il(this,void 0,void 0,function*(){var t,n,i,r,a;let s=null!=(t=null==e?void 0:e.streamId)?t:crypto.randomUUID(),o=null==e?void 0:e.destinationIdentities,c={id:s,mimeType:null!=(n=null==e?void 0:e.mimeType)?n:"application/octet-stream",topic:null!=(i=null==e?void 0:e.topic)?i:"",timestamp:Date.now(),attributes:null==e?void 0:e.attributes,size:null==e?void 0:e.totalSize,name:null!=(r=null==e?void 0:e.name)?r:"unknown",encryptionType:(null==(a=this.engine.e2eeManager)?void 0:a.isDataChannelEncryptionEnabled)?te.GCM:te.NONE},l=new to({destinationIdentities:o,value:{case:"streamHeader",value:new tA({totalLength:av(c.size),mimeType:c.mimeType,streamId:s,topic:c.topic,timestamp:av(Date.now()),attributes:c.attributes,contentHeader:{case:"byteHeader",value:new tD({name:c.name})}})}});yield this.engine.sendDataPacket(l,c9.RELIABLE);let d=0,u=new C,h=this.engine,p=this.log;return new sz(new WritableStream({write(e){return il(this,void 0,void 0,function*(){let t=yield u.lock(),n=0;try{for(;n<e.byteLength;){let t=e.slice(n,n+15e3),i=new to({destinationIdentities:o,value:{case:"streamChunk",value:new tN({content:t,streamId:s,chunkIndex:av(d)})}});yield h.sendDataPacket(i,c9.RELIABLE),d+=1,n+=t.byteLength}}finally{t()}})},close(){return il(this,void 0,void 0,function*(){let e=new to({destinationIdentities:o,value:{case:"streamTrailer",value:new tL({streamId:s})}});yield h.sendDataPacket(e,c9.RELIABLE)})},abort(e){p.error("Sink error:",e)}}),c)})}}function sG(e){if(0===e.length)return new AbortController().signal;if(1===e.length)return e[0];for(let t of e)if(t.aborted)return t;let t=new AbortController,n=Array(e.length);return e.forEach((e,i)=>{let r=()=>{for(let i of(t.abort(e.reason),n))i()};e.addEventListener("abort",r),n[i]=()=>e.removeEventListener("abort",r)}),t.signal}function sJ(e){let t=new AbortController;return setTimeout(()=>{t.abort(new DOMException("signal timed out after ".concat(e," ms"),"TimeoutError"))},e),t.signal}(cu=c8||(c8={}
2))[cu.TooShort=0]="TooShort",cu[cu.HeaderOverrun=1]="HeaderOverrun",cu[cu.MissingExtWords=2]="MissingExtWords",cu[cu.UnsupportedVersion=3]="UnsupportedVersion",cu[cu.InvalidHandle=4]="InvalidHandle",cu[cu.MalformedExt=5]="MalformedExt";class sK extends rf{constructor(e,t,n){super(19,e,n),this.name="DataTrackDeserializeError",this.reason=t,this.reasonName=c8[t]}static tooShort(){return new sK("Too short to contain a valid header",c8.TooShort)}static headerOverrun(){return new sK("Header exceeds total packet length",c8.HeaderOverrun)}static missingExtWords(){return new sK("Extension word indicator is missing",c8.MissingExtWords)}static unsupportedVersion(e){return new sK("Unsupported version ".concat(e),c8.UnsupportedVersion)}static invalidHandle(e){return new sK("invalid track handle: ".concat(e.message),c8.InvalidHandle,{cause:e})}static malformedExt(e){return new sK("Extension with tag ".concat(e," is malformed"),c8.MalformedExt)}}(ch=c7||(c7={}))[ch.TooSmallForHeader=0]="TooSmallForHeader",ch[ch.TooSmallForPayload=1]="TooSmallForPayload";class s$ extends rf{constructor(e,t,n){super(19,e,n),this.name="DataTrackSerializeError",this.reason=t,this.reasonName=c7[t]}static tooSmallForHeader(){return new s$("Buffer cannot fit header",c7.TooSmallForHeader)}static tooSmallForPayload(){return new s$("Buffer cannot fit payload",c7.TooSmallForPayload)}}class sY{toBinary(){let e=this.toBinaryLengthBytes(),t=new ArrayBuffer(e),n=new DataView(t),i=this.toBinaryInto(n);if(e!==i)throw Error("".concat(this.constructor.name,".toBinary: written bytes (").concat(i," bytes) not equal to allocated array buffer length (").concat(e," bytes)."));return new Uint8Array(t)}}(cp=le||(le={}))[cp.UserTimestamp=2]="UserTimestamp",cp[cp.E2ee=1]="E2ee";class sQ extends sY{}class sX extends sQ{constructor(e){super(),this.timestamp=e}toBinaryLengthBytes(){return 2+sX.lengthBytes}toBinaryInto(e){let t=0;e.setUint8(t,sX.tag),t+=1,e.setUint8(t,sX.lengthBytes),t+=1,e.setBigUint64(t,this.timestamp),t+=8;let n=this.toBinaryLengthBytes();if(t!==n)throw Error("DataTrackUserTimestampExtension.toBinaryInto: Wrote ".concat(t," bytes but expected length was ").concat(n," bytes"));return t}toJSON(){return{tag:sX.tag,lengthBytes:sX.lengthBytes,timestamp:this.timestamp}}}sX.tag=le.UserTimestamp,sX.lengthBytes=8;class sZ extends sQ{constructor(e,t){super(),this.keyIndex=e,this.iv=t}toBinaryLengthBytes(){return 2+sZ.lengthBytes}toBinaryInto(e){let t=0;e.setUint8(t,sZ.tag),t+=1,e.setUint8(t,sZ.lengthBytes),t+=1,e.setUint8(t,this.keyIndex),t+=1;for(let n=0;n<this.iv.length;n+=1)e.setUint8(t,this.iv[n]),t+=1;let n=this.toBinaryLengthBytes();if(t!==n)throw Error("DataTrackE2eeExtension.toBinaryInto: Wrote ".concat(t," bytes but expected length was ").concat(n," bytes"));return t}toJSON(){return{tag:sZ.tag,lengthBytes:sZ.lengthBytes,keyIndex:this.keyIndex,iv:this.iv}}}sZ.tag=le.E2ee,sZ.lengthBytes=13;class s0 extends sY{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),this.userTimestamp=e.userTimestamp,this.e2ee=e.e2ee}toBinaryLengthBytes(){let e=0;return this.userTimestamp&&(e+=this.userTimestamp.toBinaryLengthBytes()),this.e2ee&&(e+=this.e2ee.toBinaryLengthBytes()),e}toBinaryInto(e){let t=0;if(this.e2ee&&(t+=this.e2ee.toBinaryInto(e)),this.userTimestamp){let n=this.userTimestamp.toBinaryInto(new DataView(e.buffer,e.byteOffset+t));t+=n}let n=this.toBinaryLengthBytes();if(t!==n)throw Error("DataTrackExtensions.toBinaryInto: Wrote ".concat(t," bytes but expected length was ").concat(n," bytes"));return t}static fromBinary(e){let t,n,i=aj(e),r=0;for(;i.byteLength-r>=2;){let e=i.getUint8(r);r+=1;let a=i.getUint8(r);if(r+=1,0!==e)switch(e){case le.UserTimestamp:if(i.byteLength-r<sX.lengthBytes)throw sK.malformedExt(e);t=new sX(i.getBigUint64(r)),r+=a;break;case le.E2ee:if(i.byteLength-r<sZ.lengthBytes)throw sK.malformedExt(e);let s=i.getUint8(r),o=new Uint8Array(12);for(let e=0;e<o.length;e+=1){let t=r;t+=1,t+=+e,o[e]=i.getUint8(t)}n=new sZ(s,o),r+=a;break;default:if(i.byteLength-r<a)throw sK.malformedExt(e);r+=a}}return[new s0({userTimestamp:t,e2ee:n}),i.byteLength]}toJSON(){var e,t,n,i;return{userTimestamp:null!=(t=null==(e=this.userTimestamp)?void 0:e.toJSON())?t:null,e2ee:null!=(i=null==(n=this.e2ee)?void 0:n.toJSON())?i:null}}}let s1={from:e=>({payload:e.payload,extensions:new s0({userTimestamp:e.userTimestamp?new sX(e.userTimestamp):void 0})}),lossyIntoFrame(e){var t;return{payload:e.payload,userTimestamp:null==(t=e.extensions.userTimestamp)?void 0:t.t
2imestamp}}},s2=Symbol.for("lk.track"),s5=Symbol.for("lk.data-track");class s3{constructor(e,t,n){this.trackSymbol=s2,this.isLocal=!1,this.typeSymbol=s5,this.info=e,this.manager=t,this.publisherIdentity=n.publisherIdentity}subscribe(e){try{let[t]=this.manager.openSubscriptionStream(this.info.sid,null==e?void 0:e.signal,null==e?void 0:e.bufferSize);return t}catch(e){throw e}}}class s4 extends sY{constructor(e){var t;super(),this.marker=e.marker,this.trackHandle=e.trackHandle,this.sequence=e.sequence,this.frameNumber=e.frameNumber,this.timestamp=e.timestamp,this.extensions=null!=(t=e.extensions)?t:new s0}extensionsMetrics(){let e=this.extensions.toBinaryLengthBytes(),t=Math.ceil((2+e)/4);return{lengthBytes:e,lengthWords:t,paddingLengthBytes:4*t-2-e}}toBinaryLengthBytes(){let{lengthBytes:e,paddingLengthBytes:t}=this.extensionsMetrics(),n=12;return e>0&&(n+=2+e+t),n}toBinaryInto(e){let t;if(e.byteLength<this.toBinaryLengthBytes())throw s$.tooSmallForHeader();let n=0;switch(this.marker){case lt.Inter:t=0;break;case lt.Final:t=1;break;case lt.Start:t=2;break;case lt.Single:t=3}
2n|=t<<3;let{lengthBytes:i,lengthWords:r,paddingLengthBytes:a}=this.extensionsMetrics();i>0&&(n|=4);let s=0;if(e.setUint8(s,n),s+=1,e.setUint8(s,0),s+=1,e.setUint16(s,this.trackHandle),s+=2,e.setUint16(s,this.sequence.value),s+=2,e.setUint16(s,this.frameNumber.value),s+=2,e.setUint32(s,this.timestamp.asTicks()),s+=4,i>0){e.setUint16(s,r-1),s+=2;let t=this.extensions.toBinaryInto(new DataView(e.buffer,e.byteOffset+s));s+=t;for(let t=0;t<a;t+=1)e.setUint8(s,0),s+=1}let o=this.toBinaryLengthBytes();if(s!==o)throw Error("DataTrackPacketHeader.toBinaryInto: Wrote ".concat(s," bytes but expected length was ").concat(o," bytes"));return o}static fromBinary(e){let t,n,i=aj(e);if(i.byteLength<12)throw sK.tooShort();let r=0,a=i.getUint8(r);r+=1;let s=a>>5&7;if(s>0)throw sK.unsupportedVersion(s);switch(a>>3&3){case 2:t=lt.Start;break;case 1:t=lt.Final;break;case 3:t=lt.Single;break;default:t=lt.Inter}r+=1;try{n=aB.fromNumber(i.getUint16(r))}catch(e){if(e instanceof aF&&(e.isReason(cQ.Reserved)||e.isReason(cQ.TooLarge)))throw sK.invalidHandle(e);throw e}r+=2;let o=aN.u16(i.getUint16(r));r+=2;let c=aN.u16(i.getUint16(r));r+=2;let l=aL.fromRtpTicks(i.getUint32(r));r+=4;let d=new s0;if((a>>2&1)>0){if(i.byteLength-r<2)throw sK.missingExtWords();let e=i.getUint16(r),t=4*(e+1)-2;if((r+=2)+t>i.byteLength)throw sK.headerOverrun();let n=new DataView(i.buffer,i.byteOffset+r,t),[a,s]=s0.fromBinary(n);d=a,r+=s}return[new s4({marker:t,trackHandle:n,sequence:o,frameNumber:c,timestamp:l,extensions:d}),r]}toJSON(){return{marker:this.marker,trackHandle:this.trackHandle,sequence:this.sequence.value,frameNumber:this.frameNumber.value,timestamp:this.timestamp.asTicks(),extensions:this.extensions.toJSON()}}}(cm=lt||(lt={}))[cm.Start=0]="Start",cm[cm.Inter=1]="Inter",cm[cm.Final=2]="Final",cm[cm.Single=3]="Single";class s6 extends sY{constructor(e,t){super(),this.header=e,this.payload=t}toBinaryLengthBytes(){return this.header.toBinaryLengthBytes()+this.payload.byteLength}toBinaryInto(e){let t;if(t=0+this.header.toBinaryInto(e),e.byteLength-t<this.payload.byteLength)throw s$.tooSmallForPayload();for(let n=0;n<this.payload.length;n+=1)e.setUint8(t,this.payload[n]),t+=1;let n=this.toBinaryLengthBytes();if(t!==n)throw Error("DataTrackPacket.toBinaryInto: Wrote ".concat(t," bytes but expected length was ").concat(n," bytes"));return n}static fromBinary(e){let t=aj(e),[n,i]=s4.fromBinary(t);return[new s6(n,new Uint8Array(t.buffer.slice(t.byteOffset+i,t.byteOffset+t.byteLength))),t.byteLength]}toJSON(){return{header:this.header.toJSON(),payload:this.payload}}}let s9=ia(cM.DataTracks);class s8 extends rf{constructor(e,t,n,i){super(19,"Frame ".concat(n," dropped: ").concat(e),i),this.name="DataTrackDepacketizerDropError",this.reason=t,this.reasonName=ln[t],this.frameNumber=n}static interrupted(e,t){return new s8("Interrupted by the start of a new frame ".concat(t),ln.Interrupted,e)}static unknownFrame(e){return new s8("Initial packet was never received.",ln.UnknownFrame,e)}static bufferFull(e){return new s8("Reorder buffer is full.",ln.BufferFull,e)}static incomplete(e,t,n){return new s8("Not all packets received before final packet. Received ".concat(t," packets, expected ").concat(n," packets."),ln.Incomplete,e)}}(cf=ln||(ln={}))[cf.Interrupted=0]="Interrupted",cf[cf.UnknownFrame=1]="UnknownFrame",cf[cf.BufferFull=2]="BufferFull",cf[cf.Incomplete=3]="Incomplete";class s7{constructor(){this.partial=null}push(e,t){switch(e.header.marker){case lt.Single:return this.frameFromSingle(e,t);case lt.Start:return this.beginPartial(e,t);case lt.Inter:case lt.Final:return this.pushToPartial(e)}}reset(){this.partial=null}frameFromSingle(e,t){if(e.header.marker!==lt.Single)throw Error("Depacketizer.frameFromSingle: packet.header.marker was not FrameMarker.Single, found ".concat(e.header.marker,"."));if(this.partial)if(null==t?void 0:t.errorOnPartialFrames){let t=this.partial.frameNumber;throw this.reset(),s8.interrupted(t,e.header.frameNumber.value)}else s9.warn("Data track frame ".concat(this.partial.frameNumber," was interrupted by the start of a new frame, dropping."));return this.reset(),{payload:e.payload,extensions:e.header.extensions}}beginPartial(e,t){if(e.header.marker!==lt.Start)throw Error("Depacketizer.beginPartial: packet.header.marker was not FrameMarker.Start, found ".concat(e.header.marker,"."));if(this.partial)if(null==t?void 0:t.errorOnPartialFrames){let t=this.partial.frameNumber;throw this.reset(),s8.interrupted(t,e.header.frameNumber.value)}else s9.warn("Data track frame ".concat(this.partial.frameNumber," was interrupted by the start of a new frame ").concat(e.header.frameNumber.value,", dropping."));this.reset();let n=e.header.sequence;return this.partial={frameNumber:e.header.frameNumber.value,startSequence:n,extensions:e.header.extensions,payloads:new Map([[n.value,e.payload]])},null}pushToPartial(e){if(e.header.marker!==lt.Inter&&e.header.marker!==lt.Final)throw Error("Depacketizer.pushToPartial: packet.header.marker was not FrameMarker.Inter or FrameMarker.Final, found ".concat(e.header.marker,"."));if(!this.partial)throw this.reset(),s8.unknownFrame(e.header.frameNumber.value);if(e.header.frameNumber.value!==this.partial.frameNumber){let t=this.partial.frameNumber;throw this.reset(),s8.interrupted(t,e.header.frameNumber.value)}if(this.partial.payloads.size>=s7.MAX_BUFFER_PACKETS){let e=this.partial.frameNumber;throw this.reset(),s8.bufferFull(e)}return(this.partial.payloads.has(e.header.sequence.value)&&s9.warn("Data track frame ".concat(this.partial.frameNumber," received duplicate packet for sequence ").concat(e.header.sequence.value,", so replacing with newly received packet.")),this.partial.payloads.set(e.header.sequence.value,e.payload),e.header.marker===lt.Final)?this.finalize(this.partial,e.header.sequence.value):null}finalize(e,t){let n=e.payloads.size,i=0;for(let t of e.payloads.values())i+=t.length;let r=new Uint8Array(i),a=e.startSequence.clone(),s=0;for(;;){let n=e.payloads.get(a.value);if(!n)break;e.payloads.delete(a.value);let i=r.length-s;if(n.length>i)throw Error("Depacketizer.finalize: Expected at least ".concat(n.length," more bytes left in the payload buffer, only got ").concat(i," bytes."));if(r.set(n,s),s+=n.length,a.value!=t){a.increment();continue}return this.reset(),{payload:r,extensions:e.extensions}}
2throw this.reset(),s8.incomplete(e.frameNumber,n,t-e.startSequence.value+1)}}s7.MAX_BUFFER_PACKETS=128,(cg=li||(li={}))[cg.Unpublished=0]="Unpublished",cg[cg.Timeout=1]="Timeout",cg[cg.Disconnected=2]="Disconnected",cg[cg.Cancelled=4]="Cancelled";class oe extends rf{constructor(e,t,n){super(22,e,n),this.name="DataTrackSubscribeError",this.reason=t,this.reasonName=li[t]}static unpublished(){return new oe("The track has been unpublished and is no longer available",li.Unpublished)}static timeout(){return new oe("Request to subscribe to data track timed-out",li.Timeout)}static disconnected(){return new oe("Cannot subscribe to data track when disconnected",li.Disconnected)}static cancelled(){return new oe("Subscription to data track cancelled by caller",li.Cancelled)}}let ot=ia(cM.DataTracks);class on{constructor(e){var t;const n=null!==e.e2eeManager;if(e.info.usesE2ee!==n)throw Error("IncomingDataTrackPipeline: DataTrackInfo.usesE2ee must match presence of decryptionProvider");const i=new s7;this.publisherIdentity=e.publisherIdentity,this.e2eeManager=null!=(t=e.e2eeManager)?t:null,this.depacketizer=i}updateE2eeManager(e){this.e2eeManager=e}processPacket(e){return il(this,void 0,void 0,function*(){let t=this.depacketize(e);if(!t)return null;let n=yield this.decryptIfNeeded(t);return n||null})}depacketize(e){let t;try{t=this.depacketizer.push(e)}catch(e){return ot.warn("Data frame depacketize error: ".concat(e)),null}return t}decryptIfNeeded(e){return il(this,void 0,void 0,function*(){var t,n;let i,r=this.e2eeManager;if(!r)return e;let a=null!=(n=null==(t=e.extensions)?void 0:t.e2ee)?n:null;if(!a)return ot.error("Missing E2EE meta"),null;try{i=yield r.handleEncryptedData(e.payload,a.iv,this.publisherIdentity,a.keyIndex)}catch(e){return ot.error("Error decrypting packet: ".concat(e)),null}return e.payload=i.payload,e})}}let oi=ia(cM.DataTracks);class or extends ip.EventEmitter{constructor(e){var t;super(),this.descriptors=new Map,this.subscriptionHandles=new Map,this.e2eeManager=null!=(t=null==e?void 0:e.e2eeManager)?t:null}updateE2eeManager(e){for(let t of(this.e2eeManager=e,this.descriptors.values()))"active"===t.subscription.type&&t.subscription.pipeline.updateE2eeManager(e)}openSubscriptionStream(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16,i=null,r=new au,a=()=>{null==t||t.removeEventListener("abort",o)},s=()=>
2{if(a(),!i)return void oi.warn("ReadableStream subscribed to ".concat(e," was not started."));let t=this.descriptors.get(e);t?"active"!==t.subscription.type?oi.warn("Subscription for track ".concat(e," is not active, skipping cancel...")):(t.subscription.streamControllers.delete(i),0===t.subscription.streamControllers.size&&this.unSubscribeRequest(t.info.sid)):oi.warn("Unknown track ".concat(e,", skipping cancel..."))},o=()=>{var t;if(!i)return;let n=this.descriptors.get(e);(null==n?void 0:n.subscription.type)==="active"&&n.subscription.streamControllers.delete(i),i.error(oe.cancelled()),null==(t=r.reject)||t.call(r,oe.cancelled()),s()};return[new ReadableStream({start:n=>{i=n,this.subscribeRequest(e,t).then(()=>il(this,void 0,void 0,function*(){var i,s,c;let l=this.descriptors.get(e);if(!l){oi.error("Unknown track ".concat(e));let t=oe.disconnected();n.error(t),null==(i=r.reject)||i.call(r,t);return}if("active"!==l.subscription.type){oi.error("Subscription for track ".concat(e," is not active"));let t=oe.disconnected();n.error(t),null==(s=r.reject)||s.call(r,t);return}(null==t?void 0:t.aborted)?o():(null==t||t.addEventListener("abort",o),l.subscription.streamControllers.set(n,a),null==(c=r.resolve)||c.call(r))})).catch(e=>{var t;n.error(e),null==(t=r.reject)||t.call(r,e)})},cancel:()=>{s()}},new CountQueuingStrategy({highWaterMark:n})),r.promise]}subscribeRequest(e,t){return il(this,void 0,void 0,function*(){let n=this.descriptors.get(e);if(!n)throw Error("Cannot subscribe to unknown track");let i=(t,n,i)=>il(this,void 0,void 0,function*(){if("active"===t.subscription.type)return;if("pending"!==t.subscription.type)throw Error("Descriptor for track ".concat(e," is not pending, found ").concat(t.subscription.type));let r=sG([n,i].filter(e=>void 0!==e)),a=new au;t.subscription.completionFuture.promise.then(()=>{var e;return null==(e=a.resolve)?void 0:e.call(a)}).catch(e=>{var t;return null==(t=a.reject)?void 0:t.call(a,e)});let s=()=>{var e;if("pending"===t.subscription.type){if(t.subscription.pendingRequestCount-=1,(null==i?void 0:i.aborted)||t.subscription.pendingRequestCount<=0)return void t.subscription.cancel();null==(e=a.reject)||e.call(a,oe.cancelled())}};r.aborted&&s(),r.addEventListener("abort",s),yield a.promise,r.removeEventListener("abort",s)});switch(n.subscription.type){case"none":{n.subscription={type:"pending",completionFuture:new au,pendingRequestCount:1,cancel:()=>{var t,i;let a=n.subscription;n.subscription={type:"none"},this.emit("sfuUpdateSubscription",{sid:e,subscribe:!1}),"pending"===a.type&&(null==(i=(t=a.completionFuture).reject)||i.call(t,r.aborted?oe.timeout():oe.cancelled()))}},this.emit("sfuUpdateSubscription",{sid:e,subscribe:!0});let r=sJ(1e4);yield i(n,t,r);return}case"pending":n.subscription.pendingRequestCount+=1,yield i(n,t);return;case"active":return}})}querySubscribed(){return il(this,void 0,void 0,function*(){return Array.from(this.descriptors.values()).filter(e=>"active"===e.subscription.type).map(e=>[e.info,e.publisherIdentity])})}unSubscribeRequest(e){var t;let n=this.descriptors.get(e);if(!n)throw Error("Cannot subscribe to unknown track");if("active"!==n.subscription.type)return void oi.warn("Unexpected descriptor state in unSubscribeRequest, expected active, found ".concat(null==(t=n.subscription)?void 0:t.type));this.closeStreamControllers(n.subscription.streamControllers,e);let i=n.subscription;n.subscription={type:"none"},this.subscriptionHandles.delete(i.subcriptionHandle),this.emit("sfuUpdateSubscription",{sid:e,subscribe:!1})}closeStreamControllers(e,t){for(let[n,i]of e){i();try{n.close()}catch(e){oi.warn("Failed to close readable stream for track ".concat(t,": ").concat(e))}}}receiveSfuPublicationUpdates(e){return il(this,void 0,void 0,function*(){if(0===e.size)return;let t=new Map;for(let[n,i]of e.entries()){let e=new Set;for(let t of i)e.add(t.sid),this.descriptors.has(t.sid)||(yield this.handleTrackPublished(n,t));t.set(n,e)}for(let[e,n]of t.entries())for(let t of Array.from(this.descriptors.entries()).filter(t=>{let[n,i]=t;return i.publisherIdentity===e}).map(e=>{let[t]=e;return t}).filter(e=>!n.has(e)))this.handleTrackUnpublished(t)})}queryPublications(){return il(this,void 0,void 0,function*(){return Array.from(this.descriptors.values()).map(e=>e.info)})}handleTrackPublished(e,t){return il(this,void 0,void 0,function*(){if(this.descriptors.has(t.sid))return void oi.error("Existing descriptor for track ".concat(t.sid));let n={info:t,publisherIdentity:e,subscription:{type:"none"}};this.descriptors.set(n.info.sid,n);let i=new s3(n.info,this,{publisherIdentity:e});
2this.emit("trackPublished",{track:i})})}handleTrackUnpublished(e){let t=this.descriptors.get(e);t?(this.descriptors.delete(e),"active"===t.subscription.type&&(this.closeStreamControllers(t.subscription.streamControllers,e),this.subscriptionHandles.delete(t.subscription.subcriptionHandle)),this.emit("trackUnpublished",{sid:e,publisherIdentity:t.publisherIdentity})):oi.error("Unknown track ".concat(e))}receivedSfuSubscriberHandles(e){for(let[t,n]of e.entries())this.registerSubscriberHandle(t,n)}registerSubscriberHandle(e,t){var n,i;let r=this.descriptors.get(t);if(!r)return void oi.error("Unknown track ".concat(t));switch(r.subscription.type){case"none":return void oi.warn("No subscription for ".concat(t));case"active":r.subscription.subcriptionHandle=e,this.subscriptionHandles.set(e,t);return;case"pending":{let a=new on({info:r.info,publisherIdentity:r.publisherIdentity,e2eeManager:this.e2eeManager}),s=r.subscription;r.subscription={type:"active",subcriptionHandle:e,pipeline:a,streamControllers:new Map},this.subscriptionHandles.set(e,t),null==(i=(n=s.completionFuture).resolve)||i.call(n)}}}packetReceived(e){return il(this,void 0,void 0,function*(){let t;try{[t]=s6.fromBinary(e)}catch(e){oi.error("Failed to deserialize packet: ".concat(e));return}let n=this.subscriptionHandles.get(t.header.trackHandle);if(!n)return void oi.warn("Unknown subscriber handle ".concat(t.header.trackHandle));let i=this.descriptors.get(n);if(!i)return void oi.error("Missing descriptor for track ".concat(n));if("active"!==i.subscription.type)return void oi.warn("Received packet for track ".concat(n," without active subscription"));let r=yield i.subscription.pipeline.processPacket(t);if(r)for(let e of i.subscription.streamControllers.keys()){if(null!==e.desiredSize&&e.desiredSize<=0){oi.warn("Cannot send frame to subscribers: readable stream is full (desiredSize is ".concat(e.desiredSize,"). To increase this threshold, set a higher 'options.highWaterMark' when calling .subscribe()."));continue}let t=s1.lossyIntoFrame(r);e.enqueue(t)}})}resendSubscriptionUpdates(){for(let[e,t]of this.descriptors)"none"!==t.subscription.type&&this.emit("sfuUpdateSubscription",{sid:e,subscribe:!0})}handleRemoteParticipantDisconnected(e){var t,n;for(let i of this.descriptors.values())if(i.publisherIdentity===e)switch(i.subscription.type){case"none":break;case"pending":null==(n=(t=i.subscription.completionFuture).reject)||n.call(t,oe.disconnected());break;case"active":this.unSubscribeRequest(i.info.sid)}}shutdown(){var e,t;
2for(let n of this.descriptors.values())this.emit("trackUnpublished",{sid:n.info.sid,publisherIdentity:n.publisherIdentity}),"pending"===n.subscription.type&&(null==(t=(e=n.subscription.completionFuture).reject)||t.call(e,oe.disconnected())),"active"===n.subscription.type&&this.closeStreamControllers(n.subscription.streamControllers,n.info.sid);this.descriptors.clear()}}class oa extends rf{constructor(e,t,n){super(19,e,n),this.name="DataTrackPacketizerError",this.reason=t,this.reasonName=lr[t]}static mtuTooShort(){return new oa("MTU is too short to send frame",lr.MtuTooShort)}}(cv=lr||(lr={}))[cv.MtuTooShort=0]="MtuTooShort";class os{constructor(e,t){this.sequence=aN.u16(0),this.frameNumber=aN.u16(0),this.clock=aU.rtpStartingNow(aL.rtpRandom()),this.handle=e,this.mtuSizeBytes=t}static computeFrameMarker(e,t){return t<=1?lt.Single:0===e?lt.Start:e===t-1?lt.Final:lt.Inter}*packetize(e,t){var n;let i=this.frameNumber.getThenIncrement(),r={marker:lt.Inter,trackHandle:this.handle,sequence:aN.u16(0),frameNumber:i,timestamp:null!=(n=null==t?void 0:t.now)?n:this.clock.now(),extensions:e.extensions},a=new s4(r).toBinaryLengthBytes();if(a>=this.mtuSizeBytes)throw oa.mtuTooShort();let s=this.mtuSizeBytes-a,o=Math.ceil(e.payload.byteLength/s);for(let t=0,n=0;n<e.payload.byteLength;[t,n]=[t+1,n+s]){let i=this.sequence.getThenIncrement(),a=new s4(Object.assign(Object.assign({},r),{marker:os.computeFrameMarker(t,o),sequence:i})),c=Math.min(s,e.payload.byteLength-n),l=new Uint8Array(e.payload.buffer,e.payload.byteOffset+n,c);yield new s6(a,l)}}}(cb=la||(la={}))[cb.NotAllowed=0]="NotAllowed",cb[cb.DuplicateName=1]="DuplicateName",cb[cb.Timeout=2]="Timeout",cb[cb.LimitReached=3]="LimitReached",cb[cb.Disconnected=4]="Disconnected",cb[cb.Cancelled=5]="Cancelled",cb[cb.InvalidName=6]="InvalidName",cb[cb.Unknown=7]="Unknown";class oo extends rf{constructor(e,t,n){super(21,e,n),this.name="DataTrackPublishError",this.reason=t,this.reasonName=la[t],this.rawMessage=null==n?void 0:n.rawMessage}static notAllowed(e){return new oo("Data track publishing unauthorized",la.NotAllowed,{rawMessage:e})}static duplicateName(e){return new oo("Track name already taken",la.DuplicateName,{rawMessage:e})}static invalidName(e){return new oo("Track name is invalid",la.InvalidName,{rawMessage:e})}static timeout(){return new oo("Publish data track timed-out. Does the LiveKit server support data tracks?",la.Timeout)}static limitReached(e){return new oo("Data track publication limit reached",la.LimitReached,{rawMessage:e})}static unknown(e,t){return new oo("Received RequestResponse for publishDataTrack, but reason was unrecognised (".concat(e,", ").concat(t,")"),la.Unknown)}static disconnected(){return new oo("Room disconnected",la.Disconnected)}static cancelled(){return new oo("Publish data track cancelled by caller",la.Cancelled)}}(cy=ls||(ls={}))[cy.TrackUnpublished=0]="TrackUnpublished",cy[cy.Dropped=1]="Dropped";class oc extends rf{constructor(e,t,n){super(22,e,n),this.name="DataTrackPushFrameError",this.reason=t,this.reasonName=ls[t]}static trackUnpublished(){return new oc("Track is no longer published",ls.TrackUnpublished)}static dropped(e){return new oc("Frame was dropped",ls.Dropped,{cause:e})}}(ck=lo||(lo={}))[ck.Packetizer=0]="Packetizer",ck[ck.Encryption=1]="Encryption";class ol extends rf{constructor(e,t,n){super(21,e,n),this.name="DataTrackOutgoingPipelineError",this.reason=t,this.reasonName=lo[t]}static packetizer(e){return new ol("Error packetizing frame",lo.Packetizer,{cause:e})}static encryption(e){return new ol("Error encrypting frame",lo.Encryption,{cause:e})}}class od{constructor(e,t){this.trackSymbol=s2,this.isLocal=!0,this.typeSymbol=s5,this.handle=null,this.log=ii,this.options=e,this.manager=t,this.log=ia(cM.DataTracks)}static withExplicitHandle(e,t,n){let i=new od(e,t);return i.handle=n,i}get info(){let e=this.descriptor;return(null==e?void 0:e.type)==="active"?e.info:void 0}get descriptor(){return this.handle?this.manager.getDescriptor(this.handle):null}publish(e){return il(this,void 0,void 0,function*(){try{this.handle=yield this.manager.publishRequest(this.options,e)}catch(e){throw e}})}isPublished(){var e;return(null==(e=this.descriptor)?void 0:e.type)==="active"&&"unpublished"!==this.descriptor.publishState}tryPush(e){if(!this.handle)throw oc.trackUnpublished();let t=s1.from(e);try{return this.manager.tryProcessAndSend(this.handle,t)}catch(e){throw e}}unpublish(){return il(this,void 0,void 0,function*(){if(!this.handle)return void ii.warn('Data track "'.concat(this.options.name,'" is not published, so unpublishing has no effect.'));try{yield this.manager.unpublishRequest(this.handle)}catch(e){throw e}})}}class ou{constructor(e){this.e2eeManager=e.e2eeManager,this.packetizer=new os(e.info.pubHandle,ou.TRANSPORT_MTU_BYTES)}updateE2eeManager(e){this.e2eeManager=e}processFrame(e){return function(e,t,n){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var i,r=n.apply(e,t||[]),a=[];return i=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,l)}}),i[Symbol.asyncIterator]=function(){return this},i;function s(e,t){r[e]&&(i[e]=function(t){return new Promise(function(n,i){a.push([e,t,n,i])>1||o(e,t)})},t&&(i[e]=t(i[e])))}function o(e,t){try{var n;(n=r[e](t)).value instanceof id?Promise.resolve(n.value.v).then(c,l):d(a[0][2],n)}catch(e){d(a[0][3],e)}}function c(e){o("next",e)}function l(e){o("throw",e)}function d(e,t){e(t),a.shift(),a.length&&o(a[0][0],a[0][1])}}(this,arguments,function*(){let t=yield id(this.encryptIfNeeded(e));try{yield id((yield*function(e){var t,n;return t={},i("next"),i("throw",function(e){throw e}),i("return"),t[Symbol.iterator]=function(){return this},t;function i(i,r){t[i]=e[i]?function(t){return(n=!n)?{value:id(e[i](t)),done:!1}:r?r(t):t}:r}}(iu(this.packetizer.packetize(t)))))}catch(e){if(e instanceof oa)throw ol.packetizer(e);throw e}})}encryptIfNeeded(e){return il(this,void 0,void 0,function*(){let t;if(!this.e2eeManager)return e;try{t=yield this.e2eeManager.encryptData(e.payload)}catch(e){throw ol.encryption(e)}return e.payload=t.payload,e.extensions.e2ee=new sZ(t.keyIndex,t.iv),e})}}ou.TRANSPORT_MTU_BYTES=16e3;let oh=ia(cM.DataTracks);class op extends ip.EventEmitter{constructor(e){var t;super(),this.handleAllocator=new aq,this.descriptors=new Map,this.e2eeManager=null!=(t=null==e?void 0:e.e2eeManager)?t:null}static withDescriptors(e){let t=new op;return t.descriptors=e,t}updateE2eeManager(e){for(let t of(this.e2eeManager=e,this.descriptors.values())
2)"active"===t.type&&t.pipeline.updateE2eeManager(e)}getDescriptor(e){var t;return null!=(t=this.descriptors.get(e))?t:null}tryProcessAndSend(e,t){return il(this,void 0,void 0,function*(){var n,i,r,a;let s=this.getDescriptor(e);if((null==s?void 0:s.type)!=="active"||"unpublished"===s.publishState)throw oc.trackUnpublished();if("republishing"===s.publishState)throw oc.dropped("Data track republishing");try{try{for(var o,c=!0,l=iu(s.pipeline.processFrame(t));!(n=(o=yield l.next()).done);c=!0)a=o.value,c=!1,this.emit("packetAvailable",{bytes:a.toBinary()})}catch(e){i={error:e}}finally{try{!c&&!n&&(r=l.return)&&(yield r.call(l))}finally{if(i)throw i.error}}}catch(e){throw oc.dropped(e)}})}publishRequest(e,t){return il(this,void 0,void 0,function*(){let n=this.handleAllocator.get();if(!n)throw oo.limitReached();let i=sJ(1e4),r=t?sG([t,i]):i;if(this.descriptors.has(n))throw Error("Descriptor for handle already exists");let a={type:"pending",completionFuture:new au};this.descriptors.set(n,a);let s=()=>{var e,t;let r=this.descriptors.get(n);r?(this.descriptors.delete(n),this.emit("sfuUnpublishRequest",{handle:n}),"pending"===r.type&&(null==(t=(e=r.completionFuture).reject)||t.call(e,i.aborted?oo.timeout():oo.cancelled()))):oh.warn("No descriptor for ".concat(n))};return r.aborted?(s(),a.completionFuture.promise.then(()=>n)):(r.addEventListener("abort",s),this.emit("sfuPublishRequest",{handle:n,name:e.name,usesE2ee:null!==this.e2eeManager}),yield a.completionFuture.promise,r.removeEventListener("abort",s),this.emit("trackPublished",{track:od.withExplicitHandle(e,this,n)}),n)})}queryPublished(){return Array.from(this.descriptors.values()).filter(e=>"active"===e.type).map(e=>e.info)}unpublishRequest(e){return il(this,void 0,void 0,function*(){let t=this.descriptors.get(e);t?"active"!==t.type?oh.warn("Track ".concat(e," not active")):(this.emit("sfuUnpublishRequest",{handle:e}),yield t.unpublishingFuture.promise,this.emit("trackUnpublished",{sid:t.info.sid})):oh.warn("No descriptor for ".concat(e))})}receivedSfuPublishResponse(e,t){var n,i,r,a;let s=this.descriptors.get(e);if(!s)return void oh.warn("No descriptor for ".concat(e));switch(this.descriptors.delete(e),s.type){case"pending":if("ok"===t.type){let e,r=t.data,a=r.usesE2ee?this.e2eeManager:null;this.descriptors.set(r.pubHandle,(e=r,{type:"active",info:e,publishState:"published",pipeline:new ou({info:e,e2eeManager:a}),unpublishingFuture:new au})),null==(i=(n=s.completionFuture).resolve)||i.call(n)}else null==(a=(r=s.completionFuture).reject)||a.call(r,t.error);return;case"active":if("republishing"!==s.publishState)return void oh.warn("Track ".concat(e," already active"));if("error"===t.type)return void oh.warn("Republish failed for track ".concat(e));oh.debug("Track ".concat(e," republished")),s.info.sid=t.data.sid,s.publishState="published",this.descriptors.set(s.info.pubHandle,s)}}receivedSfuUnpublishResponse(e){var t,n;let i=this.descriptors.get(e);i?(this.descriptors.delete(e),"active"!==i.type)?oh.warn("Track ".concat(e," not active")):(i.publishState="unpublished",null==(n=(t=i.unpublishingFuture).resolve)||n.call(t)):oh.warn("No descriptor for ".concat(e))}sfuWillRepublishTracks(){var e,t;for(let[n,i]of this.descriptors.entries())switch(i.type){case"pending":this.descriptors.delete(n),null==(t=(e=i.completionFuture).reject)||t.call(e,oo.disconnected());break;case"active":i.publishState="republishing",this.emit("sfuPublishRequest",{handle:i.info.pubHandle,name:i.info.name,usesE2ee:i.info.usesE2ee})}}shutdown(){return il(this,void 0,void 0,function*(){var e,t,n,i;for(let r of this.descriptors.values())switch(r.type){case"pending":null==(t=(e=r.completionFuture).reject)||t.call(e,oo.disconnected());break;case"active":null==(i=(n=r.unpublishingFuture).resolve)||i.call(n),yield this.unpublishRequest(r.info.pubHandle)}this.descriptors.clear()})}}class om extends rW{constructor(e,t,n,i,r){super(e,n,r),this.sid=t,this.receiver=i}get isLocal(){return!1}setMuted(e){this.isMuted!==e&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?cV.Muted:cV.Unmuted,this))}setMediaStream(e){this.mediaStream=e;let t=n=>{n.track===this._mediaStreamTrack&&(e.removeEventListener("removetrack",t),this.receiver&&"playoutDelayHint"in this.receiver&&(this.receiver.playoutDelayHint=void 0),this.receiver=void 0,this._currentBitrate=0,this.emit
2(cV.Ended,this))};e.addEventListener("removetrack",t)}start(){this.startMonitor(),super.enable()}stop(){this.stopMonitor(),super.disable()}getRTCStatsReport(){return il(this,void 0,void 0,function*(){var e;if(null==(e=this.receiver)?void 0:e.getStats)return yield this.receiver.getStats()})}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;else 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(),2e3)),"u">typeof RTCRtpReceiver&&"getSynchronizationSources"in RTCRtpReceiver&&this.registerTimeSyncUpdate()}registerTimeSyncUpdate(){let e=()=>{var t;this.timeSyncHandle=requestAnimationFrame(()=>e());let n=null==(t=this.receiver)?void 0:t.getSynchronizationSources()[0];if(n){let{timestamp:e,rtpTimestamp:t}=n;
2t&&this.rtpTimestamp!==t&&(this.emit(cV.TimeSyncUpdate,{timestamp:e,rtpTimestamp:t}),this.rtpTimestamp=t)}};e()}}class of extends om{constructor(e,t,n,i,r,a){super(e,t,rW.Kind.Audio,n,a),this.monitorReceiver=()=>il(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}let e=yield this.getReceiverStats();e&&this.prevStats&&this.receiver&&(this._currentBitrate=sl(e,this.prevStats)),this.prevStats=e}),this.audioContext=i,this.webAudioPluginNodes=[],r&&(this.sinkId=r.deviceId)}setVolume(e){var t;for(let n of this.attachedElements)this.audioContext?null==(t=this.gainNode)||t.gain.setTargetAtTime(e,0,.1):n.volume=e;r6()&&this._mediaStreamTrack._setVolume(e),this.elementVolume=e}getVolume(){if(this.elementVolume)return this.elementVolume;if(r6())return 1;let e=0;return this.attachedElements.forEach(t=>{t.volume>e&&(e=t.volume)}),e}setSinkId(e){return il(this,void 0,void 0,function*(){this.sinkId=e,yield Promise.all(this.attachedElements.map(t=>{if(rZ(t))return t.setSinkId(e)}))})}attach(e){let t=0===this.attachedElements.length;return e?super.attach(e):e=super.attach(),this.sinkId&&rZ(e)&&e.setSinkId(this.sinkId).catch(e=>{this.log.error("Failed to set sink id on remote audio track",e,this.logContext)}),this.audioContext&&t&&(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 t;return e?(t=super.detach(e),this.audioContext&&(this.attachedElements.length>0?this.connectWebAudio(this.audioContext,this.attachedElements[0]):this.disconnectWebAudio())):(t=super.detach(),this.disconnectWebAudio()),t}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,t){this.disconnectWebAudio(),this.sourceNode=e.createMediaStreamSource(t.srcObject);let n=this.sourceNode;this.webAudioPluginNodes.forEach(e=>{n.connect(e),n=e}),this.gainNode=e.createGain(),n.connect(this.gainNode),this.gainNode.connect(e.destination),this.elementVolume&&this.gainNode.gain.setTargetAtTime(this.elementVolume,0,.1),"running"!==e.state&&e.resume().then(()=>{"running"!==e.state&&this.emit(cV.AudioPlaybackFailed,Error("Audio Context couldn't be started automatically"))}).catch(e=>{this.emit(cV.AudioPlaybackFailed,e)})}disconnectWebAudio(){var e,t;null==(e=this.gainNode)||e.disconnect(),null==(t=this.sourceNode)||t.disconnect(),this.gainNode=void 0,this.sourceNode=void 0}getReceiverStats(){return il(this,void 0,void 0,function*(){let e;if(this.receiver&&this.receiver.getStats)return(yield this.receiver.getStats()).forEach(t=>{"inbound-rtp"===t.type&&(e={type:"audio",streamId:t.id,timestamp:t.timestamp,jitter:t.jitter,bytesReceived:t.bytesReceived,concealedSamples:t.concealedSamples,concealmentEvents:t.concealmentEvents,silentConcealedSamples:t.silentConcealedSamples,silentConcealmentEvents:t.silentConcealmentEvents,totalAudioEnergy:t.totalAudioEnergy,totalSamplesDuration:t.totalSamplesDuration})}),e})}}class og extends om{constructor(e,t,n,i,r){super(e,t,rW.Kind.Video,n,r),this.elementInfos=[],this.monitorReceiver=()=>il(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}let e=yield this.getReceiverStats();e&&this.prevStats&&this.receiver&&(this._currentBitrate=sl(e,this.prevStats)),this.prevStats=e}),this.debouncedHandleResize=a2(()=>{this.updateDimensions()},100),this.adaptiveStreamSettings=i}get isAdaptiveStream(){return void 0!==this.adaptiveStreamSettings}setStreamState(e){super.setStreamState(e),this.log.debug("setStreamState",e),this.isAdaptiveStream&&e===rW.StreamState.Active&&this.updateVisibility()}get mediaStreamTrack(){return this._mediaStreamTrack}setMuted(e){super.setMuted(e),this.attachedElements.forEach(t=>{e?rJ(this._mediaStreamTrack,t):rG(this._mediaStreamTrack,t)})}attach(e){if(e?super.attach(e):e=super.attach(),this.adaptiveStreamSettings&&void 0===this.elementInfos.find(t=>t.element===e)){let t=new ov(e);this.observeElementInfo(t)}return e}observeElementInfo(e){this.adaptiveStreamSettings&&void 0===this.elementInfos.find(t=>t===e)?(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)return void this.log.warn("stopObservingElementInfo ignored",this.logContext);for(let t of this.elementInfos.filter(t=>t===e))t.stopObserving();this.elementInfos=this.elementInfos.filter(t=>t!==e),this.updateVisibility(),this.debouncedHandleResize()}detach(e){let t=[];if(e)return this.stopObservingElement(e),super.detach(e);for(let e of t=super.detach())this.stopObservingElement(e);return t}getDecoderImplementation(){var e;return null==(e=this.prevStats)?void 0:e.decoderImplementation}getReceiverStats(){return il(this,void 0,void 0,function*(){let e;if(!this.receiver||!this.receiver.getStats)return;let t=yield this.receiver.getStats(),n="",i=new Map;return t.forEach(t=>
2{"inbound-rtp"===t.type?(n=t.codecId,e={type:"video",streamId:t.id,framesDecoded:t.framesDecoded,framesDropped:t.framesDropped,framesReceived:t.framesReceived,packetsReceived:t.packetsReceived,packetsLost:t.packetsLost,frameWidth:t.frameWidth,frameHeight:t.frameHeight,pliCount:t.pliCount,firCount:t.firCount,nackCount:t.nackCount,jitter:t.jitter,timestamp:t.timestamp,bytesReceived:t.bytesReceived,decoderImplementation:t.decoderImplementation}):"codec"===t.type&&i.set(t.id,t)}),e&&""!==n&&i.get(n)&&(e.mimeType=i.get(n).mimeType),e})}stopObservingElement(e){for(let t of this.elementInfos.filter(t=>t.element===e))this.stopObservingElementInfo(t)}handleAppVisibilityChanged(){let e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return il(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),this.isAdaptiveStream&&this.updateVisibility()})}updateVisibility(e){var t,n;let i=this.elementInfos.reduce((e,t)=>Math.max(e,t.visibilityChangedAt||0),0),r=(null==(n=null==(t=this.adaptiveStreamSettings)?void 0:t.pauseVideoInBackground)||!!n)&&this.isInBackground,a=this.elementInfos.some(e=>e.pictureInPicture),s=this.elementInfos.some(e=>e.visible)&&!r||a;if(this.lastVisible!==s||e){if(!s&&Date.now()-i<100)return void rP.setTimeout(()=>{this.updateVisibility()},100);this.lastVisible=s,this.emit(cV.VisibilityChanged,s,this)}}updateDimensions(){var e,t;let n=0,i=0,r=this.getPixelDensity();for(let e of this.elementInfos){let t=e.width()*r,a=e.height()*r;t+a>n+i&&(n=t,i=a)}((null==(e=this.lastDimensions)?void 0:e.width)!==n||(null==(t=this.lastDimensions)?void 0:t.height)!==i)&&(this.lastDimensions={width:n,height:i},this.emit(cV.VideoDimensionsChanged,this.lastDimensions,this))}getPixelDensity(){var e;let t=null==(e=this.adaptiveStreamSettings)?void 0:e.pixelDensity;return"screen"===t?at():t?t:at()>2?2:1}}class ov{get visible(){return this.isPiP||this.isIntersecting}get pictureInPicture(){return this.isPiP}constructor(e,t){this.onVisibilityChanged=e=>{var t;let{target:n,isIntersecting:i}=e;n===this.element&&(this.isIntersecting=i,this.isPiP=ob(this.element),this.visibilityChangedAt=Date.now(),null==(t=this.handleVisibilityChanged)||t.call(this))},this.onEnterPiP=()=>{var e,t;null==(t=null==(e=window.documentPictureInPicture)?void 0:e.window)||t.addEventListener("pagehide",this.onLeavePiP),queueMicrotask(()=>{requestAnimationFrame(()=>{var e;this.isPiP=ob(this.element),null==(e=this.handleVisibilityChanged)||e.call(this)})})},this.onLeavePiP=()=>{var e;this.isPiP=ob(this.element),null==(e=this.handleVisibilityChanged)||e.call(this)},this.element=e,this.isIntersecting=null!=t?t:oy(e),this.isPiP=r4()&&ob(e),this.visibilityChangedAt=0}width(){return this.element.clientWidth}height(){return this.element.clientHeight}observe(){var e,t,n;this.isIntersecting=oy(this.element),this.isPiP=ob(this.element),this.element.handleResize=()=>{var e;null==(e=this.handleResize)||e.call(this)},this.element.handleVisibilityChanged=this.onVisibilityChanged,ac().observe(this.element),as().observe(this.element),this.element.addEventListener("enterpictureinpicture",this.onEnterPiP),this.element.addEventListener("leavepictureinpicture",this.onLeavePiP),null==(e=window.documentPictureInPicture)||e.addEventListener("enter",this.onEnterPiP),null==(n=null==(t=window.documentPictureInPicture)?void 0:t.window)||n.addEventListener("pagehide",this.onLeavePiP)}stopObserving(){var e,t,n,i,r;null==(e=ac())||e.unobserve(this.element),null==(t=as())||t.unobserve(this.element),this.element.removeEventListener("enterpictureinpicture",this.onEnterPiP),this.element.removeEventListener("leavepictureinpicture",this.onLeavePiP),null==(n=window.documentPictureInPicture)||n.removeEventListener("enter",this.onEnterPiP),null==(r=null==(i=window.documentPictureInPicture)?void 0:i.window)||r.removeEventListener("pagehide",this.onLeavePiP)}}function ob(e){var t,n;return document.pictureInPictureElement===e||null!=(t=window.documentPictureInPicture)&&!!t.window&&oy(e,null==(n=window.documentPictureInPicture)?void 0:n.window)}function oy(e,t){let n=t||window,i=e.offsetTop,r=e.offsetLeft,a=e.offsetWidth,s=e.offsetHeight,{hidden:o}=e,{display:c}=getComputedStyle(e);for(;e.offsetParent;)i+=(e=e.offsetParent).offsetTop,r+=e.offsetLeft;return i<n.pageYOffset+n.innerHeight&&r<n.pageXOffset+n.innerWidth&&i+s>n.pageYOffset&&r+a>n.pageXOffset&&!o&&"none"!==c}class ok extends ip.EventEmitter{constructor(e,t,n,i){var r;super(),this.metadataMuted=!1,this.encryption=te.NONE,this.log=ii,this.handleMuted=()=>
2{this.emit(cV.Muted)},this.handleUnmuted=()=>{this.emit(cV.Unmuted)},this.log=ia(null!=(r=null==i?void 0:i.loggerName)?r:cM.Publication),this.loggerContextCb=this.loggerContextCb,this.setMaxListeners(100),this.kind=e,this.trackSid=t,this.trackName=n,this.source=rW.Source.Unknown}setTrack(e){this.track&&(this.track.off(cV.Muted,this.handleMuted),this.track.off(cV.Unmuted,this.handleUnmuted)),this.track=e,e&&(e.on(cV.Muted,this.handleMuted),e.on(cV.Unmuted,this.handleUnmuted))}get logContext(){var e;return Object.assign(Object.assign({},null==(e=this.loggerContextCb)?void 0:e.call(this)),rq(this))}get isMuted(){return this.metadataMuted}get isEnabled(){return!0}get isSubscribed(){return void 0!==this.track}get isEncrypted(){return this.encryption!==te.NONE}get audioTrack(){if(ay(this.track))return this.track}get videoTrack(){if(ak(this.track))return this.track}updateInfo(e){this.trackSid=e.sid,this.trackName=e.name,this.source=rW.sourceFromProto(e.source),this.mimeType=e.mimeType,this.kind===rW.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}))}}(cS=(cT=ok||(ok={})).SubscriptionStatus||(cT.SubscriptionStatus={})).Desired="desired",cS.Subscribed="subscribed",cS.Unsubscribed="unsubscribed",(cC=cT.PermissionStatus||(cT.PermissionStatus={})).Allowed="allowed",cC.NotAllowed="not_allowed";class oT extends ok{get isUpstreamPaused(){var e;return null==(e=this.track)?void 0:e.isUpstreamPaused}constructor(e,t,n,i){super(e,t.sid,t.name,i),this.track=void 0,this.handleTrackEnded=()=>{this.emit(cV.Ended)},this.handleCpuConstrained=()=>{this.track&&ak(this.track)&&this.emit(cV.CpuConstrained,this.track)},this.updateInfo(t),this.setTrack(n)}setTrack(e){this.track&&(this.track.off(cV.Ended,this.handleTrackEnded),this.track.off(cV.CpuConstrained,this.handleCpuConstrained)),super.setTrack(e),e&&(e.on(cV.Ended,this.handleTrackEnded),e.on(cV.CpuConstrained,this.handleCpuConstrained))}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 il(this,void 0,void 0,function*(){var e;return null==(e=this.track)?void 0:e.mute()})}unmute(){return il(this,void 0,void 0,function*(){var e;return null==(e=this.track)?void 0:e.unmute()})}pauseUpstream(){return il(this,void 0,void 0,function*(){var e;yield null==(e=this.track)?void 0:e.pauseUpstream()})}resumeUpstream(){return il(this,void 0,void 0,function*(){var e;yield null==(e=this.track)?void 0:e.resumeUpstream()})}getTrackFeatures(){var e;if(!ay(this.track))return[];{let t=this.track.getSourceTrackSettings(),n=new Set;return t.autoGainControl&&n.add(e1.TF_AUTO_GAIN_CONTROL),t.echoCancellation&&n.add(e1.TF_ECHO_CANCELLATION),t.noiseSuppression&&n.add(e1.TF_NOISE_SUPPRESSION),t.channelCount&&t.channelCount>1&&n.add(e1.TF_STEREO),(null==(e=this.options)?void 0:e.dtx)||n.add(e1.TF_NO_DTX),this.track.enhancedNoiseCancellation&&n.add(e1.TF_ENHANCED_NOISE_CANCELLATION),Array.from(n.values())}}}function oS(e,t){return il(this,void 0,void 0,function*(){null!=e||(e={});let n=!1,{audioProcessor:i,videoProcessor:r,optionsWithoutProcessor:a}=rV(e),s=a.audio,o=a.video;if(i&&"object"==typeof a.audio&&(a.audio.processor=i),r&&"object"==typeof a.video&&(a.video.processor=r),e.audio&&"object"==typeof a.audio&&"string"==typeof a.audio.deviceId){let e=a.audio.deviceId;a.audio.deviceId={exact:e},n=!0,s=Object.assign(Object.assign({},a.audio),{deviceId:{ideal:e}})}if(a.video&&"object"==typeof a.video&&"string"==typeof a.video.deviceId){let e=a.video.deviceId;a.video.deviceId={exact:e},n=!0,o=Object.assign(Object.assign({},a.video),{deviceId:{ideal:e}})}!0===a.audio?a.audio={deviceId:"default"}:"object"==typeof a.audio&&null!==a.audio&&(a.audio=Object.assign(Object.assign({},a.audio),{deviceId:a.audio.deviceId||"default"})),!0===a.video?a.video={deviceId:"default"}:"object"!=typeof a.video||a.video.deviceId||(a.video.deviceId="default");let c=rA(a,st,sn),l=rL(c),d=navigator.mediaDevices.getUserMedia(l);
2a.audio&&(aA.userMediaPromiseMap.set("audioinput",d),d.catch(()=>aA.userMediaPromiseMap.delete("audioinput"))),a.video&&(aA.userMediaPromiseMap.set("videoinput",d),d.catch(()=>aA.userMediaPromiseMap.delete("videoinput")));try{let e=yield d;return yield Promise.all(e.getTracks().map(n=>il(this,void 0,void 0,function*(){let a,s="audio"===n.kind,o=s?c.audio:c.video;"boolean"!=typeof o&&o||(o={});let d=s?l.audio:l.video;"boolean"!=typeof d&&(a=d);let u=n.getSettings().deviceId;(null==a?void 0:a.deviceId)&&ap(a.deviceId)!==u?a.deviceId=u:a||(a={deviceId:u});let h=function(e,t,n){switch(e.kind){case"audio":return new sm(e,t,!1,void 0,n);case"video":return new sR(e,t,!1,n);default:throw new rb("unsupported track type: ".concat(e.kind))}}(n,a,t);return h.kind===rW.Kind.Video?h.source=rW.Source.Camera:h.kind===rW.Kind.Audio&&(h.source=rW.Source.Microphone),h.mediaStream=e,ay(h)&&i?yield h.setProcessor(i):ak(h)&&r&&(yield h.setProcessor(r)),h})))}catch(i){if(!n)throw i;return oS(Object.assign(Object.assign({},e),{audio:s,video:o}),t)}})}(cw=lc||(lc={})).Excellent="excellent",cw.Good="good",cw.Poor="poor",cw.Lost="lost",cw.Unknown="unknown";class oC extends ip.EventEmitter{get logContext(){var e,t;return Object.assign({},null==(t=null==(e=this.loggerOptions)?void 0:e.loggerContextCb)?void 0:t.call(e))}get isEncrypted(){return this.trackPublications.size>0&&Array.from(this.trackPublications.values()).every(e=>e.isEncrypted)}get isAgent(){var e;return(null==(e=this.permissions)?void 0:e.agent)||this.kind===e8.AGENT}get isActive(){var e;return(null==(e=this.participantInfo)?void 0:e.state)===e9.ACTIVE}get kind(){return this._kind}get attributes(){return Object.freeze(Object.assign({},this._attributes))}constructor(e,t,n,i,r,a){var s;let o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:e8.STANDARD;super(),this.audioLevel=0,this.isSpeaking=!1,this._connectionQuality=lc.Unknown,this.log=ii,this.log=ia(null!=(s=null==a?void 0:a.loggerName)?s:cM.Participant),this.loggerOptions=a,this.setMaxListeners(100),this.sid=e,this.identity=t,this.name=n,this.metadata=i,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this._kind=o,this._attributes=null!=r?r:{}}getTrackPublications(){return Array.from(this.trackPublications.values())}getTrackPublication(e){for(let[,t]of this.trackPublications)if(t.source===e)return t}getTrackPublicationByName(e){for(let[,t]of this.trackPublications)if(t.trackName===e)return t}waitUntilActive(){return this.isActive?Promise.resolve():(this.activeFuture||(this.activeFuture=new au,this.once(cB.Active,()=>{var e,t;null==(t=null==(e=this.activeFuture)?void 0:e.resolve)||t.call(e),this.activeFuture=void 0})),this.activeFuture.promise)}get connectionQuality(){return this._connectionQuality}get isCameraEnabled(){var e;let t=this.getTrackPublication(rW.Source.Camera);return!(null==(e=null==t?void 0:t.isMuted)||e)}get isMicrophoneEnabled(){var e;let t=this.getTrackPublication(rW.Source.Microphone);return!(null==(e=null==t?void 0:t.isMuted)||e)}get isScreenShareEnabled(){return!!this.getTrackPublication(rW.Source.ScreenShare)}get isLocal(){return!1}get joinedAt(){return this.participantInfo?new Date(1e3*Number.parseInt(this.participantInfo.joinedAt.toString())):new Date}updateInfo(e){var t;return(!this.participantInfo||this.participantInfo.sid!==e.sid||!(this.participantInfo.version>e.version))&&(this.identity=e.identity,this.sid=e.sid,this._setName(e.name),this._setMetadata(e.metadata),this._setAttributes(e.attributes),e.state===e9.ACTIVE&&(null==(t=this.participantInfo)?void 0:t.state)!==e9.ACTIVE&&this.emit(cB.Active),e.permission&&this.setPermissions(e.permission),this.participantInfo=e,!0)}_setMetadata(e){let t=this.metadata!==e,n=this.metadata;this.metadata=e,t&&this.emit(cB.ParticipantMetadataChanged,n)}_setName(e){let t=this.name!==e;this.name=e,t&&this.emit(cB.ParticipantNameChanged,e)}_setAttributes(e){let t=function(e,t){var n;void 0===e&&(e={}),void 0===t&&(t={});let i=[...Object.keys(t),...Object.keys(e)],r={};for(let a of i)e[a]!==t[a]&&(r[a]=null!=(n=t[a])?n:"");return r}(this.attributes,e);this._attributes=e,Object.keys(t).length>
20&&this.emit(cB.AttributesChanged,t)}setPermissions(e){var t,n,i,r,a,s;let o=this.permissions,c=e.canPublish!==(null==(t=this.permissions)?void 0:t.canPublish)||e.canSubscribe!==(null==(n=this.permissions)?void 0:n.canSubscribe)||e.canPublishData!==(null==(i=this.permissions)?void 0:i.canPublishData)||e.hidden!==(null==(r=this.permissions)?void 0:r.hidden)||e.recorder!==(null==(a=this.permissions)?void 0:a.recorder)||e.canPublishSources.length!==this.permissions.canPublishSources.length||e.canPublishSources.some((e,t)=>{var n;return e!==(null==(n=this.permissions)?void 0:n.canPublishSources[t])})||e.canSubscribeMetrics!==(null==(s=this.permissions)?void 0:s.canSubscribeMetrics);return this.permissions=e,c&&this.emit(cB.ParticipantPermissionsChanged,o),c}setIsSpeaking(e){e!==this.isSpeaking&&(this.isSpeaking=e,e&&(this.lastSpokeAt=new Date),this.emit(cB.IsSpeakingChanged,e))}setConnectionQuality(e){let t=this._connectionQuality;this._connectionQuality=function(e){switch(e){case eY.EXCELLENT:return lc.Excellent;case eY.GOOD:return lc.Good;case eY.POOR:return lc.Poor;case eY.LOST:return lc.Lost;default:return lc.Unknown}}(e),t!==this._connectionQuality&&this.emit(cB.ConnectionQualityChanged,this._connectionQuality)}setDisconnected(){var e,t;this.activeFuture&&(null==(t=(e=this.activeFuture).reject)||t.call(e,Error("Participant disconnected")),this.activeFuture=void 0)}setAudioContext(e){this.audioContext=e,this.audioTrackPublications.forEach(t=>ay(t.track)&&t.track.setAudioContext(e))}addTrackPublication(e){switch(e.on(cV.Muted,()=>{this.emit(cB.TrackMuted,e)}),e.on(cV.Unmuted,()=>{this.emit(cB.TrackUnmuted,e)}),e.track&&(e.track.sid=e.trackSid),this.trackPublications.set(e.trackSid,e),e.kind){case rW.Kind.Audio:this.audioTrackPublications.set(e.trackSid,e);break;case rW.Kind.Video:this.videoTrackPublications.set(e.trackSid,e)}}}class ow extends oC{constructor(e,t,n,i,r,a,s){super(e,t,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=te.NONE,this.e2eeStateMutex=new C,this.enabledPublishVideoCodecs=[],this.pendingAcks=new Map,this.pendingResponses=new Map,this.handleReconnecting=()=>{this.reconnectFuture||(this.reconnectFuture=new au)},this.handleReconnected=()=>{var e,t;null==(t=null==(e=this.reconnectFuture)?void 0:e.resolve)||t.call(e),this.reconnectFuture=void 0,this.updateTrackSubscriptionPermissions()},this.handleClosing=()=>{var e,t,n,i,r,a;this.reconnectFuture&&(this.reconnectFuture.promise.catch(e=>this.log.warn(e.message,this.logContext)),null==(t=null==(e=this.reconnectFuture)?void 0:e.reject)||t.call(e,Error("Got disconnected during reconnection attempt")),this.reconnectFuture=void 0),this.signalConnectedFuture&&(null==(i=(n=this.signalConnectedFuture).reject)||i.call(n,Error("Got disconnected without signal connected")),this.signalConnectedFuture=void 0),null==(a=null==(r=this.activeAgentFuture)?void 0:r.reject)||a.call(r,Error("Got disconnected without active agent present")),this.activeAgentFuture=void 0,this.firstActiveAgent=void 0},this.handleSignalConnected=e=>{var t,n;e.participant&&this.updateInfo(e.participant),this.signalConnectedFuture||(this.signalConnectedFuture=new au),null==(n=(t=this.signalConnectedFuture).resolve)||n.call(t)},this.handleSignalRequestResponse=e=>{let{requestId:t,reason:n,message:i}=e,r=this.pendingSignalRequests.get(t);if(r&&(n!==nA.OK&&r.reject(new rC(i,n)),this.pendingSignalRequests.delete(t)),"publishDataTrack"===e.request.case){let t;switch(e.reason){case nA.NOT_ALLOWED:t=oo.notAllowed(e.message);break;case nA.DUPLICATE_NAME:t=oo.duplicateName(e.message);break;case nA.INVALID_NAME:t=oo.invalidName(e.message);break;case nA.LIMIT_EXCEEDED:t=oo.limitReached(e.message);break;default:t=oo.unknown(e.reason,e.message);return}this.roomOutgoingDataTrackManager.receivedSfuPublishResponse(e.request.value.pubHandle,{type:"error",error:t})}},this.handleDataPacket=e=>{switch(e.value.case){case"rpcResponse":let t=e.value.value,n=null,i=null;"payload"===t.value.case?n=t.value.value:"error"===t.value.case&&(i=ss.fromProto(t.value.value)),this.handleIncomingRpcResponse(t.requestId,n,i);break;case"rpcAck":let r=e.value.value;this.handleIncomingRpcAck(r.requestId)}},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(e=>(function(e){var t,n,i;if(!e.participantSid&&!e.participantIdentity)throw Error("Invalid track permission, must provide at least one of participantIdentity and participantSid");return new nk({participantIdentity:null!=(t=e.participantIdentity)?t:"",participantSid:null!=(n=e.participantSid)?n:"",allTracks:null!=(i=e.allowAll)&&i,trackSids:e.allowedTrackSids||[]})})(e)))},this.onTrackUnmuted=e=>{this.onTrackMuted(e,e.isUpstreamPaused)},this.onTrackMuted=(e,t)=>{(void 0===t&&(t=!0),e.sid)?this.engine.updateMuteStatus(e.sid,t):this.log.error("could not update mute status for unpublished track",Object.assign(Object.assign({},this.logContext),rq(e)))},this.onTrackUpstreamPaused=e=>{this.log.debug("upstream paused",Object.assign(Object.assign({},this.logContext),rq(e))),this.onTrackMuted(e,!0)},this.onTrackUpstreamResumed=e=>{this.log.debug("upstream resumed",Object.assign(Object.assign({},this.logContext),rq(e))),this.onTrackMuted(e,e.isMuted)},this.onTrackFeatureUpdate=e=>{let t=this.audioTrackPublications.get(e.sid);t?this.engine.client.sendUpdateLocalAudioTrack(t.trackSid,t.getTrackFeatures()):this.log.warn("Could not update local audio track settings, missing publication for track ".concat(e.sid),this.logContext)},this.onTrackCpuConstrained=(e,t)=>{this.log.debug("track cpu constrained",Object.assign(Object.assign({}
2,this.logContext),rq(t))),this.emit(cB.LocalTrackCpuConstrained,e,t)},this.handleSubscribedQualityUpdate=e=>il(this,void 0,void 0,function*(){if(!(null==(o=this.roomOptions)?void 0:o.dynacast))return;let t=this.videoTrackPublications.get(e.trackSid);if(!t)return void this.log.warn("received subscribed quality update for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:e.trackSid}));if(!t.videoTrack)return;let n=yield t.videoTrack.setPublishingCodecs(e.subscribedCodecs);try{for(var i,r,a,s,o,c,l=!0,d=iu(n);!(i=(c=yield d.next()).done);l=!0)s=c.value,l=!1,rx(s)&&(this.log.debug("publish ".concat(s," for ").concat(t.videoTrack.sid),Object.assign(Object.assign({},this.logContext),rq(t))),yield this.publishAdditionalCodecForTrack(t.videoTrack,s,t.options))}catch(e){r={error:e}}finally{try{!l&&!i&&(a=d.return)&&(yield a.call(d))}finally{if(r)throw r.error}}}),this.handleLocalTrackUnpublished=e=>{let t=this.trackPublications.get(e.trackSid);t?this.unpublishTrack(t.track):this.log.warn("received unpublished event for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:e.trackSid}))},this.handleTrackEnded=e=>il(this,void 0,void 0,function*(){if(e.source===rW.Source.ScreenShare||e.source===rW.Source.ScreenShareAudio)this.log.debug("unpublishing local track due to TrackEnded",Object.assign(Object.assign({},this.logContext),rq(e))),this.unpublishTrack(e);else if(e.isUserProvided)yield e.mute();else if(aS(e)||aT(e))try{if(r4())try{let t=yield null==navigator?void 0:navigator.permissions.query({name:e.source===rW.Source.Camera?"camera":"microphone"});if(t&&"denied"===t.state)throw this.log.warn("user has revoked access to ".concat(e.source),Object.assign(Object.assign({},this.logContext),rq(e))),t.onchange=()=>{"denied"!==t.state&&(e.isMuted||e.restartTrack(),t.onchange=null)},Error("GetUserMedia Permission denied")}catch(e){}e.isMuted||(this.log.debug("track ended, attempting to use a different device",Object.assign(Object.assign({},this.logContext),rq(e))),aS(e)?yield e.restartTrack({deviceId:"default"}):yield e.restartTrack())}catch(t){this.log.warn("could not restart track, muting instead",Object.assign(Object.assign({},this.logContext),rq(e))),yield e.mute()}}),this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this.engine=n,this.roomOptions=i,this.setupEngine(n),this.activeDeviceMap=new Map([["audioinput","default"],["videoinput","default"],["audiooutput","default"]]),this.pendingSignalRequests=new Map,this.rpcHandlers=r,this.roomOutgoingDataStreamManager=a,this.roomOutgoingDataTrackManager=s}get lastCameraError(){return this.cameraError}get lastMicrophoneError(){return this.microphoneError}get isE2EEEnabled(){return this.encryptionType!==te.NONE}getTrackPublication(e){let t=super.getTrackPublication(e);if(t)return t}getTrackPublicationByName(e){let t=super.getTrackPublicationByName(e);if(t)return t}setupEngine(e){var t;this.engine=e,this.engine.on(cq.RemoteMute,(e,t)=>{let n=this.trackPublications.get(e);n&&n.track&&(t?n.mute():n.unmute())}),(null==(t=this.signalConnectedFuture)?void 0:t.isResolved)&&(this.signalConnectedFuture=void 0),this.engine.on(cq.Connected,this.handleReconnected).on(cq.SignalConnected,this.handleSignalConnected).on(cq.SignalRestarted,this.handleReconnected).on(cq.SignalResumed,this.handleReconnected).on(cq.Restarting,this.handleReconnecting).on(cq.Resuming,this.handleReconnecting).on(cq.LocalTrackUnpublished,this.handleLocalTrackUnpublished).on(cq.SubscribedQualityUpdate,this.handleSubscribedQualityUpdate).on(cq.Closing,this.handleClosing).on(cq.SignalRequestResponse,this.handleSignalRequestResponse).on(cq.DataPacketReceived,this.handleDataPacket)}setMetadata(e){return il(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({metadata:e})})}setName(e){return il(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({name:e})})}setAttributes(e){return il(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({attributes:e})})}requestMetadataUpdate(e){return il(this,arguments,void 0,function(e){var t=this;let{metadata:n,name:i,attributes:r}=e;return function*(){return new rc((e,a)=>il(t,void 0,void 0,function*(){var t,s;try{let o=!1,c=yield this.engine.client.sendUpdateLocalMetadata(null!=(t=null!=n?n:this.metadata)?t:"",null!=(s=null!=i?i:this.name)?s:"",r),l=performance.now();for(this.pendingSignalRequests.set(c,{resolve:e,reject:e=>{a(e),o=!0}
2,values:{name:i,metadata:n,attributes:r}});performance.now()-l<5e3&&!o;){if((!i||this.name===i)&&(!n||this.metadata===n)&&(!r||Object.entries(r).every(e=>{let[t,n]=e;return this.attributes[t]===n||""===n&&!this.attributes[t]}))){this.pendingSignalRequests.delete(c),e();return}yield r$(50)}a(new rC("Request to update local metadata timed out","TimeoutError"))}catch(e){e instanceof Error?a(e):a(Error(String(e)))}}))}()})}setCameraEnabled(e,t,n){return this.setTrackEnabled(rW.Source.Camera,e,t,n)}setMicrophoneEnabled(e,t,n){return this.setTrackEnabled(rW.Source.Microphone,e,t,n)}setScreenShareEnabled(e,t,n){return this.setTrackEnabled(rW.Source.ScreenShare,e,t,n)}setE2EEEnabled(e){return il(this,void 0,void 0,function*(){let t=yield this.e2eeStateMutex.lock();try{if(this.encryptionType=e?te.GCM:te.NONE,yield Promise.all(this.pendingPublishPromises.values()),0===this.trackPublications.size||Array.from(this.trackPublications.values()).every(t=>t.isEncrypted===e))return;yield this.republishAllTracks(void 0,!1)}finally{t()}})}setTrackEnabled(e,t,n,i){return il(this,void 0,void 0,function*(){this.log.debug("setTrackEnabled",Object.assign(Object.assign({},this.logContext),{source:e,enabled:t})),this.republishPromise&&(yield this.republishPromise);let r=this.getTrackPublication(e);if(t)if(r)yield r.unmute();else{let t;if(this.pendingPublishing.has(e)){let t=yield this.waitForPendingPublicationOfSource(e);return t||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e})),yield null==t?void 0:t.unmute(),t}this.pendingPublishing.add(e);try{switch(e){case rW.Source.Camera:t=yield this.createTracks({video:null==n||n});break;case rW.Source.Microphone:t=yield this.createTracks({audio:null==n||n});break;case rW.Source.ScreenShare:t=yield this.createScreenTracks(Object.assign({},n));break;default:throw new rb(e)}}catch(n){throw null==t||t.forEach(e=>{e.stop()}),n instanceof Error&&this.emit(cB.MediaDevicesError,n,rF(e)),this.pendingPublishing.delete(e),n}for(let i of t){let t=Object.assign(Object.assign({},this.roomOptions.publishDefaults),n);e===rW.Source.Microphone&&ay(i)&&t.preConnectBuffer&&(this.log.info("starting preconnect buffer for microphone",Object.assign({},this.logContext)),i.startPreConnectBuffer())}try{let e=[];for(let n of t)this.log.info("publishing track",Object.assign(Object.assign({},this.logContext),rq(n))),e.push(this.publishTrack(n,i));let n=yield Promise.all(e);[r]=n}catch(e){throw null==t||t.forEach(e=>{e.stop()}),e}finally{this.pendingPublishing.delete(e)}}else if(!(null==r?void 0:r.track)&&this.pendingPublishing.has(e)&&((r=yield this.waitForPendingPublicationOfSource(e))||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e}))),r&&r.track)if(e===rW.Source.ScreenShare){let e=[this.unpublishTrack(r.track)],t=this.getTrackPublication(rW.Source.ScreenShareAudio);t&&t.track&&e.push(this.unpublishTrack(t.track)),[r]=yield Promise.all(e)}else yield r.mute();return r})}enableCameraAndMicrophone(){return il(this,void 0,void 0,function*(){if(!(this.pendingPublishing.has(rW.Source.Camera)||this.pendingPublishing.has(rW.Source.Microphone))){this.pendingPublishing.add(rW.Source.Camera),this.pendingPublishing.add(rW.Source.Microphone);try{let e=yield this.createTracks({audio:!0,video:!0});yield Promise.all(e.map(e=>this.publishTrack(e)))}finally{this.pendingPublishing.delete(rW.Source.Camera),this.pendingPublishing.delete(rW.Source.Microphone)}}})}createTracks(e){return il(this,void 0,void 0,function*(){var t,n;null!=e||(e={});let i=rA(e,null==(t=this.roomOptions)?void 0:t.audioCaptureDefaults,null==(n=this.roomOptions)?void 0:n.videoCaptureDefaults);try{return(yield oS(i,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext})).map(e=>(ay(e)&&(this.microphoneError=void 0,e.setAudioContext(this.audioContext),e.source=rW.Source.Microphone,this.emit(cB.AudioStreamAcquired)),ak(e)&&(this.cameraError=void 0,e.source=rW.Source.Camera),e))}catch(t){throw t instanceof Error&&(e.audio&&(this.microphoneError=t),e.video&&(this.cameraError=t)),t}})}createScreenTracks(e){return il(this,void 0,void 0,function*(){var t,n,i;let r,a;
2if(void 0===e&&(e={}),void 0===navigator.mediaDevices.getDisplayMedia)throw new rv("getDisplayMedia not supported");void 0!==e.resolution||(null==(r=rd())?void 0:r.name)==="Safari"&&r.version.startsWith("17.")||(null==r?void 0:r.os)==="iOS"&&(null==r?void 0:r.osVersion)&&an(r.osVersion,"17")>=0||(e.resolution=rD.h1080fps30.resolution);let s=(a=null==(n=(t=e).video)||n,t.resolution&&t.resolution.width>0&&t.resolution.height>0&&(a="boolean"==typeof a?{}:a,a=r2()?Object.assign(Object.assign({},a),{width:{max:t.resolution.width},height:{max:t.resolution.height},frameRate:t.resolution.frameRate}):Object.assign(Object.assign({},a),{width:{ideal:t.resolution.width},height:{ideal:t.resolution.height},frameRate:t.resolution.frameRate})),{audio:null!=(i=t.audio)&&i,video:a,controller:t.controller,selfBrowserSurface:t.selfBrowserSurface,surfaceSwitching:t.surfaceSwitching,systemAudio:t.systemAudio,preferCurrentTab:t.preferCurrentTab}),o=yield navigator.mediaDevices.getDisplayMedia(s),c=o.getVideoTracks();if(0===c.length)throw new rb("no video track found");let l=new sR(c[0],void 0,!1,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});l.source=rW.Source.ScreenShare,e.contentHint&&(l.mediaStreamTrack.contentHint=e.contentHint);let d=[l];if(o.getAudioTracks().length>0){this.emit(cB.AudioStreamAcquired);let e=new sm(o.getAudioTracks()[0],void 0,!1,this.audioContext,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});e.source=rW.Source.ScreenShareAudio,d.push(e)}return d})}publishTrack(e,t){return il(this,void 0,void 0,function*(){return this.publishOrRepublishTrack(e,t)})}waitForNextEngineRestart(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15e3;return new Promise((t,n)=>{let i=()=>{clearTimeout(s),this.engine.off(cq.Restarted,r),this.engine.off(cq.Closing,a)},r=()=>{i(),t()},a=()=>{i(),n(Error("engine closed before restart completed"))},s=setTimeout(()=>{i(),n(Error("timed out waiting for engine restart"))},e);this.engine.once(cq.Restarted,r),this.engine.once(cq.Closing,a)})}publishOrRepublishTrack(e,t){return il(this,arguments,void 0,function(e,t){var n=this;let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function*(){var a,s;let o,c;if(aS(e)&&e.setAudioContext(n.audioContext),yield null==(a=n.reconnectFuture)?void 0:a.promise,n.republishPromise&&!i&&(yield n.republishPromise),ab(e)&&n.pendingPublishPromises.has(e)&&(yield n.pendingPublishPromises.get(e)),e instanceof MediaStreamTrack)o=e.getConstraints();else{let t;switch(o=e.constraints,e.source){case rW.Source.Microphone:t="audioinput";break;case rW.Source.Camera:t="videoinput"}t&&n.activeDeviceMap.has(t)&&(o=Object.assign(Object.assign({},o),{deviceId:n.activeDeviceMap.get(t)}))}if(e instanceof MediaStreamTrack)switch(e.kind){case"audio":e=new sm(e,o,!0,n.audioContext,{loggerName:n.roomOptions.loggerName,loggerContextCb:()=>n.logContext});break;case"video":e=new sR(e,o,!0,{loggerName:n.roomOptions.loggerName,loggerContextCb:()=>n.logContext});break;default:throw new rb("unsupported MediaStreamTrack kind ".concat(e.kind))}else e.updateLoggerOptions({loggerName:n.roomOptions.loggerName,loggerContextCb:()=>n.logContext});if(n.trackPublications.forEach(t=>{t.track&&t.track===e&&(c=t)}),c)return n.log.warn("track has already been published, skipping",Object.assign(Object.assign({},n.logContext),rq(c))),c;let l=Object.assign(Object.assign({},n.roomOptions.publishDefaults),t),d="channelCount"in e.mediaStreamTrack.getSettings()&&2===e.mediaStreamTrack.getSettings().channelCount||2===e.mediaStreamTrack.getConstraints().channelCount,u=null!=(s=l.forceStereo)?s:d;u&&(void 0===l.dtx&&n.log.info("Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.",Object.assign(Object.assign({},n.logContext),rq(e))),void 0===l.red&&n.log.info("Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work."),null!=l.dtx||(l.dtx=!1),null!=l.red||(l.red=!1)),!function(){let e=rd(),t="17.2";if(e)if("Safari"!==e.name&&"iOS"!==e.os)return!0;else if("iOS"===e.os&&e.osVersion&&an(e.osVersion,t)>=0)return!0;else if("Safari"===e.name&&an(e.version,t)>=0)return!0;else return!1}()&&n.roomOptions.e2ee&&(n.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({},n.logContext)),l.simulcast=!1),l.source&&(e.source=l.source);let h=new Promise((t,i)=>il(n,void 0,void 0,function*(){try{if(this.engine.client.currentState!==cZ.CONNECTED){this.log.debug("deferring track publication until signal is connected",Object.assign(Object.assign({},this.logContext),{track:rq(e)}));let n=!1,r=setTimeout(()=>{n=!0,e.stop(),i(new rS("publishing rejected as engine not connected within timeout",408))},15e3);if(yield this.waitUntilEngineConnected(),clearTimeout(r),n)return;let a=yield this.publish(e,l,u);t(a)}else try{let n=yield this.publish(e,l,u);t(n)}catch(e){i(e)}}catch(e){i(e)}}));n.pendingPublishPromises.set(e,h);try{return yield h}catch(a){if(!r&&a instanceof rT)return n.log.warn("negotiation due to track publish failed, retrying after reconnect",Object.assign(Object.assign({},n.logContext),{error:a}
2)),n.pendingPublishPromises.delete(e),yield n.waitForNextEngineRestart(),yield n.publishOrRepublishTrack(e,t,i,!0);throw a}finally{n.pendingPublishPromises.delete(e)}}()})}waitUntilEngineConnected(){return this.signalConnectedFuture||(this.signalConnectedFuture=new au),this.signalConnectedFuture.promise}hasPermissionsToPublish(e){if(!this.permissions)return this.log.warn("no permissions present for publishing track",Object.assign(Object.assign({},this.logContext),rq(e))),!1;let{canPublish:t,canPublishSources:n}=this.permissions;return!!(t&&(0===n.length||n.map(e=>(function(e){switch(e){case eK.CAMERA:return rW.Source.Camera;case eK.MICROPHONE:return rW.Source.Microphone;case eK.SCREEN_SHARE:return rW.Source.ScreenShare;case eK.SCREEN_SHARE_AUDIO:return rW.Source.ScreenShareAudio;default:return rW.Source.Unknown}})(e)).includes(e.source)))||(this.log.warn("insufficient permissions to publish",Object.assign(Object.assign({},this.logContext),rq(e))),!1)}publish(e,t,n){return il(this,void 0,void 0,function*(){var i,r,a,s,o,c,l,d,u,h;let p,m;if(!this.hasPermissionsToPublish(e))throw new rS("failed to publish track, insufficient permissions",403);Array.from(this.trackPublications.values()).find(t=>ab(e)&&t.source===e.source)&&e.source!==rW.Source.Unknown&&this.log.info("publishing a second track with the same source: ".concat(e.source),Object.assign(Object.assign({},this.logContext),rq(e))),t.stopMicTrackOnMute&&ay(e)&&(e.stopOnMute=!0),e.source===rW.Source.ScreenShare&&r0()&&(t.simulcast=!1),"av1"===t.videoCodec&&!function(){if(!("getCapabilities"in RTCRtpSender)||r2()||r0())return!1;let e=RTCRtpSender.getCapabilities("video"),t=!1;if(e){for(let n of e.codecs)if("video/av1"===n.mimeType.toLowerCase()){t=!0;break}}return t}()&&(t.videoCodec=void 0),"vp9"===t.videoCodec&&!function(){if(!("getCapabilities"in RTCRtpSender)||r0())return!1;if(r2()){let e=rd();if((null==e?void 0:e.version)&&0>an(e.version,"16")||(null==e?void 0:e.os)==="iOS"&&(null==e?void 0:e.osVersion)&&0>an(e.osVersion,"16"))return!1}let e=RTCRtpSender.getCapabilities("video"),t=!1;if(e){for(let n of e.codecs)if("video/vp9"===n.mimeType.toLowerCase()){t=!0;break}}return t}()&&(t.videoCodec=void 0),void 0===t.videoCodec&&(t.videoCodec="vp8"),this.enabledPublishVideoCodecs.length>0&&!this.enabledPublishVideoCodecs.some(e=>t.videoCodec===rB(e.mime))&&(t.videoCodec=rB(this.enabledPublishVideoCodecs[0].mime));let f=t.videoCodec;e.on(cV.Muted,this.onTrackMuted),e.on(cV.Unmuted,this.onTrackUnmuted),e.on(cV.Ended,this.handleTrackEnded),e.on(cV.UpstreamPaused,this.onTrackUpstreamPaused),e.on(cV.UpstreamResumed,this.onTrackUpstreamResumed),e.on(cV.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate);let g=[],v=!(null==(i=t.dtx)||i),b=e.getSourceTrackSettings();b.autoGainControl&&g.push(e1.TF_AUTO_GAIN_CONTROL),b.echoCancellation&&g.push(e1.TF_ECHO_CANCELLATION),b.noiseSuppression&&g.push(e1.TF_NOISE_SUPPRESSION),b.channelCount&&b.channelCount>1&&g.push(e1.TF_STEREO),v&&g.push(e1.TF_NO_DTX),aS(e)&&e.hasPreConnectBuffer&&g.push(e1.TF_PRECONNECT_BUFFER);let y=new tK({cid:e.mediaStreamTrack.id,name:t.name,type:rW.kindToProto(e.kind),muted:e.isMuted,source:rW.sourceToProto(e.source),disableDtx:v,encryption:this.encryptionType,stereo:n,disableRed:this.isE2EEEnabled||!(null==(r=t.red)||r),stream:null==t?void 0:t.stream,backupCodecPolicy:null==t?void 0:t.backupCodecPolicy,audioFeatures:g});if(e.kind===rW.Kind.Video){let n={width:0,height:0};try{n=yield e.waitForDimensions()}catch(i){let t=null!=(s=null==(a=this.roomOptions.videoCaptureDefaults)?void 0:a.resolution)?s:rO.h720.resolution;n={width:t.width,height:t.height},this.log.error("could not determine track dimensions, using defaults",Object.assign(Object.assign(Object.assign({},this.logContext),rq(e)),{dims:n}))}y.width=n.width,y.height=n.height,aT(e)&&(rX(f)&&(e.source===rW.Source.ScreenShare&&(t.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),rq(e))))),t.scalabilityMode=null!=(o=t.scalabilityMode)?o:"L3T3_KEY"),y.simulcastCodecs=[new tJ({codec:f,cid:e.mediaStreamTrack.id})],!0===t.backupCodec&&(t.backupCodec={codec:"vp8"}
2),t.backupCodec&&f!==t.backupCodec.codec&&y.encryption===te.NONE&&(this.roomOptions.dynacast||(this.roomOptions.dynacast=!0),y.simulcastCodecs.push(new tJ({codec:t.backupCodec.codec,cid:""})))),p=sT(e.source===rW.Source.ScreenShare,y.width,y.height,t),y.layers=sx(y.width,y.height,p,rX(t.videoCodec))}else e.kind===rW.Kind.Audio&&(p=[{maxBitrate:null==(c=t.audioPreset)?void 0:c.maxBitrate,priority:null!=(d=null==(l=t.audioPreset)?void 0:l.priority)?d:"high",networkPriority:null!=(h=null==(u=t.audioPreset)?void 0:u.priority)?h:"high"}]);if(!this.engine||this.engine.isClosed)throw new rk("cannot publish track when not connected");let k=()=>il(this,void 0,void 0,function*(){var n,i;if(!this.engine.pcManager)throw new rk("pcManager is not ready");if(e.sender=yield this.engine.createSender(e,t,p),this.emit(cB.LocalSenderCreated,e.sender,e),aT(e)&&(null!=t.degradationPreference||(t.degradationPreference=e.source===rW.Source.ScreenShare||e.constraints.height&&ap(e.constraints.height)>=1080?"maintain-resolution":"balanced"),e.setDegradationPreference(t.degradationPreference)),p)if(r0()&&e.kind===rW.Kind.Audio){let t;for(let n of this.engine.pcManager.publisher.getTransceivers())if(n.sender===e.sender){t=n;break}t&&this.engine.pcManager.publisher.setTrackCodecBitrate({transceiver:t,codec:"opus",maxbr:(null==(n=p[0])?void 0:n.maxBitrate)?p[0].maxBitrate/1e3:0})}else e.codec&&rX(e.codec)&&(null==(i=p[0])?void 0:i.maxBitrate)&&this.engine.pcManager.publisher.setTrackCodecBitrate({cid:y.cid,codec:e.codec,maxbr:p[0].maxBitrate/1e3});yield this.engine.negotiate()}),T=new Promise((t,n)=>il(this,void 0,void 0,function*(){var i;try{m=yield this.engine.addTrack(y),t(m)}catch(t){if(e.sender&&(null==(i=this.engine.pcManager)?void 0:i.publisher)){try{this.engine.pcManager.publisher.removeTrack(e.sender)}catch(e){this.log.error(e,this.logContext)}yield this.engine.negotiate().catch(t=>{this.log.error("failed to negotiate after removing track due to failed add track request",Object.assign(Object.assign(Object.assign({},this.logContext),rq(e)),{error:t}))})}n(t)}}));if(this.enabledPublishVideoCodecs.length>0)m=(yield Promise.all([T,k()]))[0];else{let n;if((m=yield T).codecs.forEach(e=>{void 0===n&&(n=e.mimeType)}),n&&e.kind===rW.Kind.Video){let i=rB(n);i!==f&&(this.log.debug("falling back to server selected codec",Object.assign(Object.assign(Object.assign({},this.logContext),rq(e)),{codec:i})),t.videoCodec=i,p=sT(e.source===rW.Source.ScreenShare,y.width,y.height,t))}yield k()}let S=new oT(e.kind,m,e,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});if(S.on(cV.CpuConstrained,e=>this.onTrackCpuConstrained(e,S)),S.options=t,e.sid=m.sid,aT(e)&&(e.publishOptions=t,y.width&&y.height&&(e.lastEncodedDimensions={width:y.width,height:y.height})),this.log.debug("publishing ".concat(e.kind," with encodings"),Object.assign(Object.assign({},this.logContext),{encodings:p,trackInfo:m})),aT(e)?e.startMonitor(this.engine.client):aS(e)&&e.startMonitor(),this.addTrackPublication(S),this.emit(cB.LocalTrackPublished,S),aS(e)&&m.audioFeatures.includes(e1.TF_PRECONNECT_BUFFER)){let t=e.getPreConnectBuffer(),n=e.getPreConnectBufferMimeType();this.on(cB.LocalTrackSubscribed,t=>{if(t.trackSid===m.sid){if(!e.hasPreConnectBuffer)return void this.log.warn("subscribe event came to late, buffer already closed",this.logContext);this.log.debug("finished recording preconnect buffer",Object.assign(Object.assign({},this.logContext),rq(e))),e.stopPreConnectBuffer()}}),t&&new Promise((i,r)=>il(this,void 0,void 0,function*(){try{this.log.debug("waiting for agent",Object.assign(Object.assign({},this.logContext),rq(e)));let m=setTimeout(()=>{r(Error("agent not active within 10 seconds"))},1e4),f=yield this.waitUntilActiveAgentPresent();clearTimeout(m),this.log.debug("sending preconnect buffer",Object.assign(Object.assign({},this.logContext),rq(e)));let g=yield this.streamBytes({name:"preconnect-buffer",mimeType:n,topic:"lk.agent.pre-connect-audio-buffer",destinationIdentities:[f.identity],attributes:{trackId:S.trackSid,sampleRate:String(null!=(l=b.sampleRate)?l:"48000"),channels:String(null!=(d=b.channelCount)?d:"1")}});try{for(var a,s,o,c,l,d,u,h=!0,p=iu(t);!(a=(u=yield p.next()).done);h=!0)c=u.value,h=!1,yield g.write(c)}catch(e){s={error:e}}
2finally{try{!h&&!a&&(o=p.return)&&(yield o.call(p))}finally{if(s)throw s.error}}yield g.close(),i()}catch(e){r(e)}})).then(()=>{this.log.debug("preconnect buffer sent successfully",Object.assign(Object.assign({},this.logContext),rq(e)))}).catch(t=>{this.log.error("error sending preconnect buffer",Object.assign(Object.assign(Object.assign({},this.logContext),rq(e)),{error:t}))})}return S})}get isLocal(){return!0}publishAdditionalCodecForTrack(e,t,n){return il(this,void 0,void 0,function*(){var i;let r;if(this.encryptionType!==te.NONE)return;if(this.trackPublications.forEach(t=>{t.track&&t.track===e&&(r=t)}),!r)throw new rb("track is not published");if(!aT(e))throw new rb("track is not a video track");let a=Object.assign(Object.assign({},null==(i=this.roomOptions)?void 0:i.publishDefaults),n),s=sS(e,t,a);if(!s)return void this.log.info("backup codec has been disabled, ignoring request to add additional codec for track",Object.assign(Object.assign({},this.logContext),rq(e)));let o=e.addSimulcastTrack(t,s);if(!o)return;let c=new tK({cid:o.mediaStreamTrack.id,type:rW.kindToProto(e.kind),muted:e.isMuted,source:rW.sourceToProto(e.source),sid:e.sid,simulcastCodecs:[{codec:a.videoCodec,cid:o.mediaStreamTrack.id}]});if(c.layers=sx(c.width,c.height,s),!this.engine||this.engine.isClosed)throw new rk("cannot publish track when not connected");let l=()=>il(this,void 0,void 0,function*(){yield this.engine.createSimulcastSender(e,o,a,s),yield this.engine.negotiate()}),d=(yield Promise.all([this.engine.addTrack(c),l()]))[0];this.log.debug("published ".concat(t," for track ").concat(e.sid),Object.assign(Object.assign({},this.logContext),{encodings:s,trackInfo:d}))})}unpublishTrack(e,t){return il(this,void 0,void 0,function*(){var n,i;if(ab(e)){let t=this.pendingPublishPromises.get(e);t&&(this.log.info("awaiting publish promise before attempting to unpublish",Object.assign(Object.assign({},this.logContext),rq(e))),yield t)}let r=this.getPublicationForTrack(e),a=r?rq(r):void 0;if(this.log.debug("unpublishing track",Object.assign(Object.assign({},this.logContext),a)),!r||!r.track)return void this.log.warn("track was not unpublished because no publication was found",Object.assign(Object.assign({},this.logContext),a));(e=r.track).off(cV.Muted,this.onTrackMuted),e.off(cV.Unmuted,this.onTrackUnmuted),e.off(cV.Ended,this.handleTrackEnded),e.off(cV.UpstreamPaused,this.onTrackUpstreamPaused),e.off(cV.UpstreamResumed,this.onTrackUpstreamResumed),e.off(cV.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate),void 0===t&&(t=null==(i=null==(n=this.roomOptions)?void 0:n.stopLocalTrackOnUnpublish)||i),t?e.stop():e.stopMonitor();let s=!1,o=e.sender;if(e.sender=void 0,this.engine.pcManager&&this.engine.pcManager.currentState<c4.FAILED&&o)try{for(let e of this.engine.pcManager.publisher.getTransceivers())e.sender===o&&(e.direction="inactive",s=!0);try{s=this.engine.removeTrack(o)}catch(e){this.log.warn(e,this.logContext),s=!0}if(aT(e)){for(let[,t]of e.simulcastCodecs)if(t.sender){try{s=this.engine.removeTrack(t.sender)}catch(e){this.log.warn(e,this.logContext),s=!0}t.sender=void 0}e.simulcastCodecs.clear()}}catch(e){this.log.warn("failed to unpublish track",Object.assign(Object.assign(Object.assign({},this.logContext),a),{error:e}))}switch(this.trackPublications.delete(r.trackSid),r.kind){case rW.Kind.Audio:this.audioTrackPublications.delete(r.trackSid);break;case rW.Kind.Video:this.videoTrackPublications.delete(r.trackSid)}return this.emit(cB.LocalTrackUnpublished,r),r.setTrack(void 0),s&&(yield this.engine.negotiate()),r})}unpublishTracks(e){return il(this,void 0,void 0,function*(){return(yield Promise.all(e.map(e=>this.unpublishTrack(e)))).filter(e=>!!e)})}republishAllTracks(e){return il(this,arguments,void 0,function(e){var t=this;let n=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return function*(){t.republishPromise&&(yield t.republishPromise),t.republishPromise=new rc((i,r)=>il(t,void 0,void 0,function*(){try{let t=[];this.trackPublications.forEach(n=>{n.track&&(e&&(n.options=Object.assign(Object.assign({},n.options),e)),t.push(n))}),yield Promise.all(t.map(e=>il(this,void 0,void 0,function*(){let t=e.track;yield this.unpublishTrack(t,!1),n&&!t.isMuted&&t.source!==rW.Source.ScreenShare&&t.source!==rW.Source.ScreenShareAudio&&(aS(t)||aT(t))&&!t.isUserProvided&&(this.log.debug("restarting existing track",Object.assign(Object.assign({},this.logContext),{track:e.trackSid})),yield t.restartTrack()),yield this.publishOrRepublishTrack(t,e.options,!0)}))),i()}catch(e){e instanceof Error?r(e):r(Error(String(e)))}finally{this.republishPromise=void 0}})),yield t.republishPromise}()})}publishData(e){return il(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){let i=n.reliable?c9.RELIABLE:c9.LOSSY,r=n.reliable?tc.RELIABLE:tc.LOSSY,a=n.destinationIdentities,s=n.topic,o=new to({kind:r,value:{case:"user",value:new tp({participantIdentity:t.identity,payload:e,destinationIdentities:a,topic:s})}});yield t.engine.sendDataPacket(o,i)}()})}publishDtmf(e,t){return il(this,void 0,void 0,function*(){let n=new to({kind:tc.RELIABLE,value:{case:"sipDtmf",value:new tm({code:e,digit:t})}});yield this.engine.sendDataPacket(n,c9.RELIABLE)})}sendChatMessage(e,t){return il(this,void 0,void 0,function*(){let n={id:crypto.randomUUID(),message:e,timestamp:Date.now(),attachedFiles:null==t?void 0:t.attachments}
2,i=new to({value:{case:"chatMessage",value:new tv(Object.assign(Object.assign({},n),{timestamp:V.parse(n.timestamp)}))}});return yield this.engine.sendDataPacket(i,c9.RELIABLE),this.emit(cB.ChatMessage,n),n})}editChatMessage(e,t){return il(this,void 0,void 0,function*(){let n=Object.assign(Object.assign({},t),{message:e,editTimestamp:Date.now()}),i=new to({value:{case:"chatMessage",value:new tv(Object.assign(Object.assign({},n),{timestamp:V.parse(n.timestamp),editTimestamp:V.parse(n.editTimestamp)}))}});return yield this.engine.sendDataPacket(i,c9.RELIABLE),this.emit(cB.ChatMessage,n),n})}sendText(e,t){return il(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendText(e,t)})}streamText(e){return il(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.streamText(e)})}sendFile(e,t){return il(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendFile(e,t)})}streamBytes(e){return il(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.streamBytes(e)})}performRpc(e){let{destinationIdentity:t,method:n,payload:i,responseTimeout:r=15e3}=e;return new rc((e,a)=>il(this,void 0,void 0,function*(){var s,o,c,l;if(so(i)>15360)return void a(ss.builtIn("REQUEST_PAYLOAD_TOO_LARGE"));if((null==(o=null==(s=this.engine.latestJoinResponse)?void 0:s.serverInfo)?void 0:o.version)&&0>an(null==(l=null==(c=this.engine.latestJoinResponse)?void 0:c.serverInfo)?void 0:l.version,"1.8.0"))return void a(ss.builtIn("UNSUPPORTED_SERVER"));let d=Math.max(r,8e3),u=crypto.randomUUID();yield this.publishRpcRequest(t,u,n,i,d);let h=setTimeout(()=>{this.pendingAcks.delete(u),a(ss.builtIn("CONNECTION_TIMEOUT")),this.pendingResponses.delete(u),clearTimeout(p)},7e3);this.pendingAcks.set(u,{resolve:()=>{clearTimeout(h)},participantIdentity:t});let p=setTimeout(()=>{this.pendingResponses.delete(u),a(ss.builtIn("RESPONSE_TIMEOUT"))},r);this.pendingResponses.set(u,{resolve:(t,n)=>{clearTimeout(p),this.pendingAcks.has(u)&&(this.log.warn("RPC response received before ack",u),this.pendingAcks.delete(u),clearTimeout(h)),n?a(n):e(null!=t?t:"")},participantIdentity:t})}))}registerRpcMethod(e,t){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,t)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}setTrackSubscriptionPermissions(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.participantTrackPermissions=t,this.allParticipantsAllowedToSubscribe=e,this.engine.client.isDisconnected||this.updateTrackSubscriptionPermissions()}handleIncomingRpcAck(e){let t=this.pendingAcks.get(e);t?(t.resolve(),this.pendingAcks.delete(e)):console.error("Ack received for unexpected RPC request",e)}handleIncomingRpcResponse(e,t,n){let i=this.pendingResponses.get(e);i?(i.resolve(t,n),this.pendingResponses.delete(e)):console.error("Response received for unexpected RPC request",e)}publishRpcRequest(e,t,n,i,r){return il(this,void 0,void 0,function*(){let a=new to({destinationIdentities:[e],kind:tc.RELIABLE,value:{case:"rpcRequest",value:new tb({id:t,method:n,payload:i,responseTimeoutMs:r,version:1})}});yield this.engine.sendDataPacket(a,c9.RELIABLE)})}handleParticipantDisconnected(e){for(let[t,{participantIdentity:n}]of this.pendingAcks)n===e&&this.pendingAcks.delete(t);for(let[t,{participantIdentity:n,resolve:i}]of this.pendingResponses)n===e&&(i(null,ss.builtIn("RECIPIENT_DISCONNECTED")),this.pendingResponses.delete(t))}setEnabledPublishCodecs(e){this.enabledPublishVideoCodecs=e.filter(e=>"video"===e.mime.split("/")[0].toLowerCase())}updateInfo(e){return!!super.updateInfo(e)&&(e.tracks.forEach(e=>{var t,n;let i=this.trackPublications.get(e.sid);if(i){let r=i.isMuted||null!=(n=null==(t=i.track)?void 0:t.isUpstreamPaused)&&n;r!==e.muted&&(this.log.debug("updating server mute state after reconcile",Object.assign(Object.assign(Object.assign({},this.logContext),rq(i)),{mutedOnServer:r})),this.engine.client.sendMuteTrack(e.sid,r))}}),!0)}setActiveAgent(e){var t,n,i,r;this.firstActiveAgent=e,e&&!this.firstActiveAgent&&(this.firstActiveAgent=e),e?null==(n=null==(t=this.activeAgentFuture)?void 0:t.resolve)||n.call(t,e):null==(r=null==(i=this.activeAgentFuture)?void 0:i.reject)||r.call(i,Error("Agent disconnected")),this.activeAgentFuture=void 0}waitUntilActiveAgentPresent(){return this.firstActiveAgent?Promise.resolve(this.firstActiveAgent):(this.activeAgentFuture||(this.activeAgentFuture=new au),this.activeAgentFuture.promise)}getPublicationForTrack(e){let t;return this.trackPublications.forEach(n=>{let i=n.track;i&&(e instanceof MediaStreamTrack?(aS(i)||aT(i))&&i.mediaStreamTrack===e&&(t=n):e===i&&(t=n))}),t}waitForPendingPublicationOfSource(e){return il(this,void 0,void 0,function*(){let t=Date.now();for(;Date.now()<t+1e4;
2){let t=Array.from(this.pendingPublishPromises.entries()).find(t=>{let[n]=t;return n.source===e});if(t)return t[1];yield r$(20)}})}publishDataTrack(e){return il(this,void 0,void 0,function*(){let t=new od(e,this.roomOutgoingDataTrackManager);return yield t.publish(),t})}}class oE extends DOMException{constructor(e,t){super(e,"AbortError"),this.reason=t}}class oP extends Map{constructor(){super(...arguments),this.pending=new Map}set(e,t){var n,i;super.set(e,t);let r=null==(n=this.pending)?void 0:n.get(e);if(r){for(let e of r)e.isResolved||null==(i=e.resolve)||i.call(e,t);this.pending.delete(e)}return this}get[Symbol.toStringTag](){return"DeferrableMap"}getDeferred(e,t){return il(this,void 0,void 0,function*(){let n=this.get(e);if(void 0!==n)return n;if(null==t?void 0:t.aborted)throw new oE("The operation was aborted.",t.reason);let i=new au(void 0,()=>{let t=this.pending.get(e);if(!t)return;let n=t.indexOf(i);-1!==n&&t.splice(n,1),0===t.length&&this.pending.delete(e)}),r=this.pending.get(e);if(r?r.push(i):this.pending.set(e,[i]),t){let e=()=>{var e;i.isResolved||null==(e=i.reject)||e.call(i,new oE("The operation was aborted.",t.reason))};t.addEventListener("abort",e,{once:!0}),i.promise.finally(()=>{t.removeEventListener("abort",e)})}return i.promise})}}class oR extends ok{constructor(e,t,n,i){super(e,t.sid,t.name,i),this.track=void 0,this.allowed=!0,this.requestedDisabled=void 0,this.visible=!0,this.handleEnded=e=>{this.setTrack(void 0),this.emit(cV.Ended,e)},this.handleVisibilityChange=e=>{this.log.debug("adaptivestream video visibility ".concat(this.trackSid,", visible=").concat(e),this.logContext),this.visible=e,this.emitTrackUpdate()},this.handleVideoDimensionsChange=e=>{this.log.debug("adaptivestream video dimensions ".concat(e.width,"x").concat(e.height),this.logContext),this.videoDimensionsAdaptiveStream=e,this.emitTrackUpdate()},this.subscribed=n,this.updateInfo(t)}setSubscribed(e){let t=this.subscriptionStatus,n=this.permissionStatus;this.subscribed=e,e&&(this.allowed=!0);let i=new t7({trackSids:[this.trackSid],subscribe:this.subscribed,participantTracks:[new tS({participantSid:"",trackSids:[this.trackSid]})]});this.emit(cV.UpdateSubscription,i),this.emitSubscriptionUpdateIfChanged(t),this.emitPermissionUpdateIfChanged(n)}get subscriptionStatus(){return!1===this.subscribed?ok.SubscriptionStatus.Unsubscribed:super.isSubscribed?ok.SubscriptionStatus.Subscribed:ok.SubscriptionStatus.Desired}get permissionStatus(){return this.allowed?ok.PermissionStatus.Allowed:ok.PermissionStatus.NotAllowed}get isSubscribed(){return!1!==this.subscribed&&super.isSubscribed}get isDesired(){return!1!==this.subscribed}get isEnabled(){return void 0!==this.requestedDisabled?!this.requestedDisabled:!this.isAdaptiveStream||this.visible}get isLocal(){return!1}setEnabled(e){this.isManualOperationAllowed()&&!e!==this.requestedDisabled&&(this.requestedDisabled=!e,this.emitTrackUpdate())}setVideoQuality(e){this.isManualOperationAllowed()&&this.requestedMaxQuality!==e&&(this.requestedMaxQuality=e,this.requestedVideoDimensions=void 0,this.emitTrackUpdate())}setVideoDimensions(e){var t,n;this.isManualOperationAllowed()&&((null==(t=this.requestedVideoDimensions)?void 0:t.width)!==e.width||(null==(n=this.requestedVideoDimensions)?void 0:n.height)!==e.height)&&(aw(this.track)&&(this.requestedVideoDimensions=e),this.requestedMaxQuality=void 0,this.emitTrackUpdate())}setVideoFPS(e){this.isManualOperationAllowed()&&aw(this.track)&&this.fps!==e&&(this.fps=e,this.emitTrackUpdate())}get videoQuality(){var e;return null!=(e=this.requestedMaxQuality)?e:cW.HIGH}setTrack(e){let t=this.subscriptionStatus,n=this.permissionStatus,i=this.track;i!==e&&(i&&(i.off(cV.VideoDimensionsChanged,this.handleVideoDimensionsChange),i.off(cV.VisibilityChanged,this.handleVisibilityChange),i.off(cV.Ended,this.handleEnded),i.detach(),i.stopMonitor(),this.emit(cV.Unsubscribed,i)),super.setTrack(e),e&&(e.sid=this.trackSid,e.on(cV.VideoDimensionsChanged,this.handleVideoDimensionsChange),e.on(cV.VisibilityChanged,this.handleVisibilityChange),e.on(cV.Ended,this.handleEnded),this.emit(cV.Subscribed,e)),this.emitPermissionUpdateIfChanged(n),this.emitSubscriptionUpdateIfChanged(t))}setAllowed(e){let t=this.subscriptionStatus,n=this.permissionStatus;this.allowed=e,this.emitPermissionUpdateIfChanged(n),this.emitSubscriptionUpdateIfChanged(t)}
2setSubscriptionError(e){this.emit(cV.SubscriptionFailed,e)}updateInfo(e){super.updateInfo(e);let t=this.metadataMuted;this.metadataMuted=e.muted,this.track?this.track.setMuted(e.muted):t!==e.muted&&this.emit(e.muted?cV.Muted:cV.Unmuted)}emitSubscriptionUpdateIfChanged(e){let t=this.subscriptionStatus;e!==t&&this.emit(cV.SubscriptionStatusChanged,t,e)}emitPermissionUpdateIfChanged(e){this.permissionStatus!==e&&this.emit(cV.SubscriptionPermissionChanged,this.permissionStatus,e)}isManualOperationAllowed(){return!!this.isDesired||(this.log.warn("cannot update track settings when not subscribed",this.logContext),!1)}get isAdaptiveStream(){return aw(this.track)&&this.track.isAdaptiveStream}emitTrackUpdate(){let e=new nn({trackSids:[this.trackSid],disabled:!this.isEnabled,fps:this.fps});if(this.kind===rW.Kind.Video){let r=this.requestedVideoDimensions;if(void 0!==this.videoDimensionsAdaptiveStream)if(r)rH(this.videoDimensionsAdaptiveStream,r)&&(this.log.debug("using adaptive stream dimensions instead of requested",Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),r=this.videoDimensionsAdaptiveStream);else if(void 0!==this.requestedMaxQuality&&this.trackInfo){var t,n,i;let e=(t=this.trackInfo,n=this.requestedMaxQuality,null==(i=t.layers)?void 0:i.find(e=>e.quality===n));e&&rH(this.videoDimensionsAdaptiveStream,e)&&(this.log.debug("using adaptive stream dimensions instead of max quality layer",Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),r=this.videoDimensionsAdaptiveStream)}else this.log.debug("using adaptive stream dimensions",Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),r=this.videoDimensionsAdaptiveStream;r?(e.width=Math.ceil(r.width),e.height=Math.ceil(r.height)):void 0!==this.requestedMaxQuality?(this.log.debug("using requested max quality",Object.assign(Object.assign({},this.logContext),{quality:this.requestedMaxQuality})),e.quality=this.requestedMaxQuality):(this.log.debug("using default quality",Object.assign(Object.assign({},this.logContext),{quality:cW.HIGH})),e.quality=cW.HIGH)}this.emit(cV.UpdateSettings,e)}}class oI extends oC{static fromParticipantInfo(e,t,n,i){return new oI(e,t.sid,t.identity,t.name,t.metadata,t.attributes,n,t.kind,t.dataTracks.map(e=>new s3(aV(e),i,{publisherIdentity:t.identity})))}get logContext(){return Object.assign(Object.assign({},super.logContext),{remoteParticipantID:this.sid,remoteParticipant:this.identity})}constructor(e,t,n,i,r,a,s){let o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:e8.STANDARD,c=arguments.length>8&&void 0!==arguments[8]?arguments[8]:[];super(t,n||"",i,r,a,s,o),this.signalClient=e,this.trackPublications=new Map,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.dataTracks=new oP(c.map(e=>[e.info.name,e])),this.volumeMap=new Map}addTrackPublication(e){super.addTrackPublication(e),e.on(cV.UpdateSettings,t=>{this.log.debug("send update settings",Object.assign(Object.assign(Object.assign({},this.logContext),rq(e)),{settings:t})),this.signalClient.sendUpdateTrackSettings(t)}),e.on(cV.UpdateSubscription,e=>{e.participantTracks.forEach(e=>{e.participantSid=this.sid}),this.signalClient.sendUpdateSubscription(e)}),e.on(cV.SubscriptionPermissionChanged,t=>{this.emit(cB.TrackSubscriptionPermissionChanged,e,t)}),e.on(cV.SubscriptionStatusChanged,t=>{this.emit(cB.TrackSubscriptionStatusChanged,e,t)}),e.on(cV.Subscribed,t=>{this.emit(cB.TrackSubscribed,t,e)}),e.on(cV.Unsubscribed,t=>{this.emit(cB.TrackUnsubscribed,t,e)}),e.on(cV.SubscriptionFailed,t=>{this.emit(cB.TrackSubscriptionFailed,e.trackSid,t)})}getTrackPublication(e){let t=super.getTrackPublication(e);if(t)return t}getTrackPublicationByName(e){let t=super.getTrackPublicationByName(e);if(t)return t}setVolume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:rW.Source.Microphone;this.volumeMap.set(t,e);let n=this.getTrackPublication(t);n&&n.track&&n.track.setVolume(e)}getVolume(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:rW.Source.Microphone,t=this.getTrackPublication(e);return t&&t.track?t.track.getVolume():this.volumeMap.get(e)}addSubscribedMediaTrack(e,t,n,i,r,a){let s,o=this.getTrackPublicationBySid(t);if(o||t.startsWith("TR")||this.trackPublications.forEach(t=>{o||e.kind!==t.kind.toString()||(o=t)}),!o){if(0===a){this.log.error("could not find published track",Object.assign(Object.assign({},this.logContext),{trackSid:t}
2)),this.emit(cB.TrackSubscriptionFailed,t);return}void 0===a&&(a=20),setTimeout(()=>{this.addSubscribedMediaTrack(e,t,n,i,r,a-1)},150);return}if("ended"===e.readyState){this.log.error("unable to subscribe because MediaStreamTrack is ended. Do not call MediaStreamTrack.stop()",Object.assign(Object.assign({},this.logContext),rq(o))),this.emit(cB.TrackSubscriptionFailed,t);return}return(s="video"===e.kind?new og(e,t,i,r):new of(e,t,i,this.audioContext,this.audioOutput)).source=o.source,s.isMuted=o.isMuted,s.setMediaStream(n),s.start(),o.setTrack(s),this.volumeMap.has(o.source)&&aC(s)&&ay(s)&&s.setVolume(this.volumeMap.get(o.source)),o}get hasMetadata(){return!!this.participantInfo}getTrackPublicationBySid(e){return this.trackPublications.get(e)}updateInfo(e){if(!super.updateInfo(e))return!1;let t=new Map,n=new Map;return e.tracks.forEach(e=>{var i,r;let a=this.getTrackPublicationBySid(e.sid);if(a)a.updateInfo(e);else{let t=rW.kindFromProto(e.type);if(!t)return;(a=new oR(t,e,null==(i=this.signalClient.connectOptions)?void 0:i.autoSubscribe,{loggerContextCb:()=>this.logContext,loggerName:null==(r=this.loggerOptions)?void 0:r.loggerName})).updateInfo(e),n.set(e.sid,a);let s=Array.from(this.trackPublications.values()).find(e=>e.source===(null==a?void 0:a.source));s&&a.source!==rW.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:rq(s),newTrack:rq(a)})),this.addTrackPublication(a)}t.set(e.sid,a)}),this.trackPublications.forEach(e=>{t.has(e.trackSid)||(this.log.trace("detected removed track on remote participant, unpublishing",Object.assign(Object.assign({},this.logContext),rq(e))),this.unpublishTrack(e.trackSid,!0))}),n.forEach(e=>{this.emit(cB.TrackPublished,e)}),!0}unpublishTrack(e,t){let n=this.trackPublications.get(e);if(!n)return;let{track:i}=n;switch(i&&(i.stop(),n.setTrack(void 0)),this.trackPublications.delete(e),n.kind){case rW.Kind.Audio:this.audioTrackPublications.delete(e);break;case rW.Kind.Video:this.videoTrackPublications.delete(e)}t&&this.emit(cB.TrackUnpublished,n)}setAudioOutput(e){return il(this,void 0,void 0,function*(){this.audioOutput=e;let t=[];this.audioTrackPublications.forEach(n=>{var i;ay(n.track)&&aC(n.track)&&t.push(n.track.setSinkId(null!=(i=e.deviceId)?i:"default"))}),yield Promise.all(t)})}addRemoteDataTrack(e){this.dataTracks.set(e.info.name,e)}removeRemoteDataTrack(e){for(let[t,n]of this.dataTracks.entries())e===n.info.sid&&this.dataTracks.delete(t)}emit(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return this.log.trace("participant event",Object.assign(Object.assign({},this.logContext),{event:e,args:n})),super.emit(e,...n)}}(cE=ll||(ll={})).Disconnected="disconnected",cE.Connecting="connecting",cE.Connected="connected",cE.Reconnecting="reconnecting",cE.SignalReconnecting="signalReconnecting";class o_ extends ip.EventEmitter{get hasE2EESetup(){return void 0!==this.e2eeManager}constructor(e){var t,n,i,r,a,s,o;if(super(),t=this,this.state=ll.Disconnected,this.activeSpeakers=[],this.isE2EEEnabled=!1,this.audioEnabled=!0,this.e2eeStateMutex=new C,this.isVideoPlaybackBlocked=!1,this.log=ii,this.bufferedEvents=[],this.isResuming=!1,this.rpcHandlers=new Map,this.connect=(e,t,n)=>il(this,void 0,void 0,function*(){var i;if(!(!("u"<typeof RTCPeerConnection)&&(rY()||rQ())))if(r6())throw Error("WebRTC isn't detected, have you called registerGlobals?");else throw 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.");let r=yield this.disconnectLock.lock();if(this.state===ll.Connected)return this.log.info("already connected to room ".concat(this.name),this.logContext),r(),Promise.resolve();if(this.connectFuture)return r(),this.connectFuture.promise;this.setAndEmitConnectionState(ll.Connecting),(null==(i=this.regionUrlProvider)?void 0:i.getServerUrl().toString())!==aP(e)&&(this.regionUrl=void 0,this.regionUrlProvider=void 0),r9(new URL(e))&&(void 0===this.regionUrlProvider?this.regionUrlProvider=new sU(e,t):this.regionUrlProvider.updateToken(t),this.regionUrlProvider.fetchRegionSettings().then(e=>{var t;null==(t=this.regionUrlProvider)||t.setServerReportedRegions(e)}).catch(e=>{this.log.warn("could not fetch region settings",Object.assign(Object.assign({},this.logContext),{error:e}))}));let a=(i,s,o)=>il(this,void 0,void 0,function*(){var c,l;this.abortController&&this.abortController.abort();let d=new AbortController;this.abortController=d,null==r||r();try{if(yield aM.getInstance().getBackOffPromise(e),d.signal.aborted)throw rg.cancelled("Connection attempt aborted");yield this.attemptConnection(null!=o?o:e,t,n,d),this.abortController=void 0,i()}catch(t){if(this.regionUrlProvider&&t instanceof rg&&t.reason!==cL.Cancelled&&t.reason!==cL.NotAllowed){let n=null;try{this.log.debug("Fetching next region"),n=yield this.regionUrlProvider.getNextBestRegionUrl(null==(c=this.abortController)?void 0:c.signal)}catch(e){if(e instanceof rg&&(401===e.status||e.reason===cL.Cancelled)){this.handleDisconnect(this.options.stopLocalTrackOnUnpublish),s(e);return}}[cL.InternalError,cL.ServerUnreachable,cL.Timeout].includes(t.reason)&&(this.log.debug("Adding failed connection attempt to back off"),aM.getInstance().addFailedConnectionAttempt(e)),!n||(null==(l=this.abortController)?void 0:l.signal.aborted)?(this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,af(t)),s(t)):(this.log.info("Initial connection failed with ConnectionError: ".concat(t.message,". Retrying with another region: ").concat(n),this.logContext),this.recreateEngine(!0),yield a(i,s,n))}else{let e=eX.UNKNOWN_REASON;t instanceof rg&&(e=af(t)),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,e),s(t)}}}),s=this.regionUrl;return this.regionUrl=void 0,this.connectFuture=new au((e,t)=>
2{a(e,t,s)},()=>{this.clearConnectionFutures()}),this.connectFuture.promise}),this.connectSignal=(e,t,n,i,r,a)=>il(this,void 0,void 0,function*(){let{joinResponse:s,serverInfo:o}=yield n.join(e,t,{autoSubscribe:i.autoSubscribe,adaptiveStream:"object"==typeof r.adaptiveStream||r.adaptiveStream,maxRetries:i.maxRetries,e2eeEnabled:!!this.e2eeManager,websocketTimeout:i.websocketTimeout},a.signal,!r.singlePeerConnection);if(this.serverInfo=o,!o.version)throw new ry("unknown server version");return"0.15.1"===o.version&&this.options.dynacast&&(this.log.debug("disabling dynacast due to server version",this.logContext),r.dynacast=!1),s}),this.applyJoinResponse=e=>{let t=e.participant;if(this.localParticipant.sid=t.sid,this.localParticipant.identity=t.identity,this.localParticipant.setEnabledPublishCodecs(e.enabledPublishCodecs),this.e2eeManager)try{this.e2eeManager.setSifTrailer(e.sifTrailer)}catch(e){this.log.error(e instanceof Error?e.message:"Could not set SifTrailer",Object.assign(Object.assign({},this.logContext),{error:e}))}this.handleParticipantUpdates([t,...e.otherParticipants]),e.room&&this.handleRoomUpdate(e.room)},this.attemptConnection=(e,t,n,i)=>il(this,void 0,void 0,function*(){var r,a;this.state===ll.Reconnecting||this.isResuming||(null==(r=this.engine)?void 0:r.pendingReconnect)?(this.log.info("Reconnection attempt replaced by new connection attempt",this.logContext),this.recreateEngine(!0)):this.maybeCreateEngine(),(null==(a=this.regionUrlProvider)?void 0:a.isCloud())&&this.engine.setRegionStrategy(this.createRegionStrategy()),this.acquireAudioContext(),this.connOptions=Object.assign(Object.assign({},sr),n),this.connOptions.rtcConfig&&(this.engine.rtcConfig=this.connOptions.rtcConfig),this.connOptions.peerConnectionTimeout&&(this.engine.peerConnectionTimeout=this.connOptions.peerConnectionTimeout);try{let n=yield this.connectSignal(e,t,this.engine,this.connOptions,this.options,i);this.applyJoinResponse(n),this.setupLocalParticipantEvents(),this.emit(cF.SignalConnected)}catch(t){yield this.engine.close(),this.recreateEngine();let e=i.signal.aborted?rg.cancelled("Signal connection aborted"):rg.serverUnreachable("could not establish signal connection");throw t instanceof Error&&(e.message="".concat(e.message,": ").concat(t.message)),t instanceof rg&&(e.reason=t.reason,e.status=t.status),this.log.debug("error trying to establish signal connection",Object.assign(Object.assign({},this.logContext),{error:t})),e}if(i.signal.aborted)throw yield this.engine.close(),this.recreateEngine(),rg.cancelled("Connection attempt aborted");try{yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout,i)}catch(e){throw yield this.engine.close(),this.recreateEngine(),e}r4()&&this.options.disconnectOnPageLeave&&(window.addEventListener("pagehide",this.onPageLeave),window.addEventListener("beforeunload",this.onPageLeave)),r4()&&window.addEventListener("freeze",this.onPageLeave),this.setAndEmitConnectionState(ll.Connected),this.emit(cF.Connected),aM.getInstance().resetFailedConnectionAttempts(e),this.registerConnectionReconcile(),this.regionUrlProvider&&this.regionUrlProvider.notifyConnected()}),this.disconnect=function(){for(var e=arguments.length,n=Array(e),i=0;i<e;i++)n[i]=arguments[i];return il(t,[...n],void 0,function(){var e=this;let t=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return function*(){var n,i,r;let a=yield e.disconnectLock.lock();try{if(e.state===ll.Disconnected)return void e.log.debug("already disconnected",e.logContext);if(e.log.info("disconnect from room",Object.assign({},e.logContext)),e.state===ll.Connecting||e.state===ll.Reconnecting||e.isResuming){let t="Abort connection attempt due to user initiated disconnect";e.log.warn(t,e.logContext),null==(n=e.abortController)||n.abort(t),null==(r=null==(i=e.connectFuture)?void 0:i.reject)||r.call(i,rg.cancelled("Client initiated disconnect")),e.connectFuture=void 0}e.engine&&(e.engine.client.isDisconnected||(yield e.engine.client.sendLeave()),yield e.engine.close()),e.handleDisconnect(t,eX.CLIENT_INITIATED),e.engine=void 0}finally{a()}}()})},this.onPageLeave=()=>il(this,void 0,void 0,function*(){this.log.info("Page leave detected, disconnecting",this.logContext),yield this.disconnect()}),this.startAudio=()=>il(this,void 0,void 0,function*(){let e=[],t=rd();if(t&&"iOS"===t.os){let t="livekit-dummy-audio-el",n=document.getElementById(t);if(!n){(n=document.createElement("audio")).id=t,n.autoplay=!0,n.hidden=!0;let e=ad();e.enabled=!0;let i=new MediaStream([e]);n.srcObject=i,document.addEventListener("visibilitychange",()=>{n&&(n.srcObject=document.hidden?null:i,document.hidden||(this.log.debug("page visible again, triggering startAudio to resume playback and update playback status",this.logContext),this.startAudio()))}),document.body.append(n),this.once(cF.Disconnected,()=>{null==n||n.remove(),n=null})}e.push(n)}
2this.remoteParticipants.forEach(t=>{t.audioTrackPublications.forEach(t=>{t.track&&t.track.attachedElements.forEach(t=>{e.push(t)})})});try{yield Promise.all([this.acquireAudioContext(),...e.map(e=>(e.muted=!1,e.play()))]),this.handleAudioPlaybackStarted()}catch(e){throw this.handleAudioPlaybackFailed(e),e}}),this.startVideo=()=>il(this,void 0,void 0,function*(){let e=[];for(let t of this.remoteParticipants.values())t.videoTrackPublications.forEach(t=>{var n;null==(n=t.track)||n.attachedElements.forEach(t=>{e.includes(t)||e.push(t)})});yield Promise.all(e.map(e=>e.play())).then(()=>{this.handleVideoPlaybackStarted()}).catch(e=>{"NotAllowedError"===e.name?this.handleVideoPlaybackFailed():this.log.warn("Resuming video playback failed, make sure you call `startVideo` directly in a user gesture handler",this.logContext)})}),this.handleRestarting=()=>{for(let e of(this.clearConnectionReconcile(),this.isResuming=!1,this.remoteParticipants.values()))this.handleParticipantDisconnected(e.identity,e);this.setAndEmitConnectionState(ll.Reconnecting)&&this.emit(cF.Reconnecting)},this.handleRestarted=()=>{this.outgoingDataTrackManager.sfuWillRepublishTracks(),this.incomingDataTrackManager.resendSubscriptionUpdates()},this.handleSignalRestarted=e=>il(this,void 0,void 0,function*(){this.log.debug("signal reconnected to server, region ".concat(e.serverRegion),Object.assign(Object.assign({},this.logContext),{region:e.serverRegion})),this.bufferedEvents=[],this.applyJoinResponse(e);try{yield this.localParticipant.republishAllTracks(void 0,!0)}catch(e){this.log.error("error trying to re-publish tracks after reconnection",Object.assign(Object.assign({},this.logContext),{error:e}))}try{yield this.engine.waitForRestarted(),this.log.debug("fully reconnected to server",Object.assign(Object.assign({},this.logContext),{region:e.serverRegion}))}catch(e){return}this.setAndEmitConnectionState(ll.Connected),this.emit(cF.Reconnected),this.registerConnectionReconcile(),this.emitBufferedEvents()}),this.handleParticipantUpdates=e=>{var t;for(let n of e){if(n.identity===this.localParticipant.identity){this.localParticipant.updateInfo(n);continue}""===n.identity&&(n.identity=null!=(t=this.sidToIdentity.get(n.sid))?t:"");let e=this.remoteParticipants.get(n.identity);n.state===e9.DISCONNECTED?this.handleParticipantDisconnected(n.identity,e):e=this.getOrCreateParticipant(n.identity,n)}let n=new Map(e.filter(e=>e.identity!==this.localParticipant.identity).map(e=>[e.identity,e.dataTracks.map(e=>aV(e))]));this.incomingDataTrackManager.receiveSfuPublicationUpdates(n)},this.handleActiveSpeakersUpdate=e=>{let t=[],n={};e.forEach(e=>{if(n[e.sid]=!0,e.sid===this.localParticipant.sid)this.localParticipant.audioLevel=e.level,this.localParticipant.setIsSpeaking(!0),t.push(this.localParticipant);else{let n=this.getRemoteParticipantBySid(e.sid);n&&(n.audioLevel=e.level,n.setIsSpeaking(!0),t.push(n))}}),n[this.localParticipant.sid]||(this.localParticipant.audioLevel=0,this.localParticipant.setIsSpeaking(!1)),this.remoteParticipants.forEac
2h(e=>{n[e.sid]||(e.audioLevel=0,e.setIsSpeaking(!1))}),this.activeSpeakers=t,this.emitWhenConnected(cF.ActiveSpeakersChanged,t)},this.handleSpeakersChanged=e=>{let t=new Map;this.activeSpeakers.forEach(e=>{let n=this.remoteParticipants.get(e.identity);n&&n.sid!==e.sid||t.set(e.sid,e)}),e.forEach(e=>{let n=this.getRemoteParticipantBySid(e.sid);e.sid===this.localParticipant.sid&&(n=this.localParticipant),n&&(n.audioLevel=e.level,n.setIsSpeaking(e.active),e.active?t.set(e.sid,n):t.delete(e.sid))});let n=Array.from(t.values());n.sort((e,t)=>t.audioLevel-e.audioLevel),this.activeSpeakers=n,this.emitWhenConnected(cF.ActiveSpeakersChanged,n)},this.handleStreamStateUpdate=e=>{e.streamStates.forEach(e=>{let t=this.getRemoteParticipantBySid(e.participantSid);if(!t)return;let n=t.getTrackPublicationBySid(e.trackSid);if(!n||!n.track)return;let i=rW.streamStateFromProto(e.state);n.track.setStreamState(i),i!==n.track.streamState&&(t.emit(cB.TrackStreamStateChanged,n,n.track.streamState),this.emitWhenConnected(cF.TrackStreamStateChanged,n,n.track.streamState,t))})},this.handleSubscriptionPermissionUpdate=e=>{let t=this.getRemoteParticipantBySid(e.participantSid);if(!t)return;let n=t.getTrackPublicationBySid(e.trackSid);n&&n.setAllowed(e.allowed)},this.handleSubscriptionError=e=>{let t=Array.from(this.remoteParticipants.values()).find(t=>t.trackPublications.has(e.trackSid));if(!t)return;let n=t.getTrackPublicationBySid(e.trackSid);n&&n.setSubscriptionError(e.err)},this.handleDataPacket=(e,t)=>{let n=this.remoteParticipants.get(e.participantIdentity);if("user"===e.value.case)this.handleUserPacket(n,e.value.value,e.kind,t);else if("transcription"===e.value.case)this.handleTranscription(n,e.value.value);else if("sipDtmf"===e.value.case)this.handleSipDtmf(n,e.value.value);else if("chatMessage"===e.value.case)this.handleChatMessage(n,e.value.value);else if("metrics"===e.value.case)this.handleMetrics(e.value.value,n);else if("streamHeader"===e.value.case||"streamChunk"===e.value.case||"streamTrailer"===e.value.case)this.handleDataStream(e,t);else if("rpcRequest"===e.value.case){let t=e.value.value;this.handleIncomingRpcRequest(e.participantIdentity,t.id,t.method,t.payload,t.responseTimeoutMs,t.version)}},this.handleUserPacket=(e,t,n,i)=>{this.emit(cF.DataReceived,t.payload,e,n,t.topic,i),null==e||e.emit(cB.DataReceived,t.payload,n,i)},this.handleSipDtmf=(e,t)=>{this.emit(cF.SipDTMFReceived,t,e),null==e||e.emit(cB.SipDTMFReceived,t)},this.handleTranscription=(e,t)=>{var n;let i=t.transcribedParticipantIdentity===this.localParticipant.identity?this.localParticipant:this.getParticipantByIdentity(t.transcribedParticipantIdentity),r=null==i?void 0:i.trackPublications.get(t.trackId),a=(n=this.transcriptionReceivedTimes,t.segments.map(e=>{var t;let{id:i,text:r,language:a,startTime:s,endTime:o,final:c}=e,l=null!=(t=n.get(i))?t:Date.now(),d=Date.now();return c?n.delete(i):n.set(i,l),{id:i,text:r,startTime:Number.parseInt(s.toString()),endTime:Number.parseInt(o.toString()),final:c,language:a,firstReceivedTime:l,lastReceivedTime:d}}));null==r||r.emit(cV.TranscriptionReceived,a),null==i||i.emit(cB.TranscriptionReceived,a,r),this.emit(cF.TranscriptionReceived,a,i,r)},this.handleChatMessage=(e,t)=>{let n=function(e){let{id:t,timestamp:n,message:i,editTimestamp:r}=e;return{id:t,timestamp:Number.parseInt(n.toString()),editTimestamp:r?Number.parseInt(r.toString()):void 0,message:i}}(t);this.emit(cF.ChatMessage,n,e)},this.handleMetrics=(e,t)=>{this.emit(cF.MetricsReceived,e,t)},this.handleDataStream=(e,t)=>{this.incomingDataStreamManager.handleDataStreamPacket(e,t)},this.bufferedSegments=new Map,this.handleAudioPlaybackStarted=()=>{this.canPlaybackAudio||(this.audioEnabled=!0,this.emit(cF.AudioPlaybackStatusChanged,!0))},this.handleAudioPlaybackFailed=e=>{this.log.warn("could not playback audio",Object.assign(Object.assign({},this.logContext),{error:e})),this.canPlaybackAudio&&(this.audioEnabled=!1,this.emit(cF.AudioPlaybackStatusChanged,!1))},this.handleVideoPlaybackStarted=()=>{this.isVideoPlaybackBlocked&&(this.isVideoPlaybackBlocked=!1,this.emit(cF.VideoPlaybackStatusChanged,!0))},this.handleVideoPlaybackFailed=()=>{this.isVideoPlaybackBlocked||(this.isVideoPlaybackBlocked=!0,this.emit
2(cF.VideoPlaybackStatusChanged,!1))},this.handleDeviceChange=()=>il(this,void 0,void 0,function*(){var e;(null==(e=rd())?void 0:e.os)!=="iOS"&&(yield this.selectDefaultDevices()),this.emit(cF.MediaDevicesChanged)}),this.handleRoomUpdate=e=>{let t=this.roomInfo;this.roomInfo=e,t&&t.metadata!==e.metadata&&this.emitWhenConnected(cF.RoomMetadataChanged,e.metadata),(null==t?void 0:t.activeRecording)!==e.activeRecording&&this.emitWhenConnected(cF.RecordingStatusChanged,e.activeRecording)},this.handleConnectionQualityUpdate=e=>{e.updates.forEach(e=>{if(e.participantSid===this.localParticipant.sid)return void this.localParticipant.setConnectionQuality(e.quality);let t=this.getRemoteParticipantBySid(e.participantSid);t&&t.setConnectionQuality(e.quality)})},this.onLocalParticipantMetadataChanged=e=>{this.emit(cF.ParticipantMetadataChanged,e,this.localParticipant)},this.onLocalParticipantNameChanged=e=>{this.emit(cF.ParticipantNameChanged,e,this.localParticipant)},this.onLocalAttributesChanged=e=>{this.emit(cF.ParticipantAttributesChanged,e,this.localParticipant)},this.onLocalTrackMuted=e=>{this.emit(cF.TrackMuted,e,this.localParticipant)},this.onLocalTrackUnmuted=e=>{this.emit(cF.TrackUnmuted,e,this.localParticipant)},this.onTrackProcessorUpdate=e=>{var t;null==(t=null==e?void 0:e.onPublish)||t.call(e,this)},this.onLocalTrackPublished=e=>il(this,void 0,void 0,function*(){var t,n,i,r,a,s;null==(t=e.track)||t.on(cV.TrackProcessorUpdate,this.onTrackProcessorUpdate),null==(n=e.track)||n.on(cV.Restarted,this.onLocalTrackRestarted),null==(a=null==(r=null==(i=e.track)?void 0:i.getProcessor())?void 0:r.onPublish)||a.call(r,this),this.emit(cF.LocalTrackPublished,e,this.localParticipant),aS(e.track)&&(yield e.track.checkForSilence())&&this.emit(cF.LocalAudioSilenceDetected,e);let o=yield null==(s=e.track)?void 0:s.getDeviceId(!1),c=rF(e.source);c&&o&&o!==this.localParticipant.activeDeviceMap.get(c)&&(this.localParticipant.activeDeviceMap.set(c,o),this.emit(cF.ActiveDeviceChanged,c,o))}),this.onLocalTrackUnpublished=e=>{var t,n;null==(t=e.track)||t.off(cV.TrackProcessorUpdate,this.onTrackProcessorUpdate),null==(n=e.track)||n.off(cV.Restarted,this.onLocalTrackRestarted),this.emit(cF.LocalTrackUnpublished,e,this.localParticipant)},this.onLocalTrackRestarted=e=>il(this,void 0,void 0,function*(){let t=yield e.getDeviceId(!1),n=rF(e.source);n&&t&&t!==this.localParticipant.activeDeviceMap.get(n)&&(this.log.debug("local track restarted, setting ".concat(n," ").concat(t," active"),this.logContext),this.localParticipant.activeDeviceMap.set(n,t),this.emit(cF.ActiveDeviceChanged,n,t))}),this.onLocalConnectionQualityChanged=e=>{this.emit(cF.ConnectionQualityChanged,e,this.localParticipant)},this.onMediaDevicesError=(e,t)=>{this.emit(cF.MediaDevicesError,e,t)},this.onLocalParticipantPermissionsChanged=e=>{this.emit(cF.ParticipantPermissionsChanged,e,this.localParticipant)},this.onLocalChatMessageSent=e=>{this.emit(cF.ChatMessage,e,this.localParticipant)},this.setMaxListeners(100),this.remoteParticipants=new Map,this.sidToIdentity=new Map,this.options=Object.assign(Object.assign({},si),e),this.log=ia(null!=(n=this.options.loggerName)?n:cM.Room),this.transcriptionReceivedTimes=new Map,this.options.audioCaptureDefaults=Object.assign(Object.assign({},st),null==e?void 0:e.audioCaptureDefaults),this.options.videoCaptureDefaults=Object.assign(Object.assign({},sn),null==e?void 0:e.videoCaptureDefaults),this.options.publishDefaults=Object.assign(Object.assign({},se),null==e?void 0:e.publishDefaults),this.maybeCreateEngine(),this.incomingDataStreamManager=new sq,this.outgoingDataStreamManager=new sW(this.engine,this.log),this.incomingDataTrackManager=new or({e2eeManager:this.e2eeManager}),this.incomingDataTrackManager.on("sfuUpdateSubscription",e=>{this.engine.client.sendUpdateDataSubscription(e.sid,e.subscribe)}).on("trackPublished",e=>{var t;e.track.publisherIdentity!==this.localParticipant.identity&&(this.emit(cF.DataTrackPublished,e.track),null==(t=this.remoteParticipants.get(e.track.publisherIdentity))||t.addRemoteDataTrack(e.track))}).on("trackUnpublished",e=>{var t;e.publisherIdentity!==this.localParticipant.identity&&(this.emit
2(cF.DataTrackUnpublished,e.sid),null==(t=this.remoteParticipants.get(e.publisherIdentity))||t.removeRemoteDataTrack(e.sid))}),this.outgoingDataTrackManager=new op({e2eeManager:this.e2eeManager}),this.outgoingDataTrackManager.on("sfuPublishRequest",e=>{this.engine.client.sendPublishDataTrackRequest(e.handle,e.name,e.usesE2ee)}).on("sfuUnpublishRequest",e=>{this.engine.client.sendUnPublishDataTrackRequest(e.handle)}).on("trackPublished",e=>{this.emit(cF.LocalDataTrackPublished,e.track)}).on("trackUnpublished",e=>{this.emit(cF.LocalDataTrackUnpublished,e.sid)}).on("packetAvailable",e=>{let{bytes:t}=e;this.engine.sendLossyBytes(t,c9.DATA_TRACK_LOSSY,"wait")}),this.disconnectLock=new C,this.localParticipant=new ow("","",this.engine,this.options,this.rpcHandlers,this.outgoingDataStreamManager,this.outgoingDataTrackManager),(this.options.e2ee||this.options.encryption)&&this.setupE2EE(),this.engine.e2eeManager=this.e2eeManager,this.incomingDataTrackManager.updateE2eeManager(null!=(i=this.e2eeManager)?i:null),this.outgoingDataTrackManager.updateE2eeManager(null!=(r=this.e2eeManager)?r:null),this.options.videoCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("videoinput",ap(this.options.videoCaptureDefaults.deviceId)),this.options.audioCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("audioinput",ap(this.options.audioCaptureDefaults.deviceId)),(null==(a=this.options.audioOutput)?void 0:a.deviceId)&&this.switchActiveDevice("audiooutput",ap(this.options.audioOutput.deviceId)).catch(e=>this.log.warn("Could not set audio output: ".concat(e.message),this.logContext)),r4()){const e=new AbortController;null==(o=null==(s=navigator.mediaDevices)?void 0:s.addEventListener)||o.call(s,"devicechange",this.handleDeviceChange,{signal:e.signal}),o_.cleanupRegistry&&o_.cleanupRegistry.register(this,()=>{e.abort()})}}registerTextStreamHandler(e,t){return this.incomingDataStreamManager.registerTextStreamHandler(e,t)}unregisterTextStreamHandler(e){return this.incomingDataStreamManager.unregisterTextStreamHandler(e)}registerByteStreamHandler(e,t){return this.incomingDataStreamManager.registerByteStreamHandler(e,t)}unregisterByteStreamHandler(e){return this.incomingDataStreamManager.unregisterByteStreamHandler(e)}registerRpcMethod(e,t){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,t)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}setE2EEEnabled(e){return il(this,void 0,void 0,function*(){let t=yield this.e2eeStateMutex.lock();try{if(this.e2eeManager)this.isE2EEEnabled!==e&&(yield 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")}finally{t()}})}setupE2EE(){var e,t;let n=!!this.options.encryption,i=this.options.encryption||this.options.e2ee;i&&("e2eeManager"in i?(this.e2eeManager=i.e2eeManager,this.e2eeManager.isDataChannelEncryptionEnabled=n):this.e2eeManager=new aO(i,n),this.e2eeManager.on(cK.ParticipantEncryptionStatusChanged,(e,t)=>{t.isLocal&&(this.isE2EEEnabled=e),this.emit(cF.ParticipantEncryptionStatusChanged,e,t)}),this.e2eeManager.on(cK.EncryptionError,(e,t)=>{let n=t?this.getParticipantByIdentity(t):void 0;this.emit(cF.EncryptionError,e,n)}),null==(e=this.e2eeManager)||e.setup(this),null==(t=this.e2eeManager)||t.setupEngine(this.engine))}get logContext(){var e;return{room:this.name,roomID:null==(e=this.roomInfo)?void 0:e.sid,participant:this.localParticipant.identity,participantID:this.localParticipant.sid}}get isRecording(){var e,t;return null!=(t=null==(e=this.roomInfo)?void 0:e.activeRecording)&&t}getSid(){return this.state===ll.Disconnected?rc.resolve(""):this.roomInfo&&""!==this.roomInfo.sid?rc.resolve(this.roomInfo.sid):new rc((e,t)=>{let n=t=>{""!==t.sid&&(this.engine.off(cq.RoomUpdate,n),e(t.sid))};this.engine.on(cq.RoomUpdate,n),this.once(cF.Disconnected,()=>
2{this.engine.off(cq.RoomUpdate,n),t(new rk("Room disconnected before room server id was available"))})})}get name(){var e,t;return null!=(t=null==(e=this.roomInfo)?void 0:e.name)?t:""}get metadata(){var e;return null==(e=this.roomInfo)?void 0:e.metadata}get numParticipants(){var e,t;return null!=(t=null==(e=this.roomInfo)?void 0:e.numParticipants)?t:0}get numPublishers(){var e,t;return null!=(t=null==(e=this.roomInfo)?void 0:e.numPublishers)?t:0}maybeCreateEngine(){(!this.engine||!this.engine.isNewlyCreated&&this.engine.isClosed)&&(this.engine=new sN(this.options),this.engine.e2eeManager=this.e2eeManager,this.engine.on(cq.ParticipantUpdate,this.handleParticipantUpdates).on(cq.RoomUpdate,this.handleRoomUpdate).on(cq.SpeakersChanged,this.handleSpeakersChanged).on(cq.StreamStateChanged,this.handleStreamStateUpdate).on(cq.ConnectionQualityUpdate,this.handleConnectionQualityUpdate).on(cq.SubscriptionError,this.handleSubscriptionError).on(cq.SubscriptionPermissionUpdate,this.handleSubscriptionPermissionUpdate).on(cq.MediaTrackAdded,(e,t,n)=>{this.onTrackAdded(e,t,n)}).on(cq.Disconnected,e=>{this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,e)}).on(cq.ActiveSpeakersUpdate,this.handleActiveSpeakersUpdate).on(cq.DataPacketReceived,this.handleDataPacket).on(cq.Resuming,()=>{this.clearConnectionReconcile(),this.isResuming=!0,this.log.info("Resuming signal connection",this.logContext),this.setAndEmitConnectionState(ll.SignalReconnecting)&&this.emit(cF.SignalReconnecting)}).on(cq.Resumed,()=>{this.registerConnectionReconcile(),this.isResuming=!1,this.log.info("Resumed signal connection",this.logContext),this.updateSubscriptions(),this.emitBufferedEvents(),this.setAndEmitConnectionState(ll.Connected)&&this.emit(cF.Reconnected)}).on(cq.SignalResumed,()=>{this.bufferedEvents=[],(this.state===ll.Reconnecting||this.isResuming)&&this.sendSyncState()}).on(cq.Restarting,this.handleRestarting).on(cq.Restarted,this.handleRestarted).on(cq.SignalRestarted,this.handleSignalRestarted).on(cq.Offline,()=>{this.setAndEmitConnectionState(ll.Reconnecting)&&this.emit(cF.Reconnecting)}).on(cq.DCBufferStatusChanged,(e,t)=>{this.emit(cF.DCBufferStatusChanged,e,t)}).on(cq.LocalTrackSubscribed,e=>{this.handleLocalTrackSubscribed(e)}).on(cq.RoomMoved,e=>{this.log.debug("room moved",e),e.room&&this.handleRoomUpdate(e.room),this.remoteParticipants.forEac
2h((e,t)=>{this.handleParticipantDisconnected(t,e)}),this.emit(cF.Moved,e.room.name),e.participant?this.handleParticipantUpdates([e.participant,...e.otherParticipants]):this.handleParticipantUpdates(e.otherParticipants)}).on(cq.PublishDataTrackResponse,e=>{e.info?this.outgoingDataTrackManager.receivedSfuPublishResponse(e.info.pubHandle,{type:"ok",data:{sid:e.info.sid,pubHandle:e.info.pubHandle,name:e.info.name,usesE2ee:e.info.encryption!==te.NONE}}):this.log.warn("received PublishDataTrackResponse, but event.info was ".concat(e.info,", so skipping."),this.logContext)}).on(cq.UnPublishDataTrackResponse,e=>{e.info?this.outgoingDataTrackManager.receivedSfuUnpublishResponse(e.info.pubHandle):this.log.warn("received UnPublishDataTrackResponse, but event.info was ".concat(e.info,", so skipping."),this.logContext)}).on(cq.DataTrackSubscriberHandles,e=>{let t=new Map(Object.entries(e.subHandles).map(e=>{let[t,n]=e;return[parseInt(t,10),n.trackSid]}));this.incomingDataTrackManager.receivedSfuSubscriberHandles(t)}).on(cq.DataTrackPacketReceived,e=>{try{this.incomingDataTrackManager.packetReceived(e)}catch(e){throw e}}).on(cq.Joined,e=>{let t=new Map(e.otherParticipants.map(e=>[e.identity,e.dataTracks.map(e=>aV(e))]));this.incomingDataTrackManager.receiveSfuPublicationUpdates(t)}).on(cq.TokenRefreshed,e=>{var t;null==(t=this.regionUrlProvider)||t.updateToken(e)}).on(cq.ServerRegionsReported,e=>{var t;null==(t=this.regionUrlProvider)||t.setServerReportedRegions({regionSettings:e,updatedAtInMs:Date.now(),maxAgeInMs:5e3})}),this.localParticipant&&this.localParticipant.setupEngine(this.engine),this.e2eeManager&&this.e2eeManager.setupEngine(this.engine),this.outgoingDataStreamManager&&this.outgoingDataStreamManager.setupEngine(this.engine))}createRegionStrategy(){return{getNextUrl:e=>il(this,void 0,void 0,function*(){return this.regionUrlProvider?this.regionUrlProvider.getNextBestRegionUrl(e):null}),resetAttempts:()=>{var e;return null==(e=this.regionUrlProvider)?void 0:e.resetAttempts()}}}static getLocalDevices(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return aA.getInstance().getDevices(e,t)}prepareConnection(e,t){return il(this,void 0,void 0,function*(){if(this.state===ll.Disconnected){this.log.debug("prepareConnection to ".concat(e),this.logContext);try{if(r9(new URL(e))&&t){this.regionUrlProvider=new sU(e,t);let n=yield this.regionUrlProvider.getNextBestRegionUrl();n&&this.state===ll.Disconnected&&(this.regionUrl=n,yield fetch(am(n),{method:"HEAD"}),this.log.debug("prepared connection to ".concat(n),this.logContext))}else yield fetch(am(e),{method:"HEAD"})}catch(e){this.log.warn("could not prepare connection",Object.assign(Object.assign({},this.logContext),{error:e}))}}})}getParticipantByIdentity(e){return this.localParticipant.identity===e?this.localParticipant:this.remoteParticipants.get(e)}clearConnectionFutures(){this.connectFuture=void 0}simulateScenario(e,t){return il(this,void 0,void 0,function*(){let n,i=()=>il(this,void 0,void 0,function*(){});switch(e){case"signal-reconnect":yield this.engine.client.handleOnClose("simulate disconnect");break;case"fail-on-v1-path":this.engine.failNextV1Path();break;case"speaker":n=new nR({scenario:{case:"speakerUpdate",value:3}});break;case"node-failure":n=new nR({scenario:{case:"nodeFailure",value:!0}});break;case"server-leave":n=new nR({scenario:{case:"serverLeave",value:!0}});break;case"migration":n=new nR({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":i=()=>il(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),n=new nR({scenario:{case:"disconnectSignalOnResume",value:!0}});break;case"disconnect-signal-on-resume-no-messages":i=()=>il(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),n=new nR({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":n=new nR({scenario:{case:"switchCandidateProtocol",value:"force-tls"===e?2:1}}),i=()=>il(this,void 0,void 0,function*(){let e=this.engine.client.onLeave;e&&e(new na({reason:eX.CLIENT_INITIATED,action:ns.RECONNECT}))});break;case"subscriber-bandwidth":if(void 0===t||"number"!=typeof t)throw Error("subscriber-bandwidth requires a number as argument");n=new nR({scenario:{case:"subscriberBandwidth",value:av(t)}});break;case"leave-full-reconnect":n=new nR({scenario:{case:"leaveRequestFullReconnect",value:!0}})}n&&(yield this.engine.client.sendSimulateScenario(n),yield i())})}get canPlaybackAudio(){return this.audioEnabled}get canPlaybackVideo(){return!this.isVideoPlaybackBlocked}getActiveDevice(e){return this.localParticipant.activeDeviceMap.get(e)}switchActiveDevice(e,t){return il(this,arguments,void 0,function(e,t){var n=this;let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2];return function*(){var r,a,s,o,c,l;let d=!0,u=!1,h=i?{exact:t}:t;if("audioinput"===e){u=0===n.localParticipant.audioTrackPublications.size;let t=null!=(r=n.getActiveDevice(e))?r:n.options.audioCaptureDefaults.deviceId;n.options.audioCaptureDefaults.deviceId=h;let i=Array.from(n.localParticipant.audioTrackPublications.values()).filter(e=>e.source===rW.Source.Microphone);try{d=(yield Promise.all(i.map(e=>{var t;return null==(t=e.audioTrack)?void 0:t.setDeviceId(h)}
2))).every(e=>!0===e)}catch(e){throw n.options.audioCaptureDefaults.deviceId=t,e}let a=i.some(e=>{var t,n;return null!=(n=null==(t=e.track)?void 0:t.isMuted)&&n});d&&a&&(u=!0)}else if("videoinput"===e){u=0===n.localParticipant.videoTrackPublications.size;let t=null!=(a=n.getActiveDevice(e))?a:n.options.videoCaptureDefaults.deviceId;n.options.videoCaptureDefaults.deviceId=h;let i=Array.from(n.localParticipant.videoTrackPublications.values()).filter(e=>e.source===rW.Source.Camera);try{d=(yield Promise.all(i.map(e=>{var t;return null==(t=e.videoTrack)?void 0:t.setDeviceId(h)}))).every(e=>!0===e)}catch(e){throw n.options.videoCaptureDefaults.deviceId=t,e}let r=i.some(e=>{var t,n;return null!=(n=null==(t=e.track)?void 0:t.isMuted)&&n});d&&r&&(u=!0)}else if("audiooutput"===e){if(u=!0,!rZ()&&!n.options.webAudioMix||n.options.webAudioMix&&n.audioContext&&!("setSinkId"in n.audioContext))throw Error("cannot switch audio output, the current browser does not support it");n.options.webAudioMix&&(t=null!=(s=yield aA.getInstance().normalizeDeviceId("audiooutput",t))?s:""),null!=(l=n.options).audioOutput||(l.audioOutput={});let i=null!=(o=n.getActiveDevice(e))?o:n.options.audioOutput.deviceId;n.options.audioOutput.deviceId=t;try{n.options.webAudioMix&&(null==(c=n.audioContext)||c.setSinkId(t)),yield Promise.all(Array.from(n.remoteParticipants.values()).map(e=>e.setAudioOutput({deviceId:t})))}catch(e){throw n.options.audioOutput.deviceId=i,e}}return u&&(n.localParticipant.activeDeviceMap.set(e,t),n.emit(cF.ActiveDeviceChanged,e,t)),d}()})}setupLocalParticipantEvents(){this.localParticipant.on(cB.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).on(cB.ParticipantNameChanged,this.onLocalParticipantNameChanged).on(cB.AttributesChanged,this.onLocalAttributesChanged).on(cB.TrackMuted,this.onLocalTrackMuted).on(cB.TrackUnmuted,this.onLocalTrackUnmuted).on(cB.LocalTrackPublished,this.onLocalTrackPublished).on(cB.LocalTrackUnpublished,this.onLocalTrackUnpublished).on(cB.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).on(cB.MediaDevicesError,this.onMediaDevicesError).on(cB.AudioStreamAcquired,this.startAudio).on(cB.ChatMessage,this.onLocalChatMessageSent).on(cB.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged)}recreateEngine(e){let t=this.engine;e&&t&&!t.client.isDisconnected?t.client.sendLeave().finally(()=>t.close()):null==t||t.close(),this.engine=void 0,this.isResuming=!1,this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.bufferedEvents=[],this.maybeCreateEngine()}onTrackAdded(e,t,n){var i;let r,a;if(this.state===ll.Connecting||this.state===ll.Reconnecting){let i=()=>{this.log.debug("deferring on track for later",{mediaTrackId:e.id,mediaStreamId:t.id,tracksInStream:t.getTracks().map(e=>e.id)}),this.onTrackAdded(e,t,n),r()},r=()=>{this.off(cF.Reconnected,i),this.off(cF.Connected,i),this.off(cF.Disconnected,r)};this.once(cF.Reconnected,i),this.once(cF.Connected,i),this.once(cF.Disconnected,r);return}if(this.state===ll.Disconnected)return void this.log.warn("skipping incoming track after Room disconnected",this.logContext);if("ended"===e.readyState)return void this.log.info("skipping incoming track as it already ended",this.logContext);let s=(a=(i=t.id).split("|")).length>1?[a[0],i.substr(a[0].length+1)]:[i,""],o=s[0],c=s[1],l=e.id;if(c&&c.startsWith("TR")&&(l=c),o===this.localParticipant.sid)return void this.log.warn("tried to create RemoteParticipant for local participant",this.logContext);let d=Array.from(this.remoteParticipants.values()).find(e=>e.sid===o);if(!d){o.startsWith("PA")&&this.log.error("Tried to add a track for a participant, that's not present. Sid: ".concat(o),this.logContext);return}if(!l.startsWith("TR")){let e=this.engine.getTrackIdForReceiver(n);if(!e)return void this.log.error("Tried to add a track whose 'sid' could not be found for a participant, that's not present. Sid: ".concat(o),this.logContext);l=e}l.startsWith("TR")||this.log.warn("Tried to add a track whose 'sid' could not be determined for a participant, that's not present. Sid: ".concat(o,", streamId: ").concat(c,", trackId: ").concat(l),Object.assign(Object.assign({},this.logContext),{remoteParticipantID:o,streamId:c,trackId:l})),this.options.adaptiveStream&&(r="object"==typeof this.options.adaptiveStream?this.options.adaptiveStream:{});let u=d.addSubscribedMediaTrack(e,l,t,n,r);
2(null==u?void 0:u.isEncrypted)&&!this.e2eeManager&&this.emit(cF.EncryptionError,Error("Encrypted ".concat(u.source," track received from participant ").concat(d.sid,", but room does not have encryption enabled!")))}handleLocalTrackSubscribed(e){let t,n=()=>this.localParticipant.getTrackPublications().find(t=>{let{trackSid:n}=t;return n===e}),i=n();if(i)return void this.emitLocalTrackSubscribed(i);this.log.debug("deferring LocalTrackSubscribed, publication not yet available",Object.assign(Object.assign({},this.logContext),{subscribedSid:e}));let r=t=>{t.trackSid===e&&(a(),this.emitLocalTrackSubscribed(t))},a=()=>{clearTimeout(t),this.localParticipant.off(cB.LocalTrackPublished,r),this.off(cF.Disconnected,a)};this.localParticipant.on(cB.LocalTrackPublished,r),this.once(cF.Disconnected,a),t=setTimeout(()=>{a();let t=n();t?this.emitLocalTrackSubscribed(t):this.log.warn("could not find local track publication for LocalTrackSubscribed event after timeout",Object.assign(Object.assign({},this.logContext),{subscribedSid:e}))},1e4)}emitLocalTrackSubscribed(e){this.localParticipant.emit(cB.LocalTrackSubscribed,e),this.emitWhenConnected(cF.LocalTrackSubscribed,e,this.localParticipant)}handleDisconnect(){var e,t;let n=!(arguments.length>0)||void 0===arguments[0]||arguments[0],i=arguments.length>1?arguments[1]:void 0;if(this.clearConnectionReconcile(),this.isResuming=!1,this.bufferedEvents=[],this.transcriptionReceivedTimes.clear(),this.incomingDataStreamManager.clearControllers(),this.state!==ll.Disconnected){this.regionUrl=void 0,this.regionUrlProvider&&this.regionUrlProvider.notifyDisconnected();
2try{this.remoteParticipants.forEach(e=>{e.trackPublications.forEach(t=>{e.unpublishTrack(t.trackSid)})}),this.localParticipant.trackPublications.forEach(e=>{var t,i,r;e.track&&this.localParticipant.unpublishTrack(e.track,n),n?(null==(t=e.track)||t.detach(),null==(i=e.track)||i.stop()):null==(r=e.track)||r.stopMonitor()}),this.localParticipant.off(cB.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).off(cB.ParticipantNameChanged,this.onLocalParticipantNameChanged).off(cB.AttributesChanged,this.onLocalAttributesChanged).off(cB.TrackMuted,this.onLocalTrackMuted).off(cB.TrackUnmuted,this.onLocalTrackUnmuted).off(cB.LocalTrackPublished,this.onLocalTrackPublished).off(cB.LocalTrackUnpublished,this.onLocalTrackUnpublished).off(cB.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).off(cB.MediaDevicesError,this.onMediaDevicesError).off(cB.AudioStreamAcquired,this.startAudio).off(cB.ChatMessage,this.onLocalChatMessageSent).off(cB.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&&"boolean"==typeof this.options.webAudioMix&&(this.audioContext.close(),this.audioContext=void 0),r4()&&(window.removeEventListener("beforeunload",this.onPageLeave),window.removeEventListener("pagehide",this.onPageLeave),window.removeEventListener("freeze",this.onPageLeave),null==(t=null==(e=navigator.mediaDevices)?void 0:e.removeEventListener)||t.call(e,"devicechange",this.handleDeviceChange))}finally{this.setAndEmitConnectionState(ll.Disconnected),this.emit(cF.Disconnected,i)}}}handleParticipantDisconnected(e,t){var n;this.remoteParticipants.delete(e),t&&(this.incomingDataStreamManager.validateParticipantHasNoActiveDataStreams(e),this.incomingDataTrackManager.handleRemoteParticipantDisconnected(e),t.trackPublications.forEach(e=>{t.unpublishTrack(e.trackSid,!0)}),this.emit(cF.ParticipantDisconnected,t),t.setDisconnected(),null==(n=this.localParticipant)||n.handleParticipantDisconnected(t.identity))}handleIncomingRpcRequest(e,t,n,i,r,a){return il(this,void 0,void 0,function*(){if(yield this.engine.publishRpcAck(e,t),1!==a)return void(yield this.engine.publishRpcResponse(e,t,null,ss.builtIn("UNSUPPORTED_VERSION")));let s=this.rpcHandlers.get(n);if(!s)return void(yield this.engine.publishRpcResponse(e,t,null,ss.builtIn("UNSUPPORTED_METHOD")));let o=null,c=null;try{let a=yield s({requestId:t,callerIdentity:e,payload:i,responseTimeout:r});so(a)>15360?(o=ss.builtIn("RESPONSE_PAYLOAD_TOO_LARGE"),this.log.warn("RPC Response payload too large for ".concat(n))):c=a}catch(e){e instanceof ss?o=e:(this.log.warn("Uncaught error returned by RPC handler for ".concat(n,". Returning APPLICATION_ERROR instead."),e),o=ss.builtIn("APPLICATION_ERROR"))}yield this.engine.publishRpcResponse(e,t,c,o)})}selectDefaultDevices(){return il(this,void 0,void 0,function*(){var e,t,n;let i=aA.getInstance().previousDevices,r=yield aA.getInstance().getDevices(void 0,!1),a=rd();if((null==a?void 0:a.name)==="Chrome"&&"iOS"!==a.os)for(let e of r){let t=i.find(t=>t.deviceId===e.deviceId);t&&""!==t.label&&t.kind===e.kind&&t.label!==e.label&&"default"===this.getActiveDevice(e.kind)&&this.emit(cF.ActiveDeviceChanged,e.kind,e.deviceId)}for(let a of["audiooutput","audioinput","videoinput"]){let s="audioinput"===a?rW.Source.Microphone:"videoinput"===a?rW.Source.Camera:rW.Source.Unknown,o=this.localParticipant.getTrackPublication(s);if(o&&(null==(e=o.track)?void 0:e.isUserProvided))continue;let c=r.filter(e=>e.kind===a),l=this.getActiveDevice(a);if(l===(null==(t=i.filter(e=>e.kind===a)[0])?void 0:t.deviceId)&&c.length>0&&(null==(n=c[0])?void 0:n.deviceId)!==l){yield this.switchActiveDevice(a,c[0].deviceId);continue}("audioinput"!==a||r5())&&"videoinput"!==a&&(!(c.length>0)||c.find(e=>e.deviceId===this.getActiveDevice(a))||"audiooutput"===a&&r5()||(yield this.switchActiveDevice(a,c[0].deviceId)))}})}acquireAudioContext(){return il(this,void 0,void 0,function*(){var e,t;if("boolean"!=typeof this.options.webAudioMix&&this.options.webAudioMix.audioContext?this.audioContext=this.options.webAudioMix.audioContext:this.audioContext&&"closed"!==this.audioContext.state||(this.audioContext=null!=(e=rj())?e:void 0),this.options.webAudioMix&&this.remoteParticipants.forEac
2h(e=>e.setAudioContext(this.audioContext)),this.localParticipant.setAudioContext(this.audioContext),this.audioContext&&"suspended"===this.audioContext.state)try{yield Promise.race([this.audioContext.resume(),r$(200)])}catch(e){this.log.warn("Could not resume audio context",Object.assign(Object.assign({},this.logContext),{error:e}))}let n=(null==(t=this.audioContext)?void 0:t.state)==="running";n!==this.canPlaybackAudio&&(this.audioEnabled=n,this.emit(cF.AudioPlaybackStatusChanged,n))})}createParticipant(e,t){var n;let i;return i=t?oI.fromParticipantInfo(this.engine.client,t,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName},this.incomingDataTrackManager):new oI(this.engine.client,"",e,void 0,void 0,void 0,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}),this.options.webAudioMix&&i.setAudioContext(this.audioContext),(null==(n=this.options.audioOutput)?void 0:n.deviceId)&&i.setAudioOutput(this.options.audioOutput).catch(e=>this.log.warn("Could not set audio output: ".concat(e.message),this.logContext)),i}getOrCreateParticipant(e,t){if(this.remoteParticipants.has(e)){let n=this.remoteParticipants.get(e);return t&&n.updateInfo(t)&&this.sidToIdentity.set(t.sid,t.identity),n}let n=this.createParticipant(e,t);return this.remoteParticipants.set(e,n),this.sidToIdentity.set(t.sid,t.identity),this.emitWhenConnected(cF.ParticipantConnected,n),n.on(cB.TrackPublished,e=>{this.emitWhenConnected(cF.TrackPublished,e,n)}).on(cB.TrackSubscribed,(e,t)=>{e.kind===rW.Kind.Audio?(e.on(cV.AudioPlaybackStarted,this.handleAudioPlaybackStarted),e.on(cV.AudioPlaybackFailed,this.handleAudioPlaybackFailed)):e.kind===rW.Kind.Video&&(e.on(cV.VideoPlaybackFailed,this.handleVideoPlaybackFailed),e.on(cV.VideoPlaybackStarted,this.handleVideoPlaybackStarted)),this.emitWhenConnected(cF.TrackSubscribed,e,t,n)}).on(cB.TrackUnpublished,e=>{this.emit(cF.TrackUnpublished,e,n)}).on(cB.TrackUnsubscribed,(e,t)=>{this.emit(cF.TrackUnsubscribed,e,t,n)}).on(cB.TrackMuted,e=>{this.emitWhenConnected(cF.TrackMuted,e,n)}).on(cB.TrackUnmuted,e=>{this.emitWhenConnected(cF.TrackUnmuted,e,n)}).on(cB.ParticipantMetadataChanged,e=>{this.emitWhenConnected(cF.ParticipantMetadataChanged,e,n)}).on(cB.ParticipantNameChanged,e=>{this.emitWhenConnected(cF.ParticipantNameChanged,e,n)}).on(cB.AttributesChanged,e=>{this.emitWhenConnected(cF.ParticipantAttributesChanged,e,n)}).on(cB.ConnectionQualityChanged,e=>{this.emitWhenConnected(cF.ConnectionQualityChanged,e,n)}).on(cB.ParticipantPermissionsChanged,e=>{this.emitWhenConnected(cF.ParticipantPermissionsChanged,e,n)}).on(cB.TrackSubscriptionStatusChanged,(e,t)=>{this.emitWhenConnected(cF.TrackSubscriptionStatusChanged,e,t,n)}).on(cB.TrackSubscriptionFailed,(e,t)=>{this.emit(cF.TrackSubscriptionFailed,e,n,t)}).on(cB.TrackSubscriptionPermissionChanged,(e,t)=>{this.emitWhenConnected(cF.TrackSubscriptionPermissionChanged,e,t,n)}).on(cB.Active,()=>{this.emitWhenConnected(cF.ParticipantActive,n),n.kind===e8.AGENT&&this.localParticipant.setActiveAgent(n)}),t&&n.updateInfo(t),n}sendSyncState(){let e=Array.from(this.remoteParticipants.values()).reduce((e,t)=>(e.push(...t.getTrackPublications()),e),[]),t=this.localParticipant.getTrackPublications(),n=this.outgoingDataTrackManager.queryPublished();this.engine.sendSyncState(e,t,n)}updateSubscriptions(){for(let t of this.remoteParticipants.values())for(let n of t.videoTrackPublications.values()){var e;n.isSubscribed&&(e=n)&&!e.isLocal&&n.emitTrackUpdate()}}getRemoteParticipantBySid(e){let t=this.sidToIdentity.get(e);if(t)return this.remoteParticipants.get(t)}registerConnectionReconcile(){this.clearConnectionReconcile();let e=0;this.connectionReconcileInterval=rP.setInterval(()=>{this.engine&&!this.engine.isClosed&&this.engine.verifyTransport()?e=0:(e++,this.log.warn("detected connection state mismatch",Object.assign(Object.assign({},this.logContext),{numFailures:e,engine:this.engine?{closed:this.engine.isClosed,transportsConnectedOrConnecting:this.engine.verifyTransport()}:void 0})),e>=3&&(this.recreateEngine(),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,eX.STATE_MISMATCH)))},4e3)}clearConnectionReconcile(){this.connectionReconcileInterval&&rP.clearInterval(this.connectionReconcileInterval)}setAndEmitConnectionState(e){return e!==this.state&&(this.state=e,this.incomingDataStreamManager.setConnected(e===ll.Connected),this.emit
2(cF.ConnectionStateChanged,this.state),!0)}emitBufferedEvents(){this.bufferedEvents.forEach(e=>{let[t,n]=e;this.emit(t,...n)}),this.bufferedEvents=[]}emitWhenConnected(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(this.state===ll.Reconnecting||this.isResuming||!this.engine||this.engine.pendingReconnect)this.bufferedEvents.push([e,n]);else if(this.state===ll.Connected)return this.emit(e,...n);return!1}simulateParticipants(e){return il(this,void 0,void 0,function*(){var t,n,i,r;let a=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 e5({sid:"RM_SIMULATED",name:"simulated-room",emptyTimeout:0,maxParticipants:0,creationTime:V.parse(new Date().getTime()),metadata:"",numParticipants:1,numPublishers:1,turnPassword:"",enabledCodecs:[],activeRecording:!1}),this.localParticipant.updateInfo(new e6({identity:"simulated-local",name:"local-name"})),this.setupLocalParticipantEvents(),this.emit(cF.SignalConnected),this.emit(cF.Connected),this.setAndEmitConnectionState(ll.Connected),a.video){let e=new oT(rW.Kind.Video,new tn({source:eK.CAMERA,sid:Math.floor(1e4*Math.random()).toString(),type:eJ.AUDIO,name:"video-dummy"}),new sR(a.useRealTracks&&(null==(t=window.navigator.mediaDevices)?void 0:t.getUserMedia)?(yield window.navigator.mediaDevices.getUserMedia({video:!0})).getVideoTracks()[0]:al(160*(null!=(n=s.aspectRatios[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(e),this.localParticipant.emit(cB.LocalTrackPublished,e)}if(a.audio){let e=new oT(rW.Kind.Audio,new tn({source:eK.MICROPHONE,sid:Math.floor(1e4*Math.random()).toString(),type:eJ.AUDIO}),new sm(a.useRealTracks&&(null==(i=navigator.mediaDevices)?void 0:i.getUserMedia)?(yield navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0]:ad(),void 0,!1,this.audioContext,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(e),this.localParticipant.emit(cB.LocalTrackPublished,e)}for(let e=0;e<s.count-1;e+=1){let t=new e6({sid:Math.floor(1e4*Math.random()).toString(),identity:"simulated-".concat(e),state:e9.ACTIVE,tracks:[],joinedAt:V.parse(Date.now())}),n=this.getOrCreateParticipant(t.identity,t);if(s.video){let i=al(160*(null!=(r=s.aspectRatios[e%s.aspectRatios.length])?r:1),160,!1,!0),a=new tn({source:eK.CAMERA,sid:Math.floor(1e4*Math.random()).toString(),type:eJ.AUDIO});n.addSubscribedMediaTrack(i,a.sid,new MediaStream([i]),new RTCRtpReceiver),t.tracks=[...t.tracks,a]}if(s.audio){let e=ad(),i=new tn({source:eK.MICROPHONE,sid:Math.floor(1e4*Math.random()).toString(),type:eJ.AUDIO});n.addSubscribedMediaTrack(e,i.sid,new MediaStream([e]),new RTCRtpReceiver),t.tracks=[...t.tracks,i]}n.updateInfo(t)}})}emit(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(e!==cF.ActiveSpeakersChanged&&e!==cF.TranscriptionReceived){let t=(function e(t){return t.map(t=>{if(t)return Array.isArray(t)?e(t):"object"==typeof t?"logContext"in t?t.logContext:void 0:t})})(n).filter(e=>void 0!==e);(e===cF.TrackSubscribed||e===cF.TrackUnsubscribed)&&this.log.trace("subscribe trace: ".concat(e),Object.assign(Object.assign({},this.logContext),{event:e,args:t})),this.log.debug("room event ".concat(e),Object.assign(Object.assign({},this.logContext),{event:e,args:t}))}return super.emit(e,...n)}}o_.cleanupRegistry="u">typeof FinalizationRegistry&&new FinalizationRegistry(e=>{e()}),(cP=ld||(ld={}))[cP.IDLE=0]="IDLE",cP[cP.RUNNING=1]="RUNNING",cP[cP.SKIPPED=2]="SKIPPED",cP[cP.SUCCESS=3]="SUCCESS",cP[cP.FAILED=4]="FAILED";class ox extends ip.EventEmitter{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};super(),this.status=ld.IDLE,this.logs=[],this.options={},this.url=e,this.token=t,this.name=this.constructor.name,this.room=new o_(n.roomOptions),this.connectOptions=n.connectOptions,this.options=n}run(e){return il(this,void 0,void 0,function*(){if(this.status!==ld.IDLE)throw Error("check is running already");this.setStatus(ld.RUNNING);try{yield this.perform()}catch(e){e instanceof Error&&(this.options.errorsAsWarnings?this.appendWarning(e.message):this.appendError(e.message))}return yield this.disconnect(),yield new Promise(e=>setTimeout(e,500)),this.status!==ld.SKIPPED&&this.setStatus(this.isSuccess()?ld.SUCCESS:ld.FAILED),e&&e(),this.getInfo()})}isSuccess(){return!this.logs.some(e=>"error"===e.level)}connect(e){return il(this,void 0,void 0,function*(){return this.room.state===ll.Connected||(e||(e=this.url),yield this.room.connect(e,this.token,this.connectOptions)),this.room})}disconnect(){return il(this,void 0,void 0,function*(){this.room&&this.room.state!==ll.Disconnected&&(yield this.room.disconnect(),yield new Promise(e=>setTimeout(e,500)))})}skip(){this.setStatus(ld.SKIPPED)}switchProtocol(e){return il(this,void 0,void 0,function*(){let t=!1,n=!1;if(this.room.on(cF.Reconnecting,()=>{t=!0}),this.room.once(cF.Reconnected,()=>{n=!0}),this.room.simulateScenario("force-".concat(e)),yield new Promise(e=>setTimeout(e,1e3)),!t)return;let i=Date.now()+1e4;for(;Date.now()<i;){if(n)return;yield r$(100)}throw Error("Could not reconnect using ".concat(e," protocol after 10 seconds"))})}appendMessage(e){this.logs.push({level:"info",message:e}
2),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 null==(e=this.room)?void 0:e.engine}getInfo(){return{logs:this.logs,name:this.name,status:this.status,description:this.description}}}ip.EventEmitter;class oO{}function oM(e,t,n){var i;return(t="symbol"==typeof(i=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t);if("object"!=typeof i)return i;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(t,"string"))?i:i+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}new TextEncoder;let oD=new TextDecoder;class oA extends Error{constructor(e,t){var n;super(e,t),oM(this,"code","ERR_JOSE_GENERIC"),this.name=this.constructor.name,null==(n=Error.captureStackTrace)||n.call(Error,this,this.constructor)}}oM(oA,"code","ERR_JOSE_GENERIC"),oM(class extends oA{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"unspecified",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"unspecified";super(e,{cause:{claim:n,reason:i,payload:t}}),oM(this,"code","ERR_JWT_CLAIM_VALIDATION_FAILED"),oM(this,"claim",void 0),oM(this,"reason",void 0),oM(this,"payload",void 0),this.claim=n,this.reason=i,this.payload=t}},"code","ERR_JWT_CLAIM_VALIDATION_FAILED"),oM(class extends oA{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"unspecified",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"unspecified";super(e,{cause:{claim:n,reason:i,payload:t}}),oM(this,"code","ERR_JWT_EXPIRED"),oM(this,"claim",void 0),oM(this,"reason",void 0),oM(this,"payload",void 0),this.claim=n,this.reason=i,this.payload=t}},"code","ERR_JWT_EXPIRED"),oM(class extends oA{constructor(){super(...arguments),oM(this,"code","ERR_JOSE_ALG_NOT_ALLOWED")}},"code","ERR_JOSE_ALG_NOT_ALLOWED"),oM(class extends oA{constructor(){super(...arguments),oM(this,"code","ERR_JOSE_NOT_SUPPORTED")}},"code","ERR_JOSE_NOT_SUPPORTED"),oM(class extends oA{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"decryption operation failed",t=arguments.length>1?arguments[1]:void 0;super(e,t),oM(this,"code","ERR_JWE_DECRYPTION_FAILED")}},"code","ERR_JWE_DECRYPTION_FAILED"),oM(class extends oA{constructor(){super(...arguments),oM(this,"code","ERR_JWE_INVALID")}},"code","ERR_JWE_INVALID"),oM(class extends oA{constructor(){super(...arguments),oM(this,"code","ERR_JWS_INVALID")}},"code","ERR_JWS_INVALID");class oN extends oA{constructor(){super(...arguments),oM(this,"code","ERR_JWT_INVALID")}}function oL(e){let t=function(e){let t,n;if("string"!=typeof e)throw new oN("JWTs must use Compact JWS serialization, JWT must be a string");let{1:i,length:r}=e.split(".");if(5===r)throw new oN("Only JWTs using Compact JWS serialization can be decoded");if(3!==r)throw new oN("Invalid JWT");if(!i)throw new oN("JWTs must contain a payload");try{t=function(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof e?e:oD.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=oD.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/");try{var n=t;if(Uint8Array.fromBase64)return Uint8Array.fromBase64(n);let e=atob(n),i=new Uint8Array(e.length);for(let t=0;t<e.length;t++)i[t]=e.charCodeAt(t);return i}catch(e){throw TypeError("The input to be decoded is not correctly encoded.")}}(i)}catch(e){throw new oN("Failed to base64url decode the payload")}try{n=JSON.parse(oD.decode(t))}catch(e){throw new oN("Failed to parse the decoded payload as JSON")}if(!function(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(n))throw new oN("Invalid JWT Claims Set");return n}(e),{roomConfig:n}=t;return Object.assign(Object.assign({},ic(t,["roomConfig"])),{roomConfig:t.roomConfig?n8.fromJson(t.roomConfig,{ignoreUnknownFields:!0}):void 0})}function oU(e){var t,n;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=ab(e)?e.mediaStreamTrack:e,a=r.getSettings(),s={facingMode:null!=(t=i.defaultFacingMode)?t:"user",confidence:"low"};if("facingMode"in a){let e=a.facingMode;ii.trace("rawFacingMode",{rawFacingMode:e}),e&&"string"==typeof e&&(void 0===(n=e)||["user","environment","left","right"].includes(n))&&(s={facingMode:e,confidence:"high"})}if(["low","medium"].includes(s.confidence)){ii.trace("Try to get facing mode from device label: (".concat(r.label,")"));let e=function(e){var t;let n=e.trim().toLowerCase();if(""!==n)return oj.has(n)?oj.get(n):null==(t=Array.from(oF.entries()).find(e=>{let[t]=e;return n.includes(t)}))?void 0:t[1]}(r.label);void 0!==e&&(s=e)}return s}
2oM(oN,"code","ERR_JWT_INVALID"),oM(class extends oA{constructor(){super(...arguments),oM(this,"code","ERR_JWK_INVALID")}},"code","ERR_JWK_INVALID"),oM(class extends oA{constructor(){super(...arguments),oM(this,"code","ERR_JWKS_INVALID")}},"code","ERR_JWKS_INVALID"),oM(class extends oA{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"no applicable key found in the JSON Web Key Set",t=arguments.length>1?arguments[1]:void 0;super(e,t),oM(this,"code","ERR_JWKS_NO_MATCHING_KEY")}},"code","ERR_JWKS_NO_MATCHING_KEY"),oM(class extends oA{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"multiple matching keys found in the JSON Web Key Set",t=arguments.length>1?arguments[1]:void 0;super(e,t),oM(this,Symbol.asyncIterator,void 0),oM(this,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS")}},"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS"),oM(class extends oA{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"request timed out",t=arguments.length>1?arguments[1]:void 0;super(e,t),oM(this,"code","ERR_JWKS_TIMEOUT")}},"code","ERR_JWKS_TIMEOUT"),oM(class extends oA{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"signature verification failed",t=arguments.length>1?arguments[1]:void 0;super(e,t),oM(this,"code","ERR_JWS_SIGNATURE_VERIFICATION_FAILED")}},"code","ERR_JWS_SIGNATURE_VERIFICATION_FAILED");let oj=new Map([["obs virtual camera",{facingMode:"environment",confidence:"medium"}]]),oF=new Map([["iphone",{facingMode:"environment",confidence:"medium"}],["ipad",{facingMode:"environment",confidence:"medium"}]]),oB=Symbol.for("lk.serializer");e.s(["ConnectionQuality",0,lc,"ConnectionState",0,ll,"LocalTrackPublication",0,oT,"LogLevel",0,cO,"MediaDeviceFailure",0,cj,"Mutex",0,C,"ParticipantEvent",0,cB,"ParticipantKind",0,e8,"RemoteAudioTrack",0,of,"RemoteTrackPublication",0,oR,"Room",0,o_,"RoomEvent",0,cF,"TokenSourceConfigurable",0,oO,"Track",0,rW,"TrackEvent",0,cV,"compareVersions",0,an,"createAudioAnalyser",0,ah,"decodeTokenPayload",0,oL,"facingModeFromLocalTrack",0,oU,"getBrowser",0,rd,"setLogExtension",0,function(e,t){(t?[t]:ir).forEach(t=>{let n=t.methodFactory;t.methodFactory=(t,i,r)=>{let a=n(t,i,r),s=cO[t],o=s>=i&&s<cO.silent;return(t,n)=>{n?a(t,n):a(t),o&&e(s,t,n)}},t.setLevel(t.getLevel())})},"setLogLevel",0,function(e,t){if(t)it.getLogger(t).setLevel(e);else for(let t of ir)t.setLevel(e)}],368791);var oq="u">typeof globalThis?globalThis:"u">typeof window?window:e.g;function oV(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var oH,oz,oW,oG,oJ,oK,o$,oY,oQ,oX,oZ,o0,o1,o2,o5,o3,o4,o6,o9,o8,o7,ce,ct,cn,ci,cr,ca,cs,co,cc,cl,cd,cu,ch,cp,cm,cf,cg,cv,cb,cy,ck,cT,cS,cC,cw,cE,cP,cR,cI,c_,cx,cO,cM,cD,cA,cN,cL,cU,cj,cF,cB,cq,cV,cH,cz,cW,cG,cJ,cK,c$,cY,cQ,cX,cZ,c0,c1,c2,c5,c3,c4,c6,c9,c8,c7,le,lt,ln,li,lr,la,ls,lo,lc,ll,ld,lu,lh={exports:{}},lp=lh.exports;let lm=oV((lu||(lu=1,hT=function(){var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],r={},a=null;function s(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch{return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(){for(var n=this.getLevel(),r=0;r<i.length;r++){var a=i[r];this[a]=r<n?e:this.methodFactory(a,n,this.name)}if(this.log=this.debug,typeof console===t&&n<this.levels.SILENT)return"No console available for logging"}function l(e){return function(){typeof console!==t&&(c.call(this),this[e].apply(this,arguments))}}function d(i,r,a){var c;return"debug"===(c=i)&&(c="log"),typeof console!==t&&("trace"===c&&n?o:void 0!==console[c]?s(console,c):void 0!==console.log?s(console,"log"):e)||l.apply(this,arguments)}function u(e,n){var s,o,l,u=this,h="loglevel";function p(){var e;if(!(typeof window===t||!h)){try{e=window.localStorage[h]}catch{}if(typeof e===t)try{var n=window.document.cookie,i=encodeURIComponent(h),r=n.indexOf(i+"=");-1!==r&&(e=/^([^;]+)/.exec(n.slice(r+i.length+1))[1])}catch{}return void 0===u.levels[e]&&(e=void 0),e}}function m(e){var t=e;if("string"==typeof t&&void 0!==u.levels[t.toUpperCase()]&&(t=u.levels[t.toUpperCase()]),"number"==typeof t&&t>=0&&t<=u.levels.SILENT)return t;
2throw TypeError("log.setLevel() called with invalid level: "+e)}"string"==typeof e?h+=":"+e:"symbol"==typeof e&&(h=void 0),u.name=e,u.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},u.methodFactory=n||d,u.getLevel=function(){return l??o??s},u.setLevel=function(e,n){return l=m(e),!1!==n&&function(e){var n=(i[e]||"silent").toUpperCase();if(!(typeof window===t||!h)){try{window.localStorage[h]=n;return}catch{}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch{}}}(l),c.call(u)},u.setDefaultLevel=function(e){o=m(e),p()||u.setLevel(e,!1)},u.resetLevel=function(){l=null,function(){if(!(typeof window===t||!h)){try{window.localStorage.removeItem(h)}catch{}try{window.document.cookie=encodeURIComponent(h)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}(),c.call(u)},u.enableAll=function(e){u.setLevel(u.levels.TRACE,e)},u.disableAll=function(e){u.setLevel(u.levels.SILENT,e)},u.rebuild=function(){if(a!==u&&(s=m(a.getLevel())),c.call(u),a===u)for(var e in r)r[e].rebuild()},s=m(a?a.getLevel():"WARN");var f=p();null!=f&&(l=m(f)),c.call(u)}(a=new u).getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw TypeError("You must supply a name when creating a logger.");var t=r[e];return t||(t=r[e]=new u(e,a.methodFactory)),t};var h=typeof window!==t?window.log:void 0;return a.noConflict=function(){return typeof window!==t&&window.log===a&&(window.log=h),a},a.getLoggers=function(){return r},a.default=a,a},lh.exports?lh.exports=hT():lp.log=hT()),lh.exports));var lf=function(e,t){return(lf=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function lg(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}lf(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function lv(e,t){var n,i,r,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return s.next=o(0),s.throw=o(1),s.return=o(2),"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(o){return function(c){var l=[o,c];if(n)throw TypeError("Generator is already executing.");for(;s&&(s=0,l[0]&&(a=0)),a;)try{if(n=1,i&&(r=2&l[0]?i.return:l[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,l[1])).done)return r;switch(i=0,r&&(l=[2&l[0],r.value]),l[0]){case 0:case 1:r=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,i=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!r||l[1]>r[0]&&l[1]<r[3])){a.label=l[1];break}if(6===l[0]&&a.label<r[1]){a.label=r[1],r=l;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(l);break}r[2]&&a.ops.pop(),a.trys.pop();continue}l=t.call(e,a)}catch(e){l=[6,e],i=0}finally{n=r=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}function lb(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function ly(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,a=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(i=a.next()).done;)s.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return s}function lk(e,t,n){if(n||2==arguments.length)for(var i,r=0,a=t.length;r<a;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}function lT(e){return this instanceof lT?(this.v=e,this):new lT(e)}function lS(e){return"function"==typeof e}function lC(e){var t=e(function(e){Error.call(e),e.stack=Error().stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var lw=lC(function(e){return function(t){e(this),this.message=t?t.length+` errors occurred during unsubscription:
3`+t.map(function(e,t){return t+1+") "+e.toString()}).join(`
4  `):"",this.name="UnsubscriptionError",this.errors=t}});function lE(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var lP=function(){var e;function t(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var e,t,n,i,r;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=lb(a
4),o=s.next();!o.done;o=s.next())o.value.remove(this)}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else a.remove(this);var c=this.initialTeardown;if(lS(c))try{c()}catch(e){r=e instanceof lw?e.errors:[e]}var l=this._finalizers;if(l){this._finalizers=null;try{for(var d=lb(l),u=d.next();!u.done;u=d.next()){var h=u.value;try{l_(h)}catch(e){r=r??[],e instanceof lw?r=lk(lk([],ly(r)),ly(e.errors)):r.push(e)}}}catch(e){n={error:e}}finally{try{u&&!u.done&&(i=d.return)&&i.call(d)}finally{if(n)throw n.error}}}if(r)throw new lw(r)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)l_(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=null!=(n=this._finalizers)?n:[]).push(e)}},t.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},t.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},t.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&lE(t,e)},t.prototype.remove=function(e){var n=this._finalizers;n&&lE(n,e),e instanceof t&&e._removeParent(this)},(e=new t).closed=!0,t.EMPTY=e,t}(),lR=lP.EMPTY;function lI(e){return e instanceof lP||e&&"closed"in e&&lS(e.remove)&&lS(e.add)&&lS(e.unsubscribe)}function l_(e){lS(e)?e():e.unsubscribe()}var lx=void 0,lO=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return setTimeout.apply(void 0,lk([e,t],ly(n)))};function lM(e){lO(function(){throw e})}function lD(){}var lA=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,lI(t)&&t.add(n)):n.destination=lU,n}return lg(t,e),t.create=function(e,t,n){return new lL(e,t,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(lP),lN=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){lM(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){lM(e)}else lM(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){lM(e)}},e}(),lL=function(e){function t(t,n,i){var r=e.call(this)||this;return r.destination=new lN(lS(t)||!t?{next:t??void 0,error:n??void 0,complete:i??void 0}:t),r}return lg(t,e),t}(lA),lU={closed:!0,next:lD,error:function(e){throw e},complete:lD},lj="function"==typeof Symbol&&Symbol.observable||"@@observable";function lF(e){return e}var lB=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var i,r,a=this,s=!function(e){return e&&e instanceof lA||e&&lS(e.next)&&lS(e.error)&&lS(e.complete)&&lI(e)}(e)?new lL(e,t,n):e;return i=a.operator,r=a.source,s.add(i?i.call(s,r):r?a._subscribe(s):a._trySubscribe(s)),s},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=lq(t))(function(t,i){var r=new lL({next:function(t){try{e(t)}catch(e){i(e),r.unsubscribe()}},error:i,complete:t});n.subscribe(r)})},e.prototype._subscribe=function(e){var t;return null==(t=this.source)?void 0:t.subscribe(e)},e.prototype[lj]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return(0===e.length?lF:1===e.length?e[0]:function(t){return e.reduce(function(e,t){return t(e)},t)})(this)},e.prototype.toPromise=function(e){var t=this;return new(e=lq(e))(function(e,n){var i;t.subscribe(function(e){return i=e},function(e){return n(e)},function(){return e(i)})})},e.create=function(t){return new e(t)},e}();function lq(e){var t;return null!=(t=e??lx)?t:Promise}function lV(e){return function(t){if(lS(null==t?void 0:t.lift))return t.lift(function(t){try{return e(t,this)}catch(e){this.error(e)}});throw TypeError("Unable to lift unknown Observable type")}}function lH(e,t,n,i,r){return new lz(e,t,n,i,r)}var lz=function(e){function t(t,n,i,r,a,s){var o=e.call(this,t)||this;return o.onFinalize=a,o.shouldUnsubscribe=s,o._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,o._error=r?function(e){try{r(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,o._complete=i?function(){try{i()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,o}return lg(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),n||null==(t=this.onFinalize)||t.call(this)}},t}(lA),lW=lC(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),lG=function(e){function t(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return lg(t,e),t.prototype.lift=function(e){var t=new lJ(this,this);return t.operator=e,t},t.prototype._throwIfClosed=function(){if(this.closed)throw new lW},t.prototype.next=function(e){var t,n;if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));try{for(var i=lb(this.currentObservers),r=i.next();!r.done;r=i.next())r.value.next(e)}catch(e){t={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}}},t.prototype.error=function(e){if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;for(var t=this.observers;t.length;)t.shift().error(e)}},t.prototype.complete=function(){if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;for(var e=this.observers;e.length;)e.shift().complete()}},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return(null==(e=this.observers)?void 0:e.length)>0}
4,enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var t=this,n=this.hasError,i=this.isStopped,r=this.observers;return n||i?lR:(this.currentObservers=null,r.push(e),new lP(function(){t.currentObservers=null,lE(r,e)}))},t.prototype._checkFinalizedStatuses=function(e){var t=this.hasError,n=this.thrownError,i=this.isStopped;t?e.error(n):i&&e.complete()},t.prototype.asObservable=function(){var e=new lB;return e.source=this,e},t.create=function(e,t){return new lJ(e,t)},t}(lB),lJ=function(e){function t(t,n){var i=e.call(this)||this;return i.destination=t,i.source=n,i}return lg(t,e),t.prototype.next=function(e){var t,n;null==(n=null==(t=this.destination)?void 0:t.next)||n.call(t,e)},t.prototype.error=function(e){var t,n;null==(n=null==(t=this.destination)?void 0:t.error)||n.call(t,e)},t.prototype.complete=function(){var e,t;null==(t=null==(e=this.destination)?void 0:e.complete)||t.call(e)},t.prototype._subscribe=function(e){var t,n;return null!=(n=null==(t=this.source)?void 0:t.subscribe(e))?n:lR},t}(lG),lK=function(e){function t(t){var n=e.call(this)||this;return n._value=t,n}return lg(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(t){var n=e.prototype._subscribe.call(this,t);return n.closed||t.next(this._value),n},t.prototype.getValue=function(){var e=this.hasError,t=this.thrownError,n=this._value;if(e)throw t;return this._throwIfClosed(),n},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(lG),l$=function(){return Date.now()},lY=function(e){function t(t,n){return e.call(this)||this}return lg(t,e),t.prototype.schedule=function(e,t){return this},t}(lP),lQ=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return setInterval.apply(void 0,lk([e,t],ly(n)))},lX=function(e){function t(t,n){var i=e.call(this,t,n)||this;
4return i.scheduler=t,i.work=n,i.pending=!1,i}return lg(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var n,i=this.id,r=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(r,i,t)),this.pending=!0,this.delay=t,this.id=null!=(n=this.id)?n:this.requestAsyncId(r,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),lQ(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return t;null!=t&&clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n,i=!1;try{this.work(e)}catch(e){i=!0,n=e||Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),n},t.prototype.unsubscribe=function(){if(!this.closed){var t=this.id,n=this.scheduler,i=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,lE(i,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(lY),lZ=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=l$,e}(),l0=new(function(e){function t(t,n){void 0===n&&(n=lZ.now);var i=e.call(this,t,n)||this;return i.actions=[],i._active=!1,i}return lg(t,e),t.prototype.flush=function(e){var t,n=this.actions;if(this._active)return void n.push(e);this._active=!0;do if(t=e.execute(e.state,e.delay))break;while(e=n.shift())if(this._active=!1,t){for(;e=n.shift();)e.unsubscribe();throw t}},t}(lZ))(lX);function l1(e){var t;return(t=e[e.length-1])&&lS(t.schedule)?e.pop():void 0}var l2=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function l5(e){return lS(null==e?void 0:e.then)}function l3(e){return Symbol.asyncIterator&&lS(null==e?void 0:e[Symbol.asyncIterator])}function l4(e){return TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var l6="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function l9(e){return lS(null==e?void 0:e[l6])}function l8(e){return function(e,t,n){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var i,r=n.apply(e,t||[]),a=[];return i=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,l)}}),i[Symbol.asyncIterator]=function(){return this},i;function s(e,t){r[e]&&(i[e]=function(t){return new Promise(function(n,i){a.push([e,t,n,i])>1||o(e,t)})},t&&(i[e]=t(i[e])))}function o(e,t){try{var n;(n=r[e](t)).value instanceof lT?Promise.resolve(n.value.v).then(c,l):d(a[0][2],n)}catch(e){d(a[0][3],e)}}function c(e){o("next",e)}function l(e){o("throw",e)}function d(e,t){e(t),a.shift(),a.length&&o(a[0][0],a[0][1])}}(this,arguments,function(){var t,n,i;return lv(this,function(r){switch(r.label){case 0:t=e.getReader(),r.label=1;case 1:r.trys.push([1,,9,10]),r.label=2;case 2:return[4,lT(t.read())];case 3:return i=(n=r.sent()).value,n.done?[4,lT(void 0)]:[3,5];case 4:return[2,r.sent()];case 5:return[4,lT(i)];case 6:return[4,r.sent()];case 7:return r.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function l7(e){return lS(null==e?void 0:e.getReader)}function de(e){if(e instanceof lB)return e;if(null!=e){var t,n,i,r;if(lS(e[lj])){return t=e,new lB(function(e){var n=t[lj]();if(lS(n.subscribe))return n.subscribe(e);throw TypeError("Provided object does not correctly implement Symbol.observable")})}if(l2(e)){return n=e,new lB(function(e){for(var t=0;t<n.length&&!e.closed;t++)e.next(n[t]);e.complete()})}if(l5(e)){return i=e,new lB(function(e){i.then(function(t){e.closed||(e.next(t),e.complete())},function(t){return e.error(t)}).then(null,lM)})}if(l3(e))return dt(e);if(l9(e)){return r=e,new lB(function(e){var t,n;try{for(var i=lb(r),a=i.next();!a.done;a=i.next()){var s=a.value;if(e.next(s),e.closed)return}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}e.complete()})}if(l7(e))return dt(l8(e))}throw l4(e)}function dt(e){return new lB(function(t){(function(e,t){var n,i,r,a,s,o,c,l;return s=this,o=void 0,c=void 0,l=function(){var s;return lv(this,function(o){switch(o.label){case 0:o.trys.push([0,5,6,11]),n=function(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=lb(e),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(n){t[n]=e[n]&&function(t){return new Promise(function(i,r){var a,s,o;a=i,s=r,o=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){a({value:e,done:o})},s)})}}}(e),o.label=1;case 1:return[4,n.next()];case 2:if((i=o.sent()).done)return[3,4];if(s=i.value,t.next(s),t.closed)return[2];o.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return r={error:o.sent()},[3,11];case 6:return o.trys.push([6,,9,10]),i&&!i.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:o.sent(),o.label=8;case 8:return[3,10];case 9:if(r)throw r.error;return[7];
4case 10:return[7];case 11:return t.complete(),[2]}})},new(c||(c=Promise))(function(e,t){function n(e){try{r(l.next(e))}catch(e){t(e)}}function i(e){try{r(l.throw(e))}catch(e){t(e)}}function r(t){var r;t.done?e(t.value):((r=t.value)instanceof c?r:new c(function(e){e(r)})).then(n,i)}r((l=l.apply(s,o||[])).next())})})(e,t).catch(function(e){return t.error(e)})})}function dn(e,t,n,i,r){void 0===i&&(i=0),void 0===r&&(r=!1);var a=t.schedule(function(){n(),r?e.add(this.schedule(null,i)):this.unsubscribe()},i);if(e.add(a),!r)return a}function di(e,t){return void 0===t&&(t=0),lV(function(n,i){n.subscribe(lH(i,function(n){return dn(i,e,function(){return i.next(n)},t)},function(){return dn(i,e,function(){return i.complete()},t)},function(n){return dn(i,e,function(){return i.error(n)},t)}))})}function dr(e,t){return void 0===t&&(t=0),lV(function(n,i){i.add(e.schedule(function(){return n.subscribe(i)},t))})}function da(e,t){if(!e)throw Error("Iterable cannot be null");return new lB(function(n){dn(n,t,function(){var i=e[Symbol.asyncIterator]();dn(n,t,function(){i.next().then(function(e){e.done?n.complete():n.next(e.value)})},0,!0)})})}function ds(e,t){return t?function(e,t){if(null!=e){if(lS(e[lj]))return de(e).pipe(dr(t),di(t));if(l2(e))return new lB(function(n){var i=0;return t.schedule(function(){i===e.length?n.complete():(n.next(e[i++]),n.closed||this.schedule())})});if(l5(e))return de(e).pipe(dr(t),di(t));if(l3(e))return da(e,t);if(l9(e))return new lB(function(n){var i;return dn(n,t,function(){i=e[l6](),dn(n,t,function(){var e,t,r;try{t=(e=i.next()).value,r=e.done}catch(e){n.error(e);return}r?n.complete():n.next(t)},0,!0)}),function(){return lS(null==i?void 0:i.return)&&i.return()}});if(l7(e))return da(l8(e),t)}throw l4(e)}(e,t):de(e)}function dc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=l1(e);return ds(e,n)}var dl=lC(function(e){return function(t){void 0===t&&(t=null),e(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=t}});function dd(e){throw new dl(e)}function du(e,t){return lV(function(n,i){var r=0;n.subscribe(lH(i,function(n){i.next(e.call(t,n,r++))}))})}var dh=Array.isArray;function dp(e,t,n){return void 0===n&&(n=1/0),lS(t)?dp(function(n,i){return du(function(e,r){return t(n,e,i,r)})(de(e(n,i)))},n):("number"==typeof t&&(n=t),lV(function(t,i){var r,a,s,o,c,l,d;return r=n,a=[],s=0,o=0,c=!1,l=function(){!c||a.length||s||i.complete()},d=function(t){s++;var n=!1;de(e(t,o++)).subscribe(lH(i,function(e){i.next(e)},function(){n=!0},void 0,function(){if(n)try{for(s--;a.length&&s<r;)!function(){var e=a.shift();d(e)}();l()}catch(e){i.error(e)}}))},t.subscribe(lH(i,function(e){return s<r?d(e):a.push(e)},function(){c=!0,l()})),function(){}}))}function dm(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return dp(lF,1)(ds(e,l1(e)))}var df=["addListener","removeListener"],dg=["addEventListener","removeEventListener"],dv=["on","off"];function db(e,t){return function(n){return function(i){return e[n](t,i)}}}function dy(e,t){return lV(function(n,i){var r=0;n.subscribe(lH(i,function(n){return e.call(t,n,r++)&&i.next(n)}))})}function dk(e,t){return e===t}function dT(e,t){var n;return lV((n=arguments.length>=2,function(i,r){var a=n,s=t,o=0;i.subscribe(lH(r,function(t){var n=o++;s=a?e(s,t,n):(a=!0,t),r.next(s)},void 0))}))}function dS(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];if(!0===t)return void e();if(!1!==t){var r=new lL({next:function(){r.unsubscribe(),e()}});return de(t.apply(void 0,lk([],ly(n)))).subscribe(r)}}function dC(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=l1(e);return lV(function(t,i){(n?dm(e,t,n):dm(e,t)).subscribe(i)})}function dw(e,t){return lV(function(n,i){var r=null,a=0,s=!1,o=function(){return s&&!r&&i.complete()};n.subscribe(lH(i,function(n){null==r||r.unsubscribe();var s=0,c=a++;de(e(n,c)).subscribe(r=lH(i,function(e){return i.next(t?t(n,e,c,s++):e)},function(){r=null,o()}))},function(){s=!0,o()}))})}function dE(e){return lV(function(t,n){de(e).subscribe(lH(n,function(){return n.complete()},lD)),n.closed||t.subscribe(n)})}var dP=Object.defineProperty,dR=Object.defineProperties,dI=Object.getOwnPropertyDescriptors,d_=Object.getOwnPropertySymbols,dx=Object.prototype.hasOwnProperty,dO=Object.prototype.propertyIsEnumerable,dM=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),dD=(e,t,n)=>t in e?dP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dA=(e,t)=>{for(var n in t||(t={}
4))dx.call(t,n)&&dD(e,n,t[n]);if(d_)for(var n of d_(t))dO.call(t,n)&&dD(e,n,t[n]);return e},dN=(e,t,n)=>new Promise((i,r)=>{var a=e=>{try{o(n.next(e))}catch(e){r(e)}},s=e=>{try{o(n.throw(e))}catch(e){r(e)}},o=e=>e.done?i(e.value):Promise.resolve(e.value).then(a,s);o((n=n.apply(e,t)).next())});function dL(e){var t,n,i;return!(typeof e>"u")&&(!!(t=e)&&t.hasOwnProperty("participant")&&t.hasOwnProperty("source")&&t.hasOwnProperty("track")&&"u">typeof(null==(n=t.publication)?void 0:n.track)||!!(i=e)&&i.hasOwnProperty("participant")&&i.hasOwnProperty("source")&&i.hasOwnProperty("publication")&&"u">typeof i.publication)}function dU(e){return!!e&&e.hasOwnProperty("participant")&&e.hasOwnProperty("source")&&typeof e.publication>"u"}function dj(e){if("string"==typeof e||"number"==typeof e)return`${e}`;if(dU(e))return`${e.participant.identity}_${e.source}_placeholder`;if(dL(e))return`${e.participant.identity}_${e.publication.source}_${e.publication.trackSid}`;throw Error(`Can't generate a id for the given track reference: ${e}`)}function dF(e,t){return!(typeof t>"u")&&(dL(e)?t.some(t=>t.participant.identity===e.participant.identity&&dL(t)&&t.publication.trackSid===e.publication.trackSid):!!dU(e)&&t.some(t=>t.participant.identity===e.participant.identity&&dU(t)&&t.source===e.source))}var dB="[^\\.\\s@:](?:[^\\s@:]*[^\\s@:\\.])?@[^\\.\\s@]+(?:\\.[^\\.\\s@]+)*",dq=[cF.ConnectionStateChanged,cF.RoomMetadataChanged,cF.ActiveSpeakersChanged,cF.ConnectionQualityChanged,cF.ParticipantConnected,cF.ParticipantDisconnected,cF.ParticipantPermissionsChanged,cF.ParticipantMetadataChanged,cF.ParticipantNameChanged,cF.ParticipantAttributesChanged,cF.TrackMuted,cF.TrackUnmuted,cF.TrackPublished,cF.TrackUnpublished,cF.TrackStreamStateChanged,cF.TrackSubscriptionFailed,cF.TrackSubscriptionPermissionChanged,cF.TrackSubscriptionStatusChanged,cF.LocalTrackPublished,cF.LocalTrackUnpublished],dV=[cB.TrackPublished,cB.TrackUnpublished,cB.TrackMuted,cB.TrackUnmuted,cB.TrackStreamStateChanged,cB.TrackSubscribed,cB.TrackUnsubscribed,cB.TrackSubscriptionPermissionChanged,cB.TrackSubscriptionFailed,cB.LocalTrackPublished,cB.LocalTrackUnpublished],dH=[cB.ConnectionQualityChanged,cB.IsSpeakingChanged,cB.ParticipantMetadataChanged,cB.ParticipantPermissionsChanged,cB.TrackMuted,cB.TrackUnmuted,cB.TrackPublished,cB.TrackUnpublished,cB.TrackStreamStateChanged,cB.TrackSubscriptionFailed,cB.TrackSubscriptionPermissionChanged,cB.TrackSubscriptionStatusChanged,cB.LocalTrackPublished,cB.LocalTrackUnpublished],dz=lm.getLogger("lk-components-js");dz.setDefaultLevel("WARN");var dW=[{columns:1,rows:1},{columns:1,rows:2,orientation:"portrait"},{columns:2,rows:1,orientation:"landscape"},{columns:2,rows:2,minWidth:560},{columns:3,rows:3,minWidth:700},{columns:4,rows:4,minWidth:960},{columns:5,rows:5,minWidth:1100}];function dG(e,t,n,i){if(e.length<1)throw Error("At least one grid layout definition must be provided.");let r=[...e].map(e=>{var t,n;return{name:`${e.columns}x${e.rows}`,columns:e.columns,rows:e.rows,maxTiles:e.columns*e.rows,minWidth:null!=(t=e.minWidth)?t:0,minHeight:null!=(n=e.minHeight)?n:0,orientation:e.orientation}}).sort((e,t)=>e.maxTiles!==t.maxTiles?e.maxTiles-t.maxTiles:0!==e.minWidth||0!==t.minWidth?e.minWidth-t.minWidth:0!==e.minHeight||0!==t.minHeight?e.minHeight-t.minHeight:0);if(n<=0||i<=0)return r[0];let a=0,s=n/i>1?"landscape":"portrait",o=r.find((e,n,i)=>{a=n;let r=-1!==i.findIndex((t,i)=>{let r=!t.orientation||t.orientation===s,a=t.maxTiles===e.maxTiles;return i>n&&a&&r});return e.maxTiles>=t&&!r});if(void 0===o)if(o=r[r.length-1])dz.warn(`No layout found for: participantCount: ${t}, width/height: ${n}/${i} fallback to biggest available layout (${o}).`);else throw Error("No layout or fallback layout found.");if((n<o.minWidth||i<o.minHeight)&&a>0){let e=r[a-1];o=dG(r.slice(0,a),e.maxTiles,n,i)}return o}var dJ=((o=dJ||{}).AgentState="lk.agent.state",o.PublishOnBehalf="lk.publish_on_behalf",o.TranscriptionFinal="lk.transcription_final",o.TranscriptionSegmentId="lk.segment_id",o.TranscribedTrackId="lk.transcribed_track_id",o),dK=[],d$={showChat:!1,unreadMessages:0,showSettings:!1};function dY(e){return"object"==typeof e}function dQ(e){return Array.isArray(e)&&e.filter(dY).length>0}function dX(e,t){return t.audioLevel-e.audioLevel}function dZ(e,t){return e.isSpeaking===t.isSpeaking?0:e.isSpeaking?-1:1}function d0(e,t){var n,i,r,a;return void 0!==e.lastSpokeAt||void 0!==t.lastSpokeAt?(null!=(i=null==(n=t.lastSpokeAt)?void 0:n.getTime())?i:0)-(null!=(a=null==(r=e.lastSpokeAt)?void 0:r.getTime())?a:0):0}function d1(e,t){var n,i,r,a;return(null!=(i=null==(n=e.joinedAt)?void 0:n.getTime())?i:0)-(null!=(a=null==(r=t.joinedAt)?void 0:r.getTime())?a:0)}function d2(e){let t,n,i,r,a=[],s=[],o=[],c=[];
4e.forEach(e=>{e.participant.isLocal&&e.source===rW.Source.Camera?a.push(e):e.source===rW.Source.ScreenShare?s.push(e):e.source===rW.Source.Camera?o.push(e):c.push(e)});return[...a,...(t=[],n=[],s.forEach(e=>{e.participant.isLocal?t.push(e):n.push(e)}),t.sort((e,t)=>d1(e.participant,t.participant)),n.sort((e,t)=>d1(e.participant,t.participant)),[...n,...t]),...(i=[],r=[],o.forEach(e=>{e.participant.isLocal?i.push(e):r.push(e)}),r.sort((e,t)=>{let n;return e.participant.isSpeaking&&t.participant.isSpeaking?dX(e.participant,t.participant):e.participant.isSpeaking!==t.participant.isSpeaking?dZ(e.participant,t.participant):e.participant.lastSpokeAt!==t.participant.lastSpokeAt?d0(e.participant,t.participant):dL(e)!==dL(t)?dL(e)?dL(t)?0:-1:+!!dL(t):e.participant.isCameraEnabled!==t.participant.isCameraEnabled?(n=e.participant.isCameraEnabled)!==t.participant.isCameraEnabled?n?-1:1:0:d1(e.participant,t.participant)}),[...i,...r]),...c]}function d5(e,t){return Array(Math.max(e.length,t.length)).fill([]).map((n,i)=>[e[i],t[i]])}function d3(e,t,n){return e.filter(e=>!t.map(e=>n(e)).includes(n(e)))}function d4(e){return e.map(e=>"string"==typeof e||"number"==typeof e?`${e}`:dj(e))}function d6(e,t){let n=t.findIndex(t=>dj(t)===dj(e));if(-1===n)throw Error(`Element not part of the array: ${dj(e)} not in ${d4(t)}`);return n}function d9(e,t){return e.reduce((e,n,i)=>i%t==0?[...e,[n]]:[...e.slice(0,-1),[...e.slice(-1)[0],n]],[])}function d8(e,t,n){var i,r;let a=(i=e,r=t,i.map(e=>r.find(t=>dj(e)===dj(t)||"number"!=typeof e&&dU(e)&&dL(t)&&dU(e)&&dL(t)&&t.participant.identity===e.participant.identity&&t.source===e.source)??e));if(a.length<t.length){let e=d3(t,a,dj);a=[...a,...e]}if(d5(d9(a,n),d9(t,n)).forEach(([e,t],i)=>{if(e&&t){var r;let s={dropped:d3(r=d9(a,n)[i],t,dj),added:d3(t,r,dj)};(0!==s.added.length||0!==s.dropped.length)&&(dz.debug(`Detected visual changes on page: ${i}, current: ${d4(e)}, next: ${d4(t)}`,{changes:s}),s.added.length===s.dropped.length&&d5(s.added,s.dropped).forEac
4h(([e,t])=>{if(e&&t){var n;let i,r;i=d6(e,n=a),r=d6(t,n),n.splice(i,1,t),n.splice(r,1,e),a=n}else throw Error(`For a swap action we need a addition and a removal one is missing: ${e}, ${t}`)}),0===s.added.length&&s.dropped.length>0&&s.dropped.forEach(e=>{var t;let n;n=d6(e,t=a),t.splice(n,1),a=t}),s.added.length>0&&0===s.dropped.length&&s.added.forEach(e=>{a=[...a,e]}))}}),a.length>t.length){let e=d3(a,t,dj);a=a.filter(t=>!e.map(dj).includes(dj(t)))}return a}function d7(e){return`lk-${e}`}function ue(e){let t=ut(e),n=uu(e.participant).pipe(du(()=>ut(e)),dC(t));return{className:d7(e.source===rW.Source.Camera||e.source===rW.Source.ScreenShare?"participant-media-video":"participant-media-audio"),trackObserver:n}}function ut(e){if(dL(e))return e.publication;{let{source:t,name:n,participant:i}=e;if(t&&n)return i.getTrackPublications().find(e=>e.source===t&&e.trackName===n);if(n)return i.getTrackPublicationByName(n);if(t)return i.getTrackPublication(t);throw Error("At least one of source and name needs to be defined")}}function un(e,...t){return new lB(n=>{let i=()=>{n.next(e)};return t.forEach(t=>{e.on(t,i)}),()=>{t.forEach(t=>{e.off(t,i)})}}).pipe(dC(e))}function ui(e,t){return new lB(n=>{let i=(...e)=>{n.next(e)};return e.on(t,i),()=>{e.off(t,i)}})}function ur(e){return ui(e,cF.ConnectionStateChanged).pipe(du(([e])=>e),dC(e.state))}function ua(e){return un(e,cF.RoomMetadataChanged,cF.ConnectionStateChanged).pipe(du(e=>({name:e.name,metadata:e.metadata})))}function us(e,t,n=!0){return dm(new lB(i=>{o_.getLocalDevices(e,n).then(e=>{i.next(e),i.complete()}).catch(e=>{null==t||t(e),i.next([]),i.complete()})}),new lB(i=>{var r;let a=()=>dN(this,null,function*(){try{let t=yield o_.getLocalDevices(e,n);i.next(t)}catch(e){null==t||t(e)}});if("u">typeof window){if(!window.isSecureContext)throw Error("Accessing media devices is available only in secure contexts (HTTPS and localhost), in some or all supporting browsers. See: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/mediaDevices");null==(r=null==navigator?void 0:navigator.mediaDevices)||r.addEventListener("devicechange",a)}return()=>{var e;null==(e=null==navigator?void 0:navigator.mediaDevices)||e.removeEventListener("devicechange",a)}}))}function uo(e){return un(e,cF.AudioPlaybackStatusChanged).pipe(du(e=>({canPlayAudio:e.canPlaybackAudio})))}function uc(e){return un(e,cF.VideoPlaybackStatusChanged).pipe(du(e=>({canPlayVideo:e.canPlaybackVideo})))}function ul(e,t){return ui(e,cF.ParticipantEncryptionStatusChanged).pipe(dy(([,n])=>(null==t?void 0:t.identity)===(null==n?void 0:n.identity)||!n&&(null==t?void 0:t.identity)===e.localParticipant.identity),du(([e])=>e),dC(null!=t&&t.isLocal?t.isE2EEEnabled:!!(null!=t&&t.isEncrypted)))}function ud(e,...t){return new lB(n=>{let i=()=>{n.next(e)};return t.forEach(t=>{e.on(t,i)}),()=>{t.forEach(t=>{e.off(t,i)})}}).pipe(dC(e))}function uu(e){return ud(e,cB.TrackMuted,cB.TrackUnmuted,cB.ParticipantPermissionsChanged,cB.TrackPublished,cB.TrackUnpublished,cB.LocalTrackPublished,cB.LocalTrackUnpublished,cB.MediaDevicesError,cB.TrackSubscriptionStatusChanged).pipe(du(e=>{let{isMicrophoneEnabled:t,isCameraEnabled:n,isScreenShareEnabled:i}=e,r=e.getTrackPublication(rW.Source.Microphone);return{isCameraEnabled:n,isMicrophoneEnabled:t,isScreenShareEnabled:i,cameraTrack:e.getTrackPublication(rW.Source.Camera),microphoneTrack:r,participant:e}}))}function uh(e){return e?ud(e,cB.ParticipantMetadataChanged,cB.ParticipantNameChanged).pipe(du(({name:e,identity:t,metadata:n})=>({name:e,identity:t,metadata:n})),dC({name:e.name,identity:e.identity,metadata:e.metadata})):void 0}function up(e,t){return new lB(n=>{let i=(...e)=>{n.next(e)};return e.on(t,i),()=>{e.off(t,i)}})}function um(e){var t,n,i,r;return ud(e.participant,cB.TrackMuted,cB.TrackUnmuted,cB.TrackSubscribed,cB.TrackUnsubscribed,cB.LocalTrackPublished,cB.LocalTrackUnpublished).pipe(du(t=>{var n,i;let r=null!=(n=e.publication)?n:t.getTrackPublication(e.source);return null==(i=null==r?void 0:r.isMuted)||i}),dC(null==(r=null!=(i=null==(t=e.publication)?void 0:t.isMuted)?i:null==(n=e.participant.getTrackPublication(e.source))?void 0:n.isMuted)||r))}function uf(e){return up(e,cB.IsSpeakingChanged).pipe(du(([e])=>e))}function ug(e,t={}){var n;let i,r=new lB(e=>(i=e,()=>s.unsubscribe())).pipe(dC(Array.from(e.remoteParticipants.values())
4)),a=null!=(n=t.additionalRoomEvents)?n:dq,s=un(e,...Array.from(new Set([cF.ParticipantConnected,cF.ParticipantDisconnected,cF.ConnectionStateChanged,...a]))).subscribe(e=>null==i?void 0:i.next(Array.from(e.remoteParticipants.values())));return e.remoteParticipants.size>0&&(null==i||i.next(Array.from(e.remoteParticipants.values()))),r}function uv(e,t,n,i,r){let{localParticipant:a}=t,s=(e,t)=>{let n=!1;switch(e){case rW.Source.Camera:n=t.isCameraEnabled;break;case rW.Source.Microphone:n=t.isMicrophoneEnabled;break;case rW.Source.ScreenShare:n=t.isScreenShareEnabled}return n},o=uu(a).pipe(du(t=>s(e,t.participant)),dC(s(e,a))),c=new lG,l=(t,s)=>dN(this,null,function*(){try{switch(s??(s=n),c.next(!0),e){case rW.Source.Camera:return yield a.setCameraEnabled(t??!a.isCameraEnabled,s,i),a.isCameraEnabled;case rW.Source.Microphone:return yield a.setMicrophoneEnabled(t??!a.isMicrophoneEnabled,s,i),a.isMicrophoneEnabled;case rW.Source.ScreenShare:return yield a.setScreenShareEnabled(t??!a.isScreenShareEnabled,s,i),a.isScreenShareEnabled;default:throw TypeError("Tried to toggle unsupported source")}}catch(e){if(r&&e instanceof Error){null==r||r(e);return}throw e}finally{c.next(!1)}});return{className:d7("button"),toggle:l,enabledObserver:o,pendingObserver:c.asObservable()}}function ub(){let e=!1,t=new lG,n=new lG,i=i=>dN(this,null,function*(){n.next(!0),e=i??!e,t.next(e),n.next(!1)});return{className:d7("button"),toggle:i,enabledObserver:t.asObservable(),pendingObserver:n.asObservable()}}function uy(e,t,n){let i=new lK(void 0),r=ui(t,cF.ActiveDeviceChanged).pipe(dy(([t])=>t===e),du(([e,t])=>(dz.debug("activeDeviceObservable | RoomEvent.ActiveDeviceChanged",{kind:e,deviceId:t}),t))),a=(n,...r)=>dN(this,[n,...r],function*(n,r={}){var a,s,o;if(t){let c,l=rd();if("audiooutput"===e&&((null==l?void 0:l.name)==="Safari"||(null==l?void 0:l.os)==="iOS"))return void dz.warn("Switching audio output device is not supported on Safari and iOS.");dz.debug(`Switching active device of kind "${e}" with id ${n}.`),yield t.switchActiveDevice(e,n,r.exact);let d=null!=(a=t.getActiveDevice(e))?a:n;d!==n&&"default"!==n&&dz.info(`We tried to select the device with id (${n}), but the browser decided to select the device with id (${d}) instead.`),"audioinput"===e?c=null==(s=t.localParticipant.getTrackPublication(rW.Source.Microphone))?void 0:s.track:"videoinput"===e&&(c=null==(o=t.localParticipant.getTrackPublication(rW.Source.Camera))?void 0:o.track);let u="default"===n&&!c||"default"===n&&(null==c?void 0:c.mediaStreamTrack.label.startsWith("Default"));i.next(u?n:d)}});return{className:d7("media-device-select"),activeDeviceObservable:r,setActiveMediaDevice:a}}function uk(e){return{className:d7("disconnect-button"),disconnect:t=>{e.disconnect(t)}}}function uT(e){return{className:d7("connection-quality"),connectionQualityObserver:up(e,cB.ConnectionQualityChanged).pipe(du(([e])=>e),dC(e.connectionQuality))}}function uS(e){let t="track-muted-indicator-camera";switch(e.source){case rW.Source.Camera:t="track-muted-indicator-camera";break;case rW.Source.Microphone:t="track-muted-indicator-microphone"}return{className:d7(t),mediaMutedObserver:um(e)}}function uC(e){return{className:"lk-participant-name",infoObserver:uh(e)}}function uw(){return{className:d7("participant-tile")}}var uE={CHAT:"lk.chat",TRANSCRIPTION:"lk.transcription"};function uP(e,t){return dN(this,arguments,function*(e,t,n={}){let{reliable:i,destinationIdentities:r,topic:a}=n;yield e.publishData(t,{destinationIdentities:r,topic:a,reliable:i})})}function uR(e,t,n){let i,r=Array.isArray(t)?t:[t];return{messageObservable:ui(e,cF.DataReceived).pipe(dy(([,,,e])=>void 0===t||void 0!==e&&r.includes(e)),du(([e,t,,i])=>{let r={payload:e,topic:i,from:t};return null==n||n(r),r})),isSendingObservable:new lB(e=>{i=e}),send:(t,...n)=>dN(this,[t,...n],function*(t,n={}){i.next(!0);try{yield uP(e.localParticipant,t,dA({topic:r[0]},n))}finally{i.next(!1)}})}}var uI=class{constructor(e,t){this._isResolved=!1,this.onFinally=t,this.promise=new Promise((t,n)=>dN(this,null,function*(){this.resolve=t,this.reject=n,e&&(yield e(t,n))})).finally(()=>{var e;this._isResolved=!0,null==(e=this.onFinally)||e.call(this)})}get isResolved(){return this._isResolved}},u_=new WeakMap,ux=new Map,uO=e=>JSON.parse(new TextDecoder().decode(e)),uM=e=>new TextEncoder().encode(JSON.stringify(e));function uD(){let e=e=>dN(this,null,function*(){dz.info("Start Audio for room: ",e),yield e.startAudio()});return{className:d7("start-audio-button"),roomAudioPlaybackAllowedObservable:uo,handleStartAudioPlayback:e}}function uA(){let e=e=>dN(this,null,function*(){dz.info("Start Video for room: ",e),yield e.startVideo()});return{className:d7("start-audio-button"),roomVideoPlaybackAllowedObservable:uc,handleStartVideoPlayback:e}}function uN(){return{className:[d7("button"),d7("chat-toggle")].join(" ")}}function uL(){return{className:[d7("button"),d7("focus-toggle-button")].join(" ")}}function uU(){return{className:"lk-clear-pin-button lk-button"}}function uj(e,t,n=!0){let i=[e.localParticipant,...Array.from(e.remoteParticipants.values())],r=[];
4return i.forEach(e=>{t.forEach(t=>{let i=Array.from(e.trackPublications.values()).filter(e=>e.source===t&&(!n||e.track)).map(t=>({participant:e,publication:t,source:t.source}));r.push(...i)})}),{trackReferences:r,participants:i}}function uF(e,t,n=!1){let{sources:i,kind:r,name:a}=t;return Array.from(e.trackPublications.values()).filter(e=>(!i||i.includes(e.source))&&(!r||e.kind===r)&&(!a||e.trackName===a)&&(!n||e.track)).map(t=>({participant:e,publication:t,source:t.source}))}function uB(e,t,n){var i,r;let a=null!=(i=n.additionalRoomEvents)?i:dq,s=null==(r=n.onlySubscribed)||r;return un(e,...Array.from(new Set([cF.ParticipantConnected,cF.ParticipantDisconnected,cF.ConnectionStateChanged,cF.LocalTrackPublished,cF.LocalTrackUnpublished,cF.TrackPublished,cF.TrackUnpublished,cF.TrackSubscriptionStatusChanged,...a]).values())).pipe(du(e=>{let n=uj(e,t,s);return dz.debug(`TrackReference[] was updated. (length ${n.trackReferences.length})`,n),n}),dC(uj(e,t,s)))}function uq(e,t){return ud(e,...dV).pipe(du(e=>{let n=uF(e,t);return dz.debug(`TrackReference[] was updated. (length ${n.length})`,n),n}),dC(uF(e,t)))}function uV(e,t){return new lB(n=>{let i=(...e)=>{n.next(e)};return e.on(t,i),()=>{e.off(t,i)}})}var{load:uH,save:uz}=(hS="lk-user-choices",{load:()=>(function(e){if(typeof localStorage>"u")return void dz.error("Local storage is not available.");try{let t=localStorage.getItem(e);if(!t)return void dz.warn(`Item with key ${e} does not exist in local storage.`);return JSON.parse(t)}catch(e){dz.error(`Error getting item from local storage: ${e}`);return}})(hS),save:e=>(function(e,t){if(typeof localStorage>"u")return void dz.error("Local storage is not available.");try{if(t){let n=Object.fromEntries(Object.entries(t).filter(([,e])=>""!==e));localStorage.setItem(e,JSON.stringify(n))}}catch(e){dz.error(`Error setting item to local storage: ${e}`)}})(hS,e)}),uW=null,uG=null,uJ=0;function uK(){return uW||(uW=new Map),uW}function u$(e,t){var n,i,r,a,s,o,c,l,d,u,h;let p,m,f=(uG||(uG=new WeakMap),(m=(p=uG).get(e))||(m=`room_${uJ++}`,p.set(e,m)),`${m}:${t}`),g=uK(),v=g.get(f);if(v)return v;let b=new lG,y=[],k="lk.segment_id",T=b.pipe((i=lS(n={subscribe:()=>{e.registerTextStreamHandler(t,(e,t)=>dN(this,null,function*(){var n;let i=ds(e).pipe(dT((e,t)=>e+t,"")),r=!!(null!=(n=e.info.attributes)&&n[k]);i.subscribe(n=>{let i=y.findIndex(t=>{var n,i;return t.streamInfo.id===e.info.id||r&&(null==(n=t.streamInfo.attributes)?void 0:n[k])===(null==(i=e.info.attributes)?void 0:i[k])});-1!==i?y[i]=dR(dA({},y[i]),dI({text:n})):y.push({text:n,participantInfo:t,streamInfo:e.info}),b.next([...y])})}))},finalize:()=>{e.unregisterTextStreamHandler(t)}})?{next:n,error:void 0,complete:void 0}:n)?lV(function(e,t){null==(n=i.subscribe)||n.call(i);var n,r=!0;e.subscribe(lH(t,function(e){var n;null==(n=i.next)||n.call(i,e),t.next(e)},function(){var e;r=!1,null==(e=i.complete)||e.call(i),t.complete()},function(e){var n;r=!1,null==(n=i.error)||n.call(i,e),t.error(e)},function(){var e,t;r&&(null==(e=i.unsubscribe)||e.call(i)),null==(t=i.finalize)||t.call(i)}))}):lF,(void 0===r&&(r={}),s=void 0===(a=r.connector)?function(){return new lG}:a,c=void 0===(o=r.resetOnError)||o,d=void 0===(l=r.resetOnComplete)||l,h=void 0===(u=r.resetOnRefCountZero)||u,function(e){var t,n,i,r=0,a=!1,o=!1,l=function(){null==n||n.unsubscribe(),n=void 0},u=function(){l(),t=i=void 0,a=o=!1},p=function(){var e=t;u(),null==e||e.unsubscribe()};return lV(function(e,m){r++,o||a||l();var f=i=i??s();m.add(function(){0!=--r||o||a||(n=dS(p,h))}),f.subscribe(m),!t&&r>0&&(t=new lL({next:function(e){return f.next(e)},error:function(e){o=!0,l(),n=dS(u,c,e),f.error(e)},complete:function(){a=!0,l(),n=dS(u,d),f.complete()}}),de(e).subscribe(t))})(e)}));return g.set(f,T),e.on(cF.Disconnected,()=>{uK().delete(f),y=[],b.next([])}),T}function uY(e,t){if("show_chat"===t.msg)return{...e,showChat:!0,unreadMessages:0};if("hide_chat"===t.msg)return{...e,showChat:!1};if("toggle_chat"!==t.msg)return"unread_msg"===t.msg?{...e,unreadMessages:t.count}:"toggle_settings"===t.msg?{...e,showSettings:!e.showSettings}:{...e};{let t={...e,showChat:!e.showChat};return!0===t.showChat&&(t.unreadMessages=0),t}}function uQ(e,t){return"set_pin"===t.msg?[t.trackReference]:"clear_pin"===t.msg?[]:{...e}}let uX=k.createContext(void 0);function uZ(){let e=k.useContext(uX);if(!e)throw Error("Tried to access LayoutContext context outside a LayoutContextProvider provider.");return e}function u0(){return k.useContext(uX)}let u1=k.createContext(void 0);function u2(){return k.useContext(u1)}function u5(e){let t=u2(),n=e??t;if(!n)throw Error("No TrackRef, make sure you are inside a TrackRefContext or pass the TrackRef explicitly");return n}let u3=k.createContext(void 0);function u4(){return k.useContext(u3)}
4function u6(e){let t=u4(),n=u2(),i=e??t??(null==n?void 0:n.participant);if(!i)throw Error("No participant provided, make sure you are inside a participant context or pass the participant explicitly");return i}let u9=k.createContext(void 0);function u8(){let e=k.useContext(u9);if(!e)throw Error("tried to access room context outside of livekit room component");return e}function u7(){return k.useContext(u9)}function he(e){let t=u7(),n=e??t;if(!n)throw Error("No room provided, make sure you are inside a Room context or pass the room explicitly");return n}let ht=k.createContext(void 0);function hn(){return k.useContext(ht)}let hi=k.createContext(void 0);function hr(){for(var e,t,n=0,i="",r=arguments.length;n<r;n++)(e=arguments[n])&&(t=function e(t){var n,i,r="";if("string"==typeof t||"number"==typeof t)r+=t;else if("object"==typeof t)if(Array.isArray(t)){var a=t.length;for(n=0;n<a;n++)t[n]&&(i=e(t[n]))&&(r&&(r+=" "),r+=i)}else for(i in t)t[i]&&(r&&(r+=" "),r+=i);return r}(e))&&(i&&(i+=" "),i+=t);return i}function ha(...e){let t={...e[0]};for(let n=1;n<e.length;n++){let i=e[n];for(let e in i){let n=t[e],r=i[e];"function"==typeof n&&"function"==typeof r&&"o"===e[0]&&"n"===e[1]&&e.charCodeAt(2)>=65&&90>=e.charCodeAt(2)?t[e]=function(...e){return(...t)=>{for(let n of e)if("function"==typeof n)try{n(...t)}catch(e){console.error(e)}}}(n,r):("className"===e||"UNSAFE_className"===e)&&"string"==typeof n&&"string"==typeof r?t[e]=hr(n,r):t[e]=void 0!==r?r:n}}return t}function hs(e){return void 0!==e}function ho(...e){return ha(...e.filter(hs))}e.s(["$",0,function(e,t=!1){!0!==t&&uz(e)},"A",0,d8,"B",0,u4,"C",0,uh,"D",0,uw,"E",0,ug,"F",0,function(e){let t=u0();if(e??(e=t),!e)throw Error("Tried to access LayoutContext context outside a LayoutContextProvider provider.");return e},"G",0,dW,"H",0,function(e,t,n={}){var i;let r=null!=(i=n.additionalEvents)?i:dH;return un(e,cF.ParticipantConnected,cF.ParticipantDisconnected,cF.ConnectionStateChanged).pipe(dw(e=>{let n=e.getParticipantByIdentity(t);return n?ud(n,...r):new lB(e=>e.next(void 0))}),dC(e.getParticipantByIdentity(t)))},"I",0,function(e,{kind:t,identity:n},i={}){var r;let a=null!=(r=i.additionalEvents)?r:dH,s=e=>{let i=!0;return t&&(i=i&&e.kind===t),n&&(i=i&&e.identity===n),i};return un(e,cF.ParticipantConnected,cF.ParticipantDisconnected,cF.ConnectionStateChanged).pipe(dw(e=>{let t=Array.from(e.remoteParticipants.values()).find(e=>s(e));return t?ud(t,...a):new lB(e=>e.next(void 0))}),dC(Array.from(e.remoteParticipants.values()).find(e=>s(e))))},"J",0,ua,"K",0,function(e){return ui(e,cF.ActiveSpeakersChanged).pipe(du(([e])=>e))},"L",0,hi,"M",0,function(e){let t=[...e];t.sort((e,t)=>{if(e.isSpeaking&&t.isSpeaking)return dX(e,t);if(e.isSpeaking!==t.isSpeaking)return dZ(e,t);if(e.lastSpokeAt!==t.lastSpokeAt)return d0(e,t);let n=e.videoTrackPublications.size>0;return n!==t.videoTrackPublications.size>0?n?-1:1:d1(e,t)});let n=t.find(e=>e.isLocal);if(n){let e=t.indexOf(n);e>=0&&(t.splice(e,1),t.length>0?t.splice(0,0,n):t.push(n))}return t},"N",0,uD,"O",0,uA,"P",0,uN,"Q",0,uS,"R",0,u9,"S",0,uv,"T",0,ub,"U",0,dY,"V",0,uB,"W",0,dQ,"X",0,ut,"Y",0,ue,"Z",0,function(e,t){var n,i,r,a,s,o;let c=new lG,l=null!=(n=null==t?void 0:t.channelTopic)?n:uE.CHAT,d=null!=(i=null==t?void 0:t.channelTopic)?i:"lk-chat-topic",u=!1;u_.has(e)||(u=!0);let h=null!=(r=u_.get(e))?r:new Map,p=null!=(a=h.get(l))?a:new lG;h.set(l,p),u_.set(e,h);let m=null!=(s=null==t?void 0:t.messageDecoder)?s:uO;if(u){e.registerTextStreamHandler(l,(t,n)=>dN(this,null,function*(){var i;let{id:r,timestamp:a,attributes:s,attachedStreamIds:o}=t.info,c=new Map((o??[]).map(e=>[e,new uI]));ux.set(r,c),ds(t).pipe(dT((e,t)=>e+t),dp(e=>0===c.size?dc({chunk:e,attachedFiles:[]}):ds(c.values()).pipe(dp(e=>ds(e.promise)),dT((e,t)=>[...e,new File(t.buffer,t.fileName)],[]),du(t=>({chunk:e,attachedFiles:t})))),du(({chunk:t,attachedFiles:i})=>({id:r,timestamp:a,message:t,from:e.getParticipantByIdentity(n.identity),type:"chatMessage",attributes:s,attachedFiles:i})),(i=()=>ux.delete(r),lV(function(e,t){try{e.subscribe(t)}finally{t.add(i)}}))).subscribe({next:e=>p.next(e)})})),e.registerByteStreamHandler(l,e=>dN(this,null,function*(){var t,n;let{id:i}=e.info,r=Array.from(ux).find(([,e])=>e.has(i));if(!r)return;let a=r[0],s=[];try{let t,n,i;for(var o,c,l,d=(n=(t=e)[dM("asyncIterator")])?n.call(t):(t=t[dM("iterator")](),n={},(i=(e,i)=>(i=t[e])&&(n[e]=e=>new Promise((n,r,a)=>(a=(e=i.call(t,e)).done,Promise.resolve(e.value).then(e=>n({value:e,done:a}),r)))))("next"),i("return"),n);o=!(c=yield d.next()).done;o=!1){let e=c.value;s.push(e)}}catch(e){l=[e]}finally{try{o&&(c=d.return)&&(yield c.call(d))}finally{if(l)throw l[0]}}let u=null==(t=ux.get(a))?void 0:t.get(i);u&&(null==(n=u.resolve)||n.call(u,{fileName:e.info.name,buffer:s}))}
4));let{messageObservable:t}=uR(e,[d]);t.pipe(du(e=>{let t=m(e.payload);return!0==t.ignoreLegacy?void 0:dR(dA({},t),dI({type:"chatMessage",from:e.from}))}),dy(e=>!!e),dE(c)).subscribe(p)}let f=p.pipe(dT((e,t)=>{if("id"in t&&e.find(e=>{var n,i;return(null==(n=e.from)?void 0:n.identity)===(null==(i=t.from)?void 0:i.identity)&&e.id===t.id})){let n=e.findIndex(e=>e.id===t.id);if(n>-1){let i=e[n];e[n]=dR(dA({},t),dI({timestamp:i.timestamp,editTimestamp:t.timestamp}))}return[...e]}return[...e,t]},[]),dE(c)),g=new lK(!1),v=null!=(o=null==t?void 0:t.messageEncoder)?o:uM,b=(t,n)=>dN(this,null,function*(){var i,r,a;n||(n={}),null!=n.topic||(n.topic=l),g.next(!0);try{let s,o,c,l,u,h,m={id:(yield e.localParticipant.sendText(t,n)).id,timestamp:Date.now(),message:t},f=(s=dA({},m),o={attachedFiles:n.attachments},dR(s,dI(o))),g=(c=dA({},f),l={type:"chatMessage",from:e.localParticipant,attributes:n.attributes},dR(c,dI(l)));p.next(g);let b=v((u=dA({},m),h={ignoreLegacy:(null==(i=e.serverInfo)?void 0:i.edition)===1||!!(null!=(r=e.serverInfo)&&r.version)&&an(null==(a=e.serverInfo)?void 0:a.version,"1.8.2")>0},dR(u,dI(h))));try{yield uP(e.localParticipant,b,{reliable:!0,topic:d})}catch(e){dz.info("could not send message in legacy chat format",e)}return g}finally{g.next(!1)}});return e.once(cF.Disconnected,function(){c.next(),c.complete(),p.complete(),u_.delete(e),e.unregisterTextStreamHandler(l),e.unregisterByteStreamHandler(l)}),{messageObservable:f,isSendingObservable:g,send:b}},"_",0,function(e,t=!1){var n,i,r,a,s;let o={videoEnabled:null==(n=null==e?void 0:e.videoEnabled)||n,audioEnabled:null==(i=null==e?void 0:e.audioEnabled)||i,videoDeviceId:null!=(r=null==e?void 0:e.videoDeviceId)?r:"default",audioDeviceId:null!=(a=null==e?void 0:e.audioDeviceId)?a:"default",username:null!=(s=null==e?void 0:e.username)?s:""};if(t)return o;{let e=uH();return dA(dA({},o),e??{})}},"a",0,uZ,"a0",0,ul,"a1",0,dL,"a2",0,uq,"a3",0,function(e){return uV(e,cV.TimeSyncUpdate).pipe(du(([e])=>e))},"a4",0,function(e){return uV(e,cV.TranscriptionReceived)},"a5",0,function(e,t,n){return[...e,...t].reduceRight((e,t)=>(e.find(e=>e.id===t.id)||e.unshift(t),e),[]).slice(0-n)},"a6",0,function(e,t){var n;return dR(dA({},e),dI({receivedAtMediaTimestamp:null!=(n=t.rtpTimestamp)?n:0,receivedAt:t.timestamp}))},"a7",0,function(e){return typeof e>"u"?new lB:up(e,cB.AttributesChanged).pipe(du(([t])=>({changed:t,attributes:e.attributes})),dC({changed:e.attributes,attributes:e.attributes}))},"a8",0,dJ,"a9",0,function(e){return ui(e,cF.RecordingStatusChanged).pipe(du(([e])=>e),dC(e.isRecording))},"aB",0,function(){let e=k.useContext(ht);if(!e)throw Error("tried to access session context outside of SessionProvider component");return e},"aa",0,u$,"ab",0,uE,"ac",0,hn,"ad",0,function(e){let t=hn(),n=e??t;if(!n)throw Error("No session provided, make sure you are inside a Session context or pass the session explicitly");return n},"ae",0,u2,"af",0,uX,"ag",0,uC,"ah",0,oq,"ai",0,oV,"aj",0,u3,"ak",0,u1,"al",0,function(e){let t=k.useContext(hi);if(!0===e){if(t)return t;throw Error("tried to access feature context, but none is present")}return t},"am",0,function(e,t=1e3){var n,i;if(null===e)return dc(!1);let r=(function e(t,n,i,r){if(lS(i)&&(r=i,i=void 0),r){return e(t,n,i).pipe((a=r,du(function(e){return dh(e)?a.apply(void 0,lk([],ly(e))):a(e)})))}var a,s,o,c,l=ly(lS((s=t).addEventListener)&&lS(s.removeEventListener)?dg.map(function(e){return function(r){return t[e](n,r,i)}}):lS((o=t).addListener)&&lS(o.removeListener)?df.map(db(t,n)):lS((c=t).on)&&lS(c.off)?dv.map(db(t,n)):[],2),d=l[0],u=l[1];if(!d&&l2(t))return dp(function(t){return e(t,n,i)})(de(t));if(!d)throw TypeError("Invalid event target");return new lB(function(e){var t=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return e.next(1<t.length?t:t[0])};return d(t),function(){return u(t)}})})(e,"mousemove",{passive:!0}).pipe(du(()=>!0)),a=r.pipe(function(e){var t=e instanceof Date&&!isNaN(e)?{first:e}:"number"==typeof e?{each:e}:e,n=t.first,i=t.each,r=t.with,a=void 0===r?dd:r,s=t.scheduler,o=void 0===s?l0:s,c=t.meta,l=void 0===c?null:c;if(null==n&&null==i)throw TypeError("No timeout provided.");return lV(function(e,t){var r,s,c=null,d=0,u=function(e){s=dn(t,o,function(){try{r.unsubscribe(),de(a({meta:l,lastValue:c,seen:d})).subscribe(t)}catch(e){t.error(e)}},e)};r=e.subscribe(lH(t,function(e){null==s||s.unsubscribe(),d++,t.next(c=e),i>0&&u(i)},void 0,void 0,function(){null!=s&&s.closed||null==s||s.unsubscribe(),c=null})),d||u(null!=n?"number"==typeof n?n:n-o.now():i)})}({each:t,with:()=>dm(dc(!1),a.pipe(lV(function(e,t){var n=!1,i=lH(t,function(){null==i||i.unsubscribe(),n=!0},lD);de(r).subscribe(i),e.subscribe(lH(t,function(e){return n&&t.next(e)}))})))}),(void 0===i&&(i=lF),n=n??dk,lV(function(e,t){var r,a=!0;e.subscribe(lH(t,function(e){var s=i(e);(a||!n(r,s))&&(a=!1,r=s,t.next(e))}))})));return a},"an",0,function(){let e=document.createElement("p");e.style.width="100%",e.style.height="200px";let t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);let n=e.offsetWidth;t.style.overflow="scroll";let i=e.offsetWidth;return n===i&&(i=t.clientWidth),document.body.removeChild(t),n-i},"ao",0,function(e){let[t,n]=k.useReducer(uQ,dK),[i,r]=k.useReducer(uY,d$);return e??{pin:{dispatch:n,state:t},widget:{dispatch:r,state:i}}},"ap",0,function(e,t){let n=Object.entries(t).map(([t,n],i)=>Array.from(e.matchAll(n)).map(({index:e,0:n})=>({type:t,weight:i,content:n,index:e??0}))).flat().sort((e,t)=>
4{let n=e.index-t.index;return 0!==n?n:e.weight-t.weight}).filter(({index:e},t,n)=>{if(0===t)return!0;let i=n[t-1];return i.index+i.content.length<=e}),i=[],r=0;for(let{type:t,content:a,index:s}of n)s>r&&i.push(e.substring(r,s)),i.push({type:t,content:a}),r=s+a.length;return e.length>r&&i.push(e.substring(r)),i},"aq",0,()=>{var e;let t,n;return{email:function({exact:e}={}){return e?RegExp(`^${dB}$`):RegExp(dB,"g")}(),url:(e=dA({},e={}),t=RegExp("(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}","g").source,n=`(?:(?:(?:[a-z]+:)?//)?|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${t}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))\\.?)(?::\\d{2,5})?(?:[/?#][^\\s"]*)?`,e.exact?RegExp(`(?:^${n}$)`,"i"):RegExp(n,"ig"))}},"ar",0,ht,"b",0,uU,"c",0,u6,"d",0,uT,"e",0,ur,"f",0,u8,"g",0,uR,"h",0,uk,"i",0,u5,"j",0,u0,"k",0,uL,"l",0,dz,"m",0,dF,"n",0,dG,"o",0,um,"p",0,dj,"q",0,uf,"r",0,uo,"s",0,function(){return{className:"lk-room-container"}},"t",0,uu,"u",0,he,"v",0,function(e){return up(e,cB.ParticipantPermissionsChanged).pipe(du(()=>e.permissions),dC(e.permissions))},"w",0,u7,"x",0,us,"y",0,uy,"z",0,d2],952479);let hc=e=>{let t,n,r,[a,s]=k.useState({width:0,height:0});k.useLayoutEffect(()=>{if(e.current){let{width:t,height:n}=e.current.getBoundingClientRect();s({width:t,height:n})}},[e.current]);let o=k.useCallback(e=>s(e.contentRect),[]);return n=i||(i=function(){let e=!1,t=[],n=new Map;if(typeof window>"u")return;let i=new ResizeObserver((i,r)=>{t=t.concat(i),e||window.requestAnimationFrame(()=>{let i=new Set;for(let e=0;e<t.length;e++){if(i.has(t[e].target))continue;i.add(t[e].target);let a=n.get(t[e].target);null==a||a.forEach(n=>n(t[e],r))}t=[],e=!1}),e=!0});return{observer:i,subscribe(e,t){i.observe(e);let r=n.get(e)??[];r.push(t),n.set(e,r)},unsubscribe(e,t){let r=n.get(e)??[];if(1===r.length){i.unobserve(e),n.delete(e);return}let a=r.indexOf(t);-1!==a&&r.splice(a,1),n.set(e,r)}}}()),t=k.useRef(o),k.useEffect(()=>{t.current=o}),r=t,k.useLayoutEffect(()=>{let t=!1,i=e.current;if(i)return null==n||n.subscribe(i,a),()=>{t=!0,null==n||n.unsubscribe(i,a)};function a(e,n){t||r.current(e,n)}},[e.current,n,r]),null==n||n.observer,a};function hl(e,t,n=!0){let[i,r]=k.useState(t);return k.useEffect(()=>{if(n&&r(t),typeof window>"u"||!e)return;let i=e.subscribe(r);return()=>i.unsubscribe()},[e,n]),i}function hd(e={}){let t=u6(e.participant),{className:n,connectionQualityObserver:i}=k.useMemo(()=>uT(t),[t]);return{className:n,quality:hl(i,t.connectionQuality)}}function hu(e){let t=he(e);return hl(k.useMemo(()=>ur(t),[t]),t.state)}function hh(e,t={}){var n,i;let r=u6("string"==typeof e?t.participant:e.participant),a="string"==typeof e?{participant:r,source:e}:e,[s,o]=k.useState(!!(null!=(n=a.publication)&&n.isMuted||null!=(i=r.getTrackPublication(a.source))&&i.isMuted));return k.useEffect(()=>{let e=um(a).subscribe(o);return()=>e.unsubscribe()},[dj(a)]),s}function hp(e={}){let t=he(e.room),[n,i]=k.useState(t.localParticipant),[r,a]=k.useState(n.isMicrophoneEnabled),[s,o]=k.useState(n.isCameraEnabled),[c,l]=k.useState(n.isScreenShareEnabled),[d,u]=k.useState(n.lastMicrophoneError),[h,p]=k.useState(n.lastCameraError),[m,f]=k.useState(void 0),[g,v]=k.useState(void 0),b=e=>{o(e.isCameraEnabled),a(e.isMicrophoneEnabled),l(e.isScreenShareEnabled),v(e.cameraTrack),f(e.microphoneTrack),u(e.participant.lastMicrophoneError),p(e.participant.lastCameraError),i(e.participant)};return k.useEffect(()=>{let e=uu(t.localParticipant).subscribe(b);return()=>e.unsubscribe()},[t]),{isMicrophoneEnabled:r,isScreenShareEnabled:c,isCameraEnabled:s,microphoneTrack:m,cameraTrack:g,lastMicrophoneError:d,lastCameraError:h,localParticipant:n}}function hm(e,t,n={}){let i=k.useRef([]),r=k.useRef(-1),a=t!==r.current,s="function"==typeof n.customSortFunction?n.customSortFunction(e):d2(e),o=[...s];if(!1===a)try{o=d8(i.current,s,t)}catch(e){dz.error("Error while running updatePages(): ",e)}return a?i.current=s:i.current=o,r.current=t,o}function hf(e={}){let t=he(e.room),[n,i]=k.useState([]);return k.useEffect(()=>{let n=ug(t,{additionalRoomEvents:e.updateOnlyOn}).subscribe(i);return()=>n.unsubscribe()},[t,JSON.stringify(e.updateOnlyOn)]),n}function hg(e){var t,n;let i=u5(e),{className:r,mediaMutedObserver:a}=k.useMemo(()=>uS(i),[dj(i)]);return{isMuted:hl(a,!!(null!=(t=i.publication)&&t.isMuted||null!=(n=i.participant.getTrackPublication(i.source))&&n.isMuted)),className:r}}function hv(e=[rW.Source.Camera,rW.Source.Microphone,rW.Source.ScreenShare,rW.Source.ScreenShareAudio,rW.Source.Unknown],t={}){let n=he(t.room),[i,r]=k.useState([]),[a,s]=k.useState([]),o=k.useMemo(()=>e.map(e=>dY(e)?e.source:e),[JSON.stringify(e)]);return k.useEffect(()=>{let e=uB(n,o,{additionalRoomEvents:t.updateOnlyOn,onlySubscribed:t.onlySubscribed}).subscribe(({trackReferences:e,participants:t})=>{dz.debug("setting track bundles",e,t),r(e),s(t)});return()=>e.unsubscribe()},[n,JSON.stringify(t.onlySubscribed),JSON.stringify(t.updateOnlyOn),JSON.stringify(e)]),k.useMemo(()=>
4{if(!dQ(e))return i;{let t=function(e,t){let n=new Map;if(dQ(e)){let i=e.filter(e=>e.withPlaceholder).map(e=>e.source);t.forEach(e=>{let t=e.getTrackPublications().map(e=>{var t;return null==(t=e.track)?void 0:t.source}).filter(e=>void 0!==e),r=Array.from(function(e,t){let n=new Set(e);for(let e of t)n.delete(e);return n}(new Set(i),new Set(t)));r.length>0&&n.set(e.identity,r)})}return n}(e,a),n=Array.from(i);return a.forEach(e=>{t.has(e.identity)&&(t.get(e.identity)??[]).forEach(t=>{i.find(({participant:n,publication:i})=>e.identity===n.identity&&i.source===t)||(dz.debug(`Add ${t} placeholder for participant ${e.identity}.`),n.push({participant:e,source:t}))})}),n}},[i,a,e])}let hb={bands:5,loPass:100,hiPass:600,updateInterval:32,analyserOptions:{fftSize:2048}};function hy(e,t={}){var n;let i=e instanceof rW?e:null==(n=null==e?void 0:e.publication)?void 0:n.track,r={...hb,...t},[a,s]=k.useState(Array(r.bands).fill(0));return k.useEffect(()=>{if(!i||!(null!=i&&i.mediaStream))return void s(e=>e.slice().fill(0));let{analyser:e,cleanup:t}=ah(i,r.analyserOptions),n=new Float32Array(e.frequencyBinCount),a=setInterval(()=>{e.getFloatFrequencyData(n);let t=new Float32Array(n.length);for(let e=0;e<n.length;e++)t[e]=n[e];let i=(t=t.slice(r.loPass,r.hiPass)).map(e=>e===-1/0?0:Math.sqrt(1- -1*Math.max(-100,Math.min(-10,e))/100)),a=i.length,o=[];for(let e=0;e<r.bands;e++){let t=Math.floor(e*a/r.bands),n=Math.floor((e+1)*a/r.bands),s=i.slice(t,n),c=s.length;if(0===c)o.push(0);else{let e=s.reduce((e,t)=>e+=t,0);o.push(e/c)}}s(o)},r.updateInterval);return()=>{t(),clearInterval(a)}},[i,null==i?void 0:i.mediaStream,JSON.stringify(t)]),a}function hk(e,t={}){let n,i;"string"==typeof t?n=t:(n=null==t?void 0:t.participantIdentity,i=null==t?void 0:t.room);let r=u4(),a=function(e={}){let t=hf(e),{localParticipant:n}=hp(e);return k.useMemo(()=>[n,...t],[n,t])}({room:i,updateOnlyOn:[]}),s=k.useMemo(()=>n?a.find(e=>e.identity===n):r,[n,a,r]);return hl(k.useMemo(()=>{if(s)return uq(s,{sources:e})},[s,JSON.stringify(e)]),[])}dJ.AgentState;var hT,hS,hC,hw={exports:{}},hE=function(){if(hC)return hw.exports;hC=1;var e,t="object"==typeof Reflect?Reflect:null,n=t&&"function"==typeof t.apply?t.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};e=t&&"function"==typeof t.ownKeys?t.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function r(){r.init.call(this)}hw.exports=r,hw.exports.once=function(e,t){return new Promise(function(n,i){var r,a,s;function o(n){e.removeListener(t,c),i(n)}function c(){"function"==typeof e.removeListener&&e.removeListener("error",o),n([].slice.call(arguments))}m(e,t,c,{once:!0}),"error"!==t&&(r=e,a=o,s={once:!0},"function"==typeof r.on&&m(r,"error",a,s))})},r.EventEmitter=r,r.prototype._events=void 0,r.prototype._eventsCount=0,r.prototype._maxListeners=void 0;var a=10;function s(e){if("function"!=typeof e)throw TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function o(e){return void 0===e._maxListeners?r.defaultMaxListeners:e._maxListeners}function c(e,t,n,i){var r,a,c;if(s(n),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),c=a[t]),void 0===c)c=a[t]=n,++e._eventsCount;else if("function"==typeof c?c=a[t]=i?[n,c]:[c,n]:i?c.unshift(n):c.push(n),(r=o(e))>0&&c.length>r&&!c.warned){c.warned=!0;var l=Error("Possible EventEmitter memory leak detected. "+c.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=c.length,console&&console.warn&&console.warn(l)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0==arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=l.bind(i);return r.listener=n,i.wrapFn=r,r}function u(e,t,n){var i=e._events;if(void 0===i)return[];var r=i[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(r):p(r,r.length)}function h(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function p(e,t){for(var n=Array(t),i=0;i<t;++i)n[i]=e[i];return n}function m(e,t,n,i){if("function"==typeof e.on)i.once?e.once(t,n):e.on(t,n);else if("function"==typeof e.addEventListener)e.addEventListener(t,function r(a){i.once&&e.removeEventListener(t,r),n(a)});else throw TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}return Object.defineProperty(r,"defaultMaxListeners",{enumerable:!0,get:function(){return a}
4,set:function(e){if("number"!=typeof e||e<0||i(e))throw RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");a=e}}),r.init=function(){(void 0===this._events||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},r.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||i(e))throw RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},r.prototype.getMaxListeners=function(){return o(this)},r.prototype.emit=function(e){for(var t=[],i=1;i<arguments.length;i++)t.push(arguments[i]);var r="error"===e,a=this._events;if(void 0!==a)r=r&&void 0===a.error;else if(!r)return!1;if(r){if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var s,o=Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var c=a[e];if(void 0===c)return!1;if("function"==typeof c)n(c,this,t);else for(var l=c.length,d=p(c,l),i=0;i<l;++i)n(d[i],this,t);return!0},r.prototype.addListener=function(e,t){return c(this,e,t,!1)},r.prototype.on=r.prototype.addListener,r.prototype.prependListener=function(e,t){return c(this,e,t,!0)},r.prototype.once=function(e,t){return s(t),this.on(e,d(this,e,t)),this},r.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,d(this,e,t)),this},r.prototype.removeListener=function(e,t){var n,i,r,a,o;if(s(t),void 0===(i=this._events)||void 0===(n=i[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(r=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,r=a;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,r),1===n.length&&(i[e]=n[0]),void 0!==i.removeListener&&this.emit("removeListener",e,o||t)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(e){var t,n,i;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0==arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0==arguments.length){var r,a=Object.keys(n);for(i=0;i<a.length;++i)"removeListener"!==(r=a[i])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this},r.prototype.listeners=function(e){return u(this,e,!0)},r.prototype.rawListeners=function(e){return u(this,e,!1)},r.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},r.prototype.listenerCount=h,r.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]},hw.exports}(),hP=((c=hP||{}).CameraChanged="cameraChanged",c.MicrophoneChanged="microphoneChanged",c.StateChanged="stateChanged",c);let hR=e=>({isConnected:"listening"===e||"thinking"===e||"speaking"===e,canListen:"pre-connect-buffering"===e||"listening"===e||"thinking"===e||"speaking"===e,isFinished:"disconnected"===e||"failed"===e,isPending:"connecting"===e||"initializing"===e||"idle"===e});function hI(e){let t,n,i=hn();if(!(e=e??i))throw Error("No session provided, make sure you are inside a Session context or pass the session explicitly");let{room:r,internal:{agentConnectTimeoutMilliseconds:a,agentTimeoutFailureReason:s,startAgentTimeout:o,clearAgentTimeout:c,clearAgentTimeoutFailureReason:l,updateAgentTimeoutState:d,updateAgentTimeoutParticipantExists:u}}=e,h=k.useMemo(()=>new hE.EventEmitter,[]),p=hf({room:r}),m=k.useMemo(()=>p.find(e=>e.kind===e8.AGENT&&!(dJ.PublishOnBehalf in e.attributes))??null,[p]),f=k.useMemo(()=>m?p.find(e=>e.kind===e8.AGENT&&e.attributes[dJ.PublishOnBehalf]===m.identity)??null:null,[m,p]),[g,v]=k.useState((null==m?void 0:m.attributes)??{});k.useEffect(()=>{if(!m)return;let e=e=>{v(e)};return m.on(cB.AttributesChanged,e),()=>{m.off(cB.AttributesChanged,e)}},[m,h]);let b=hk([rW.Source.Camera,rW.Source.Microphone],{room:r,participantIdentity:null==m?void 0:m.identity}),y=hk([rW.Source.Camera,rW.Source.Microphone],{room:r,participantIdentity:null==f?void 0:f.identity}),T=k.useMemo(()=>b.find(e=>e.source===rW.Source.Camera)??y.find(e=>e.source===rW.Source.Camera),[b,y]);k.useEffect(()=>{h.emit("cameraChanged",T)},[h,T]);let S=k.useMemo(()=>b.find(e=>e.source===rW.Source.Microphone)??y.find(e=>e.source===rW.Source.Microphone),[b,y]);k.useEffect(()=>{h.emit("microphoneChanged",S)},[h,S]);let[C,w]=k.useState(r.state);k.useEffect(()=>{let e=e=>{w(e)};return r.on(cF.ConnectionStateChanged,e),()=>{r.off(cF.ConnectionStateChanged,e)}},[r]),k.useEffect(()=>{m&&l()},[m]);let[E,P]=k.useState(null);k.useEffect(()=>{if(!m)return;let e=e=>{e.identity===(null==m?void 0:m.identity)&&P("Agent left the room unexpectedly.")};return r.on(cF.ParticipantDisconnected,e),()=>{r.off(cF.ParticipantDisconnected,e)}},[m,r]),k.useEffect(()=>{C===ll.Disconnected&&P(null)},[C]);let[R,I]=k.useState(()=>r.localParticipant.getTrackPublication(rW.Source.Microphone)??null);k.useEffect(()=>{let e=()=>{I(r.localParticipant.getTrackPublication(rW.Source.Microphone)??null)},t=()=>{I(null)};return r.localParticipant.on(cB.LocalTrackPublished,e),r.localParticipant.on(cB.LocalTrackUnpublished,t),()=>{r.localParticipant.off(cB.LocalTrackPublished,e),r.localParticipant.off(cB.LocalTrackUnpublished,t)}},[r.localParticipant]);let _=k.useMemo(()=>{let e=[];return s&&e.push(s),E&&e.push(E),e},[s,E]),x=k.useMemo(()=>
4{if(_.length>0)return"failed";let e="disconnected";return C!==ll.Disconnected&&(e="connecting"),R&&(e="pre-connect-buffering"),m&&g[dJ.AgentState]&&(e=g[dJ.AgentState]),e},[_,C,R,m,g]);k.useEffect(()=>{h.emit("stateChanged",x),d(x)},[h,x]),k.useEffect(()=>{u(null!==m)},[m]);let O="disconnected"===e.connectionState;k.useEffect(()=>{if(!O)return o(a),()=>{c()}},[O,a]);let{identity:M,name:D,metadata:A}=function(e={}){let t=u4();e.participant&&(t=e.participant);let{identity:n,name:i,metadata:r}=hl(k.useMemo(()=>uh(t),[t]),{name:null==t?void 0:t.name,identity:null==t?void 0:t.identity,metadata:null==t?void 0:t.metadata});return{identity:n,name:i,metadata:r}}({participant:m??void 0}),N=k.useMemo(()=>{let e={attributes:g,internal:{agentParticipant:m,workerParticipant:f,emitter:h}};switch(x){case"disconnected":case"connecting":return{...e,identity:void 0,name:void 0,metadata:void 0,state:x,...hR(x),failureReasons:null,cameraTrack:void 0,microphoneTrack:void 0};case"initializing":case"idle":case"pre-connect-buffering":case"listening":case"thinking":case"speaking":return{...e,identity:M,name:D,metadata:A,state:x,...hR(x),failureReasons:null,cameraTrack:T,microphoneTrack:S};case"failed":return{...e,identity:void 0,name:void 0,metadata:void 0,state:"failed",...hR("failed"),failureReasons:_,cameraTrack:void 0,microphoneTrack:void 0}}},[M,D,A,g,h,m,x,T,S]),{waitUntilConnected:L,waitUntilCouldBeListening:U,waitUntilFinished:j}=(t=k.useRef(x),k.useEffect(()=>{t.current=x},[x]),n=k.useCallback(async e=>{let{isConnected:n}=hR(t.current);if(!n)return new Promise((t,n)=>{let i=e=>{let{isConnected:n}=hR(e);n&&(a(),t())},r=()=>{a(),n(Error("useAgent(/* ... */).waitUntilConnected - signal aborted"))},a=()=>{h.off("stateChanged",i),null==e||e.removeEventListener("abort",r)};h.on("stateChanged",i),null==e||e.addEventListener("abort",r)})},[h]),{waitUntilConnected:n,waitUntilCouldBeListening:k.useCallback(async e=>{let{canListen:n}=hR(t.current);if(!n)return new Promise((t,n)=>{let i=e=>{let{canListen:n}=hR(e);n&&(a(),t())},r=()=>{a(),n(Error("useAgent(/* ... */).waitUntilCouldBeListening - signal aborted"))},a=()=>{h.off("stateChanged",i),null==e||e.removeEventListener("abort",r)};h.on("stateChanged",i),null==e||e.addEventListener("abort",r)})},[h]),waitUntilFinished:k.useCallback(async e=>{let{isFinished:n}=hR(t.current);if(!n)return new Promise((t,n)=>{let i=e=>{let{isFinished:n}=hR(e);n&&(a(),t())},r=()=>{a(),n(Error("useAgent(/* ... */).waitUntilFinished - signal aborted"))},a=()=>{h.off("stateChanged",i),null==e||e.removeEventListener("abort",r)};h.on("stateChanged",i),null==e||e.addEventListener("abort",r)})},[h])}),F=k.useCallback(e=>new Promise((t,n)=>{let i=e=>{e&&(a(),t(e))},r=()=>{a(),n(Error("useAgent(/* ... */).waitUntilCamera - signal aborted"))},a=()=>{h.off("cameraChanged",i),null==e||e.removeEventListener("abort",r)};h.on("cameraChanged",i),null==e||e.addEventListener("abort",r)}),[h]),B=k.useCallback(e=>new Promise((t,n)=>{let i=e=>{e&&(a(),t(e))},r=()=>{a(),n(Error("useAgent(/* ... */).waitUntilMicrophone - signal aborted"))},a=()=>{h.off("microphoneChanged",i),null==e||e.removeEventListener("abort",r)};h.on("microphoneChanged",i),null==e||e.addEventListener("abort",r)}),[h]);return k.useMemo(()=>({...N,waitUntilConnected:L,waitUntilCouldBeListening:U,waitUntilFinished:j,waitUntilCamera:F,waitUntilMicrophone:B}),[N,L,U,j,F,B])}var h_=((l=h_||{}).ConnectionStateChanged="connectionStateChanged",l.MediaDevicesError="mediaDevicesError",l.EncryptionError="encryptionError",l);function hx(e,t={}){var n;let i,r,a,{room:s,agentConnectTimeoutMilliseconds:o,...c}=t,l=u7(),d=k.useMemo(()=>l??s??new o_,[l,s]),u=k.useMemo(()=>new hE.EventEmitter,[]),h=k.useCallback(e=>({isConnected:e===ll.Connected||e===ll.Reconnecting||e===ll.SignalReconnecting}),[]),[p,m]=k.useState(d.state);k.useEffect(()=>{let e=e=>{m(e)};return d.on(cF.ConnectionStateChanged,e),()=>{d.off(cF.ConnectionStateChanged,e)}},[d]),k.useEffect(()=>{let e=async e=>{u.emit("mediaDevicesError",e)};return d.on(cF.MediaDevicesError,e),()=>{d.off(cF.MediaDevicesError,e)}},[d,u]),k.useEffect(()=>{let e=async e=>{u.emit("encryptionError",e)};return d.on(cF.EncryptionError,e),()=>{d.off(cF.EncryptionError,e)}},[d,u]);let{localParticipant:f}
4=hp({room:d}),g=f.getTrackPublication(rW.Source.Camera),v=k.useMemo(()=>{if(g)return{source:rW.Source.Camera,participant:f,publication:g}},[f,g]),b=f.getTrackPublication(rW.Source.Microphone),y=k.useMemo(()=>{if(b)return{source:rW.Source.Microphone,participant:f,publication:b}},[f,b]),T=f.getTrackPublication(rW.Source.ScreenShare),S=k.useMemo(()=>{if(T)return{source:rW.Source.ScreenShare,participant:f,publication:T}},[f,T]),{agentTimeoutFailureReason:C,startAgentTimeout:w,clearAgentTimeout:E,clearAgentTimeoutFailureReason:P,updateAgentTimeoutState:R,updateAgentTimeoutParticipantExists:I}=(()=>{let[e,t]=k.useState(null),[n,i]=k.useState(null),r=k.useRef("connecting"),a=k.useRef(!1);return{agentTimeoutFailureReason:e,startAgentTimeout:k.useCallback(e=>{n&&clearTimeout(n),t(null),i(setTimeout(()=>{if(!a.current)return void t("Agent did not join the room.");let{isConnected:e}=hR(r.current);if(!e)return void t("Agent joined the room but did not complete initializing.")},e??2e4)),r.current="connecting",a.current=!1},[n]),clearAgentTimeout:k.useCallback(()=>{n&&clearTimeout(n),t(null),i(null),r.current="connecting",a.current=!1},[n]),clearAgentTimeoutFailureReason:k.useCallback(()=>{t(null)},[]),updateAgentTimeoutState:k.useCallback(e=>{r.current=e},[]),updateAgentTimeoutParticipantExists:k.useCallback(e=>{a.current=e},[])}})(),_=k.useMemo(()=>({emitter:u,tokenSource:e,agentConnectTimeoutMilliseconds:o,agentTimeoutFailureReason:C,startAgentTimeout:w,clearAgentTimeout:E,clearAgentTimeoutFailureReason:P,updateAgentTimeoutState:R,updateAgentTimeoutParticipantExists:I}),[u,o,e,C,w,E,P,R,I]),x=k.useMemo(()=>{let e={room:d,internal:_};switch(p){case ll.Connecting:return{...e,connectionState:ll.Connecting,...h(ll.Connecting),local:{cameraTrack:void 0,microphoneTrack:void 0,screenShareTrack:void 0}};case ll.Connected:case ll.Reconnecting:case ll.SignalReconnecting:return{...e,connectionState:p,...h(p),local:{cameraTrack:v,microphoneTrack:y,screenShareTrack:S}};case ll.Disconnected:return{...e,connectionState:ll.Disconnected,...h(ll.Disconnected),local:{cameraTrack:void 0,microphoneTrack:void 0,screenShareTrack:void 0}}}},[_,d,p,v,y,h]);k.useEffect(()=>{u.emit("connectionStateChanged",x.connectionState)},[u,x.connectionState]);let O=(n=x.connectionState,i=k.useRef(n),k.useEffect(()=>{i.current=n},[n]),k.useCallback(async(e,t)=>{if(i.current!==e)return new Promise((n,i)=>{let r=t=>{t===e&&(s(),n())},a=()=>{s(),i(Error(`useSession(/* ... */).waitUntilConnectionState(${e}, /* signal */) - signal aborted`))},s=()=>{u.off("connectionStateChanged",r),null==t||t.removeEventListener("abort",a)};u.on("connectionStateChanged",r),null==t||t.addEventListener("abort",a)})},[u])),M=k.useCallback(async e=>O(ll.Connected,e),[O]),D=k.useCallback(async e=>O(ll.Disconnected,e),[O]),A=hI(k.useMemo(()=>({connectionState:x.connectionState,room:d,internal:_}),[x,d,_])),N=(r=e instanceof oO,a=k.useRef(r?c:null),k.useEffect(()=>{if(!r){a.current=null;return}null!==a.current&&function(e,t){for(let n of new Set([...Object.keys(e),...Object.keys(t)]))switch(n){case"roomName":case"participantName":case"participantIdentity":case"participantMetadata":case"participantAttributes":case"agentName":case"agentMetadata":if(e[n]!==t[n])return!1;break;default:throw Error(`Options key ${n} not being checked for equality!`)}return!0}(a.current,c)||(a.current=c)},[r,c]),k.useCallback(async()=>{if(!r)return e.fetch();if(!a.current)throw Error("AgentSession - memoized token fetch options are not set, but the passed tokenSource was an instance of TokenSourceConfigurable. If you are seeing this please make a new GitHub issue!");return e.fetch(a.current)},[r,e])),L=k.useCallback(async(e={})=>{var t,n,i,r,a,s;let{signal:o,tracks:c={microphone:{enabled:!0,publishOptions:{preConnectBuffer:!0}}},roomConnectOptions:l}=e;await D(o);let u=()=>{d.disconnect()};null==o||o.addEventListener("abort",u);let h=!1;await Promise.all([N().then(({serverUrl:e,participantToken:t})=>{var n,i;return h=((null==(i=null==(n=oL(t).roomConfig)?void 0:n.agents)?void 0:i.length)??0)>0,d.connect(e,t,l)}),null!=(t=c.microphone)&&t.enabled?d.localParticipant.setMicrophoneEnabled(!0,void 0,(null==(n=c.microphone)?void 0:n.publishOptions)??{}):Promise.resolve(),null!=(i=c.camera)&&i.enabled?d.localParticipant.setCameraEnabled(!0,void 0,(null==(r=c.camera)?void 0:r.publishOptions)??{}):Promise.resolve(),null!=(a=c.screenShare)&&a.enabled?d.localParticipant.setScreenShareEnabled(!0,void 0,(null==(s=c.screenShare)?void 0:s.publishOptions)??{}):Promise.resolve()]),await M(o),h&&await A.waitUntilConnected(o),null==o||o.removeEventListener("abort",u)},[d,D,N,M,A.waitUntilConnected]),U=k.useCallback(async()=>{await d.disconnect()},[d]),j=k.useCallback(async()=>{let e=await N();await d.prepareConnection(e.serverUrl,e.participantToken)}
4,[N,d]);return k.useEffect(()=>{j().catch(e=>{console.warn("WARNING: Room.prepareConnection failed:",e)})},[]),k.useMemo(()=>({...x,waitUntilConnected:M,waitUntilDisconnected:D,prepareConnection:j,start:L,end:U}),[x,M,D,j,L,U])}var hO=((d=hO||{}).MessageReceived="messageReceived",d);e.s(["S",0,hI,"T",0,function(e,t={fftSize:32,smoothingTimeConstant:0}){let n=dL(e)?e.publication.track:e,[i,r]=k.useState(0);return k.useEffect(()=>{if(!n||!n.mediaStream)return;let{cleanup:e,analyser:i}=ah(n,t),a=new Uint8Array(i.frequencyBinCount),s=setInterval(()=>{i.getByteFrequencyData(a);let e=0;for(let t=0;t<a.length;t++){let n=a[t];e+=n*n}r(Math.sqrt(e/a.length)/255)},1e3/30);return()=>{e(),clearInterval(s)}},[n,null==n?void 0:n.mediaStream,JSON.stringify(t)]),i},"a",0,hu,"a0",0,function(e){var t;let n,i,r,{participantIdentities:a,trackSids:s}=e??{},{textStreams:o}=(t=uE.TRANSCRIPTION,i=hu(n=he({room:null==e?void 0:e.room}.room))===ll.Disconnected,r=k.useMemo(()=>u$(n,t),[n,t]),{textStreams:hl(i?void 0:r,[])});return k.useMemo(()=>o.filter(e=>!a||a.includes(e.participantInfo.identity)).filter(e=>{var t;return!s||s.includes((null==(t=e.streamInfo.attributes)?void 0:t[dJ.TranscribedTrackId])??"")}),[o,a,s])},"a3",0,hx,"b",0,function({props:e}){let{dispatch:t,state:n}=uZ().widget,{className:i}=k.useMemo(()=>uN(),[]);return{mergedProps:k.useMemo(()=>ha(e,{className:i,onClick:()=>{t&&t({msg:"toggle_chat"})},"aria-pressed":null!=n&&n.showChat?"true":"false","data-lk-unread-msgs":n?n.unreadMessages<10?n.unreadMessages.toFixed(0):"9+":"0"}),[e,i,t,n])}},"c",0,function(e){let t=u8(),n=hu(t);return{buttonProps:k.useMemo(()=>{let{className:i,disconnect:r}=uk(t);return ha(e,{className:i,onClick:()=>r(e.stopTracks??!0),disabled:n===ll.Disconnected})},[t,e,n])}},"d",0,function({trackRef:e,props:t}){let n=u5(e),i=u0(),{className:r}=k.useMemo(()=>uL(),[]),a=k.useMemo(()=>dF(n,null==i?void 0:i.pin.state),[n,null==i?void 0:i.pin.state]);return{mergedProps:k.useMemo(()=>ha(t,{className:r,onClick:e=>{var r,s,o,c,l;null==(r=t.onClick)||r.call(t,e),a?null==(o=null==i?void 0:(s=i.pin).dispatch)||o.call(s,{msg:"clear_pin"}):null==(l=null==i?void 0:(c=i.pin).dispatch)||l.call(c,{msg:"set_pin",trackReference:n})}}),[t,r,n,a,null==i?void 0:i.pin]),inFocus:a}},"e",0,function({kind:e,room:t,track:n,requestPermissions:i,onError:r}){let a=u7(),s=k.useMemo(()=>
4t??a??new o_,[t,a]),o=hl(k.useMemo(()=>us(e,r,i),[e,i,r]),[]),[c,l]=k.useState((null==s?void 0:s.getActiveDevice(e))??"default"),{className:d,activeDeviceObservable:u,setActiveMediaDevice:h}=k.useMemo(()=>uy(e,s),[e,s,n]);return k.useEffect(()=>{let e=u.subscribe(e=>{e&&(dz.info("setCurrentDeviceId",e),l(e))});return()=>{null==e||e.unsubscribe()}},[u]),{devices:o,className:d,activeDeviceId:c,setActiveMediaDevice:h}},"f",0,function({room:e,props:t}){let n=he(e),{className:i,roomAudioPlaybackAllowedObservable:r,handleStartAudioPlayback:a}=k.useMemo(()=>uD(),[]),{canPlayAudio:s}=hl(k.useMemo(()=>r(n),[n,r]),{canPlayAudio:n.canPlaybackAudio});return{mergedProps:k.useMemo(()=>ha(t,{className:i,onClick:()=>{a(n)},style:{display:s?"none":"block"}}),[t,i,s,a,n]),canPlayAudio:s}},"g",0,function({room:e,props:t}){let n=he(e),{className:i,roomVideoPlaybackAllowedObservable:r,handleStartVideoPlayback:a}=k.useMemo(()=>uA(),[]),{canPlayVideo:s}=hl(k.useMemo(()=>r(n),[n,r]),{canPlayVideo:n.canPlaybackVideo});return{mergedProps:k.useMemo(()=>ha(t,{className:i,onClick:()=>{a(n)},style:{display:s?"none":"block"}}),[t,i,s,a,n]),canPlayVideo:s}},"h",0,function({source:e,onChange:t,initialState:n,captureOptions:i,publishOptions:r,onDeviceError:a,room:s,...o}){var c;let l=u7(),d=k.useMemo(()=>s??l,[s,l]),u=null==(c=null==d?void 0:d.localParticipant)?void 0:c.getTrackPublication(e),h=k.useRef(!1),{toggle:p,className:m,pendingObserver:f,enabledObserver:g}=k.useMemo(()=>d?uv(e,d,i,r,a):ub(),[d,e,JSON.stringify(i),r]),v=hl(f,!1),b=hl(g,n??!!(null!=u&&u.isEnabled));k.useEffect(()=>{null==t||t(b,h.current),h.current=!1},[b,t]),k.useEffect(()=>{void 0!==n&&(dz.debug("forcing initial toggle state",e,n),p(n))},[]);let y=k.useMemo(()=>ha(o,{className:m}),[o,m]),T=k.useCallback(e=>{var t;h.current=!0,p().catch(()=>h.current=!1),null==(t=o.onClick)||t.call(o,e)},[o,p]);return{toggle:p,enabled:b,pending:v,track:u,buttonProps:{...y,"aria-pressed":b,"data-lk-source":e,"data-lk-enabled":b,disabled:v,onClick:T}}},"i",0,hd,"j",0,hl,"k",0,hg,"l",0,function({trackRef:e,onParticipantClick:t,disableSpeakingIndicator:n,htmlProps:i}){let r,a=u5(e),s=k.useMemo(()=>{let{className:e}=uw();return ha(i,{className:e,onClick:e=>{var n;if(null==(n=i.onClick)||n.call(i,e),"function"==typeof t){let e=a.publication??a.participant.getTrackPublication(a.source);t({participant:a.participant,track:e})}}})},[i,t,a.publication,a.source,a.participant]),o=a.participant.getTrackPublication(rW.Source.Microphone),c=k.useMemo(()=>({participant:a.participant,source:rW.Source.Microphone,publication:o}),[o,a.participant]),l=hh(a),d=hh(c),u=(r=u6(a.participant),hl(k.useMemo(()=>uf(r),[r]),r.isSpeaking)),h=function(e){if(e.publication instanceof oT){let t=e.publication.track;if(t){let{facingMode:e}=oU(t);return e}}return"undefined"}(a);return{elementProps:{"data-lk-audio-muted":d,"data-lk-video-muted":l,"data-lk-speaking":!0!==n&&u,"data-lk-local-participant":a.participant.isLocal,"data-lk-source":a.source,"data-lk-facing-mode":h,...s}}},"m",0,function(e,t={}){let n=u6(e),i=he(t.room);return hl(k.useMemo(()=>ul(i,n),[i,n]),n.isLocal?n.isE2EEEnabled:!!(null!=n&&n.isEncrypted))},"n",0,function(e,t,n={}){let i=n.gridLayouts??dW,{width:r,height:a}=hc(e),s=dG(i,t,r,a);return k.useEffect(()=>{e.current&&s&&(e.current.style.setProperty("--lk-col-count",null==s?void 0:s.columns.toString()),e.current.style.setProperty("--lk-row-count",null==s?void 0:s.rows.toString()))},[e,s]),{layout:s,containerWidth:r,containerHeight:a}},"o",0,function(e,t){let[n,i]=k.useState(1),r=Math.max(Math.ceil(t.length/e),1);n>r&&i(r);let a=n*e,s=a-e,o=e=>{i(t=>"next"===e?t===r?t:t+1:1===t?t:t-1)},c=hm(t,e).slice(s,a);return{totalPageCount:r,nextPage:()=>o("next"),prevPage:()=>o("previous"),setPage:e=>{e>r?i(r):e<1?i(1):i(e)},firstItemIndex:s,lastItemIndex:a,tracks:c,currentPage:n}},"p",0,function(e,t={}){let n=k.useRef(null),i=k.useRef(null),r=t.minSwipeDistance??50,a=e=>{i.current=null,n.current=e.targetTouches[0].clientX},s=e=>{i.current=e.targetTouches[0].clientX},o=k.useCallback(()=>{if(!n.current||!i.current)return;let e=n.current-i.current,a=e>r,s=e<-r;a&&t.onLeftSwipe&&t.onLeftSwipe(),s&&t.onRightSwipe&&t.onRightSwipe()},[r,t]);k.useEffect(()=>{let t=e.current;return t&&(t.addEventListener("touchstart",a,{passive:!0}),t.addEventListener("touchmove",s,{passive:!0}),t.addEventListener("touchend",o,{passive:!0})),()=>{t&&(t.removeEventListener("touchstart",a),t.removeEventListener("touchmove",s),t.removeEventListener("touchend",o))}},[e,o])},"q",0,hc,"r",0,hm,"s",0,hy,"t",0,hv,"u",0,function(e){let{state:t,dispatch:n}=uZ().pin;return{buttonProps:k.useMemo(()=>{let{className:i}=uU();return ha(e,{className:i,disabled:!(null!=t&&t.length),onClick:()=>{n&&n({msg:"clear_pin"})}})},[e,n,t])}},"v",0,function(e={}){let t=he(e.room),{name:n,metadata:i}=hl(k.useMemo(()=>ua(t),[t]),{name:t.name,metadata:t.metadata});return{name:n,metadata:i}}],571416);var hM=e.i(187014),hD=e.i(598686),hA=e.i(891089),hN=e.i(232677),hL=e.i(863323),hU=e.i(817422);let hj={en:"English",de:"German",es:"Spanish",fr:"French",ja:"Japanese",pt:"Portuguese",zh:"Chinese",hi:"Hindi",ko:"Korean",it:"Italian",nl:"Dutch",pl:"Polish",ru:"Russian",sv:"Swedish",tr:"Turkish",bg:"Bulgarian",ro:"Romanian",ar:"Arabic",cs:"Czech",el:"Greek",fi:"Finnish",hr:"Croatian",ms:"Malay",sk:"Slovak",da:"Danish",ta:"Tamil",uk:"Ukrainian",id:"Indonesian",tl:"Tagalog",hu:"Hungarian",no:"Norwegian",vi:"Vietnamese",bn:"Bengali",th:"Thai",he:"Hebrew",ka:"Georgian",te:"Telugu",gu:"Gujarati",kn:"Kannada",ml:"Malayalam",mr:"Marathi",pa:"Punjabi",fil:"Filipino"},hF=Object.keys(hj),hB=hU.z.enum(hF),hq=hU.z.object({code:hB.describe("Language code passed to the agent via delphi.language."),label:hU.z.string().describe("Human-readable name for the selector.")}).refine(e=>hj[e.code]===e.label,{path:["label"],message:"Label must match the call-language catalog for this code"}).describe("A selectable voice-call language."),hV=hU.z.array(hq),h
4H=new Set(["ar","bn","bg","hr","cs","da","nl","en","fi","fr","de","el","gu","he","hi","hu","id","it","ja","kn","ko","ms","mr","no","pl","pt","ro","ru","sk","es","sv","tl","ta","te","th","tr","uk","vi","zh"]);function hz(e,t=!0){return hV.parse(e.filter(e=>{var n,i;return!t||(n=hB.parse(e),hH.has("fil"===(i=n)?"tl":i))}).map(e=>({code:e,label:hj[e]})).sort((e,t)=>e.label.localeCompare(t.label)))}let hW=["en","ja","zh","de","hi","fr","ko","pt","it","es","id","nl","tr","fil","pl","sv","bg","ro","ar","cs","el","fi","hr","ms","sk","da","ta","uk","ru"],hG=[...hW,"hu","no","vi"];hz(["en","fr","de","es","pt","zh","ja","ko"]),hz(["en","de","es","fr","ja","pt","zh","hi","ko","it","nl","pl","ru","sv","tr","bg","ro","ar","cs","el","fi","hr","ms","sk","da","ta","uk","id","tl","hu","no","vi","bn","th","he","ka","te","gu","kn","ml","mr","pa"]),hz(hW),hz(hG),hz(["en"]),hz(hF,!1),hU.z.object({options:hU.z.array(hq),suggested:hB.describe("Default code from Accept-Language matched against this voice model's options.")}).describe("Voice-model-scoped call languages plus a locale-derived default.");let hJ="delphi.voice-call.language";function hK(e,t,n,i){var r;let a,s,o=t??e[0]?.code??"en";return a=new Set((r={options:e,suggested:o,sessionPick:n,storedPick:function(){if(null==globalThis.window)return null;try{let e=globalThis.localStorage.getItem(hJ);return e?.trim()||null}catch{return null}}(),channelDefault:i}).options.map(e=>e.code)),(s=e=>{if(null==e||""===e)return null;let t=hB.safeParse(e);return t.success&&a.has(t.data)?t.data:null})(r.sessionPick)??s(r.storedPick)??(a.has(r.suggested)?r.suggested:null)??hB.parse(r.options[0]?.code??r.suggested)}let h$=hU.z.object({code:hU.z.string().min(1)}).strict(),hY=hU.z.object({code:hU.z.string().min(1)}).strict();async function hQ(e,t){let n,i=[...e.remoteParticipants.values()].find(e=>e.isAgent);if(!i)throw Error("No call agent is connected");let r=await e.localParticipant.performRpc({destinationIdentity:i.identity,method:"delphi.voice-call.set-language",payload:JSON.stringify(h$.parse({code:t})),responseTimeout:6e4});try{n=JSON.parse(r)}catch{throw Error("Invalid call language response")}let a=hY.safeParse(n);if(!a.success||a.data.code!==t)throw Error("Invalid call language response");return a.data.code}function hX(e){let t,n=0,i=()=>{void 0!==t&&(t=void 0,e.setPending(!1))},r=()=>{n+=1,i()};return{async change(a,s,o){let c=s();if("connecting"===c.status)return;if("active"!==c.status){r(),e.commit(a);return}if(!c.connected)return void e.reportError();if(void 0!==t)return;let l=++n;t=l,e.setPending(!0);try{let i=await o(c.roomKey,a),r=s();if(t!==l||n!==l||"active"!==r.status||!r.connected||r.ownerKey!==c.ownerKey||r.roomKey!==c.roomKey||i!==a)return;e.commit(a)}catch{t===l&&n===l&&e.reportError()}finally{t===l&&n===l&&i()}},invalidate:r}}function hZ(e){return e.state===ll.Connected}function h0(e,t){let{dialStartedAt:n,connectStartedAt:i,tokenReadyAt:r,roomConnectedAt:a}=e;return{dial_duration_ms:Math.round(t-n),mic_check_duration_ms:null!=i?Math.round(i-n):null,token_duration_ms:null!=i&&null!=r?Math.round(r-i):null,room_connect_duration_ms:null!=r&&null!=a?Math.round(a-r):null}}function h1(e,t){return{dial_stage:null==e.connectStartedAt?"preflight":null==e.tokenReadyAt?"token":null==e.roomConnectedAt?"room_connect":"agent_join",...h0(e,t)}}async function h2(e){if(!e?.getUserMedia)return"restricted_browser";try{for(let t of(await e.getUserMedia({audio:!0})).getTracks())t.stop();return null}catch(e){return e instanceof DOMException&&"NotAllowedError"===e.name?"mic_denied":"generic"}}e.s(["callLanguageSelectMode",0,function(e,t){return"connecting"===e?"hidden":"active"===e&&t?"disabled":"enabled"},"createCallLanguageChangeController",0,hX,"isCallLanguageSwitchConnected",0,hZ,"performCallLanguageSwitch",0,hQ],212905);class h5 extends oO{fetchToken;cachedResponse;startRequested;inFlight;constructor(e){super(),this.fetchToken=e,this.cachedResponse=null,this.startRequested=!1,this.inFlight=null}async fetch(e,t=!1){if(this.inFlight)return this.inFlight;if(t&&(this.cachedResponse=null,this.startRequested=!0),this.cachedResponse)return this.cachedResponse;if(!this.startRequested)throw Error("Voice token fetch is deferred until call start.");return this.inFlight=this.fetchToken(e).then(e=>(this.cachedResponse=e,this.startRequested=!1,e)).finally(()=>{this.inFlight=null}),this.inFlight}}function h3(e,t){return t||"connecting"===e||"active"===e}e.s(["shouldIgnoreDialStart",0,h3],518040);let h4="my-agent";e.s(["useVoiceCall",0,function(e,t={}){let{apiBaseUrl:n,authorizationToken:i,channelId:r,parentOrigin:a,onQuotaBlocked:s,channelDefault:o,multipleLanguages:c=!0,ownerUserId:l,onDialStart:d}=t,u=(0,k.useRef)(s),h=(0,k.useRef)(d);(0,k.useEffect)(()=>{u.current=s,h.current=d},[d,s]);let p=(0,k.useMemo)(()=>v({apiBaseUrl:n,authorizationToken:i,channelId:r}),[n,i,r]),b=(0,k.useMemo)(()=>(0,f.getVoiceCallLanguagesOptions)({...p??{},query:{...p?.query,owner_username:e},headers:(0,hN.appendCallTraceHeaders)(p?.headers,"public")}),[e,p]),{data:T}=(0,m.useQuery)(b),S=T?.data,C=(0,k.useMemo)(()=>S?.options??[],[S?.options]),w=S?.suggested,[E,P]=(0,k.useState)(null),R=(0,k.useMemo)(()=>hK(C,w,E,o),[o,C,w,E]),I=(0,k.useRef)(R),[_,x]=(0,k.useState)(!1),[O]=(0,k.useState)(()=>hX({commit:e=>{if(null!=globalThis.window)try{globalThis.localStorage.setItem(hJ,e)}catch{}P(e)},reportError:()=>{hM.toast.error("Couldn't change the call language. Try again.")},setPending:x})),[M,D]=(0,k.useState)(e);
4e!==M&&(O.invalidate(),D(e),P(null));let[A,N]=(0,k.useState)("idle"),[L,U]=(0,k.useState)(null),[j,F]=(0,k.useState)(null),[B,q]=(0,k.useState)(null),[V,H]=(0,k.useState)(null),[z,W]=(0,k.useState)(null),[G,J]=(0,k.useState)(!1),[K,$]=(0,k.useState)(!1),Y=(0,k.useRef)(A);(0,k.useEffect)(()=>{Y.current=A},[A]);let Q=(0,k.useRef)(null),X=(0,k.useRef)(null),Z=(0,k.useRef)(null),ee=(0,k.useRef)(null),et=(0,k.useRef)(null),en=(0,k.useRef)(!1),ei=(0,k.useRef)(V),er=(0,k.useRef)(B);(0,k.useEffect)(()=>{ei.current=V,er.current=B,I.current=R},[R,B,V]);let ea=(0,k.useCallback)((e,t)=>{en.current||function(e){if("quota_exceeded"===e.failReason)return!0;let{startedAt:t,endedAt:n,dialBudgetSeconds:i}=e;return null!=i&&null!=t&&null!=n&&(n-t)/1e3>=i-3}({failReason:e,startedAt:ei.current,endedAt:t,dialBudgetSeconds:er.current})&&(en.current=!0,u.current?.())},[]),es=(0,k.useRef)(ea);(0,k.useEffect)(()=>{es.current=ea},[ea]);let eo=r?"embed":"delphi_app",ec="embed"===eo?a??null:null,el=(0,k.useCallback)(e=>({owner_user_id:l??null,thread_id:e.threadId,channel_id:r??null,surface:eo,parent_origin:ec,call_language:e.language,...l?{$groups:{delphi:l}}:void 0}),[r,l,ec,eo]),ed=(0,k.useCallback)(e=>{let t=Z.current;t&&(Z.current=null,(0,hA.track)("call:dial_fail",{...el(t),fail_reason:e,...h1(t,performance.now())}))},[el]),eu=(0,k.useCallback)(()=>{let e=Z.current;e&&(Z.current=null,(0,hA.track)("call:dial_cancel",{...el(e),...h1(e,performance.now())}))},[el]);(0,k.useEffect)(()=>{Q.current=eu},[eu]);let eh=(0,k.useCallback)(()=>{ee.current?.abort(),ee.current=null},[]),ep=null==globalThis.window?h4:(0,hD.localPortlessScopedNameFromHostname)(h4,window.location.hostname),em=(0,g.urlWithEmbedChannel)(`${(0,hL.resolveApiBaseUrl)(n)}/voice-call/token`,r),ef=(0,k.useMemo)(()=>({agentName:ep,participantAttributes:{"delphi.language":R}}),[R,ep]),eg=(0,k.useCallback)(async t=>{X.current=null;let n=Z.current,r=await fetch(em,{method:"POST",credentials:i?"omit":"include",signal:ee.current?.signal,headers:(0,hN.appendCallTraceHeaders)({"Content-Type":"application/json",...i?{Authorization:`Bearer ${i}`}:void 0},"public"),body:JSON.stringify({owner_username:e,attribution:(0,y.currentHandoff)(e),participant_name:t.participantName,language:I.current,...ec?{parent_origin:ec}:void 0})});if(!r.ok){var a;throw X.current="quota_exceeded"===(a=await r.json().then(e=>e.code).catch(()=>void 0))?"quota_exceeded":"embed_email_required"===a?"email_required":"access_revoked"===a?"access_revoked":"generic",Error(`Token request failed: ${r.status}`)}let s=await r.json();return F(s.thread_id),q(s.remaining_voice_seconds),n&&(n.tokenReadyAt=performance.now(),n.threadId=s.thread_id),{serverUrl:s.server_url,participantToken:s.participant_token}},[i,e,ec,em]),ev=(0,k.useRef)(eg);(0,k.useEffect)(()=>{ev.current=eg},[eg]);let[eb]=(0,k.useState)(()=>new h5(e=>ev.current(e))),ey=hx(eb,ef),ek=(0,k.useRef)(ey),eT=(0,k.useRef)({captureDialFail:ed,dialBaseProperties:el,languageOptions:C,liveKitAgentName:ep,ownerUserId:l,resolvedParentOrigin:ec,serverSuggested:w,sessionLanguagePick:E,surface:eo});(0,k.useEffect)(()=>{ek.current=ey},[ey]);let eS=(0,k.useCallback)(t=>{O.change(t,()=>{let t=ek.current;return{status:Y.current,ownerKey:e,roomKey:t.room,connected:hZ(t.room)}},hQ)},[O,e]);(0,k.useEffect)(()=>{eT.current={captureDialFail:ed,dialBaseProperties:el,languageOptions:C,liveKitAgentName:ep,ownerUserId:l,resolvedParentOrigin:ec,serverSuggested:w,sessionLanguagePick:E,surface:eo}});let eC=(0,k.useCallback)(async()=>{if(h3(Y.current,null!==ee.current))return;O.invalidate(),h.current?.();let e=new AbortController;ee.current=e,en.current=!1,$(!1),U(null),W(null),X.current=null;let t={dialStartedAt:performance.now(),connectStartedAt:null,tokenReadyAt:null,roomConnectedAt:null,threadId:null,language:I.current};Z.current=t;let{captureDialFail:n,dialBaseProperties:i,languageOptions:r,liveKitAgentName:a,ownerUserId:s,resolvedParentOrigin:o,serverSuggested:c,sessionLanguagePick:l,surface:d}=eT.current;try{if(function(){if(null==globalThis.window)return!1;let e=navigator.userAgent.toLowerCase();return/facebook|fban|fbav/.test(e)||/instagram/.test(e)||/linkedin/.test(e)||/musical_ly|bytedance|tiktok/.test(e)||/twitter/.test(e)||/snapchat/.test(e)}()){N("failed"),U("restricted_browser"),n("restricted_browser");return}
4N("connecting");let u=await h2(navigator.mediaDevices);if(e.signal.aborted)return;if(u){N("failed"),U(u),n(u);return}t.connectStartedAt=performance.now();try{let n=hK(r,c,l);I.current=n,t.language=n;let u=ek.current,h=u.internal.tokenSource;if(await h.fetch({agentName:a,participantAttributes:{"delphi.language":n}},!0),e.signal.aborted)return;let p=()=>{t.roomConnectedAt=performance.now()};u.room.once(cF.Connected,p);try{await u.start({signal:e.signal})}finally{u.room.off(cF.Connected,p)}if(e.signal.aborted)return;let m=performance.now();N("active"),H(Date.now()),J(!1);let f={...h0(t,m),agent_join_duration_ms:null!=t.roomConnectedAt?Math.round(m-t.roomConnectedAt):null};(0,hA.track)("call:dial_end",{...i(t),...f}),Z.current=null,function(e){let{room:t,cleanupRef:n}=e;n.current?.();let i=t=>{if(!t.some(e=>!e.isLocal))return;n.current?.();let i=e.timings.threadId;if(!i)return;let r=performance.now();(0,hA.track)("call:first_audio_start",{thread_id:i,owner_user_id:e.ownerUserId??null,surface:e.surface,parent_origin:e.parentOrigin,dial_to_first_audio_ms:Math.round(r-e.timings.dialStartedAt),active_to_first_audio_ms:Math.round(r-e.connectedAt),...e.ownerUserId?{$groups:{delphi:e.ownerUserId}}:void 0})};n.current=()=>{t.off(cF.ActiveSpeakersChanged,i),n.current=null},t.on(cF.ActiveSpeakersChanged,i)}({room:u.room,cleanupRef:et,timings:t,ownerUserId:s,surface:d,parentOrigin:o,connectedAt:m})}catch{if(e.signal.aborted)return;let t=X.current??"generic";N("failed"),U(t),n(t),es.current(t,Date.now())}}finally{ee.current===e&&(ee.current=null)}},[O]);(0,k.useEffect)(()=>{"active"!==A&&et.current?.()},[A]),(0,k.useEffect)(()=>{if(K||"connecting"!==A)return;let e=window.setTimeout(()=>{"connecting"===Y.current&&(eh(),ek.current.end().catch(()=>{}),N("failed"),U("connect_timeout"),ed("connect_timeout"))},15e3);return()=>window.clearTimeout(e)},[eh,ed,K,A]);let ew=(0,k.useCallback)(async()=>{if("active"===A||"connecting"===A){O.invalidate(),eu(),eh();try{await ek.current.end()}finally{let e=Date.now();N("ended"),W(e),es.current(X.current,e)}}},[eh,eu,O,A]),eE=(0,k.useCallback)(()=>{O.invalidate(),eu(),eh(),en.current=!1,$(!1),N("idle"),U(null),H(null),W(null)},[eh,eu,O]),eP=(0,k.useCallback)(()=>{O.invalidate(),eh(),$(!1),N("failed"),U("access_revoked"),H(null),W(null)},[eh,O]),eR=(0,k.useCallback)((e,t=null)=>{},[O]),eI=(0,k.useCallback)(()=>{let e=!G;ek.current.room.localParticipant.setMicrophoneEnabled(!e),J(e)},[G]);return(0,k.useEffect)(()=>{var e;if(K)return;let t=(e=ey.connectionState,"active"===A&&e===ll.Disconnected?"ended":A);if(t===A)return;O.invalidate();let n=Date.now();N(t),W(n),ea(X.current,n)},[K,X,ea,O,A,ey.connectionState]),(0,k.useEffect)(()=>{K||"idle"!==A&&"ended"!==A&&"failed"!==A||ey.connectionState!==ll.Disconnected&&ey.end().catch(()=>{})},[K,A,ey]),(0,k.useEffect)(()=>()=>{Q.current?.(),eh(),O.invalidate(),ek.current.end().catch(()=>{})},[eh,O]),(0,k.useMemo)(()=>({status:A,failReason:L,threadId:j,remainingVoiceSeconds:B,startedAt:V,endedAt:z,language:R,setLanguage:eS,languageSwitchPending:_,languageOptions:C,multipleLanguages:c,micMuted:G,toggleMic:eI,startCall:eC,endCall:ew,markAccessRevoked:eP,reset:eE,devSetStatus:eR,session:ey}),[A,L,j,B,V,z,R,eS,_,C,c,G,eI,eC,ew,eP,eE,eR,ey])}],174576);let h6=e=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor",...e},k.createElement("path",{d:"M1.354.646a.5.5 0 1 0-.708.708l14 14a.5.5 0 0 0 .708-.708L11 10.293V4.5A1.5 1.5 0 0 0 9.5 3H3.707zM0 4.5a1.5 1.5 0 0 1 .943-1.393l9.532 9.533c-.262.224-.603.36-.975.36h-8A1.5 1.5 0 0 1 0 11.5z"}),k.createElement("path",{d:"m15.2 3.6-2.8 2.1a1 1 0 0 0-.4.8v3a1 1 0 0 0 .4.8l2.8 2.1a.5.5 0 0 0 .8-.4V4a.5.5 0 0 0-.8-.4z"})),h9=e=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor",...e},k.createElement("path",{d:"M0 4.5A1.5 1.5 0 0 1 1.5 3h8A1.5 1.5 0 0 1 11 4.5v7A1.5 1.5 0 0 1 9.5 13h-8A1.5 1.5 0 0 1 0 11.5zM15.2 3.6l-2.8 2.1a1 1 0 0 0-.4.8v3a1 1 0 0 0 .4.8l2.8 2.1a.5.5 0 0 0 .8-.4V4a.5.5 0 0 0-.8-.4z"})),h8=e=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor",...e},k.createElement("path",{d:"M12.227 11.52a5.477 5.477 0 0 0 1.246-2.97.5.5 0 0 0-.995-.1 4.478 4.478 0 0 1-.962 2.359l-1.07-1.07C10.794 9.247 11 8.647 11 8V3a3 3 0 0 0-6 0v1.293L1.354.646a.5.5 0 1 0-.708.708l14 14a.5.5 0 0 0 .708-.708zM8 12.5c.683 0 1.33-.152 1.911-.425l.743.743c-.649.359-1.378.59-2.154.66V15h2a.5.5 0 0 1 0 1h-5a.5.5 0 0 1 0-1h2v-1.522a5.502 5.502 0 0 1-4.973-4.929.5.5 0 0 1 .995-.098A4.5 4.5 0 0 0 8 12.5z"}),k.createElement("path",{d:"M8.743 10.907 5 7.164V8a3 3 0 0 0 3.743 2.907z"})),h7=e=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor",...e},k.createElement("path",{fillRule:"evenodd",d:"M2.975 8.002a.5.5 0 0 1 .547.449 4.5 4.5 0 0 0 8.956 0 .5.5 0 1 1 .995.098A5.502 5.502 0 0 1 8.5 13.478V15h2a.5.5 0 0 1 0 1h-5a.5.5 0 0 1 0-1h2v-1.522a5.502 5.502 0 0 1-4.973-4.929.5.5 0 0 1 .448-.547z",clipRule:"evenodd"}
4),k.createElement("path",{d:"M5 3a3 3 0 1 1 6 0v5a3 3 0 0 1-6 0z"})),pe=e=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentcolor",...e},k.createElement("path",{d:"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"}),k.createElement("path",{d:"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"})),pt=e=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentcolor",...e},k.createElement("path",{d:"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"}),k.createElement("path",{d:"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"}),k.createElement("g",{opacity:.25},k.createElement("path",{d:"M12 .5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"}),k.createElement("path",{d:"M12 .5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"}))),pn=e=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentcolor",...e},k.createElement("path",{d:"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"}),k.createElement("path",{d:"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"}),k.createElement("g",{opacity:.25},k.createElement("path",{d:"M6 6.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"}),k.createElement("path",{d:"M6 6.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"}),k.createElement("path",{d:"M12 .5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z"}))),pi=e=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor",...e},k.createElement("g",{opacity:.25},k.createElement("path",{d:"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-4Zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-9Zm6-6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V.5Z"}),k.createElement("path",{d:"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-4Zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-9Zm6-6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V.5Z"}))),pr=e=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:16,fill:"none",...e},k.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M0 2.75A2.75 2.75 0 0 1 2.75 0h14.5A2.75 2.75 0 0 1 20 2.75v10.5A2.75 2.75 0 0 1 17.25 16H2.75A2.75 2.75 0 0 1 0 13.25V2.75ZM2.75 1.5c-.69 0-1.25.56-1.25 1.25v10.5c0 .69.56 1.25 1.25 1.25h14.5c.69 0 1.25-.56 1.25-1.25V2.75c0-.69-.56-1.25-1.25-1.25H2.75Z",clipRule:"evenodd"}),k.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M9.47 4.22a.75.75 0 0 1 1.06 0l2.25 2.25a.75.75 0 0 1-1.06 1.06l-.97-.97v4.69a.75.75 0 0 1-1.5 0V6.56l-.97.97a.75.75 0 0 1-1.06-1.06l2.25-2.25Z",clipRule:"evenodd"})),pa=e=>k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:16,fill:"none",...e},k.createElement("g",{fill:"currentColor"},k.createElement("path",{d:"M7.28 4.22a.75.75 0 0 0-1.06 1.06L8.94 8l-2.72 2.72a.75.75 0 1 0 1.06 1.06L10 9.06l2.72 2.72a.75.75 0 1 0 1.06-1.06L11.06 8l2.72-2.72a.75.75 0 0 0-1.06-1.06L10 6.94z"}),k.createElement("path",{fillRule:"evenodd",d:"M2.75 0A2.75 2.75 0 0 0 0 2.75v10.5A2.75 2.75 0 0 0 2.75 16h14.5A2.75 2.75 0 0 0 20 13.25V2.75A2.75 2.75 0 0 0 17.25 0zM1.5 2.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v10.5c0 .69-.56 1.25-1.25 1.25H2.75c-.69 0-1.25-.56-1.25-1.25z",clipRule:"evenodd"})));(function(){if(h)return;h=1;var e=NaN,t=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,r=/^0o[0-7]+$/i,a=parseInt,s="object"==typeof oq&&oq&&oq.Object===Object&&oq,o="object"==typeof self&&self&&self.Object===Object&&self,c=s||o||Function("return this")(),l=Object.prototype.toString,d=Math.max,p=Math.min,m=function(){return c.Date.now()};function f(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function g(s){if("number"==typeof s)return s;if("symbol"==typeof(o=s)||o&&"object"==typeof o&&"[object Symbol]"==l.call(o))return e;if(f(s)){var o,c="function"==typeof s.valueOf?s.valueOf():s;s=f(c)?c+"":c}if("string"!=typeof s)return 0===s?s:+s;s=s.replace(t,"");var d=i.test(s);return d||r.test(s)?a(s.slice(2),d?2:8):n.test(s)?e:+s}u=function(e,t,n){var i,r,a,s,o,c,l=0,u=!1,h=!1,v=!0;if("function"!=typeof e)throw TypeError("Expected a function");function b(t){var n=i,a=r;return i=r=void 0,l=t,s=e.apply(a,n)}function y(e){var n=e-c,i=e-l;return void 0===c||n>=t||n<0||h&&i>=a}function k(){var e,n,i,r=m();if(y(r))return T(r);o=setTimeout(k,(e=r-c,n=r-l,i=t-e,h?p(i,a-n):i))}function T(e){return o=void 0,v&&i?b(e):(i=r=void 0,s)}function S(){var e,n=m(),a=y(n);if(i=arguments,r=this,c=n,a){if(void 0===o)return l=e=c,o=setTimeout(k,t),u?b(e):s;if(h)return o=setTimeout(k,t),b(c)}return void 0===o&&(o=setTimeout(k,t)),s}return t=g(t)||0,f(n)&&(u=!!n.leading,a=(h="maxWait"in n)?d(g(n.maxWait)||0,t):a,v="trailing"in n?!!n.trailing:v),S.cancel=function(){void 0!==o&&clearTimeout(o),l=0,i=c=r=o=void 0},S.flush=function(){return void 0===o?s:T(m())},S}})();let ps=k.forwardRef(function({trackRef:e,onSubscriptionStatusChanged:t,volume:n,...i},r){let a=u5(e),s=k.useRef(null);k.useImperativeHandle(r,()=>s.current);let{elementProps:o,isSubscribed:c,track:l,publication:d}=function(e,t={}){let[n,i]=k.useState(ut(e)),[r,a]=k.useState(null==n?void 0:n.isMuted),[s,o]=k.useState(null==n?void 0:n.isSubscribed),[c,l]=k.useState(null==n?void 0:n.track),[d,u]=k.useState("landscape"),h=k.useRef(),{className:p,trackObserver:m}=k.useMemo(()=>ue(e),[e.participant.sid??e.participant.identity,e.source,dL(e)&&e.publication.trackSid]);return k.useEffect(()=>{let e=m.subscribe(e=>{dz.debug("update track",e),i(e),a(null==e?void 0:e.isMuted),o(null==e?void 0:e.isSubscribed),l(null==e?void 0:e.track)});return()=>null==e?void 0:e.unsubscribe()},[m]),k.useEffect(()=>{var n,i;return c&&(h.current&&c.detach(h.current),null!=(n=t.element)&&n.current&&!(e.participant.isLocal&&(null==c?void 0:c.kind)==="audio")&&c.attach(t.element.current)),h.current=null==(i=t.element)?void 0:i.current,()=>{h.current&&(null==c||c.detach(h.current))}},[c,t.element]),k.useEffect(()=>{var e,t;"number"==typeof(null==(e=null==n?void 0:n.dimensions)?void 0:e.width)&&"number"==typeof(null==(t=null==n?void 0:n.dimensions)?void 0:t.height)&&u(n.dimensions.width>n.dimensions.height?"landscape":"portrait")},[n]),{publication:n,isMuted:r,isSubscribed:s,track:c,elementProps:ho(t.props,{className:p,"data-lk-local-participant":e.participant.isLocal,"data-lk-source":null==n?void 0:n.source,...(null==n?void 0:n.kind)==="video"&&{"data-lk-orientation":d}})}}(a,{element:s,props:i});return k.useEffect(()=>{null==t||t(!!c)},[c,t]),k.useEffect(()=>{void 0===l||void 0===n||(l instanceof of?l.setVolume(n):dz.warn("Volume can only be set on remote audio tracks."))},[n,l]),k.useEffect(()=>
4{void 0===d||void 0===i.muted||(d instanceof oR?d.setEnabled(!i.muted):dz.warn("Can only call setEnabled on remote track publications."))},[i.muted,d,l]),k.createElement("audio",{ref:s,...o})}),po=e=>[[Math.floor(e/2)],[-1]],pc=new Map([["connecting",2e3],["initializing",2e3],["listening",500],["thinking",150]]);e.s(["RoomAudioRenderer",0,function({room:e,volume:t,muted:n}){let i=hv([rW.Source.Microphone,rW.Source.ScreenShareAudio,rW.Source.Unknown],{updateOnlyOn:[],onlySubscribed:!0,room:e}).filter(e=>!e.participant.isLocal&&e.publication.kind===rW.Kind.Audio);return k.createElement("div",{style:{display:"none"}},i.map(e=>k.createElement(ps,{key:dj(e),trackRef:e,volume:t,muted:n})))}],693492),e.s(["SessionProvider",0,function(e){return k.createElement(ht.Provider,{value:e.session},k.createElement(u9.Provider,{value:e.session.room},e.children))}],59805)},951445,535824,e=>{"use strict";var t=e.i(218885),n=e.i(571416);e.s(["useAgent",()=>n.S],535824);var n=n,i=n;function r(e){switch(e){case"listening":return"listening";case"thinking":return"thinking";case"speaking":return"speaking";default:return"idle"}}e.s(["mapAgentState",0,r,"resolveCallCloneStatus",0,function({callStatus:e,liveCloneStatus:t,devCloneStatus:n}){return n??("active"===e&&"idle"===t?"listening":t)},"toPortraitMode",0,function(e,t){switch(e){case"failed":return"failed";case"ended":return"ended";case"connecting":return"connecting";case"idle":return"idle";case"active":return"idle"===t?"listening":t;default:return e}},"useCloneStatus",0,function(){let e,a,s,o=(0,t.c)(6),c=(0,n.S)();o[0]===Symbol.for("react.memo_cache_sentinel")?(e={fftSize:512,smoothingTimeConstant:.55},o[0]=e):e=o[0];let l=(0,i.T)(c.microphoneTrack,e);return o[1]!==c.state?(a=r(c.state),o[1]=c.state,o[2]=a):a=o[2],o[3]!==a||o[4]!==l?(s={cloneStatus:a,volume:l},o[3]=a,o[4]=l,o[5]=s):s=o[5],s}],951445)},214406,e=>{"use strict";var t=e.i(218885),n=e.i(952479),n=n,i=e.i(145373),r=e.i(368791);function a(e){for(let t of e.remoteParticipants.values())for(let e of t.trackPublications.values())s(e,t)}function s(e,t){var n;!(n={isLocal:t.isLocal,isAgent:t.isAgent,kind:e.kind}).isLocal&&n.isAgent&&n.kind===r.Track.Kind.Audio&&e.setSubscribed(!0)}function o(e,t){s(e,t)}e.s(["useSubscribeAgentAudio",0,function(){let e,s,c=(0,t.c)(3),l=(0,n.f)();c[0]!==l?(e=()=>{let e=()=>{a(l)};return a(l),l.on(r.RoomEvent.TrackPublished,o),l.on(r.RoomEvent.Connected,e),l.on(r.RoomEvent.Reconnected,e),l.on(r.RoomEvent.ParticipantConnected,e),()=>{l.off(r.RoomEvent.TrackPublished,o),l.off(r.RoomEvent.Connected,e),l.off(r.RoomEvent.Reconnected,e),l.off(r.RoomEvent.ParticipantConnected,e)}},s=[l],c[0]=l,c[1]=e,c[2]=s):(e=c[1],s=c[2]),(0,i.useEffect)(e,s)}],214406)},667724,e=>{"use strict";var t=e.i(546711),n=e.i(218885),i=e.i(145373);let r=(0,i.createContext)(null);e.s(["VoiceCallProvider",0,function(e){let a,s,o,c,l=(0,n.c)(43),{call:d,displayName:u,imageUrl:h,ownerUsername:p,api:m,apiRequestOptions:f,canShare:g,voiceSettingsHref:v,paywallOverride:b,onSecondaryUpgrade:y,onChat:k,originPath:T,openShare:S,isSharing:C,onViewTranscript:w,isOpeningTranscript:E,canViewTranscript:P,children:R}=e,I=void 0===h?null:h,_=void 0===g||g,x=void 0===v?null:v,O=void 0===b?null:b,M=void 0===T?null:T,D=void 0!==E&&E,A=void 0===P||P,[N,L]=(0,i.useState)(!1);l[0]!==d.threadId||l[1]!==w?(a=()=>{if(d.threadId){if(w)return void w(d.threadId);L(!0)}},l[0]=d.threadId,l[1]=w,l[2]=a):a=l[2];let U=a;l[3]===Symbol.for("react.memo_cache_sentinel")?(s=()=>L(!1),l[3]=s):s=l[3];let j=s,F="failed"===d.status&&"access_revoked"===d.failReason;l[4]!==m||l[5]!==f||l[6]!==d.devSetStatus||l[7]!==d.endCall||l[8]!==d.endedAt||l[9]!==d.failReason||l[10]!==d.language||l[11]!==d.languageOptions||l[12]!==d.languageSwitchPending||l[13]!==d.micMuted||l[14]!==d.multipleLanguages||l[15]!==d.remainingVoiceSeconds||l[16]!==d.reset||l[17]!==d.setLanguage||l[18]!==d.startCall||l[19]!==d.startedAt||l[20]!==d.status||l[21]!==d.threadId||l[22]!==d.toggleMic||l[23]!==_||l[24]!==A||l[25]!==u||l[26]!==I||l[27]!==D||l[28]!==C||l[29]!==k||l[30]!==y||l[31]!==S||l[32]!==U||l[33]!==M||l[34]!==p||l[35]!==O||l[36]!==F||l[37]!==N||l[38]!==x?(o={status:d.status,failReason:d.failReason,accessRevoked:F,threadId:d.threadId,remainingVoiceSeconds:d.remainingVoiceSeconds,startedAt:
4d.startedAt,endedAt:d.endedAt,language:d.language,setLanguage:d.setLanguage,languageSwitchPending:d.languageSwitchPending,languageOptions:d.languageOptions,multipleLanguages:d.multipleLanguages,micMuted:d.micMuted,toggleMic:d.toggleMic,startCall:d.startCall,endCall:d.endCall,reset:d.reset,devSetStatus:d.devSetStatus,displayName:u,imageUrl:I,ownerUsername:p,api:m,apiRequestOptions:f,transcriptOpen:N,openTranscript:U,closeTranscript:j,isOpeningTranscript:D,canViewTranscript:A,openShare:S,isSharing:C,onChat:k,canShare:_,voiceSettingsHref:x,paywallOverride:O,onSecondaryUpgrade:y,originPath:M},l[4]=m,l[5]=f,l[6]=d.devSetStatus,l[7]=d.endCall,l[8]=d.endedAt,l[9]=d.failReason,l[10]=d.language,l[11]=d.languageOptions,l[12]=d.languageSwitchPending,l[13]=d.micMuted,l[14]=d.multipleLanguages,l[15]=d.remainingVoiceSeconds,l[16]=d.reset,l[17]=d.setLanguage,l[18]=d.startCall,l[19]=d.startedAt,l[20]=d.status,l[21]=d.threadId,l[22]=d.toggleMic,l[23]=_,l[24]=A,l[25]=u,l[26]=I,l[27]=D,l[28]=C,l[29]=k,l[30]=y,l[31]=S,l[32]=U,l[33]=M,l[34]=p,l[35]=O,l[36]=F,l[37]=N,l[38]=x,l[39]=o):o=l[39];let B=o;return l[40]!==R||l[41]!==B?(c=(0,t.jsx)(r,{value:B,children:R}),l[40]=R,l[41]=B,l[42]=c):c=l[42],c},"isTranscriptTakeover",0,function(e,t,n){return t&&"ended"===e&&!!n},"useVoiceCallContext",0,function(){let e=(0,i.use)(r);if(!e)throw Error("useVoiceCallContext must be used within a VoiceCallProvider");return e}])},779921,304870,e=>{"use strict";var t=e.i(218885),n=e.i(555815),i=e.i(538054),r=e.i(667724);function a(){}e.s(["VoiceCallNavSync",0,function(){let e,s,o=(0,t.c)(10),{status:c,transcriptOpen:l,closeTranscript:d,ownerUsername:u,originPath:h,reset:p,endCall:m}=(0,r.useVoiceCallContext)();o[0]!==m||o[1]!==p?(e=()=>{p(),m().catch(a)},o[0]=m,o[1]=p,o[2]=e):e=o[2];let f=e;e:{let e;if(l&&"ended"===c){let e,t=`/${u}/call`;o[3]!==d||o[4]!==t?(e={href:t,label:"Back to call",onClick:d},o[3]=d,o[4]=t,o[5]=e):e=o[5],s=e;break e}let t=h??`/${u}`,n=t.startsWith(`/${u}/chat`)?"Back to chat":"Back to profile";o[6]!==f||o[7]!==t||o[8]!==n?(e={href:t,label:n,onClick:f},o[6]=f,o[7]=t,o[8]=n,o[9]=e):e=o[9],s=e}let g=s;return(0,n.useNavBack)(g),(0,i.useNavTitle)(null),(0,i.useNavCenterSlot)(null),null}],779921);var s=e.i(546711),o=e.i(432245),c=e.i(981831),l=e.i(215571),d=e.i(403773),u=e.i(79929);function h(e,t){return(0,s.jsxs)("li",{className:"flex items-start gap-3 p-4",children:[(0,s.jsx)(d.CheckIcon,{className:"mt-0.5 size-4 shrink-0 text-brand-accent","aria-hidden":!0}),(0,s.jsx)("span",{className:"min-w-0 text-sm font-medium leading-6 text-fg-high",children:e})]},t)}e.s(["VisitorQuotaLimitDialog",0,function(e){let n,i,r,a,p,m,f,g,v,b=(0,t.c)(30),{open:y,onOpenChange:k,ownerDisplayName:T,ownerImageUrl:S,paywall:C,onUpgrade:w,defaultTitle:E,defaultDescription:P}=e,R=C?.redirectUrl,I=E??C?.title??`You have used up your available quota with ${T}`,_=P??C?.subtitle??"Your quota will reset at the end of the month",x=C?.buttonText??"Upgrade",O=C?.showProfilePicture===!0;b[0]!==k||b[1]!==w||b[2]!==R?(n=()=>{R&&(w?.(),(0,u.openVisitorPaywallRedirect)(R)),k(!1)},b[0]=k,b[1]=w,b[2]=R,b[3]=n):n=b[3];let M=n;return b[4]!==T||b[5]!==S||b[6]!==O?(i=O?(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsxs)(o.Avatar,{className:"size-[100px]",children:[S?(0,s.jsx)(o.AvatarImage,{src:S,alt:T}):null,(0,s.jsx)(o.AvatarFallback,{className:"text-2xl",children:T.slice(0,1).toUpperCase()})]})}):null,b[4]=T,b[5]=S,b[6]=O,b[7]=i):i=b[7],b[8]!==I?(r=(0,s.jsx)(l.DialogTitle,{className:"px-2 text-center text-2xl font-semibold leading-8 sm:text-3xl sm:leading-10",children:I}),b[8]=I,b[9]=r):r=b[9],b[10]!==_?(a=(0,s.jsx)(l.DialogDescription,{className:"pt-0 text-center text-base leading-6",children:_}),b[10]=_,b[11]=a):a=b[11],b[12]!==r||b[13]!==a?(p=(0,s.jsxs)(l.DialogHeader,{className:"gap-2 p-0",children:[r,a]}),b[12]=r,b[13]=a,b[14]=p):p=b[14],b[15]!==C?(m=C?.bullets&&C.bullets.length>0?(0,s.jsx)("ul",{className:"divide-y divide-subtle overflow-hidden rounded-xl border border-subtle",children:C.bullets.map(h)}):null,b[15]=C,b[16]=m):m=b[16],b[17]!==x||b[18]!==M||b[19]!==R?(f=R?(0,s.jsx)(l.DialogFooter,{className:"p-0",children:(0,s.jsxs)(c.Button,{onClick:M,size:"lg",className:"h-12 w-full text-base font-medium",children:[x,(0,s.jsx)(d.ArrowUpRightIcon,{"data-icon":"inl
4ine-end","aria-hidden":!0})]})}):null,b[17]=x,b[18]=M,b[19]=R,b[20]=f):f=b[20],b[21]!==i||b[22]!==p||b[23]!==m||b[24]!==f?(g=(0,s.jsx)(l.DialogContent,{className:"max-h-[calc(100%-2rem)] gap-0 overflow-y-auto p-0 sm:max-w-lg",children:(0,s.jsxs)("div",{className:"flex flex-col gap-7 px-6 pb-7 pt-9 sm:px-12 sm:pb-10 sm:pt-12",children:[i,p,m,f]})}),b[21]=i,b[22]=p,b[23]=m,b[24]=f,b[25]=g):g=b[25],b[26]!==k||b[27]!==y||b[28]!==g?(v=(0,s.jsx)(l.Dialog,{open:y,onOpenChange:k,children:g}),b[26]=k,b[27]=y,b[28]=g,b[29]=v):v=b[29],v}],304870)},864114,492515,550145,e=>{"use strict";let t="Sign in to upload documents",n=new Set(["drmarkhyman"]);e.s(["SIGN_IN_TO_UPLOAD_MESSAGE",0,t,"embedAttachmentsDisabledReason",0,function(e){if(!e.visitorAuthenticated&&!(e.ownerUsername&&n.has(e.ownerUsername)))return t}],864114);var i=e.i(218885),r=e.i(145373),a=e.i(187014),s=e.i(891089);function o(e){let t=e.at(-1);return!!t&&"assistant"===t.role&&t.parts.some(e=>"text"===e.type&&e.text.trim().length>0)}function c(e){let t=e.at(-1);return t&&o(e)?[...e.slice(0,-1),{...t,metadata:{...t.metadata,interrupted:!0}}]:e}function l(e){return c(e)}function d(e,t,n){let i=e.findIndex(e=>"user"===e.role&&e.id===t);if(i<0)return null;let r=e.slice(i+1).find(e=>"assistant"===e.role&&(!n||e.parts.some(e=>"text"===e.type&&e.text.length>0)));return r?{user:e[i],assistant:r}:null}e.s(["useChatCancel",0,function(e){let t,n,d,u,h,p=(0,i.c)(8),{chatRef:m,analytics:f}=e,g=(0,r.useRef)(!1),v=(0,r.useRef)(f);p[0]!==f?(t=()=>{v.current=f},n=[f],p[0]=f,p[1]=t,p[2]=n):(t=p[1],n=p[2]),(0,r.useEffect)(t,n),p[3]!==m?(d=()=>{let e=m.current;e&&("submitted"===e.status||"streaming"===e.status)&&(g.current=!0,e.stop())},p[3]=m,p[4]=d):d=p[4];let b=d;p[5]===Symbol.for("react.memo_cache_sentinel")?(u=(e,t,n)=>{let i=g.current;if(g.current=!1,!t||!i)return e;let r=o(e);return r?n(l):(0,a.toast)("User interrupted response"),(0,s.track)("chat:response_cancel",{...v.current,...v.current.owner_user_id?{$groups:{delphi:v.current.owner_user_id}}:void 0,cancel_stage:r?"mid_response":"before_response"}),r?c(e):e},p[5]=u):u=p[5];let y=u;return p[6]!==b?(h={handleStop:b,onChatFinish:y},p[6]=b,p[7]=h):h=p[7],h}],492515);class u{capture;now;visibility;context;startedAt;userMessageId;assistantMessageId;responseStarted;constructor(e,t,n,i){this.capture=t,this.now=n,this.visibility=i,this.startedAt=null,this.userMessageId=null,this.assistantMessageId=null,this.responseStarted=!1,this.context=e}updateContext(e){this.context=e}begin(){this.startedAt=this.now(),this.userMessageId=null,this.assistantMessageId=null,this.responseStarted=!1}setUserMessageId(e){null!==this.startedAt&&(this.userMessageId=e)}rendered(e){if(null===this.startedAt||null===this.userMessageId||null===this.context.ownerUserId||this.responseStarted)return;let t=d(e,this.userMessageId,!0);t&&(this.assistantMessageId=t.assistant.id,this.responseStarted=!0,this.capture("chat:response_start",{owner_user_id:this.context.ownerUserId,thread_id:this.context.threadId,message_id:t.user.id,assistant_message_id:t.assistant.id,surface:this.context.surface,is_owner:this.context.isOwner,submit_to_response_start_ms:Math.max(0,Math.round(this.now()-this.startedAt)),document_visibility_state:this.visibility(),$groups:this.groups(t.user.id)}))}finish({messages:e,assistantMessageId:t,isAbort:n,isDisconnect:i,isError:r}){if(null===this.startedAt)return;if(null===this.userMessageId||null===this.context.ownerUserId){this.startedAt=null;return}this.rendered(e);let a=d(e,this.userMessageId,!1),s=this.assistantMessageId??a?.assistant.id??t;this.capture("chat:response_end",{owner_user_id:this.context.ownerUserId,thread_id:this.context.threadId,message_id:this.userMessageId,assistant_message_id:s,surface:this.context.surface,is_owner:this.context.isOwner,response_outcome:n?"cancelled":i||r?"failed":"completed",total_frontend_duration_ms:Math.max(0,Math.round(this.now()-this.startedAt)),has_response_started:this.responseStarted,document_visibility_state:this.visibility(),$groups:this.groups(this.userMessageId)}),this.startedAt=null}groups(e){return null===this.context.ownerUserId?{}:{inference_message:e,delphi:this.context.ownerUserId}}}function h(){return performance.now()}function p(){return document.visibilityState}e.s(["useChatResponseTelemetry",0,function(e){let t,n,a,o,c,l,d,m,f=(0,i.c)(19);f[0]!==e?(t=()=>new u(e,s.track,h,p),f[0]=e,f[1]=t):t=f[1];let[g]=(0,r.useState)(t);f[2]!==e||f[3]!==g?(n=()=>{g.updateContext(e)},a=[e,g],f[2]=e,f[3]=g,f[4]=n,f[5]=a):(n=f[4],a=f[5]),(0,r.useEffect)(n,a),f[6]!==g?(o=()=>g.begin(),f[6]=g,f[7]=o):o=f[7];let v=o;f[8]!==g?(c=e=>g.setUserMessageId(e),f[8]=g,f[9]=c):c=f[9];let b=c;f[10]!==g?(l=e=>g.rendered(e),f[10]=g,f[11]=l):l=f[11];let y=l;f[12]!==g?(d=e=>g.finish(e),f[12]=g,f[13]=d):d=f[13];let k=d;return f[14]!==v||f[15]!==k||f[16]!==y||f[17]!==b?(m={begin:v,setUserMessageId:b,rendered:y,finish:k},f[14]=v,f[15]=k,f[16]=y,f[17]=b,f[18]=m):m=f[18],m}],550145)},79929,e=>{"use strict";e.s(["openVisitorPaywallRedirect",0,function(e){window.open(e,"_blank","noopener,noreferrer")}])},251860,950072,221757,e=>{"use strict";e.s(["defaultLockCtaLabel",0,function(e){return`Continue with ${e}`},"defaultLockDescription",0,function(e){return e?"You've used your free messages for now. Pick up right where you left off.":"You can pick up where you left off later."},"defaultLockMessage",0,function(e){return e?"We've reached the end of our free conversation for now, but we don't have to stop here.":"We've reached the end of our free conversation for now. Check back soon to keep it going."},"defaultLockTitle",0,function(e){return`You've reached your limit with ${e}`}],251860);var t=e.i(218885),n=e.i(145373),i=e.i(891089);function r(e,t){return e?t?"signed_in_with_delphi":"signed_in_without_delphi":"anonymous"}e.s(["profileVisitorState",0,r,"useVisitorPageView",0,function(e){let a,s,o=(0,t.c)(9),{ownerUserId:c,mode:l,contentId:d,isOwner:u,isAuthenticated:h,hasDelphi:p,surface:m}=e,f=(0,n.useRef)(null);o[0]!==d||o[1]!==p||o[2]!==h||o[3]!==u||o[4]!==l||o[5]!==c||o[6]!==m?(a=()=>
4{if(null===c)return;let e=`${c}:${l}:${d??""}`;f.current!==e&&(f.current=e,(0,i.track)("visitor:page_view",{owner_user_id:c,is_owner:u,is_authenticated:h,mode:l,content_id:d,surface:m,visitor_state:r(h,p),$groups:{delphi:c}}))},s=[c,l,d,u,h,p,m],o[0]=d,o[1]=p,o[2]=h,o[3]=u,o[4]=l,o[5]=c,o[6]=m,o[7]=a,o[8]=s):(a=o[7],s=o[8]),(0,n.useEffect)(a,s)}],950072),e.s(["chatRequestHistory",0,function(e){return e.slice(-200).map(e=>({...e,parts:e.parts.filter(e=>"data-citations"!==e.type)}))}],221757)}]);
5
6//# debugId=1f89ba9a-8536-6b48-2d85-fcd96ddab26d

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