@realsee/live 0.6.14 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/README.md +50 -55
  2. package/dist/index.cjs.js +89 -24
  3. package/dist/index.d.cts +1336 -0
  4. package/dist/index.d.ts +1336 -4
  5. package/dist/index.esm.js +30 -0
  6. package/docs/README.md +435 -0
  7. package/docs/classes/BrowserRTC.md +436 -0
  8. package/docs/classes/BrowserRTC4Chime.md +558 -0
  9. package/docs/classes/CoreRTC.md +448 -0
  10. package/docs/classes/Live.md +797 -0
  11. package/docs/classes/Subscribe.md +211 -0
  12. package/docs/classes/VRWebViewRTC.md +436 -0
  13. package/docs/enumerations/BuiltInRTCType.md +27 -0
  14. package/docs/enumerations/BuiltinActionType.md +81 -0
  15. package/docs/enumerations/BuiltinEventType.md +33 -0
  16. package/docs/enumerations/Command.md +107 -0
  17. package/docs/enumerations/LiveState.md +53 -0
  18. package/docs/enumerations/MemUserStatus.md +67 -0
  19. package/docs/enumerations/MicroStatus.md +33 -0
  20. package/docs/enumerations/RTCJoinedInfoCodeEnum.md +69 -0
  21. package/docs/enumerations/RTCType.md +39 -0
  22. package/docs/enumerations/UserStatus.md +45 -0
  23. package/docs/enumerations/WebSocketCloseError.md +117 -0
  24. package/docs/enumerations/WebSocketErrorType.md +77 -0
  25. package/docs/enumerations/WebSocketState.md +69 -0
  26. package/docs/functions/GetVoiceSignFn.md +27 -0
  27. package/docs/functions/clearLiveInstanceIfNeed.md +17 -0
  28. package/docs/functions/createLive.md +27 -0
  29. package/docs/functions/createLiveReact.md +449 -0
  30. package/docs/functions/parseLiveMsg.md +27 -0
  31. package/docs/functions/parseWSClsErr.md +21 -0
  32. package/docs/globals.md +77 -0
  33. package/docs/interfaces/AttendeeResponse.md +37 -0
  34. package/docs/interfaces/LiveOptions.md +246 -0
  35. package/docs/interfaces/MeetingResponse.md +55 -0
  36. package/docs/interfaces/MeetingSessionConfigurationOptions.md +93 -0
  37. package/docs/interfaces/Permission.md +147 -0
  38. package/docs/interfaces/RTCJoinedInfo.md +67 -0
  39. package/docs/interfaces/RTCProtocol.md +404 -0
  40. package/docs/interfaces/VRWebViewRTCOptions.md +41 -0
  41. package/docs/namespaces/SubscribeMixinType/README.md +17 -0
  42. package/docs/namespaces/SubscribeMixinType/interfaces/emit.md +31 -0
  43. package/docs/namespaces/SubscribeMixinType/interfaces/hasListener.md +25 -0
  44. package/docs/namespaces/SubscribeMixinType/interfaces/off.md +31 -0
  45. package/docs/namespaces/SubscribeMixinType/interfaces/on.md +37 -0
  46. package/docs/namespaces/SubscribeMixinType/interfaces/once.md +35 -0
  47. package/docs/type-aliases/BuiltinMsg.md +41 -0
  48. package/docs/type-aliases/EventMap.md +17 -0
  49. package/docs/type-aliases/EventType.md +19 -0
  50. package/docs/type-aliases/GetVoiceSign.md +15 -0
  51. package/docs/type-aliases/GetVoiceSignParams.md +35 -0
  52. package/docs/type-aliases/GetVoiceSignReturnType.md +41 -0
  53. package/docs/type-aliases/KeyframeEventType.md +19 -0
  54. package/docs/type-aliases/LiveBuiltInData.md +47 -0
  55. package/docs/type-aliases/LiveConnectOptions.md +47 -0
  56. package/docs/type-aliases/LiveEventType.md +165 -0
  57. package/docs/type-aliases/LiveMsg.md +53 -0
  58. package/docs/type-aliases/LiveProviderPropTypes.md +27 -0
  59. package/docs/type-aliases/RTCActionReactCallback.md +13 -0
  60. package/docs/type-aliases/RTCEventType.md +65 -0
  61. package/docs/type-aliases/ReqLiveMsg.md +45 -0
  62. package/docs/type-aliases/RoomInfo.md +55 -0
  63. package/docs/type-aliases/UserInfo.md +77 -0
  64. package/docs/type-aliases/UserInfoExt.md +33 -0
  65. package/docs/type-aliases/UserVolume.md +25 -0
  66. package/docs/type-aliases/WebSocketError.md +31 -0
  67. package/package.json +41 -31
  68. package/dist/index.cjs.js.map +0 -1
  69. package/dist/index.es.js +0 -2179
  70. package/dist/index.es.js.map +0 -1
  71. package/dist/live/controller.d.ts +0 -90
  72. package/dist/live/createLive.d.ts +0 -8
  73. package/dist/live/createLiveReact.d.ts +0 -52
  74. package/dist/live/live.d.ts +0 -182
  75. package/dist/rtc/BrowserRTC.d.ts +0 -39
  76. package/dist/rtc/BrowserRTC4Chime.d.ts +0 -60
  77. package/dist/rtc/CoreRTC.d.ts +0 -23
  78. package/dist/rtc/VRWebViewRTC.d.ts +0 -22
  79. package/dist/rtc/index.d.ts +0 -5
  80. package/dist/typings/chime/AttendeeResponse.d.ts +0 -5
  81. package/dist/typings/chime/MeetingResponse.d.ts +0 -12
  82. package/dist/typings/chime/MeetingSessionConfigurationOptions.d.ts +0 -16
  83. package/dist/typings/chime/index.d.ts +0 -3
  84. package/dist/typings/index.d.ts +0 -4
  85. package/dist/typings/live/EventType.d.ts +0 -74
  86. package/dist/typings/live/GetVoiceSign.d.ts +0 -17
  87. package/dist/typings/live/LiveConnectOptions.d.ts +0 -7
  88. package/dist/typings/live/LiveMsg.d.ts +0 -119
  89. package/dist/typings/live/LiveOptions.d.ts +0 -79
  90. package/dist/typings/live/LiveState.d.ts +0 -15
  91. package/dist/typings/live/RoomInfo.d.ts +0 -13
  92. package/dist/typings/live/UserInfo.d.ts +0 -103
  93. package/dist/typings/live/UserVolume.d.ts +0 -7
  94. package/dist/typings/live/WebSocket.d.ts +0 -82
  95. package/dist/typings/live/index.d.ts +0 -10
  96. package/dist/typings/react/RTCActionReactCallback.d.ts +0 -2
  97. package/dist/typings/react/index.d.ts +0 -1
  98. package/dist/typings/rtc/VRWebViewRTCOptions.d.ts +0 -6
  99. package/dist/typings/rtc/eventType.d.ts +0 -29
  100. package/dist/typings/rtc/index.d.ts +0 -5
  101. package/dist/typings/rtc/joinedInfo.d.ts +0 -34
  102. package/dist/typings/rtc/protocol.d.ts +0 -58
  103. package/dist/typings/rtc/type.d.ts +0 -12
  104. package/dist/utils/RobustWebSocket.d.ts +0 -157
  105. package/dist/utils/appendUri.d.ts +0 -1
  106. package/dist/utils/clientDetector.d.ts +0 -4
  107. package/dist/utils/equal.d.ts +0 -10
  108. package/dist/utils/logger.d.ts +0 -16
  109. package/dist/utils/subscribe.d.ts +0 -75
  110. package/dist/utils/uuid.d.ts +0 -4
  111. package/docs/.nojekyll +0 -1
  112. package/docs/assets/highlight.css +0 -120
  113. package/docs/assets/main.js +0 -58
  114. package/docs/assets/search.js +0 -1
  115. package/docs/assets/style.css +0 -1280
  116. package/docs/classes/BrowserRTC.html +0 -561
  117. package/docs/classes/BrowserRTC4Chime.html +0 -602
  118. package/docs/classes/CoreRTC.html +0 -432
  119. package/docs/classes/VRWebViewRTC.html +0 -448
  120. package/docs/enums/BuiltInRTCType.html +0 -69
  121. package/docs/enums/BuiltinActionType.html +0 -112
  122. package/docs/enums/BuiltinEventType.html +0 -76
  123. package/docs/enums/Command.html +0 -118
  124. package/docs/enums/LiveState.html +0 -89
  125. package/docs/enums/MemUserStatus.html +0 -97
  126. package/docs/enums/MicroStatus.html +0 -72
  127. package/docs/enums/RTCJoinedInfoCodeEnum.html +0 -94
  128. package/docs/enums/RTCType.html +0 -79
  129. package/docs/enums/UserStatus.html +0 -85
  130. package/docs/enums/WebSocketCloseError.html +0 -139
  131. package/docs/enums/WebSocketErrorType.html +0 -104
  132. package/docs/enums/WebSocketState.html +0 -103
  133. package/docs/functions/createLive.html +0 -107
  134. package/docs/functions/createLiveReact.html +0 -575
  135. package/docs/functions/parseLiveMsg.html +0 -105
  136. package/docs/functions/parseWSClsErr.html +0 -99
  137. package/docs/index.html +0 -470
  138. package/docs/interfaces/AttendeeResponse.html +0 -80
  139. package/docs/interfaces/GetVoiceSignReturnType.html +0 -90
  140. package/docs/interfaces/LiveOptions.html +0 -272
  141. package/docs/interfaces/MeetingResponse.html +0 -90
  142. package/docs/interfaces/MeetingSessionConfigurationOptions.html +0 -119
  143. package/docs/interfaces/Permission.html +0 -157
  144. package/docs/interfaces/RTCJoinedInfo.html +0 -104
  145. package/docs/interfaces/RTCProtocol.html +0 -412
  146. package/docs/interfaces/VRWebViewRTCOptions.html +0 -73
  147. package/docs/modules.html +0 -148
  148. package/docs/types/BuiltinMsg.html +0 -108
  149. package/docs/types/EventType.html +0 -97
  150. package/docs/types/GetVoiceSign.html +0 -124
  151. package/docs/types/KeyframeTypes.html +0 -97
  152. package/docs/types/LiveConnectOptions.html +0 -107
  153. package/docs/types/LiveEventType.html +0 -272
  154. package/docs/types/LiveMsg.html +0 -113
  155. package/docs/types/LiveProviderPropTypes.html +0 -102
  156. package/docs/types/RTCActionReactCallback.html +0 -90
  157. package/docs/types/RTCEventType.html +0 -155
  158. package/docs/types/ReqLiveMsg.html +0 -114
  159. package/docs/types/RoomInfo.html +0 -114
  160. package/docs/types/UserInfo.html +0 -135
  161. package/docs/types/UserInfoExt.html +0 -105
  162. package/docs/types/UserVolume.html +0 -99
  163. package/docs/types/WebSocketError.html +0 -101
package/dist/index.cjs.js CHANGED
@@ -1,27 +1,92 @@
1
- "use strict";var Ft=Object.defineProperty;var qt=(r,o,e)=>o in r?Ft(r,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[o]=e;var s=(r,o,e)=>(qt(r,typeof o!="symbol"?o+"":o,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Kt=require("@realsee/jsbridge-x"),Ae=require("trtc-js-sdk"),X=require("amazon-chime-sdk-js"),D=require("react"),ue=Symbol("$$REALSEE_LIVE_EVENT$$");function Ee(r){return r[ue]||(r[ue]={}),r[ue]}function Gt(r){r[ue]||delete r[ue]}class le{hasListener(o){const e=Ee(this);return e&&e[o]&&e[o].length>0}on(o,e,i){const n=Ee(this);return n[o]||(n[o]=[]),n[o].push([e,i||!1]),()=>this.off(o,e)}once(o,e){return this.on(o,e,!0)}off(o,e){if(o===void 0){Gt(this);return}const i=Ee(this);if(i[o]||(i[o]=[]),e===void 0){i[o].length=0;return}let n=0;for(;n<i[o].length&&i[o][n][0]!==e;n++);n<i[o].length&&i[o].splice(n,1)}emit(o,...e){let i=!1;const c=Ee(this)[o]||[];for(let u of c.slice()){const[d,g=!1]=u,v=d(...e);g&&this.off(o,d),v===!1&&(i=!0)}return i}}class Ce extends le{}var ee=(r=>(r.RealseeBrowserRTC="RealseeBrowserRTC",r.RealseeVRWebViewRTC="RealseeVRWebViewRTC",r.RealseeBrowserChimeRTC="RealseeBrowserChimeRTC",r))(ee||{}),Ue=(r=>(r.RealseeXTRTC="trtc",r.RealseeXChimeRTC="chime",r))(Ue||{});const Yt=()=>{const r=new Date,o=r.getFullYear(),e=(r.getMonth()+1).toString().padStart(2,"0"),i=r.getDate().toString().padStart(2,"0"),n=r.getHours().toString().padStart(2,"0"),c=r.getMinutes().toString().padStart(2,"0"),u=r.getSeconds().toString().padStart(2,"0"),d=r.getMilliseconds();return`[${o}-${e}-${i} ${n}:${c}:${u}.${d}]`},we=(r,o=[])=>{switch(o.unshift(`Realsee Live ${Yt()} <${r}> `),r){case"INFO":return console.info(...o);case"ERROR":return console.error(...o);case"WARN":return console.warn(...o);default:return console.log(...o)}},Ht=(...r)=>we("LOG",r),Jt=(...r)=>we("INFO",r),zt=(...r)=>we("ERROR",r),Xt=(...r)=>we("WARN",r),Zt={log:Ht,info:Jt,error:zt,warn:Xt},O=Zt;function Z(){return((1+Math.random())*65536|0).toString(16).substring(1)}function ye(){return(Z()+Z()+"-"+Z()+"-4"+Z().substr(0,3)+"-"+Z()+"-"+Z()+Z()+Z()).toLowerCase()}class De extends Ce{constructor(e){super();s(this,"type",ee.RealseeBrowserRTC);s(this,"joined",!1);s(this,"micro",!1);s(this,"voiceId","");s(this,"_getVoiceSign",()=>{throw new Error("方法 getVoiceSign 未实现")});s(this,"_autoPlayConfirm");s(this,"checkRequirement",()=>Ae.checkSystemRequirements());s(this,"$dom",document.createElement("div"));s(this,"_trtc",{client:null,stream:null});s(this,"join",async e=>{var c;this.emit("joinWillStart");const i=await this._getVoiceSign({voiceId:e.voiceId,roomId:e.roomId,userId:e.userId});this._trtc.client=Ae.createClient({mode:"rtc",...i,enableAutoPlayDialog:typeof this._autoPlayConfirm!="function"}),(c=this._trtc.client)==null||c.enableAudioVolumeEvaluation(),this._registerRtcEvent();let n=await new Promise(u=>{var d;(d=this._trtc.client)==null||d.join({roomId:Number(e.voiceId)}).then(()=>u(!0)).catch(()=>u(!1))});return this.joined=n,n?(this._trtc.stream=Ae.createStream({userId:i.userId,audio:!0,video:!1}),n=await new Promise(u=>{var d;(d=this._trtc.stream)==null||d.initialize().then(()=>u(!0)).catch(()=>u(!1))}),n=await new Promise(u=>{var d;(d=this._trtc.client)==null||d.publish(this._trtc.stream).then(()=>u(!0)).catch(()=>u(!1))}),this.joined=n,this.joined&&this.emit("joined"),n):!1});s(this,"_handleStreamAdded",e=>{var n;const i=e.stream;console.log("远端流增加: "+i.getId()),(n=this._trtc.client)==null||n.subscribe(i)});s(this,"_handleStreamSubscribed",e=>{const i=e.stream;console.log("远端流订阅成功:"+i.getId());const c=`rs-rtc-remote_stream-${i.getId()}`,u=document.createElement("div");u.id=c,this.$dom.appendChild(u),typeof this._autoPlayConfirm=="function"?(i.play(c).catch(d=>{}),i.on("error",d=>{if(d.getCode()===16451){const v=()=>i.resume();this._autoPlayConfirm({onConfirm:v})}})):i.play(c)});this._getVoiceSign=e.getVoiceSign,this._autoPlayConfirm=e.autoPlayConfirm,this._initParentDom()}_initParentDom(){this.$dom.id=`rs-rtc-${ye()}`,this.$dom.style.display="none",document.body.appendChild(this.$dom)}quit(){return new Promise(async e=>{var i,n;this.joined=!1,this._trtc.stream&&(await((i=this._trtc.client)==null?void 0:i.unpublish(this._trtc.stream)),this._trtc.stream.stop(),this._trtc.stream.close(),this._trtc.stream=null),(n=this._trtc.client)==null||n.leave().then(()=>this._trtc.client=null).then(()=>e(!0)).catch(()=>e(!1)),e(!0)})}detectMicro(){return new Promise(e=>{const i={audio:!0,video:!1};try{navigator.mediaDevices.getUserMedia(i).then(()=>e(!0)).catch(n=>{O.error(n.message),e(!1)})}catch(n){console.error(n),e(!1)}})}toggleMicro(e){var i,n,c,u;return Promise.resolve((e?(n=(i=this._trtc)==null?void 0:i.stream)==null?void 0:n.unmuteAudio():(u=(c=this._trtc)==null?void 0:c.stream)==null?void 0:u.muteAudio())||!1)}shock(){throw new Error("Method not implemented.")}_registerRtcEvent(){var e,i,n,c;(e=this._trtc.client)==null||e.on("stream-added",this._handleStreamAdded),(i=this._trtc.client)==null||i.on("stream-subscribed",this._handleStreamSubscribed),(n=this._trtc.client)==null||n.on("audio-volume",u=>this.emit("userVolumes",u.result.map(({userId:d,audioVolume:g})=>({userId:d,audioVolume:g})))),(c=this._trtc.client)==null||c.on("error",u=>this.emit("error",u))}}class Ve extends Ce{constructor(e){super();s(this,"type",ee.RealseeBrowserChimeRTC);s(this,"joined",!1);s(this,"micro",!1);s(this,"voiceId","");s(this,"userId","");s(this,"logger");s(this,"deviceController");s(this,"meetingSession");s(this,"audioInput");s(this,"audioOutput");s(this,"deviceChangeObserver",{});s(this,"audioVideoObserver",{});s(this,"audioMixObserver");s(this,"_getVoiceSign",()=>{throw new Error("方法 getVoiceSign 未实现")});s(this,"_autoPlayConfirm");s(this,"$dom",document.createElement("div"));s(this,"$audio",document.createElement("audio"));s(this,"_initDom",()=>{this.$audio.id=`rs-rtc-${ye()}`,this.$dom.id=`rs-rtc-${ye()}`,this.$dom.appendChild(this.$audio),document.body.appendChild(this.$dom)});s(this,"initObservers",()=>{this.deviceChangeObserver={audioInputsChanged:e=>{this.logger.info(`audioInputsChanged ${typeof e}`),e==null||e.forEach(i=>{this.logger.info(`Device ID: ${i.deviceId} Microphone: ${i.label}`)})},audioOutputsChanged:e=>{this.logger.info(`audioOutputsChanged ${typeof e}`),e==null||e.forEach(i=>{this.logger.info(`Device ID: ${i.deviceId} Speaker: ${i.label}`)})},audioInputMuteStateChanged:(e,i)=>{this.logger.info(`Device ${e.toString()} ${i?"is muted in hardware":"is not muted"}`)}},this.audioVideoObserver={audioVideoDidStart:()=>{this.logger.info("Started")},audioVideoDidStop:e=>{this.logger.info(`Stopped with a session status code: ${e.statusCode()}`)},audioVideoDidStartConnecting:e=>{e&&this.logger.info("Attempting to reconnect")}},this.audioMixObserver={meetingAudioStreamBecameActive:e=>{if(this.$audio.paused){const i=()=>this.$audio.play().then(()=>{}).catch(n=>{if(O.error("播放远端流失败!",n),typeof this._autoPlayConfirm=="function"){const c=()=>i();this._autoPlayConfirm({onConfirm:c})}});i()}},meetingAudioStreamBecameInactive:e=>{}}});s(this,"_registerRtcEvent",()=>{var i,n,c,u,d,g;const e=((c=(n=(i=this.meetingSession)==null?void 0:i.configuration)==null?void 0:n.credentials)==null?void 0:c.attendeeId)||"";if(e){const v=new Map,E=()=>{const y=[];return v.forEach((I,_)=>{y.push({userId:I.userId,volume:I.muted||I.signalStrength===0||!Boolean(I.volume)?0:I.volume})}),y};(u=this.meetingSession)==null||u.audioVideo.realtimeSubscribeToAttendeeIdPresence((y,I,_)=>{var V;if(!I){v.delete(y),this.emit("userVolumes",E());return}(V=this.meetingSession)==null||V.audioVideo.realtimeSubscribeToVolumeIndicator(y,(C,k,B,P)=>{new X.DefaultModality(C).base()===C&&(v.set(C,{userId:_||C,volume:k,muted:B,signalStrength:P}),this.emit("userVolumes",E()))})}),(d=this.meetingSession)==null||d.audioVideo.realtimeSubscribeToVolumeIndicator(e,(y,I,_,V)=>{new X.DefaultModality(y).base()===y&&V!==null&&V!==1&&this.emit("weakNetwork")}),(g=this.meetingSession)==null||g.audioVideo.realtimeSubscribeToFatalError(y=>this.emit("error",y))}});this._getVoiceSign=e.getVoiceSign,this._autoPlayConfirm=e.autoPlayConfirm,this._initDom(),this.logger=new X.ConsoleLogger("WebRTCLogger",e.logLevel||X.LogLevel.INFO),this.deviceController=new X.DefaultDeviceController(this.logger),this.initObservers()}async join(e){return new Promise(async(i,n)=>{var c,u;this.emit("joinWillStart");try{const{sdkAppId:d,userId:g,roomId:v,userSig:E}=await this._getVoiceSign({...e,roomId:e.roomId||0});this.userId=g;const{attendence:y,vendor_wrapper:I}=JSON.parse(decodeURIComponent(E)),_=new X.MeetingSessionConfiguration({Meeting:I},{Attendee:{ExternalUserId:y.external_user_id,AttendeeId:y.attendee_id,JoinToken:y.join_token}});this.meetingSession=new X.DefaultMeetingSession(_,this.logger,this.deviceController),this._registerRtcEvent(),this.meetingSession.audioVideo.addDeviceChangeObserver(this.deviceChangeObserver),this.meetingSession.audioVideo.addObserver(this.audioVideoObserver),this.meetingSession.audioVideo.bindAudioElement(this.$audio);const V={audioVideoDidStart:()=>{var C;(C=this.meetingSession)==null||C.audioVideo.realtimeMuteLocalAudio(),this.joined=!0,this.emit("joined"),i(!0)},audioVideoDidStop:()=>{this.joined=!1,i(!1)}};this.meetingSession.audioVideo.addObserver(V),this.audioMixObserver&&this.meetingSession.audioVideo.addAudioMixObserver(this.audioMixObserver),this.meetingSession.audioVideo.setDeviceLabelTrigger(async()=>await navigator.mediaDevices.getUserMedia({audio:!0,video:!1}));try{const C=await this.meetingSession.audioVideo.listAudioInputDevices();O.info("audioInputDevices ===>",C);const k=((c=C[0])==null?void 0:c.deviceId)||"default";await this.meetingSession.audioVideo.startAudioInput(k)}catch(C){O.error(`设置语音输入设备失败:${C.message}`)}try{const C=await this.meetingSession.audioVideo.listAudioOutputDevices();O.info("audioOutputDevices ===>",C);const k=((u=C[0])==null?void 0:u.deviceId)||"default";await this.meetingSession.audioVideo.chooseAudioOutput(k)}catch(C){O.error(`设置语音输出设备失败:${C.message}`)}this.meetingSession.audioVideo.start()}catch(d){this.emit("error",d),this.logger.error(d.message),i(!1)}})}quit(){return this.joined?new Promise((e,i)=>{var c,u;this.joined=!1;const n={audioVideoDidStop:async d=>{var v;const g=d.statusCode();(v=this.meetingSession)==null||v.deviceController.destroy(),g===X.MeetingSessionStatusCode.Left?(this.logger.info("You left the session"),e(!0)):(this.logger.info(`Stopped with a session status code: ${g}`),e(!0))}};(c=this.meetingSession)==null||c.audioVideo.addObserver(n),(u=this.meetingSession)==null||u.audioVideo.stop()}):Promise.resolve(!0)}async detectMicro(){return new Promise(e=>{const i={audio:!0,video:!1};try{navigator.mediaDevices.getUserMedia(i).then(()=>e(!0)).catch(()=>e(!1))}catch(n){this.logger.error(n.message),e(!1)}})}async toggleMicro(e){var n,c,u;e?(n=this.meetingSession)==null||n.audioVideo.realtimeUnmuteLocalAudio():(c=this.meetingSession)==null||c.audioVideo.realtimeMuteLocalAudio();const i=(u=this.meetingSession)==null?void 0:u.audioVideo.realtimeIsLocalAudioMuted();return i!==void 0?e!==i:!1}shock(){throw new Error("Method not implemented.")}}var Be=(r=>(r[r.Success=0]="Success",r[r.Failure=1]="Failure",r[r.ReJoin=2]="ReJoin",r[r.NoMicroPermission=3]="NoMicroPermission",r))(Be||{});class $e extends Ce{constructor({jsBridge:e,getVoiceSign:i}){super();s(this,"type",ee.RealseeVRWebViewRTC);s(this,"joined",!1);s(this,"micro",!1);s(this,"voiceId","");s(this,"options");this.options={jsBridge:e,getVoiceSign:i},this.jsBridge.webViewType!=="WxMiniProgramWebView"&&this.jsBridge.callAndListen("live/userVolumes",n=>{this.emit("userVolumes",n)}),this.jsBridge.callAndListen("live/weakNetwork",n=>{n&&this.emit("weakNetwork")})}get jsBridge(){return this.options.jsBridge}async join(e){try{this.emit("joinWillStart");const{sdkAppId:i,userId:n,userSig:c}=await this.options.getVoiceSign(e);if(!(Boolean(i)&&Boolean(n)&&Boolean(c)))return this.emit("error",new Error("加入房间失败:rtc 签名请求异常")),this.joined=!1,this.joined;this.type=e.type;const[u,d]=await this.jsBridge.callAndBackfeed(`live/join?sdkAppID=${i}&userID=${n}&roomID=${Number(e.voiceId)}&userSig=${c}`);return u===!0?(this.emit("joined"),this.joined=!0):u?u.code===Be.Success?(this.emit("joined"),this.joined=!0):(this.emit("error",u),this.joined=!1):(this.emit("error",d||new Error("加入房间失败:未知异常。")),this.joined=!1),this.joined}catch(i){return this.emit("error",new Error("加入房间失败:"+i.message)),this.joined=!1,this.joined}}async quit(){const[e,i]=await this.jsBridge.callAndBackfeed("live/quit");return e===null&&this.emit("error",i||new Error("退出房间失败:未知异常。")),this.joined=!1,!!e}async detectMicro(){const[e,i]=await this.jsBridge.detectMicro();return e===null?(this.emit("error",i||new Error("麦克风监测异常!")),!1):e}async toggleMicro(e){const[i,n]=await this.jsBridge.callAndBackfeed(`live/toggleMicro?flag=${e?1:0}`);return i===null?(this.emit("error",n||new Error("麦克风监测异常!")),!1):(this.micro=i,i)}shock(){this.jsBridge.shock(1)}}var U=(r=>(r.SelfUserInfo="SELF_USER_INFO",r.RoomInfo="ROOM_INFO",r.RTCInfo="RTC_INFO",r.UserList="USER_LIST",r.BuiltinMsg="BUILTIN_MSG",r.CustomEvent="CUSTOM_EVENT",r.KeyframeSync="KEYFRAME_SYNC",r.UserKickOut="USER_KICK_OUT",r))(U||{}),K=(r=>(r.UserChange="user_change",r.RoomChange="room_change",r))(K||{}),Y=(r=>(r.UserMicroStatus="change_micro_status",r.UserMicroStatusSync="sync_micro_status",r.UserPermission="change_permission",r.UserStatus="change_status",r.UserInfo="change_info",r.RoomClose="close",r))(Y||{}),Q=(r=>(r.OPEN="OPEN",r.CLOSE="CLOSE",r))(Q||{});function Qt(r){try{const o=JSON.parse(r),e={code:o.code,message:o.message,command:o.command,roomCode:o.room_code,appID:o.app_id,requestId:o.request_id,frontRequestId:o.front_request_id,triggerUserID:o.trigger_user_id,data:o.data||{}},i=Object.keys(e).filter(n=>e[n]===void 0);return i.length>0&&console.warn(`推送数据格式异常:${i.join(" ")} 值不存在!`),e}catch(o){return!1}}var $=(r=>(r[r.NOTINITIALIZED=-1]="NOTINITIALIZED",r[r.CONNECTING=0]="CONNECTING",r[r.OPEN=1]="OPEN",r[r.CLOSED=3]="CLOSED",r))($||{}),ft=(r=>(r[r.Normal=0]="Normal",r[r.Removed=1]="Removed",r[r.Replaced=2]="Replaced",r))(ft||{}),dt=(r=>(r.WAIT_ENTER="WAIT_ENTER",r.ONLINE="ONLINE",r.LEAVE="LEAVE",r.KICK_OUT="KICK_OUT",r.BE_REPLACE="BE_REPLACE",r.EXCEPTION="EXCEPTION",r))(dt||{}),be=(r=>(r[r.NOTINITIALIZED=-1]="NOTINITIALIZED",r[r.CONNECTING=0]="CONNECTING",r[r.OPEN=1]="OPEN",r[r.CLOSING=2]="CLOSING",r[r.CLOSED=3]="CLOSED",r))(be||{}),ht=(r=>(r.Error="Error",r.Close="Close",r.MicroAuth="MicroAuth",r.DuplicateConnect="DuplicateConnect",r.IllegalURL="IllegalURL",r.Unknown="Unknown",r.IllegalArgs="IllegalArgs",r))(ht||{}),_t=(r=>(r.Err_1000="CLOSE_NORMAL",r.Err_1001="CLOSE_GOING_AWAY",r.Err_1002="CLOSE_PROTOCOL_ERROR",r.Err_1003="CLOSE_UNSUPPORTED",r.Err_1006="CLOSE_ABNORMAL",r.Err_1007="Unsupported Data",r.Err_1008="Policy Violation",r.Err_1009="CLOSE_TOO_LARGE",r.Err_unknown="unknown",r))(_t||{});function gt(r){switch(r){case 1e3:return"CLOSE_NORMAL";case 1001:return"CLOSE_GOING_AWAY";case 1002:return"CLOSE_PROTOCOL_ERROR";case 1003:return"CLOSE_UNSUPPORTED";case 1006:return"CLOSE_ABNORMAL";case 1007:return"Unsupported Data";case 1008:return"Policy Violation";case 1009:return"CLOSE_TOO_LARGE"}return"unknown"}function er(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var mt={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.LogLevel=void 0;var o;(function(e){e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e[e.OFF=4]="OFF"})(o=r.LogLevel||(r.LogLevel={})),r.default=o})(mt);const at=er(mt);function tr(r,o={}){const e=r.indexOf("?")!==-1,i=Object.keys(o).reduce((n,c,u)=>`${n}${u===0&&!e?"?":"&"}${c}=${o[c]}`,"");return r+i}const fe=globalThis.navigator.userAgent,rr=/android/gi.test(fe),ir=/iPhone|iPad\s+OS/gi.test(fe),nr=/MicroMessenger/gi.test(fe)&&/miniProgram/gi.test(fe),sr=/realsee/gi.test(fe);function Se(r){return Object.prototype.toString.call(r)==="[object Object]"}function Re(r,o){return r===o?!0:typeof r!=typeof o?!1:!!(Number.isNaN(r)&&Number.isNaN(o))}function or(r,o){const e=Object.getOwnPropertyNames(r),i=Object.getOwnPropertyNames(o);if(e.length!==i.length)return!1;for(let n=0,c=e.length;n<c;n++){const u=e[n];if(!Re(r[u],o[u]))return!1}return!0}function ar(r,o){if(r.length!==o.length)return!1;for(let e=0,i=r.length;e<i;e++)if(!Re(r[e],o[e]))return!1;return!0}function cr(r,o){return Re(r,o)?!0:Se(r)&&Se(o)?or(r,o):Array.isArray(r)&&Array.isArray(o)?ar(r,o):!1}function We(r,o){return Re(r,o)?!0:Se(r)&&Se(o)?lr(r,o):Array.isArray(r)&&Array.isArray(o)?ur(r,o):!1}function ur(r,o){if(r.length!==o.length)return!1;for(let e=0,i=r.length;e<i;e++)if(!We(r[e],o[e]))return!1;return!0}function lr(r,o){const e=Object.getOwnPropertyNames(r),i=Object.getOwnPropertyNames(o);if(e.length!==i.length)return!1;for(let n=0,c=e.length;n<c;n++){const u=e[n];if(!We(r[u],o[u]))return!1}return!0}function ct(r,o,e={deep:!1}){return e.deep?We(r,o):cr(r,o)}class fr extends le{constructor(e){super();s(this,"_realWebSocket");s(this,"_url");s(this,"_protocols");s(this,"_readyState",be.NOTINITIALIZED);s(this,"_options",{timeout:1e4,shouldReconnect:(e,i)=>{if(!(e.code===1008||e.code===1011))return[0,1e3,2e3][i.attempts%3]},should1000Reconnect:!1,ignoreConnectivityEvents:!1,automaticOpen:!1});s(this,"_connectTimeout");s(this,"_attempts",0);s(this,"_reconnects",-1);s(this,"_reconnectWhenOnlineAgain",!1);s(this,"_explicitlyClosed",!1);s(this,"_pendingReconnect");s(this,"_connectivityEventsAttached",!1);s(this,"_heathCheckTimer");s(this,"_healthCheck",async()=>{this._realWebSocket&&this._realWebSocket.readyState!==this._readyState&&(this._readyState=this._realWebSocket.readyState,this._readyState===be.CLOSING&&this.emit("closing")),await new Promise(e=>setTimeout(e,2e3)),this._heathCheckTimer=requestAnimationFrame(this._healthCheck)});s(this,"_clearConnectTimeoutIfNeed",()=>{this._connectTimeout&&(clearTimeout(this._connectTimeout),this._connectTimeout=void 0)});s(this,"_clearHeathCheckIfNeed",()=>{this._heathCheckTimer&&(cancelAnimationFrame(this._heathCheckTimer),this._heathCheckTimer=void 0)});s(this,"_startHealthCheck",()=>{this._clearHeathCheckIfNeed(),this._heathCheckTimer=requestAnimationFrame(this._healthCheck)});s(this,"_stopHealthCheck",()=>{this._clearHeathCheckIfNeed()});s(this,"_clearPendingReconnectIfNeeded",()=>{this._pendingReconnect&&(clearTimeout(this._pendingReconnect),this._pendingReconnect=void 0)});s(this,"_online",e=>{this._reconnectWhenOnlineAgain&&(this._clearPendingReconnectIfNeeded(),this._reconnect(e))});s(this,"_offline",()=>{var e;this._reconnectWhenOnlineAgain=!0,(e=this._realWebSocket)==null||e.close(1e3,"offline")});s(this,"_detachConnectivityEvents",()=>{this._connectivityEventsAttached&&(globalThis==null||globalThis.removeEventListener("online",this._online),globalThis==null||globalThis.removeEventListener("offline",this._offline),this._connectivityEventsAttached=!1)});s(this,"_attachConnectivityEvents",()=>{this._connectivityEventsAttached||(globalThis==null||globalThis.addEventListener("online",this._online),globalThis==null||globalThis.addEventListener("offline",this._offline),this._connectivityEventsAttached=!0)});s(this,"send",e=>{var i,n,c;((i=this._realWebSocket)==null?void 0:i.readyState)===((n=this._realWebSocket)==null?void 0:n.OPEN)&&((c=this._realWebSocket)==null||c.send(e))});s(this,"close",(e,i)=>{var n;return typeof e!="number"&&(i=e,e=1e3),this._clearPendingReconnectIfNeeded(),this._reconnectWhenOnlineAgain=!1,this._explicitlyClosed=!0,this._detachConnectivityEvents(),(n=this._realWebSocket)==null?void 0:n.close(e,i)});s(this,"open",e=>{var i,n;e&&(this._url=e),((i=this._realWebSocket)==null?void 0:i.readyState)!==WebSocket.OPEN&&((n=this._realWebSocket)==null?void 0:n.readyState)!==WebSocket.CONNECTING&&(this._clearPendingReconnectIfNeeded(),this._reconnectWhenOnlineAgain=!1,this._explicitlyClosed=!1,this._createWebSocket())});s(this,"_createWebSocket",()=>{var n,c,u;const e=typeof this._url=="string"?this._url:(n=this._url)==null?void 0:n.call(this,this);if(!e)return;this._clearConnectTimeoutIfNeed(),this._clearPendingReconnectIfNeeded(),this._removeWebSocketEvent(),this._realWebSocket=new WebSocket(e,this._protocols||void 0),this._attempts=this._attempts+1,this.emit("connecting",new CustomEvent("connecting",{detail:{attempts:this._attempts,reconnects:this._reconnects}}));const i=()=>{this._connectTimeout=void 0,this._detachConnectivityEvents(),this.emit("timeout",new CustomEvent("timeout",{detail:{attempts:this._attempts,reconnects:this._reconnects}}))};this._connectTimeout=setTimeout(i,(c=this._options)==null?void 0:c.timeout),this._dispatchWebSocketEvent(),(u=this._options)!=null&&u.ignoreConnectivityEvents||this._attachConnectivityEvents()});s(this,"_removeWebSocketEvent",()=>{var e,i,n,c;(e=this._realWebSocket)==null||e.removeEventListener("open",this._webSocketOpenHandler),(i=this._realWebSocket)==null||i.removeEventListener("close",this._webSocketCloseHandler),(n=this._realWebSocket)==null||n.removeEventListener("error",this._webSocketErrorHandler),(c=this._realWebSocket)==null||c.removeEventListener("message",this._webSocketMessageHandler)});s(this,"_dispatchWebSocketEvent",()=>{var e,i,n,c;(e=this._realWebSocket)==null||e.addEventListener("open",this._webSocketOpenHandler),(i=this._realWebSocket)==null||i.addEventListener("close",this._webSocketCloseHandler),(n=this._realWebSocket)==null||n.addEventListener("error",this._webSocketErrorHandler),(c=this._realWebSocket)==null||c.addEventListener("message",this._webSocketMessageHandler)});s(this,"_webSocketOpenHandler",e=>{this._connectTimeout&&(clearTimeout(this._connectTimeout),this._connectTimeout=void 0);const i=++this._reconnects,n=this._attempts;return this._attempts=0,this._reconnectWhenOnlineAgain=!1,this._startHealthCheck(),this.emit("open",Object.assign(e,{detail:{reconnects:i,attempts:n}}))});s(this,"_webSocketCloseHandler",e=>(this._reconnect(e),this._stopHealthCheck(),this.emit("close",e)));s(this,"_webSocketErrorHandler",e=>this.emit("error",new CustomEvent("error",{detail:{error:e}})));s(this,"_webSocketMessageHandler",e=>this.emit("message",e));e&&this.setOptions(e),this._startHealthCheck()}get attempts(){return this._attempts}setOptions(e){if(!e)return;this._url=e.url,this._protocols=e.protocols;const i=Object.assign(this._options,e.robustOptions||{});if(typeof(i==null?void 0:i.timeout)!="number")throw new Error("timeout must be the number of milliseconds to timeout a connection attempt");if(typeof(i==null?void 0:i.shouldReconnect)!="function")throw new Error("shouldReconnect must be a function that returns the number of milliseconds to wait for a reconnect attempt, or null or undefined to not reconnect.");this._options=i,this._options.automaticOpen&&this._createWebSocket()}_reconnect(e){var n,c,u,d;if(!((n=this._options)!=null&&n.should1000Reconnect)&&e.code===1e3||this._explicitlyClosed){this._attempts=0;return}if(this._connectivityEventsAttached&&((c=globalThis==null?void 0:globalThis.navigator)==null?void 0:c.onLine)===!1){this._reconnectWhenOnlineAgain=!0;return}const i=(d=(u=this._options)==null?void 0:u.shouldReconnect)==null?void 0:d.call(u,e,this);typeof i=="number"&&(this._pendingReconnect=setTimeout(this._createWebSocket,i))}}class dr extends le{constructor(){super();s(this,"_ws",new fr({url:"",robustOptions:{should1000Reconnect:!0,ignoreConnectivityEvents:!0}}));s(this,"_state",$.NOTINITIALIZED);s(this,"_addWebSocketEventListeners",()=>{this._ws.on("close",this._handleCloseEvent),this._ws.on("closing",this._handleClosingEvent),this._ws.on("connecting",this._handleConnectingEvent),this._ws.on("error",this._handleErrorEvent),this._ws.on("message",this._handleMessageEvent),this._ws.on("open",this._handleOpenEvent),this._ws.on("timeout",this._handleTimeoutEvent)});s(this,"_removeWebSocketEventListeners",()=>{this._ws.off("close",this._handleCloseEvent),this._ws.off("closing",this._handleClosingEvent),this._ws.off("connecting",this._handleConnectingEvent),this._ws.off("error",this._handleErrorEvent),this._ws.off("message",this._handleMessageEvent),this._ws.off("open",this._handleOpenEvent),this._ws.off("timeout",this._handleTimeoutEvent)});s(this,"_handleCloseEvent",e=>{O.info(`live room closed bacause of ${e.code}-${e.reason||gt(e.code)}`),this.state=$.CLOSED});s(this,"_handleClosingEvent",()=>{var e;O.info("live room is closing, onLine:",(e=globalThis==null?void 0:globalThis.navigator)==null?void 0:e.onLine),this.state=$.CLOSED});s(this,"_handleConnectingEvent",()=>{O.info("live room is connecting"),this.state=$.CONNECTING});s(this,"_handleErrorEvent",e=>{O.error("live room error",e),this.state=$.CLOSED});s(this,"_handleMessageEvent",e=>{let i=(()=>{try{return JSON.parse(e.data)}catch(n){return e.data}})();this.emit("message",i)});s(this,"_handleOpenEvent",e=>{O.info("live room open",e.detail),this.state=$.OPEN,e.detail.reconnects>0&&this.emit("reconnected",e.detail)});s(this,"_handleTimeoutEvent",e=>{O.error("live room connect timeout!",e.detail),this.state=$.CLOSED});s(this,"dispose",async()=>(this._removeWebSocketEventListeners(),await this.close("live room close by controller disposed!")));s(this,"open",e=>this._ws.open(e));s(this,"close",(e,i)=>new Promise(n=>{this._ws.once("close",()=>n(!0)),this._ws.close(e,i)}));this._addWebSocketEventListeners()}set state(e){const i=JSON.parse(JSON.stringify(this._state));this._state=e,this.emit("stateChange",this.state,i)}get state(){return this._state}sendMessage(e=""){if(e==null||e==="")throw new Error("live message is empty!");if(this.state===$.OPEN)return this._ws.send(JSON.stringify(e));throw new Error("live has not yet been initialized!")}readyClose(){this._ws&&(this._ws._explicitlyClosed=!0)}}const hr=r=>Promise.reject("unimplemented method GetVoiceSign"),Me=(r,o={},e=[])=>({command:r,front_request_id:ye(),data:{...o,to_user_ids:Array.isArray(e)?e:[e]}}),_r=()=>{var r,o;window!=null&&window.__Realsee_Live__&&((o=(r=window==null?void 0:window.__Realsee_Live__)==null?void 0:r.dispose)==null||o.call(r),window.__Realsee_Live__=null)};class gr extends le{constructor(e){var i;super();s(this,"_options",{});s(this,"keyframes",new le);s(this,"_buildInData",{keyframes:{}});s(this,"getFramesByKey",e=>this.snapshot[e]);s(this,"sendKeyframe",(e,i)=>{if(this.state!==$.OPEN)return!1;this._buildInData.keyframes={...this._buildInData.keyframes,[e]:i};const n=Me(U.KeyframeSync,this.snapshot);try{return this._controller.sendMessage(n),!0}catch(c){return O.error(c),!1}});s(this,"_controller",new dr);s(this,"_addLiveControllerEventListeners",()=>{this._controller.on("stateChange",this._handleStateChange),this._controller.on("message",this._handleMessage)});s(this,"_removeLiveControllerEventListeners",()=>{this._controller.off("stateChange",this._handleStateChange),this._controller.off("message",this._handleMessage)});s(this,"_handleStateChange",(e,i)=>this.emit("stateChange",e,i));s(this,"_handleMessage",async e=>{var i,n,c,u,d;if(typeof e=="object"){const{command:g,data:v={},frontRequestId:E,code:y,message:I}=e;if(y==="SUCCESS")switch(g){case U.SelfUserInfo:{const _=v;ct(this.selfInfo,_,{deep:!0})||(this._buildInData.selfInfo=_,this.emit("selfInfoUpdate",this._buildInData.selfInfo,E));break}case U.RoomInfo:{const _=v;this._buildInData.roomInfo=Object.assign({},_),this.emit("readyKeyframeSync",_.last_frame||{});break}case U.RTCInfo:{const{voice_id:_,type:V}=v;if(this._buildInData.rtcInfo={voiceId:_,type:V},(i=this.$RTC)!=null&&i.joined)O.warn("已加入语音房间,无需重复加入!");else if(await((u=this.$RTC)==null?void 0:u.join({voiceId:_,userId:((n=this.selfInfo)==null?void 0:n.id)||"",roomId:(c=this.roomInfo)==null?void 0:c.info.room_code,type:V}))){const k=(d=this._options.initialMicroStatus)!=null?d:Q.OPEN;await this.toggleMicro(k===Q.OPEN)}else O.error("加入语音房间失败");break}case U.UserList:{const _=v;this._buildInData.userList=_,this.emit("userListUpdate",this.userList,E);break}case U.CustomEvent:{const _=v;this.emit("broadcast",_,E);break}case U.KeyframeSync:{const _=v,V=Object.keys(_).reduce((C,k)=>{if(ct(_[k],this._buildInData.keyframes[k],{deep:!0}))return C;const B=[_[k],this._buildInData.keyframes[k],E],P=k;return this.keyframes.emit(P,...B),this._buildInData.keyframes[k]=_[k],C[k]=_[k],C},{});this.emit("keyframes",V,E);break}case U.BuiltinMsg:{const _=v;this.emit("builtinEvent",_),_.event_type===K.UserChange&&this.emit("userChange",_),_.event_type===K.RoomChange&&this.emit("roomChange",_),_.event_type===K.UserChange&&_.action===Y.UserMicroStatus&&await this.toggleMicro(_.data.status===Q.OPEN),_.event_type===K.RoomChange&&_.action===Y.RoomClose&&await this._exit();break}case U.UserKickOut:{this.emit("kickOut");break}default:console.warn("unknown command: ",g)}else this.emit("error",e)}});s(this,"_clearLiveData",()=>{this._buildInData={keyframes:{}}});s(this,"connect",async(e={})=>{var u,d,g,v;if(this._options.url=(d=(u=e.url)!=null?u:this._options.url)!=null?d:"",this._options.getTicket=(g=e.getTicket)!=null?g:this._options.getTicket,this._options.initialMicroStatus=(v=e.rtcMicStatus)!=null?v:this._options.initialMicroStatus,!/^ws(s):\/\//.test(this._options.url)||typeof this._options.getTicket!="function")return/^ws(s):\/\//.test(this._options.url)?typeof this._options.getTicket!="function"?new Error("getTicket muse be function"):!1:new Error("Illegal realsee live room link");const{force:i=!1}=e;if(this._options.rtc&&!await this._options.rtc.detectMicro())return new Error("Failed to obtain microphone authorization");const n=this.state;if(n===$.CONNECTING||n===$.OPEN)if(i)try{await this._controller.close("force close by connect")}catch(E){console.warn(E)}else return new Error("已有Live实例正在连接中,请勿重复连接!");this._clearLiveData();const c=tr(this._options.url,{ticket:await this._options.getTicket(),force:Number(!!i)});return this._controller.open(c),!0});s(this,"_exit",async()=>{var e;this._clearLiveData();try{await((e=this.$RTC)==null?void 0:e.quit())}catch(i){O.warn(i)}return this.state!==$.OPEN?!0:await this._controller.close()});s(this,"exit",async()=>this.close());s(this,"close",async()=>{var e;await this._controller.readyClose();try{await((e=this.$RTC)==null?void 0:e.quit())}catch(i){O.warn(i)}await this.updateStatus(K.RoomChange,Y.RoomClose,{})});s(this,"dispose",async()=>(this._removeLiveControllerEventListeners(),this._clearLiveData(),await this._controller.dispose()));s(this,"setSelfInfo",async e=>await this.updateStatus(K.UserChange,Y.UserInfo,e));s(this,"toggleMicro",async e=>{var n,c,u;if(!((c=(n=this.selfInfo)==null?void 0:n.permission)!=null&&c.control_own_micro))return!1;const i=await((u=this.$RTC)==null?void 0:u.toggleMicro(e));return i&&await this.updateStatus(K.UserChange,Y.UserMicroStatus,{status:e?Q.OPEN:Q.CLOSE},[]),i});s(this,"forbidMicro",async(e,i)=>{var n,c;return typeof this._options.canForbidUserMicro=="function"&&!this._options.canForbidUserMicro(i)||!((c=(n=this.selfInfo)==null?void 0:n.permission)!=null&&c.control_other_micro)?!1:await this.updateStatus(K.UserChange,Y.UserMicroStatus,{status:e},i)});s(this,"forbidSync",async(e,i)=>{var n,c;return typeof this._options.canForbidUserSync=="function"&&!this._options.canForbidUserSync(i)||!((c=(n=this.selfInfo)==null?void 0:n.permission)!=null&&c.control_other_sync)?!1:await this.updateStatus(K.UserChange,Y.UserPermission,{sync_frame:e},i)});s(this,"kick",async e=>{var i,n;return typeof this._options.canForbidUserKick=="function"&&!this._options.canForbidUserKick(e)||!((n=(i=this.selfInfo)==null?void 0:i.permission)!=null&&n.change_other_status)?!1:await this.updateStatus(K.UserChange,Y.UserStatus,{status:"KICK_OUT"},e)});this._addLiveControllerEventListeners(),this._options=Object.assign({initialMicroStatus:Q.OPEN},e),this._options.jsBridge=(()=>{if(e.jsBridge)return e.jsBridge;if(e.useBuiltInJsBridge)return new Kt})(),this._options.getVoiceSign=(i=e.getVoiceSign)!=null?i:hr,this._options.autoPlayConfirm=e.autoPlayConfirm,this._options.rtc=(()=>{if(e.rtc)return e.rtc;if(e.rtcType)switch(e.getVoiceSign||O.error("GetVoiceSign method must be passed when using built-in RTC instances"),e.rtcType){case ee.RealseeVRWebViewRTC:{if(this._options.jsBridge)return new $e({jsBridge:this._options.jsBridge,getVoiceSign:this._options.getVoiceSign});O.error("JsBridge instance must be passed when using built-in VRWebViewRTC instances");return}case ee.RealseeBrowserChimeRTC:return new Ve({getVoiceSign:this._options.getVoiceSign,logLevel:e.__debug__?at.DEBUG:at.INFO});case ee.RealseeBrowserRTC:return this._options.autoPlayConfirm||O.error("autoPlayConfirm method must be passed when using built-in RealseeBrowserRTC instances"),new De({getVoiceSign:this._options.getVoiceSign,autoPlayConfirm:this._options.autoPlayConfirm});default:{O.error("unknown built-in RTC type");return}}if(e.useBuiltInRTC){if(e.getVoiceSign||O.error("GetVoiceSign method must be passed when using built-in RTC instances"),this._options.jsBridge)return sr&&(rr||ir)||nr?new $e({jsBridge:this._options.jsBridge,getVoiceSign:this._options.getVoiceSign}):e.builtInRTCType===Ue.RealseeXChimeRTC?new Ve({getVoiceSign:this._options.getVoiceSign}):new De({getVoiceSign:this._options.getVoiceSign,autoPlayConfirm:this._options.autoPlayConfirm});O.error("jsBridge instance must be passed when using built-in RTC instances");return}})(),this._options.rtc||O.warn("unused rtc"),this._options.url&&this._options.getTicket&&this.connect(),this._options.__debug__&&Object.assign(window,{$liveController:this._controller,$live:this})}get options(){return Object.freeze(this._options||{})}get state(){return this._controller.state}get readyState(){return this._controller.state}get url(){return this.options.url}get $RTC(){return this._options.rtc}get jsBridge(){return this._options.jsBridge}get snapshot(){return this._buildInData.keyframes}get selfInfo(){return this._buildInData.selfInfo}get userList(){return this._buildInData.userList||[]}get roomInfo(){return this._buildInData.roomInfo}async updateStatus(e,i,n,c){if(this.state!==$.OPEN)return!1;const u=Object.assign({event_type:e,action:i},{data:n}),d=Me(U.BuiltinMsg,u,c);try{return this._controller.sendMessage(d),!0}catch(g){return O.error(g),!1}}broadcast(e,i,n){return this.state!==$.OPEN?!1:new Promise((c,u)=>{const d=Me(U.CustomEvent,e,i),g=d.front_request_id,v=n?setTimeout(()=>{u(new Error("RESPONSE TIMEOUT")),this.off("broadcast",E)},n):void 0,E=(y,I)=>{I===g&&(v&&clearTimeout(v),this.off("broadcast",E),c(y))};this.on("broadcast",E);try{this._controller.sendMessage(d)}catch(y){u(y)}})}}const vt=r=>(_r(),new gr(r));var xe={},mr={get exports(){return xe},set exports(r){xe=r}},ae={};/**
2
- * @license React
3
- * react-jsx-runtime.production.min.js
4
- *
5
- * Copyright (c) Facebook, Inc. and its affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */var ut;function vr(){if(ut)return ae;ut=1;var r=D,o=Symbol.for("react.element"),e=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,n=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function u(d,g,v){var E,y={},I=null,_=null;v!==void 0&&(I=""+v),g.key!==void 0&&(I=""+g.key),g.ref!==void 0&&(_=g.ref);for(E in g)i.call(g,E)&&!c.hasOwnProperty(E)&&(y[E]=g[E]);if(d&&d.defaultProps)for(E in g=d.defaultProps,g)y[E]===void 0&&(y[E]=g[E]);return{$$typeof:o,type:d,key:I,ref:_,props:y,_owner:n.current}}return ae.Fragment=e,ae.jsx=u,ae.jsxs=u,ae}var ce={};/**
10
- * @license React
11
- * react-jsx-runtime.development.js
12
- *
13
- * Copyright (c) Facebook, Inc. and its affiliates.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */var lt;function pr(){return lt||(lt=1,process.env.NODE_ENV!=="production"&&function(){var r=D,o=Symbol.for("react.element"),e=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),d=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),E=Symbol.for("react.suspense_list"),y=Symbol.for("react.memo"),I=Symbol.for("react.lazy"),_=Symbol.for("react.offscreen"),V=Symbol.iterator,C="@@iterator";function k(t){if(t===null||typeof t!="object")return null;var a=V&&t[V]||t[C];return typeof a=="function"?a:null}var B=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function P(t){{for(var a=arguments.length,l=new Array(a>1?a-1:0),h=1;h<a;h++)l[h-1]=arguments[h];de("error",t,l)}}function de(t,a,l){{var h=B.ReactDebugCurrentFrame,b=h.getStackAddendum();b!==""&&(a+="%s",l=l.concat([b]));var R=l.map(function(p){return String(p)});R.unshift("Warning: "+a),Function.prototype.apply.call(console[t],console,R)}}var f=!1,w=!1,A=!1,S=!1,N=!1,M;M=Symbol.for("react.module.reference");function W(t){return!!(typeof t=="string"||typeof t=="function"||t===i||t===c||N||t===n||t===v||t===E||S||t===_||f||w||A||typeof t=="object"&&t!==null&&(t.$$typeof===I||t.$$typeof===y||t.$$typeof===u||t.$$typeof===d||t.$$typeof===g||t.$$typeof===M||t.getModuleId!==void 0))}function J(t,a,l){var h=t.displayName;if(h)return h;var b=a.displayName||a.name||"";return b!==""?l+"("+b+")":l}function se(t){return t.displayName||"Context"}function G(t){if(t==null)return null;if(typeof t.tag=="number"&&P("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case i:return"Fragment";case e:return"Portal";case c:return"Profiler";case n:return"StrictMode";case v:return"Suspense";case E:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case d:var a=t;return se(a)+".Consumer";case u:var l=t;return se(l._context)+".Provider";case g:return J(t,t.render,"ForwardRef");case y:var h=t.displayName||null;return h!==null?h:G(t.type)||"Memo";case I:{var b=t,R=b._payload,p=b._init;try{return G(p(R))}catch(m){return null}}}return null}var z=Object.assign,te=0,T,F,re,he,Fe,qe,Ke;function Ge(){}Ge.__reactDisabledLog=!0;function pt(){{if(te===0){T=console.log,F=console.info,re=console.warn,he=console.error,Fe=console.group,qe=console.groupCollapsed,Ke=console.groupEnd;var t={configurable:!0,enumerable:!0,value:Ge,writable:!0};Object.defineProperties(console,{info:t,log:t,warn:t,error:t,group:t,groupCollapsed:t,groupEnd:t})}te++}}function Et(){{if(te--,te===0){var t={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:z({},t,{value:T}),info:z({},t,{value:F}),warn:z({},t,{value:re}),error:z({},t,{value:he}),group:z({},t,{value:Fe}),groupCollapsed:z({},t,{value:qe}),groupEnd:z({},t,{value:Ke})})}te<0&&P("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Oe=B.ReactCurrentDispatcher,Ie;function _e(t,a,l){{if(Ie===void 0)try{throw Error()}catch(b){var h=b.stack.trim().match(/\n( *(at )?)/);Ie=h&&h[1]||""}return`
18
- `+Ie+t}}var Te=!1,ge;{var yt=typeof WeakMap=="function"?WeakMap:Map;ge=new yt}function Ye(t,a){if(!t||Te)return"";{var l=ge.get(t);if(l!==void 0)return l}var h;Te=!0;var b=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var R;R=Oe.current,Oe.current=null,pt();try{if(a){var p=function(){throw Error()};if(Object.defineProperty(p.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(p,[])}catch(H){h=H}Reflect.construct(t,[],p)}else{try{p.call()}catch(H){h=H}t.call(p.prototype)}}else{try{throw Error()}catch(H){h=H}t()}}catch(H){if(H&&h&&typeof H.stack=="string"){for(var m=H.stack.split(`
19
- `),x=h.stack.split(`
20
- `),j=m.length-1,L=x.length-1;j>=1&&L>=0&&m[j]!==x[L];)L--;for(;j>=1&&L>=0;j--,L--)if(m[j]!==x[L]){if(j!==1||L!==1)do if(j--,L--,L<0||m[j]!==x[L]){var q=`
21
- `+m[j].replace(" at new "," at ");return t.displayName&&q.includes("<anonymous>")&&(q=q.replace("<anonymous>",t.displayName)),typeof t=="function"&&ge.set(t,q),q}while(j>=1&&L>=0);break}}}finally{Te=!1,Oe.current=R,Et(),Error.prepareStackTrace=b}var ne=t?t.displayName||t.name:"",ot=ne?_e(ne):"";return typeof t=="function"&&ge.set(t,ot),ot}function bt(t,a,l){return Ye(t,!1)}function St(t){var a=t.prototype;return!!(a&&a.isReactComponent)}function me(t,a,l){if(t==null)return"";if(typeof t=="function")return Ye(t,St(t));if(typeof t=="string")return _e(t);switch(t){case v:return _e("Suspense");case E:return _e("SuspenseList")}if(typeof t=="object")switch(t.$$typeof){case g:return bt(t.render);case y:return me(t.type,a,l);case I:{var h=t,b=h._payload,R=h._init;try{return me(R(b),a,l)}catch(p){}}}return""}var ve=Object.prototype.hasOwnProperty,He={},Je=B.ReactDebugCurrentFrame;function pe(t){if(t){var a=t._owner,l=me(t.type,t._source,a?a.type:null);Je.setExtraStackFrame(l)}else Je.setExtraStackFrame(null)}function Ct(t,a,l,h,b){{var R=Function.call.bind(ve);for(var p in t)if(R(t,p)){var m=void 0;try{if(typeof t[p]!="function"){var x=Error((h||"React class")+": "+l+" type `"+p+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof t[p]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw x.name="Invariant Violation",x}m=t[p](a,p,h,l,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(j){m=j}m&&!(m instanceof Error)&&(pe(b),P("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",h||"React class",l,p,typeof m),pe(null)),m instanceof Error&&!(m.message in He)&&(He[m.message]=!0,pe(b),P("Failed %s type: %s",l,m.message),pe(null))}}}var wt=Array.isArray;function ke(t){return wt(t)}function Rt(t){{var a=typeof Symbol=="function"&&Symbol.toStringTag,l=a&&t[Symbol.toStringTag]||t.constructor.name||"Object";return l}}function Ot(t){try{return ze(t),!1}catch(a){return!0}}function ze(t){return""+t}function Xe(t){if(Ot(t))return P("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Rt(t)),ze(t)}var oe=B.ReactCurrentOwner,It={key:!0,ref:!0,__self:!0,__source:!0},Ze,Qe,Pe;Pe={};function Tt(t){if(ve.call(t,"ref")){var a=Object.getOwnPropertyDescriptor(t,"ref").get;if(a&&a.isReactWarning)return!1}return t.ref!==void 0}function kt(t){if(ve.call(t,"key")){var a=Object.getOwnPropertyDescriptor(t,"key").get;if(a&&a.isReactWarning)return!1}return t.key!==void 0}function Pt(t,a){if(typeof t.ref=="string"&&oe.current&&a&&oe.current.stateNode!==a){var l=G(oe.current.type);Pe[l]||(P('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',G(oe.current.type),t.ref),Pe[l]=!0)}}function Nt(t,a){{var l=function(){Ze||(Ze=!0,P("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",a))};l.isReactWarning=!0,Object.defineProperty(t,"key",{get:l,configurable:!0})}}function jt(t,a){{var l=function(){Qe||(Qe=!0,P("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",a))};l.isReactWarning=!0,Object.defineProperty(t,"ref",{get:l,configurable:!0})}}var Lt=function(t,a,l,h,b,R,p){var m={$$typeof:o,type:t,key:a,ref:l,props:p,_owner:R};return m._store={},Object.defineProperty(m._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(m,"_self",{configurable:!1,enumerable:!1,writable:!1,value:h}),Object.defineProperty(m,"_source",{configurable:!1,enumerable:!1,writable:!1,value:b}),Object.freeze&&(Object.freeze(m.props),Object.freeze(m)),m};function At(t,a,l,h,b){{var R,p={},m=null,x=null;l!==void 0&&(Xe(l),m=""+l),kt(a)&&(Xe(a.key),m=""+a.key),Tt(a)&&(x=a.ref,Pt(a,b));for(R in a)ve.call(a,R)&&!It.hasOwnProperty(R)&&(p[R]=a[R]);if(t&&t.defaultProps){var j=t.defaultProps;for(R in j)p[R]===void 0&&(p[R]=j[R])}if(m||x){var L=typeof t=="function"?t.displayName||t.name||"Unknown":t;m&&Nt(p,L),x&&jt(p,L)}return Lt(t,m,x,b,h,oe.current,p)}}var Ne=B.ReactCurrentOwner,et=B.ReactDebugCurrentFrame;function ie(t){if(t){var a=t._owner,l=me(t.type,t._source,a?a.type:null);et.setExtraStackFrame(l)}else et.setExtraStackFrame(null)}var je;je=!1;function Le(t){return typeof t=="object"&&t!==null&&t.$$typeof===o}function tt(){{if(Ne.current){var t=G(Ne.current.type);if(t)return`
1
+ 'use strict';
22
2
 
23
- Check the render method of \``+t+"`."}return""}}function Mt(t){{if(t!==void 0){var a=t.fileName.replace(/^.*[\\\/]/,""),l=t.lineNumber;return`
3
+ var Je = require('trtc-js-sdk');
4
+ var amazonChimeSdkJs = require('amazon-chime-sdk-js');
5
+ var Ai = require('@realsee/jsbridge-x');
6
+ var observable = require('lib0/observable');
7
+ var N = require('lib0/array');
8
+ var x = require('lib0/math');
9
+ var M = require('lib0/map');
10
+ var u = require('lib0/encoding');
11
+ require('lib0/decoding');
12
+ var Be = require('lib0/random');
13
+ var ze = require('lib0/promise');
14
+ require('lib0/buffer');
15
+ var k = require('lib0/error');
16
+ var C = require('lib0/binary');
17
+ var mt = require('lib0/function');
18
+ var pe = require('lib0/set');
19
+ var P = require('lib0/logging');
20
+ require('lib0/time');
21
+ require('lib0/string');
22
+ var re = require('lib0/iterator');
23
+ var F = require('lib0/object');
24
+ var jt = require('lib0/environment');
25
+ var L = require('react');
24
26
 
25
- Check your code at `+a+":"+l+"."}return""}}var rt={};function Dt(t){{var a=tt();if(!a){var l=typeof t=="string"?t:t.displayName||t.name;l&&(a=`
27
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
26
28
 
27
- Check the top-level render call using <`+l+">.")}return a}}function it(t,a){{if(!t._store||t._store.validated||t.key!=null)return;t._store.validated=!0;var l=Dt(a);if(rt[l])return;rt[l]=!0;var h="";t&&t._owner&&t._owner!==Ne.current&&(h=" It was passed a child from "+G(t._owner.type)+"."),ie(t),P('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',l,h),ie(null)}}function nt(t,a){{if(typeof t!="object")return;if(ke(t))for(var l=0;l<t.length;l++){var h=t[l];Le(h)&&it(h,a)}else if(Le(t))t._store&&(t._store.validated=!0);else if(t){var b=k(t);if(typeof b=="function"&&b!==t.entries)for(var R=b.call(t),p;!(p=R.next()).done;)Le(p.value)&&it(p.value,a)}}}function Vt(t){{var a=t.type;if(a==null||typeof a=="string")return;var l;if(typeof a=="function")l=a.propTypes;else if(typeof a=="object"&&(a.$$typeof===g||a.$$typeof===y))l=a.propTypes;else return;if(l){var h=G(a);Ct(l,t.props,"prop",h,t)}else if(a.PropTypes!==void 0&&!je){je=!0;var b=G(a);P("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",b||"Unknown")}typeof a.getDefaultProps=="function"&&!a.getDefaultProps.isReactClassApproved&&P("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function $t(t){{for(var a=Object.keys(t.props),l=0;l<a.length;l++){var h=a[l];if(h!=="children"&&h!=="key"){ie(t),P("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",h),ie(null);break}}t.ref!==null&&(ie(t),P("Invalid attribute `ref` supplied to `React.Fragment`."),ie(null))}}function st(t,a,l,h,b,R){{var p=W(t);if(!p){var m="";(t===void 0||typeof t=="object"&&t!==null&&Object.keys(t).length===0)&&(m+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var x=Mt(b);x?m+=x:m+=tt();var j;t===null?j="null":ke(t)?j="array":t!==void 0&&t.$$typeof===o?(j="<"+(G(t.type)||"Unknown")+" />",m=" Did you accidentally export a JSX literal instead of a component?"):j=typeof t,P("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",j,m)}var L=At(t,a,l,b,R);if(L==null)return L;if(p){var q=a.children;if(q!==void 0)if(h)if(ke(q)){for(var ne=0;ne<q.length;ne++)nt(q[ne],t);Object.freeze&&Object.freeze(q)}else P("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else nt(q,t)}return t===i?$t(L):Vt(L),L}}function xt(t,a,l){return st(t,a,l,!0)}function Ut(t,a,l){return st(t,a,l,!1)}var Bt=Ut,Wt=xt;ce.Fragment=i,ce.jsx=Bt,ce.jsxs=Wt}()),ce}(function(r){process.env.NODE_ENV==="production"?r.exports=vr():r.exports=pr()})(mr);const Er=xe.jsx;function yr(r){const o=D.createContext(null),e=vt(r),i=e.jsBridge,n=f=>Er(o.Provider,{value:e,children:f.children}),c=()=>{const f=D.useContext(o);if(!f)throw new Error("LiveProvider never found.");return f},u=()=>e,d=()=>e.$RTC,g=()=>d(),v=()=>async f=>await e.connect(f);function E(f,w,A=[]){const S=c(),N=[S,name,...A],M=()=>S.keyframes.off(f,w);return D.useEffect(()=>(S.keyframes.on(f,w),M),N),M}function y(){const f=c();return{connect:async T=>await f.connect(T),broadcast:async(T,F,re=0)=>await f.broadcast(T,F,re),exit:async()=>await f.exit(),kick:async T=>await f.kick(T),toggleMicro:T=>f.toggleMicro(T),forbidMicro:async(T,F=[])=>await f.forbidMicro(T,F),forbidSync:(T,F=[])=>f.forbidSync(T,F),sendKeyframe:(T,F)=>f.sendKeyframe(T,F),getFramesByKey:T=>f.getFramesByKey(T),setSelfInfo:T=>f.setSelfInfo(T),updateStatus:(T,F,re,he)=>f.updateStatus(T,F,re,he)}}function I(f){const w=c(),[A,S]=D.useState(w.getFramesByKey(f));D.useEffect(()=>{const M=se=>S(se),W=f,J=M;return w.keyframes.on(W,J),()=>w.keyframes.off(W,J)},[w]);const N=D.useCallback(M=>w.sendKeyframe(f,M),[w]);return[A,N]}function _(f,w,A=[]){const S=c(),N=()=>S.off(f,w),M=[S,f,...A];return D.useEffect(()=>(S.on(f,w),N),M),N}function V(){const f=c(),[w,A]=D.useState(f.state);return D.useEffect(()=>{const S=N=>A(N);return f.on("stateChange",S),()=>f.off("stateChange",S)},[f]),w}function C(){const f=c();return{join:W=>f.$RTC.join(W),quit:()=>f.$RTC.quit(),shock:()=>{var W,J;return(J=(W=f.$RTC).shock)==null?void 0:J.call(W)},toggleMicro:W=>f.$RTC.toggleMicro(W),detectMicro:()=>f.$RTC.detectMicro()}}function k(f,w,A=[]){const S=c(),N=()=>S.$RTC.off(f,w),M=[S,f,...A];return D.useEffect(()=>(S.$RTC.on(f,w),N),M),N}function B(){const f=c(),[w,A]=D.useState(f.selfInfo||{}),S=M=>A(M);D.useEffect(()=>(f.on("selfInfoUpdate",S),()=>f.off("selfInfoUpdate",S)),[f]);const N=D.useCallback(async M=>await f.setSelfInfo(M),[f]);return[w,N]}function P(){const f=c(),[w,A]=D.useState(f.snapshot);return D.useEffect(()=>{const S=N=>A(N);return f.on("keyframes",S),()=>f.off("keyframes",S)}),w}function de(){const f=c(),[w,A]=D.useState(f.userList),S=N=>A(N);return D.useEffect(()=>(f.on("userListUpdate",S),()=>f.off("userListUpdate",S)),[f]),w}return{live:e,jsBridge:i,LiveProvider:n,unsafe__useLiveInstance:u,unsafe__useRTCInstance:g,useConnect:v,useKeyframe:I,useKeyframeUpdateCallback:E,useLiveAction:y,useLiveEventCallback:_,useLiveState:V,useRTCAction:C,useRTCEventCallback:k,useSelfInfo:B,useKeyframesSnapshot:P,useUserList:de}}exports.BrowserRTC=De;exports.BrowserRTC4Chime=Ve;exports.BuiltInRTCType=Ue;exports.BuiltinActionType=Y;exports.BuiltinEventType=K;exports.Command=U;exports.CoreRTC=Ce;exports.LiveState=$;exports.MemUserStatus=dt;exports.MicroStatus=Q;exports.RTCJoinedInfoCodeEnum=Be;exports.RTCType=ee;exports.UserStatus=ft;exports.VRWebViewRTC=$e;exports.WebSocketCloseError=_t;exports.WebSocketErrorType=ht;exports.WebSocketState=be;exports.createLive=vt;exports.createLiveReact=yr;exports.parseLiveMsg=Qt;exports.parseWSClsErr=gt;
29
+ function _interopNamespace(e) {
30
+ if (e && e.__esModule) return e;
31
+ var n = Object.create(null);
32
+ if (e) {
33
+ Object.keys(e).forEach(function (k) {
34
+ if (k !== 'default') {
35
+ var d = Object.getOwnPropertyDescriptor(e, k);
36
+ Object.defineProperty(n, k, d.get ? d : {
37
+ enumerable: true,
38
+ get: function () { return e[k]; }
39
+ });
40
+ }
41
+ });
42
+ }
43
+ n.default = e;
44
+ return Object.freeze(n);
45
+ }
46
+
47
+ var Je__default = /*#__PURE__*/_interopDefault(Je);
48
+ var Ai__default = /*#__PURE__*/_interopDefault(Ai);
49
+ var N__namespace = /*#__PURE__*/_interopNamespace(N);
50
+ var x__namespace = /*#__PURE__*/_interopNamespace(x);
51
+ var M__namespace = /*#__PURE__*/_interopNamespace(M);
52
+ var u__namespace = /*#__PURE__*/_interopNamespace(u);
53
+ var Be__namespace = /*#__PURE__*/_interopNamespace(Be);
54
+ var ze__namespace = /*#__PURE__*/_interopNamespace(ze);
55
+ var k__namespace = /*#__PURE__*/_interopNamespace(k);
56
+ var C__namespace = /*#__PURE__*/_interopNamespace(C);
57
+ var mt__namespace = /*#__PURE__*/_interopNamespace(mt);
58
+ var pe__namespace = /*#__PURE__*/_interopNamespace(pe);
59
+ var P__namespace = /*#__PURE__*/_interopNamespace(P);
60
+ var re__namespace = /*#__PURE__*/_interopNamespace(re);
61
+ var F__namespace = /*#__PURE__*/_interopNamespace(F);
62
+ var jt__namespace = /*#__PURE__*/_interopNamespace(jt);
63
+ var L__default = /*#__PURE__*/_interopDefault(L);
64
+
65
+ var le=Symbol("$$REALSEE_LIVE_EVENT$$");function ve(i){return i[le]||(i[le]={}),i[le]}function In(i){i[le]?.length||delete i[le];}var j=class{hasListener(e){let t=ve(this);return t&&t[e]&&t[e].length>0}on(e,t,n){let r=ve(this);return r[e]||(r[e]=[]),r[e].push([t,n||!1]),()=>this.off(e,t)}once(e,t){return this.on(e,t,!0)}off(e,t){let n=ve(this);if(!e){In(this);return}if(n[e]||(n[e]=[]),t===void 0){n[e].length=0;return}let r=n[e].findIndex(s=>s[0]===t);r!==-1&&n[e].splice(r,1);}emit(e,...t){let n=!1,s=ve(this)[e]||[];for(let o of s.slice()){let[c,a=!1]=o,l=c(...t);a&&this.off(e,c),l===!1&&(n=!0);}return n}};var G=class extends j{};var Tn=(n=>(n.RealseeBrowserRTC="RealseeBrowserRTC",n.RealseeVRWebViewRTC="RealseeVRWebViewRTC",n.RealseeBrowserChimeRTC="RealseeBrowserChimeRTC",n))(Tn||{}),Rn=(t=>(t.RealseeXTRTC="trtc",t.RealseeXChimeRTC="chime",t))(Rn||{});var Dn=()=>{let i=new Date,e=i.getFullYear(),t=(i.getMonth()+1).toString().padStart(2,"0"),n=i.getDate().toString().padStart(2,"0"),r=i.getHours().toString().padStart(2,"0"),s=i.getMinutes().toString().padStart(2,"0"),o=i.getSeconds().toString().padStart(2,"0"),c=i.getMilliseconds().toString().padStart(3,"0");return `[${e}-${t}-${n} ${r}:${s}:${o}.${c}]`};var de=(i,e=[])=>{let t=`Realsee Live ${Dn()} <${i}> `;switch(i){case"INFO":console.info(t,...e);break;case"ERROR":console.error(t,...e);break;case"WARN":console.warn(t,...e);break;case"DEBUG":console.debug(t,...e);break;default:console.log(t,...e);}},On={log:(...i)=>de("LOG",i),info:(...i)=>de("INFO",i),error:(...i)=>de("ERROR",i),warn:(...i)=>de("WARN",i),debug:(...i)=>de("DEBUG",i)},m=On;function z(){return ((1+Math.random())*65536|0).toString(16).substring(1)}function Y(){return [z(),z(),"4"+z().substring(0,3),z(),z(),z()+z()+z()].join("-").toLowerCase()}var he=class extends G{type="RealseeBrowserRTC";joined=!1;micro=!1;voiceId="";_getVoiceSign=()=>{throw new Error("\u65B9\u6CD5 getVoiceSign \u672A\u5B9E\u73B0")};_autoPlayConfirm;checkRequirement=()=>Je__default.default.checkSystemRequirements();$dom=document.createElement("div");_trtc={client:null,stream:null};constructor(e){super(),this._getVoiceSign=e.getVoiceSign,this._autoPlayConfirm=e.autoPlayConfirm,this._initParentDom();}_initParentDom(){this.$dom.id=`rs-rtc-${Y()}`,this.$dom.style.display="none",document.body.appendChild(this.$dom);}join=async e=>{this.emit("joinWillStart");let t=await this._getVoiceSign({voiceId:e.voiceId,roomId:e.roomId,userId:e.userId});this._trtc.client=Je__default.default.createClient({mode:"rtc",...t,enableAutoPlayDialog:typeof this._autoPlayConfirm!="function"}),this._trtc.client?.enableAudioVolumeEvaluation(),this._registerRtcEvent();let n=await new Promise(r=>{this._trtc.client?.join({roomId:Number(e.voiceId)}).then(()=>r(!0)).catch(()=>r(!1));});return this.joined=n,n?(this._trtc.stream=Je__default.default.createStream({userId:t.userId,audio:!0,video:!1}),n=await new Promise(r=>{this._trtc.stream?.initialize().then(()=>r(!0)).catch(()=>r(!1));}),n=await new Promise(r=>{this._trtc.client?.publish(this._trtc.stream).then(()=>r(!0)).catch(()=>r(!1));}),this.joined=n,this.joined&&this.emit("joined"),n):!1};quit(){return new Promise(async e=>{this.joined=!1,this._trtc.stream&&(await this._trtc.client?.unpublish(this._trtc.stream),this._trtc.stream.stop(),this._trtc.stream.close(),this._trtc.stream=null),this._trtc.client?.leave().then(()=>this._trtc.client=null).then(()=>e(!0)).catch(()=>e(!1)),e(!0);})}detectMicro(){return new Promise(e=>{let t={audio:!0,video:!1};try{navigator.mediaDevices.getUserMedia(t).then(()=>e(!0)).catch(n=>{m.error(n.message),e(!1);});}catch(n){console.error(n),e(!1);}})}toggleMicro(e){return Promise.resolve((e?this._trtc?.stream?.unmuteAudio():this._trtc?.stream?.muteAudio())||!1)}shock(){throw new Error("Method not implemented.")}_registerRtcEvent(){this._trtc.client?.on("stream-added",this._handleStreamAdded),this._trtc.client?.on("stream-subscribed",this._handleStreamSubscribed),this._trtc.client?.on("audio-volume",e=>this.emit("userVolumes",e.result.map(({userId:t,audioVolume:n})=>({userId:t,audioVolume:n})))),this._trtc.client?.on("error",e=>this.emit("error",e));}_handleStreamAdded=e=>{let t=e.stream;console.log("\u8FDC\u7AEF\u6D41\u589E\u52A0: "+t.getId()),this._trtc.client?.subscribe(t);};_handleStreamSubscribed=e=>{let t=e.stream;console.log("\u8FDC\u7AEF\u6D41\u8BA2\u9605\u6210\u529F\uFF1A"+t.getId());let r=`rs-rtc-remote_stream-${t.getId()}`,s=document.createElement("div");s.id=r,this.$dom.appendChild(s),typeof this._autoPlayConfirm=="function"?(t.play(r).catch(o=>{}),t.on("error",o=>{if(o.getCode()===16451){let a=()=>t.resume();this._autoPlayConfirm({onConfirm:a});}})):t.play(r);}};var ne=class extends G{type="RealseeBrowserChimeRTC";joined=!1;micro=!1;voiceId="";userId="";logger;deviceController;meetingSession;audioInput;audioOutput;deviceChangeObserver={};audioVideoObserver={};audioMixObserver;_getVoiceSign=()=>{throw new Error("\u65B9\u6CD5 getVoiceSign \u672A\u5B9E\u73B0")};_autoPlayConfirm;$dom=document.createElement("div");$audio=document.createElement("audio");constructor(e){super(),this._getVoiceSign=e.getVoiceSign,this._autoPlayConfirm=e.autoPlayConfirm,this._initDom(),this.logger=new amazonChimeSdkJs.ConsoleLogger("WebRTCLogger",e.logLevel||amazonChimeSdkJs.LogLevel.INFO),this.deviceController=new amazonChimeSdkJs.DefaultDeviceController(this.logger),this.initObservers();}_initDom=()=>{this.$audio.id=`rs-rtc-${Y()}`,this.$dom.id=`rs-rtc-${Y()}`,this.$dom.appendChild(this.$audio),document.body.appendChild(this.$dom);};initObservers=()=>{this.deviceChangeObserver={audioInputsChanged:e=>{this.logger.info(`audioInputsChanged ${typeof e}`),e?.forEach(t=>{this.logger.info(`Device ID: ${t.deviceId} Microphone: ${t.label}`);});},audioOutputsChanged:e=>{this.logger.info(`audioOutputsChanged ${typeof e}`),e?.forEach(t=>{this.logger.info(`Device ID: ${t.deviceId} Speaker: ${t.label}`);});},audioInputMuteStateChanged:(e,t)=>{this.logger.info(`Device ${e.toString()} ${t?"is muted in hardware":"is not muted"}`);}},this.audioVideoObserver={audioVideoDidStart:()=>{this.logger.info("Started");},audioVideoDidStop:e=>{this.logger.info(`Stopped with a session status code: ${e.statusCode()}`);},audioVideoDidStartConnecting:e=>{e&&this.logger.info("Attempting to reconnect");}},this.audioMixObserver={meetingAudioStreamBecameActive:e=>{if(this.$audio.paused){let t=()=>this.$audio.play().then(()=>{}).catch(n=>{if(m.error("\u64AD\u653E\u8FDC\u7AEF\u6D41\u5931\u8D25\uFF01",n),typeof this._autoPlayConfirm=="function"){let r=()=>t();this._autoPlayConfirm({onConfirm:r});}});t();}},meetingAudioStreamBecameInactive:e=>{}};};async join(e){return new Promise(async(t,n)=>{this.emit("joinWillStart");try{let{sdkAppId:r,userId:s,roomId:o,userSig:c}=await this._getVoiceSign({...e,roomId:e.roomId||0});this.userId=s;let{attendence:a,vendor_wrapper:l}=JSON.parse(decodeURIComponent(c)),d=new amazonChimeSdkJs.MeetingSessionConfiguration({Meeting:l},{Attendee:{ExternalUserId:a.external_user_id,AttendeeId:a.attendee_id,JoinToken:a.join_token}});this.meetingSession=new amazonChimeSdkJs.DefaultMeetingSession(d,this.logger,this.deviceController),this._registerRtcEvent(),this.meetingSession.audioVideo.addDeviceChangeObserver(this.deviceChangeObserver),this.meetingSession.audioVideo.addObserver(this.audioVideoObserver),this.meetingSession.audioVideo.bindAudioElement(this.$audio);let f={audioVideoDidStart:()=>{this.meetingSession?.audioVideo.realtimeMuteLocalAudio(),this.joined=!0,this.emit("joined"),t(!0);},audioVideoDidStop:()=>{this.joined=!1,t(!1);}};this.meetingSession.audioVideo.addObserver(f),this.audioMixObserver&&this.meetingSession.audioVideo.addAudioMixObserver(this.audioMixObserver),this.meetingSession.audioVideo.setDeviceLabelTrigger(async()=>await navigator.mediaDevices.getUserMedia({audio:!0,video:!1}));try{let p=await this.meetingSession.audioVideo.listAudioInputDevices();m.info("audioInputDevices ===>",p);let g=p[0]?.deviceId||"default";await this.meetingSession.audioVideo.startAudioInput(g);}catch(p){m.error(`\u8BBE\u7F6E\u8BED\u97F3\u8F93\u5165\u8BBE\u5907\u5931\u8D25:${p.message}`);}try{let p=await this.meetingSession.audioVideo.listAudioOutputDevices();m.info("audioOutputDevices ===>",p);let g=p[0]?.deviceId||"default";await this.meetingSession.audioVideo.chooseAudioOutput(g);}catch(p){m.error(`\u8BBE\u7F6E\u8BED\u97F3\u8F93\u51FA\u8BBE\u5907\u5931\u8D25:${p.message}`);}this.meetingSession.audioVideo.start();}catch(r){this.emit("error",r),this.logger.error(r.message),t(!1);}})}_registerRtcEvent=()=>{let e=this.meetingSession?.configuration?.credentials?.attendeeId||"";if(e){let t=new Map,n=()=>{let r=[];return t.forEach((s,o)=>{r.push({userId:s.userId,volume:s.muted||s.signalStrength===0||!s.volume?0:s.volume});}),r};this.meetingSession?.audioVideo.realtimeSubscribeToAttendeeIdPresence((r,s,o)=>{if(!s){t.delete(r),this.emit("userVolumes",n());return}this.meetingSession?.audioVideo.realtimeSubscribeToVolumeIndicator(r,(c,a,l,d)=>{new amazonChimeSdkJs.DefaultModality(c).base()===c&&(t.set(c,{userId:o||c,volume:a,muted:l,signalStrength:d}),this.emit("userVolumes",n()));});}),this.meetingSession?.audioVideo.realtimeSubscribeToVolumeIndicator(e,(r,s,o,c)=>{new amazonChimeSdkJs.DefaultModality(r).base()===r&&c!==null&&c!==1&&this.emit("weakNetwork");}),this.meetingSession?.audioVideo.realtimeSubscribeToFatalError(r=>this.emit("error",r));}};quit(){return this.joined?new Promise((e,t)=>{this.joined=!1;let n={audioVideoDidStop:async r=>{let s=r.statusCode();this.meetingSession?.deviceController.destroy(),s===amazonChimeSdkJs.MeetingSessionStatusCode.Left?(this.logger.info("You left the session"),e(!0)):(this.logger.info(`Stopped with a session status code: ${s}`),e(!0));}};this.meetingSession?.audioVideo.addObserver(n),this.meetingSession?.audioVideo.stop();}):Promise.resolve(!0)}async detectMicro(){return new Promise(e=>{let t={audio:!0,video:!1};try{navigator.mediaDevices.getUserMedia(t).then(()=>e(!0)).catch(()=>e(!1));}catch(n){this.logger.error(n.message),e(!1);}})}async toggleMicro(e){e?this.meetingSession?.audioVideo.realtimeUnmuteLocalAudio():this.meetingSession?.audioVideo.realtimeMuteLocalAudio();let t=this.meetingSession?.audioVideo.realtimeIsLocalAudioMuted();return t!==void 0?e!==t:!1}shock(){throw new Error("Method not implemented.")}};var Kn=(s=>(s[s.Success=0]="Success",s[s.Failure=1]="Failure",s[s.ReJoin=2]="ReJoin",s[s.NoMicroPermission=3]="NoMicroPermission",s[s.Unknown=500]="Unknown",s))(Kn||{});var ue=class extends G{type="RealseeVRWebViewRTC";joined=!1;micro=!1;voiceId="";_joinOptions=null;options;get jsBridge(){return this.options.jsBridge}constructor({jsBridge:e,getVoiceSign:t}){super(),this.options={jsBridge:e,getVoiceSign:t},this.jsBridge.webViewType!=="WxMiniProgramWebView"&&this.jsBridge.callAndListen("live/userVolumes",this.handleUserVolumes),this.jsBridge.callAndListen("live/weakNetwork",this.handleWeakNetwork),this.on("inner.rtc.fail",this.handleJoinResult);}handleUserVolumes=e=>{this.emit("userVolumes",e);};handleWeakNetwork=e=>{e&&this.emit("weakNetwork");};join=async e=>{this._joinOptions=e,this.emit("joinWillStart");let{sdkAppId:t,userId:n,userSig:r}=await this.getVoiceSignOrEmitError(e);return !t||!n||!r?!1:(this.type=e.type,this.jsBridge.webViewType==="WxMiniProgramWebView"?this.handleWxMiniProgramWebViewJoin({sdkAppId:t,userId:n,userSig:r,voiceId:e.voiceId}):this.handleAppWebViewJoin({sdkAppId:t,userId:n,userSig:r,voiceId:e.voiceId}))};reJoin=async()=>this._joinOptions?this.join({voiceId:this._joinOptions.voiceId,userId:this._joinOptions.userId,roomId:this._joinOptions.roomId,type:this._joinOptions.type}):(this.emitErrorAndSetJoinedFalse("\u91CD\u8FDE\u5931\u8D25\uFF1A\u672A\u627E\u5230\u52A0\u5165\u623F\u95F4\u53C2\u6570\u3002"),!1);getVoiceSignOrEmitError=async e=>{try{return await this.options.getVoiceSign(e)}catch{return this.emitErrorAndSetJoinedFalse("\u52A0\u5165\u623F\u95F4\u5931\u8D25\uFF1Artc \u7B7E\u540D\u8BF7\u6C42\u5F02\u5E38"),{}}};handleWxMiniProgramWebViewJoin=async e=>{let[t,n]=await this.joinRoomOrEmitError(e);return n?!1:this.handleJoinResult(t)};handleAppWebViewJoin=e=>new Promise(t=>{this.off("inner.rtc.success");let n=r=>{this.off("inner.rtc.fail",n),this.off("inner.rtc.success",n),t(this.handleJoinResult(r));};this.once("inner.rtc.fail",n),this.once("inner.rtc.success",n);try{let{sdkAppId:r,userId:s,userSig:o,voiceId:c}=e;this.jsBridge.callAndListen(`live/join?sdkAppID=${r}&userID=${s}&roomID=${c}&userSig=${o}`,a=>{a===!0?this.emit("inner.rtc.success",a):typeof a=="object"?a.code===0||a.code===2?this.emit("inner.rtc.success",a):this.emit("inner.rtc.fail",a):this.emit("inner.rtc.fail",a);});}catch(r){t(this.handleJoinResult({message:r.message,code:500}));}});joinRoomOrEmitError=async({sdkAppId:e,userId:t,voiceId:n,userSig:r})=>{try{return await this.jsBridge.callAndBackfeed(`live/join?sdkAppID=${e}&userID=${t}&roomID=${Number(n)}&userSig=${r}`)}catch(s){return this.emitErrorAndSetJoinedFalse("\u52A0\u5165\u623F\u95F4\u5931\u8D25\uFF1A"+s.message),[null,s]}};handleJoinResult=e=>{switch(!0){case e===!0:case(typeof e=="object"&&e.code===0):case(typeof e=="object"&&e.code===2):{this.emit("joined"),this.joined=!0;break}default:{this.joined=!1;let t=typeof e=="object"?e.message:"\u52A0\u5165\u623F\u95F4\u5931\u8D25\uFF1A\u672A\u77E5\u5F02\u5E38\u3002";this.emit("error",new Error(t,{cause:e}));}}return this.joined};emitErrorAndSetJoinedFalse=e=>{this.emit("error",new Error(e)),this.joined=!1;};quit=async()=>{let[e,t]=await this.jsBridge.callAndBackfeed("live/quit");return e===null&&this.emit("error",t||new Error("\u9000\u51FA\u623F\u95F4\u5931\u8D25\uFF1A\u672A\u77E5\u5F02\u5E38\u3002")),this.joined=!1,!!e};detectMicro=async()=>{let[e,t]=await this.jsBridge.detectMicro();return e===null?(this.emit("error",t||new Error("\u9EA6\u514B\u98CE\u76D1\u6D4B\u5F02\u5E38\uFF01")),!1):e};toggleMicro=async e=>{let[t,n]=await this.jsBridge.callAndBackfeed(`live/toggleMicro?flag=${e?1:0}`);return t===null?(this.emit("error",n||new Error("\u9EA6\u514B\u98CE\u76D1\u6D4B\u5F02\u5E38\uFF01")),!1):(this.micro=t,t)};shock=()=>{this.jsBridge.shock(1);}};var Nn=(a=>(a.SelfUserInfo="SELF_USER_INFO",a.RoomInfo="ROOM_INFO",a.RTCInfo="RTC_INFO",a.UserList="USER_LIST",a.BuiltinMsg="BUILTIN_MSG",a.CustomEvent="CUSTOM_EVENT",a.KeyframeSync="KEYFRAME_SYNC",a.UserKickOut="USER_KICK_OUT",a))(Nn||{}),Bn=(t=>(t.UserChange="user_change",t.RoomChange="room_change",t))(Bn||{}),Pn=(o=>(o.UserMicroStatus="change_micro_status",o.UserMicroStatusSync="sync_micro_status",o.UserPermission="change_permission",o.UserStatus="change_status",o.UserInfo="change_info",o.RoomClose="close",o))(Pn||{}),jn=(t=>(t.OPEN="OPEN",t.CLOSE="CLOSE",t))(jn||{});function kr(i){try{let e=JSON.parse(i),t={code:e.code,message:e.message,command:e.command,roomCode:e.room_code,appID:e.app_id,requestId:e.request_id,frontRequestId:e.front_request_id,triggerUserID:e.trigger_user_id,data:e.data||{}},n=Object.keys(t).filter(r=>t[r]===void 0);return n.length>0&&console.warn(`\u63A8\u9001\u6570\u636E\u683C\u5F0F\u5F02\u5E38\uFF1A${n.join(" ")} \u503C\u4E0D\u5B58\u5728\uFF01`),t}catch{return !1}}var Wn=(r=>(r[r.NOTINITIALIZED=-1]="NOTINITIALIZED",r[r.CONNECTING=0]="CONNECTING",r[r.OPEN=1]="OPEN",r[r.CLOSED=3]="CLOSED",r))(Wn||{});var $n=(n=>(n[n.Normal=0]="Normal",n[n.Removed=1]="Removed",n[n.Replaced=2]="Replaced",n))($n||{}),Fn=(o=>(o.WAIT_ENTER="WAIT_ENTER",o.ONLINE="ONLINE",o.LEAVE="LEAVE",o.KICK_OUT="KICK_OUT",o.BE_REPLACE="BE_REPLACE",o.EXCEPTION="EXCEPTION",o))(Fn||{});var Jn=(s=>(s[s.NOTINITIALIZED=-1]="NOTINITIALIZED",s[s.CONNECTING=0]="CONNECTING",s[s.OPEN=1]="OPEN",s[s.CLOSING=2]="CLOSING",s[s.CLOSED=3]="CLOSED",s))(Jn||{}),Gn=(c=>(c.Error="Error",c.Close="Close",c.MicroAuth="MicroAuth",c.DuplicateConnect="DuplicateConnect",c.IllegalURL="IllegalURL",c.Unknown="Unknown",c.IllegalArgs="IllegalArgs",c))(Gn||{}),qn=(l=>(l.Err_1000="CLOSE_NORMAL",l.Err_1001="CLOSE_GOING_AWAY",l.Err_1002="CLOSE_PROTOCOL_ERROR",l.Err_1003="CLOSE_UNSUPPORTED",l.Err_1006="CLOSE_ABNORMAL",l.Err_1007="Unsupported Data",l.Err_1008="Policy Violation",l.Err_1009="CLOSE_TOO_LARGE",l.Err_unknown="unknown",l))(qn||{});function vt(i){switch(i){case 1e3:return "CLOSE_NORMAL";case 1001:return "CLOSE_GOING_AWAY";case 1002:return "CLOSE_PROTOCOL_ERROR";case 1003:return "CLOSE_UNSUPPORTED";case 1006:return "CLOSE_ABNORMAL";case 1007:return "Unsupported Data";case 1008:return "Policy Violation";case 1009:return "CLOSE_TOO_LARGE";}return "unknown"}function Ct(i,e={}){let t=new URL(i,"http://localhost"),n=new URLSearchParams(t.search);return Object.entries(e).forEach(([r,s])=>{n.append(r,String(s));}),i.split("?")[0]+"?"+n.toString()}var Et=(()=>{let i=typeof process<"u"&&process.versions?.node!=null;return typeof window<"u"&&"Deno"in window||i||typeof window>"u"})();var fe=Et?"":navigator.userAgent,It=/android/i.test(fe),Tt=/iPhone|iPad\s+OS/i.test(fe),Rt=/MicroMessenger/i.test(fe)&&/miniProgram/i.test(fe),Dt=/realsee/i.test(fe);function Ce(i){return Object.prototype.toString.call(i)==="[object Object]"}function Ee(i,e){return i===e?!0:i==null||e==null||typeof i!=typeof e?!1:Number.isNaN(i)&&Number.isNaN(e)}function Hn(i,e){if(i===e)return !0;if(i==null||e==null)return !1;let t=Object.keys(i),n=Object.keys(e);return t.length!==n.length?!1:t.every(r=>Ee(i[r],e[r]))}function zn(i,e){return i===e?!0:i==null||e==null||i.length!==e.length?!1:i.every((t,n)=>Ee(t,e[n]))}function Yn(i,e){return Ee(i,e)?!0:Ce(i)&&Ce(e)?Hn(i,e):Array.isArray(i)&&Array.isArray(e)?zn(i,e):!1}function Ge(i,e){return Ee(i,e)?!0:Ce(i)&&Ce(e)?Zn(i,e):Array.isArray(i)&&Array.isArray(e)?Xn(i,e):!1}function Xn(i,e){if(i.length!==e.length)return !1;for(let t=0,n=i.length;t<n;t++)if(!Ge(i[t],e[t]))return !1;return !0}function Zn(i,e){if(i===e)return !0;if(i==null||e==null)return !1;let t=Object.keys(i),n=Object.keys(e);return t.length!==n.length?!1:t.every(r=>Ge(i[r],e[r]))}function Ot(i,e,t={deep:!1}){return t.deep?Ge(i,e):Yn(i,e)}var Ie=class extends j{_realWebSocket;_url;_protocols;_readyState=-1;_options={timeout:1e4,shouldReconnect:(e,t)=>{if(!(e.code===1008||e.code===1011))return [0,1e3,2e3][t.attempts%3]},should1000Reconnect:!1,ignoreConnectivityEvents:!1,automaticOpen:!1};_connectTimeout;_attempts=0;_reconnects=-1;_reconnectWhenOnlineAgain=!1;_explicitlyClosed=!1;_pendingReconnect;_connectivityEventsAttached=!1;_heathCheckTimer;get attempts(){return this._attempts}constructor(e){super(),e&&this.setOptions(e),this._startHealthCheck();}setOptions(e){if(!e)return;this._url=e.url,this._protocols=e.protocols;let t=Object.assign(this._options,e.robustOptions||{});if(typeof t?.timeout!="number")throw new Error("timeout must be the number of milliseconds to timeout a connection attempt");if(typeof t?.shouldReconnect!="function")throw new Error("shouldReconnect must be a function that returns the number of milliseconds to wait for a reconnect attempt, or null or undefined to not reconnect.");this._options=t,this._options.automaticOpen&&this._createWebSocket();}_healthCheck=async()=>{if(this._realWebSocket){let e=this._realWebSocket.readyState;e!==this._readyState&&(this._readyState=e,this._readyState===2&&this.emit("closing"));}await new Promise(e=>setTimeout(e,2e3)),this._heathCheckTimer=requestAnimationFrame(this._healthCheck);};_clearConnectTimeoutIfNeed=()=>{this._connectTimeout&&(clearTimeout(this._connectTimeout),this._connectTimeout=void 0);};_clearHeathCheckIfNeed=()=>{this._heathCheckTimer&&(cancelAnimationFrame(this._heathCheckTimer),this._heathCheckTimer=void 0);};_startHealthCheck=()=>{this._clearHeathCheckIfNeed(),this._heathCheckTimer=requestAnimationFrame(this._healthCheck);};_stopHealthCheck=()=>{this._clearHeathCheckIfNeed();};_clearPendingReconnectIfNeeded=()=>{this._pendingReconnect&&(clearTimeout(this._pendingReconnect),this._pendingReconnect=void 0);};_online=e=>{this._reconnectWhenOnlineAgain&&(this._clearPendingReconnectIfNeeded(),this._reconnect(e));};_offline=()=>{this._reconnectWhenOnlineAgain=!0,this._realWebSocket?.close(1e3,"offline");};_detachConnectivityEvents=()=>{this._connectivityEventsAttached&&(globalThis?.removeEventListener("online",this._online),globalThis?.removeEventListener("offline",this._offline),this._connectivityEventsAttached=!1);};_attachConnectivityEvents=()=>{this._connectivityEventsAttached||(globalThis?.addEventListener("online",this._online),globalThis?.addEventListener("offline",this._offline),this._connectivityEventsAttached=!0);};send=e=>{this._realWebSocket?.readyState===this._realWebSocket?.OPEN&&this._realWebSocket?.send(e);};close=(e,t)=>(typeof e!="number"&&(t=e,e=1e3),this._clearPendingReconnectIfNeeded(),this._reconnectWhenOnlineAgain=!1,this._explicitlyClosed=!0,this._detachConnectivityEvents(),this._realWebSocket?.close(e,t));open=e=>{e&&(this._url=e),this._realWebSocket?.readyState!==WebSocket.OPEN&&this._realWebSocket?.readyState!==WebSocket.CONNECTING&&(this._clearPendingReconnectIfNeeded(),this._reconnectWhenOnlineAgain=!1,this._explicitlyClosed=!1,this._createWebSocket());};_createWebSocket=()=>{let e=typeof this._url=="string"?this._url:this._url?.(this);if(!e)return;this._clearConnectTimeoutIfNeed(),this._clearPendingReconnectIfNeeded(),this._removeWebSocketEvent(),this._realWebSocket=new WebSocket(e,this._protocols||void 0),this._attempts++,this.emit("connecting",new CustomEvent("connecting",{detail:{attempts:this._attempts,reconnects:this._reconnects}}));let t=()=>{this._connectTimeout=void 0,this._detachConnectivityEvents(),this.emit("timeout",new CustomEvent("timeout",{detail:{attempts:this._attempts,reconnects:this._reconnects}}));};this._connectTimeout=setTimeout(t,this._options.timeout),this._dispatchWebSocketEvent(),this._options.ignoreConnectivityEvents||this._attachConnectivityEvents();};_removeWebSocketEvent=()=>{this._realWebSocket?.removeEventListener("open",this._webSocketOpenHandler),this._realWebSocket?.removeEventListener("close",this._webSocketCloseHandler),this._realWebSocket?.removeEventListener("error",this._webSocketErrorHandler),this._realWebSocket?.removeEventListener("message",this._webSocketMessageHandler);};_dispatchWebSocketEvent=()=>{this._realWebSocket?.addEventListener("open",this._webSocketOpenHandler),this._realWebSocket?.addEventListener("close",this._webSocketCloseHandler),this._realWebSocket?.addEventListener("error",this._webSocketErrorHandler),this._realWebSocket?.addEventListener("message",this._webSocketMessageHandler);};_webSocketOpenHandler=e=>{this._connectTimeout&&(clearTimeout(this._connectTimeout),this._connectTimeout=void 0);let t=++this._reconnects,n=this._attempts;return this._attempts=0,this._reconnectWhenOnlineAgain=!1,this._startHealthCheck(),this.emit("open",Object.assign(e,{detail:{reconnects:t,attempts:n}}))};_webSocketCloseHandler=e=>(this._reconnect(e),this._stopHealthCheck(),this.emit("close",e));_webSocketErrorHandler=e=>this.emit("error",new CustomEvent("error",{detail:{error:e}}));_webSocketMessageHandler=e=>this.emit("message",e);_reconnect(e){if(!this._options.should1000Reconnect&&e.code===1e3||this._explicitlyClosed){this._attempts=0;return}if(this._connectivityEventsAttached&&globalThis?.navigator?.onLine===!1){this._reconnectWhenOnlineAgain=!0;return}let r=this._options.shouldReconnect?.(e,this);typeof r=="number"?(console.log(`Reconnecting in ${r}ms...`),this._pendingReconnect=setTimeout(this._createWebSocket,r)):console.log("No reconnection will be attempted.");}};var Te=class extends j{_ws=new Ie({url:"",robustOptions:{should1000Reconnect:!0,ignoreConnectivityEvents:!0}});_state=-1;set state(e){let t=JSON.parse(JSON.stringify(this._state));this._state=e,this.emit("stateChange",this.state,t);}get state(){return this._state}constructor(){super(),this._addWebSocketEventListeners();}_addWebSocketEventListeners=()=>{this._ws.on("close",this._handleCloseEvent),this._ws.on("closing",this._handleClosingEvent),this._ws.on("connecting",this._handleConnectingEvent),this._ws.on("error",this._handleErrorEvent),this._ws.on("message",this._handleMessageEvent),this._ws.on("open",this._handleOpenEvent),this._ws.on("timeout",this._handleTimeoutEvent);};_removeWebSocketEventListeners=()=>{this._ws.off("close",this._handleCloseEvent),this._ws.off("closing",this._handleClosingEvent),this._ws.off("connecting",this._handleConnectingEvent),this._ws.off("error",this._handleErrorEvent),this._ws.off("message",this._handleMessageEvent),this._ws.off("open",this._handleOpenEvent),this._ws.off("timeout",this._handleTimeoutEvent);};_handleCloseEvent=e=>{m.info(`live room closed bacause of ${e.code}-${e.reason||vt(e.code)}`),this.state=3;};_handleClosingEvent=()=>{m.info("live room is closing, onLine:",globalThis?.navigator?.onLine),this.state=3;};_handleConnectingEvent=e=>{m.info("live room is connecting"),this.state=0,e.detail.reconnects>0&&this.emit("reconnecting",e.detail);};_handleErrorEvent=e=>{m.error("live room error",e),this.state=3;};_handleMessageEvent=e=>{let t=(()=>{try{return JSON.parse(e.data)}catch{return e.data}})();this.emit("message",t);};_handleOpenEvent=e=>{m.info("live room open",e.detail),this.state=1,e.detail.reconnects>0&&this.emit("reconnected",e.detail);};_handleTimeoutEvent=e=>{m.error("live room connect timeout!",e.detail),this.state=3;};dispose=async()=>(this._removeWebSocketEventListeners(),await this.close("live room close by controller disposed!"));open=e=>this._ws.open(e);close=(e,t)=>new Promise(n=>{this._ws.once("close",()=>n(!0)),this._ws.close(e,t);});sendMessage(e=""){if(e==null)throw new Error("live message is empty!");if(this.state!==1)throw new Error("live has not yet been initialized!");return this._ws.send(JSON.stringify(e))}readyClose(){this._ws&&(this._ws._explicitlyClosed=!0);}};var Ye=class{constructor(e,t){this.clock=e,this.len=t;}},Le=class{constructor(){this.clients=new Map;}},Wt=(i,e,t)=>e.clients.forEach((n,r)=>{let s=i.doc.store.clients.get(r);for(let o=0;o<n.length;o++){let c=n[o];zt(i,s,c.clock,c.len,t);}}),ri=(i,e)=>{let t=0,n=i.length-1;for(;t<=n;){let r=x__namespace.floor((t+n)/2),s=i[r],o=s.clock;if(o<=e){if(e<o+s.len)return r;t=r+1;}else n=r-1;}return null},$t=(i,e)=>{let t=i.clients.get(e.client);return t!==void 0&&ri(t,e.clock)!==null},Ft=i=>{i.clients.forEach(e=>{e.sort((r,s)=>r.clock-s.clock);let t,n;for(t=1,n=1;t<e.length;t++){let r=e[n-1],s=e[t];r.clock+r.len>=s.clock?r.len=x__namespace.max(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++);}e.length=n;});};var Jt=(i,e,t,n)=>{M__namespace.setIfUndefined(i.clients,e,()=>[]).push(new Ye(t,n));};var oi=(i,e)=>{u__namespace.writeVarUint(i.restEncoder,e.clients.size),N__namespace.from(e.clients.entries()).sort((t,n)=>n[0]-t[0]).forEach(([t,n])=>{i.resetDsCurVal(),u__namespace.writeVarUint(i.restEncoder,t);let r=n.length;u__namespace.writeVarUint(i.restEncoder,r);for(let s=0;s<r;s++){let o=n[s];i.writeDsClock(o.clock),i.writeDsLen(o.len);}});};var Gt=Be__namespace.uint32,te=class i extends observable.ObservableV2{constructor({guid:e=Be__namespace.uuidv4(),collectionid:t=null,gc:n=!0,gcFilter:r=()=>!0,meta:s=null,autoLoad:o=!1,shouldLoad:c=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=Gt(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new rt,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=c,this.autoLoad=o,this.meta=s,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=ze__namespace.create(l=>{this.on("load",()=>{this.isLoaded=!0,l(this);});});let a=()=>ze__namespace.create(l=>{let d=f=>{(f===void 0||f===!0)&&(this.off("sync",d),l());};this.on("sync",d);});this.on("sync",l=>{l===!1&&this.isSynced&&(this.whenSynced=a()),this.isSynced=l===void 0||l===!0,this.isSynced&&!this.isLoaded&&this.emit("load",[this]);}),this.whenSynced=a();}load(){let e=this._item;e!==null&&!this.shouldLoad&&b(e.parent.doc,t=>{t.subdocsLoaded.add(this);},null,!0),this.shouldLoad=!0;}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(N__namespace.from(this.subdocs).map(e=>e.guid))}transact(e,t=null){return b(this,e,t)}get(e,t=T){let n=M__namespace.setIfUndefined(this.share,e,()=>{let s=new t;return s._integrate(this,null),s}),r=n.constructor;if(t!==T&&r!==t)if(r===T){let s=new t;s._map=n._map,n._map.forEach(o=>{for(;o!==null;o=o.left)o.parent=s;}),s._start=n._start;for(let o=s._start;o!==null;o=o.right)o.parent=s;return s._length=n._length,this.share.set(e,s),s._integrate(this,null),s}else throw new Error(`Type with the name ${e} has already been defined with a different constructor`);return n}getArray(e=""){return this.get(e,lt)}getText(e=""){return this.get(e,ft)}getMap(e=""){return this.get(e,ht)}getXmlElement(e=""){return this.get(e,xe)}getXmlFragment(e=""){return this.get(e,_e)}toJSON(){let e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON();}),e}destroy(){this.isDestroyed=!0,N__namespace.from(this.subdocs).forEach(t=>t.destroy());let e=this._item;if(e!==null){this._item=null;let t=e.content;t.doc=new i({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,b(e.parent.doc,n=>{let r=t.doc;e.deleted||n.subdocsAdded.add(r),n.subdocsRemoved.add(this);},null,!0);}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy();}};var Xe=class{constructor(){this.restEncoder=u__namespace.createEncoder();}toUint8Array(){return u__namespace.toUint8Array(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){u__namespace.writeVarUint(this.restEncoder,e);}writeDsLen(e){u__namespace.writeVarUint(this.restEncoder,e);}},Ze=class extends Xe{writeLeftID(e){u__namespace.writeVarUint(this.restEncoder,e.client),u__namespace.writeVarUint(this.restEncoder,e.clock);}writeRightID(e){u__namespace.writeVarUint(this.restEncoder,e.client),u__namespace.writeVarUint(this.restEncoder,e.clock);}writeClient(e){u__namespace.writeVarUint(this.restEncoder,e);}writeInfo(e){u__namespace.writeUint8(this.restEncoder,e);}writeString(e){u__namespace.writeVarString(this.restEncoder,e);}writeParentInfo(e){u__namespace.writeVarUint(this.restEncoder,e?1:0);}writeTypeRef(e){u__namespace.writeVarUint(this.restEncoder,e);}writeLen(e){u__namespace.writeVarUint(this.restEncoder,e);}writeAny(e){u__namespace.writeAny(this.restEncoder,e);}writeBuf(e){u__namespace.writeVarUint8Array(this.restEncoder,e);}writeJSON(e){u__namespace.writeVarString(this.restEncoder,JSON.stringify(e));}writeKey(e){u__namespace.writeVarString(this.restEncoder,e);}},Qe=class{constructor(){this.restEncoder=u__namespace.createEncoder(),this.dsCurrVal=0;}toUint8Array(){return u__namespace.toUint8Array(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0;}writeDsClock(e){let t=e-this.dsCurrVal;this.dsCurrVal=e,u__namespace.writeVarUint(this.restEncoder,t);}writeDsLen(e){e===0&&k__namespace.unexpectedCase(),u__namespace.writeVarUint(this.restEncoder,e-1),this.dsCurrVal+=e;}},et=class extends Qe{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new u__namespace.IntDiffOptRleEncoder,this.clientEncoder=new u__namespace.UintOptRleEncoder,this.leftClockEncoder=new u__namespace.IntDiffOptRleEncoder,this.rightClockEncoder=new u__namespace.IntDiffOptRleEncoder,this.infoEncoder=new u__namespace.RleEncoder(u__namespace.writeUint8),this.stringEncoder=new u__namespace.StringEncoder,this.parentInfoEncoder=new u__namespace.RleEncoder(u__namespace.writeUint8),this.typeRefEncoder=new u__namespace.UintOptRleEncoder,this.lenEncoder=new u__namespace.UintOptRleEncoder;}toUint8Array(){let e=u__namespace.createEncoder();return u__namespace.writeVarUint(e,0),u__namespace.writeVarUint8Array(e,this.keyClockEncoder.toUint8Array()),u__namespace.writeVarUint8Array(e,this.clientEncoder.toUint8Array()),u__namespace.writeVarUint8Array(e,this.leftClockEncoder.toUint8Array()),u__namespace.writeVarUint8Array(e,this.rightClockEncoder.toUint8Array()),u__namespace.writeVarUint8Array(e,u__namespace.toUint8Array(this.infoEncoder)),u__namespace.writeVarUint8Array(e,this.stringEncoder.toUint8Array()),u__namespace.writeVarUint8Array(e,u__namespace.toUint8Array(this.parentInfoEncoder)),u__namespace.writeVarUint8Array(e,this.typeRefEncoder.toUint8Array()),u__namespace.writeVarUint8Array(e,this.lenEncoder.toUint8Array()),u__namespace.writeUint8Array(e,u__namespace.toUint8Array(this.restEncoder)),u__namespace.toUint8Array(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock);}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock);}writeClient(e){this.clientEncoder.write(e);}writeInfo(e){this.infoEncoder.write(e);}writeString(e){this.stringEncoder.write(e);}writeParentInfo(e){this.parentInfoEncoder.write(e?1:0);}writeTypeRef(e){this.typeRefEncoder.write(e);}writeLen(e){this.lenEncoder.write(e);}writeAny(e){u__namespace.writeAny(this.restEncoder,e);}writeBuf(e){u__namespace.writeVarUint8Array(this.restEncoder,e);}writeJSON(e){u__namespace.writeAny(this.restEncoder,e);}writeKey(e){let t=this.keyMap.get(e);t===void 0?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t);}},ci=(i,e,t,n)=>{n=x__namespace.max(n,e[0].id.clock);let r=q(e,n);u__namespace.writeVarUint(i.restEncoder,e.length-r),i.writeClient(t),u__namespace.writeVarUint(i.restEncoder,n);let s=e[r];s.write(i,n-s.id.clock);for(let o=r+1;o<e.length;o++)e[o].write(i,0);},ai=(i,e,t)=>{let n=new Map;t.forEach((r,s)=>{K(e,s)>r&&n.set(s,r);}),yt(e).forEach((r,s)=>{t.has(s)||n.set(s,0);}),u__namespace.writeVarUint(i.restEncoder,n.size),N__namespace.from(n.entries()).sort((r,s)=>s[0]-r[0]).forEach(([r,s])=>{ci(i,e.clients.get(r),r,s);});};var li=(i,e)=>ai(i,e.doc.store,e.beforeState);var tt=class{constructor(){this.l=[];}},Ut=()=>new tt,Lt=(i,e)=>i.l.push(e),Vt=(i,e)=>{let t=i.l,n=t.length;i.l=t.filter(r=>e!==r),n===i.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.");},qt=(i,e,t)=>mt__namespace.callAll(i.l,[e,t]),se=class{constructor(e,t){this.client=e,this.clock=t;}},Re=(i,e)=>i===e||i!==null&&e!==null&&i.client===e.client&&i.clock===e.clock,v=(i,e)=>new se(i,e);var di=i=>{for(let[e,t]of i.doc.share.entries())if(t===i)return e;throw k__namespace.unexpectedCase()};var ie=(i,e)=>e===void 0?!i.deleted:e.sv.has(i.id.client)&&(e.sv.get(i.id.client)||0)>i.id.clock&&!$t(e.ds,i.id),it=(i,e)=>{let t=M__namespace.setIfUndefined(i.meta,it,pe__namespace.create),n=i.doc.store;t.has(e)||(e.sv.forEach((r,s)=>{r<K(n,s)&&Z(i,v(s,r));}),Wt(i,e.ds,r=>{}),t.add(e));};var rt=class{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null;}},yt=i=>{let e=new Map;return i.clients.forEach((t,n)=>{let r=t[t.length-1];e.set(n,r.id.clock+r.length);}),e},K=(i,e)=>{let t=i.clients.get(e);if(t===void 0)return 0;let n=t[t.length-1];return n.id.clock+n.length},Ht=(i,e)=>{let t=i.clients.get(e.id.client);if(t===void 0)t=[],i.clients.set(e.id.client,t);else {let n=t[t.length-1];if(n.id.clock+n.length!==e.id.clock)throw k__namespace.unexpectedCase()}t.push(e);},q=(i,e)=>{let t=0,n=i.length-1,r=i[n],s=r.id.clock;if(s===e)return n;let o=x__namespace.floor(e/(s+r.length-1)*n);for(;t<=n;){if(r=i[o],s=r.id.clock,s<=e){if(e<s+r.length)return o;t=o+1;}else n=o-1;o=x__namespace.floor((t+n)/2);}throw k__namespace.unexpectedCase()},ui=(i,e)=>{let t=i.clients.get(e.client);return t[q(t,e.clock)]},qe=ui,st=(i,e,t)=>{let n=q(e,t),r=e[n];return r.id.clock<t&&r instanceof A?(e.splice(n+1,0,fn(i,r,t-r.id.clock)),n+1):n},Z=(i,e)=>{let t=i.doc.store.clients.get(e.client);return t[st(i,t,e.clock)]},At=(i,e,t)=>{let n=e.clients.get(t.client),r=q(n,t.clock),s=n[r];return t.clock!==s.id.clock+s.length-1&&s.constructor!==$&&n.splice(r+1,0,fn(i,s,t.clock-s.id.clock+1)),s},fi=(i,e,t)=>{let n=i.clients.get(e.id.client);n[q(n,e.id.clock)]=t;},zt=(i,e,t,n,r)=>{if(n===0)return;let s=t+n,o=st(i,e,t),c;do c=e[o++],s<c.id.clock+c.length&&st(i,e,s),r(c);while(o<e.length&&e[o].id.clock<s)},ot=class{constructor(e,t,n){this.doc=e,this.deleteSet=new Le,this.beforeState=yt(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1;}},xt=(i,e)=>e.deleteSet.clients.size===0&&!M__namespace.any(e.afterState,(t,n)=>e.beforeState.get(n)!==t)?!1:(Ft(e.deleteSet),li(i,e),oi(i,e.deleteSet),!0),Mt=(i,e,t)=>{let n=e._item;(n===null||n.id.clock<(i.beforeState.get(n.id.client)||0)&&!n.deleted)&&M__namespace.setIfUndefined(i.changed,e,pe__namespace.create).add(t);},Ue=(i,e)=>{let t=i[e],n=i[e-1],r=e;for(;r>0;t=n,n=i[--r-1]){if(n.deleted===t.deleted&&n.constructor===t.constructor&&n.mergeWith(t)){t instanceof A&&t.parentSub!==null&&t.parent._map.get(t.parentSub)===t&&t.parent._map.set(t.parentSub,n);continue}break}let s=e-r;return s&&i.splice(e+1-s,s),s},gi=(i,e,t)=>{for(let[n,r]of i.clients.entries()){let s=e.clients.get(n);for(let o=r.length-1;o>=0;o--){let c=r[o],a=c.clock+c.len;for(let l=q(s,c.clock),d=s[l];l<s.length&&d.id.clock<a;d=s[++l]){let f=s[l];if(c.clock+c.len<=f.id.clock)break;f instanceof A&&f.deleted&&!f.keep&&t(f)&&f.gc(e,!1);}}}},pi=(i,e)=>{i.clients.forEach((t,n)=>{let r=e.clients.get(n);for(let s=t.length-1;s>=0;s--){let o=t[s],c=x__namespace.min(r.length-1,1+q(r,o.clock+o.len-1));for(let a=c,l=r[a];a>0&&l.id.clock>=o.clock;l=r[a])a-=1+Ue(r,a);}});};var Yt=(i,e)=>{if(e<i.length){let t=i[e],n=t.doc,r=n.store,s=t.deleteSet,o=t._mergeStructs;try{Ft(s),t.afterState=yt(t.doc.store),n.emit("beforeObserverCalls",[t,n]);let c=[];t.changed.forEach((a,l)=>c.push(()=>{(l._item===null||!l._item.deleted)&&l._callObserver(t,a);})),c.push(()=>{t.changedParentTypes.forEach((a,l)=>{l._dEH.l.length>0&&(l._item===null||!l._item.deleted)&&(a=a.filter(d=>d.target._item===null||!d.target._item.deleted),a.forEach(d=>{d.currentTarget=l,d._path=null;}),a.sort((d,f)=>d.path.length-f.path.length),qt(l._dEH,a,t));});}),c.push(()=>n.emit("afterTransaction",[t,n])),mt.callAll(c,[]),t._needFormattingCleanup&&Ci(t);}finally{n.gc&&gi(s,r,n.gcFilter),pi(s,r),t.afterState.forEach((d,f)=>{let p=t.beforeState.get(f)||0;if(p!==d){let g=r.clients.get(f),w=x__namespace.max(q(g,p),1);for(let R=g.length-1;R>=w;)R-=1+Ue(g,R);}});for(let d=o.length-1;d>=0;d--){let{client:f,clock:p}=o[d].id,g=r.clients.get(f),w=q(g,p);w+1<g.length&&Ue(g,w+1)>1||w>0&&Ue(g,w);}if(!t.local&&t.afterState.get(n.clientID)!==t.beforeState.get(n.clientID)&&(P__namespace.print(P__namespace.ORANGE,P__namespace.BOLD,"[yjs] ",P__namespace.UNBOLD,P__namespace.RED,"Changed the client-id because another client seems to be using it."),n.clientID=Gt()),n.emit("afterTransactionCleanup",[t,n]),n._observers.has("update")){let d=new Ze;xt(d,t)&&n.emit("update",[d.toUint8Array(),t.origin,n,t]);}if(n._observers.has("updateV2")){let d=new et;xt(d,t)&&n.emit("updateV2",[d.toUint8Array(),t.origin,n,t]);}let{subdocsAdded:c,subdocsLoaded:a,subdocsRemoved:l}=t;(c.size>0||l.size>0||a.size>0)&&(c.forEach(d=>{d.clientID=n.clientID,d.collectionid==null&&(d.collectionid=n.collectionid),n.subdocs.add(d);}),l.forEach(d=>n.subdocs.delete(d)),n.emit("subdocs",[{loaded:a,added:c,removed:l},n,t]),l.forEach(d=>d.destroy())),i.length<=e+1?(n._transactionCleanups=[],n.emit("afterAllTransactions",[n,i])):Yt(i,e+1);}}},b=(i,e,t=null,n=!0)=>{let r=i._transactionCleanups,s=!1,o=null;i._transaction===null&&(s=!0,i._transaction=new ot(i,t,n),r.push(i._transaction),r.length===1&&i.emit("beforeAllTransactions",[i]),i.emit("beforeTransaction",[i._transaction,i]));try{o=e(i._transaction);}finally{if(s){let c=i._transaction===r[0];i._transaction=null,c&&Yt(r,0);}}return o};var Kt="You must not compute changes after the event-handler fired.",oe=class{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null;}get path(){return this._path||(this._path=mi(this.currentTarget,this.target))}deletes(e){return $t(this.transaction.deleteSet,e.id)}get keys(){if(this._keys===null){if(this.transaction.doc._transactionCleanups.length===0)throw k__namespace.create(Kt);let e=new Map,t=this.target;this.transaction.changed.get(t).forEach(r=>{if(r!==null){let s=t._map.get(r),o,c;if(this.adds(s)){let a=s.left;for(;a!==null&&this.adds(a);)a=a.left;if(this.deletes(s))if(a!==null&&this.deletes(a))o="delete",c=N__namespace.last(a.content.getContent());else return;else a!==null&&this.deletes(a)?(o="update",c=N__namespace.last(a.content.getContent())):(o="add",c=void 0);}else if(this.deletes(s))o="delete",c=N__namespace.last(s.content.getContent());else return;e.set(r,{action:o,oldValue:c});}}),this._keys=e;}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(e===null){if(this.transaction.doc._transactionCleanups.length===0)throw k__namespace.create(Kt);let t=this.target,n=pe__namespace.create(),r=pe__namespace.create(),s=[];if(e={added:n,deleted:r,delta:s,keys:this.keys},this.transaction.changed.get(t).has(null)){let c=null,a=()=>{c&&s.push(c);};for(let l=t._start;l!==null;l=l.right)l.deleted?this.deletes(l)&&!this.adds(l)&&((c===null||c.delete===void 0)&&(a(),c={delete:0}),c.delete+=l.length,r.add(l)):this.adds(l)?((c===null||c.insert===void 0)&&(a(),c={insert:[]}),c.insert=c.insert.concat(l.content.getContent()),n.add(l)):((c===null||c.retain===void 0)&&(a(),c={retain:0}),c.retain+=l.length);c!==null&&c.retain===void 0&&a();}this._changes=e;}return e}},mi=(i,e)=>{let t=[];for(;e._item!==null&&e!==i;){if(e._item.parentSub!==null)t.unshift(e._item.parentSub);else {let n=0,r=e._item.parent._start;for(;r!==e._item&&r!==null;)!r.deleted&&r.countable&&(n+=r.length),r=r.right;t.unshift(n);}e=e._item.parent;}return t},V=()=>{P__namespace.warn("Invalid access: Add Yjs type to a document before reading data.");},Xt=80,wt=0,ct=class{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=wt++;}},yi=i=>{i.timestamp=wt++;},Zt=(i,e,t)=>{i.p.marker=!1,i.p=e,e.marker=!0,i.index=t,i.timestamp=wt++;},wi=(i,e,t)=>{if(i.length>=Xt){let n=i.reduce((r,s)=>r.timestamp<s.timestamp?r:s);return Zt(n,e,t),n}else {let n=new ct(e,t);return i.push(n),n}},Pe=(i,e)=>{if(i._start===null||e===0||i._searchMarker===null)return null;let t=i._searchMarker.length===0?null:i._searchMarker.reduce((s,o)=>x__namespace.abs(e-s.index)<x__namespace.abs(e-o.index)?s:o),n=i._start,r=0;for(t!==null&&(n=t.p,r=t.index,yi(t));n.right!==null&&r<e;){if(!n.deleted&&n.countable){if(e<r+n.length)break;r+=n.length;}n=n.right;}for(;n.left!==null&&r>e;)n=n.left,!n.deleted&&n.countable&&(r-=n.length);for(;n.left!==null&&n.left.id.client===n.id.client&&n.left.id.clock+n.left.length===n.id.clock;)n=n.left,!n.deleted&&n.countable&&(r-=n.length);return t!==null&&x__namespace.abs(t.index-r)<n.parent.length/Xt?(Zt(t,n,r),t):wi(i._searchMarker,n,r)},me=(i,e,t)=>{for(let n=i.length-1;n>=0;n--){let r=i[n];if(t>0){let s=r.p;for(s.marker=!1;s&&(s.deleted||!s.countable);)s=s.left,s&&!s.deleted&&s.countable&&(r.index-=s.length);if(s===null||s.marker===!0){i.splice(n,1);continue}r.p=s,s.marker=!0;}(e<r.index||t>0&&e===r.index)&&(r.index=x__namespace.max(e,r.index+t));}};var je=(i,e,t)=>{let n=i,r=e.changedParentTypes;for(;M__namespace.setIfUndefined(r,i,()=>[]).push(t),i._item!==null;)i=i._item.parent;qt(n._eH,t,e);},T=class{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=Ut(),this._dEH=Ut(),this._searchMarker=null;}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t;}_copy(){throw k__namespace.methodUnimplemented()}clone(){throw k__namespace.methodUnimplemented()}_write(e){}get _first(){let e=this._start;for(;e!==null&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0);}observe(e){Lt(this._eH,e);}observeDeep(e){Lt(this._dEH,e);}unobserve(e){Vt(this._eH,e);}unobserveDeep(e){Vt(this._dEH,e);}toJSON(){}},Qt=(i,e,t)=>{i.doc??V(),e<0&&(e=i._length+e),t<0&&(t=i._length+t);let n=t-e,r=[],s=i._start;for(;s!==null&&n>0;){if(s.countable&&!s.deleted){let o=s.content.getContent();if(o.length<=e)e-=o.length;else {for(let c=e;c<o.length&&n>0;c++)r.push(o[c]),n--;e=0;}}s=s.right;}return r},en=i=>{i.doc??V();let e=[],t=i._start;for(;t!==null;){if(t.countable&&!t.deleted){let n=t.content.getContent();for(let r=0;r<n.length;r++)e.push(n[r]);}t=t.right;}return e};var ye=(i,e)=>{let t=0,n=i._start;for(i.doc??V();n!==null;){if(n.countable&&!n.deleted){let r=n.content.getContent();for(let s=0;s<r.length;s++)e(r[s],t++,i);}n=n.right;}},tn=(i,e)=>{let t=[];return ye(i,(n,r)=>{t.push(e(n,r,i));}),t},_i=i=>{let e=i._start,t=null,n=0;return {[Symbol.iterator](){return this},next:()=>{if(t===null){for(;e!==null&&e.deleted;)e=e.right;if(e===null)return {done:!0,value:void 0};t=e.content.getContent(),n=0,e=e.right;}let r=t[n++];return t.length<=n&&(t=null),{done:!1,value:r}}}},nn=(i,e)=>{i.doc??V();let t=Pe(i,e),n=i._start;for(t!==null&&(n=t.p,e-=t.index);n!==null;n=n.right)if(!n.deleted&&n.countable){if(e<n.length)return n.content.getContent()[e];e-=n.length;}},Ve=(i,e,t,n)=>{let r=t,s=i.doc,o=s.clientID,c=s.store,a=t===null?e._start:t.right,l=[],d=()=>{l.length>0&&(r=new A(v(o,K(c,o)),r,r&&r.lastId,a,a&&a.id,e,null,new be(l)),r.integrate(i,0),l=[]);};n.forEach(f=>{if(f===null)l.push(f);else switch(f.constructor){case Number:case Object:case Boolean:case Array:case String:l.push(f);break;default:switch(d(),f.constructor){case Uint8Array:case ArrayBuffer:r=new A(v(o,K(c,o)),r,r&&r.lastId,a,a&&a.id,e,null,new Ke(new Uint8Array(f))),r.integrate(i,0);break;case te:r=new A(v(o,K(c,o)),r,r&&r.lastId,a,a&&a.id,e,null,new Ne(f)),r.integrate(i,0);break;default:if(f instanceof T)r=new A(v(o,K(c,o)),r,r&&r.lastId,a,a&&a.id,e,null,new ee(f)),r.integrate(i,0);else throw new Error("Unexpected content type in insert operation")}}}),d();},rn=()=>k__namespace.create("Length exceeded!"),sn=(i,e,t,n)=>{if(t>e._length)throw rn();if(t===0)return e._searchMarker&&me(e._searchMarker,t,n.length),Ve(i,e,null,n);let r=t,s=Pe(e,t),o=e._start;for(s!==null&&(o=s.p,t-=s.index,t===0&&(o=o.prev,t+=o&&o.countable&&!o.deleted?o.length:0));o!==null;o=o.right)if(!o.deleted&&o.countable){if(t<=o.length){t<o.length&&Z(i,v(o.id.client,o.id.clock+t));break}t-=o.length;}return e._searchMarker&&me(e._searchMarker,r,n.length),Ve(i,e,o,n)},bi=(i,e,t)=>{let r=(e._searchMarker||[]).reduce((s,o)=>o.index>s.index?o:s,{index:0,p:e._start}).p;if(r)for(;r.right;)r=r.right;return Ve(i,e,r,t)},on=(i,e,t,n)=>{if(n===0)return;let r=t,s=n,o=Pe(e,t),c=e._start;for(o!==null&&(c=o.p,t-=o.index);c!==null&&t>0;c=c.right)!c.deleted&&c.countable&&(t<c.length&&Z(i,v(c.id.client,c.id.clock+t)),t-=c.length);for(;n>0&&c!==null;)c.deleted||(n<c.length&&Z(i,v(c.id.client,c.id.clock+n)),c.delete(i),n-=c.length),c=c.right;if(n>0)throw rn();e._searchMarker&&me(e._searchMarker,r,-s+n);},Ae=(i,e,t)=>{let n=e._map.get(t);n!==void 0&&n.delete(i);},_t=(i,e,t,n)=>{let r=e._map.get(t)||null,s=i.doc,o=s.clientID,c;if(n==null)c=new be([n]);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:c=new be([n]);break;case Uint8Array:c=new Ke(n);break;case te:c=new Ne(n);break;default:if(n instanceof T)c=new ee(n);else throw new Error("Unexpected content type")}new A(v(o,K(s.store,o)),r,r&&r.lastId,null,null,e,t,c).integrate(i,0);},bt=(i,e)=>{i.doc??V();let t=i._map.get(e);return t!==void 0&&!t.deleted?t.content.getContent()[t.length-1]:void 0},cn=i=>{let e={};return i.doc??V(),i._map.forEach((t,n)=>{t.deleted||(e[n]=t.content.getContent()[t.length-1]);}),e},an=(i,e)=>{i.doc??V();let t=i._map.get(e);return t!==void 0&&!t.deleted};var Si=(i,e)=>{let t={};return i._map.forEach((n,r)=>{let s=n;for(;s!==null&&(!e.sv.has(s.id.client)||s.id.clock>=(e.sv.get(s.id.client)||0));)s=s.left;s!==null&&ie(s,e)&&(t[r]=s.content.getContent()[s.length-1]);}),t},De=i=>(i.doc??V(),re__namespace.iteratorFilter(i._map.entries(),e=>!e[1].deleted)),at=class extends oe{},lt=class i extends T{constructor(){super(),this._prelimContent=[],this._searchMarker=[];}static from(e){let t=new i;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null;}_copy(){return new i}clone(){let e=new i;return e.insert(0,this.toArray().map(t=>t instanceof T?t.clone():t)),e}get length(){return this.doc??V(),this._length}_callObserver(e,t){super._callObserver(e,t),je(this,e,new at(this,e));}insert(e,t){this.doc!==null?b(this.doc,n=>{sn(n,this,e,t);}):this._prelimContent.splice(e,0,...t);}push(e){this.doc!==null?b(this.doc,t=>{bi(t,this,e);}):this._prelimContent.push(...e);}unshift(e){this.insert(0,e);}delete(e,t=1){this.doc!==null?b(this.doc,n=>{on(n,this,e,t);}):this._prelimContent.splice(e,t);}get(e){return nn(this,e)}toArray(){return en(this)}slice(e=0,t=this.length){return Qt(this,e,t)}toJSON(){return this.map(e=>e instanceof T?e.toJSON():e)}map(e){return tn(this,e)}forEach(e){ye(this,e);}[Symbol.iterator](){return _i(this)}_write(e){e.writeTypeRef(Ri);}};var dt=class extends oe{constructor(e,t,n){super(e,t),this.keysChanged=n;}},ht=class i extends T{constructor(e){super(),this._prelimContent=null,e===void 0?this._prelimContent=new Map:this._prelimContent=new Map(e);}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach((n,r)=>{this.set(r,n);}),this._prelimContent=null;}_copy(){return new i}clone(){let e=new i;return this.forEach((t,n)=>{e.set(n,t instanceof T?t.clone():t);}),e}_callObserver(e,t){je(this,e,new dt(this,e,t));}toJSON(){this.doc??V();let e={};return this._map.forEach((t,n)=>{if(!t.deleted){let r=t.content.getContent()[t.length-1];e[n]=r instanceof T?r.toJSON():r;}}),e}get size(){return [...De(this)].length}keys(){return re__namespace.iteratorMap(De(this),e=>e[0])}values(){return re__namespace.iteratorMap(De(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return re__namespace.iteratorMap(De(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??V(),this._map.forEach((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this);});}[Symbol.iterator](){return this.entries()}delete(e){this.doc!==null?b(this.doc,t=>{Ae(t,this,e);}):this._prelimContent.delete(e);}set(e,t){return this.doc!==null?b(this.doc,n=>{_t(n,this,e,t);}):this._prelimContent.set(e,t),t}get(e){return bt(this,e)}has(e){return an(this,e)}clear(){this.doc!==null?b(this.doc,e=>{this.forEach(function(t,n,r){Ae(e,r,n);});}):this._prelimContent.clear();}_write(e){e.writeTypeRef(Di);}};var X=(i,e)=>i===e||typeof i=="object"&&typeof e=="object"&&i&&e&&F__namespace.equalFlat(i,e),we=class{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r;}forward(){switch(this.right===null&&k__namespace.unexpectedCase(),this.right.content.constructor){case O:this.right.deleted||ae(this.currentAttributes,this.right.content);break;default:this.right.deleted||(this.index+=this.right.length);break}this.left=this.right,this.right=this.right.right;}},Nt=(i,e,t)=>{for(;e.right!==null&&t>0;){switch(e.right.content.constructor){case O:e.right.deleted||ae(e.currentAttributes,e.right.content);break;default:e.right.deleted||(t<e.right.length&&Z(i,v(e.right.id.client,e.right.id.clock+t)),e.index+=e.right.length,t-=e.right.length);break}e.left=e.right,e.right=e.right.right;}return e},Oe=(i,e,t,n)=>{let r=new Map,s=n?Pe(e,t):null;if(s){let o=new we(s.p.left,s.p,s.index,r);return Nt(i,o,t-s.index)}else {let o=new we(null,e._start,0,r);return Nt(i,o,t)}},ln=(i,e,t,n)=>{for(;t.right!==null&&(t.right.deleted===!0||t.right.content.constructor===O&&X(n.get(t.right.content.key),t.right.content.value));)t.right.deleted||n.delete(t.right.content.key),t.forward();let r=i.doc,s=r.clientID;n.forEach((o,c)=>{let a=t.left,l=t.right,d=new A(v(s,K(r.store,s)),a,a&&a.lastId,l,l&&l.id,e,null,new O(c,o));d.integrate(i,0),t.right=d,t.forward();});},ae=(i,e)=>{let{key:t,value:n}=e;n===null?i.delete(t):i.set(t,n);},dn=(i,e)=>{for(;i.right!==null;){if(!(i.right.deleted||i.right.content.constructor===O&&X(e[i.right.content.key]??null,i.right.content.value)))break;i.forward();}},hn=(i,e,t,n)=>{let r=i.doc,s=r.clientID,o=new Map;for(let c in n){let a=n[c],l=t.currentAttributes.get(c)??null;if(!X(l,a)){o.set(c,l);let{left:d,right:f}=t;t.right=new A(v(s,K(r.store,s)),d,d&&d.lastId,f,f&&f.id,e,null,new O(c,a)),t.right.integrate(i,0),t.forward();}}return o},He=(i,e,t,n,r)=>{t.currentAttributes.forEach((p,g)=>{r[g]===void 0&&(r[g]=null);});let s=i.doc,o=s.clientID;dn(t,r);let c=hn(i,e,t,r),a=n.constructor===String?new Q(n):n instanceof T?new ee(n):new ce(n),{left:l,right:d,index:f}=t;e._searchMarker&&me(e._searchMarker,t.index,a.getLength()),d=new A(v(o,K(s.store,o)),l,l&&l.lastId,d,d&&d.id,e,null,a),d.integrate(i,0),t.right=d,t.index=f,t.forward(),ln(i,e,t,c);},Bt=(i,e,t,n,r)=>{let s=i.doc,o=s.clientID;dn(t,r);let c=hn(i,e,t,r);e:for(;t.right!==null&&(n>0||c.size>0&&(t.right.deleted||t.right.content.constructor===O));){if(!t.right.deleted)switch(t.right.content.constructor){case O:{let{key:a,value:l}=t.right.content,d=r[a];if(d!==void 0){if(X(d,l))c.delete(a);else {if(n===0)break e;c.set(a,l);}t.right.delete(i);}else t.currentAttributes.set(a,l);break}default:n<t.right.length&&Z(i,v(t.right.id.client,t.right.id.clock+n)),n-=t.right.length;break}t.forward();}if(n>0){let a="";for(;n>0;n--)a+=`
66
+ `;t.right=new A(v(o,K(s.store,o)),t.left,t.left&&t.left.lastId,t.right,t.right&&t.right.id,e,null,new Q(a)),t.right.integrate(i,0),t.forward();}ln(i,e,t,c);},un=(i,e,t,n,r)=>{let s=e,o=M__namespace.create();for(;s&&(!s.countable||s.deleted);){if(!s.deleted&&s.content.constructor===O){let l=s.content;o.set(l.key,l);}s=s.right;}let c=0,a=!1;for(;e!==s;){if(t===e&&(a=!0),!e.deleted){let l=e.content;switch(l.constructor){case O:{let{key:d,value:f}=l,p=n.get(d)??null;(o.get(d)!==l||p===f)&&(e.delete(i),c++,!a&&(r.get(d)??null)===f&&p!==f&&(p===null?r.delete(d):r.set(d,p))),!a&&!e.deleted&&ae(r,l);break}}}e=e.right;}return c},ki=(i,e)=>{for(;e&&e.right&&(e.right.deleted||!e.right.countable);)e=e.right;let t=new Set;for(;e&&(e.deleted||!e.countable);){if(!e.deleted&&e.content.constructor===O){let n=e.content.key;t.has(n)?e.delete(i):t.add(n);}e=e.left;}},vi=i=>{let e=0;return b(i.doc,t=>{let n=i._start,r=i._start,s=M__namespace.create(),o=M__namespace.copy(s);for(;r;){if(r.deleted===!1)switch(r.content.constructor){case O:ae(o,r.content);break;default:e+=un(t,n,r,s,o),s=M__namespace.copy(o),n=r;break}r=r.right;}}),e},Ci=i=>{let e=new Set,t=i.doc;for(let[n,r]of i.afterState.entries()){let s=i.beforeState.get(n)||0;r!==s&&zt(i,t.store.clients.get(n),s,r,o=>{!o.deleted&&o.content.constructor===O&&o.constructor!==$&&e.add(o.parent);});}b(t,n=>{Wt(i,i.deleteSet,r=>{if(r instanceof $||!r.parent._hasFormatting||e.has(r.parent))return;let s=r.parent;r.content.constructor===O?e.add(s):ki(n,r);});for(let r of e)vi(r);});},Pt=(i,e,t)=>{let n=t,r=M__namespace.copy(e.currentAttributes),s=e.right;for(;t>0&&e.right!==null;){if(e.right.deleted===!1)switch(e.right.content.constructor){case ee:case ce:case Q:t<e.right.length&&Z(i,v(e.right.id.client,e.right.id.clock+t)),t-=e.right.length,e.right.delete(i);break}e.forward();}s&&un(i,s,e.right,r,e.currentAttributes);let o=(e.left||e.right).parent;return o._searchMarker&&me(o._searchMarker,e.index,-n+t),e},ut=class extends oe{constructor(e,t,n){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,n.forEach(r=>{r===null?this.childListChanged=!0:this.keysChanged.add(r);});}get changes(){if(this._changes===null){let e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e;}return this._changes}get delta(){if(this._delta===null){let e=this.target.doc,t=[];b(e,n=>{let r=new Map,s=new Map,o=this.target._start,c=null,a={},l="",d=0,f=0,p=()=>{if(c!==null){let g=null;switch(c){case"delete":f>0&&(g={delete:f}),f=0;break;case"insert":(typeof l=="object"||l.length>0)&&(g={insert:l},r.size>0&&(g.attributes={},r.forEach((w,R)=>{w!==null&&(g.attributes[R]=w);}))),l="";break;case"retain":d>0&&(g={retain:d},F__namespace.isEmpty(a)||(g.attributes=F__namespace.assign({},a))),d=0;break}g&&t.push(g),c=null;}};for(;o!==null;){switch(o.content.constructor){case ee:case ce:this.adds(o)?this.deletes(o)||(p(),c="insert",l=o.content.getContent()[0],p()):this.deletes(o)?(c!=="delete"&&(p(),c="delete"),f+=1):o.deleted||(c!=="retain"&&(p(),c="retain"),d+=1);break;case Q:this.adds(o)?this.deletes(o)||(c!=="insert"&&(p(),c="insert"),l+=o.content.str):this.deletes(o)?(c!=="delete"&&(p(),c="delete"),f+=o.length):o.deleted||(c!=="retain"&&(p(),c="retain"),d+=o.length);break;case O:{let{key:g,value:w}=o.content;if(this.adds(o)){if(!this.deletes(o)){let R=r.get(g)??null;X(R,w)?w!==null&&o.delete(n):(c==="retain"&&p(),X(w,s.get(g)??null)?delete a[g]:a[g]=w);}}else if(this.deletes(o)){s.set(g,w);let R=r.get(g)??null;X(R,w)||(c==="retain"&&p(),a[g]=R);}else if(!o.deleted){s.set(g,w);let R=a[g];R!==void 0&&(X(R,w)?R!==null&&o.delete(n):(c==="retain"&&p(),w===null?delete a[g]:a[g]=w));}o.deleted||(c==="insert"&&p(),ae(r,o.content));break}}o=o.right;}for(p();t.length>0;){let g=t[t.length-1];if(g.retain!==void 0&&g.attributes===void 0)t.pop();else break}}),this._delta=t;}return this._delta}},ft=class i extends T{constructor(e){super(),this._pending=e!==void 0?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1;}get length(){return this.doc??V(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(n=>n());}catch(n){console.error(n);}this._pending=null;}_copy(){return new i}clone(){let e=new i;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);let n=new ut(this,e,t);je(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0);}toString(){this.doc??V();let e="",t=this._start;for(;t!==null;)!t.deleted&&t.countable&&t.content.constructor===Q&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){this.doc!==null?b(this.doc,n=>{let r=new we(null,this._start,0,new Map);for(let s=0;s<e.length;s++){let o=e[s];if(o.insert!==void 0){let c=!t&&typeof o.insert=="string"&&s===e.length-1&&r.right===null&&o.insert.slice(-1)===`
67
+ `?o.insert.slice(0,-1):o.insert;(typeof c!="string"||c.length>0)&&He(n,this,r,c,o.attributes||{});}else o.retain!==void 0?Bt(n,this,r,o.retain,o.attributes||{}):o.delete!==void 0&&Pt(n,r,o.delete);}}):this._pending.push(()=>this.applyDelta(e));}toDelta(e,t,n){this.doc??V();let r=[],s=new Map,o=this.doc,c="",a=this._start;function l(){if(c.length>0){let f={},p=!1;s.forEach((w,R)=>{p=!0,f[R]=w;});let g={insert:c};p&&(g.attributes=f),r.push(g),c="";}}let d=()=>{for(;a!==null;){if(ie(a,e)||t!==void 0&&ie(a,t))switch(a.content.constructor){case Q:{let f=s.get("ychange");e!==void 0&&!ie(a,e)?(f===void 0||f.user!==a.id.client||f.type!=="removed")&&(l(),s.set("ychange",n?n("removed",a.id):{type:"removed"})):t!==void 0&&!ie(a,t)?(f===void 0||f.user!==a.id.client||f.type!=="added")&&(l(),s.set("ychange",n?n("added",a.id):{type:"added"})):f!==void 0&&(l(),s.delete("ychange")),c+=a.content.str;break}case ee:case ce:{l();let f={insert:a.content.getContent()[0]};if(s.size>0){let p={};f.attributes=p,s.forEach((g,w)=>{p[w]=g;});}r.push(f);break}case O:ie(a,e)&&(l(),ae(s,a.content));break}a=a.right;}l();};return e||t?b(o,f=>{e&&it(f,e),t&&it(f,t),d();},"cleanup"):d(),r}insert(e,t,n){if(t.length<=0)return;let r=this.doc;r!==null?b(r,s=>{let o=Oe(s,this,e,!n);n||(n={},o.currentAttributes.forEach((c,a)=>{n[a]=c;})),He(s,this,o,t,n);}):this._pending.push(()=>this.insert(e,t,n));}insertEmbed(e,t,n){let r=this.doc;r!==null?b(r,s=>{let o=Oe(s,this,e,!n);He(s,this,o,t,n||{});}):this._pending.push(()=>this.insertEmbed(e,t,n||{}));}delete(e,t){if(t===0)return;let n=this.doc;n!==null?b(n,r=>{Pt(r,Oe(r,this,e,!0),t);}):this._pending.push(()=>this.delete(e,t));}format(e,t,n){if(t===0)return;let r=this.doc;r!==null?b(r,s=>{let o=Oe(s,this,e,!1);o.right!==null&&Bt(s,this,o,t,n);}):this._pending.push(()=>this.format(e,t,n));}removeAttribute(e){this.doc!==null?b(this.doc,t=>{Ae(t,this,e);}):this._pending.push(()=>this.removeAttribute(e));}setAttribute(e,t){this.doc!==null?b(this.doc,n=>{_t(n,this,e,t);}):this._pending.push(()=>this.setAttribute(e,t));}getAttribute(e){return bt(this,e)}getAttributes(){return cn(this)}_write(e){e.writeTypeRef(Oi);}};var ge=class{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??V();}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(e!==null&&(!this._firstCall||e.deleted||!this._filter(t)))do if(t=e.content.type,!e.deleted&&(t.constructor===xe||t.constructor===_e)&&t._start!==null)e=t._start;else for(;e!==null;)if(e.right!==null){e=e.right;break}else e.parent===this._root?e=null:e=e.parent._item;while(e!==null&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,e===null?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}},_e=class i extends T{constructor(){super(),this._prelimContent=[];}get firstChild(){let e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null;}_copy(){return new i}clone(){let e=new i;return e.insert(0,this.toArray().map(t=>t instanceof T?t.clone():t)),e}get length(){return this.doc??V(),this._prelimContent===null?this._length:this._prelimContent.length}createTreeWalker(e){return new ge(this,e)}querySelector(e){e=e.toUpperCase();let n=new ge(this,r=>r.nodeName&&r.nodeName.toUpperCase()===e).next();return n.done?null:n.value}querySelectorAll(e){return e=e.toUpperCase(),N__namespace.from(new ge(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){je(this,e,new gt(this,t,e));}toString(){return tn(this,e=>e.toString()).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},n){let r=e.createDocumentFragment();return n!==void 0&&n._createAssociation(r,this),ye(this,s=>{r.insertBefore(s.toDOM(e,t,n),null);}),r}insert(e,t){this.doc!==null?b(this.doc,n=>{sn(n,this,e,t);}):this._prelimContent.splice(e,0,...t);}insertAfter(e,t){if(this.doc!==null)b(this.doc,n=>{let r=e&&e instanceof T?e._item:e;Ve(n,this,r,t);});else {let n=this._prelimContent,r=e===null?0:n.findIndex(s=>s===e)+1;if(r===0&&e!==null)throw k__namespace.create("Reference item not found");n.splice(r,0,...t);}}delete(e,t=1){this.doc!==null?b(this.doc,n=>{on(n,this,e,t);}):this._prelimContent.splice(e,t);}toArray(){return en(this)}push(e){this.insert(this.length,e);}unshift(e){this.insert(0,e);}get(e){return nn(this,e)}slice(e=0,t=this.length){return Qt(this,e,t)}forEach(e){ye(this,e);}_write(e){e.writeTypeRef(Li);}};var xe=class i extends _e{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map;}get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach((n,r)=>{this.setAttribute(r,n);}),this._prelimAttrs=null;}_copy(){return new i(this.nodeName)}clone(){let e=new i(this.nodeName),t=this.getAttributes();return F__namespace.forEach(t,(n,r)=>{typeof n=="string"&&e.setAttribute(r,n);}),e.insert(0,this.toArray().map(n=>n instanceof T?n.clone():n)),e}toString(){let e=this.getAttributes(),t=[],n=[];for(let c in e)n.push(c);n.sort();let r=n.length;for(let c=0;c<r;c++){let a=n[c];t.push(a+'="'+e[a]+'"');}let s=this.nodeName.toLocaleLowerCase(),o=t.length>0?" "+t.join(" "):"";return `<${s}${o}>${super.toString()}</${s}>`}removeAttribute(e){this.doc!==null?b(this.doc,t=>{Ae(t,this,e);}):this._prelimAttrs.delete(e);}setAttribute(e,t){this.doc!==null?b(this.doc,n=>{_t(n,this,e,t);}):this._prelimAttrs.set(e,t);}getAttribute(e){return bt(this,e)}hasAttribute(e){return an(this,e)}getAttributes(e){return e?Si(this,e):cn(this)}toDOM(e=document,t={},n){let r=e.createElement(this.nodeName),s=this.getAttributes();for(let o in s){let c=s[o];typeof c=="string"&&r.setAttribute(o,c);}return ye(this,o=>{r.appendChild(o.toDOM(e,t,n));}),n!==void 0&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Ui),e.writeKey(this.nodeName);}};var gt=class extends oe{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach(r=>{r===null?this.childListChanged=!0:this.attributesChanged.add(r);});}};var Me=class{constructor(e,t){this.id=e,this.length=t;}get deleted(){throw k__namespace.methodUnimplemented()}mergeWith(e){return !1}write(e,t,n){throw k__namespace.methodUnimplemented()}integrate(e,t){throw k__namespace.methodUnimplemented()}},Ei=0,$=class extends Me{get deleted(){return !0}delete(){}mergeWith(e){return this.constructor!==e.constructor?!1:(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),Ht(e.doc.store,this);}write(e,t){e.writeInfo(Ei),e.writeLen(this.length-t);}getMissing(e,t){return null}},Ke=class i{constructor(e){this.content=e;}getLength(){return 1}getContent(){return [this.content]}isCountable(){return !0}copy(){return new i(this.content)}splice(e){throw k__namespace.methodUnimplemented()}mergeWith(e){return !1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content);}getRef(){return 3}};var pt=class i{constructor(e){this.len=e;}getLength(){return this.len}getContent(){return []}isCountable(){return !1}copy(){return new i(this.len)}splice(e){let t=new i(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){Jt(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted();}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t);}getRef(){return 1}};var Ii=(i,e)=>new te({guid:i,...e,shouldLoad:e.shouldLoad||e.autoLoad||!1}),Ne=class i{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;let t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),e.meta!==null&&(t.meta=e.meta);}getLength(){return 1}getContent(){return [this.doc]}isCountable(){return !0}copy(){return new i(Ii(this.doc.guid,this.opts))}splice(e){throw k__namespace.methodUnimplemented()}mergeWith(e){return !1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc);}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc);}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts);}getRef(){return 9}};var ce=class i{constructor(e){this.embed=e;}getLength(){return 1}getContent(){return [this.embed]}isCountable(){return !0}copy(){return new i(this.embed)}splice(e){throw k__namespace.methodUnimplemented()}mergeWith(e){return !1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed);}getRef(){return 5}};var O=class i{constructor(e,t){this.key=e,this.value=t;}getLength(){return 1}getContent(){return []}isCountable(){return !1}copy(){return new i(this.key,this.value)}splice(e){throw k__namespace.methodUnimplemented()}mergeWith(e){return !1}integrate(e,t){let n=t.parent;n._searchMarker=null,n._hasFormatting=!0;}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value);}getRef(){return 6}};var Ti=jt__namespace.getVariable("node_env")==="development",be=class i{constructor(e){this.arr=e,Ti&&F__namespace.deepFreeze(e);}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return !0}copy(){return new i(this.arr)}splice(e){let t=new i(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){let n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){let s=this.arr[r];e.writeAny(s);}}getRef(){return 8}};var Q=class i{constructor(e){this.str=e;}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return !0}copy(){return new i(this.str)}splice(e){let t=new i(this.str.slice(e));this.str=this.str.slice(0,e);let n=this.str.charCodeAt(e-1);return n>=55296&&n<=56319&&(this.str=this.str.slice(0,e-1)+"\uFFFD",t.str="\uFFFD"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(t===0?this.str:this.str.slice(t));}getRef(){return 4}};var Ri=0,Di=1,Oi=2,Ui=3,Li=4;var ee=class i{constructor(e){this.type=e;}getLength(){return 1}getContent(){return [this.type]}isCountable(){return !0}copy(){return new i(this.type._copy())}splice(e){throw k__namespace.methodUnimplemented()}mergeWith(e){return !1}integrate(e,t){this.type._integrate(e.doc,t);}delete(e){let t=this.type._start;for(;t!==null;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach(n=>{n.deleted?n.id.clock<(e.beforeState.get(n.id.client)||0)&&e._mergeStructs.push(n):n.delete(e);}),e.changed.delete(this.type);}gc(e){let t=this.type._start;for(;t!==null;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach(n=>{for(;n!==null;)n.gc(e,!0),n=n.left;}),this.type._map=new Map;}write(e,t){this.type._write(e);}getRef(){return 7}};var fn=(i,e,t)=>{let{client:n,clock:r}=e.id,s=new A(v(n,r+t),e,v(n,r+t-1),e.right,e.rightOrigin,e.parent,e.parentSub,e.content.splice(t));return e.deleted&&s.markDeleted(),e.keep&&(s.keep=!0),e.redone!==null&&(s.redone=v(e.redone.client,e.redone.clock+t)),e.right=s,s.right!==null&&(s.right.left=s),i._mergeStructs.push(s),s.parentSub!==null&&s.right===null&&s.parent._map.set(s.parentSub,s),e.length=t,s};var A=class i extends Me{constructor(e,t,n,r,s,o,c,a){super(e,a.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=s,this.parent=o,this.parentSub=c,this.redone=null,this.content=a,this.info=this.content.isCountable()?C__namespace.BIT2:0;}set marker(e){(this.info&C__namespace.BIT4)>0!==e&&(this.info^=C__namespace.BIT4);}get marker(){return (this.info&C__namespace.BIT4)>0}get keep(){return (this.info&C__namespace.BIT1)>0}set keep(e){this.keep!==e&&(this.info^=C__namespace.BIT1);}get countable(){return (this.info&C__namespace.BIT2)>0}get deleted(){return (this.info&C__namespace.BIT3)>0}set deleted(e){this.deleted!==e&&(this.info^=C__namespace.BIT3);}markDeleted(){this.info|=C__namespace.BIT3;}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=K(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=K(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===se&&this.id.client!==this.parent.client&&this.parent.clock>=K(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=At(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Z(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===$||this.right&&this.right.constructor===$)this.parent=null;else if(!this.parent)this.left&&this.left.constructor===i&&(this.parent=this.left.parent,this.parentSub=this.left.parentSub),this.right&&this.right.constructor===i&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);else if(this.parent.constructor===se){let n=qe(t,this.parent);n.constructor===$?this.parent=null:this.parent=n.content.type;}return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=At(e,e.doc.store,v(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let n=this.left,r;if(n!==null)r=n.right;else if(this.parentSub!==null)for(r=this.parent._map.get(this.parentSub)||null;r!==null&&r.left!==null;)r=r.left;else r=this.parent._start;let s=new Set,o=new Set;for(;r!==null&&r!==this.right;){if(o.add(r),s.add(r),Re(this.origin,r.origin)){if(r.id.client<this.id.client)n=r,s.clear();else if(Re(this.rightOrigin,r.rightOrigin))break}else if(r.origin!==null&&o.has(qe(e.doc.store,r.origin)))s.has(qe(e.doc.store,r.origin))||(n=r,s.clear());else break;r=r.right;}this.left=n;}if(this.left!==null){let n=this.left.right;this.right=n,this.left.right=this;}else {let n;if(this.parentSub!==null)for(n=this.parent._map.get(this.parentSub)||null;n!==null&&n.left!==null;)n=n.left;else n=this.parent._start,this.parent._start=this;this.right=n;}this.right!==null?this.right.left=this:this.parentSub!==null&&(this.parent._map.set(this.parentSub,this),this.left!==null&&this.left.delete(e)),this.parentSub===null&&this.countable&&!this.deleted&&(this.parent._length+=this.length),Ht(e.doc.store,this),this.content.integrate(e,this),Mt(e,this.parent,this.parentSub),(this.parent._item!==null&&this.parent._item.deleted||this.parentSub!==null&&this.right!==null)&&this.delete(e);}else new $(this.id,this.length).integrate(e,0);}get next(){let e=this.right;for(;e!==null&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;e!==null&&e.deleted;)e=e.left;return e}get lastId(){return this.length===1?this.id:v(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Re(e.origin,this.lastId)&&this.right===e&&Re(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&this.redone===null&&e.redone===null&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){let t=this.parent._searchMarker;return t&&t.forEach(n=>{n.p===e&&(n.p=this,!this.deleted&&this.countable&&(n.index-=this.length));}),e.keep&&(this.keep=!0),this.right=e.right,this.right!==null&&(this.right.left=this),this.length+=e.length,!0}return !1}delete(e){if(!this.deleted){let t=this.parent;this.countable&&this.parentSub===null&&(t._length-=this.length),this.markDeleted(),Jt(e.deleteSet,this.id.client,this.id.clock,this.length),Mt(e,t,this.parentSub),this.content.delete(e);}}gc(e,t){if(!this.deleted)throw k__namespace.unexpectedCase();this.content.gc(e),t?fi(e,this,new $(this.id,this.length)):this.content=new pt(this.length);}write(e,t){let n=t>0?v(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,s=this.parentSub,o=this.content.getRef()&C__namespace.BITS5|(n===null?0:C__namespace.BIT8)|(r===null?0:C__namespace.BIT7)|(s===null?0:C__namespace.BIT6);if(e.writeInfo(o),n!==null&&e.writeLeftID(n),r!==null&&e.writeRightID(r),n===null&&r===null){let c=this.parent;if(c._item!==void 0){let a=c._item;if(a===null){let l=di(c);e.writeParentInfo(!0),e.writeString(l);}else e.writeParentInfo(!1),e.writeLeftID(a.id);}else c.constructor===String?(e.writeParentInfo(!0),e.writeString(c)):c.constructor===se?(e.writeParentInfo(!1),e.writeLeftID(c)):k__namespace.unexpectedCase();s!==null&&e.writeString(s);}this.content.write(e,t);}};var gn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:{},pn="__ $YJS$ __";gn[pn]===!0&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438");gn[pn]=!0;var Se=i=>Promise.reject("unimplemented method GetVoiceSign"),St=(i,e={},t=[])=>({command:i,front_request_id:Y(),data:{...e,to_user_ids:Array.isArray(t)?t:[t]}}),mn=()=>{window?.__Realsee_Live__&&(window?.__Realsee_Live__?.dispose?.(),window.__Realsee_Live__=null);},We=class extends j{_options={};get options(){return Object.freeze(this._options||{})}get state(){return this._controller.state}get readyState(){return this._controller.state}get url(){return this.options.url}get $RTC(){return this._options.rtc}get jsBridge(){return this._options.jsBridge}keyframes=new j;_yDoc;_buildInData;constructor(e){super(),m.info("Initializing Live instance with options:",e),this._addLiveControllerEventListeners(),this._yDoc=new te({guid:Y()}),this._buildInData={keyframes:this._yDoc.getMap("keyframes")},this._initializeKeyframesObservers(),this._initializeOptions(e),this._autoConnect(),this._debugSetup();}get _buildInKeyframes(){return this._buildInData.keyframes}get snapshot(){return this._buildInData.keyframes.toJSON()}_initializeKeyframesObservers=()=>{this._buildInKeyframes.observe(this._handleKeyframesChange);};_handleKeyframesChange=e=>{let{transaction:t,target:n,changes:r}=e;if(n===this._buildInKeyframes)if(t.origin.triggerUserId===this.selfInfo?.id){let s=St("KEYFRAME_SYNC",this.snapshot,void 0);try{this._controller.sendMessage(s);}catch(o){m.error("Failed to send keyframe sync message:",o);}}else r.keys.forEach((s,o)=>{let c=s.oldValue,a=this.getFramesByKey(o),l=t.origin.frontRequestId;this.keyframes.emit(o,a,c,l);}),r.keys.size!==0&&this.emit("keyframes",this.snapshot,t.origin.frontRequestId);};getFramesByKey=e=>this.snapshot[e];sendKeyframe=(e,t)=>this.state!==1?(m.warn("Attempted to send keyframe while connection is not open"),!1):(this._yDoc.transact(()=>{this._buildInKeyframes.set(e,t);},{triggerUserId:this.selfInfo?.id,frontRequestId:""}),!0);get selfInfo(){return this._buildInData.selfInfo}get userList(){return this._buildInData.userList||[]}get roomInfo(){return this._buildInData.roomInfo}_controller=new Te;_initializeOptions(e){this._options=Object.assign({initialMicroStatus:"OPEN"},e),this._options.jsBridge=this._initializeJsBridge(e),this._options.getVoiceSign=e.getVoiceSign??Se,this._options.autoPlayConfirm=e.autoPlayConfirm,this._options.rtc=this._initializeRTC(e);}_initializeJsBridge(e){if(e.jsBridge)return e.jsBridge;if(e.useBuiltInJsBridge)return new Ai__default.default}_initializeRTC(e){if(e.rtc)return e.rtc;if(e.rtcType)return this._createBuiltInRTC(e);if(e.useBuiltInRTC)return this._createDefaultRTC(e)}_createBuiltInRTC(e){if(!e.getVoiceSign){m.error("GetVoiceSign method must be passed when using built-in RTC instances");return}switch(e.rtcType){case"RealseeVRWebViewRTC":return this._createVRWebViewRTC();case"RealseeBrowserChimeRTC":return new ne({getVoiceSign:this._options.getVoiceSign??Se,logLevel:e.__debug__?0:1});case"RealseeBrowserRTC":return this._createBrowserRTC();default:m.error("unknown built-in RTC type");return}}_createVRWebViewRTC(){if(this._options.jsBridge)return new ue({jsBridge:this._options.jsBridge,getVoiceSign:this._options.getVoiceSign??Se});m.error("JsBridge instance must be passed when using built-in VRWebViewRTC instances");}_createBrowserRTC(){if(!this._options.autoPlayConfirm){m.error("autoPlayConfirm method must be passed when using built-in RealseeBrowserRTC instances");return}return new he({getVoiceSign:this._options.getVoiceSign??Se,autoPlayConfirm:this._options.autoPlayConfirm})}_createDefaultRTC(e){if(!e.getVoiceSign){m.error("GetVoiceSign method must be passed when using built-in RTC instances");return}if(this._options.jsBridge){if(Dt&&(It||Tt)||Rt)return this._createVRWebViewRTC();{let t=this._options.getVoiceSign??Se;return e.builtInRTCType==="chime"?new ne({getVoiceSign:t}):this._createBrowserRTC()}}else {m.error("jsBridge instance must be passed when using built-in RTC instances");return}}_autoConnect(){this._options.url&&this._options.getTicket&&this.connect();}_debugSetup(){this._options.__debug__&&Object.assign(window,{$liveController:this._controller,$live:this});}_addLiveControllerEventListeners=()=>{this._controller.on("stateChange",this._handleStateChange),this._controller.on("message",this._handleMessage);};_removeLiveControllerEventListeners=()=>{this._controller.off("stateChange",this._handleStateChange),this._controller.off("message",this._handleMessage);};_handleStateChange=(e,t)=>{m.info(`State changed from ${t} to ${e}`),this.emit("stateChange",e,t);};_handleMessage=async e=>{if(m.debug("Received message:",e),typeof e=="object"){let{command:t,data:n={},frontRequestId:r,code:s,message:o,triggerUserId:c}=e;if(s==="SUCCESS")switch(t){case"SELF_USER_INFO":{let a=n;Ot(this.selfInfo,a,{deep:!0})||(this._buildInData.selfInfo=a,this.emit("selfInfoUpdate",this._buildInData.selfInfo,r));break}case"ROOM_INFO":{let a=n;this._buildInData.roomInfo=Object.assign({},a);let l=a.last_frame||{};this._yDoc.transact(()=>{for(let d in l)this._buildInKeyframes.set(d,l[d]);},{triggerUserId:"readyKeyframeSync",frontRequestId:r}),this.emit("readyKeyframeSync",a.last_frame||{});break}case"RTC_INFO":{m.info("RTC info updated:",n);let{voice_id:a,type:l}=n;if(this._buildInData.rtcInfo={voiceId:a,type:l},this.$RTC?.joined)m.warn("\u5DF2\u52A0\u5165\u8BED\u97F3\u623F\u95F4\uFF0C\u65E0\u9700\u91CD\u590D\u52A0\u5165\uFF01");else if(await this.$RTC?.join({voiceId:a,userId:this.selfInfo?.id||"",roomId:this.roomInfo?.info.room_code,type:l})){let f=this._options.initialMicroStatus??"OPEN";await this.toggleMicro(f==="OPEN");}else m.error("\u52A0\u5165\u8BED\u97F3\u623F\u95F4\u5931\u8D25");break}case"USER_LIST":{let a=n;this._buildInData.userList=a,this.emit("userListUpdate",this.userList,r);break}case"CUSTOM_EVENT":{let a=n;this.emit("broadcast",a,r);break}case"KEYFRAME_SYNC":{let a=n;if(c===this.selfInfo?.id)return;this._yDoc.transact(()=>{for(let l in a)this._buildInKeyframes.set(l,a[l]);},{triggerUserId:c,frontRequestId:r});break}case"BUILTIN_MSG":{let a=n;this.emit("builtinEvent",a),a.event_type==="user_change"&&this.emit("userChange",a),a.event_type==="room_change"&&this.emit("roomChange",a),a.event_type==="user_change"&&a.action==="change_micro_status"&&await this.toggleMicro(a.data.status==="OPEN"),a.event_type==="room_change"&&a.action==="close"&&await this._exit();break}case"USER_KICK_OUT":{this.emit("kickOut");break}default:m.warn("Unknown command received:",t);}else m.error("Error in message:",o),this.emit("error",e);}};_clearLiveData=()=>{this._buildInKeyframes.clear(),this._buildInData={keyframes:this._yDoc.getMap("keyframes")};};connect=async(e={})=>{if(m.info("Attempting to connect with options:",e),this._options.url=e.url??this._options.url??"",this._options.getTicket=e.getTicket??this._options.getTicket,this._options.initialMicroStatus=e.rtcMicStatus??this._options.initialMicroStatus,!/^ws(s):\/\//.test(this._options.url)||typeof this._options.getTicket!="function")return new Error("Invalid connection parameters");if(this._options.rtc&&!await this._options.rtc.detectMicro())return new Error("Failed to obtain microphone authorization");let t=this.state;if(t===0||t===1)if(e.force)await this._controller.close("force close by connect").catch(console.warn);else return new Error("\u5DF2\u6709Live\u5B9E\u4F8B\u6B63\u5728\u8FDE\u63A5\u4E2D\uFF0C\u8BF7\u52FF\u91CD\u590D\u8FDE\u63A5\uFF01");this._clearLiveData();try{let n=await this._options.getTicket(),r=Ct(this._options.url,{ticket:n,force:+!!e.force});return this._controller.open(r),m.info("Connection established successfully"),!0}catch(n){return m.error("Failed to connect:",n),new Error("Failed to connect")}};_exit=async()=>{this._clearLiveData();try{await this.$RTC?.quit();}catch(e){m.warn(e);}return this.state!==1?!0:await this._controller.close()};exit=async()=>this.close();close=async()=>{await this._controller.readyClose();try{await this.$RTC?.quit();}catch(e){m.warn(e);}await this.updateStatus("room_change","close",{});};dispose=async()=>(this._removeLiveControllerEventListeners(),this._clearLiveData(),await this._controller.dispose());async updateStatus(e,t,n,r){if(this.state!==1)return !1;let s=Object.assign({event_type:e,action:t},{data:n}),o=St("BUILTIN_MSG",s,r);try{return this._controller.sendMessage(o),!0}catch(c){return m.error(c),!1}}setSelfInfo=async e=>await this.updateStatus("user_change","change_info",e);broadcast(e,t,n){return this.state!==1?!1:new Promise((r,s)=>{let o=St("CUSTOM_EVENT",e,t),c=o.front_request_id,a=n?setTimeout(()=>{s(new Error("RESPONSE TIMEOUT")),this.off("broadcast",l);},n):void 0,l=(d,f)=>{f===c&&(a&&clearTimeout(a),this.off("broadcast",l),r(d));};this.on("broadcast",l);try{this._controller.sendMessage(o);}catch(d){s(d);}})}toggleMicro=async e=>{if(!this.selfInfo?.permission?.control_own_micro)return !1;let t=await this.$RTC?.toggleMicro(e);return t&&await this.updateStatus("user_change","change_micro_status",{status:e?"OPEN":"CLOSE"},[]),t};forbidMicro=async(e,t)=>typeof this._options.canForbidUserMicro=="function"&&!this._options.canForbidUserMicro(t)||!this.selfInfo?.permission?.control_other_micro?!1:await this.updateStatus("user_change","change_micro_status",{status:e},t);forbidSync=async(e,t)=>typeof this._options.canForbidUserSync=="function"&&!this._options.canForbidUserSync(t)||!this.selfInfo?.permission?.control_other_sync?!1:await this.updateStatus("user_change","change_permission",{sync_frame:e},t);kick=async e=>typeof this._options.canForbidUserKick=="function"&&!this._options.canForbidUserKick(e)||!this.selfInfo?.permission?.change_other_status?!1:await this.updateStatus("user_change","change_status",{status:"KICK_OUT"},e);getSnapshotForKey(e){return this.snapshot[e]}};var yn=i=>(mn(),new We(i));function bs(i){let e=L.createContext(null),t=yn(i),n=t.jsBridge,r=h=>L__default.default.createElement(e.Provider,{value:t},h.children),s=()=>{let h=L__default.default.useContext(e);if(!h)throw new Error("LiveProvider never found.");return h},o=()=>t,c=()=>t.$RTC,a=()=>c(),l=()=>async h=>await t.connect(h);function d(h,_,D=[]){let y=s(),E=[y,name,...D],U=()=>y.keyframes.off(h,_);return L__default.default.useEffect(()=>(y.keyframes.on(h,_),U),E),U}function f(){let h=s(),_=L.useCallback(async I=>{await h.connect(I);},[h]),D=L.useCallback(I=>{h.toggleMicro(I);},[h]),y=L.useCallback(async(I,J,Fe=0)=>{await h.broadcast(I,J,Fe);},[h]),E=L.useCallback(async()=>{await h.exit();},[h]),U=L.useCallback(async I=>{await h.kick(I);},[h]),H=L.useCallback(async(I,J=[])=>{await h.forbidMicro(I,J);},[h]),ke=L.useCallback((I,J=[])=>{h.forbidSync(I,J);},[h]),$e=L.useCallback(I=>h.getFramesByKey(I),[h]),kn=L.useCallback((I,J)=>{h.sendKeyframe(I,J);},[h]),vn=L.useCallback(I=>{h.setSelfInfo(I);},[h]),Cn=L.useCallback((I,J,Fe,En)=>{h.updateStatus(I,J,Fe,En);},[h]);return {connect:_,broadcast:y,exit:E,kick:U,toggleMicro:D,forbidMicro:H,forbidSync:ke,sendKeyframe:kn,getFramesByKey:$e,setSelfInfo:vn,updateStatus:Cn}}function p(h){let _=s(),[D,y]=L__default.default.useState(_.getFramesByKey(h));L__default.default.useEffect(()=>{let U=$e=>y($e),H=h,ke=U;return _.keyframes.on(H,ke),()=>_.keyframes.off(H,ke)},[_]);let E=L__default.default.useCallback(U=>_.sendKeyframe(h,U),[_]);return [D,E]}function g(h,_,D=[]){let y=s(),E=()=>y.off(h,_),U=[y,h,...D];return L__default.default.useEffect(()=>(y.on(h,_),E),U),E}function w(){let h=s(),[_,D]=L__default.default.useState(h.state);return L__default.default.useEffect(()=>{let y=E=>D(E);return h.on("stateChange",y),()=>h.off("stateChange",y)},[h]),_}function R(){let h=s();return {join:H=>h.$RTC.join(H),quit:()=>h.$RTC.quit(),shock:()=>h.$RTC.shock?.(),toggleMicro:H=>h.$RTC.toggleMicro(H),detectMicro:()=>h.$RTC.detectMicro()}}function wn(h,_,D=[]){let y=s(),E=()=>y.$RTC.off(h,_),U=[y,h,...D];return L__default.default.useEffect(()=>(y.$RTC.on(h,_),E),U),E}function _n(){let h=s(),[_,D]=L__default.default.useState(h.selfInfo||{}),y=U=>D(U);L__default.default.useEffect(()=>(h.on("selfInfoUpdate",y),()=>h.off("selfInfoUpdate",y)),[h]);let E=L__default.default.useCallback(async U=>await h.setSelfInfo(U),[h]);return [_,E]}function bn(){let h=s(),[_,D]=L__default.default.useState(h.snapshot);return L__default.default.useEffect(()=>{let y=E=>D(E);return h.on("keyframes",y),()=>h.off("keyframes",y)},[h]),_}function Sn(){let h=s(),[_,D]=L__default.default.useState(h.userList),y=E=>D(E);return L__default.default.useEffect(()=>(h.on("userListUpdate",y),()=>h.off("userListUpdate",y)),[h]),_}return {live:t,jsBridge:n,LiveProvider:r,unsafe__useLiveInstance:o,unsafe__useRTCInstance:a,useConnect:l,useKeyframe:p,useKeyframeUpdateCallback:d,useLiveAction:f,useLiveEventCallback:g,useLiveState:w,useRTCAction:R,useRTCEventCallback:wn,useSelfInfo:_n,useKeyframesSnapshot:bn,useUserList:Sn}}console.log(`%c${process.env.__REALSEE_LIVE_VERSION__}`,"background: #237804; color: white; padding: 2px 4px; border-radius: 4px;");
68
+
69
+ exports.BrowserRTC = he;
70
+ exports.BrowserRTC4Chime = ne;
71
+ exports.BuiltInRTCType = Rn;
72
+ exports.BuiltinActionType = Pn;
73
+ exports.BuiltinEventType = Bn;
74
+ exports.Command = Nn;
75
+ exports.CoreRTC = G;
76
+ exports.Live = We;
77
+ exports.LiveState = Wn;
78
+ exports.MemUserStatus = Fn;
79
+ exports.MicroStatus = jn;
80
+ exports.RTCJoinedInfoCodeEnum = Kn;
81
+ exports.RTCType = Tn;
82
+ exports.Subscribe = j;
83
+ exports.UserStatus = $n;
84
+ exports.VRWebViewRTC = ue;
85
+ exports.WebSocketCloseError = qn;
86
+ exports.WebSocketErrorType = Gn;
87
+ exports.WebSocketState = Jn;
88
+ exports._clearLiveInstanceIfNeed = mn;
89
+ exports.createLive = yn;
90
+ exports.createLiveReact = bs;
91
+ exports.parseLiveMsg = kr;
92
+ exports.parseWSClsErr = vt;