@signalwire/js 3.2.1 → 3.4.0-dev.202110121150.a4432f2.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 (109) hide show
  1. package/dist/core/src/BaseComponent.d.ts +20 -9
  2. package/dist/core/src/BaseComponent.d.ts.map +1 -1
  3. package/dist/core/src/BaseSession.d.ts +9 -2
  4. package/dist/core/src/BaseSession.d.ts.map +1 -1
  5. package/dist/core/src/RPCMessages/index.d.ts +1 -0
  6. package/dist/core/src/RPCMessages/index.d.ts.map +1 -1
  7. package/dist/core/src/index.d.ts +3 -3
  8. package/dist/core/src/index.d.ts.map +1 -1
  9. package/dist/core/src/redux/features/pubSub/pubSubSaga.d.ts.map +1 -1
  10. package/dist/core/src/redux/features/session/sessionSaga.d.ts.map +1 -1
  11. package/dist/core/src/redux/interfaces.d.ts +15 -6
  12. package/dist/core/src/redux/interfaces.d.ts.map +1 -1
  13. package/dist/core/src/redux/rootSaga.d.ts +4 -1
  14. package/dist/core/src/redux/rootSaga.d.ts.map +1 -1
  15. package/dist/core/src/rooms/RoomSessionPlayback.d.ts +20 -0
  16. package/dist/core/src/rooms/RoomSessionPlayback.d.ts.map +1 -0
  17. package/dist/core/src/rooms/RoomSessionPlayback.test.d.ts +2 -0
  18. package/dist/core/src/rooms/RoomSessionPlayback.test.d.ts.map +1 -0
  19. package/dist/core/src/rooms/RoomSessionRecording.d.ts +3 -0
  20. package/dist/core/src/rooms/RoomSessionRecording.d.ts.map +1 -1
  21. package/dist/core/src/rooms/index.d.ts +1 -0
  22. package/dist/core/src/rooms/index.d.ts.map +1 -1
  23. package/dist/core/src/rooms/methods.d.ts +11 -1
  24. package/dist/core/src/rooms/methods.d.ts.map +1 -1
  25. package/dist/core/src/types/index.d.ts +2 -2
  26. package/dist/core/src/types/index.d.ts.map +1 -1
  27. package/dist/core/src/types/utils.d.ts +60 -0
  28. package/dist/core/src/types/utils.d.ts.map +1 -1
  29. package/dist/core/src/types/video.d.ts +8 -5
  30. package/dist/core/src/types/video.d.ts.map +1 -1
  31. package/dist/core/src/types/videoMember.d.ts +60 -10
  32. package/dist/core/src/types/videoMember.d.ts.map +1 -1
  33. package/dist/core/src/types/videoPlayback.d.ts +110 -0
  34. package/dist/core/src/types/videoPlayback.d.ts.map +1 -0
  35. package/dist/core/src/types/videoRecording.d.ts +21 -5
  36. package/dist/core/src/types/videoRecording.d.ts.map +1 -1
  37. package/dist/core/src/types/videoRoomSession.d.ts +17 -1
  38. package/dist/core/src/types/videoRoomSession.d.ts.map +1 -1
  39. package/dist/core/src/utils/constants.d.ts +5 -0
  40. package/dist/core/src/utils/constants.d.ts.map +1 -1
  41. package/dist/core/src/utils/eventTransformUtils.d.ts +30 -0
  42. package/dist/core/src/utils/eventTransformUtils.d.ts.map +1 -0
  43. package/dist/core/src/utils/eventTransformUtils.test.d.ts +2 -0
  44. package/dist/core/src/utils/eventTransformUtils.test.d.ts.map +1 -0
  45. package/dist/core/src/utils/index.d.ts +8 -1
  46. package/dist/core/src/utils/index.d.ts.map +1 -1
  47. package/dist/core/src/utils/interfaces.d.ts +95 -4
  48. package/dist/core/src/utils/interfaces.d.ts.map +1 -1
  49. package/dist/core/src/utils/toExternalJSON.d.ts.map +1 -1
  50. package/dist/core/src/utils/toInternalEventName.d.ts.map +1 -1
  51. package/dist/index.esm.js +1 -1
  52. package/dist/index.esm.js.map +3 -3
  53. package/dist/index.js +1 -1
  54. package/dist/index.js.map +3 -3
  55. package/dist/index.umd.js +2 -2
  56. package/dist/index.umd.js.map +1 -1
  57. package/dist/js/src/BaseRoomSession.d.ts +60 -0
  58. package/dist/js/src/BaseRoomSession.d.ts.map +1 -0
  59. package/dist/js/src/Client.d.ts +6 -5
  60. package/dist/js/src/Client.d.ts.map +1 -1
  61. package/dist/js/src/JWTSession.d.ts.map +1 -1
  62. package/dist/js/src/RoomSession.d.ts +27 -0
  63. package/dist/js/src/RoomSession.d.ts.map +1 -0
  64. package/dist/js/src/RoomSessionDevice.d.ts +16 -0
  65. package/dist/js/src/RoomSessionDevice.d.ts.map +1 -0
  66. package/dist/js/src/RoomSessionScreenShare.d.ts +16 -0
  67. package/dist/js/src/RoomSessionScreenShare.d.ts.map +1 -0
  68. package/dist/js/src/createClient.d.ts +1 -1
  69. package/dist/js/src/createClient.d.ts.map +1 -1
  70. package/dist/js/src/createRoomObject.d.ts +10 -2
  71. package/dist/js/src/createRoomObject.d.ts.map +1 -1
  72. package/dist/js/src/features/mediaElements/mediaElementsSagas.d.ts +4 -4
  73. package/dist/js/src/features/mediaElements/mediaElementsSagas.d.ts.map +1 -1
  74. package/dist/js/src/index.d.ts +1 -1
  75. package/dist/js/src/index.d.ts.map +1 -1
  76. package/dist/js/src/joinRoom.d.ts +2 -1
  77. package/dist/js/src/joinRoom.d.ts.map +1 -1
  78. package/dist/js/src/utils/interfaces.d.ts +32 -8
  79. package/dist/js/src/utils/interfaces.d.ts.map +1 -1
  80. package/dist/js/src/video.d.ts +5 -5
  81. package/dist/js/src/video.d.ts.map +1 -1
  82. package/dist/js/tsconfig.build.tsbuildinfo +1 -1
  83. package/dist/webrtc/src/BaseConnection.d.ts +1 -1
  84. package/dist/webrtc/src/BaseConnection.d.ts.map +1 -1
  85. package/dist/webrtc/src/RTCPeer.d.ts +8 -1
  86. package/dist/webrtc/src/RTCPeer.d.ts.map +1 -1
  87. package/package.json +3 -3
  88. package/src/{Room.test.ts → BaseRoomSession.test.ts} +188 -5
  89. package/src/{Room.ts → BaseRoomSession.ts} +106 -60
  90. package/src/Client.ts +20 -12
  91. package/src/RoomSession.test.ts +28 -0
  92. package/src/RoomSession.ts +117 -0
  93. package/src/{RoomDevice.test.ts → RoomSessionDevice.test.ts} +7 -4
  94. package/src/{RoomDevice.ts → RoomSessionDevice.ts} +11 -8
  95. package/src/{RoomScreenShare.test.ts → RoomSessionScreenShare.test.ts} +7 -4
  96. package/src/{RoomScreenShare.ts → RoomSessionScreenShare.ts} +8 -5
  97. package/src/createClient.ts +7 -5
  98. package/src/createRoomObject.ts +36 -9
  99. package/src/features/mediaElements/mediaElementsSagas.ts +9 -18
  100. package/src/index.ts +5 -2
  101. package/src/joinRoom.ts +1 -0
  102. package/src/utils/interfaces.ts +38 -7
  103. package/src/video.ts +18 -5
  104. package/dist/js/src/Room.d.ts +0 -58
  105. package/dist/js/src/Room.d.ts.map +0 -1
  106. package/dist/js/src/RoomDevice.d.ts +0 -13
  107. package/dist/js/src/RoomDevice.d.ts.map +0 -1
  108. package/dist/js/src/RoomScreenShare.d.ts +0 -13
  109. package/dist/js/src/RoomScreenShare.d.ts.map +0 -1
package/dist/index.umd.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * SignalWire JS SDK v3.2.1 (https://signalwire.com)
2
+ * SignalWire JS SDK v3.4.0-dev.202110121150.a4432f2.0 (https://signalwire.com)
3
3
  * Copyright 2018-2021 SignalWire
4
4
  * Licensed under MIT(https://github.com/signalwire/signalwire-js/blob/main/LICENSE)
5
5
  */
6
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SignalWire={})}(this,(function(e){"use strict";var t,r=new Uint8Array(16);function n(){if(!t&&!(t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return t(r)}var o=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function i(e){return"string"==typeof e&&o.test(e)}for(var s=[],a=0;a<256;++a)s.push((a+256).toString(16).substr(1));function c(e,t,r){var o=(e=e||{}).random||(e.rng||n)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){r=r||0;for(var a=0;a<16;++a)t[r+a]=o[a];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase();if(!i(r))throw TypeError("Stringified UUID is invalid");return r}(o)}var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},d={exports:{}};!function(e){var t,r;t=u,r=function(){var e=function(){},t="undefined",r=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"];function o(e,t){var r=e[t];if("function"==typeof r.bind)return r.bind(e);try{return Function.prototype.bind.call(r,e)}catch(t){return function(){return Function.prototype.apply.apply(r,[e,arguments])}}}function i(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function s(n){return"debug"===n&&(n="log"),typeof console!==t&&("trace"===n&&r?i:void 0!==console[n]?o(console,n):void 0!==console.log?o(console,"log"):e)}function a(t,r){for(var o=0;o<n.length;o++){var i=n[o];this[i]=o<t?e:this.methodFactory(i,t,r)}this.log=this.debug}function c(e,r,n){return function(){typeof console!==t&&(a.call(this,r,n),this[e].apply(this,arguments))}}function u(e,t,r){return s(e)||c.apply(this,arguments)}function d(e,r,o){var i,s=this,c="loglevel";function d(){var e;if(typeof window!==t&&c){try{e=window.localStorage[c]}catch(e){}if(typeof e===t)try{var r=window.document.cookie,n=r.indexOf(encodeURIComponent(c)+"=");-1!==n&&(e=/^([^;]+)/.exec(r.slice(n))[1])}catch(e){}return void 0===s.levels[e]&&(e=void 0),e}}"string"==typeof e?c+=":"+e:"symbol"==typeof e&&(c=void 0),s.name=e,s.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},s.methodFactory=o||u,s.getLevel=function(){return i},s.setLevel=function(r,o){if("string"==typeof r&&void 0!==s.levels[r.toUpperCase()]&&(r=s.levels[r.toUpperCase()]),!("number"==typeof r&&r>=0&&r<=s.levels.SILENT))throw"log.setLevel() called with invalid level: "+r;if(i=r,!1!==o&&function(e){var r=(n[e]||"silent").toUpperCase();if(typeof window!==t&&c){try{return void(window.localStorage[c]=r)}catch(e){}try{window.document.cookie=encodeURIComponent(c)+"="+r+";"}catch(e){}}}(r),a.call(s,r,e),typeof console===t&&r<s.levels.SILENT)return"No console available for logging"},s.setDefaultLevel=function(e){d()||s.setLevel(e,!1)},s.enableAll=function(e){s.setLevel(s.levels.TRACE,e)},s.disableAll=function(e){s.setLevel(s.levels.SILENT,e)};var l=d();null==l&&(l=null==r?"WARN":r),s.setLevel(l,!1)}var l=new d,h={};l.getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=h[e];return t||(t=h[e]=new d(e,l.getLevel(),l.methodFactory)),t};var f=typeof window!==t?window.log:void 0;return l.noConflict=function(){return typeof window!==t&&window.log===l&&(window.log=f),l},l.getLoggers=function(){return h},l.default=l,l},e.exports?e.exports=r():t.log=r()}(d);var l=d.exports;function h(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function v(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var m="function"==typeof Symbol&&Symbol.observable||"@@observable",g=function(){return Math.random().toString(36).substring(7).split("").join(".")},y={INIT:"@@redux/INIT"+g(),REPLACE:"@@redux/REPLACE"+g(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+g()}};function b(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function _(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error(v(0));if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error(v(1));return r(_)(e,t)}if("function"!=typeof e)throw new Error(v(2));var o=e,i=t,s=[],a=s,c=!1;function u(){a===s&&(a=s.slice())}function d(){if(c)throw new Error(v(3));return i}function l(e){if("function"!=typeof e)throw new Error(v(4));if(c)throw new Error(v(5));var t=!0;return u(),a.push(e),function(){if(t){if(c)throw new Error(v(6));t=!1,u();var r=a.indexOf(e);a.splice(r,1),s=null}}}function h(e){if(!b(e))throw new Error(v(7));if(void 0===e.type)throw new Error(v(8));if(c)throw new Error(v(9));try{c=!0,i=o(i,e)}finally{c=!1}for(var t=s=a,r=0;r<t.length;r++)(0,t[r])();return e}function f(e){if("function"!=typeof e)throw new Error(v(10));o=e,h({type:y.REPLACE})}function p(){var e,t=l;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new Error(v(11));function r(){e.next&&e.next(d())}return r(),{unsubscribe:t(r)}}})[m]=function(){return this},e}return h({type:y.INIT}),(n={dispatch:h,subscribe:l,getState:d,replaceReducer:f})[m]=p,n}function S(e){for(var t=Object.keys(e),r={},n=0;n<t.length;n++){var o=t[n];"function"==typeof e[o]&&(r[o]=e[o])}var i,s=Object.keys(r);try{!function(e){Object.keys(e).forEach((function(t){var r=e[t];if(void 0===r(void 0,{type:y.INIT}))throw new Error(v(12));if(void 0===r(void 0,{type:y.PROBE_UNKNOWN_ACTION()}))throw new Error(v(13))}))}(r)}catch(e){i=e}return function(e,t){if(void 0===e&&(e={}),i)throw i;for(var n=!1,o={},a=0;a<s.length;a++){var c=s[a],u=e[c],d=(0,r[c])(u,t);if(void 0===d)throw new Error(v(14));o[c]=d,n=n||d!==u}return(n=n||s.length!==Object.keys(e).length)?o:e}}function w(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function E(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){return function(){var r=e.apply(void 0,arguments),n=function(){throw new Error(v(15))},o={getState:r.getState,dispatch:function(){return n.apply(void 0,arguments)}},i=t.map((function(e){return e(o)}));return n=w.apply(void 0,i)(r.dispatch),p(p({},r),{},{dispatch:n})}}}function k(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map((function(e){return"'"+e+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function C(e){return!!e&&!!e[le]}function O(e){return!!e&&(function(e){if(!e||"object"!=typeof e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;var r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return r===Object||"function"==typeof r&&Function.toString.call(r)===he}(e)||Array.isArray(e)||!!e[de]||!!e.constructor[de]||R(e)||j(e))}function T(e,t,r){void 0===r&&(r=!1),0===I(e)?(r?Object.keys:fe)(e).forEach((function(n){r&&"symbol"==typeof n||t(n,e[n],e)})):e.forEach((function(r,n){return t(n,r,e)}))}function I(e){var t=e[le];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:R(e)?2:j(e)?3:0}function P(e,t){return 2===I(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function A(e,t,r){var n=I(e);2===n?e.set(t,r):3===n?(e.delete(t),e.add(r)):e[t]=r}function x(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function R(e){return se&&e instanceof Map}function j(e){return ae&&e instanceof Set}function M(e){return e.o||e.t}function L(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=pe(e);delete t[le];for(var r=fe(t),n=0;n<r.length;n++){var o=r[n],i=t[o];!1===i.writable&&(i.writable=!0,i.configurable=!0),(i.get||i.set)&&(t[o]={configurable:!0,writable:!0,enumerable:i.enumerable,value:e[o]})}return Object.create(Object.getPrototypeOf(e),t)}function D(e,t){return void 0===t&&(t=!1),V(e)||C(e)||!O(e)||(I(e)>1&&(e.set=e.add=e.clear=e.delete=N),Object.freeze(e),t&&T(e,(function(e,t){return D(t,!0)}),!0)),e}function N(){k(2)}function V(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function $(e){var t=ve[e];return t||k(18,e),t}function U(){return oe}function W(e,t){t&&($("Patches"),e.u=[],e.s=[],e.v=t)}function q(e){F(e),e.p.forEach(Q),e.p=null}function F(e){e===oe&&(oe=e.l)}function K(e){return oe={p:[],l:oe,h:e,m:!0,_:0}}function Q(e){var t=e[le];0===t.i||1===t.i?t.j():t.O=!0}function B(e,t){t._=t.p.length;var r=t.p[0],n=void 0!==e&&e!==r;return t.h.g||$("ES5").S(t,e,n),n?(r[le].P&&(q(t),k(4)),O(e)&&(e=H(t,e),t.l||G(t,e)),t.u&&$("Patches").M(r[le],e,t.u,t.s)):e=H(t,r,[]),q(t),t.u&&t.v(t.u,t.s),e!==ue?e:void 0}function H(e,t,r){if(V(t))return t;var n=t[le];if(!n)return T(t,(function(o,i){return z(e,n,t,o,i,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return G(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var o=4===n.i||5===n.i?n.o=L(n.k):n.o;T(3===n.i?new Set(o):o,(function(t,i){return z(e,n,o,t,i,r)})),G(e,o,!1),r&&e.u&&$("Patches").R(n,r,e.u,e.s)}return n.o}function z(e,t,r,n,o,i){if(C(o)){var s=H(e,o,i&&t&&3!==t.i&&!P(t.D,n)?i.concat(n):void 0);if(A(r,n,s),!C(s))return;e.m=!1}if(O(o)&&!V(o)){if(!e.h.F&&e._<1)return;H(e,o),t&&t.A.l||G(e,o)}}function G(e,t,r){void 0===r&&(r=!1),e.h.F&&e.m&&D(t,r)}function J(e,t){var r=e[le];return(r?M(r):e)[t]}function X(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function Y(e){e.P||(e.P=!0,e.l&&Y(e.l))}function Z(e){e.o||(e.o=L(e.t))}function ee(e,t,r){var n=R(t)?$("MapSet").N(t,r):j(t)?$("MapSet").T(t,r):e.g?function(e,t){var r=Array.isArray(e),n={i:r?1:0,A:t?t.A:U(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=n,i=me;r&&(o=[n],i=ge);var s=Proxy.revocable(o,i),a=s.revoke,c=s.proxy;return n.k=c,n.j=a,c}(t,r):$("ES5").J(t,r);return(r?r.A:U()).p.push(n),n}function te(e){return C(e)||k(22,e),function e(t){if(!O(t))return t;var r,n=t[le],o=I(t);if(n){if(!n.P&&(n.i<4||!$("ES5").K(n)))return n.t;n.I=!0,r=re(t,o),n.I=!1}else r=re(t,o);return T(r,(function(t,o){n&&function(e,t){return 2===I(e)?e.get(t):e[t]}(n.t,t)===o||A(r,t,e(o))})),3===o?new Set(r):r}(e)}function re(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return L(e)}var ne,oe,ie="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),se="undefined"!=typeof Map,ae="undefined"!=typeof Set,ce="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,ue=ie?Symbol.for("immer-nothing"):((ne={})["immer-nothing"]=!0,ne),de=ie?Symbol.for("immer-draftable"):"__$immer_draftable",le=ie?Symbol.for("immer-state"):"__$immer_state",he=""+Object.prototype.constructor,fe="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,pe=Object.getOwnPropertyDescriptors||function(e){var t={};return fe(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)})),t},ve={},me={get:function(e,t){if(t===le)return e;var r=M(e);if(!P(r,t))return function(e,t,r){var n,o=X(t,r);return o?"value"in o?o.value:null===(n=o.get)||void 0===n?void 0:n.call(e.k):void 0}(e,r,t);var n=r[t];return e.I||!O(n)?n:n===J(e.t,t)?(Z(e),e.o[t]=ee(e.A.h,n,e)):n},has:function(e,t){return t in M(e)},ownKeys:function(e){return Reflect.ownKeys(M(e))},set:function(e,t,r){var n=X(M(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=J(M(e),t),i=null==o?void 0:o[le];if(i&&i.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(x(r,o)&&(void 0!==r||P(e.t,t)))return!0;Z(e),Y(e)}return e.o[t]===r&&"number"!=typeof r||(e.o[t]=r,e.D[t]=!0,!0)},deleteProperty:function(e,t){return void 0!==J(e.t,t)||t in e.t?(e.D[t]=!1,Z(e),Y(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=M(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},defineProperty:function(){k(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){k(12)}},ge={};T(me,(function(e,t){ge[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),ge.deleteProperty=function(e,t){return me.deleteProperty.call(this,e[0],t)},ge.set=function(e,t,r){return me.set.call(this,e[0],t,r,e[0])};var ye=new(function(){function e(e){var t=this;this.g=ce,this.F=!0,this.produce=function(e,r,n){if("function"==typeof e&&"function"!=typeof r){var o=r;r=e;var i=t;return function(e){var t=this;void 0===e&&(e=o);for(var n=arguments.length,s=Array(n>1?n-1:0),a=1;a<n;a++)s[a-1]=arguments[a];return i.produce(e,(function(e){var n;return(n=r).call.apply(n,[t,e].concat(s))}))}}var s;if("function"!=typeof r&&k(6),void 0!==n&&"function"!=typeof n&&k(7),O(e)){var a=K(t),c=ee(t,e,void 0),u=!0;try{s=r(c),u=!1}finally{u?q(a):F(a)}return"undefined"!=typeof Promise&&s instanceof Promise?s.then((function(e){return W(a,n),B(e,a)}),(function(e){throw q(a),e})):(W(a,n),B(s,a))}if(!e||"object"!=typeof e){if((s=r(e))===ue)return;return void 0===s&&(s=e),t.F&&D(s,!0),s}k(21,e)},this.produceWithPatches=function(e,r){return"function"==typeof e?function(r){for(var n=arguments.length,o=Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];return t.produceWithPatches(r,(function(t){return e.apply(void 0,[t].concat(o))}))}:[t.produce(e,r,(function(e,t){n=e,o=t})),n,o];var n,o},"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze)}var t=e.prototype;return t.createDraft=function(e){O(e)||k(8),C(e)&&(e=te(e));var t=K(this),r=ee(this,e,void 0);return r[le].C=!0,F(t),r},t.finishDraft=function(e,t){var r=(e&&e[le]).A;return W(r,t),B(void 0,r)},t.setAutoFreeze=function(e){this.F=e},t.setUseProxies=function(e){e&&!ce&&k(20),this.g=e},t.applyPatches=function(e,t){var r;for(r=t.length-1;r>=0;r--){var n=t[r];if(0===n.path.length&&"replace"===n.op){e=n.value;break}}var o=$("Patches").$;return C(e)?o(e,t):this.produce(e,(function(e){return o(e,t.slice(r+1))}))},e}()),be=ye.produce;function _e(e,t){return e===t}function Se(e,t,r){if(null===t||null===r||t.length!==r.length)return!1;for(var n=t.length,o=0;o<n;o++)if(!e(t[o],r[o]))return!1;return!0}function we(e){return function(t){var r=t.dispatch,n=t.getState;return function(t){return function(o){return"function"==typeof o?o(r,n,e):t(o)}}}}ye.produceWithPatches.bind(ye),ye.setAutoFreeze.bind(ye),ye.setUseProxies.bind(ye),ye.applyPatches.bind(ye),ye.createDraft.bind(ye),ye.finishDraft.bind(ye),function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n]}((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_e,r=null,n=null;return function(){return Se(t,r,arguments)||(n=e.apply(null,arguments)),r=arguments,n}}));var Ee=we();Ee.withExtraArgument=we;var ke,Ce=(ke=function(e,t){return(ke=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}ke(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),Oe=function(e,t){for(var r=0,n=t.length,o=e.length;r<n;r++,o++)e[o]=t[r];return e},Te=Object.defineProperty,Ie=Object.prototype.hasOwnProperty,Pe=Object.getOwnPropertySymbols,Ae=Object.prototype.propertyIsEnumerable,xe=function(e,t,r){return t in e?Te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},Re=function(e,t){for(var r in t||(t={}))Ie.call(t,r)&&xe(e,r,t[r]);if(Pe)for(var n=0,o=Pe(t);n<o.length;n++)Ae.call(t,r=o[n])&&xe(e,r,t[r]);return e},je="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?w:w.apply(null,arguments)},Me=function(e){function t(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var o=e.apply(this,r)||this;return Object.setPrototypeOf(o,t.prototype),o}return Ce(t,e),Object.defineProperty(t,Symbol.species,{get:function(){return t},enumerable:!1,configurable:!0}),t.prototype.concat=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.prototype.concat.apply(this,t)},t.prototype.prepend=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return 1===e.length&&Array.isArray(e[0])?new(t.bind.apply(t,Oe([void 0],e[0].concat(this)))):new(t.bind.apply(t,Oe([void 0],e.concat(this))))},t}(Array);function Le(e){var t,r=function(e){return function(e){void 0===e&&(e={});var t=e.thunk,r=void 0===t||t,n=new Me;return r&&(function(e){return"boolean"==typeof e}(r)?n.push(Ee):n.push(Ee.withExtraArgument(r.extraArgument))),n}(e)},n=e||{},o=n.reducer,i=void 0===o?void 0:o,s=n.middleware,a=void 0===s?r():s,c=n.devTools,u=void 0===c||c,d=n.preloadedState,l=void 0===d?void 0:d,h=n.enhancers,f=void 0===h?void 0:h;if("function"==typeof i)t=i;else{if(!function(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(i))throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');t=S(i)}var p=a;"function"==typeof p&&(p=p(r));var v=E.apply(void 0,p),m=w;u&&(m=je(Re({trace:!1},"object"==typeof u&&u)));var g=[v];return Array.isArray(f)?g=Oe([v],f):"function"==typeof f&&(g=f(g)),_(t,l,m.apply(void 0,g))}function De(e,t){function r(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];if(t){var o=t.apply(void 0,r);if(!o)throw new Error("prepareAction did not return an object");return Re(Re({type:e,payload:o.payload},"meta"in o&&{meta:o.meta}),"error"in o&&{error:o.error})}return{type:e,payload:r[0]}}return r.toString=function(){return""+e},r.type=e,r.match=function(t){return t.type===e},r}function Ne(e){var t,r={},n=[],o={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(n in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[n]=t,o},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),o},addDefaultCase:function(e){return t=e,o}};return e(o),[r,n,t]}function Ve(e){var t=e.name,r=e.initialState;if(!t)throw new Error("`name` is a required option for createSlice");var n=e.reducers||{},o="function"==typeof e.extraReducers?Ne(e.extraReducers):[e.extraReducers],i=o[0],s=void 0===i?{}:i,a=o[1],c=void 0===a?[]:a,u=o[2],d=void 0===u?void 0:u,l=Object.keys(n),h={},f={},p={};l.forEach((function(e){var r,o,i=n[e],s=t+"/"+e;"reducer"in i?(r=i.reducer,o=i.prepare):r=i,h[e]=r,f[s]=r,p[e]=o?De(s,o):De(s)}));var v=function(e,t,r,n){void 0===r&&(r=[]),function(){function e(e,t){var r=o[e];return r?r.enumerable=t:o[e]=r={configurable:!0,enumerable:t,get:function(){return me.get(this[le],e)},set:function(t){me.set(this[le],e,t)}},r}function t(e){for(var t=e.length-1;t>=0;t--){var o=e[t][le];if(!o.P)switch(o.i){case 5:n(o)&&Y(o);break;case 4:r(o)&&Y(o)}}}function r(e){for(var t=e.t,r=e.k,n=fe(r),o=n.length-1;o>=0;o--){var i=n[o];if(i!==le){var s=t[i];if(void 0===s&&!P(t,i))return!0;var a=r[i],c=a&&a[le];if(c?c.t!==s:!x(a,s))return!0}}var u=!!t[le];return n.length!==fe(t).length+(u?0:1)}function n(e){var t=e.k;if(t.length!==e.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!r||r.get)}var o={};!function(e,t){ve.ES5||(ve.ES5=t)}(0,{J:function(t,r){var n=Array.isArray(t),o=function(t,r){if(t){for(var n=Array(r.length),o=0;o<r.length;o++)Object.defineProperty(n,""+o,e(o,!0));return n}var i=pe(r);delete i[le];for(var s=fe(i),a=0;a<s.length;a++){var c=s[a];i[c]=e(c,t||!!i[c].enumerable)}return Object.create(Object.getPrototypeOf(r),i)}(n,t),i={i:n?5:4,A:r?r.A:U(),P:!1,I:!1,D:{},l:r,t:t,k:o,o:null,O:!1,C:!1};return Object.defineProperty(o,le,{value:i,writable:!0}),o},S:function(e,r,o){o?C(r)&&r[le].A===e&&t(e.p):(e.u&&function e(t){if(t&&"object"==typeof t){var r=t[le];if(r){var o=r.t,i=r.k,s=r.D,a=r.i;if(4===a)T(i,(function(t){t!==le&&(void 0!==o[t]||P(o,t)?s[t]||e(i[t]):(s[t]=!0,Y(r)))})),T(o,(function(e){void 0!==i[e]||P(i,e)||(s[e]=!1,Y(r))}));else if(5===a){if(n(r)&&(Y(r),s.length=!0),i.length<o.length)for(var c=i.length;c<o.length;c++)s[c]=!1;else for(var u=o.length;u<i.length;u++)s[u]=!0;for(var d=Math.min(i.length,o.length),l=0;l<d;l++)void 0===s[l]&&e(i[l])}}}}(e.p[0]),t(e.p))},K:function(e){return 4===e.i?r(e):n(e)}})}();var o="function"==typeof t?Ne(t):[t,r,n],i=o[0],s=o[1],a=o[2],c=be(e,(function(){}));return function(e,t){void 0===e&&(e=c);var r=Oe([i[t.type]],s.filter((function(e){return(0,e.matcher)(t)})).map((function(e){return e.reducer})));return 0===r.filter((function(e){return!!e})).length&&(r=[a]),r.reduce((function(e,r){if(r){var n;if(C(e))return void 0===(n=r(e,t))?e:n;if(O(e))return be(e,(function(e){return r(e,t)}));if(void 0===(n=r(e,t))){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return n}return e}),e)}}(r,Re(Re({},s),f),c,d);return{name:t,reducer:v,actions:p,caseReducers:h}}var $e=function(e){return"@@redux-saga/"+e},Ue=$e("CANCEL_PROMISE"),We=$e("CHANNEL_END"),qe=$e("IO"),Fe=$e("MATCH"),Ke=$e("MULTICAST"),Qe=$e("SAGA_ACTION"),Be=$e("SELF_CANCELLATION"),He=$e("TASK"),ze=$e("TASK_CANCEL"),Ge=$e("TERMINATE"),Je=$e("LOCATION");function Xe(){return(Xe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var Ye=function(e){return null!=e},Ze=function(e){return"function"==typeof e},et=function(e){return"string"==typeof e},tt=Array.isArray,rt=function(e){return e&&Ze(e.then)},nt=function(e){return e&&Ze(e.next)&&Ze(e.throw)},ot=function e(t){return t&&(et(t)||st(t)||Ze(t)||tt(t)&&t.every(e))},it=function(e){return e&&Ze(e.take)&&Ze(e.close)},st=function(e){return Boolean(e)&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype},at=function(e){return function(){return!0}}(),ct=function(){},ut=function(e){return e},dt=function(e,t){Xe(e,t),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach((function(r){e[r]=t[r]}))};function lt(e,t){var r=e.indexOf(t);r>=0&&e.splice(r,1)}function ht(e){var t=!1;return function(){t||(t=!0,e())}}var ft=function(e){throw e},pt=function(e){return{value:e,done:!0}};function vt(e,t,r){void 0===t&&(t=ft),void 0===r&&(r="iterator");var n={meta:{name:r},next:e,throw:t,return:pt,isSagaIterator:!0};return"undefined"!=typeof Symbol&&(n[Symbol.iterator]=function(){return n}),n}function mt(e,t){var r=t.sagaStack;console.error(e),console.error(r)}var gt=function(e){return Array.apply(null,new Array(e))},yt=function(e){return function(t){return e(Object.defineProperty(t,Qe,{value:!0}))}},bt=function(e){return e===Ge},_t=function(e){return e===ze},St=function(e){return bt(e)||_t(e)};function wt(e,t){var r,n=Object.keys(e),o=n.length,i=0,s=tt(e)?gt(o):{},a={};return n.forEach((function(e){var n=function(n,a){r||(a||St(n)?(t.cancel(),t(n,a)):(s[e]=n,++i===o&&(r=!0,t(s))))};n.cancel=ct,a[e]=n})),t.cancel=function(){r||(r=!0,n.forEach((function(e){return a[e].cancel()})))},a}function Et(e){return{name:e.name||"anonymous",location:kt(e)}}function kt(e){return e[Je]}var Ct={isEmpty:at,put:ct,take:ct},Ot="TAKE",Tt="CALL",It="FORK",Pt=function(e,t){var r;return(r={})[qe]=!0,r.combinator=!1,r.type=e,r.payload=t,r};function At(e,t){var r,n=null;return Ze(e)?r=e:(tt(e)?(n=e[0],r=e[1]):(n=e.context,r=e.fn),n&&et(r)&&Ze(n[r])&&(r=n[r])),{context:n,fn:r,args:t}}function xt(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Pt(Tt,At(e,r))}var Rt=[],jt=0;function Mt(e){try{Nt(),e()}finally{Vt()}}function Lt(e){Rt.push(e),jt||(Nt(),$t())}function Dt(e){try{return Nt(),e()}finally{$t()}}function Nt(){jt++}function Vt(){jt--}function $t(){var e;for(Vt();!jt&&void 0!==(e=Rt.shift());)Mt(e)}var Ut=function(e){return function(t){return e.some((function(e){return Qt(e)(t)}))}},Wt=function(e){return function(t){return e(t)}},qt=function(e){return function(t){return t.type===String(e)}},Ft=function(e){return function(t){return t.type===e}},Kt=function(){return at};function Qt(e){var t="*"===e?Kt:et(e)?qt:tt(e)?Ut:function(e){return Ze(e)&&e.hasOwnProperty("toString")}(e)?qt:Ze(e)?Wt:st(e)?Ft:null;if(null===t)throw new Error("invalid pattern: "+e);return t(e)}var Bt={type:We},Ht=function(e){return e&&e.type===We};function zt(e){void 0===e&&(e=function(e,t){void 0===e&&(e=10);var r=new Array(e),n=0,o=0,i=0,s=function(){if(0!=n){var t=r[i];return r[i]=null,n--,i=(i+1)%e,t}},a=function(){for(var e=[];n;)e.push(s());return e};return{isEmpty:function(){return 0==n},put:function(t){var s;n<e||(s=2*e,r=a(),n=r.length,o=r.length,i=0,r.length=s,e=s),function(t){r[o]=t,o=(o+1)%e,n++}(t)},take:s,flush:a}}(void 0));var t=!1,r=[];return{take:function(n){t&&e.isEmpty()?n(Bt):e.isEmpty()?(r.push(n),n.cancel=function(){lt(r,n)}):n(e.take())},put:function(n){if(!t){if(0===r.length)return e.put(n);r.shift()(n)}},flush:function(r){t&&e.isEmpty()?r(Bt):r(e.flush())},close:function(){if(!t){t=!0;var e=r;r=[];for(var n=0,o=e.length;n<o;n++)(0,e[n])(Bt)}}}}function Gt(){var e,t,r,n,o,i,s=(t=!1,n=r=[],o=function(){n===r&&(n=r.slice())},i=function(){t=!0;var e=r=n;n=[],e.forEach((function(e){e(Bt)}))},(e={})[Ke]=!0,e.put=function(e){if(!t)if(Ht(e))i();else for(var o=r=n,s=0,a=o.length;s<a;s++){var c=o[s];c[Fe](e)&&(c.cancel(),c(e))}},e.take=function(e,r){void 0===r&&(r=Kt),t?e(Bt):(e[Fe]=r,o(),n.push(e),e.cancel=ht((function(){o(),lt(n,e)})))},e.close=i,e),a=s.put;return s.put=function(e){e[Qe]?a(e):Lt((function(){a(e)}))},s}function Jt(e,t){var r=e[Ue];Ze(r)&&(t.cancel=r),e.then(t,(function(e){t(e,!0)}))}var Xt,Yt=0,Zt=function(){return++Yt};function er(e){e.isRunning()&&e.cancel()}var tr=((Xt={}).TAKE=function(e,t,r){var n=t.channel,o=void 0===n?e.channel:n,i=t.pattern,s=t.maybe,a=function(e){e instanceof Error?r(e,!0):!Ht(e)||s?r(e):r(Ge)};try{o.take(a,Ye(i)?Qt(i):null)}catch(e){return void r(e,!0)}r.cancel=a.cancel},Xt.PUT=function(e,t,r){var n=t.channel,o=t.action,i=t.resolve;Lt((function(){var t;try{t=(n?n.put:e.dispatch)(o)}catch(e){return void r(e,!0)}i&&rt(t)?Jt(t,r):r(t)}))},Xt.ALL=function(e,t,r,n){var o=n.digestEffect,i=Yt,s=Object.keys(t);if(0!==s.length){var a=wt(t,r);s.forEach((function(e){o(t[e],i,a[e],e)}))}else r(tt(t)?[]:{})},Xt.RACE=function(e,t,r,n){var o=n.digestEffect,i=Yt,s=Object.keys(t),a=tt(t)?gt(s.length):{},c={},u=!1;s.forEach((function(e){var t=function(t,n){u||(n||St(t)?(r.cancel(),r(t,n)):(r.cancel(),u=!0,a[e]=t,r(a)))};t.cancel=ct,c[e]=t})),r.cancel=function(){u||(u=!0,s.forEach((function(e){return c[e].cancel()})))},s.forEach((function(e){u||o(t[e],i,c[e],e)}))},Xt.CALL=function(e,t,r,n){var o=t.context,i=t.fn,s=t.args,a=n.task;try{var c=i.apply(o,s);if(rt(c))return void Jt(c,r);if(nt(c))return void dr(e,c,a.context,Yt,Et(i),!1,r);r(c)}catch(e){r(e,!0)}},Xt.CPS=function(e,t,r){var n=t.context,o=t.fn,i=t.args;try{var s=function(e,t){!function(e){return null==e}(e)?r(e,!0):r(t)};o.apply(n,i.concat(s)),s.cancel&&(r.cancel=s.cancel)}catch(e){r(e,!0)}},Xt.FORK=function(e,t,r,n){var o=t.fn,i=t.detached,s=n.task,a=function(e){var t=e.context,r=e.fn,n=e.args;try{var o=r.apply(t,n);if(nt(o))return o;var i=!1;return vt((function(e){return i?{value:e,done:!0}:(i=!0,{value:o,done:!rt(o)})}))}catch(e){return vt((function(){throw e}))}}({context:t.context,fn:o,args:t.args}),c=function(e,t){return e.isSagaIterator?{name:e.meta.name}:Et(t)}(a,o);Dt((function(){var t=dr(e,a,s.context,Yt,c,i,void 0);i?r(t):t.isRunning()?(s.queue.addTask(t),r(t)):t.isAborted()?s.queue.abort(t.error()):r(t)}))},Xt.JOIN=function(e,t,r,n){var o=n.task,i=function(e,t){if(e.isRunning()){var r={task:o,cb:t};t.cancel=function(){e.isRunning()&&lt(e.joiners,r)},e.joiners.push(r)}else e.isAborted()?t(e.error(),!0):t(e.result())};if(tt(t)){if(0===t.length)return void r([]);var s=wt(t,r);t.forEach((function(e,t){i(e,s[t])}))}else i(t,r)},Xt.CANCEL=function(e,t,r,n){t===Be?er(n.task):tt(t)?t.forEach(er):er(t),r()},Xt.SELECT=function(e,t,r){var n=t.selector,o=t.args;try{r(n.apply(void 0,[e.getState()].concat(o)))}catch(e){r(e,!0)}},Xt.ACTION_CHANNEL=function(e,t,r){var n=t.pattern,o=zt(t.buffer),i=Qt(n),s=function t(r){Ht(r)||e.channel.take(t,i),o.put(r)},a=o.close;o.close=function(){s.cancel(),a()},e.channel.take(s,i),r(o)},Xt.CANCELLED=function(e,t,r,n){r(n.task.isCancelled())},Xt.FLUSH=function(e,t,r){t.flush(r)},Xt.GET_CONTEXT=function(e,t,r,n){r(n.task.context[t])},Xt.SET_CONTEXT=function(e,t,r,n){dt(n.task.context,t),r()},Xt);function rr(e,t){return e+"?"+t}function nr(e){var t=e.name,r=e.location;return r?t+" "+rr(r.fileName,r.lineNumber):t}function or(e){var t,r=(t=[]).concat.apply(t,e.map((function(e){return e.cancelledTasks})));return r.length?["Tasks cancelled due to error:"].concat(r).join("\n"):""}var ir=null,sr=[],ar=function(e){e.crashedEffect=ir,sr.push(e)},cr=function(){ir=null,sr.length=0},ur=function(){var e,t=sr[0],r=sr.slice(1),n=t.crashedEffect?(e=kt(t.crashedEffect))?e.code+" "+rr(e.fileName,e.lineNumber):"":null;return["The above error occurred in task "+nr(t.meta)+(n?" \n when executing effect "+n:"")].concat(r.map((function(e){return" created by "+nr(e.meta)})),[or(sr)]).join("\n")};function dr(e,t,r,n,o,i,s){var a=e.finalizeRunEffect((function(t,r,n){rt(t)?Jt(t,n):nt(t)?dr(e,t,u.context,r,o,!1,n):t&&t[qe]?(0,tr[t.type])(e,t.payload,n,d):n(t)}));l.cancel=ct;var c={meta:o,cancel:function(){0===c.status&&(c.status=1,l(ze))},status:0},u=function(e,t,r,n,o,i,s){var a;void 0===s&&(s=ct);var c,u,d=0,l=null,h=[],f=Object.create(r),p=function(e,t,r){var n,o=[],i=!1;function s(e){h.push.apply(h,p.getTasks().map((function(e){return e.meta.name}))),c(),r(e,!0)}function a(t){o.push(t),t.cont=function(a,c){i||(lt(o,t),t.cont=ct,c?s(a):(t===e&&(n=a),o.length||(i=!0,r(n))))}}function c(){i||(i=!0,o.forEach((function(e){e.cont=ct,e.cancel()})),o=[])}return a(e),{addTask:a,cancelAll:c,abort:s,getTasks:function(){return o}}}(t,0,v);function v(t,r){if(r){if(d=2,ar({meta:o,cancelledTasks:h}),m.isRoot){var n=ur();cr(),e.onError(t,{sagaStack:n})}u=t,l&&l.reject(t)}else t===ze?d=1:1!==d&&(d=3),c=t,l&&l.resolve(t);m.cont(t,r),m.joiners.forEach((function(e){e.cb(t,r)})),m.joiners=null}var m=((a={})[He]=!0,a.id=n,a.meta=o,a.isRoot=i,a.context=f,a.joiners=[],a.queue=p,a.cancel=function(){0===d&&(d=1,p.cancelAll(),v(ze,!1))},a.cont=s,a.end=v,a.setContext=function(e){dt(f,e)},a.toPromise=function(){return l||((e={}).promise=new Promise((function(t,r){e.resolve=t,e.reject=r})),l=e,2===d?l.reject(u):0!==d&&l.resolve(c)),l.promise;var e},a.isRunning=function(){return 0===d},a.isCancelled=function(){return 1===d||0===d&&1===t.status},a.isAborted=function(){return 2===d},a.result=function(){return c},a.error=function(){return u},a);return m}(e,c,r,n,o,i,s),d={task:u,digestEffect:h};return s&&(s.cancel=u.cancel),l(),u;function l(e,r){try{var o;r?(o=t.throw(e),cr()):_t(e)?(c.status=1,l.cancel(),o=Ze(t.return)?t.return(ze):{done:!0,value:ze}):o=bt(e)?Ze(t.return)?t.return():{done:!0}:t.next(e),o.done?(1!==c.status&&(c.status=3),c.cont(o.value)):h(o.value,n,l)}catch(e){if(1===c.status)throw e;c.status=2,c.cont(e,!0)}}function h(t,r,n,o){void 0===o&&(o="");var i,s=Zt();function c(r,o){i||(i=!0,n.cancel=ct,e.sagaMonitor&&(o?e.sagaMonitor.effectRejected(s,r):e.sagaMonitor.effectResolved(s,r)),o&&function(e){ir=e}(t),n(r,o))}e.sagaMonitor&&e.sagaMonitor.effectTriggered({effectId:s,parentEffectId:r,label:o,effect:t}),c.cancel=ct,n.cancel=function(){i||(i=!0,c.cancel(),c.cancel=ct,e.sagaMonitor&&e.sagaMonitor.effectCancelled(s))},a(t,s,c)}}function lr(e,t){for(var r=e.channel,n=void 0===r?Gt():r,o=e.dispatch,i=e.getState,s=e.context,a=void 0===s?{}:s,c=e.sagaMonitor,u=e.effectMiddlewares,d=e.onError,l=void 0===d?mt:d,h=arguments.length,f=new Array(h>2?h-2:0),p=2;p<h;p++)f[p-2]=arguments[p];var v,m=t.apply(void 0,f),g=Zt();if(c&&(c.rootSagaStarted=c.rootSagaStarted||ct,c.effectTriggered=c.effectTriggered||ct,c.effectResolved=c.effectResolved||ct,c.effectRejected=c.effectRejected||ct,c.effectCancelled=c.effectCancelled||ct,c.actionDispatched=c.actionDispatched||ct,c.rootSagaStarted({effectId:g,saga:t,args:f})),u){var y=w.apply(void 0,u);v=function(e){return function(t,r,n){return y((function(t){return e(t,r,n)}))(t)}}}else v=ut;var b={channel:n,dispatch:yt(o),getState:i,sagaMonitor:c,onError:l,finalizeRunEffect:v};return Dt((function(){var e=dr(b,m,a,g,Et(t),!0,void 0);return c&&c.effectResolved(g,e),e}))}function hr(e){var t,r=void 0===e?{}:e,n=r.context,o=void 0===n?{}:n,i=r.channel,s=void 0===i?Gt():i,a=r.sagaMonitor,c=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)t.indexOf(r=i[n])>=0||(o[r]=e[r]);return o}(r,["context","channel","sagaMonitor"]);function u(e){return t=lr.bind(null,Xe({},c,{context:o,channel:s,dispatch:e.dispatch,getState:e.getState,sagaMonitor:a})),function(e){return function(t){a&&a.actionDispatched&&a.actionDispatched(t);var r=e(t);return s.put(t),r}}}return u.run=function(){return t.apply(void 0,arguments)},u.setContext=function(e){dt(o,e)},u}var fr={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}function o(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function i(e,t,n,i,s){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new o(n,i||e,s),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,n,o=[];if(0===this._eventsCount)return o;for(n in e=this._events)t.call(e,n)&&o.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},a.prototype.listeners=function(e){var t=this._events[r?r+e:e];if(!t)return[];if(t.fn)return[t.fn];for(var n=0,o=t.length,i=new Array(o);n<o;n++)i[n]=t[n].fn;return i},a.prototype.listenerCount=function(e){var t=this._events[r?r+e:e];return t?t.fn?1:t.length:0},a.prototype.emit=function(e,t,n,o,i,s){var a=r?r+e:e;if(!this._events[a])return!1;var c,u,d=this._events[a],l=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),l){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,n),!0;case 4:return d.fn.call(d.context,t,n,o),!0;case 5:return d.fn.call(d.context,t,n,o,i),!0;case 6:return d.fn.call(d.context,t,n,o,i,s),!0}for(u=1,c=new Array(l-1);u<l;u++)c[u-1]=arguments[u];d.fn.apply(d.context,c)}else{var h,f=d.length;for(u=0;u<f;u++)switch(d[u].once&&this.removeListener(e,d[u].fn,void 0,!0),l){case 1:d[u].fn.call(d[u].context);break;case 2:d[u].fn.call(d[u].context,t);break;case 3:d[u].fn.call(d[u].context,t,n);break;case 4:d[u].fn.call(d[u].context,t,n,o);break;default:if(!c)for(h=1,c=new Array(l-1);h<l;h++)c[h-1]=arguments[h];d[u].fn.apply(d[u].context,c)}}return!0},a.prototype.on=function(e,t,r){return i(this,e,t,r,!1)},a.prototype.once=function(e,t,r){return i(this,e,t,r,!0)},a.prototype.removeListener=function(e,t,n,o){var i=r?r+e:e;if(!this._events[i])return this;if(!t)return s(this,i),this;var a=this._events[i];if(a.fn)a.fn!==t||o&&!a.once||n&&a.context!==n||s(this,i);else{for(var c=0,u=[],d=a.length;c<d;c++)(a[c].fn!==t||o&&!a[c].once||n&&a[c].context!==n)&&u.push(a[c]);u.length?this._events[i]=1===u.length?u[0]:u:s(this,i)}return this},a.prototype.removeAllListeners=function(e){var t;return e?this._events[t=r?r+e:e]&&s(this,t):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=r,a.EventEmitter=a,e.exports=a}(fr);var pr,vr=fr.exports,mr=Object.defineProperty,gr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,br=Object.getOwnPropertySymbols,_r=Object.prototype.hasOwnProperty,Sr=Object.prototype.propertyIsEnumerable,wr=(e,t,r)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Er=(e,t)=>{for(var r in t||(t={}))_r.call(t,r)&&wr(e,r,t[r]);if(br)for(var r of br(t))Sr.call(t,r)&&wr(e,r,t[r]);return e},kr=(e,t)=>gr(e,yr(t)),Cr=(e,t)=>{var r={};for(var n in e)_r.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&br)for(var n of br(e))t.indexOf(n)<0&&Sr.call(e,n)&&(r[n]=e[n]);return r},Or=(e,t)=>{for(var r in(e=>{mr(e,"__esModule",{value:!0})})(e),t)mr(e,r,{get:t[r],enumerable:!0})},Tr=(e,t,r)=>(wr(e,"symbol"!=typeof t?t+"":t,r),r);!function(e){e[e.CONNECTING=0]="CONNECTING",e[e.OPEN=1]="OPEN",e[e.CLOSING=2]="CLOSING",e[e.CLOSED=3]="CLOSED"}(pr||(pr={}));var Ir=["room.started","room.ended"].map((e=>`video.${e}`)),Pr=()=>(new Date).toISOString().replace("T"," ").replace("Z",""),Ar=l.getLogger("signalwire"),xr=Ar.methodFactory;Ar.methodFactory=(e,t,r)=>{let n=xr(e,t,r);return function(){let e=[Pr(),"-"];for(let t=0;t<arguments.length;t++)e.push(arguments[t]);n.apply(void 0,e)}};var Rr=Ar.getLevel();Ar.setLevel(Rr);var jr=(e,t)=>{let{result:r={},error:n}=e;if(n)return{error:n};let{code:o,node_id:i,result:s=null}=r;return o&&"200"!==o?{error:r}:null===s?(t&&(r.node_id=t),{result:r}):s?jr(s,i):{result:r}},Mr={propsToUpdateValue:["updated","layers"]},Lr=(e,t=Mr)=>Object.entries(e).reduce(((e,[r,n])=>(e[Dr(r)]="object"==typeof n&&n?Array.isArray(n)&&t.propsToUpdateValue.includes(r)?n.map((e=>"string"==typeof e?Dr(e):Lr(e))):Lr(n):n,e)),{}),Dr=e=>e.split("_").reduce(((e,t,r)=>{let n=t.trim().charAt(0),o=t.substr(1).toLowerCase();return`${e}${0===r?n.toLowerCase():n.toUpperCase()}${o}`}),""),Nr=({event:e,namespace:t})=>("string"==typeof e&&(e=Ur({event:e,namespace:t}),e=$r(e)),e),Vr=/[A-Z]/g,$r=e=>e.replace(Vr,(e=>`_${e.toLowerCase()}`)),Ur=({namespace:e,event:t})=>!e||t.startsWith(e)?t:`${e}:${t}`,Wr=(e,t)=>(Object.keys(t).forEach((t=>{if(e.prototype.hasOwnProperty(t))throw new Error(`[extendComponent] Duplicated method name: ${t}`)})),Object.defineProperties(e.prototype,t),e),qr=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch(t){return e}},Fr=/^(ws|wss):\/\//,Kr=e=>Ir.includes(e),Qr=e=>{var t;return Er({jsonrpc:"2.0",id:null!=(t=e.id)?t:c()},e)},Br=e=>Er({jsonrpc:"2.0"},e),Hr={major:3,minor:0,revision:0},zr=e=>Qr({method:"signalwire.connect",params:Er({version:Hr},e)}),Gr={id:"callID",destinationNumber:"destination_number",remoteCallerName:"remote_caller_id_name",remoteCallerNumber:"remote_caller_id_number",callerName:"caller_id_name",callerNumber:"caller_id_number"},Jr=e=>{if(e.hasOwnProperty("dialogParams")){let t=Cr(e.dialogParams,["remoteSdp","localStream","remoteStream"]);for(let e in Gr)e&&t.hasOwnProperty(e)&&(t[Gr[e]]=t[e],delete t[e]);e.dialogParams=t}return e},Xr=e=>(t={})=>Qr({method:e,params:Jr(t)}),Yr=Xr("verto.invite"),Zr=Xr("verto.bye"),en=Xr("verto.info"),tn=(e,t)=>Br({id:e,result:{method:t}}),rn={};Or(rn,{authErrorAction:()=>cn,authSuccessAction:()=>un,closeConnectionAction:()=>sn,destroyAction:()=>on,executeAction:()=>an,getCustomSagaActionType:()=>yn,initAction:()=>nn,makeCustomSagaAction:()=>gn,sessionConnectedAction:()=>fn,sessionDisconnectedAction:()=>pn,sessionReconnectingAction:()=>vn,socketClosedAction:()=>dn,socketErrorAction:()=>ln,socketMessageAction:()=>hn});var nn=De("swSdk/init"),on=De("swSdk/destroy"),sn=De("swSdk/closeConnection"),an=De("swSdk/executeRequest"),cn=De("auth/error"),un=De("auth/success"),dn=De("socket/closed"),ln=De("socket/error"),hn=De("socket/message"),fn=De("session.connected"),pn=De("session.disconnected"),vn=De("session.reconnecting"),mn=(e,t)=>`${t.type}/${e}`,gn=(e,t)=>kr(Er({},t),{type:mn(e,t)}),yn=(e,t)=>mn(e,t),bn=({name:e="",initialState:t,reducers:r,extraReducers:n})=>Ve({name:e,initialState:t,reducers:r,extraReducers:e=>{e.addCase(on.type,(()=>t)),"function"==typeof n&&n(e)}}),_n=bn({name:"session",initialState:{protocol:"",iceServers:[],authStatus:"unknown",authError:void 0,authCount:0},reducers:{connected:(e,{payload:t})=>{var r,n;e.authStatus="authorized",e.authCount+=1,e.protocol=null!=(r=null==t?void 0:t.protocol)?r:"",e.iceServers=null!=(n=null==t?void 0:t.ice_servers)?n:[]},authStatus:(e,{payload:t})=>{e.authStatus=t}},extraReducers:e=>{e.addCase(cn.type,((e,{payload:t})=>{e.authStatus="unauthorized",e.authError=t.error}))}}),{actions:Sn,reducer:wn}=_n,En=bn({name:"components",initialState:{byId:{}},reducers:{upsert:(e,{payload:t})=>{t.id in e.byId?Object.keys(t).forEach((r=>{e.byId[t.id][r]=t[r]})):e.byId[t.id]=t},executeSuccess:(e,{payload:t})=>{let{componentId:r,requestId:n,response:o}=t;e.byId[r]&&(e.byId[r].responses=e.byId[r].responses||{},e.byId[r].responses[n]=o)},executeFailure:(e,{payload:t})=>{let{componentId:r,requestId:n,error:o,action:i}=t;e.byId[r]&&(e.byId[r].errors=e.byId[r].errors||{},e.byId[r].errors[n]={action:i,jsonrpc:o})}}}),{actions:kn,reducer:Cn}=En,On={queue:[]},Tn=bn({name:"executeQueue",initialState:On,reducers:{add:(e,{payload:t})=>{e.queue.push(t)},clean:()=>On}}),{actions:In,reducer:Pn}=Tn,An=S({components:Cn,session:wn,executeQueue:Pn}),xn=function(e){return"@@redux-saga/"+e},Rn=xn("CANCEL_PROMISE"),jn=xn("IO"),Mn=xn("MULTICAST"),Ln=function(e){return"function"==typeof e},Dn=function(e){return"string"==typeof e},Nn=Array.isArray,Vn=function e(t){return t&&(Dn(t)||Un(t)||Ln(t)||Nn(t)&&t.every(e))},$n=function(e){return e&&Ln(e.take)&&Ln(e.close)},Un=function(e){return Boolean(e)&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype},Wn=function(e){return e},qn="TAKE",Fn="CALL",Kn="FORK",Qn="SELECT",Bn=function(e,t){var r;return(r={})[jn]=!0,r.combinator=!1,r.type=e,r.payload=t,r};function Hn(e,t){return void 0===e&&(e="*"),Vn(e)?Bn(qn,{pattern:e}):function(e){return $n(e)&&e[Mn]}(e)&&function(e){return null!=e}(t)&&Vn(t)?Bn(qn,{channel:e,pattern:t}):$n(e)?Bn(qn,{channel:e}):void 0}function zn(e,t){return function(e){return null==e}(t)&&(t=e,e=void 0),Bn("PUT",{channel:e,action:t})}function Gn(e,t){var r,n=null;return Ln(e)?r=e:(Nn(e)?(n=e[0],r=e[1]):(n=e.context,r=e.fn),n&&Dn(r)&&Ln(n[r])&&(r=n[r])),{context:n,fn:r,args:t}}function Jn(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Bn(Fn,Gn(e,r))}function Xn(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Bn(Kn,Gn(e,r))}function Yn(e){void 0===e&&(e=Wn);for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Bn(Qn,{selector:e,args:r})}var Zn=Jn.bind(null,(function(e,t){void 0===t&&(t=!0);var r,n=new Promise((function(n){r=setTimeout(n,e,t)}));return n[Rn]=function(){clearTimeout(r)},n})),eo={};Or(eo,{getAuthStatus:()=>no,getIceServers:()=>to,getSession:()=>ro});var to=({session:e})=>{var t;return null!=(t=null==e?void 0:e.iceServers)?t:[]},ro=e=>e.session,no=({session:e})=>e.authStatus,oo=({components:e},t)=>{var r;return null==(r=e.byId)?void 0:r[t]};function*io(e){function*t(t){let{componentId:r,requestId:n,method:o,params:i}=t.payload;try{let t=(({method:e,params:t})=>Qr({method:e,params:t}))({id:n,method:o,params:i}),s=yield Jn(e.execute,t);r&&n&&(yield zn(kn.executeSuccess({componentId:r,requestId:n,response:s})))}catch(e){Ar.warn("worker error",r,e),r&&n&&(yield zn(kn.executeFailure({componentId:r,requestId:n,action:t,error:e})))}}for(;;){let e=yield Hn(an.type);"authorized"===(yield Yn(no))&&(yield Xn(t,e))}}function*so({session:e,sessionChannel:t,pubSubChannel:r}){function*n({jsonrpc:t,nodeId:r}){var n,o;Ar.debug("vertoWorker",t,r);let{id:i,method:s,params:a={}}=t;switch(s){case"verto.media":{let e={id:a.callID,state:"early",remoteSDP:a.sdp,nodeId:r};yield zn(kn.upsert(e)),yield zn(an({method:"video.message",params:{message:tn(i,s),node_id:r}}));break}case"verto.answer":{let e={id:a.callID,state:"active",nodeId:r};(null==a?void 0:a.sdp)&&(e.remoteSDP=a.sdp),yield zn(kn.upsert(e)),yield zn(an({method:"video.message",params:{message:tn(i,s),node_id:r}}));break}case"verto.bye":{let e={id:a.callID,state:"hangup",nodeId:r,byeCause:null!=(n=null==a?void 0:a.cause)?n:"",byeCauseCode:null!=(o=null==a?void 0:a.causeCode)?o:0,redirectDestination:null==a?void 0:a.redirectDestination};yield zn(kn.upsert(e)),yield zn(an({method:"video.message",params:{message:tn(i,s),node_id:r}}));break}case"verto.ping":yield zn(an({method:"video.message",params:{message:tn(i,s),node_id:r}}));break;case"verto.punt":return e.disconnect();case"verto.mediaParams":{let{callID:e,mediaParams:t={}}=a;if(!e){Ar.debug("Invalid mediaParams event",a);break}let r={id:e};(null==t?void 0:t.video)&&(r.videoConstraints=t.video),(null==t?void 0:t.audio)&&(r.audioConstraints=t.audio),yield zn(kn.upsert(r));break}case"verto.info":return Ar.debug("Verto Info",a);case"verto.clientReady":return Ar.debug("Verto ClientReady",a);case"verto.announce":return Ar.debug("Verto Announce",a);default:return Ar.debug(`Unknown Verto method: ${s}`,a)}}function*o(e){switch(e.event_type){case"video.room.subscribed":yield zn(kn.upsert({id:e.params.call_id,roomId:e.params.room.room_id,roomSessionId:e.params.room.room_session_id,memberId:e.params.member_id})),yield zn(r,{type:"video.room.joined",payload:e.params});break;case"video.member.updated":{let{member:{updated:t=[]}}=e.params;for(let n of t){let t=`video.member.updated.${n}`;yield zn(r,{type:t,payload:e.params})}break}case"video.member.joined":{let{member:t}=e.params;(null==t?void 0:t.parent_id)&&(yield Yn(oo,t.parent_id))&&(yield zn(kn.upsert({id:t.id,roomId:e.params.room_id,roomSessionId:e.params.room_session_id,memberId:t.id})));break}case"video.member.talking":{let{member:t}=e.params;if("talking"in t){let n=t.talking?"started":"ended";yield zn(r,{type:`video.member.talking.${n}`,payload:e.params});let o=t.talking?"start":"stop";yield zn(r,{type:`video.member.talking.${o}`,payload:e.params})}break}}yield zn(r,{type:e.event_type,payload:e.params})}function*i(e){if((e=>"webrtc.message"===(null==e?void 0:e.event_type))(e))yield Xn(n,{jsonrpc:e.params,nodeId:e.node_id});else{if(!(e=>{var t;return!!(null==(t=null==e?void 0:e.event_type)?void 0:t.startsWith("video."))})(e))return Ar.debug("Unknown broadcast event",e);yield Xn(o,e)}}function*s(e){if(Ar.debug("Inbound WebSocket Message",e),e.type!==hn.type)return void(yield zn(e));let{method:t,params:r}=e.payload;switch(t){case"signalwire.event":yield Xn(i,r);break;default:return Ar.debug(`Unknown message: ${t}`,e)}}for(;;)try{for(;;){let e=yield Hn(t);yield Xn(s,e)}}catch(e){Ar.error("sessionChannelWorker error:",e)}finally{Ar.debug("sessionChannelWorker finally")}}function ao(e){return function(t,r){void 0===r&&(r=Ct);var n,o,i=!1,s=zt(r),a=function(){i||(i=!0,Ze(n)&&n(),s.close())};return n=ht((o=function(e){Ht(e)?a():s.put(e)},e.dispatch=e=>{o(e)},n=()=>{Ar.debug("sessionChannel unsubscribe"),e.disconnect()})),i&&n(),{take:s.take,flush:s.flush,close:a}}()}var co=e=>{var t;return(null==(t=null==e?void 0:e.room)?void 0:t.room_session_id)||(null==e?void 0:e.room_session_id)||""};function*uo({pubSubChannel:e,emitter:t}){for(;;){let{type:r,payload:n}=yield Hn(e);try{let e=co(n);Kr(r)&&t.emit(r,n),t.emit(Nr({namespace:e,event:r}),n)}catch(e){Ar.error(e)}}}var lo=({executeQueue:e})=>e;function*ho(){function*e(e){"authorized"!==(yield Yn(no))&&(yield zn(In.add(e.payload)))}for(;;){let t=yield Hn(an.type);yield Xn(e,t)}}function*fo(){let{queue:e}=yield Yn(lo);for(let t of e)yield zn(an(t));yield zn(In.clean())}var po=class extends Error{constructor(e,t){super(t),this.code=e,this.message=t,Tr(this,"name","AuthError"),Object.setPrototypeOf(this,po.prototype)}};function*vo(e,t){let r=new e(t),n=yield Jn(ao,r),o=yield Jn(zt);yield Xn(so,{session:r,sessionChannel:n,pubSubChannel:o}),yield Xn(go,{session:r,sessionChannel:n,pubSubChannel:o,userOptions:t}),r.connect(),yield Hn(on.type),o.close(),n.close()}function*mo({session:e,sessionChannel:t,pubSubChannel:r}){"reconnecting"===e.status?(yield zn(r,vn()),yield Zn(2e3*Math.random()),yield Jn(e.connect)):(t.close(),yield zn(r,pn()))}function*go(e){for(;;){let t=yield Hn([un.type,cn.type,ln.type,dn.type]);switch(t.type){case un.type:yield Xn(yo,e);break;case cn.type:{let{error:e}=t.payload;throw e?new po(e.code,e.error):new Error("Unauthorized")}case ln.type:break;case dn.type:yield Xn(mo,e)}}}function*yo(e){let{session:t,pubSubChannel:r,userOptions:n}=e,o=yield Xn(uo,{pubSubChannel:r,emitter:n.emitter}),i=yield Xn(io,t);yield zn(Sn.connected(t.rpcConnectResult)),yield zn(r,fn());let s=yield Xn(fo);yield Hn(sn.type),o.cancel(),i.cancel(),s.cancel()}var bo=e=>{let{componentListeners:t={},sessionListeners:r={},store:n,Component:o,customSagas:i=[]}=e,s=Object.keys(t),a=Object.keys(r);return e=>{let c=new o(kr(Er({},e),{store:n})),u=new Map,d=!0,l=n.subscribe((()=>{let e=n.getState(),o=oo(e,c.__uuid);if(!o)return;for(let e of s){if(!1===d)return;let r=`${c.__uuid}.${e}`,n=u.get(r),i=null==o?void 0:o[e];if(void 0!==i&&n!==i){u.set(r,i);let n=t[e];"string"==typeof n?c[n](o):n(o)}}let i=ro(e);for(let e of a){if(!1===d)return;let t=`session.${e}`,n=u.get(t),o=i[e];if(void 0!==o&&n!==o){u.set(t,o);let n=r[e];"string"==typeof n?c[n](i):"function"==typeof n&&n(i)}}}));n.dispatch(kn.upsert({id:c.__uuid}));let h=null==i?void 0:i.map((e=>n.runSaga(e,{instance:c,runSaga:n.runSaga})));return c.destroyer=()=>{d=!1,l(),u.clear(),(null==h?void 0:h.length)&&h.forEach((e=>e.cancel()))},c}},_o=e=>e,So=class{constructor(e){this.options=e,Tr(this,"uuid",c()),Tr(this,"_eventsPrefix",""),Tr(this,"_eventsRegisterQueue",new Set),Tr(this,"_eventsEmitQueue",new Set),Tr(this,"_eventsNamespace"),Tr(this,"_eventsTransformsCache",new Map),Tr(this,"_requests",new Map),Tr(this,"_customSagaTriggers",new Map),Tr(this,"_destroyer"),Tr(this,"_emitterTransforms",new Map),Tr(this,"_emitterListenersCache",new Map),Tr(this,"_trackedEvents",[])}get __uuid(){return this.uuid}_getNamespacedEvent(e){return Nr({event:e,namespace:this._eventsNamespace})}_getPrefixedEvent(e){return this._eventsPrefix&&"string"==typeof e&&!e.startsWith(this._eventsPrefix)?`${this._eventsPrefix}.${e}`:e}set destroyer(e){this._destroyer=e}get store(){return this.options.store}get emitter(){return this.options.emitter}addEventToRegisterQueue(e){let[t,r]=e.params;return Ar.trace("Adding event to the register queue",{event:t,fn:r}),this._eventsRegisterQueue.add({type:e.type,params:e.params}),this.emitter}addEventToEmitQueue(e,t){Ar.trace("Adding to the emit queue",e),this._eventsEmitQueue.add({event:e,args:t})}shouldAddToQueue(){return void 0===this._eventsNamespace}getEventHandlerTransformCacheKey(e){return this._getNamespacedEvent(e)}runAndCacheEventHandlerTransform({event:e,transform:t,payload:r}){let n=this.getEventHandlerTransformCacheKey(e);if(!this._eventsTransformsCache.has(n)){let e=t.instanceFactory(r);return this._eventsTransformsCache.set(n,e),e}return this._eventsTransformsCache.get(n)}cleanupEventHandlerTransformCache({event:e,force:t}){let r=this.getEventHandlerTransformCacheKey(e),n=this._getNamespacedEvent(e),o=this._eventsTransformsCache.get(r),i=this.listenerCount(n);return o&&(t||i<=1)?(o.destroy(),this._eventsTransformsCache.delete(r)):(Ar.debug("[cleanupEventHandlerTransformCache] Key wasn't cached",r),!1)}getEmitterListenersMapByEventName(e){var t;return null!=(t=this._emitterListenersCache.get(e))?t:new Map}getAndRemoveStableEventHandler(e,t){let r=this.getEmitterListenersMapByEventName(e);if(t&&r.has(t)){let n=r.get(t);return r.delete(t),this._emitterListenersCache.set(e,r),n}return t}createStableEventHandler(e,t){return r=>{let n=Nr({event:e}),o=this._emitterTransforms.get(n);if(!o)return t(r);let i=this.runAndCacheEventHandlerTransform({event:e,transform:o,payload:r}),s=o.payloadTransform(r),a=new Proxy(i,{get:(e,t,n)=>"_eventsNamespace"===t&&o.getInstanceEventNamespace?o.getInstanceEventNamespace(r):"eventChannel"===t&&o.getInstanceEventChannel?o.getInstanceEventChannel(r):t in s?s[t]:Reflect.get(e,t,n)});return t(a)}}getOrCreateStableEventHandler(e,t){let r=this.getEmitterListenersMapByEventName(e),n=r.get(t);return n||(n=this.createStableEventHandler(e,t),r.set(t,n),this._emitterListenersCache.set(e,r)),n}trackEvent(e){this._trackedEvents=Array.from(new Set(this._trackedEvents.concat(e)))}untrackEvent(e){this._trackedEvents=this._trackedEvents.filter((t=>t!==e))}_getOptionsFromParams(e){let[t,...r]=e;return[this._getPrefixedEvent(t),...r]}on(e,t){if(this.shouldAddToQueue())return this.addEventToRegisterQueue({type:"on",params:[e,t]}),this.emitter;let[r,n]=this._getOptionsFromParams([e,t]),o=this.getOrCreateStableEventHandler(r,n),i=this._getNamespacedEvent(r);return Ar.trace("Registering event",i),this.trackEvent(r),this.emitter.on(i,o)}once(e,t){if(this.shouldAddToQueue())return this.addEventToRegisterQueue({type:"once",params:[e,t]}),this.emitter;let[r,n]=this._getOptionsFromParams([e,t]),o=this.getOrCreateStableEventHandler(r,n),i=this._getNamespacedEvent(r);return Ar.trace("Registering event",i),this.trackEvent(r),this.emitter.once(i,o)}off(e,t){if(this.shouldAddToQueue())return this.addEventToRegisterQueue({type:"off",params:[e,t]}),this.emitter;let[r,n]=this._getOptionsFromParams([e,t]),o=this.getAndRemoveStableEventHandler(r,n),i=this._getNamespacedEvent(r);return this.cleanupEventHandlerTransformCache({event:r,force:!o}),Ar.trace("Removing event listener",i),this.untrackEvent(r),this.emitter.off(i,o)}removeAllListeners(e){return this.shouldAddToQueue()?(this.addEventToRegisterQueue({type:"removeAllListeners",params:[e]}),this.emitter):e?this.off(e):(this.eventNames().forEach((e=>{this.off(e)})),this.emitter)}eventNames(){return this._trackedEvents}emit(e,...t){if(this.shouldAddToQueue())return this.addEventToEmitQueue(e,t),!1;let r=this._getPrefixedEvent(e),n=this._getNamespacedEvent(r);return Ar.trace("Emit on event:",n),this.emitter.emit(n,...t)}listenerCount(e){return this.emitter.listenerCount(e)}destroy(){var e;null==(e=this._destroyer)||e.call(this),this.removeAllListeners()}execute({method:e,params:t},{transformResolve:r=_o,transformReject:n=_o}={transformResolve:_o,transformReject:_o}){return new Promise(((o,i)=>{let s=c();this._requests.set(s,{resolve:o,reject:i,transformResolve:r,transformReject:n}),this.store.dispatch(an({requestId:s,componentId:this.__uuid,method:e,params:t}))}))}triggerCustomSaga(e){return new Promise(((t,r)=>{let n=c();this._customSagaTriggers.set(n,{resolve:t,reject:r}),this.store.dispatch(Er({dispatchId:n},gn(this.__uuid,e)))}))}settleCustomSagaTrigger({dispatchId:e,payload:t,kind:r}){let n=this._customSagaTriggers.get(e);n&&(n[r](t),this._customSagaTriggers.delete(e))}select(e){return e(this.store.getState())}onError(e){this._requests.forEach(((t,r)=>{void 0!==(null==e?void 0:e.errors[r])&&(t.reject(t.transformReject(e.errors[r])),this._requests.delete(r))}))}onSuccess(e){this._requests.forEach(((t,r)=>{void 0!==(null==e?void 0:e.responses[r])&&(t.resolve(t.transformResolve(e.responses[r])),this._requests.delete(r))}))}getStateProperty(e){return this[e]}flushEventsRegisterQueue(){this._eventsRegisterQueue.forEach((e=>{this[e.type](...e.params),this._eventsRegisterQueue.delete(e)}))}flushEventsEmitQueue(){this._eventsEmitQueue.forEach((e=>{let{event:t,args:r}=e;this.emit(t,...r),this._eventsEmitQueue.delete(e)}))}flushEventsQueue(){this.flushEventsRegisterQueue(),this.flushEventsEmitQueue()}_attachListeners(e){"string"==typeof e&&(this._eventsNamespace=e),this.flushEventsQueue()}getEmitterTransforms(){return new Map}applyEmitterTransforms(){this.getEmitterTransforms().forEach(((e,t)=>{Array.isArray(t)?t.forEach((t=>this._emitterTransforms.set(t,e))):this._emitterTransforms.set(t,e)}))}},wo=class extends So{constructor(e){super(e),this.options=e}onClientSubscribed(){this._attachListeners("")}connect(){return new Promise(((e,t)=>{let r=this.store.subscribe((()=>{let n=this.store.getState(),{authStatus:o,authError:i}=n.session;if("authorized"===o)e(this),r();else if("unauthorized"===o){let e=i?new po(i.code,i.error):new Error("Unauthorized");t(e),r()}}));this.store.dispatch(nn())}))}disconnect(){this.store.dispatch(on())}},Eo={audio_muted:!0,video_muted:!0,deaf:!0,on_hold:!0,visible:!0,input_volume:1,output_volume:1,input_sensitivity:1};Object.keys(Eo).map((e=>`video.member.updated.${e}`));var ko=Lr(Eo);Object.keys(ko).map((e=>`member.updated.${e}`));var Co={};Or(Co,{RoomSessionRecordingAPI:()=>zo,audioMuteMember:()=>No,audioUnmuteMember:()=>Vo,createRoomSessionRecordingObject:()=>Go,deafMember:()=>Wo,getLayouts:()=>Po,getMembers:()=>Ao,getRecordings:()=>Lo,hideVideoMuted:()=>Ro,removeMember:()=>Ho,setDeaf:()=>Fo,setHideVideoMuted:()=>Mo,setInputSensitivityMember:()=>Bo,setInputVolumeMember:()=>Ko,setLayout:()=>xo,setOutputVolumeMember:()=>Qo,showVideoMuted:()=>jo,startRecording:()=>Do,undeafMember:()=>qo,videoMuteMember:()=>$o,videoUnmuteMember:()=>Uo});var Oo=()=>{},To=(e,t={})=>({value:function(r={}){return this.execute({method:e,params:Er({room_session_id:this.roomSessionId},r)},t)}}),Io=(e,t={})=>({value:function(r={}){var n=r,{memberId:o}=n,i=Cr(n,["memberId"]);return this.execute({method:e,params:Er({room_session_id:this.roomSessionId,member_id:o||this.memberId},i)},t)}}),Po=To("video.list_available_layouts",{transformResolve:e=>({layouts:e.layouts})}),Ao=To("video.members.get",{transformResolve:e=>({members:e.members})}),xo=To("video.set_layout",{transformResolve:Oo}),Ro=To("video.hide_video_muted",{transformResolve:Oo}),jo=To("video.show_video_muted",{transformResolve:Oo}),Mo={value:function(e){return this.execute({method:e?"video.hide_video_muted":"video.show_video_muted",params:{room_session_id:this.roomSessionId}},{transformResolve:Oo})}},Lo=To("video.recording.list",{transformResolve:e=>({recordings:e.recordings})}),Do={value:function(){return new Promise((async e=>{let t=t=>{e(t)};this.on("video.__internal__.recording.start",t);try{let e=await this.execute({method:"video.recording.start",params:{room_session_id:this.roomSessionId}});this.emit("video.__internal__.recording.start",kr(Er({},e),{room_session_id:this.roomSessionId}))}catch(e){throw this.off("video.__internal__.recording.start",t),e}}))}},No=Io("video.member.audio_mute",{transformResolve:Oo}),Vo=Io("video.member.audio_unmute",{transformResolve:Oo}),$o=Io("video.member.video_mute",{transformResolve:Oo}),Uo=Io("video.member.video_unmute",{transformResolve:Oo}),Wo=Io("video.member.deaf",{transformResolve:Oo}),qo=Io("video.member.undeaf",{transformResolve:Oo}),Fo={value:function(e){return this.execute({method:e?"video.member.deaf":"video.member.undeaf",params:{room_session_id:this.roomSessionId,member_id:this.memberId}},{transformResolve:Oo})}},Ko=Io("video.member.set_input_volume",{transformResolve:Oo}),Qo=Io("video.member.set_output_volume",{transformResolve:Oo}),Bo=Io("video.member.set_input_sensitivity",{transformResolve:Oo}),Ho={value:function(e={}){var t=e,{memberId:r}=t,n=Cr(t,["memberId"]);if(!r)throw new TypeError('Invalid or missing "memberId" argument');return this.execute({method:"video.member.remove",params:Er({room_session_id:this.roomSessionId,member_id:r},n)},{transformResolve:Oo})}},zo=class extends So{async pause(){await this.execute({method:"video.recording.pause",params:{room_session_id:this.getStateProperty("roomSessionId"),recording_id:this.getStateProperty("id")}})}async resume(){await this.execute({method:"video.recording.resume",params:{room_session_id:this.getStateProperty("roomSessionId"),recording_id:this.getStateProperty("id")}})}async stop(){await this.execute({method:"video.recording.stop",params:{room_session_id:this.getStateProperty("roomSessionId"),recording_id:this.getStateProperty("id")}})}},Go=e=>bo({store:e.store,Component:zo,componentListeners:{errors:"onError",responses:"onSuccess"}})(e),Jo=Er({},eo);const Xo=()=>"undefined"!=typeof navigator&&!!navigator.mediaDevices,Yo=()=>{if(!Xo())throw new Error("The media devices API isn't supported in this environment");return navigator.mediaDevices},Zo=(e={audio:!0,video:!0})=>{try{return Yo().getUserMedia(e)}catch(t){switch(t.name){case"Error":Ar.error("navigator.mediaDevices.getUserMedia doesn't seem to be supported.");break;case"NotFoundError":Ar.error("No media tracks of the type specified were found that satisfy the given constraints.");break;case"NotReadableError":Ar.error("Hardware error occurred at the operating system, browser, or Web page level which prevented access to the device. This could have been caused by having the Camera or Mic being user by another application.");break;case"OverconstrainedError":Ar.error(`The constraint: ${t.constraint} cannot be met by the selected device.`),Ar.info("List of available constraints:",ni());break;case"NotAllowedError":Ar.error("The user has mostly likely denied access to the device. This could also happen if the browsing context is insecure (using HTTP rather than HTTPS)");break;case"TypeError":0===Object.keys(e).length?Ar.error('Constraints can\'t be empty nor have "video" and "audio" set to false.'):Ar.error("Please check that you are calling this method from a secure context (using HTTPS rather than HTTP).");break;case"SecurityError":Ar.error("User media support is disabled on the Document on which getUserMedia() was called. The mechanism by which user media support is enabled and disabled is left up to the individual user agent.")}throw t}},ei=e=>Yo().getDisplayMedia(e),ti=()=>Yo().enumerateDevices(),ri=async e=>{let t=await ti().catch((e=>[]));return e&&(t=t.filter((({kind:t})=>t===e))),t},ni=()=>Yo().getSupportedConstraints(),oi=e=>e&&e instanceof MediaStream,ii=()=>"sinkId"in HTMLMediaElement.prototype,si=async(e,t)=>{if(null!==e)if("string"==typeof t)if(ii())try{return await e.setSinkId(t)}catch(e){throw Ar.error("SecurityError"===e.name?`You need to use HTTPS for selecting audio output device: ${e}`:`Error: ${e}`),e}else Ar.warn("Browser does not support output device selection.");else Ar.warn(`Invalid speaker deviceId: '${t}'`);else Ar.warn("No HTMLMediaElement to attach the speakerId")},ai=e=>{var t;oi(e)&&(null===(t=null==e?void 0:e.getTracks())||void 0===t||t.forEach(ci))},ci=e=>{e&&"live"===e.readyState&&(e.stop(),e.dispatchEvent(new Event("ended")))},ui={camera:"videoinput",microphone:"audioinput",speaker:"audiooutput"},di=e=>{if(e)return ui[e]},li=async e=>{if("permissions"in navigator&&"function"==typeof navigator.permissions.query&&e)try{return"granted"===(await navigator.permissions.query({name:e})).state}catch(e){}return(async e=>{const t=await ri(e);return t.length?t.every((({deviceId:e,label:t})=>Boolean(e&&t))):(Ar.warn(`No ${e} devices to check for permissions!`),null)})(di(e))},hi=()=>li("camera"),fi=()=>li("microphone"),pi=()=>li("speaker"),vi=async(e,t=!1)=>{if(!1===await li(e)){const t=(e=>({audio:!e||"all"===e||"microphone"===e||"speaker"===e,video:!e||"all"===e||"camera"===e}))(e),r=await Zo(t);ai(r)}return gi(e,t)},mi=(e,t={})=>{const r=[];return e.filter((({deviceId:e,kind:n,groupId:o})=>{var i;if(!e||t.targets&&!(null===(i=t.targets)||void 0===i?void 0:i.includes(n)))return!1;if(!o)return!0;const s=`${n}-${o}`,a=!(null==t?void 0:t.excludeDefault)||"default"!==e;return!(r.includes(s)||!a||(r.push(s),0))}))},gi=async(e,t=!1)=>{const r=await ri(di(e));return!0===t?r:mi(r)},yi=async(e,t,r)=>{const n=await gi(r,!0);for(let r=0;r<n.length;r++){const{deviceId:o,label:i}=n[r];if(e===o||t===i)return o}return null},bi=e=>{const t=new Map;return e.forEach((e=>{e.deviceId&&t.set(e.deviceId,e)})),t},_i={camera:hi,microphone:fi,speaker:pi},Si=["camera","microphone","speaker"],wi=`Allowed targets are: '${Si.join("', '")}'`,Ei={speaker:ii},ki=async(e={})=>{const t=await(async e=>{var t;const r=(null!==(t=e.targets)&&void 0!==t?t:Si).filter((e=>!!Si.includes(e)||(Ar.warn(`We'll ignore the "${e}" target as it is not allowed. ${wi}.`),!1)));if(!r.length)throw new Error(`At least one "target" is required for createDeviceWatcher(). ${wi}.`);const n=await(async e=>{const t=e.targets;return(await Promise.all(t.map((e=>_i[e]())))).reduce(((e,r,n)=>{var o;const i=t[n];return e[!(i in Ei)||(null===(o=Ei[i])||void 0===o?void 0:o.call(Ei))?"supported":"unsupported"].push([i,!!r]),e}),{supported:[],unsupported:[]})})({targets:r});if(n.unsupported.length>0&&r.length===n.unsupported.length)throw new Error(`The platform doesn't support "${r.join(", ")}" as target/s, which means it's not possible to watch for changes on those devices.`);if(n.supported.every((([e,t])=>!t)))throw new Error("You must ask the user for permissions before being able to listen for device changes. Try calling getUserMedia() before calling `createDeviceWatcher()`.");let o=[];const i=n.supported.reduce(((e,[t,r])=>(r?e.push(t):o.push(t),e)),[]);if(i.length!==r.length){const e=n.unsupported.length>0?`The platform doesn't support "${n.unsupported.map((([e])=>e)).join(", ")}" as target/s, which means it's not possible to watch for changes on those devices. `:"",t=o.length>0?`The user hasn't granted permissions for the following targets: ${o.join(", ")}. `:"";Ar.warn(`${e}${t}We'll be watching for the following targets instead: "${i.join(", ")}"`)}return Ar.debug(`Watching these targets: "${i.join(", ")}"`),i})({targets:e.targets}),r=new vr,n=await ti(),o=null==t?void 0:t.reduce(((e,t)=>{const r=di(t);return r&&e.push(r),e}),[]);let i=mi(n,{excludeDefault:!0,targets:o});return Yo().ondevicechange=async()=>{const e=await ti(),t=i,n=mi(e,{excludeDefault:!0,targets:o});i=n;const s=((e,t)=>{const r=bi(e),n=bi(e),o=[];Ar.debug("[_getDeviceListDiff] <- oldDevices",e),Ar.debug("[_getDeviceListDiff] -> newDevices",t);const i=t.filter((e=>{const t=e.deviceId,i=r.get(t);return i&&(n.delete(t),e.label!==i.label&&o.push(e)),void 0===i}));return{updated:o.map((e=>({type:"updated",payload:e}))),removed:Array.from(n,(([e,t])=>t)).map((e=>({type:"removed",payload:e}))),added:i.map((e=>({type:"added",payload:e})))}})(t,n),a=s.added.length>0,c=s.removed.length>0,u=s.updated.length>0;(a||c||u)&&r.emit("changed",{changes:s,devices:n}),a&&r.emit("added",{changes:s.added,devices:n}),c&&r.emit("removed",{changes:s.removed,devices:n}),u&&r.emit("updated",{changes:s.updated,devices:n})},r},Ci=async e=>{Ar.info("RTCService.getUserMedia",e);const{audio:t,video:r}=e;if(t||r)try{return await Zo(e)}catch(e){throw Ar.error("getUserMedia error: ",e),e}},Oi=async e=>{let{audio:t=!0,micId:r}=e;const{micLabel:n=""}=e;if(r){const e=await yi(r,n,"microphone").catch((e=>null));e&&("boolean"==typeof t&&(t={}),t.deviceId={exact:e})}let{video:o=!1,camId:i}=e;const{camLabel:s=""}=e;if(i){const e=await yi(i,s,"camera").catch((e=>null));e&&("boolean"==typeof o&&(o={}),o.deviceId={exact:e})}return{audio:t,video:o}},Ti=e=>/^m=audio/.test(e),Ii=e=>/^m=video/.test(e),Pi=e=>{const t=e.split("\r\n"),r=t.findIndex((e=>/^a=rtpmap/.test(e)&&/opus\/48000/.test(e)));if(r<0)return e;const n=(e=>{const t=new RegExp("a=rtpmap:(\\d+) \\w+\\/\\d+"),r=e.match(t);return r&&2==r.length?r[1]:null})(t[r]),o=new RegExp(`a=fmtp:${n}`),i=t.findIndex((e=>o.test(e)));return i>=0?/stereo=1;/.test(t[i])||(t[i]+="; stereo=1; sprop-stereo=1"):t[r]+=`\r\na=fmtp:${n} stereo=1; sprop-stereo=1`,t.join("\r\n")};class Ai{constructor(e,t){this.call=e,this.type=t,this._negotiating=!1,this.options=e.options,Ar.debug("New Peer with type:",this.type,"Options:",this.options),this._onIce=this._onIce.bind(this),this.instance=new window.RTCPeerConnection(this.config),this._attachListeners()}get isOffer(){return"offer"===this.type}get isAnswer(){return"answer"===this.type}get isSimulcast(){return!0===this.options.simulcast}get isSfu(){return!0===this.options.sfu}get localVideoTrack(){const e=this._getSenderByKind("video");return(null==e?void 0:e.track)||null}get localAudioTrack(){const e=this._getSenderByKind("audio");return(null==e?void 0:e.track)||null}get hasAudioSender(){return!!this._getSenderByKind("audio")}get hasVideoSender(){return!!this._getSenderByKind("video")}get hasAudioReceiver(){return!!this._getReceiverByKind("audio")}get hasVideoReceiver(){return!!this._getReceiverByKind("video")}get config(){const{iceServers:e=[],rtcPeerConfig:t={}}=this.options,r=Object.assign({bundlePolicy:"max-compat",iceServers:e,sdpSemantics:"unified-plan"},t);return Ar.debug("RTC config",r),r}get localSdp(){var e,t;return null===(t=null===(e=this.instance)||void 0===e?void 0:e.localDescription)||void 0===t?void 0:t.sdp}stopTrackSender(e){var t,r;try{const n=this._getSenderByKind(e);if(!n)return Ar.info(`There is not a '${e}' sender to stop.`);n.track&&(ci(n.track),null===(r=null===(t=this.options)||void 0===t?void 0:t.localStream)||void 0===r||r.removeTrack(n.track))}catch(t){Ar.error("RTCPeer stopTrackSender error",e,t)}}async restoreTrackSender(e){var t,r;try{const n=this._getSenderByKind(e);if(!n)return Ar.info(`There is not a '${e}' sender to restore.`);if(n.track&&"ended"!==n.track.readyState)return Ar.info(`There is already an active ${e} track.`);const o=await Oi(this.options),i=await Ci({[e]:o[e]});if(i&&oi(i)){const o=i.getTracks().find((t=>t.kind===e));o&&(await n.replaceTrack(o),null===(r=null===(t=this.options)||void 0===t?void 0:t.localStream)||void 0===r||r.addTrack(o))}}catch(t){Ar.error("RTCPeer restoreTrackSender error",e,t)}}getDeviceId(e){try{const t=this._getSenderByKind(e);if(!t||!t.track)return null;const{deviceId:r=null}=t.track.getSettings();return r}catch(t){return Ar.error("RTCPeer getDeviceId error",e,t),null}}getTrackSettings(e){try{const t=this._getSenderByKind(e);return t&&t.track?t.track.getSettings():null}catch(t){return Ar.error("RTCPeer getTrackSettings error",e,t),null}}getDeviceLabel(e){try{const t=this._getSenderByKind(e);return t&&t.track?t.track.label:null}catch(t){return Ar.error("RTCPeer getDeviceLabel error",e,t),null}}restartIceWithRelayOnly(){try{const e=this.instance.getConfiguration();if("relay"===e.iceTransportPolicy)return Ar.warn("RTCPeer already with iceTransportPolicy relay only");const t=Object.assign(Object.assign({},e),{iceTransportPolicy:"relay"});this.instance.setConfiguration(t),this.instance.restartIce()}catch(e){Ar.error("RTCPeer restartIce error",e)}}async applyMediaConstraints(e,t){try{const r=this._getSenderByKind(e);if(!r||!r.track)return Ar.info("No sender to apply constraints",e,t);if("live"===r.track.readyState){const n=Object.assign(Object.assign({},r.track.getConstraints()),t),o=this.getDeviceId(e);o&&!this.options.screenShare&&(n.deviceId={exact:o}),Ar.info(`Apply ${e} constraints`,this.call.id,n),await r.track.applyConstraints(n)}}catch(r){Ar.error("Error applying constraints",e,t)}}_getSenderByKind(e){return this.instance.getSenders?this.instance.getSenders().find((({track:t})=>t&&t.kind===e)):(Ar.warn("RTCPeerConnection.getSenders() not available."),null)}_getReceiverByKind(e){return this.instance.getReceivers?this.instance.getReceivers().find((({track:t})=>t&&t.kind===e)):(Ar.warn("RTCPeerConnection.getReceivers() not available."),null)}async startNegotiation(e=!1){var t,r;if(this._negotiating)return Ar.warn("Skip twice onnegotiationneeded!");this._negotiating=!0;try{if((this.options.additionalDevice||this.options.screenShare)&&(null===(r=(t=this.instance).getTransceivers)||void 0===r||r.call(t).forEach((e=>{e.direction="sendonly"}))),this.instance.removeEventListener("icecandidate",this._onIce),this.instance.addEventListener("icecandidate",this._onIce),this.isOffer){Ar.debug("Trying to generate offer");const e=await this.instance.createOffer({voiceActivityDetection:!1});await this._setLocalDescription(e)}if(this.isAnswer){Ar.debug("Trying to generate answer"),await this._setRemoteDescription({sdp:this.options.remoteSdp,type:"offer"});const e=await this.instance.createAnswer({voiceActivityDetection:!1});await this._setLocalDescription(e)}e&&this._sdpReady()}catch(e){Ar.error(`Error creating ${this.type}:`,e)}}async onRemoteSdp(e){try{const t=this.isOffer?"answer":"offer";await this._setRemoteDescription({sdp:e,type:t})}catch(e){Ar.error(`Error handling remote SDP on call ${this.call.id}:`,e),this.call.hangup()}}async start(){this.options.localStream=await this._retrieveLocalStream();const{localStream:e=null}=this.options;if(e&&oi(e)){const t=e.getAudioTracks();Ar.debug("Local audio tracks: ",t);const r=e.getVideoTracks();if(Ar.debug("Local video tracks: ",r),this.isOffer&&"function"==typeof this.instance.addTransceiver){t.forEach((t=>{this.instance.addTransceiver(t,{direction:"sendrecv",streams:[e]})}));const n={direction:"sendrecv",streams:[e]};if(this.isSimulcast&&(n.sendEncodings=["0","1","2"].map((e=>({active:!0,rid:e,scaleResolutionDownBy:6*Number(e)||1})))),Ar.debug("Applying video transceiverParams",n),r.forEach((e=>{this.instance.addTransceiver(e,n)})),this.isSfu){const{msStreamsNumber:e=5}=this.options;Ar.debug("Add ",e,"recvonly MS Streams"),n.direction="recvonly";for(let t=0;t<Number(e);t++)this.instance.addTransceiver("video",n)}}else"function"==typeof this.instance.addTrack?(t.forEach((t=>{this.instance.addTrack(t,e)})),r.forEach((t=>{this.instance.addTrack(t,e)}))):this.instance.addStream(e)}this.isOffer?(this.options.negotiateAudio&&this._checkMediaToNegotiate("audio"),this.options.negotiateVideo&&this._checkMediaToNegotiate("video")):this.startNegotiation()}_checkMediaToNegotiate(e){if(!this._getSenderByKind(e)&&this.instance.addTransceiver){const t=this.instance.addTransceiver(e);Ar.debug("Add transceiver",e,t)}}_sdpReady(){if(clearTimeout(this._iceTimeout),this._iceTimeout=null,!this.instance.localDescription)return;const{sdp:e,type:t}=this.instance.localDescription;if(-1===e.indexOf("candidate"))return Ar.debug("No candidate - retry \n"),void this.startNegotiation(!0);Ar.debug("LOCAL SDP \n",`Type: ${t}`,"\n\n",e),this.instance.removeEventListener("icecandidate",this._onIce),this.call.onLocalSDPReady(this.instance.localDescription)}_onIce(e){this._iceTimeout||(this._iceTimeout=setTimeout((()=>this._sdpReady()),this.options.iceGatheringTimeout)),e.candidate?(Ar.debug("IceCandidate:",e.candidate),this.call.emit("icecandidate",e)):this._sdpReady()}_setLocalDescription(e){const{useStereo:t,googleMaxBitrate:r,googleMinBitrate:n,googleStartBitrate:o}=this.options;return e.sdp&&t&&(e.sdp=Pi(e.sdp)),e.sdp&&r&&n&&o&&(e.sdp=((e,t,r,n)=>{const o=e.split("\r\n");return o.forEach(((e,i)=>{/^a=fmtp:\d*/.test(e)?o[i]+=`;x-google-max-bitrate=${t};x-google-min-bitrate=${r};x-google-start-bitrate=${n}`:/^a=mid:(1|video)/.test(e)&&(o[i]+=`\r\nb=AS:${t}`)})),o.join("\r\n")})(e.sdp,r,n,o)),Ar.debug("LOCAL SDP \n",`Type: ${e.type}`,"\n\n",e.sdp),this.instance.setLocalDescription(e)}_setRemoteDescription(e){e.sdp&&this.options.useStereo&&(e.sdp=Pi(e.sdp)),e.sdp&&this.instance.localDescription&&(e.sdp=((e,t)=>{const r="\r\n",n=this.instance.localDescription.sdp.split(r);if(n.findIndex(Ti)<n.findIndex(Ii))return e;const o=e.split(r),i=o.findIndex(Ti),s=o.findIndex(Ii),a=o.slice(i,s),c=o.slice(s,o.length-1);return[...o.slice(0,i),...c,...a,""].join(r)})(e.sdp));const t=e;return Ar.debug("REMOTE SDP \n",`Type: ${e.type}`,"\n\n",e.sdp),this.instance.setRemoteDescription(t)}async _retrieveLocalStream(){if(oi(this.options.localStream))return this.options.localStream;const e=await Oi(this.options);return Ci(e)}_attachListeners(){this.instance.addEventListener("signalingstatechange",(()=>{switch(Ar.debug("signalingState:",this.instance.signalingState),this.instance.signalingState){case"stable":this._negotiating=!1;break;case"closed":delete this.instance;break;default:this._negotiating=!0}})),this.instance.addEventListener("negotiationneeded",(()=>{Ar.debug("Negotiation needed event"),this.startNegotiation()})),this.instance.addEventListener("iceconnectionstatechange",(()=>{Ar.debug("iceConnectionState:",this.instance.iceConnectionState)})),this.instance.addEventListener("icegatheringstatechange",(()=>{Ar.debug("iceGatheringState:",this.instance.iceGatheringState)})),this.instance.addEventListener("track",(e=>{this.call.emit("track",e),this.options.remoteStream=e.streams[0]})),this.instance.addEventListener("addstream",(e=>{e.stream&&(this.options.remoteStream=e.stream)}))}}const xi=["video.room.started","video.room.subscribed","video.room.updated","video.room.ended","video.member.joined","video.member.updated","video.member.left","video.member.talking","video.layout.changed","video.recording.started","video.recording.updated","video.recording.ended"],Ri=["video.room.screenshare"],ji=["video.room.additionaldevice"],Mi={destinationNumber:"room",remoteCallerName:"Outbound Call",remoteCallerNumber:"",callerName:"",callerNumber:"",audio:!0,video:{aspectRatio:16/9},useStereo:!1,attach:!1,screenShare:!1,additionalDevice:!1,userVariables:{},requestTimeout:1e4,autoApplyMediaParams:!0,iceGatheringTimeout:2e3};class Li extends So{constructor(e){var t;super(e),this.nodeId="",this.gotEarly=!1,this.doReinvite=!1,this._eventsPrefix="video",this.state="new",this.prevState="new";const r=null!==(t=null==e?void 0:e.iceServers)&&void 0!==t?t:this.select(Jo.getIceServers);this.options=Object.assign(Object.assign(Object.assign({},Mi),e),{iceServers:r}),this.setState("new"),Ar.debug("New Call with Options:",this.options)}get id(){return this.__uuid}get active(){return"active"===this.state}get trying(){return"trying"===this.state}get memberId(){return this._memberId}get roomId(){return this._roomId}get roomSessionId(){return this._roomSessionId}get localStream(){return this.options.localStream}get remoteStream(){return this.options.remoteStream}get messagePayload(){const{destinationNumber:e,attach:t,callerName:r,callerNumber:n,remoteCallerName:o,remoteCallerNumber:i,userVariables:s,screenShare:a,additionalDevice:c}=this.options;return{sessid:this.options.sessionid,dialogParams:{id:this.__uuid,destinationNumber:e,attach:t,callerName:r,callerNumber:n,remoteCallerName:o,remoteCallerNumber:i,userVariables:s,screenShare:a,additionalDevice:c}}}get cameraId(){return this.peer?this.peer.getDeviceId("video"):null}get cameraLabel(){return this.peer?this.peer.getDeviceLabel("video"):null}get microphoneId(){return this.peer?this.peer.getDeviceId("audio"):null}get microphoneLabel(){return this.peer?this.peer.getDeviceLabel("audio"):null}get withAudio(){return!!this.remoteStream&&this.remoteStream.getAudioTracks().length>0}get withVideo(){return!!this.remoteStream&&this.remoteStream.getVideoTracks().length>0}get localVideoTrack(){return this.peer.localVideoTrack}get localAudioTrack(){return this.peer.localAudioTrack}vertoExecute(e){const t={message:e,node_id:this.nodeId};return"verto.invite"===e.method&&(t.subscribe=this.options.screenShare?Ri:this.options.additionalDevice?ji:xi),this.execute({method:"video.message",params:t})}onStateChange(e){switch(Ar.debug("onStateChange",e),e.state){case"hangup":this._hangup(e);break;default:this.setState(e.state)}}onRemoteSDP(e){Ar.debug("onRemoteSDP",e),e.remoteSDP&&this.peer.onRemoteSdp(e.remoteSDP)}onRoomSubscribed(e){Ar.debug("onRoomSubscribed",e),this.nodeId=e.nodeId,this._roomId=e.roomId,this._roomSessionId=e.roomSessionId,this._memberId=e.memberId,this._attachListeners(this.options.additionalDevice||this.options.screenShare?e.memberId:e.roomSessionId),this.applyEmitterTransforms()}onVideoConstraints(e){Ar.debug("onVideoConstraints",e),(null==e?void 0:e.videoConstraints)&&this.peer.applyMediaConstraints("video",e.videoConstraints)}onAudioConstraints(e){Ar.debug("onAudioConstraints",e),(null==e?void 0:e.audioConstraints)&&this.peer.applyMediaConstraints("audio",e.audioConstraints)}updateCamera(e){return this.updateConstraints({video:Object.assign({aspectRatio:16/9},e)})}updateMicrophone(e){return this.updateConstraints({audio:e})}manageSendersWithConstraints(e){return!1===e.audio&&(Ar.info("Switching off the microphone"),this.stopOutboundAudio()),!1===e.video&&(Ar.info("Switching off the camera"),this.stopOutboundVideo()),e.audio||e.video}updateConstraints(e){return new Promise((async(t,r)=>{try{if(Ar.debug("updateConstraints trying constraints",this.__uuid,e),!Object.keys(e).length)return Ar.warn("Invalid constraints:",e);if(!this.manageSendersWithConstraints(e))return void Ar.debug("Either `video` and `audio` (or both) constraints were set to `false` so their corresponding senders (if any) were stopped");const r=await Zo(e);Ar.debug("updateConstraints got stream",r),this.options.localStream||(this.options.localStream=new MediaStream);const{instance:n}=this.peer,o=r.getTracks();for(let e=0;e<o.length;e++){const t=o[e];Ar.debug("updateConstraints apply track: ",t);const r=n.getTransceivers().find((({mid:e,sender:r,receiver:n})=>r.track&&r.track.kind===t.kind?(Ar.debug("Found transceiver by sender"),!0):n.track&&n.track.kind===t.kind?(Ar.debug("Found transceiver by receiver"),!0):null===e&&(Ar.debug("Found disassociated transceiver"),!0)));r&&r.sender?(Ar.debug("updateConstraints FOUND - replaceTrack on it and on localStream"),await r.sender.replaceTrack(t),Ar.debug("updateConstraints replaceTrack SUCCESS"),this.options.localStream.getTracks().forEach((e=>{var r;e.kind===t.kind&&e.id!==t.id&&(Ar.debug("updateConstraints stop old track and apply new one - "),ci(e),null===(r=this.options.localStream)||void 0===r||r.removeTrack(e))})),this.options.localStream.addTrack(t)):(Ar.debug("updateConstraints NOT FOUND - addTrack and start dancing!"),this.peer.type="offer",this.doReinvite=!0,this.options.localStream.addTrack(t),n.addTrack(t,this.options.localStream)),Ar.debug("updateConstraints Simply update mic/cam"),"audio"===t.kind?this.options.micId=t.getSettings().deviceId:"video"===t.kind&&(this.options.camId=t.getSettings().deviceId)}Ar.debug("updateConstraints done!"),t()}catch(e){Ar.error("updateConstraints",e),r(e)}}))}invite(){return new Promise((async(e,t)=>{this.direction="outbound",this.peer=new Ai(this,"offer");try{const t=()=>e(this);this.once("active",(()=>{this.off("destroy",t),t()})),this.once("destroy",t),await this.peer.start()}catch(e){Ar.error("Join error",e),t(e)}}))}answer(){return new Promise((async(e,t)=>{this.direction="inbound",this.peer=new Ai(this,"answer");try{const t=()=>e(this);this.once("active",(()=>{this.off("destroy",t),t()})),this.once("destroy",t),await this.peer.start()}catch(e){Ar.error("Answer error",e),t(e)}}))}onLocalSDPReady(e){const{type:t,sdp:r}=e;switch(t){case"offer":this.executeInvite(r);break;case"answer":Ar.warn("Unhandled verto.answer");break;default:return Ar.error(`Unknown SDP type: '${t}' on call ${this.id}`)}}async executeInvite(e){this.setState("requesting");try{const t=Yr(Object.assign(Object.assign({},this.messagePayload),{sdp:e})),r=await this.vertoExecute(t);Ar.debug("Invite response",r)}catch(e){const{action:t,jsonrpc:r}=e;Ar.error("Invite Error",r,t),"404"!==(null==r?void 0:r.code)&&"INVALID_MSG_UNSPECIFIED"!==(null==r?void 0:r.cause)||this.setState("hangup")}}async hangup(){try{const e=Zr(this.messagePayload);await this.vertoExecute(e)}catch(e){Ar.error("Hangup error:",e)}finally{this._hangup()}}dtmf(e){const t=en(Object.assign(Object.assign({},this.messagePayload),{dtmf:e}));this.vertoExecute(t)}doReinviteWithRelayOnly(){this.peer&&this.active&&this.peer.restartIceWithRelayOnly()}stopOutboundAudio(){this.peer&&this.active&&this.peer.stopTrackSender("audio")}restoreOutboundAudio(){this.peer&&this.active&&this.peer.restoreTrackSender("audio")}stopOutboundVideo(){this.peer&&this.active&&this.peer.stopTrackSender("video")}restoreOutboundVideo(){this.peer&&this.active&&this.peer.restoreTrackSender("video")}setState(e){switch(this.prevState=this.state,this.state=e,Ar.debug(`Call ${this.id} state change from ${this.prevState} to ${this.state}`),this.emit(this.state,this),e){case"purge":this._finalize();break;case"hangup":this.setState("destroy");break;case"destroy":this._finalize()}}_hangup(e={}){const{byeCause:t="NORMAL_CLEARING",byeCauseCode:r="16",redirectDestination:n}=e;return this.cause=t,this.causeCode=r,n&&this.trying&&this.peer.localSdp?(Ar.warn("Execute invite again"),this.executeInvite(this.peer.localSdp)):this.setState("hangup")}_finalize(){this.peer&&this.peer.instance&&(this.peer.instance.close(),delete this.peer);const{remoteStream:e,localStream:t}=this.options;ai(e),ai(t),this.destroy()}}const Di=()=>{const e=document.createElement("video");return e.muted=!0,e.autoplay=!0,e.playsInline=!0,e},Ni=({x:e,y:t,width:r,height:n})=>({top:`${t}%`,left:`${e}%`,width:`${r}%`,height:`${n}%`}),Vi=e=>t=>{const r=document.getElementById(t);r&&(r.style.display=e)},$i=De("swJs/audioSetSpeakerAction");function*Ui({element:e,room:t}){const r=rn.getCustomSagaActionType(t.__uuid,$i);for(;;){const s=yield(n=[r],o=void 0,i=void 0,void 0===n&&(n="*"),ot(n)?Pt(Ot,{pattern:n}):it(i=n)&&i[Ke]&&Ye(o)&&ot(o)?Pt(Ot,{channel:n,pattern:o}):it(n)?Pt(Ot,{channel:n}):void 0);try{switch(s.type){case r:const n=yield xt(si,e,s.payload);t.settleCustomSagaTrigger({dispatchId:s.dispatchId,payload:n,kind:"resolve"})}}catch(e){t.settleCustomSagaTrigger({dispatchId:s.dispatchId,payload:e,kind:"reject"}),Ar.error(e)}}var n,o,i}function*Wi({track:e,element:t,speakerId:r,room:n}){(({track:e,element:t})=>{t.autoplay=!0,t.playsinline=!0,t.srcObject=new MediaStream([e]),e.addEventListener("ended",(()=>{t.srcObject=null,t.remove()}))})({track:e,element:t}),r&&si(t,r).catch((()=>{})),yield function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Pt(It,At(e,r))}(Ui,{element:t,room:n})}function*qi({rootElement:e,applyLocalVideoOverlay:t=!0,track:r,element:n}){(r=>{if((({track:e,element:t})=>{t.srcObject=new MediaStream([e]),e.addEventListener("ended",(()=>{t.srcObject=null,t.remove()}))})({element:n,track:r}),n.style.width="100%",n.style.height="100%",!t)return void e.appendChild(n);const o=document.createElement("div");o.style.position="absolute",o.style.top="0",o.style.left="0",o.style.right="0",o.style.bottom="0",o.appendChild(n);const i=document.createElement("div");i.style.paddingBottom="56.25%",i.appendChild(o);const s=document.createElement("div");s.classList.add("mcuLayers"),i.appendChild(s);const a=document.createElement("div");a.style.position="relative",a.style.width="100%",a.style.height="100%",a.style.margin="0 auto",a.appendChild(i),e.appendChild(a)})(r)}const Fi={state:"onStateChange",remoteSDP:"onRemoteSDP",roomId:"onRoomSubscribed",videoConstraints:"onVideoConstraints",audioConstraints:"onAudioConstraints",errors:"onError",responses:"onSuccess"},Ki={echoCancellation:!1,noiseSuppression:!1,autoGainControl:!1,googAutoGainControl:!1},Qi=Wr(class extends Li{join(){return super.invite()}leave(){return super.hangup()}},{audioMute:Co.audioMuteMember,audioUnmute:Co.audioUnmuteMember,videoMute:Co.videoMuteMember,videoUnmute:Co.videoUnmuteMember,setMicrophoneVolume:Co.setInputVolumeMember,setInputSensitivity:Co.setInputSensitivityMember}),Bi=Wr(class extends Li{join(){return super.invite()}leave(){return super.hangup()}},{audioMute:Co.audioMuteMember,audioUnmute:Co.audioUnmuteMember,videoMute:Co.videoMuteMember,videoUnmute:Co.videoUnmuteMember,setMicrophoneVolume:Co.setInputVolumeMember,setInputSensitivity:Co.setInputSensitivityMember}),Hi=Wr(class extends Li{_screenShareList=new Set;_deviceList=new Set;get screenShareList(){return Array.from(this._screenShareList)}get deviceList(){return Array.from(this._deviceList)}getEmitterTransforms(){return new Map([[["video.__internal__.recording.start","video.recording.started","video.recording.updated","video.recording.ended"],{instanceFactory:e=>Co.createRoomSessionRecordingObject({store:this.store,emitter:this.emitter}),payloadTransform:e=>e?.recording?{...e?.recording,roomSessionId:this.roomSessionId}:{id:e.recording_id,roomSessionId:this.roomSessionId}}]])}async createScreenShareObject(e={}){const{autoJoin:t=!0,audio:r=!1,video:n=!0}=e,o=await ei({audio:!0===r?Ki:r,video:n}),i={...this.options,screenShare:!0,recoverCall:!1,localStream:o,remoteStream:void 0,userVariables:{...this.options?.userVariables||{},memberCallId:this.__uuid,memberId:this.memberId}},s=bo({store:this.store,Component:Qi,componentListeners:Fi})(i);o.getVideoTracks().forEach((e=>{e.addEventListener("ended",(()=>{s&&s.active&&s.leave()}))})),s.on("destroy",(()=>{this._screenShareList.delete(s)}));try{return this._screenShareList.add(s),t&&await s.join(),s}catch(e){throw Ar.error("ScreenShare Error",e),e}}addCamera(e={}){const{autoJoin:t=!0,...r}=e;return this.addDevice({autoJoin:t,video:r})}addMicrophone(e={}){const{autoJoin:t=!0,...r}=e;return this.addDevice({autoJoin:t,audio:r})}async addDevice(e={}){const{autoJoin:t=!0,audio:r=!1,video:n=!1}=e;if(!r&&!n)throw new TypeError("At least one of `audio` or `video` must be requested.");const o={...this.options,localStream:void 0,remoteStream:void 0,audio:r,video:n,additionalDevice:!0,recoverCall:!1,userVariables:{...this.options?.userVariables||{},memberCallId:this.__uuid,memberId:this.memberId}},i=bo({store:this.store,Component:Bi,componentListeners:Fi})(o);i.on("destroy",(()=>{this._deviceList.delete(i)}));try{return this._deviceList.add(i),t&&await i.join(),i}catch(e){throw Ar.error("RoomDevice Error",e),e}}join(){return super.invite()}leave(){return this.hangup()}updateSpeaker({deviceId:e}){return this.triggerCustomSaga($i(e))}async hangup(){return this._screenShareList.forEach((e=>{e.leave()})),this._deviceList.forEach((e=>{e.leave()})),super.hangup()}_finalize(){this._screenShareList.clear(),this._deviceList.clear(),super._finalize()}getLayoutList(){return this.getLayouts()}getMemberList(){return this.getMembers()}},{audioMute:Co.audioMuteMember,audioUnmute:Co.audioUnmuteMember,videoMute:Co.videoMuteMember,videoUnmute:Co.videoUnmuteMember,deaf:Co.deafMember,undeaf:Co.undeafMember,setMicrophoneVolume:Co.setInputVolumeMember,setSpeakerVolume:Co.setOutputVolumeMember,setInputSensitivity:Co.setInputSensitivityMember,removeMember:Co.removeMember,getMembers:Co.getMembers,getLayouts:Co.getLayouts,setLayout:Co.setLayout,hideVideoMuted:Co.hideVideoMuted,showVideoMuted:Co.showVideoMuted,getRecordings:Co.getRecordings,startRecording:Co.startRecording});class zi extends wo{get rooms(){return{makeRoomObject:e=>{const{rootElementId:t,applyLocalVideoOverlay:r=!0,stopCameraWhileMuted:n=!0,stopMicrophoneWhileMuted:o=!0,...i}=e,s=[];t&&s.push((({rootElementId:e,applyLocalVideoOverlay:t,speakerId:r})=>function*({instance:n,runSaga:o}){try{const i=new Map,s=e?document.getElementById(e):void 0,a=s||document.body,c=Di(),u=new Audio,d=(({layerMap:e,element:t,rootElement:r})=>async({layout:n,myMemberId:o,localStream:i})=>{try{const{layers:s=[]}=n,a=s.find((({member_id:e})=>e===o));if(!a)return Ar.debug("Current Layer Not Found",JSON.stringify(n));let c=e.get(o);if(!c){const n=await(async({location:e,element:t})=>{t.readyState===HTMLMediaElement.HAVE_NOTHING&&await(({element:e})=>new Promise((t=>{e.addEventListener("canplay",(function r(){e.removeEventListener("canplay",r),t()})),e.addEventListener("resize",(function r(){e.removeEventListener("resize",r),t()}))})))({element:t});const{top:r,left:n,width:o,height:i}=Ni(e),s=document.createElement("div");return s.style.position="absolute",s.style.overflow="hidden",s.style.top=r,s.style.left=n,s.style.width=o,s.style.height=i,s})({element:t,location:a});n.id=o;const s=Di();s.srcObject=i,s.style.width="100%",s.style.height="100%",n.appendChild(s),e.set(o,n);const c=r.querySelector(".mcuLayers"),u=document.getElementById(o);return void(c&&!u&&c.appendChild(n))}const{top:u,left:d,width:l,height:h}=Ni(a);c.style.top=u,c.style.left=d,c.style.width=l,c.style.height=h}catch(e){Ar.error("Layout Changed Error",e)}})({rootElement:a,element:c,layerMap:i}),l=Vi("none"),h=Vi("block");let f,p;s||Ar.warn(`We couldn't find an element with id: ${e}: using 'document.body' instead.`),n.on("layout.changed",(e=>{n.peer.hasVideoSender&&n.localStream&&d({layout:e.layout,localStream:n.localStream,myMemberId:n.memberId})})),n.on("member.updated.video_muted",(e=>{try{const{member:t}=e;t.id===n.memberId&&"video_muted"in t&&(t.video_muted?l(t.id):h(t.id))}catch(e){Ar.error("Error handling video_muted",e)}})),n.on("track",(function(e){switch(e.track.kind){case"audio":f=o(Wi,{track:e.track,element:u,speakerId:r,room:n});break;case"video":p=o(qi,{applyLocalVideoOverlay:t,rootElement:a,track:e.track,element:c})}})),n.once("destroy",(()=>{(e=>{for(;e.firstChild;)e.removeChild(e.firstChild)})(a),i.clear(),f?.cancel(),p?.cancel()}))}catch(e){Ar.error("mediaElementsSagas",e)}})({rootElementId:t,applyLocalVideoOverlay:r,speakerId:i.speakerId}));const a=(c={...i,store:this.store,emitter:this.emitter,customSagas:s},bo({store:c.store,customSagas:c.customSagas,Component:Hi,componentListeners:Fi})(c));var c;return o&&a.on("member.updated.audio_muted",(({member:e})=>{try{e.id===a.memberId&&"audio_muted"in e&&(e.audio_muted?a.stopOutboundAudio():a.restoreOutboundAudio())}catch(e){Ar.error("Error handling audio_muted",e)}})),n&&a.on("member.updated.video_muted",(({member:e})=>{try{e.id===a.memberId&&"video_muted"in e&&(e.video_muted?a.stopOutboundVideo():a.restoreOutboundVideo())}catch(e){Ar.error("Error handling video_muted",e)}})),a}}}}class Gi extends class extends class{constructor(e){this.options=e,Tr(this,"uuid",c()),Tr(this,"WebSocketConstructor"),Tr(this,"agent"),Tr(this,"connectVersion",Hr),Tr(this,"_rpcConnectResult"),Tr(this,"_requests",new Map),Tr(this,"_requestQueue",[]),Tr(this,"_socket",null),Tr(this,"_host","wss://relay.signalwire.com"),Tr(this,"_executeTimeoutMs",1e4),Tr(this,"_executeTimeoutError",Symbol.for("sw-execute-timeout")),Tr(this,"_checkPingDelay",15e3),Tr(this,"_checkPingTimer",null),Tr(this,"_status","unknown");let{host:t,logLevel:r="info"}=e;t&&(this._host=(e=>`${Fr.test(e)?"":"wss://"}${e}`)(t)),r&&this.logger.setLevel(r),this._onSocketOpen=this._onSocketOpen.bind(this),this._onSocketError=this._onSocketError.bind(this),this._onSocketClose=this._onSocketClose.bind(this),this._onSocketMessage=this._onSocketMessage.bind(this),this.execute=this.execute.bind(this),this.connect=this.connect.bind(this)}get rpcConnectResult(){return this._rpcConnectResult}get relayProtocol(){var e,t;return null!=(t=null==(e=this._rpcConnectResult)?void 0:e.protocol)?t:""}get signature(){var e,t;return null==(t=null==(e=this._rpcConnectResult)?void 0:e.authorization)?void 0:t.signature}get logger(){return Ar}get connecting(){var e;return(null==(e=this._socket)?void 0:e.readyState)===pr.CONNECTING}get connected(){var e;return(null==(e=this._socket)?void 0:e.readyState)===pr.OPEN}get closing(){var e;return(null==(e=this._socket)?void 0:e.readyState)===pr.CLOSING}get closed(){return!this._socket||this._socket.readyState===pr.CLOSED}get status(){return this._status}connect(){(null==this?void 0:this.WebSocketConstructor)?this._socket?Ar.warn("Session already connected."):(this._socket=new this.WebSocketConstructor(this._host),this._socket.addEventListener("open",this._onSocketOpen),this._socket.addEventListener("close",this._onSocketClose),this._socket.addEventListener("error",this._onSocketError),this._socket.addEventListener("message",this._onSocketMessage)):Ar.error("Missing WebSocketConstructor")}async disconnect(){this._socket&&!this.closing?(clearTimeout(this._checkPingTimer),this._requestQueue=[],this._requests.clear(),this._closeConnection("disconnected")):Ar.warn("Session not connected or already in closing state.")}execute(e){if("idle"===this._status||!this.connected)return new Promise((t=>this._requestQueue.push({resolve:t,msg:e})));let t;return t="params"in e?new Promise(((t,r)=>{this._requests.set(e.id,{rpcRequest:e,resolve:t,reject:r})})):Promise.resolve(),Ar.trace("SEND: \n",JSON.stringify(e,null,2),"\n"),this._socket.send(JSON.stringify(e)),((e,t,r)=>{let n=null;return Promise.race([e,new Promise(((e,o)=>n=setTimeout(o,t,r)))]).finally((()=>clearTimeout(n)))})(t,this._executeTimeoutMs,this._executeTimeoutError).catch((t=>{if(t!==this._executeTimeoutError)throw t;Ar.error("Request Timeout",e),this._closeConnection("reconnecting")}))}async authenticate(){let e={agent:this.agent,version:this.connectVersion,authentication:{project:this.options.project,token:this.options.token}};this._relayProtocolIsValid()&&(e.protocol=this.relayProtocol),this._rpcConnectResult=await this.execute(zr(e))}async _onSocketOpen(e){Ar.debug("_onSocketOpen",e.type);try{await this.authenticate(),this._emptyRequestQueue(),this._status="connected",this.dispatch(un())}catch(e){Ar.error("Auth Error",e),this.dispatch(cn({error:e}))}}_onSocketError(e){Ar.debug("_onSocketError",e),this.dispatch(ln())}_onSocketClose(e){Ar.debug("_onSocketClose",e.type,e.code,e.reason),this._status=e.code>=1006&&e.code<=1014?"reconnecting":"disconnected",this.dispatch(dn()),this._socket=null}_onSocketMessage(e){let t=qr(e.data);Ar.trace("RECV: \n",JSON.stringify(t,null,2),"\n");let r=this._requests.get(t.id);if(r){let{rpcRequest:e,resolve:n,reject:o}=r;this._requests.delete(t.id);let{result:i,error:s}=(({response:e,request:t})=>{let{result:r={},error:n}=e;if(n)return{error:n};switch(t.method){case"signalwire.connect":return{result:r};default:return jr(e)}})({response:t,request:e});return s?o(s):n(i)}switch(t.method){case"signalwire.ping":return this._pingHandler(t);case"signalwire.disconnect":this.execute((e=>Br({id:e,result:{}}))(t.id)).catch((e=>{Ar.error("SwDisconnect Error",e)})).finally((()=>{this._status="idle"}));break;default:this.dispatch(hn(t))}}dispatch(e){throw new Error("Method not implemented")}_relayProtocolIsValid(){var e;return this.signature&&(null==(e=null==this?void 0:this.relayProtocol)?void 0:e.split("_")[1])===this.signature}_emptyRequestQueue(){this._requestQueue.forEach((({resolve:e,msg:t})=>{e(this.execute(t))})),this._requestQueue=[]}async _pingHandler(e){var t;clearTimeout(this._checkPingTimer),this._checkPingTimer=setTimeout((()=>{this._closeConnection("reconnecting")}),this._checkPingDelay),await this.execute(((e,t)=>Br({id:e,result:{timestamp:t||Date.now()/1e3}}))(e.id,null==(t=null==e?void 0:e.params)?void 0:t.timestamp))}_closeConnection(e){this._status=e,this.dispatch(Sn.authStatus("unknown")),this.dispatch(sn()),this._socket&&(this._socket.close(),this._socket=null)}}{constructor(e){super(e),this.options=e,Tr(this,"_expiredDiffSeconds",0),Tr(this,"_refreshTokenNotificationDiff",120),Tr(this,"_checkTokenExpirationDelay",2e4),Tr(this,"_checkTokenExpirationTimer",null),this._checkTokenExpiration=this._checkTokenExpiration.bind(this)}get expiresAt(){var e,t,r;return null!=(r=null==(t=null==(e=null==this?void 0:this._rpcConnectResult)?void 0:e.authorization)?void 0:t.expires_at)?r:0}get expiresIn(){let e=Math.floor(Date.now()/1e3);return this.expiresAt-e}get expired(){return this.expiresIn<=this._expiredDiffSeconds}async authenticate(){let e={agent:this.agent,version:this.connectVersion,authentication:{jwt_token:this.options.token}};if(this._relayProtocolIsValid())e.protocol=this.relayProtocol;else if(this.signature){let t=await(e=>(async(e,t)=>{if("undefined"==typeof window&&"undefined"!=typeof process)return null;let r=window.sessionStorage.getItem((e=>`@signalwire:${this.signature}`)());return qr(r)})())();t&&(e.protocol=t)}this._rpcConnectResult=await this.execute(zr(e)),this._checkTokenExpiration()}_checkTokenExpiration(){!this.expiresAt||(this.expiresIn<=this._refreshTokenNotificationDiff&&Ar.debug("Your JWT is going to expire. Please refresh it to keep the session live."),clearTimeout(this._checkTokenExpirationTimer),this.expired||(this._checkTokenExpirationTimer=setTimeout(this._checkTokenExpiration,this._checkTokenExpirationDelay)))}}{WebSocketConstructor=WebSocket;agent="@signalwire/js/3.2.1"}const Ji={aspectRatio:{ideal:16/9}},Xi=e=>new Promise((async(t,r)=>{const{audio:n=!0,video:o=!0,iceServers:i,rootElementId:s,applyLocalVideoOverlay:a=!0,autoJoin:c=!1,stopCameraWhileMuted:u=!0,stopMicrophoneWhileMuted:d=!0,speakerId:l,...h}=e,f=await(async e=>{const t={...e,emitter:new vr},r=(e=>{var t;let{userOptions:r,SessionConstructor:n,preloadedState:o={},runSagaMiddleware:i=!0}=e,s=hr(),a=Le({devTools:null==(t=null==r?void 0:r.devTools)||t,reducer:An,preloadedState:o,middleware:e=>e().concat(s)});if(i){let e=(e=>function*(t){yield Xn(ho),yield Hn(nn.type);try{yield Jn(vo,e.SessionConstructor,t)}catch(e){return}})({SessionConstructor:n});s.run(e,r)}return kr(Er({},a),{runSaga:s.run})})({userOptions:t,SessionConstructor:Gi}),n=bo({store:r,Component:zi,componentListeners:{errors:"onError",responses:"onSuccess",id:"onClientSubscribed"}})(t);return t.autoConnect&&await n.connect(),n})({...h,autoConnect:!0}).catch((e=>(r(e),null)));if(!f)return;const p=f.rooms.makeRoomObject({audio:n,video:!0===o?Ji:o,negotiateAudio:!0,negotiateVideo:!0,iceServers:i,rootElementId:s,applyLocalVideoOverlay:a,stopCameraWhileMuted:u,stopMicrophoneWhileMuted:d,speakerId:l});if(p.once("destroy",(()=>{f.disconnect()})),c)try{await p.join(),t(p)}catch(e){r(e)}else t(p)}));var Yi=Object.freeze({__proto__:null,createRoomObject:Xi,joinRoom:e=>Xi({...e,autoJoin:!0})}),Zi=Object.freeze({__proto__:null,getDevices:gi,getCameraDevices:()=>gi("camera"),getMicrophoneDevices:()=>gi("microphone"),getSpeakerDevices:()=>gi("speaker"),getDevicesWithPermissions:vi,getCameraDevicesWithPermissions:()=>vi("camera"),getMicrophoneDevicesWithPermissions:()=>vi("microphone"),getSpeakerDevicesWithPermissions:()=>vi("speaker"),checkPermissions:li,checkCameraPermissions:hi,checkMicrophonePermissions:fi,checkSpeakerPermissions:pi,requestPermissions:async e=>{try{const t=await Zo(e);ai(t)}catch(e){throw e}},createDeviceWatcher:ki,createCameraDeviceWatcher:()=>ki({targets:["camera"]}),createMicrophoneDeviceWatcher:()=>ki({targets:["microphone"]}),createSpeakerDeviceWatcher:()=>ki({targets:["speaker"]}),supportsMediaDevices:Xo,supportsGetUserMedia:()=>{var e;return"function"==typeof(null===(e=null===navigator||void 0===navigator?void 0:navigator.mediaDevices)||void 0===e?void 0:e.getUserMedia)},supportsGetDisplayMedia:()=>{var e;return"function"==typeof(null===(e=null===navigator||void 0===navigator?void 0:navigator.mediaDevices)||void 0===e?void 0:e.getDisplayMedia)},getUserMedia:Zo,getDisplayMedia:ei,enumerateDevices:ti,getSupportedConstraints:ni,supportsMediaOutput:ii,setMediaElementSinkId:si,stopStream:ai,stopTrack:ci});e.Video=Yi,e.WebRTC=Zi,Object.defineProperty(e,"__esModule",{value:!0})}));
6
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SignalWire={})}(this,(function(e){"use strict";var t,r=new Uint8Array(16);function n(){if(!t&&!(t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return t(r)}var o=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function i(e){return"string"==typeof e&&o.test(e)}for(var s=[],a=0;a<256;++a)s.push((a+256).toString(16).substr(1));function c(e,t,r){var o=(e=e||{}).random||(e.rng||n)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){r=r||0;for(var a=0;a<16;++a)t[r+a]=o[a];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase();if(!i(r))throw TypeError("Stringified UUID is invalid");return r}(o)}var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},d={exports:{}};!function(e){var t,r;t=u,r=function(){var e=function(){},t="undefined",r=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"];function o(e,t){var r=e[t];if("function"==typeof r.bind)return r.bind(e);try{return Function.prototype.bind.call(r,e)}catch(t){return function(){return Function.prototype.apply.apply(r,[e,arguments])}}}function i(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function s(n){return"debug"===n&&(n="log"),typeof console!==t&&("trace"===n&&r?i:void 0!==console[n]?o(console,n):void 0!==console.log?o(console,"log"):e)}function a(t,r){for(var o=0;o<n.length;o++){var i=n[o];this[i]=o<t?e:this.methodFactory(i,t,r)}this.log=this.debug}function c(e,r,n){return function(){typeof console!==t&&(a.call(this,r,n),this[e].apply(this,arguments))}}function u(e,t,r){return s(e)||c.apply(this,arguments)}function d(e,r,o){var i,s=this,c="loglevel";function d(){var e;if(typeof window!==t&&c){try{e=window.localStorage[c]}catch(e){}if(typeof e===t)try{var r=window.document.cookie,n=r.indexOf(encodeURIComponent(c)+"=");-1!==n&&(e=/^([^;]+)/.exec(r.slice(n))[1])}catch(e){}return void 0===s.levels[e]&&(e=void 0),e}}"string"==typeof e?c+=":"+e:"symbol"==typeof e&&(c=void 0),s.name=e,s.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},s.methodFactory=o||u,s.getLevel=function(){return i},s.setLevel=function(r,o){if("string"==typeof r&&void 0!==s.levels[r.toUpperCase()]&&(r=s.levels[r.toUpperCase()]),!("number"==typeof r&&r>=0&&r<=s.levels.SILENT))throw"log.setLevel() called with invalid level: "+r;if(i=r,!1!==o&&function(e){var r=(n[e]||"silent").toUpperCase();if(typeof window!==t&&c){try{return void(window.localStorage[c]=r)}catch(e){}try{window.document.cookie=encodeURIComponent(c)+"="+r+";"}catch(e){}}}(r),a.call(s,r,e),typeof console===t&&r<s.levels.SILENT)return"No console available for logging"},s.setDefaultLevel=function(e){d()||s.setLevel(e,!1)},s.enableAll=function(e){s.setLevel(s.levels.TRACE,e)},s.disableAll=function(e){s.setLevel(s.levels.SILENT,e)};var l=d();null==l&&(l=null==r?"WARN":r),s.setLevel(l,!1)}var l=new d,h={};l.getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=h[e];return t||(t=h[e]=new d(e,l.getLevel(),l.methodFactory)),t};var p=typeof window!==t?window.log:void 0;return l.noConflict=function(){return typeof window!==t&&window.log===l&&(window.log=p),l},l.getLoggers=function(){return h},l.default=l,l},e.exports?e.exports=r():t.log=r()}(d);var l=d.exports;function h(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function m(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var v="function"==typeof Symbol&&Symbol.observable||"@@observable",y=function(){return Math.random().toString(36).substring(7).split("").join(".")},g={INIT:"@@redux/INIT"+y(),REPLACE:"@@redux/REPLACE"+y(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+y()}};function b(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function _(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error(m(0));if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error(m(1));return r(_)(e,t)}if("function"!=typeof e)throw new Error(m(2));var o=e,i=t,s=[],a=s,c=!1;function u(){a===s&&(a=s.slice())}function d(){if(c)throw new Error(m(3));return i}function l(e){if("function"!=typeof e)throw new Error(m(4));if(c)throw new Error(m(5));var t=!0;return u(),a.push(e),function(){if(t){if(c)throw new Error(m(6));t=!1,u();var r=a.indexOf(e);a.splice(r,1),s=null}}}function h(e){if(!b(e))throw new Error(m(7));if(void 0===e.type)throw new Error(m(8));if(c)throw new Error(m(9));try{c=!0,i=o(i,e)}finally{c=!1}for(var t=s=a,r=0;r<t.length;r++)(0,t[r])();return e}function p(e){if("function"!=typeof e)throw new Error(m(10));o=e,h({type:g.REPLACE})}function f(){var e,t=l;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new Error(m(11));function r(){e.next&&e.next(d())}return r(),{unsubscribe:t(r)}}})[v]=function(){return this},e}return h({type:g.INIT}),(n={dispatch:h,subscribe:l,getState:d,replaceReducer:p})[v]=f,n}function S(e){for(var t=Object.keys(e),r={},n=0;n<t.length;n++){var o=t[n];"function"==typeof e[o]&&(r[o]=e[o])}var i,s=Object.keys(r);try{!function(e){Object.keys(e).forEach((function(t){var r=e[t];if(void 0===r(void 0,{type:g.INIT}))throw new Error(m(12));if(void 0===r(void 0,{type:g.PROBE_UNKNOWN_ACTION()}))throw new Error(m(13))}))}(r)}catch(e){i=e}return function(e,t){if(void 0===e&&(e={}),i)throw i;for(var n=!1,o={},a=0;a<s.length;a++){var c=s[a],u=e[c],d=(0,r[c])(u,t);if(void 0===d)throw new Error(m(14));o[c]=d,n=n||d!==u}return(n=n||s.length!==Object.keys(e).length)?o:e}}function w(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function k(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){return function(){var r=e.apply(void 0,arguments),n=function(){throw new Error(m(15))},o={getState:r.getState,dispatch:function(){return n.apply(void 0,arguments)}},i=t.map((function(e){return e(o)}));return n=w.apply(void 0,i)(r.dispatch),f(f({},r),{},{dispatch:n})}}}function E(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map((function(e){return"'"+e+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function C(e){return!!e&&!!e[le]}function O(e){return!!e&&(function(e){if(!e||"object"!=typeof e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;var r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return r===Object||"function"==typeof r&&Function.toString.call(r)===he}(e)||Array.isArray(e)||!!e[de]||!!e.constructor[de]||x(e)||A(e))}function I(e,t,r){void 0===r&&(r=!1),0===T(e)?(r?Object.keys:pe)(e).forEach((function(n){r&&"symbol"==typeof n||t(n,e[n],e)})):e.forEach((function(r,n){return t(n,r,e)}))}function T(e){var t=e[le];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:x(e)?2:A(e)?3:0}function P(e,t){return 2===T(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function M(e,t,r){var n=T(e);2===n?e.set(t,r):3===n?(e.delete(t),e.add(r)):e[t]=r}function R(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function x(e){return se&&e instanceof Map}function A(e){return ae&&e instanceof Set}function j(e){return e.o||e.t}function L(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=fe(e);delete t[le];for(var r=pe(t),n=0;n<r.length;n++){var o=r[n],i=t[o];!1===i.writable&&(i.writable=!0,i.configurable=!0),(i.get||i.set)&&(t[o]={configurable:!0,writable:!0,enumerable:i.enumerable,value:e[o]})}return Object.create(Object.getPrototypeOf(e),t)}function D(e,t){return void 0===t&&(t=!1),V(e)||C(e)||!O(e)||(T(e)>1&&(e.set=e.add=e.clear=e.delete=N),Object.freeze(e),t&&I(e,(function(e,t){return D(t,!0)}),!0)),e}function N(){E(2)}function V(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function $(e){var t=me[e];return t||E(18,e),t}function W(){return oe}function U(e,t){t&&($("Patches"),e.u=[],e.s=[],e.v=t)}function q(e){F(e),e.p.forEach(Q),e.p=null}function F(e){e===oe&&(oe=e.l)}function B(e){return oe={p:[],l:oe,h:e,m:!0,_:0}}function Q(e){var t=e[le];0===t.i||1===t.i?t.j():t.O=!0}function K(e,t){t._=t.p.length;var r=t.p[0],n=void 0!==e&&e!==r;return t.h.g||$("ES5").S(t,e,n),n?(r[le].P&&(q(t),E(4)),O(e)&&(e=H(t,e),t.l||G(t,e)),t.u&&$("Patches").M(r[le],e,t.u,t.s)):e=H(t,r,[]),q(t),t.u&&t.v(t.u,t.s),e!==ue?e:void 0}function H(e,t,r){if(V(t))return t;var n=t[le];if(!n)return I(t,(function(o,i){return z(e,n,t,o,i,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return G(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var o=4===n.i||5===n.i?n.o=L(n.k):n.o;I(3===n.i?new Set(o):o,(function(t,i){return z(e,n,o,t,i,r)})),G(e,o,!1),r&&e.u&&$("Patches").R(n,r,e.u,e.s)}return n.o}function z(e,t,r,n,o,i){if(C(o)){var s=H(e,o,i&&t&&3!==t.i&&!P(t.D,n)?i.concat(n):void 0);if(M(r,n,s),!C(s))return;e.m=!1}if(O(o)&&!V(o)){if(!e.h.F&&e._<1)return;H(e,o),t&&t.A.l||G(e,o)}}function G(e,t,r){void 0===r&&(r=!1),e.h.F&&e.m&&D(t,r)}function J(e,t){var r=e[le];return(r?j(r):e)[t]}function X(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function Y(e){e.P||(e.P=!0,e.l&&Y(e.l))}function Z(e){e.o||(e.o=L(e.t))}function ee(e,t,r){var n=x(t)?$("MapSet").N(t,r):A(t)?$("MapSet").T(t,r):e.g?function(e,t){var r=Array.isArray(e),n={i:r?1:0,A:t?t.A:W(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=n,i=ve;r&&(o=[n],i=ye);var s=Proxy.revocable(o,i),a=s.revoke,c=s.proxy;return n.k=c,n.j=a,c}(t,r):$("ES5").J(t,r);return(r?r.A:W()).p.push(n),n}function te(e){return C(e)||E(22,e),function e(t){if(!O(t))return t;var r,n=t[le],o=T(t);if(n){if(!n.P&&(n.i<4||!$("ES5").K(n)))return n.t;n.I=!0,r=re(t,o),n.I=!1}else r=re(t,o);return I(r,(function(t,o){n&&function(e,t){return 2===T(e)?e.get(t):e[t]}(n.t,t)===o||M(r,t,e(o))})),3===o?new Set(r):r}(e)}function re(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return L(e)}var ne,oe,ie="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),se="undefined"!=typeof Map,ae="undefined"!=typeof Set,ce="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,ue=ie?Symbol.for("immer-nothing"):((ne={})["immer-nothing"]=!0,ne),de=ie?Symbol.for("immer-draftable"):"__$immer_draftable",le=ie?Symbol.for("immer-state"):"__$immer_state",he=""+Object.prototype.constructor,pe="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,fe=Object.getOwnPropertyDescriptors||function(e){var t={};return pe(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)})),t},me={},ve={get:function(e,t){if(t===le)return e;var r=j(e);if(!P(r,t))return function(e,t,r){var n,o=X(t,r);return o?"value"in o?o.value:null===(n=o.get)||void 0===n?void 0:n.call(e.k):void 0}(e,r,t);var n=r[t];return e.I||!O(n)?n:n===J(e.t,t)?(Z(e),e.o[t]=ee(e.A.h,n,e)):n},has:function(e,t){return t in j(e)},ownKeys:function(e){return Reflect.ownKeys(j(e))},set:function(e,t,r){var n=X(j(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=J(j(e),t),i=null==o?void 0:o[le];if(i&&i.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(R(r,o)&&(void 0!==r||P(e.t,t)))return!0;Z(e),Y(e)}return e.o[t]===r&&"number"!=typeof r&&(void 0!==r||t in e.o)||(e.o[t]=r,e.D[t]=!0,!0)},deleteProperty:function(e,t){return void 0!==J(e.t,t)||t in e.t?(e.D[t]=!1,Z(e),Y(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=j(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},defineProperty:function(){E(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){E(12)}},ye={};I(ve,(function(e,t){ye[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),ye.deleteProperty=function(e,t){return ve.deleteProperty.call(this,e[0],t)},ye.set=function(e,t,r){return ve.set.call(this,e[0],t,r,e[0])};var ge=new(function(){function e(e){var t=this;this.g=ce,this.F=!0,this.produce=function(e,r,n){if("function"==typeof e&&"function"!=typeof r){var o=r;r=e;var i=t;return function(e){var t=this;void 0===e&&(e=o);for(var n=arguments.length,s=Array(n>1?n-1:0),a=1;a<n;a++)s[a-1]=arguments[a];return i.produce(e,(function(e){var n;return(n=r).call.apply(n,[t,e].concat(s))}))}}var s;if("function"!=typeof r&&E(6),void 0!==n&&"function"!=typeof n&&E(7),O(e)){var a=B(t),c=ee(t,e,void 0),u=!0;try{s=r(c),u=!1}finally{u?q(a):F(a)}return"undefined"!=typeof Promise&&s instanceof Promise?s.then((function(e){return U(a,n),K(e,a)}),(function(e){throw q(a),e})):(U(a,n),K(s,a))}if(!e||"object"!=typeof e){if((s=r(e))===ue)return;return void 0===s&&(s=e),t.F&&D(s,!0),s}E(21,e)},this.produceWithPatches=function(e,r){return"function"==typeof e?function(r){for(var n=arguments.length,o=Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];return t.produceWithPatches(r,(function(t){return e.apply(void 0,[t].concat(o))}))}:[t.produce(e,r,(function(e,t){n=e,o=t})),n,o];var n,o},"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze)}var t=e.prototype;return t.createDraft=function(e){O(e)||E(8),C(e)&&(e=te(e));var t=B(this),r=ee(this,e,void 0);return r[le].C=!0,F(t),r},t.finishDraft=function(e,t){var r=(e&&e[le]).A;return U(r,t),K(void 0,r)},t.setAutoFreeze=function(e){this.F=e},t.setUseProxies=function(e){e&&!ce&&E(20),this.g=e},t.applyPatches=function(e,t){var r;for(r=t.length-1;r>=0;r--){var n=t[r];if(0===n.path.length&&"replace"===n.op){e=n.value;break}}var o=$("Patches").$;return C(e)?o(e,t):this.produce(e,(function(e){return o(e,t.slice(r+1))}))},e}()),be=ge.produce;function _e(e,t){return e===t}function Se(e,t,r){if(null===t||null===r||t.length!==r.length)return!1;for(var n=t.length,o=0;o<n;o++)if(!e(t[o],r[o]))return!1;return!0}function we(e){return function(t){var r=t.dispatch,n=t.getState;return function(t){return function(o){return"function"==typeof o?o(r,n,e):t(o)}}}}ge.produceWithPatches.bind(ge),ge.setAutoFreeze.bind(ge),ge.setUseProxies.bind(ge),ge.applyPatches.bind(ge),ge.createDraft.bind(ge),ge.finishDraft.bind(ge),function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n]}((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_e,r=null,n=null;return function(){return Se(t,r,arguments)||(n=e.apply(null,arguments)),r=arguments,n}}));var ke=we();ke.withExtraArgument=we;var Ee,Ce=(Ee=function(e,t){return(Ee=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}Ee(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),Oe=function(e,t){for(var r=0,n=t.length,o=e.length;r<n;r++,o++)e[o]=t[r];return e},Ie=Object.defineProperty,Te=Object.prototype.hasOwnProperty,Pe=Object.getOwnPropertySymbols,Me=Object.prototype.propertyIsEnumerable,Re=function(e,t,r){return t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},xe=function(e,t){for(var r in t||(t={}))Te.call(t,r)&&Re(e,r,t[r]);if(Pe)for(var n=0,o=Pe(t);n<o.length;n++)Me.call(t,r=o[n])&&Re(e,r,t[r]);return e},Ae="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?w:w.apply(null,arguments)},je=function(e){function t(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var o=e.apply(this,r)||this;return Object.setPrototypeOf(o,t.prototype),o}return Ce(t,e),Object.defineProperty(t,Symbol.species,{get:function(){return t},enumerable:!1,configurable:!0}),t.prototype.concat=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.prototype.concat.apply(this,t)},t.prototype.prepend=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return 1===e.length&&Array.isArray(e[0])?new(t.bind.apply(t,Oe([void 0],e[0].concat(this)))):new(t.bind.apply(t,Oe([void 0],e.concat(this))))},t}(Array);function Le(e){var t,r=function(e){return function(e){void 0===e&&(e={});var t=e.thunk,r=void 0===t||t,n=new je;return r&&(function(e){return"boolean"==typeof e}(r)?n.push(ke):n.push(ke.withExtraArgument(r.extraArgument))),n}(e)},n=e||{},o=n.reducer,i=void 0===o?void 0:o,s=n.middleware,a=void 0===s?r():s,c=n.devTools,u=void 0===c||c,d=n.preloadedState,l=void 0===d?void 0:d,h=n.enhancers,p=void 0===h?void 0:h;if("function"==typeof i)t=i;else{if(!function(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(i))throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');t=S(i)}var f=a;"function"==typeof f&&(f=f(r));var m=k.apply(void 0,f),v=w;u&&(v=Ae(xe({trace:!1},"object"==typeof u&&u)));var y=[m];return Array.isArray(p)?y=Oe([m],p):"function"==typeof p&&(y=p(y)),_(t,l,v.apply(void 0,y))}function De(e,t){function r(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];if(t){var o=t.apply(void 0,r);if(!o)throw new Error("prepareAction did not return an object");return xe(xe({type:e,payload:o.payload},"meta"in o&&{meta:o.meta}),"error"in o&&{error:o.error})}return{type:e,payload:r[0]}}return r.toString=function(){return""+e},r.type=e,r.match=function(t){return t.type===e},r}function Ne(e){var t,r={},n=[],o={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(n in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[n]=t,o},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),o},addDefaultCase:function(e){return t=e,o}};return e(o),[r,n,t]}function Ve(e){var t=e.name,r=e.initialState;if(!t)throw new Error("`name` is a required option for createSlice");var n=e.reducers||{},o="function"==typeof e.extraReducers?Ne(e.extraReducers):[e.extraReducers],i=o[0],s=void 0===i?{}:i,a=o[1],c=void 0===a?[]:a,u=o[2],d=void 0===u?void 0:u,l=Object.keys(n),h={},p={},f={};l.forEach((function(e){var r,o,i=n[e],s=t+"/"+e;"reducer"in i?(r=i.reducer,o=i.prepare):r=i,h[e]=r,p[s]=r,f[e]=o?De(s,o):De(s)}));var m=function(e,t,r,n){void 0===r&&(r=[]),function(){function e(e,t){var r=o[e];return r?r.enumerable=t:o[e]=r={configurable:!0,enumerable:t,get:function(){return ve.get(this[le],e)},set:function(t){ve.set(this[le],e,t)}},r}function t(e){for(var t=e.length-1;t>=0;t--){var o=e[t][le];if(!o.P)switch(o.i){case 5:n(o)&&Y(o);break;case 4:r(o)&&Y(o)}}}function r(e){for(var t=e.t,r=e.k,n=pe(r),o=n.length-1;o>=0;o--){var i=n[o];if(i!==le){var s=t[i];if(void 0===s&&!P(t,i))return!0;var a=r[i],c=a&&a[le];if(c?c.t!==s:!R(a,s))return!0}}var u=!!t[le];return n.length!==pe(t).length+(u?0:1)}function n(e){var t=e.k;if(t.length!==e.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!r||r.get)}var o={};!function(e,t){me.ES5||(me.ES5=t)}(0,{J:function(t,r){var n=Array.isArray(t),o=function(t,r){if(t){for(var n=Array(r.length),o=0;o<r.length;o++)Object.defineProperty(n,""+o,e(o,!0));return n}var i=fe(r);delete i[le];for(var s=pe(i),a=0;a<s.length;a++){var c=s[a];i[c]=e(c,t||!!i[c].enumerable)}return Object.create(Object.getPrototypeOf(r),i)}(n,t),i={i:n?5:4,A:r?r.A:W(),P:!1,I:!1,D:{},l:r,t:t,k:o,o:null,O:!1,C:!1};return Object.defineProperty(o,le,{value:i,writable:!0}),o},S:function(e,r,o){o?C(r)&&r[le].A===e&&t(e.p):(e.u&&function e(t){if(t&&"object"==typeof t){var r=t[le];if(r){var o=r.t,i=r.k,s=r.D,a=r.i;if(4===a)I(i,(function(t){t!==le&&(void 0!==o[t]||P(o,t)?s[t]||e(i[t]):(s[t]=!0,Y(r)))})),I(o,(function(e){void 0!==i[e]||P(i,e)||(s[e]=!1,Y(r))}));else if(5===a){if(n(r)&&(Y(r),s.length=!0),i.length<o.length)for(var c=i.length;c<o.length;c++)s[c]=!1;else for(var u=o.length;u<i.length;u++)s[u]=!0;for(var d=Math.min(i.length,o.length),l=0;l<d;l++)void 0===s[l]&&e(i[l])}}}}(e.p[0]),t(e.p))},K:function(e){return 4===e.i?r(e):n(e)}})}();var o="function"==typeof t?Ne(t):[t,r,n],i=o[0],s=o[1],a=o[2],c=be(e,(function(){}));return function(e,t){void 0===e&&(e=c);var r=Oe([i[t.type]],s.filter((function(e){return(0,e.matcher)(t)})).map((function(e){return e.reducer})));return 0===r.filter((function(e){return!!e})).length&&(r=[a]),r.reduce((function(e,r){if(r){var n;if(C(e))return void 0===(n=r(e,t))?e:n;if(O(e))return be(e,(function(e){return r(e,t)}));if(void 0===(n=r(e,t))){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return n}return e}),e)}}(r,xe(xe({},s),p),c,d);return{name:t,reducer:m,actions:f,caseReducers:h}}var $e=function(e){return"@@redux-saga/"+e},We=$e("CANCEL_PROMISE"),Ue=$e("CHANNEL_END"),qe=$e("IO"),Fe=$e("MATCH"),Be=$e("MULTICAST"),Qe=$e("SAGA_ACTION"),Ke=$e("SELF_CANCELLATION"),He=$e("TASK"),ze=$e("TASK_CANCEL"),Ge=$e("TERMINATE"),Je=$e("LOCATION");function Xe(){return(Xe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var Ye=function(e){return null!=e},Ze=function(e){return"function"==typeof e},et=function(e){return"string"==typeof e},tt=Array.isArray,rt=function(e){return e&&Ze(e.then)},nt=function(e){return e&&Ze(e.next)&&Ze(e.throw)},ot=function e(t){return t&&(et(t)||st(t)||Ze(t)||tt(t)&&t.every(e))},it=function(e){return e&&Ze(e.take)&&Ze(e.close)},st=function(e){return Boolean(e)&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype},at=function(e){return function(){return!0}}(),ct=function(){},ut=function(e){return e},dt=function(e,t){Xe(e,t),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach((function(r){e[r]=t[r]}))};function lt(e,t){var r=e.indexOf(t);r>=0&&e.splice(r,1)}function ht(e){var t=!1;return function(){t||(t=!0,e())}}var pt=function(e){throw e},ft=function(e){return{value:e,done:!0}};function mt(e,t,r){void 0===t&&(t=pt),void 0===r&&(r="iterator");var n={meta:{name:r},next:e,throw:t,return:ft,isSagaIterator:!0};return"undefined"!=typeof Symbol&&(n[Symbol.iterator]=function(){return n}),n}function vt(e,t){var r=t.sagaStack;console.error(e),console.error(r)}var yt=function(e){return Array.apply(null,new Array(e))},gt=function(e){return function(t){return e(Object.defineProperty(t,Qe,{value:!0}))}},bt=function(e){return e===Ge},_t=function(e){return e===ze},St=function(e){return bt(e)||_t(e)};function wt(e,t){var r,n=Object.keys(e),o=n.length,i=0,s=tt(e)?yt(o):{},a={};return n.forEach((function(e){var n=function(n,a){r||(a||St(n)?(t.cancel(),t(n,a)):(s[e]=n,++i===o&&(r=!0,t(s))))};n.cancel=ct,a[e]=n})),t.cancel=function(){r||(r=!0,n.forEach((function(e){return a[e].cancel()})))},a}function kt(e){return{name:e.name||"anonymous",location:Et(e)}}function Et(e){return e[Je]}var Ct={isEmpty:at,put:ct,take:ct},Ot="TAKE",It="CALL",Tt="FORK",Pt=function(e,t){var r;return(r={})[qe]=!0,r.combinator=!1,r.type=e,r.payload=t,r};function Mt(e,t){var r,n=null;return Ze(e)?r=e:(tt(e)?(n=e[0],r=e[1]):(n=e.context,r=e.fn),n&&et(r)&&Ze(n[r])&&(r=n[r])),{context:n,fn:r,args:t}}function Rt(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Pt(It,Mt(e,r))}var xt=[],At=0;function jt(e){try{Nt(),e()}finally{Vt()}}function Lt(e){xt.push(e),At||(Nt(),$t())}function Dt(e){try{return Nt(),e()}finally{$t()}}function Nt(){At++}function Vt(){At--}function $t(){var e;for(Vt();!At&&void 0!==(e=xt.shift());)jt(e)}var Wt=function(e){return function(t){return e.some((function(e){return Qt(e)(t)}))}},Ut=function(e){return function(t){return e(t)}},qt=function(e){return function(t){return t.type===String(e)}},Ft=function(e){return function(t){return t.type===e}},Bt=function(){return at};function Qt(e){var t="*"===e?Bt:et(e)?qt:tt(e)?Wt:function(e){return Ze(e)&&e.hasOwnProperty("toString")}(e)?qt:Ze(e)?Ut:st(e)?Ft:null;if(null===t)throw new Error("invalid pattern: "+e);return t(e)}var Kt={type:Ue},Ht=function(e){return e&&e.type===Ue};function zt(e){void 0===e&&(e=function(e,t){void 0===e&&(e=10);var r=new Array(e),n=0,o=0,i=0,s=function(){if(0!=n){var t=r[i];return r[i]=null,n--,i=(i+1)%e,t}},a=function(){for(var e=[];n;)e.push(s());return e};return{isEmpty:function(){return 0==n},put:function(t){var s;n<e||(s=2*e,r=a(),n=r.length,o=r.length,i=0,r.length=s,e=s),function(t){r[o]=t,o=(o+1)%e,n++}(t)},take:s,flush:a}}(void 0));var t=!1,r=[];return{take:function(n){t&&e.isEmpty()?n(Kt):e.isEmpty()?(r.push(n),n.cancel=function(){lt(r,n)}):n(e.take())},put:function(n){if(!t){if(0===r.length)return e.put(n);r.shift()(n)}},flush:function(r){t&&e.isEmpty()?r(Kt):r(e.flush())},close:function(){if(!t){t=!0;var e=r;r=[];for(var n=0,o=e.length;n<o;n++)(0,e[n])(Kt)}}}}function Gt(){var e,t,r,n,o,i,s=(t=!1,n=r=[],o=function(){n===r&&(n=r.slice())},i=function(){t=!0;var e=r=n;n=[],e.forEach((function(e){e(Kt)}))},(e={})[Be]=!0,e.put=function(e){if(!t)if(Ht(e))i();else for(var o=r=n,s=0,a=o.length;s<a;s++){var c=o[s];c[Fe](e)&&(c.cancel(),c(e))}},e.take=function(e,r){void 0===r&&(r=Bt),t?e(Kt):(e[Fe]=r,o(),n.push(e),e.cancel=ht((function(){o(),lt(n,e)})))},e.close=i,e),a=s.put;return s.put=function(e){e[Qe]?a(e):Lt((function(){a(e)}))},s}function Jt(e,t){var r=e[We];Ze(r)&&(t.cancel=r),e.then(t,(function(e){t(e,!0)}))}var Xt,Yt=0,Zt=function(){return++Yt};function er(e){e.isRunning()&&e.cancel()}var tr=((Xt={}).TAKE=function(e,t,r){var n=t.channel,o=void 0===n?e.channel:n,i=t.pattern,s=t.maybe,a=function(e){e instanceof Error?r(e,!0):!Ht(e)||s?r(e):r(Ge)};try{o.take(a,Ye(i)?Qt(i):null)}catch(e){return void r(e,!0)}r.cancel=a.cancel},Xt.PUT=function(e,t,r){var n=t.channel,o=t.action,i=t.resolve;Lt((function(){var t;try{t=(n?n.put:e.dispatch)(o)}catch(e){return void r(e,!0)}i&&rt(t)?Jt(t,r):r(t)}))},Xt.ALL=function(e,t,r,n){var o=n.digestEffect,i=Yt,s=Object.keys(t);if(0!==s.length){var a=wt(t,r);s.forEach((function(e){o(t[e],i,a[e],e)}))}else r(tt(t)?[]:{})},Xt.RACE=function(e,t,r,n){var o=n.digestEffect,i=Yt,s=Object.keys(t),a=tt(t)?yt(s.length):{},c={},u=!1;s.forEach((function(e){var t=function(t,n){u||(n||St(t)?(r.cancel(),r(t,n)):(r.cancel(),u=!0,a[e]=t,r(a)))};t.cancel=ct,c[e]=t})),r.cancel=function(){u||(u=!0,s.forEach((function(e){return c[e].cancel()})))},s.forEach((function(e){u||o(t[e],i,c[e],e)}))},Xt.CALL=function(e,t,r,n){var o=t.context,i=t.fn,s=t.args,a=n.task;try{var c=i.apply(o,s);if(rt(c))return void Jt(c,r);if(nt(c))return void dr(e,c,a.context,Yt,kt(i),!1,r);r(c)}catch(e){r(e,!0)}},Xt.CPS=function(e,t,r){var n=t.context,o=t.fn,i=t.args;try{var s=function(e,t){!function(e){return null==e}(e)?r(e,!0):r(t)};o.apply(n,i.concat(s)),s.cancel&&(r.cancel=s.cancel)}catch(e){r(e,!0)}},Xt.FORK=function(e,t,r,n){var o=t.fn,i=t.detached,s=n.task,a=function(e){var t=e.context,r=e.fn,n=e.args;try{var o=r.apply(t,n);if(nt(o))return o;var i=!1;return mt((function(e){return i?{value:e,done:!0}:(i=!0,{value:o,done:!rt(o)})}))}catch(e){return mt((function(){throw e}))}}({context:t.context,fn:o,args:t.args}),c=function(e,t){return e.isSagaIterator?{name:e.meta.name}:kt(t)}(a,o);Dt((function(){var t=dr(e,a,s.context,Yt,c,i,void 0);i?r(t):t.isRunning()?(s.queue.addTask(t),r(t)):t.isAborted()?s.queue.abort(t.error()):r(t)}))},Xt.JOIN=function(e,t,r,n){var o=n.task,i=function(e,t){if(e.isRunning()){var r={task:o,cb:t};t.cancel=function(){e.isRunning()&&lt(e.joiners,r)},e.joiners.push(r)}else e.isAborted()?t(e.error(),!0):t(e.result())};if(tt(t)){if(0===t.length)return void r([]);var s=wt(t,r);t.forEach((function(e,t){i(e,s[t])}))}else i(t,r)},Xt.CANCEL=function(e,t,r,n){t===Ke?er(n.task):tt(t)?t.forEach(er):er(t),r()},Xt.SELECT=function(e,t,r){var n=t.selector,o=t.args;try{r(n.apply(void 0,[e.getState()].concat(o)))}catch(e){r(e,!0)}},Xt.ACTION_CHANNEL=function(e,t,r){var n=t.pattern,o=zt(t.buffer),i=Qt(n),s=function t(r){Ht(r)||e.channel.take(t,i),o.put(r)},a=o.close;o.close=function(){s.cancel(),a()},e.channel.take(s,i),r(o)},Xt.CANCELLED=function(e,t,r,n){r(n.task.isCancelled())},Xt.FLUSH=function(e,t,r){t.flush(r)},Xt.GET_CONTEXT=function(e,t,r,n){r(n.task.context[t])},Xt.SET_CONTEXT=function(e,t,r,n){dt(n.task.context,t),r()},Xt);function rr(e,t){return e+"?"+t}function nr(e){var t=e.name,r=e.location;return r?t+" "+rr(r.fileName,r.lineNumber):t}function or(e){var t,r=(t=[]).concat.apply(t,e.map((function(e){return e.cancelledTasks})));return r.length?["Tasks cancelled due to error:"].concat(r).join("\n"):""}var ir=null,sr=[],ar=function(e){e.crashedEffect=ir,sr.push(e)},cr=function(){ir=null,sr.length=0},ur=function(){var e,t=sr[0],r=sr.slice(1),n=t.crashedEffect?(e=Et(t.crashedEffect))?e.code+" "+rr(e.fileName,e.lineNumber):"":null;return["The above error occurred in task "+nr(t.meta)+(n?" \n when executing effect "+n:"")].concat(r.map((function(e){return" created by "+nr(e.meta)})),[or(sr)]).join("\n")};function dr(e,t,r,n,o,i,s){var a=e.finalizeRunEffect((function(t,r,n){rt(t)?Jt(t,n):nt(t)?dr(e,t,u.context,r,o,!1,n):t&&t[qe]?(0,tr[t.type])(e,t.payload,n,d):n(t)}));l.cancel=ct;var c={meta:o,cancel:function(){0===c.status&&(c.status=1,l(ze))},status:0},u=function(e,t,r,n,o,i,s){var a;void 0===s&&(s=ct);var c,u,d=0,l=null,h=[],p=Object.create(r),f=function(e,t,r){var n,o=[],i=!1;function s(e){h.push.apply(h,f.getTasks().map((function(e){return e.meta.name}))),c(),r(e,!0)}function a(t){o.push(t),t.cont=function(a,c){i||(lt(o,t),t.cont=ct,c?s(a):(t===e&&(n=a),o.length||(i=!0,r(n))))}}function c(){i||(i=!0,o.forEach((function(e){e.cont=ct,e.cancel()})),o=[])}return a(e),{addTask:a,cancelAll:c,abort:s,getTasks:function(){return o}}}(t,0,m);function m(t,r){if(r){if(d=2,ar({meta:o,cancelledTasks:h}),v.isRoot){var n=ur();cr(),e.onError(t,{sagaStack:n})}u=t,l&&l.reject(t)}else t===ze?d=1:1!==d&&(d=3),c=t,l&&l.resolve(t);v.cont(t,r),v.joiners.forEach((function(e){e.cb(t,r)})),v.joiners=null}var v=((a={})[He]=!0,a.id=n,a.meta=o,a.isRoot=i,a.context=p,a.joiners=[],a.queue=f,a.cancel=function(){0===d&&(d=1,f.cancelAll(),m(ze,!1))},a.cont=s,a.end=m,a.setContext=function(e){dt(p,e)},a.toPromise=function(){return l||((e={}).promise=new Promise((function(t,r){e.resolve=t,e.reject=r})),l=e,2===d?l.reject(u):0!==d&&l.resolve(c)),l.promise;var e},a.isRunning=function(){return 0===d},a.isCancelled=function(){return 1===d||0===d&&1===t.status},a.isAborted=function(){return 2===d},a.result=function(){return c},a.error=function(){return u},a);return v}(e,c,r,n,o,i,s),d={task:u,digestEffect:h};return s&&(s.cancel=u.cancel),l(),u;function l(e,r){try{var o;r?(o=t.throw(e),cr()):_t(e)?(c.status=1,l.cancel(),o=Ze(t.return)?t.return(ze):{done:!0,value:ze}):o=bt(e)?Ze(t.return)?t.return():{done:!0}:t.next(e),o.done?(1!==c.status&&(c.status=3),c.cont(o.value)):h(o.value,n,l)}catch(e){if(1===c.status)throw e;c.status=2,c.cont(e,!0)}}function h(t,r,n,o){void 0===o&&(o="");var i,s=Zt();function c(r,o){i||(i=!0,n.cancel=ct,e.sagaMonitor&&(o?e.sagaMonitor.effectRejected(s,r):e.sagaMonitor.effectResolved(s,r)),o&&function(e){ir=e}(t),n(r,o))}e.sagaMonitor&&e.sagaMonitor.effectTriggered({effectId:s,parentEffectId:r,label:o,effect:t}),c.cancel=ct,n.cancel=function(){i||(i=!0,c.cancel(),c.cancel=ct,e.sagaMonitor&&e.sagaMonitor.effectCancelled(s))},a(t,s,c)}}function lr(e,t){for(var r=e.channel,n=void 0===r?Gt():r,o=e.dispatch,i=e.getState,s=e.context,a=void 0===s?{}:s,c=e.sagaMonitor,u=e.effectMiddlewares,d=e.onError,l=void 0===d?vt:d,h=arguments.length,p=new Array(h>2?h-2:0),f=2;f<h;f++)p[f-2]=arguments[f];var m,v=t.apply(void 0,p),y=Zt();if(c&&(c.rootSagaStarted=c.rootSagaStarted||ct,c.effectTriggered=c.effectTriggered||ct,c.effectResolved=c.effectResolved||ct,c.effectRejected=c.effectRejected||ct,c.effectCancelled=c.effectCancelled||ct,c.actionDispatched=c.actionDispatched||ct,c.rootSagaStarted({effectId:y,saga:t,args:p})),u){var g=w.apply(void 0,u);m=function(e){return function(t,r,n){return g((function(t){return e(t,r,n)}))(t)}}}else m=ut;var b={channel:n,dispatch:gt(o),getState:i,sagaMonitor:c,onError:l,finalizeRunEffect:m};return Dt((function(){var e=dr(b,v,a,y,kt(t),!0,void 0);return c&&c.effectResolved(y,e),e}))}function hr(e){var t,r=void 0===e?{}:e,n=r.context,o=void 0===n?{}:n,i=r.channel,s=void 0===i?Gt():i,a=r.sagaMonitor,c=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)t.indexOf(r=i[n])>=0||(o[r]=e[r]);return o}(r,["context","channel","sagaMonitor"]);function u(e){return t=lr.bind(null,Xe({},c,{context:o,channel:s,dispatch:e.dispatch,getState:e.getState,sagaMonitor:a})),function(e){return function(t){a&&a.actionDispatched&&a.actionDispatched(t);var r=e(t);return s.put(t),r}}}return u.run=function(){return t.apply(void 0,arguments)},u.setContext=function(e){dt(o,e)},u}var pr={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}function o(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function i(e,t,n,i,s){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new o(n,i||e,s),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,n,o=[];if(0===this._eventsCount)return o;for(n in e=this._events)t.call(e,n)&&o.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},a.prototype.listeners=function(e){var t=this._events[r?r+e:e];if(!t)return[];if(t.fn)return[t.fn];for(var n=0,o=t.length,i=new Array(o);n<o;n++)i[n]=t[n].fn;return i},a.prototype.listenerCount=function(e){var t=this._events[r?r+e:e];return t?t.fn?1:t.length:0},a.prototype.emit=function(e,t,n,o,i,s){var a=r?r+e:e;if(!this._events[a])return!1;var c,u,d=this._events[a],l=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),l){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,n),!0;case 4:return d.fn.call(d.context,t,n,o),!0;case 5:return d.fn.call(d.context,t,n,o,i),!0;case 6:return d.fn.call(d.context,t,n,o,i,s),!0}for(u=1,c=new Array(l-1);u<l;u++)c[u-1]=arguments[u];d.fn.apply(d.context,c)}else{var h,p=d.length;for(u=0;u<p;u++)switch(d[u].once&&this.removeListener(e,d[u].fn,void 0,!0),l){case 1:d[u].fn.call(d[u].context);break;case 2:d[u].fn.call(d[u].context,t);break;case 3:d[u].fn.call(d[u].context,t,n);break;case 4:d[u].fn.call(d[u].context,t,n,o);break;default:if(!c)for(h=1,c=new Array(l-1);h<l;h++)c[h-1]=arguments[h];d[u].fn.apply(d[u].context,c)}}return!0},a.prototype.on=function(e,t,r){return i(this,e,t,r,!1)},a.prototype.once=function(e,t,r){return i(this,e,t,r,!0)},a.prototype.removeListener=function(e,t,n,o){var i=r?r+e:e;if(!this._events[i])return this;if(!t)return s(this,i),this;var a=this._events[i];if(a.fn)a.fn!==t||o&&!a.once||n&&a.context!==n||s(this,i);else{for(var c=0,u=[],d=a.length;c<d;c++)(a[c].fn!==t||o&&!a[c].once||n&&a[c].context!==n)&&u.push(a[c]);u.length?this._events[i]=1===u.length?u[0]:u:s(this,i)}return this},a.prototype.removeAllListeners=function(e){var t;return e?this._events[t=r?r+e:e]&&s(this,t):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=r,a.EventEmitter=a,e.exports=a}(pr);var fr,mr=pr.exports,vr=Object.defineProperty,yr=Object.defineProperties,gr=Object.getOwnPropertyDescriptors,br=Object.getOwnPropertySymbols,_r=Object.prototype.hasOwnProperty,Sr=Object.prototype.propertyIsEnumerable,wr=(e,t,r)=>t in e?vr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,kr=(e,t)=>{for(var r in t||(t={}))_r.call(t,r)&&wr(e,r,t[r]);if(br)for(var r of br(t))Sr.call(t,r)&&wr(e,r,t[r]);return e},Er=(e,t)=>yr(e,gr(t)),Cr=(e,t)=>{var r={};for(var n in e)_r.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&br)for(var n of br(e))t.indexOf(n)<0&&Sr.call(e,n)&&(r[n]=e[n]);return r},Or=(e,t)=>{for(var r in(e=>{vr(e,"__esModule",{value:!0})})(e),t)vr(e,r,{get:t[r],enumerable:!0})},Ir=(e,t,r)=>(wr(e,"symbol"!=typeof t?t+"":t,r),r);!function(e){e[e.CONNECTING=0]="CONNECTING",e[e.OPEN=1]="OPEN",e[e.CLOSING=2]="CLOSING",e[e.CLOSED=3]="CLOSED"}(fr||(fr={}));var Tr="__local__",Pr=["room.started","room.ended"].map((e=>`video.${e}`)),Mr=()=>(new Date).toISOString().replace("T"," ").replace("Z",""),Rr=l.getLogger("signalwire"),xr=Rr.methodFactory;Rr.methodFactory=(e,t,r)=>{let n=xr(e,t,r);return function(){let e=[Mr(),"-"];for(let t=0;t<arguments.length;t++)e.push(arguments[t]);n.apply(void 0,e)}};var Ar=Rr.getLevel();Rr.setLevel(Ar);var jr=(e,t)=>{let{result:r={},error:n}=e;if(n)return{error:n};let{code:o,node_id:i,result:s=null}=r;return o&&"200"!==o?{error:r}:null===s?(t&&(r.node_id=t),{result:r}):s?s.jsonrpc?jr(s,i):{result:s}:{result:r}},Lr={propsToUpdateValue:["updated","layers","members","recordings","playbacks"]},Dr=(e,t=Lr)=>Object.entries(e).reduce(((e,[r,n])=>{let o=Nr(r);return e[o]="object"==typeof n&&n?Array.isArray(n)&&t.propsToUpdateValue.includes(r)?n.map((e=>"string"==typeof e?Nr(e):Dr(e))):Dr(n):(e=>e.endsWith("At"))(o)?(e=>{if(void 0===e)return e;let t=new Date(1e3*e);return isNaN(t.getTime())?e:t})(n):n,e}),{}),Nr=e=>e.includes("_")?e.split("_").reduce(((e,t,r)=>{let n=t.trim().charAt(0),o=t.substr(1).toLowerCase();return`${e}${0===r?n.toLowerCase():n.toUpperCase()}${o}`}),""):e,Vr=({event:e,namespace:t})=>("string"==typeof e&&(e=Ur({event:e,namespace:t}),e=Wr(e)),e),$r=/[A-Z]/g,Wr=e=>e.replace($r,(e=>`_${e.toLowerCase()}`)),Ur=({namespace:e,event:t})=>!e||t.startsWith(e)?t:`${e}:${t}`,qr=(e,t)=>(Object.keys(t).forEach((t=>{if(e.prototype.hasOwnProperty(t))throw new Error(`[extendComponent] Duplicated method name: ${t}`)})),Object.defineProperties(e.prototype,t),e),Fr=new Map,Br=[{field:"members",preProcessPayload:e=>({member:e}),eventTransformType:"roomSessionMember"},{field:"recordings",preProcessPayload:e=>({recording:e}),eventTransformType:"roomSessionRecording"}],Qr=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch(t){return e}},Kr=/^(ws|wss):\/\//,Hr=e=>Pr.includes(e),zr=["video.member.updated","video.member.talking"],Gr=["video.room.joined","video.track","video.active","video.answering","video.destroy","video.early","video.hangup","video.held","video.new","video.purge","video.recovering","video.requesting","video.ringing","video.trying"],Jr=e=>e.includes(Tr),Xr=e=>{let t=e.split(".")[0];return e.split(".").reduce(((e,r)=>(e.push(r),r===t&&e.push(Tr),e)),[]).join(".")},Yr=e=>{var t;return kr({jsonrpc:"2.0",id:null!=(t=e.id)?t:c()},e)},Zr=e=>kr({jsonrpc:"2.0"},e),en={major:3,minor:0,revision:0},tn=e=>Yr({method:"signalwire.connect",params:kr({version:en},e)}),rn={id:"callID",destinationNumber:"destination_number",remoteCallerName:"remote_caller_id_name",remoteCallerNumber:"remote_caller_id_number",callerName:"caller_id_name",callerNumber:"caller_id_number"},nn=e=>{if(e.hasOwnProperty("dialogParams")){let t=Cr(e.dialogParams,["remoteSdp","localStream","remoteStream"]);for(let e in rn)e&&t.hasOwnProperty(e)&&(t[rn[e]]=t[e],delete t[e]);e.dialogParams=t}return e},on=e=>(t={})=>Yr({method:e,params:nn(t)}),sn=on("verto.invite"),an=on("verto.bye"),cn=on("verto.info"),un=(e,t)=>Zr({id:e,result:{method:t}}),dn={};Or(dn,{authErrorAction:()=>mn,authSuccessAction:()=>vn,closeConnectionAction:()=>pn,destroyAction:()=>hn,executeAction:()=>fn,getCustomSagaActionType:()=>Cn,initAction:()=>ln,makeCustomSagaAction:()=>En,sessionConnectedAction:()=>_n,sessionDisconnectedAction:()=>Sn,sessionReconnectingAction:()=>wn,socketClosedAction:()=>yn,socketErrorAction:()=>gn,socketMessageAction:()=>bn});var ln=De("swSdk/init"),hn=De("swSdk/destroy"),pn=De("swSdk/closeConnection"),fn=De("swSdk/executeRequest"),mn=De("auth/error"),vn=De("auth/success"),yn=De("socket/closed"),gn=De("socket/error"),bn=De("socket/message"),_n=De("session.connected"),Sn=De("session.disconnected"),wn=De("session.reconnecting"),kn=(e,t)=>`${t.type}/${e}`,En=(e,t)=>Er(kr({},t),{type:kn(e,t)}),Cn=(e,t)=>kn(e,t),On=({name:e="",initialState:t,reducers:r,extraReducers:n})=>Ve({name:e,initialState:t,reducers:r,extraReducers:e=>{e.addCase(hn.type,(()=>t)),"function"==typeof n&&n(e)}}),In=On({name:"session",initialState:{protocol:"",iceServers:[],authStatus:"unknown",authError:void 0,authCount:0},reducers:{connected:(e,{payload:t})=>{var r,n;e.authStatus="authorized",e.authCount+=1,e.protocol=null!=(r=null==t?void 0:t.protocol)?r:"",e.iceServers=null!=(n=null==t?void 0:t.ice_servers)?n:[]},authStatus:(e,{payload:t})=>{e.authStatus=t}},extraReducers:e=>{e.addCase(mn.type,((e,{payload:t})=>{e.authStatus="unauthorized",e.authError=t.error}))}}),{actions:Tn,reducer:Pn}=In,Mn=On({name:"components",initialState:{byId:{}},reducers:{upsert:(e,{payload:t})=>{t.id in e.byId?Object.keys(t).forEach((r=>{e.byId[t.id][r]=t[r]})):e.byId[t.id]=t},executeSuccess:(e,{payload:t})=>{let{componentId:r,requestId:n,response:o}=t;e.byId[r]&&(e.byId[r].responses=e.byId[r].responses||{},e.byId[r].responses[n]=o)},executeFailure:(e,{payload:t})=>{let{componentId:r,requestId:n,error:o,action:i}=t;e.byId[r]&&(e.byId[r].errors=e.byId[r].errors||{},e.byId[r].errors[n]={action:i,jsonrpc:o})}}}),{actions:Rn,reducer:xn}=Mn,An={queue:[]},jn=On({name:"executeQueue",initialState:An,reducers:{add:(e,{payload:t})=>{e.queue.push(t)},clean:()=>An}}),{actions:Ln,reducer:Dn}=jn,Nn=S({components:xn,session:Pn,executeQueue:Dn}),Vn=function(e){return"@@redux-saga/"+e},$n=Vn("CANCEL_PROMISE"),Wn=Vn("IO"),Un=Vn("MULTICAST"),qn=function(e){return"function"==typeof e},Fn=function(e){return"string"==typeof e},Bn=Array.isArray,Qn=function e(t){return t&&(Fn(t)||Hn(t)||qn(t)||Bn(t)&&t.every(e))},Kn=function(e){return e&&qn(e.take)&&qn(e.close)},Hn=function(e){return Boolean(e)&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype},zn=function(e){return e},Gn="TAKE",Jn="CALL",Xn="FORK",Yn="SELECT",Zn=function(e,t){var r;return(r={})[Wn]=!0,r.combinator=!1,r.type=e,r.payload=t,r};function eo(e,t){return void 0===e&&(e="*"),Qn(e)?Zn(Gn,{pattern:e}):function(e){return Kn(e)&&e[Un]}(e)&&function(e){return null!=e}(t)&&Qn(t)?Zn(Gn,{channel:e,pattern:t}):Kn(e)?Zn(Gn,{channel:e}):void 0}function to(e,t){return function(e){return null==e}(t)&&(t=e,e=void 0),Zn("PUT",{channel:e,action:t})}function ro(e,t){var r,n=null;return qn(e)?r=e:(Bn(e)?(n=e[0],r=e[1]):(n=e.context,r=e.fn),n&&Fn(r)&&qn(n[r])&&(r=n[r])),{context:n,fn:r,args:t}}function no(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Zn(Jn,ro(e,r))}function oo(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Zn(Xn,ro(e,r))}function io(e){void 0===e&&(e=zn);for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Zn(Yn,{selector:e,args:r})}var so=no.bind(null,(function(e,t){void 0===t&&(t=!0);var r,n=new Promise((function(n){r=setTimeout(n,e,t)}));return n[$n]=function(){clearTimeout(r)},n})),ao={};Or(ao,{getAuthStatus:()=>lo,getIceServers:()=>co,getSession:()=>uo});var co=({session:e})=>{var t;return null!=(t=null==e?void 0:e.iceServers)?t:[]},uo=e=>e.session,lo=({session:e})=>e.authStatus,ho=({components:e},t)=>{var r;return null==(r=e.byId)?void 0:r[t]};function*po(e){function*t(t){let{componentId:r,requestId:n,method:o,params:i}=t.payload;try{let t=(({method:e,params:t})=>Yr({method:e,params:t}))({id:n,method:o,params:i}),s=yield no(e.execute,t);r&&n&&(yield to(Rn.executeSuccess({componentId:r,requestId:n,response:s})))}catch(e){Rr.warn("worker error",r,e),r&&n&&(yield to(Rn.executeFailure({componentId:r,requestId:n,action:t,error:e})))}}for(;;){let e=yield eo(fn.type);"authorized"===(yield io(lo))&&(yield oo(t,e))}}function*fo({session:e,sessionChannel:t,pubSubChannel:r}){function*n({jsonrpc:t,nodeId:r}){var n,o;Rr.debug("vertoWorker",t,r);let{id:i,method:s,params:a={}}=t;switch(s){case"verto.media":{let e={id:a.callID,state:"early",remoteSDP:a.sdp,nodeId:r};yield to(Rn.upsert(e)),yield to(fn({method:"video.message",params:{message:un(i,s),node_id:r}}));break}case"verto.answer":{let e={id:a.callID,state:"active",nodeId:r};(null==a?void 0:a.sdp)&&(e.remoteSDP=a.sdp),yield to(Rn.upsert(e)),yield to(fn({method:"video.message",params:{message:un(i,s),node_id:r}}));break}case"verto.bye":{let e={id:a.callID,state:"hangup",nodeId:r,byeCause:null!=(n=null==a?void 0:a.cause)?n:"",byeCauseCode:null!=(o=null==a?void 0:a.causeCode)?o:0,redirectDestination:null==a?void 0:a.redirectDestination};yield to(Rn.upsert(e)),yield to(fn({method:"video.message",params:{message:un(i,s),node_id:r}}));break}case"verto.ping":yield to(fn({method:"video.message",params:{message:un(i,s),node_id:r}}));break;case"verto.punt":return e.disconnect();case"verto.mediaParams":{let{callID:e,mediaParams:t={}}=a;if(!e){Rr.debug("Invalid mediaParams event",a);break}let r={id:e};(null==t?void 0:t.video)&&(r.videoConstraints=t.video),(null==t?void 0:t.audio)&&(r.audioConstraints=t.audio),yield to(Rn.upsert(r));break}case"verto.info":return Rr.debug("Verto Info",a);case"verto.clientReady":return Rr.debug("Verto ClientReady",a);case"verto.announce":return Rr.debug("Verto Announce",a);default:return Rr.debug(`Unknown Verto method: ${s}`,a)}}function*o(e){switch(e.event_type){case"video.room.subscribed":yield to(Rn.upsert({id:e.params.call_id,roomId:e.params.room_session.room_id,roomSessionId:e.params.room_session.id,memberId:e.params.member_id})),yield to(r,{type:"video.room.joined",payload:e.params});break;case"video.member.updated":{let{member:{updated:t=[]}}=e.params;for(let n of t){let t=`video.member.updated.${n}`;yield to(r,{type:t,payload:e.params})}break}case"video.member.joined":{let{member:t}=e.params;(null==t?void 0:t.parent_id)&&(yield io(ho,t.parent_id))&&(yield to(Rn.upsert({id:t.id,roomId:e.params.room_id,roomSessionId:e.params.room_session_id,memberId:t.id})));break}case"video.member.talking":{let{member:t}=e.params;if("talking"in t){let n=t.talking?"started":"ended";yield to(r,{type:`video.member.talking.${n}`,payload:e.params});let o=t.talking?"start":"stop";yield to(r,{type:`video.member.talking.${o}`,payload:e.params})}break}}yield to(r,{type:e.event_type,payload:e.params})}function*i(e){if((e=>"webrtc.message"===(null==e?void 0:e.event_type))(e))yield oo(n,{jsonrpc:e.params,nodeId:e.node_id});else{if(!(e=>{var t;return!!(null==(t=null==e?void 0:e.event_type)?void 0:t.startsWith("video."))})(e))return Rr.debug("Unknown broadcast event",e);yield oo(o,e)}}function*s(e){if(Rr.debug("Inbound WebSocket Message",e),e.type!==bn.type)return void(yield to(e));let{method:t,params:r}=e.payload;switch(t){case"signalwire.event":yield oo(i,r);break;default:return Rr.debug(`Unknown message: ${t}`,e)}}for(;;)try{for(;;){let e=yield eo(t);yield oo(s,e)}}catch(e){Rr.error("sessionChannelWorker error:",e)}finally{Rr.debug("sessionChannelWorker finally")}}function mo(e){return function(t,r){void 0===r&&(r=Ct);var n,o,i=!1,s=zt(r),a=function(){i||(i=!0,Ze(n)&&n(),s.close())};return n=ht((o=function(e){Ht(e)?a():s.put(e)},e.dispatch=e=>{o(e)},n=()=>{Rr.debug("sessionChannel unsubscribe"),e.disconnect()})),i&&n(),{take:s.take,flush:s.flush,close:a}}()}var vo=e=>void 0===e.payload?"":(e=>e.type.startsWith("video.member."))(e)||(e=>e.type.startsWith("video.layout."))(e)||(e=>e.type.startsWith("video.recording."))(e)||(e=>e.type.startsWith("video.playback."))(e)?e.payload.room_session_id:(e=>e.type.startsWith("video.room."))(e)?e.payload.room_session.id:"";function*yo({pubSubChannel:e,emitter:t}){for(;;){let r=yield eo(e),{type:n,payload:o}=r;try{let e=vo(r);Hr(n)&&t.emit(n,o),t.emit(Vr({namespace:e,event:n}),o)}catch(e){Rr.error(e)}}}var go=({executeQueue:e})=>e;function*bo(){function*e(e){"authorized"!==(yield io(lo))&&(yield to(Ln.add(e.payload)))}for(;;){let t=yield eo(fn.type);yield oo(e,t)}}function*_o(){let{queue:e}=yield io(go);for(let t of e)yield to(fn(t));yield to(Ln.clean())}var So=class extends Error{constructor(e,t){super(t),this.code=e,this.message=t,Ir(this,"name","AuthError"),Object.setPrototypeOf(this,So.prototype)}};function*wo(e,t){let r=new e(t),n=yield no(mo,r),o=yield no(zt);yield oo(fo,{session:r,sessionChannel:n,pubSubChannel:o}),yield oo(Eo,{session:r,sessionChannel:n,pubSubChannel:o,userOptions:t}),r.connect(),yield eo(hn.type),o.close(),n.close()}function*ko({session:e,sessionChannel:t,pubSubChannel:r}){"reconnecting"===e.status?(yield to(r,wn()),yield so(2e3*Math.random()),yield no(e.connect)):(t.close(),yield to(r,Sn()))}function*Eo(e){for(;;){let t=yield eo([vn.type,mn.type,gn.type,yn.type]);switch(t.type){case vn.type:yield oo(Co,e);break;case mn.type:{let{error:e}=t.payload;throw e?new So(e.code,e.error):new Error("Unauthorized")}case gn.type:break;case yn.type:yield oo(ko,e)}}}function*Co(e){let{session:t,pubSubChannel:r,userOptions:n}=e,o=yield oo(yo,{pubSubChannel:r,emitter:n.emitter}),i=yield oo(po,t);yield to(Tn.connected(t.rpcConnectResult)),yield to(r,_n());let s=yield oo(_o);yield eo(pn.type),o.cancel(),i.cancel(),s.cancel()}var Oo=e=>{let{componentListeners:t={},sessionListeners:r={},store:n,Component:o,customSagas:i=[]}=e,s=Object.keys(t),a=Object.keys(r);return e=>{let c=new o(Er(kr({},e),{store:n})),u=new Map,d=!0,l=n.subscribe((()=>{let e=n.getState(),o=ho(e,c.__uuid);if(!o)return;for(let e of s){if(!1===d)return;let r=`${c.__uuid}.${e}`,n=u.get(r),i=null==o?void 0:o[e];if(void 0!==i&&n!==i){u.set(r,i);let n=t[e];"string"==typeof n?c[n](o):n(o)}}let i=uo(e);for(let e of a){if(!1===d)return;let t=`session.${e}`,n=u.get(t),o=i[e];if(void 0!==o&&n!==o){u.set(t,o);let n=r[e];"string"==typeof n?c[n](i):"function"==typeof n&&n(i)}}}));n.dispatch(Rn.upsert({id:c.__uuid}));let h=null==i?void 0:i.map((e=>n.runSaga(e,{instance:c,runSaga:n.runSaga})));return c.destroyer=()=>{d=!1,l(),u.clear(),(null==h?void 0:h.length)&&h.forEach((e=>e.cancel()))},c}},Io=e=>e,To=class{constructor(e){this.options=e,Ir(this,"uuid",c()),Ir(this,"_eventsPrefix",""),Ir(this,"_eventsRegisterQueue",new Set),Ir(this,"_eventsEmitQueue",new Set),Ir(this,"_eventsNamespace"),Ir(this,"_eventsTransformsCache",new Map),Ir(this,"_requests",new Map),Ir(this,"_customSagaTriggers",new Map),Ir(this,"_destroyer"),Ir(this,"_emitterTransforms",new Map),Ir(this,"_emitterListenersCache",new Map),Ir(this,"_trackedEvents",[])}get __uuid(){return this.uuid}_getNamespacedEvent(e){let t=this._eventsNamespace;return"string"==typeof e&&Jr(e)&&(t=this.__uuid),Vr({event:e,namespace:t})}_getPrefixedEvent(e){return this._eventsPrefix&&"string"==typeof e&&!e.includes(`${this._eventsPrefix}.`)?`${this._eventsPrefix}.${e}`:e}_getInternalEvent(e){return this._getNamespacedEvent(this._getPrefixedEvent(e))}set destroyer(e){this._destroyer=e}get store(){return this.options.store}get emitter(){return this.options.emitter}addEventToRegisterQueue(e){let[t,r]=e.params;return Rr.trace("Adding event to the register queue",{event:t,fn:r}),this._eventsRegisterQueue.add({type:e.type,params:e.params}),this.emitter}_addEventToEmitQueue(e,t){Rr.trace("Adding to the emit queue",e),this._eventsEmitQueue.add({event:e,args:t})}shouldAddToQueue(){return void 0===this._eventsNamespace}runAndCacheEventHandlerTransform({internalEvent:e,transform:t,payload:r}){if(!this._eventsTransformsCache.has(e)){let n=t.instanceFactory(r);return this._eventsTransformsCache.set(e,n),n}return this._eventsTransformsCache.get(e)}cleanupEventHandlerTransformCache({internalEvent:e,force:t}){let r=this._eventsTransformsCache.get(e),n=this.listenerCount(e);return r&&(t||n<=1)?(r.destroy(),this._eventsTransformsCache.delete(e)):(Rr.debug("[cleanupEventHandlerTransformCache] Key wasn't cached",e),!1)}getEmitterListenersMapByInternalEventName(e){var t;return null!=(t=this._emitterListenersCache.get(e))?t:new Map}getAndRemoveStableEventHandler(e,t){let r=this.getEmitterListenersMapByInternalEventName(e);if(t&&r.has(t)){let n=r.get(t);return r.delete(t),this._emitterListenersCache.set(e,r),n}return t}_createStableEventHandler(e,t){return r=>{let n=this._emitterTransforms.get(e);if(!n)return t(r);let o=this.runAndCacheEventHandlerTransform({internalEvent:e,transform:n,payload:r}),i=this._parseNestedFields(n.payloadTransform(r)),s=new Proxy(o,{get:(e,t,o)=>"_eventsNamespace"===t&&n.getInstanceEventNamespace?n.getInstanceEventNamespace(r):"eventChannel"===t&&n.getInstanceEventChannel?n.getInstanceEventChannel(r):t in i?i[t]:Reflect.get(e,t,o)});return t(s)}}_parseNestedFields(e){return Br.forEach((({field:t,preProcessPayload:r,eventTransformType:n})=>{var o;let i=this._emitterTransforms.get(n);!i||!(null==(o=null==e?void 0:e[t])?void 0:o.length)||(e[t]=e[t].map((e=>(({transform:e,payload:t})=>{let r=(({transform:e,payload:t})=>{if(!Fr.has(e.type)){let r=e.instanceFactory(t);return Fr.set(e.type,r),r}return Fr.get(e.type)})({transform:e,payload:t}),n=e.payloadTransform(t);return new Proxy(r,{get:(r,o,i)=>"_eventsNamespace"===o&&e.getInstanceEventNamespace?e.getInstanceEventNamespace(t):"eventChannel"===o&&e.getInstanceEventChannel?e.getInstanceEventChannel(t):o in n?n[o]:Reflect.get(r,o,i)})})({transform:i,payload:r(e)}))))})),e}getOrCreateStableEventHandler(e,t){let r=this.getEmitterListenersMapByInternalEventName(e),n=r.get(t);return n||(n=this._createStableEventHandler(e,t),r.set(t,n),this._emitterListenersCache.set(e,r)),n}_trackEvent(e){this._trackedEvents=Array.from(new Set(this._trackedEvents.concat(e)))}_untrackEvent(e){this._trackedEvents=this._trackedEvents.filter((t=>t!==e))}_addListener(e,t,r){let n=this._getInternalEvent(e);this._trackEvent(n);let o=r?"once":"on";if(this.shouldAddToQueue())return this.addEventToRegisterQueue({type:o,params:[e,t]}),this.emitter;let i=this.getOrCreateStableEventHandler(n,t);return Rr.trace("Registering event",n),this.emitter[o](n,i)}on(e,t){return this._addListener(e,t)}once(e,t){return this._addListener(e,t,!0)}off(e,t){if(this.shouldAddToQueue())return this.addEventToRegisterQueue({type:"off",params:[e,t]}),this.emitter;let r=this._getInternalEvent(e),n=this.getAndRemoveStableEventHandler(r,t);return this.cleanupEventHandlerTransformCache({internalEvent:r,force:!n}),Rr.trace("Removing event listener",r),this._untrackEvent(r),this.emitter.off(r,n)}removeAllListeners(e){return this.shouldAddToQueue()?(this.addEventToRegisterQueue({type:"removeAllListeners",params:[e]}),this.emitter):e?this.off(e):(this.eventNames().forEach((e=>{this.off(e)})),this.emitter)}eventNames(){return this._trackedEvents}getSubscriptions(){return(e=>{let t=this.eventNames().map((e=>{if("string"==typeof e){let t=(e=>{let t=e.split(":");return t[t.length-1]})(e);return Gr.includes(t)?null:zr.find((e=>t.startsWith(e)))||t}return e}));return Array.from(new Set(t)).filter(Boolean)})()}emit(e,...t){if(this.shouldAddToQueue())return this._addEventToEmitQueue(e,t),!1;let r=this._getInternalEvent(e);return Rr.trace("Emit on event:",r),this.emitter.emit(r,...t)}listenerCount(e){return this.emitter.listenerCount(e)}destroy(){var e;null==(e=this._destroyer)||e.call(this),this.removeAllListeners()}execute({method:e,params:t},{transformResolve:r=Io,transformReject:n=Io}={transformResolve:Io,transformReject:Io}){return new Promise(((o,i)=>{let s=c();this._requests.set(s,{resolve:o,reject:i,transformResolve:r,transformReject:n}),this.store.dispatch(fn({requestId:s,componentId:this.__uuid,method:e,params:t}))}))}triggerCustomSaga(e){return new Promise(((t,r)=>{let n=c();this._customSagaTriggers.set(n,{resolve:t,reject:r}),this.store.dispatch(kr({dispatchId:n},En(this.__uuid,e)))}))}settleCustomSagaTrigger({dispatchId:e,payload:t,kind:r}){let n=this._customSagaTriggers.get(e);n&&(n[r](t),this._customSagaTriggers.delete(e))}select(e){return e(this.store.getState())}onError(e){this._requests.forEach(((t,r)=>{void 0!==(null==e?void 0:e.errors[r])&&(t.reject(t.transformReject(e.errors[r])),this._requests.delete(r))}))}onSuccess(e){this._requests.forEach(((t,r)=>{void 0!==(null==e?void 0:e.responses[r])&&(t.resolve(t.transformResolve(e.responses[r])),this._requests.delete(r))}))}getStateProperty(e){return this[e]}flushEventsRegisterQueue(){this._eventsRegisterQueue.forEach((e=>{this[e.type](...e.params),this._eventsRegisterQueue.delete(e)}))}flushEventsEmitQueue(){this._eventsEmitQueue.forEach((e=>{let{event:t,args:r}=e;this.emit(t,...r),this._eventsEmitQueue.delete(e)}))}flushEventsQueue(){this.flushEventsRegisterQueue(),this.flushEventsEmitQueue()}_attachListeners(e){"string"==typeof e&&(this._eventsNamespace=e),this.flushEventsQueue()}getEmitterTransforms(){return new Map}_setEmitterTransform({event:e,handler:t,local:r}){let n=this._getInternalEvent(e);(r?!Jr(e):Jr(e)||!this.eventNames().includes(n))||this._emitterTransforms.set(n,t)}applyEmitterTransforms({local:e=!1}={local:!1}){this.getEmitterTransforms().forEach(((t,r)=>{Array.isArray(r)?r.forEach((r=>{this._setEmitterTransform({event:r,handler:t,local:e})})):this._setEmitterTransform({event:r,handler:t,local:e}),this._emitterTransforms.set(t.type,t)}))}},Po=class extends To{constructor(e){super(e),this.options=e}onClientSubscribed(){this._attachListeners("")}connect(){return new Promise(((e,t)=>{let r=this.store.subscribe((()=>{let n=this.store.getState(),{authStatus:o,authError:i}=n.session;if("authorized"===o)e(this),r();else if("unauthorized"===o){let e=i?new So(i.code,i.error):new Error("Unauthorized");t(e),r()}}));this.store.dispatch(ln())}))}disconnect(){this.store.dispatch(hn())}},Mo={audio_muted:!0,video_muted:!0,deaf:!0,on_hold:!0,visible:!0,input_volume:1,output_volume:1,input_sensitivity:1};Object.keys(Mo).map((e=>`video.member.updated.${e}`));var Ro=Dr(Mo);Object.keys(Ro).map((e=>`member.updated.${e}`));var xo={};Or(xo,{RoomSessionPlaybackAPI:()=>ii,RoomSessionRecordingAPI:()=>ni,audioMuteMember:()=>Ko,audioUnmuteMember:()=>Ho,createRoomSessionPlaybackObject:()=>si,createRoomSessionRecordingObject:()=>oi,deafMember:()=>Jo,getLayouts:()=>Do,getMembers:()=>No,getPlaybacks:()=>Bo,getRecordings:()=>qo,hideVideoMuted:()=>$o,play:()=>Qo,removeMember:()=>ri,setDeaf:()=>Yo,setHideVideoMuted:()=>Uo,setInputSensitivityMember:()=>ti,setInputVolumeMember:()=>Zo,setLayout:()=>Vo,setOutputVolumeMember:()=>ei,showVideoMuted:()=>Wo,startRecording:()=>Fo,undeafMember:()=>Xo,videoMuteMember:()=>zo,videoUnmuteMember:()=>Go});var Ao=()=>{},jo=(e,t={})=>({value:function(r={}){return this.execute({method:e,params:kr({room_session_id:this.roomSessionId},r)},t)}}),Lo=(e,t={})=>({value:function(r={}){var n=r,{memberId:o}=n,i=Cr(n,["memberId"]);return this.execute({method:e,params:kr({room_session_id:this.roomSessionId,member_id:o||this.memberId},i)},t)}}),Do=jo("video.list_available_layouts",{transformResolve:e=>({layouts:e.layouts})}),No=jo("video.members.get",{transformResolve:e=>({members:e.members})}),Vo=jo("video.set_layout",{transformResolve:Ao}),$o=jo("video.hide_video_muted",{transformResolve:Ao}),Wo=jo("video.show_video_muted",{transformResolve:Ao}),Uo={value:function(e){return this.execute({method:e?"video.hide_video_muted":"video.show_video_muted",params:{room_session_id:this.roomSessionId}},{transformResolve:Ao})}},qo=jo("video.recording.list",{transformResolve:e=>({recordings:e.recordings.map((e=>Dr(e)))})}),Fo={value:function(){return new Promise((async e=>{let t=t=>{e(t)};this.on(Xr("video.recording.start"),t);try{let e=await this.execute({method:"video.recording.start",params:{room_session_id:this.roomSessionId}});this.emit(Xr("video.recording.start"),Er(kr({},e),{room_session_id:this.roomSessionId}))}catch(e){throw this.off(Xr("video.recording.start"),t),e}}))}},Bo=jo("video.playback.list",{transformResolve:e=>({playbacks:e.playbacks.map((e=>Dr(e)))})}),Qo={value:function(e){return new Promise((async t=>{let r=e=>{t(e)};this.on(Xr("video.playback.start"),r);try{let t=await this.execute({method:"video.playback.start",params:kr({room_session_id:this.roomSessionId},e)});this.emit(Xr("video.playback.start"),Er(kr({},t),{room_session_id:this.roomSessionId}))}catch(e){throw this.off(Xr("video.playback.start"),r),e}}))}},Ko=Lo("video.member.audio_mute",{transformResolve:Ao}),Ho=Lo("video.member.audio_unmute",{transformResolve:Ao}),zo=Lo("video.member.video_mute",{transformResolve:Ao}),Go=Lo("video.member.video_unmute",{transformResolve:Ao}),Jo=Lo("video.member.deaf",{transformResolve:Ao}),Xo=Lo("video.member.undeaf",{transformResolve:Ao}),Yo={value:function(e){return this.execute({method:e?"video.member.deaf":"video.member.undeaf",params:{room_session_id:this.roomSessionId,member_id:this.memberId}},{transformResolve:Ao})}},Zo=Lo("video.member.set_input_volume",{transformResolve:Ao}),ei=Lo("video.member.set_output_volume",{transformResolve:Ao}),ti=Lo("video.member.set_input_sensitivity",{transformResolve:Ao}),ri={value:function(e={}){var t=e,{memberId:r}=t,n=Cr(t,["memberId"]);if(!r)throw new TypeError('Invalid or missing "memberId" argument');return this.execute({method:"video.member.remove",params:kr({room_session_id:this.roomSessionId,member_id:r},n)},{transformResolve:Ao})}},ni=class extends To{async pause(){await this.execute({method:"video.recording.pause",params:{room_session_id:this.getStateProperty("roomSessionId"),recording_id:this.getStateProperty("id")}})}async resume(){await this.execute({method:"video.recording.resume",params:{room_session_id:this.getStateProperty("roomSessionId"),recording_id:this.getStateProperty("id")}})}async stop(){await this.execute({method:"video.recording.stop",params:{room_session_id:this.getStateProperty("roomSessionId"),recording_id:this.getStateProperty("id")}})}},oi=e=>Oo({store:e.store,Component:ni,componentListeners:{errors:"onError",responses:"onSuccess"}})(e),ii=class extends To{async pause(){await this.execute({method:"video.playback.pause",params:{room_session_id:this.getStateProperty("roomSessionId"),playback_id:this.getStateProperty("id")}})}async resume(){await this.execute({method:"video.playback.resume",params:{room_session_id:this.getStateProperty("roomSessionId"),playback_id:this.getStateProperty("id")}})}async stop(){await this.execute({method:"video.playback.stop",params:{room_session_id:this.getStateProperty("roomSessionId"),playback_id:this.getStateProperty("id")}})}async setVolume(e){await this.execute({method:"video.playback.set_volume",params:{room_session_id:this.getStateProperty("roomSessionId"),playback_id:this.getStateProperty("id"),volume:e}})}},si=e=>Oo({store:e.store,Component:ii,componentListeners:{errors:"onError",responses:"onSuccess"}})(e),ai=kr({},ao);const ci=()=>"undefined"!=typeof navigator&&!!navigator.mediaDevices,ui=()=>{if(!ci())throw new Error("The media devices API isn't supported in this environment");return navigator.mediaDevices},di=(e={audio:!0,video:!0})=>{try{return ui().getUserMedia(e)}catch(t){switch(t.name){case"Error":Rr.error("navigator.mediaDevices.getUserMedia doesn't seem to be supported.");break;case"NotFoundError":Rr.error("No media tracks of the type specified were found that satisfy the given constraints.");break;case"NotReadableError":Rr.error("Hardware error occurred at the operating system, browser, or Web page level which prevented access to the device. This could have been caused by having the Camera or Mic being user by another application.");break;case"OverconstrainedError":Rr.error(`The constraint: ${t.constraint} cannot be met by the selected device.`),Rr.info("List of available constraints:",fi());break;case"NotAllowedError":Rr.error("The user has mostly likely denied access to the device. This could also happen if the browsing context is insecure (using HTTP rather than HTTPS)");break;case"TypeError":0===Object.keys(e).length?Rr.error('Constraints can\'t be empty nor have "video" and "audio" set to false.'):Rr.error("Please check that you are calling this method from a secure context (using HTTPS rather than HTTP).");break;case"SecurityError":Rr.error("User media support is disabled on the Document on which getUserMedia() was called. The mechanism by which user media support is enabled and disabled is left up to the individual user agent.")}throw t}},li=e=>ui().getDisplayMedia(e),hi=()=>ui().enumerateDevices(),pi=async e=>{let t=await hi().catch((e=>[]));return e&&(t=t.filter((({kind:t})=>t===e))),t},fi=()=>ui().getSupportedConstraints(),mi=e=>e&&e instanceof MediaStream,vi=()=>"sinkId"in HTMLMediaElement.prototype,yi=async(e,t)=>{if(null!==e)if("string"==typeof t)if(vi())try{return await e.setSinkId(t)}catch(e){throw Rr.error("SecurityError"===e.name?`You need to use HTTPS for selecting audio output device: ${e}`:`Error: ${e}`),e}else Rr.warn("Browser does not support output device selection.");else Rr.warn(`Invalid speaker deviceId: '${t}'`);else Rr.warn("No HTMLMediaElement to attach the speakerId")},gi=e=>{var t;mi(e)&&(null===(t=null==e?void 0:e.getTracks())||void 0===t||t.forEach(bi))},bi=e=>{e&&"live"===e.readyState&&(e.stop(),e.dispatchEvent(new Event("ended")))},_i={camera:"videoinput",microphone:"audioinput",speaker:"audiooutput"},Si=e=>{if(e)return _i[e]},wi=async e=>{if("permissions"in navigator&&"function"==typeof navigator.permissions.query&&e)try{return"granted"===(await navigator.permissions.query({name:e})).state}catch(e){}return(async e=>{const t=await pi(e);return t.length?t.every((({deviceId:e,label:t})=>Boolean(e&&t))):(Rr.warn(`No ${e} devices to check for permissions!`),null)})(Si(e))},ki=()=>wi("camera"),Ei=()=>wi("microphone"),Ci=()=>wi("speaker"),Oi=async(e,t=!1)=>{if(!1===await wi(e)){const t=(e=>({audio:!e||"all"===e||"microphone"===e||"speaker"===e,video:!e||"all"===e||"camera"===e}))(e),r=await di(t);gi(r)}return Ti(e,t)},Ii=(e,t={})=>{const r=[];return e.filter((({deviceId:e,kind:n,groupId:o})=>{var i;if(!e||t.targets&&!(null===(i=t.targets)||void 0===i?void 0:i.includes(n)))return!1;if(!o)return!0;const s=`${n}-${o}`,a=!(null==t?void 0:t.excludeDefault)||"default"!==e;return!(r.includes(s)||!a||(r.push(s),0))}))},Ti=async(e,t=!1)=>{const r=await pi(Si(e));return!0===t?r:Ii(r)},Pi=async(e,t,r)=>{const n=await Ti(r,!0);for(let r=0;r<n.length;r++){const{deviceId:o,label:i}=n[r];if(e===o||t===i)return o}return null},Mi=e=>{const t=new Map;return e.forEach((e=>{e.deviceId&&t.set(e.deviceId,e)})),t},Ri={camera:ki,microphone:Ei,speaker:Ci},xi=["camera","microphone","speaker"],Ai=`Allowed targets are: '${xi.join("', '")}'`,ji={speaker:vi},Li=async(e={})=>{const t=await(async e=>{var t;const r=(null!==(t=e.targets)&&void 0!==t?t:xi).filter((e=>!!xi.includes(e)||(Rr.warn(`We'll ignore the "${e}" target as it is not allowed. ${Ai}.`),!1)));if(!r.length)throw new Error(`At least one "target" is required for createDeviceWatcher(). ${Ai}.`);const n=await(async e=>{const t=e.targets;return(await Promise.all(t.map((e=>Ri[e]())))).reduce(((e,r,n)=>{var o;const i=t[n];return e[!(i in ji)||(null===(o=ji[i])||void 0===o?void 0:o.call(ji))?"supported":"unsupported"].push([i,!!r]),e}),{supported:[],unsupported:[]})})({targets:r});if(n.unsupported.length>0&&r.length===n.unsupported.length)throw new Error(`The platform doesn't support "${r.join(", ")}" as target/s, which means it's not possible to watch for changes on those devices.`);if(n.supported.every((([e,t])=>!t)))throw new Error("You must ask the user for permissions before being able to listen for device changes. Try calling getUserMedia() before calling `createDeviceWatcher()`.");let o=[];const i=n.supported.reduce(((e,[t,r])=>(r?e.push(t):o.push(t),e)),[]);if(i.length!==r.length){const e=n.unsupported.length>0?`The platform doesn't support "${n.unsupported.map((([e])=>e)).join(", ")}" as target/s, which means it's not possible to watch for changes on those devices. `:"",t=o.length>0?`The user hasn't granted permissions for the following targets: ${o.join(", ")}. `:"";Rr.warn(`${e}${t}We'll be watching for the following targets instead: "${i.join(", ")}"`)}return Rr.debug(`Watching these targets: "${i.join(", ")}"`),i})({targets:e.targets}),r=new mr,n=await hi(),o=null==t?void 0:t.reduce(((e,t)=>{const r=Si(t);return r&&e.push(r),e}),[]);let i=Ii(n,{excludeDefault:!0,targets:o});return ui().ondevicechange=async()=>{const e=await hi(),t=i,n=Ii(e,{excludeDefault:!0,targets:o});i=n;const s=((e,t)=>{const r=Mi(e),n=Mi(e),o=[];Rr.debug("[_getDeviceListDiff] <- oldDevices",e),Rr.debug("[_getDeviceListDiff] -> newDevices",t);const i=t.filter((e=>{const t=e.deviceId,i=r.get(t);return i&&(n.delete(t),e.label!==i.label&&o.push(e)),void 0===i}));return{updated:o.map((e=>({type:"updated",payload:e}))),removed:Array.from(n,(([e,t])=>t)).map((e=>({type:"removed",payload:e}))),added:i.map((e=>({type:"added",payload:e})))}})(t,n),a=s.added.length>0,c=s.removed.length>0,u=s.updated.length>0;(a||c||u)&&r.emit("changed",{changes:s,devices:n}),a&&r.emit("added",{changes:s.added,devices:n}),c&&r.emit("removed",{changes:s.removed,devices:n}),u&&r.emit("updated",{changes:s.updated,devices:n})},r},Di=async e=>{Rr.info("RTCService.getUserMedia",e);const{audio:t,video:r}=e;if(t||r)try{return await di(e)}catch(e){throw Rr.error("getUserMedia error: ",e),e}},Ni=async e=>{let{audio:t=!0,micId:r}=e;const{micLabel:n=""}=e;if(r){const e=await Pi(r,n,"microphone").catch((e=>null));e&&("boolean"==typeof t&&(t={}),t.deviceId={exact:e})}let{video:o=!1,camId:i}=e;const{camLabel:s=""}=e;if(i){const e=await Pi(i,s,"camera").catch((e=>null));e&&("boolean"==typeof o&&(o={}),o.deviceId={exact:e})}return{audio:t,video:o}},Vi=e=>/^m=audio/.test(e),$i=e=>/^m=video/.test(e),Wi=e=>{const t=e.split("\r\n"),r=t.findIndex((e=>/^a=rtpmap/.test(e)&&/opus\/48000/.test(e)));if(r<0)return e;const n=(e=>{const t=new RegExp("a=rtpmap:(\\d+) \\w+\\/\\d+"),r=e.match(t);return r&&2==r.length?r[1]:null})(t[r]),o=new RegExp(`a=fmtp:${n}`),i=t.findIndex((e=>o.test(e)));return i>=0?/stereo=1;/.test(t[i])||(t[i]+="; stereo=1; sprop-stereo=1"):t[r]+=`\r\na=fmtp:${n} stereo=1; sprop-stereo=1`,t.join("\r\n")};class Ui{constructor(e,t){this.call=e,this.type=t,this._negotiating=!1,this.options=e.options,Rr.debug("New Peer with type:",this.type,"Options:",this.options),this._onIce=this._onIce.bind(this),this.instance=new window.RTCPeerConnection(this.config),this._attachListeners()}get isOffer(){return"offer"===this.type}get isAnswer(){return"answer"===this.type}get isSimulcast(){return!0===this.options.simulcast}get isSfu(){return!0===this.options.sfu}get localVideoTrack(){const e=this._getSenderByKind("video");return(null==e?void 0:e.track)||null}get localAudioTrack(){const e=this._getSenderByKind("audio");return(null==e?void 0:e.track)||null}get hasAudioSender(){return!!this._getSenderByKind("audio")}get hasVideoSender(){return!!this._getSenderByKind("video")}get hasAudioReceiver(){return!!this._getReceiverByKind("audio")}get hasVideoReceiver(){return!!this._getReceiverByKind("video")}get config(){const{iceServers:e=[],rtcPeerConfig:t={}}=this.options,r=Object.assign({bundlePolicy:"max-compat",iceServers:e,sdpSemantics:"unified-plan"},t);return Rr.debug("RTC config",r),r}get localSdp(){var e,t;return null===(t=null===(e=this.instance)||void 0===e?void 0:e.localDescription)||void 0===t?void 0:t.sdp}stopTrackSender(e){var t,r;try{const n=this._getSenderByKind(e);if(!n)return Rr.info(`There is not a '${e}' sender to stop.`);n.track&&(bi(n.track),null===(r=null===(t=this.options)||void 0===t?void 0:t.localStream)||void 0===r||r.removeTrack(n.track))}catch(t){Rr.error("RTCPeer stopTrackSender error",e,t)}}async restoreTrackSender(e){var t,r;try{const n=this._getSenderByKind(e);if(!n)return Rr.info(`There is not a '${e}' sender to restore.`);if(n.track&&"ended"!==n.track.readyState)return Rr.info(`There is already an active ${e} track.`);const o=await Ni(this.options),i=await Di({[e]:o[e]});if(i&&mi(i)){const o=i.getTracks().find((t=>t.kind===e));o&&(await n.replaceTrack(o),null===(r=null===(t=this.options)||void 0===t?void 0:t.localStream)||void 0===r||r.addTrack(o))}}catch(t){Rr.error("RTCPeer restoreTrackSender error",e,t)}}getDeviceId(e){try{const t=this._getSenderByKind(e);if(!t||!t.track)return null;const{deviceId:r=null}=t.track.getSettings();return r}catch(t){return Rr.error("RTCPeer getDeviceId error",e,t),null}}getTrackSettings(e){try{const t=this._getSenderByKind(e);return t&&t.track?t.track.getSettings():null}catch(t){return Rr.error("RTCPeer getTrackSettings error",e,t),null}}getDeviceLabel(e){try{const t=this._getSenderByKind(e);return t&&t.track?t.track.label:null}catch(t){return Rr.error("RTCPeer getDeviceLabel error",e,t),null}}restartIceWithRelayOnly(){try{const e=this.instance.getConfiguration();if("relay"===e.iceTransportPolicy)return Rr.warn("RTCPeer already with iceTransportPolicy relay only");const t=Object.assign(Object.assign({},e),{iceTransportPolicy:"relay"});this.instance.setConfiguration(t),this.instance.restartIce()}catch(e){Rr.error("RTCPeer restartIce error",e)}}async applyMediaConstraints(e,t){try{const r=this._getSenderByKind(e);if(!r||!r.track)return Rr.info("No sender to apply constraints",e,t);if("live"===r.track.readyState){const n=Object.assign(Object.assign({},r.track.getConstraints()),t),o=this.getDeviceId(e);o&&!this.options.screenShare&&(n.deviceId={exact:o}),Rr.info(`Apply ${e} constraints`,this.call.id,n),await r.track.applyConstraints(n)}}catch(r){Rr.error("Error applying constraints",e,t)}}_getSenderByKind(e){return this.instance.getSenders?this.instance.getSenders().find((({track:t})=>t&&t.kind===e)):(Rr.warn("RTCPeerConnection.getSenders() not available."),null)}_getReceiverByKind(e){return this.instance.getReceivers?this.instance.getReceivers().find((({track:t})=>t&&t.kind===e)):(Rr.warn("RTCPeerConnection.getReceivers() not available."),null)}async startNegotiation(e=!1){var t,r;if(this._negotiating)return Rr.warn("Skip twice onnegotiationneeded!");this._negotiating=!0;try{if((this.options.additionalDevice||this.options.screenShare)&&(null===(r=(t=this.instance).getTransceivers)||void 0===r||r.call(t).forEach((e=>{e.direction="sendonly"}))),this.instance.removeEventListener("icecandidate",this._onIce),this.instance.addEventListener("icecandidate",this._onIce),this.isOffer){Rr.debug("Trying to generate offer");const e=await this.instance.createOffer({voiceActivityDetection:!1});await this._setLocalDescription(e)}if(this.isAnswer){Rr.debug("Trying to generate answer"),await this._setRemoteDescription({sdp:this.options.remoteSdp,type:"offer"});const e=await this.instance.createAnswer({voiceActivityDetection:!1});await this._setLocalDescription(e)}e&&this._sdpReady()}catch(e){Rr.error(`Error creating ${this.type}:`,e)}}async onRemoteSdp(e){try{const t=this.isOffer?"answer":"offer";await this._setRemoteDescription({sdp:e,type:t})}catch(e){Rr.error(`Error handling remote SDP on call ${this.call.id}:`,e),this.call.hangup()}}async start(){return new Promise((async(e,t)=>{this._resolveStartMethod=e,this._rejectStartMethod=t,this.options.localStream=await this._retrieveLocalStream();const{localStream:r=null}=this.options;if(r&&mi(r)){const e=r.getAudioTracks();Rr.debug("Local audio tracks: ",e);const t=r.getVideoTracks();if(Rr.debug("Local video tracks: ",t),this.isOffer&&"function"==typeof this.instance.addTransceiver){e.forEach((e=>{this.instance.addTransceiver(e,{direction:"sendrecv",streams:[r]})}));const n={direction:"sendrecv",streams:[r]};if(this.isSimulcast&&(n.sendEncodings=["0","1","2"].map((e=>({active:!0,rid:e,scaleResolutionDownBy:6*Number(e)||1})))),Rr.debug("Applying video transceiverParams",n),t.forEach((e=>{this.instance.addTransceiver(e,n)})),this.isSfu){const{msStreamsNumber:e=5}=this.options;Rr.debug("Add ",e,"recvonly MS Streams"),n.direction="recvonly";for(let t=0;t<Number(e);t++)this.instance.addTransceiver("video",n)}}else"function"==typeof this.instance.addTrack?(e.forEach((e=>{this.instance.addTrack(e,r)})),t.forEach((e=>{this.instance.addTrack(e,r)}))):this.instance.addStream(r)}this.isOffer?(this.options.negotiateAudio&&this._checkMediaToNegotiate("audio"),this.options.negotiateVideo&&this._checkMediaToNegotiate("video")):this.startNegotiation()}))}_checkMediaToNegotiate(e){if(!this._getSenderByKind(e)&&this.instance.addTransceiver){const t=this.instance.addTransceiver(e);Rr.debug("Add transceiver",e,t)}}async _sdpReady(){if(clearTimeout(this._iceTimeout),this._iceTimeout=null,!this.instance.localDescription)return;const{sdp:e,type:t}=this.instance.localDescription;if(-1===e.indexOf("candidate"))return Rr.debug("No candidate - retry \n"),void this.startNegotiation(!0);Rr.debug("LOCAL SDP \n",`Type: ${t}`,"\n\n",e),this.instance.removeEventListener("icecandidate",this._onIce);try{await this.call.onLocalSDPReady(this.instance.localDescription),this._resolveStartMethod()}catch(e){this._rejectStartMethod(e)}}_onIce(e){this._iceTimeout||(this._iceTimeout=setTimeout((()=>this._sdpReady()),this.options.iceGatheringTimeout)),e.candidate?(Rr.debug("IceCandidate:",e.candidate),this.call.emit("icecandidate",e)):this._sdpReady()}_setLocalDescription(e){const{useStereo:t,googleMaxBitrate:r,googleMinBitrate:n,googleStartBitrate:o}=this.options;return e.sdp&&t&&(e.sdp=Wi(e.sdp)),e.sdp&&r&&n&&o&&(e.sdp=((e,t,r,n)=>{const o=e.split("\r\n");return o.forEach(((e,i)=>{/^a=fmtp:\d*/.test(e)?o[i]+=`;x-google-max-bitrate=${t};x-google-min-bitrate=${r};x-google-start-bitrate=${n}`:/^a=mid:(1|video)/.test(e)&&(o[i]+=`\r\nb=AS:${t}`)})),o.join("\r\n")})(e.sdp,r,n,o)),Rr.debug("LOCAL SDP \n",`Type: ${e.type}`,"\n\n",e.sdp),this.instance.setLocalDescription(e)}_setRemoteDescription(e){e.sdp&&this.options.useStereo&&(e.sdp=Wi(e.sdp)),e.sdp&&this.instance.localDescription&&(e.sdp=((e,t)=>{const r="\r\n",n=this.instance.localDescription.sdp.split(r);if(n.findIndex(Vi)<n.findIndex($i))return e;const o=e.split(r),i=o.findIndex(Vi),s=o.findIndex($i),a=o.slice(i,s),c=o.slice(s,o.length-1);return[...o.slice(0,i),...c,...a,""].join(r)})(e.sdp));const t=e;return Rr.debug("REMOTE SDP \n",`Type: ${e.type}`,"\n\n",e.sdp),this.instance.setRemoteDescription(t)}async _retrieveLocalStream(){if(mi(this.options.localStream))return this.options.localStream;const e=await Ni(this.options);return Di(e)}_attachListeners(){this.instance.addEventListener("signalingstatechange",(()=>{switch(Rr.debug("signalingState:",this.instance.signalingState),this.instance.signalingState){case"stable":this._negotiating=!1;break;case"closed":delete this.instance;break;default:this._negotiating=!0}})),this.instance.addEventListener("negotiationneeded",(()=>{Rr.debug("Negotiation needed event"),this.startNegotiation()})),this.instance.addEventListener("iceconnectionstatechange",(()=>{Rr.debug("iceConnectionState:",this.instance.iceConnectionState)})),this.instance.addEventListener("icegatheringstatechange",(()=>{Rr.debug("iceGatheringState:",this.instance.iceGatheringState)})),this.instance.addEventListener("track",(e=>{this.call.emit("track",e),this.options.remoteStream=e.streams[0]})),this.instance.addEventListener("addstream",(e=>{e.stream&&(this.options.remoteStream=e.stream)}))}}const qi={destinationNumber:"room",remoteCallerName:"Outbound Call",remoteCallerNumber:"",callerName:"",callerNumber:"",audio:!0,video:{aspectRatio:16/9},useStereo:!1,attach:!1,screenShare:!1,additionalDevice:!1,userVariables:{},requestTimeout:1e4,autoApplyMediaParams:!0,iceGatheringTimeout:2e3};class Fi extends To{constructor(e){var t;super(e),this.nodeId="",this.gotEarly=!1,this.doReinvite=!1,this._eventsPrefix="video",this.state="new",this.prevState="new";const r=null!==(t=null==e?void 0:e.iceServers)&&void 0!==t?t:this.select(ai.getIceServers);this.options=Object.assign(Object.assign(Object.assign({},qi),e),{iceServers:r}),this.setState("new"),Rr.debug("New Call with Options:",this.options),this.applyEmitterTransforms({local:!0})}get id(){return this.__uuid}get active(){return"active"===this.state}get trying(){return"trying"===this.state}get memberId(){return this._memberId}get roomId(){return this._roomId}get roomSessionId(){return this._roomSessionId}get localStream(){return this.options.localStream}get remoteStream(){return this.options.remoteStream}get messagePayload(){const{destinationNumber:e,attach:t,callerName:r,callerNumber:n,remoteCallerName:o,remoteCallerNumber:i,userVariables:s,screenShare:a,additionalDevice:c}=this.options;return{sessid:this.options.sessionid,dialogParams:{id:this.__uuid,destinationNumber:e,attach:t,callerName:r,callerNumber:n,remoteCallerName:o,remoteCallerNumber:i,userVariables:s,screenShare:a,additionalDevice:c}}}get cameraId(){return this.peer?this.peer.getDeviceId("video"):null}get cameraLabel(){return this.peer?this.peer.getDeviceLabel("video"):null}get microphoneId(){return this.peer?this.peer.getDeviceId("audio"):null}get microphoneLabel(){return this.peer?this.peer.getDeviceLabel("audio"):null}get withAudio(){return!!this.remoteStream&&this.remoteStream.getAudioTracks().length>0}get withVideo(){return!!this.remoteStream&&this.remoteStream.getVideoTracks().length>0}get localVideoTrack(){return this.peer.localVideoTrack}get localAudioTrack(){return this.peer.localAudioTrack}vertoExecute(e){const t={message:e,node_id:this.nodeId};return"verto.invite"===e.method&&(t.subscribe=this.options.screenShare?["video.room.screenshare"]:this.options.additionalDevice?["video.room.additionaldevice"]:this.getSubscriptions()),this.execute({method:"video.message",params:t})}onStateChange(e){switch(Rr.debug("onStateChange",e),e.state){case"hangup":this._hangup(e);break;default:this.setState(e.state)}}onRemoteSDP(e){Rr.debug("onRemoteSDP",e),e.remoteSDP&&this.peer.onRemoteSdp(e.remoteSDP)}onRoomSubscribed(e){Rr.debug("onRoomSubscribed",e),this.nodeId=e.nodeId,this._roomId=e.roomId,this._roomSessionId=e.roomSessionId,this._memberId=e.memberId,this._attachListeners(this.options.additionalDevice||this.options.screenShare?e.memberId:e.roomSessionId),this.applyEmitterTransforms()}onVideoConstraints(e){Rr.debug("onVideoConstraints",e),(null==e?void 0:e.videoConstraints)&&this.peer.applyMediaConstraints("video",e.videoConstraints)}onAudioConstraints(e){Rr.debug("onAudioConstraints",e),(null==e?void 0:e.audioConstraints)&&this.peer.applyMediaConstraints("audio",e.audioConstraints)}updateCamera(e){return this.updateConstraints({video:Object.assign({aspectRatio:16/9},e)})}updateMicrophone(e){return this.updateConstraints({audio:e})}manageSendersWithConstraints(e){return!1===e.audio&&(Rr.info("Switching off the microphone"),this.stopOutboundAudio()),!1===e.video&&(Rr.info("Switching off the camera"),this.stopOutboundVideo()),e.audio||e.video}updateConstraints(e){return new Promise((async(t,r)=>{try{if(Rr.debug("updateConstraints trying constraints",this.__uuid,e),!Object.keys(e).length)return Rr.warn("Invalid constraints:",e);if(!this.manageSendersWithConstraints(e))return void Rr.debug("Either `video` and `audio` (or both) constraints were set to `false` so their corresponding senders (if any) were stopped");const r=await di(e);Rr.debug("updateConstraints got stream",r),this.options.localStream||(this.options.localStream=new MediaStream);const{instance:n}=this.peer,o=r.getTracks();for(let e=0;e<o.length;e++){const t=o[e];Rr.debug("updateConstraints apply track: ",t);const r=n.getTransceivers().find((({mid:e,sender:r,receiver:n})=>r.track&&r.track.kind===t.kind?(Rr.debug("Found transceiver by sender"),!0):n.track&&n.track.kind===t.kind?(Rr.debug("Found transceiver by receiver"),!0):null===e&&(Rr.debug("Found disassociated transceiver"),!0)));r&&r.sender?(Rr.debug("updateConstraints FOUND - replaceTrack on it and on localStream"),await r.sender.replaceTrack(t),Rr.debug("updateConstraints replaceTrack SUCCESS"),this.options.localStream.getTracks().forEach((e=>{var r;e.kind===t.kind&&e.id!==t.id&&(Rr.debug("updateConstraints stop old track and apply new one - "),bi(e),null===(r=this.options.localStream)||void 0===r||r.removeTrack(e))})),this.options.localStream.addTrack(t)):(Rr.debug("updateConstraints NOT FOUND - addTrack and start dancing!"),this.peer.type="offer",this.doReinvite=!0,this.options.localStream.addTrack(t),n.addTrack(t,this.options.localStream)),Rr.debug("updateConstraints Simply update mic/cam"),"audio"===t.kind?this.options.micId=t.getSettings().deviceId:"video"===t.kind&&(this.options.camId=t.getSettings().deviceId)}Rr.debug("updateConstraints done!"),t()}catch(e){Rr.error("updateConstraints",e),r(e)}}))}invite(){return new Promise((async(e,t)=>{this.direction="outbound",this.peer=new Ui(this,"offer");try{await this.peer.start(),e(this)}catch(e){Rr.error("Invite error",e),t(e)}}))}answer(){return new Promise((async(e,t)=>{this.direction="inbound",this.peer=new Ui(this,"answer");try{await this.peer.start(),e(this)}catch(e){Rr.error("Answer error",e),t(e)}}))}onLocalSDPReady(e){const{type:t,sdp:r}=e;switch(t){case"offer":return this.executeInvite(r);case"answer":Rr.warn("Unhandled verto.answer");break;default:return Rr.error(`Unknown SDP type: '${t}' on call ${this.id}`)}}async executeInvite(e){this.setState("requesting");try{const t=sn(Object.assign(Object.assign({},this.messagePayload),{sdp:e})),r=await this.vertoExecute(t);Rr.debug("Invite response",r)}catch(e){throw this.setState("hangup"),e.jsonrpc}}async hangup(){try{const e=an(this.messagePayload);await this.vertoExecute(e)}catch(e){Rr.error("Hangup error:",e)}finally{this._hangup()}}dtmf(e){const t=cn(Object.assign(Object.assign({},this.messagePayload),{dtmf:e}));this.vertoExecute(t)}doReinviteWithRelayOnly(){this.peer&&this.active&&this.peer.restartIceWithRelayOnly()}stopOutboundAudio(){this.peer&&this.active&&this.peer.stopTrackSender("audio")}restoreOutboundAudio(){this.peer&&this.active&&this.peer.restoreTrackSender("audio")}stopOutboundVideo(){this.peer&&this.active&&this.peer.stopTrackSender("video")}restoreOutboundVideo(){this.peer&&this.active&&this.peer.restoreTrackSender("video")}setState(e){switch(this.prevState=this.state,this.state=e,Rr.debug(`Call ${this.id} state change from ${this.prevState} to ${this.state}`),this.emit(this.state,this),e){case"purge":this._finalize();break;case"hangup":this.setState("destroy");break;case"destroy":this._finalize()}}_hangup(e={}){const{byeCause:t="NORMAL_CLEARING",byeCauseCode:r="16",redirectDestination:n}=e;return this.cause=t,this.causeCode=r,n&&this.trying&&this.peer.localSdp?(Rr.warn("Execute invite again"),this.executeInvite(this.peer.localSdp)):this.setState("hangup")}_finalize(){this.peer&&this.peer.instance&&(this.peer.instance.close(),delete this.peer);const{remoteStream:e,localStream:t}=this.options;gi(e),gi(t),this.destroy()}}const Bi=()=>{const e=document.createElement("video");return e.muted=!0,e.autoplay=!0,e.playsInline=!0,e},Qi=({x:e,y:t,width:r,height:n})=>({top:`${t}%`,left:`${e}%`,width:`${r}%`,height:`${n}%`}),Ki=e=>t=>{const r=document.getElementById(t);r&&(r.style.display=e)},Hi=De("swJs/audioSetSpeakerAction");function*zi({element:e,room:t}){const r=dn.getCustomSagaActionType(t.__uuid,Hi);for(;;){const s=yield(n=[r],o=void 0,i=void 0,void 0===n&&(n="*"),ot(n)?Pt(Ot,{pattern:n}):it(i=n)&&i[Be]&&Ye(o)&&ot(o)?Pt(Ot,{channel:n,pattern:o}):it(n)?Pt(Ot,{channel:n}):void 0);try{switch(s.type){case r:const n=yield Rt(yi,e,s.payload);t.settleCustomSagaTrigger({dispatchId:s.dispatchId,payload:n,kind:"resolve"})}}catch(e){t.settleCustomSagaTrigger({dispatchId:s.dispatchId,payload:e,kind:"reject"}),Rr.error(e)}}var n,o,i}function*Gi({track:e,element:t,speakerId:r,room:n}){(({track:e,element:t})=>{t.autoplay=!0,t.playsinline=!0,t.srcObject=new MediaStream([e]),e.addEventListener("ended",(()=>{t.srcObject=null,t.remove()}))})({track:e,element:t}),r&&yi(t,r).catch((()=>{})),yield function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Pt(Tt,Mt(e,r))}(zi,{element:t,room:n})}function*Ji({rootElement:e,applyLocalVideoOverlay:t=!0,track:r,element:n}){(r=>{if((({track:e,element:t})=>{t.srcObject=new MediaStream([e]),e.addEventListener("ended",(()=>{t.srcObject=null,t.remove()}))})({element:n,track:r}),n.style.width="100%",!t)return void e.appendChild(n);const o=document.createElement("div");o.style.position="absolute",o.style.top="0",o.style.left="0",o.style.right="0",o.style.bottom="0",o.appendChild(n);const i=document.createElement("div");i.style.paddingBottom="56.25%",i.appendChild(o);const s=document.createElement("div");s.classList.add("mcuLayers"),i.appendChild(s);const a=document.createElement("div");a.style.position="relative",a.style.width="100%",a.style.margin="0 auto",a.appendChild(i),e.style.display="flex",e.style.alignItems="center",e.style.justifyContent="center",e.appendChild(a)})(r)}const Xi={state:"onStateChange",remoteSDP:"onRemoteSDP",roomId:"onRoomSubscribed",videoConstraints:"onVideoConstraints",audioConstraints:"onAudioConstraints",errors:"onError",responses:"onSuccess"},Yi={echoCancellation:!1,noiseSuppression:!1,autoGainControl:!1,googAutoGainControl:!1},Zi=qr(class extends Fi{join(){return super.invite()}leave(){return super.hangup()}},{audioMute:xo.audioMuteMember,audioUnmute:xo.audioUnmuteMember,videoMute:xo.videoMuteMember,videoUnmute:xo.videoUnmuteMember,setMicrophoneVolume:xo.setInputVolumeMember,setInputVolume:xo.setInputVolumeMember,setInputSensitivity:xo.setInputSensitivityMember}),es=qr(class extends Fi{join(){return super.invite()}leave(){return super.hangup()}},{audioMute:xo.audioMuteMember,audioUnmute:xo.audioUnmuteMember,videoMute:xo.videoMuteMember,videoUnmute:xo.videoUnmuteMember,setInputVolume:xo.setInputVolumeMember,setMicrophoneVolume:xo.setInputVolumeMember,setInputSensitivity:xo.setInputSensitivityMember}),ts=qr(class extends Fi{_screenShareList=new Set;_deviceList=new Set;get screenShareList(){return Array.from(this._screenShareList)}get deviceList(){return Array.from(this._deviceList)}getEmitterTransforms(){return new Map([[[Xr("video.recording.start"),"video.recording.started","video.recording.updated","video.recording.ended"],{type:"roomSessionRecording",instanceFactory:e=>xo.createRoomSessionRecordingObject({store:this.store,emitter:this.emitter}),payloadTransform:e=>Dr(e?.recording?{...e.recording,room_session_id:this.roomSessionId}:{id:e.recording_id,room_session_id:this.roomSessionId})}],[[Xr("video.playback.start"),"video.playback.started","video.playback.updated","video.playback.ended"],{type:"roomSessionPlayback",instanceFactory:e=>xo.createRoomSessionPlaybackObject({store:this.store,emitter:this.emitter}),payloadTransform:e=>Dr({...e.playback,room_session_id:this.roomSessionId})}]])}async createScreenShareObject(e={}){return this.startScreenShare(e)}async startScreenShare(e={}){const{autoJoin:t=!0,audio:r=!1,video:n=!0}=e,o=await li({audio:!0===r?Yi:r,video:n}),i={...this.options,screenShare:!0,recoverCall:!1,localStream:o,remoteStream:void 0,userVariables:{...this.options?.userVariables||{},memberCallId:this.__uuid,memberId:this.memberId}},s=Oo({store:this.store,Component:Zi,componentListeners:Xi})(i);o.getVideoTracks().forEach((e=>{e.addEventListener("ended",(()=>{s&&s.active&&s.leave()}))})),s.on("destroy",(()=>{this._screenShareList.delete(s)}));try{return this._screenShareList.add(s),t&&await s.join(),s}catch(e){throw Rr.error("ScreenShare Error",e),e}}addCamera(e={}){const{autoJoin:t=!0,...r}=e;return this.addDevice({autoJoin:t,video:r})}addMicrophone(e={}){const{autoJoin:t=!0,...r}=e;return this.addDevice({autoJoin:t,audio:r})}async addDevice(e={}){const{autoJoin:t=!0,audio:r=!1,video:n=!1}=e;if(!r&&!n)throw new TypeError("At least one of `audio` or `video` must be requested.");const o={...this.options,localStream:void 0,remoteStream:void 0,audio:r,video:n,additionalDevice:!0,recoverCall:!1,userVariables:{...this.options?.userVariables||{},memberCallId:this.__uuid,memberId:this.memberId}},i=Oo({store:this.store,Component:es,componentListeners:Xi})(o);i.on("destroy",(()=>{this._deviceList.delete(i)}));try{return this._deviceList.add(i),t&&await i.join(),i}catch(e){throw Rr.error("RoomDevice Error",e),e}}join(){return super.invite()}leave(){return this.hangup()}updateSpeaker({deviceId:e}){return this.triggerCustomSaga(Hi(e))}async hangup(){return this._screenShareList.forEach((e=>{e.leave()})),this._deviceList.forEach((e=>{e.leave()})),super.hangup()}_finalize(){this._screenShareList.clear(),this._deviceList.clear(),super._finalize()}getLayoutList(){return this.getLayouts()}getMemberList(){return this.getMembers()}},{audioMute:xo.audioMuteMember,audioUnmute:xo.audioUnmuteMember,videoMute:xo.videoMuteMember,videoUnmute:xo.videoUnmuteMember,deaf:xo.deafMember,undeaf:xo.undeafMember,setInputVolume:xo.setInputVolumeMember,setOutputVolume:xo.setOutputVolumeMember,setMicrophoneVolume:xo.setInputVolumeMember,setSpeakerVolume:xo.setOutputVolumeMember,setInputSensitivity:xo.setInputSensitivityMember,removeMember:xo.removeMember,getMembers:xo.getMembers,getLayouts:xo.getLayouts,setLayout:xo.setLayout,hideVideoMuted:xo.hideVideoMuted,showVideoMuted:xo.showVideoMuted,getRecordings:xo.getRecordings,startRecording:xo.startRecording,getPlaybacks:xo.getPlaybacks,play:xo.play});class rs extends Po{get rooms(){return{makeRoomObject:e=>{const{rootElement:t,applyLocalVideoOverlay:r=!0,stopCameraWhileMuted:n=!0,stopMicrophoneWhileMuted:o=!0,...i}=e,s=[];t&&s.push((({rootElement:e,applyLocalVideoOverlay:t,speakerId:r})=>function*({instance:n,runSaga:o}){try{const i=new Map,s=Bi(),a=new Audio,c=(({layerMap:e,element:t,rootElement:r})=>async({layout:n,myMemberId:o,localStream:i})=>{try{const{layers:s=[]}=n,a=s.find((({member_id:e})=>e===o));if(!a)return Rr.debug("Current Layer Not Found",JSON.stringify(n));let c=e.get(o);if(!c){const n=await(async({location:e,element:t})=>{t.readyState===HTMLMediaElement.HAVE_NOTHING&&await(({element:e})=>new Promise((t=>{e.addEventListener("canplay",(function r(){e.removeEventListener("canplay",r),t()})),e.addEventListener("resize",(function r(){e.removeEventListener("resize",r),t()}))})))({element:t});const{top:r,left:n,width:o,height:i}=Qi(e),s=document.createElement("div");return s.style.position="absolute",s.style.overflow="hidden",s.style.top=r,s.style.left=n,s.style.width=o,s.style.height=i,s})({element:t,location:a});n.id=o;const s=Bi();s.srcObject=i,s.style.width="100%",s.style.height="100%",n.appendChild(s),e.set(o,n);const c=r.querySelector(".mcuLayers"),u=document.getElementById(o);return void(c&&!u&&c.appendChild(n))}const{top:u,left:d,width:l,height:h}=Qi(a);c.style.top=u,c.style.left=d,c.style.width=l,c.style.height=h}catch(e){Rr.error("Layout Changed Error",e)}})({rootElement:e,element:s,layerMap:i}),u=Ki("none"),d=Ki("block");let l,h;n.on("layout.changed",(e=>{n.peer.hasVideoSender&&n.localStream&&c({layout:e.layout,localStream:n.localStream,myMemberId:n.memberId})})),n.on("member.updated.video_muted",(e=>{try{const{member:t}=e;t.id===n.memberId&&"video_muted"in t&&(t.video_muted?u(t.id):d(t.id))}catch(e){Rr.error("Error handling video_muted",e)}})),n.on("track",(function(i){switch(i.track.kind){case"audio":l=o(Gi,{track:i.track,element:a,speakerId:r,room:n});break;case"video":h=o(Ji,{applyLocalVideoOverlay:t,rootElement:e,track:i.track,element:s})}})),n.once("destroy",(()=>{(e=>{for(;e.firstChild;)e.removeChild(e.firstChild)})(e),i.clear(),l?.cancel(),h?.cancel()}))}catch(e){Rr.error("mediaElementsSagas",e)}})({rootElement:t,applyLocalVideoOverlay:r,speakerId:i.speakerId}));const a=(c={...i,store:this.store,emitter:this.emitter,customSagas:s},Oo({store:c.store,customSagas:c.customSagas,Component:ts,componentListeners:Xi})(c));var c;return o&&a.on("member.updated.audio_muted",(({member:e})=>{try{e.id===a.memberId&&"audio_muted"in e&&(e.audio_muted?a.stopOutboundAudio():a.restoreOutboundAudio())}catch(e){Rr.error("Error handling audio_muted",e)}})),n&&a.on("member.updated.video_muted",(({member:e})=>{try{e.id===a.memberId&&"video_muted"in e&&(e.video_muted?a.stopOutboundVideo():a.restoreOutboundVideo())}catch(e){Rr.error("Error handling video_muted",e)}})),a}}}}class ns extends class extends class{constructor(e){this.options=e,Ir(this,"uuid",c()),Ir(this,"WebSocketConstructor"),Ir(this,"agent"),Ir(this,"connectVersion",en),Ir(this,"_rpcConnectResult"),Ir(this,"_requests",new Map),Ir(this,"_requestQueue",[]),Ir(this,"_socket",null),Ir(this,"_host","wss://relay.signalwire.com"),Ir(this,"_executeTimeoutMs",1e4),Ir(this,"_executeTimeoutError",Symbol.for("sw-execute-timeout")),Ir(this,"_checkPingDelay",15e3),Ir(this,"_checkPingTimer",null),Ir(this,"_status","unknown");let{host:t,logLevel:r="info"}=e;t&&(this._host=(e=>`${Kr.test(e)?"":"wss://"}${e}`)(t)),r&&this.logger.setLevel(r),this._onSocketOpen=this._onSocketOpen.bind(this),this._onSocketError=this._onSocketError.bind(this),this._onSocketClose=this._onSocketClose.bind(this),this._onSocketMessage=this._onSocketMessage.bind(this),this.execute=this.execute.bind(this),this.connect=this.connect.bind(this)}get host(){return this._host}get rpcConnectResult(){return this._rpcConnectResult}get relayProtocol(){var e,t;return null!=(t=null==(e=this._rpcConnectResult)?void 0:e.protocol)?t:""}get signature(){var e,t;return null==(t=null==(e=this._rpcConnectResult)?void 0:e.authorization)?void 0:t.signature}get logger(){return Rr}get connecting(){var e;return(null==(e=this._socket)?void 0:e.readyState)===fr.CONNECTING}get connected(){var e;return(null==(e=this._socket)?void 0:e.readyState)===fr.OPEN}get closing(){var e;return(null==(e=this._socket)?void 0:e.readyState)===fr.CLOSING}get closed(){return!this._socket||this._socket.readyState===fr.CLOSED}get status(){return this._status}connect(){(null==this?void 0:this.WebSocketConstructor)?this._socket?Rr.warn("Session already connected."):(this._socket=this._createSocket(),this._socket.addEventListener("open",this._onSocketOpen),this._socket.addEventListener("close",this._onSocketClose),this._socket.addEventListener("error",this._onSocketError),this._socket.addEventListener("message",this._onSocketMessage)):Rr.error("Missing WebSocketConstructor")}_createSocket(){return new this.WebSocketConstructor(this._host)}async disconnect(){this._socket&&!this.closing?(clearTimeout(this._checkPingTimer),this._requestQueue=[],this._requests.clear(),this._closeConnection("disconnected")):Rr.warn("Session not connected or already in closing state.")}execute(e){if("idle"===this._status||!this.connected)return new Promise((t=>this._requestQueue.push({resolve:t,msg:e})));let t;return t="params"in e?new Promise(((t,r)=>{this._requests.set(e.id,{rpcRequest:e,resolve:t,reject:r})})):Promise.resolve(),Rr.trace("SEND: \n",JSON.stringify(e,null,2),"\n"),this._socket.send(JSON.stringify(e)),((e,t,r)=>{let n=null;return Promise.race([e,new Promise(((e,o)=>n=setTimeout(o,t,r)))]).finally((()=>clearTimeout(n)))})(t,this._executeTimeoutMs,this._executeTimeoutError).catch((t=>{if(t!==this._executeTimeoutError)throw t;Rr.error("Request Timeout",e),this._closeConnection("reconnecting")}))}async authenticate(){let e={agent:this.agent,version:this.connectVersion,authentication:{project:this.options.project,token:this.options.token}};this._relayProtocolIsValid()&&(e.protocol=this.relayProtocol),this._rpcConnectResult=await this.execute(tn(e))}async _onSocketOpen(e){Rr.debug("_onSocketOpen",e.type);try{await this.authenticate(),this._emptyRequestQueue(),this._status="connected",this.dispatch(vn())}catch(e){Rr.error("Auth Error",e),this.dispatch(mn({error:e}))}}_onSocketError(e){Rr.debug("_onSocketError",e),this.dispatch(gn())}_onSocketClose(e){Rr.debug("_onSocketClose",e.type,e.code,e.reason),this._status=e.code>=1006&&e.code<=1014?"reconnecting":"disconnected",this.dispatch(yn()),this._socket=null}_onSocketMessage(e){let t=Qr(e.data);Rr.trace("RECV: \n",JSON.stringify(t,null,2),"\n");let r=this._requests.get(t.id);if(r){let{rpcRequest:e,resolve:n,reject:o}=r;this._requests.delete(t.id);let{result:i,error:s}=(({response:e,request:t})=>{let{result:r={},error:n}=e;if(n)return{error:n};switch(t.method){case"signalwire.connect":return{result:r};default:return jr(e)}})({response:t,request:e});return s?o(s):n(i)}switch(t.method){case"signalwire.ping":case"blade.ping":return this._pingHandler(t);case"signalwire.disconnect":this.execute((e=>Zr({id:e,result:{}}))(t.id)).catch((e=>{Rr.error("SwDisconnect Error",e)})).finally((()=>{this._status="idle"}));break;default:this.dispatch(bn(t)),this._handleWebSocketMessage(t)}}_handleWebSocketMessage(e){}dispatch(e){throw new Error("Method not implemented")}_relayProtocolIsValid(){var e;return this.signature&&(null==(e=null==this?void 0:this.relayProtocol)?void 0:e.split("_")[1])===this.signature}_emptyRequestQueue(){this._requestQueue.forEach((({resolve:e,msg:t})=>{e(this.execute(t))})),this._requestQueue=[]}async _pingHandler(e){var t;clearTimeout(this._checkPingTimer),this._checkPingTimer=setTimeout((()=>{this._closeConnection("reconnecting")}),this._checkPingDelay),await this.execute(((e,t)=>Zr({id:e,result:{timestamp:t||Date.now()/1e3}}))(e.id,null==(t=null==e?void 0:e.params)?void 0:t.timestamp))}_closeConnection(e){this._status=e,this.dispatch(Tn.authStatus("unknown")),this.dispatch(pn()),this._socket&&(this._socket.close(),this._socket=null)}}{constructor(e){super(e),this.options=e,Ir(this,"_expiredDiffSeconds",0),Ir(this,"_refreshTokenNotificationDiff",120),Ir(this,"_checkTokenExpirationDelay",2e4),Ir(this,"_checkTokenExpirationTimer",null),this._checkTokenExpiration=this._checkTokenExpiration.bind(this)}get expiresAt(){var e,t,r;return null!=(r=null==(t=null==(e=null==this?void 0:this._rpcConnectResult)?void 0:e.authorization)?void 0:t.expires_at)?r:0}get expiresIn(){let e=Math.floor(Date.now()/1e3);return this.expiresAt-e}get expired(){return this.expiresIn<=this._expiredDiffSeconds}async authenticate(){let e={agent:this.agent,version:this.connectVersion,authentication:{jwt_token:this.options.token}};if(this._relayProtocolIsValid())e.protocol=this.relayProtocol;else if(this.signature){let t=await(e=>(async(e,t)=>{if("undefined"==typeof window&&"undefined"!=typeof process)return null;let r=window.sessionStorage.getItem((e=>`@signalwire:${this.signature}`)());return Qr(r)})())();t&&(e.protocol=t)}this._rpcConnectResult=await this.execute(tn(e)),this._checkTokenExpiration()}_checkTokenExpiration(){!this.expiresAt||(this.expiresIn<=this._refreshTokenNotificationDiff&&Rr.debug("Your JWT is going to expire. Please refresh it to keep the session live."),clearTimeout(this._checkTokenExpirationTimer),this.expired||(this._checkTokenExpirationTimer=setTimeout(this._checkTokenExpiration,this._checkTokenExpirationDelay)))}}{WebSocketConstructor=WebSocket;agent="@signalwire/js/3.4.0-dev.202110121150.a4432f2.0"}const os=e=>{const t={...e,emitter:new mr},r=(e=>{var t;let{userOptions:r,SessionConstructor:n,preloadedState:o={},runSagaMiddleware:i=!0}=e,s=hr(),a=Le({devTools:null==(t=null==r?void 0:r.devTools)||t,reducer:Nn,preloadedState:o,middleware:e=>e().concat(s)});if(i){let e=(e=>function*(t){yield oo(bo),yield eo(ln.type);try{yield no(wo,e.SessionConstructor,t)}catch(e){return}})({SessionConstructor:n});s.run(e,r)}return Er(kr({},a),{runSaga:s.run})})({userOptions:t,SessionConstructor:ns});return Oo({store:r,Component:rs,componentListeners:{errors:"onError",responses:"onSuccess",id:"onClientSubscribed"}})(t)},is={aspectRatio:{ideal:16/9}},ss=e=>new Promise((async(t,r)=>{const{audio:n=!0,video:o=!0,iceServers:i,rootElementId:s,applyLocalVideoOverlay:a=!0,autoJoin:c=!1,stopCameraWhileMuted:u=!0,stopMicrophoneWhileMuted:d=!0,speakerId:l,...h}=e,p=os({...h});if(await p.connect(),!p)return;let f;if(s){const e=document.getElementById(s);e?f=e:(f=document.body,Rr.warn(`We couldn't find an element with id: ${s}: using 'document.body' instead.`))}const m=p.rooms.makeRoomObject({audio:n,video:!0===o?is:o,negotiateAudio:!0,negotiateVideo:!0,iceServers:i,rootElement:f,applyLocalVideoOverlay:a,stopCameraWhileMuted:u,stopMicrophoneWhileMuted:d,speakerId:l});if(m.once("destroy",(()=>{p.disconnect()})),c)try{await m.join(),t(m)}catch(e){r(e)}else t(m)})),as={aspectRatio:{ideal:16/9}},cs=["audioMute","audioUnmute","deaf","getLayouts","getMembers","getRecordings","hideVideoMuted","leave","removerMember","restoreOutboundAudio","restoreOutboundVideo","setInputSensitivity","setInputVolume","setLayout","setOutputVolume","showVideoMuted","startRecording","stopOutboundAudio","stopOutboundVideo","undeaf","videoMute","videoUnmute","setMicrophoneVolume","setSpeakerVolume"];var us=Object.freeze({__proto__:null,RoomSession:function(e){const{audio:t=!0,video:r=!0,iceServers:n,rootElement:o,applyLocalVideoOverlay:i=!0,stopCameraWhileMuted:s=!0,stopMicrophoneWhileMuted:a=!0,speakerId:c,...u}=e,d=os(u),l=d.rooms.makeRoomObject({audio:t,video:!0===r?as:r,negotiateAudio:!0,negotiateVideo:!0,iceServers:n,rootElement:o,applyLocalVideoOverlay:i,stopCameraWhileMuted:s,stopMicrophoneWhileMuted:a,speakerId:c});l.once("destroy",(()=>{d.disconnect()}));const h=async()=>{try{await d.connect(),await l.join()}catch(e){throw Rr.error(e),e}return l};return new Proxy(l,{get(e,t,r){if("join"===t)return h;if(!e.active&&cs.includes(t))throw new Error(`Tried to access the property/method "${t}" before the room was connected. Please call roomSession.join() first.`);return Reflect.get(e,t,r)}})},createRoomObject:ss,joinRoom:e=>ss({...e,autoJoin:!0})}),ds=Object.freeze({__proto__:null,getDevices:Ti,getCameraDevices:()=>Ti("camera"),getMicrophoneDevices:()=>Ti("microphone"),getSpeakerDevices:()=>Ti("speaker"),getDevicesWithPermissions:Oi,getCameraDevicesWithPermissions:()=>Oi("camera"),getMicrophoneDevicesWithPermissions:()=>Oi("microphone"),getSpeakerDevicesWithPermissions:()=>Oi("speaker"),checkPermissions:wi,checkCameraPermissions:ki,checkMicrophonePermissions:Ei,checkSpeakerPermissions:Ci,requestPermissions:async e=>{try{const t=await di(e);gi(t)}catch(e){throw e}},createDeviceWatcher:Li,createCameraDeviceWatcher:()=>Li({targets:["camera"]}),createMicrophoneDeviceWatcher:()=>Li({targets:["microphone"]}),createSpeakerDeviceWatcher:()=>Li({targets:["speaker"]}),supportsMediaDevices:ci,supportsGetUserMedia:()=>{var e;return"function"==typeof(null===(e=null===navigator||void 0===navigator?void 0:navigator.mediaDevices)||void 0===e?void 0:e.getUserMedia)},supportsGetDisplayMedia:()=>{var e;return"function"==typeof(null===(e=null===navigator||void 0===navigator?void 0:navigator.mediaDevices)||void 0===e?void 0:e.getDisplayMedia)},getUserMedia:di,getDisplayMedia:li,enumerateDevices:hi,getSupportedConstraints:fi,supportsMediaOutput:vi,setMediaElementSinkId:yi,stopStream:gi,stopTrack:bi});e.Video=us,e.WebRTC=ds,Object.defineProperty(e,"__esModule",{value:!0})}));
7
7
  //# sourceMappingURL=index.umd.js.map