@signalwire/js 3.6.0-dev.202111170816.f436d5f.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/core/src/BaseClient.d.ts +0 -7
  2. package/dist/core/src/BaseClient.d.ts.map +1 -1
  3. package/dist/core/src/BaseComponent.d.ts +9 -6
  4. package/dist/core/src/BaseComponent.d.ts.map +1 -1
  5. package/dist/core/src/BaseConsumer.d.ts +2 -1
  6. package/dist/core/src/BaseConsumer.d.ts.map +1 -1
  7. package/dist/core/src/chat/BaseChat.d.ts +33 -0
  8. package/dist/core/src/chat/BaseChat.d.ts.map +1 -0
  9. package/dist/core/src/chat/ChatMember.d.ts +9 -0
  10. package/dist/core/src/chat/ChatMember.d.ts.map +1 -0
  11. package/dist/core/src/chat/ChatMessage.d.ts +12 -0
  12. package/dist/core/src/chat/ChatMessage.d.ts.map +1 -0
  13. package/dist/core/src/chat/index.d.ts +4 -0
  14. package/dist/core/src/chat/index.d.ts.map +1 -0
  15. package/dist/core/src/chat/methods.d.ts +27 -0
  16. package/dist/core/src/chat/methods.d.ts.map +1 -0
  17. package/dist/core/src/chat/utils/index.d.ts +3 -0
  18. package/dist/core/src/chat/utils/index.d.ts.map +1 -0
  19. package/dist/core/src/chat/utils/toInternalChatChannels.d.ts +3 -0
  20. package/dist/core/src/chat/utils/toInternalChatChannels.d.ts.map +1 -0
  21. package/dist/core/src/chat/utils/toInternalChatChannels.test.d.ts +2 -0
  22. package/dist/core/src/chat/utils/toInternalChatChannels.test.d.ts.map +1 -0
  23. package/dist/core/src/chat/workers.d.ts +3 -0
  24. package/dist/core/src/chat/workers.d.ts.map +1 -0
  25. package/dist/core/src/index.d.ts +2 -0
  26. package/dist/core/src/index.d.ts.map +1 -1
  27. package/dist/core/src/internal/BaseBackendSession.d.ts.map +1 -1
  28. package/dist/core/src/redux/connect.d.ts.map +1 -1
  29. package/dist/core/src/redux/features/component/componentSaga.d.ts +4 -0
  30. package/dist/core/src/redux/features/component/componentSaga.d.ts.map +1 -0
  31. package/dist/core/src/redux/features/component/componentSaga.test.d.ts +2 -0
  32. package/dist/core/src/redux/features/component/componentSaga.test.d.ts.map +1 -0
  33. package/dist/core/src/redux/features/component/componentSelectors.d.ts +6 -2
  34. package/dist/core/src/redux/features/component/componentSelectors.d.ts.map +1 -1
  35. package/dist/core/src/redux/features/component/componentSelectors.test.d.ts +2 -0
  36. package/dist/core/src/redux/features/component/componentSelectors.test.d.ts.map +1 -0
  37. package/dist/core/src/redux/features/component/componentSlice.d.ts +4 -0
  38. package/dist/core/src/redux/features/component/componentSlice.d.ts.map +1 -1
  39. package/dist/core/src/redux/features/pubSub/pubSubSaga.d.ts.map +1 -1
  40. package/dist/core/src/redux/features/session/sessionSaga.d.ts.map +1 -1
  41. package/dist/core/src/redux/features/session/sessionSelectors.d.ts +1 -0
  42. package/dist/core/src/redux/features/session/sessionSelectors.d.ts.map +1 -1
  43. package/dist/core/src/redux/index.d.ts +7 -5
  44. package/dist/core/src/redux/index.d.ts.map +1 -1
  45. package/dist/core/src/redux/interfaces.d.ts +6 -4
  46. package/dist/core/src/redux/interfaces.d.ts.map +1 -1
  47. package/dist/core/src/redux/rootSaga.d.ts +11 -4
  48. package/dist/core/src/redux/rootSaga.d.ts.map +1 -1
  49. package/dist/core/src/redux/utils/sagaHelpers.d.ts +3 -2
  50. package/dist/core/src/redux/utils/sagaHelpers.d.ts.map +1 -1
  51. package/dist/core/src/testUtils.d.ts +5 -4
  52. package/dist/core/src/testUtils.d.ts.map +1 -1
  53. package/dist/core/src/types/chat.d.ts +129 -0
  54. package/dist/core/src/types/chat.d.ts.map +1 -0
  55. package/dist/core/src/types/index.d.ts +5 -1
  56. package/dist/core/src/types/index.d.ts.map +1 -1
  57. package/dist/core/src/types/utils.d.ts +11 -4
  58. package/dist/core/src/types/utils.d.ts.map +1 -1
  59. package/dist/core/src/types/videoMember.d.ts.map +1 -1
  60. package/dist/core/src/types/videoPlayback.d.ts +2 -2
  61. package/dist/core/src/types/videoPlayback.d.ts.map +1 -1
  62. package/dist/core/src/types/videoRoomSession.d.ts +10 -7
  63. package/dist/core/src/types/videoRoomSession.d.ts.map +1 -1
  64. package/dist/core/src/utils/constants.d.ts +2 -1
  65. package/dist/core/src/utils/constants.d.ts.map +1 -1
  66. package/dist/core/src/utils/eventTransformUtils.d.ts.map +1 -1
  67. package/dist/core/src/utils/interfaces.d.ts +12 -6
  68. package/dist/core/src/utils/interfaces.d.ts.map +1 -1
  69. package/dist/core/src/utils/proxyUtils.d.ts +10 -0
  70. package/dist/core/src/utils/proxyUtils.d.ts.map +1 -0
  71. package/dist/core/src/utils/toExternalJSON.d.ts +5 -1
  72. package/dist/core/src/utils/toExternalJSON.d.ts.map +1 -1
  73. package/dist/index.esm.js +73 -22
  74. package/dist/index.esm.js.map +3 -3
  75. package/dist/index.js +100 -47
  76. package/dist/index.js.map +3 -3
  77. package/dist/index.umd.js +3 -3
  78. package/dist/index.umd.js.map +1 -1
  79. package/dist/js/src/Client.d.ts +4 -0
  80. package/dist/js/src/Client.d.ts.map +1 -1
  81. package/dist/js/src/JWTSession.d.ts.map +1 -1
  82. package/dist/js/src/RoomSession.docs.d.ts +22 -10
  83. package/dist/js/src/RoomSession.docs.d.ts.map +1 -1
  84. package/dist/js/src/RoomSessionDevice.docs.d.ts +2 -0
  85. package/dist/js/src/RoomSessionDevice.docs.d.ts.map +1 -1
  86. package/dist/js/src/RoomSessionScreenShare.docs.d.ts +2 -0
  87. package/dist/js/src/RoomSessionScreenShare.docs.d.ts.map +1 -1
  88. package/dist/js/src/chat/Client.d.ts +16 -0
  89. package/dist/js/src/chat/Client.d.ts.map +1 -0
  90. package/dist/js/src/chat/index.d.ts +2 -0
  91. package/dist/js/src/chat/index.d.ts.map +1 -0
  92. package/dist/js/src/createClient.d.ts +1 -21
  93. package/dist/js/src/createClient.d.ts.map +1 -1
  94. package/dist/js/src/index.d.ts +2 -0
  95. package/dist/js/src/index.d.ts.map +1 -1
  96. package/dist/js/src/testUtils.d.ts +6 -6
  97. package/dist/js/src/utils/videoElement.d.ts.map +1 -1
  98. package/dist/js/tsconfig.build.tsbuildinfo +1 -1
  99. package/dist/webrtc/src/BaseConnection.d.ts +2 -0
  100. package/dist/webrtc/src/BaseConnection.d.ts.map +1 -1
  101. package/dist/webrtc/src/utils/webrtcHelpers.native.d.ts +2 -2
  102. package/dist/webrtc/src/utils/webrtcHelpers.native.d.ts.map +1 -1
  103. package/package.json +3 -3
  104. package/src/Client.ts +17 -0
  105. package/src/RoomSession.docs.ts +23 -10
  106. package/src/RoomSessionDevice.docs.ts +3 -0
  107. package/src/RoomSessionScreenShare.docs.ts +3 -0
  108. package/src/chat/Client.test.ts +606 -0
  109. package/src/chat/Client.ts +55 -0
  110. package/src/chat/index.ts +1 -0
  111. package/src/createClient.test.ts +116 -0
  112. package/src/createClient.ts +1 -22
  113. package/src/index.ts +3 -0
  114. package/src/utils/constants.ts +1 -1
  115. package/src/utils/videoElement.ts +21 -13
package/dist/index.umd.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * SignalWire JS SDK v3.6.0-dev.202111170816.f436d5f.0 (https://signalwire.com)
3
- * Copyright 2018-2021 SignalWire
2
+ * SignalWire JS SDK v3.7.0 (https://signalwire.com)
3
+ * Copyright 2018-2022 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="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r={exports:{}};!function(e){var r,n;r=t,n=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=n():r.log=n()}(r);var n,o=r.exports,i=new Uint8Array(16);function s(){if(!n&&!(n="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 n(i)}var a=/^(?:[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 c(e){return"string"==typeof e&&a.test(e)}for(var u=[],d=0;d<256;++d)u.push((d+256).toString(16).substr(1));function l(e,t,r){var n=(e=e||{}).random||(e.rng||s)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(var o=0;o<16;++o)t[r+o]=n[o];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=(u[e[t+0]]+u[e[t+1]]+u[e[t+2]]+u[e[t+3]]+"-"+u[e[t+4]]+u[e[t+5]]+"-"+u[e[t+6]]+u[e[t+7]]+"-"+u[e[t+8]]+u[e[t+9]]+"-"+u[e[t+10]]+u[e[t+11]]+u[e[t+12]]+u[e[t+13]]+u[e[t+14]]+u[e[t+15]]).toLowerCase();if(!c(r))throw TypeError("Stringified UUID is invalid");return r}(n)}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",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(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:y.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:y.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:y.INIT}))throw new Error(m(12));if(void 0===r(void 0,{type:y.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]||M(e)||j(e))}function T(e,t,r){void 0===r&&(r=!1),0===I(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 I(e){var t=e[le];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:M(e)?2:j(e)?3:0}function P(e,t){return 2===I(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function R(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 M(e){return se&&e instanceof Map}function j(e){return ae&&e instanceof Set}function A(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)||(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(){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(H),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 H(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=z(t,e),t.l||G(t,e)),t.u&&$("Patches").M(r[le],e,t.u,t.s)):e=z(t,r,[]),q(t),t.u&&t.v(t.u,t.s),e!==ue?e:void 0}function z(e,t,r){if(V(t))return t;var n=t[le];if(!n)return T(t,(function(o,i){return Q(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 Q(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 Q(e,t,r,n,o,i){if(C(o)){var s=z(e,o,i&&t&&3!==t.i&&!P(t.D,n)?i.concat(n):void 0);if(R(r,n,s),!C(s))return;e.m=!1}if(O(o)&&!V(o)){if(!e.h.F&&e._<1)return;z(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?A(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=M(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: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=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: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=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||R(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=A(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 A(e)},ownKeys:function(e){return Reflect.ownKeys(A(e))},set:function(e,t,r){var n=X(A(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=J(A(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&&(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=A(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)}},ge={};T(ve,(function(e,t){ge[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),ge.deleteProperty=function(e,t){return ve.deleteProperty.call(this,e[0],t)},ge.set=function(e,t,r){return ve.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&&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=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 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},Te=Object.defineProperty,Ie=Object.prototype.hasOwnProperty,Pe=Object.getOwnPropertySymbols,Re=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},Me=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++)Re.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)},Ae=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 Ae;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=je(Me({trace:!1},"object"==typeof u&&u)));var g=[m];return Array.isArray(p)?g=Oe([m],p):"function"==typeof p&&(g=p(g)),_(t,l,v.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 Me(Me({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]}var Ve=function(e){return"@@redux-saga/"+e},$e=Ve("CANCEL_PROMISE"),We=Ve("CHANNEL_END"),Ue=Ve("IO"),qe=Ve("MATCH"),Fe=Ve("MULTICAST"),Be=Ve("SAGA_ACTION"),He=Ve("SELF_CANCELLATION"),Ke=Ve("TASK"),ze=Ve("TASK_CANCEL"),Qe=Ve("TERMINATE"),Ge=Ve("LOCATION");function Je(){return(Je=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 Xe=function(e){return null==e},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};function at(e,t){var r;void 0===t&&(t=!0);var n=new Promise((function(n){r=setTimeout(n,e,t)}));return n[$e]=function(){clearTimeout(r)},n}var ct=function(e){return function(){return!0}}(),ut=function(){},dt=function(e){return e},lt=function(e,t){Je(e,t),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach((function(r){e[r]=t[r]}))};function ht(e,t){var r=e.indexOf(t);r>=0&&e.splice(r,1)}function pt(e){var t=!1;return function(){t||(t=!0,e())}}var ft=function(e){throw e},mt=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:mt,isSagaIterator:!0};return"undefined"!=typeof Symbol&&(n[Symbol.iterator]=function(){return n}),n}function gt(e,t){var r=t.sagaStack;console.error(e),console.error(r)}var yt=function(e){return Array.apply(null,new Array(e))},bt=function(e){return function(t){return e(Object.defineProperty(t,Be,{value:!0}))}},_t=function(e){return e===Qe},St=function(e){return e===ze},wt=function(e){return _t(e)||St(e)};function kt(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||wt(n)?(t.cancel(),t(n,a)):(s[e]=n,++i===o&&(r=!0,t(s))))};n.cancel=ut,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:Ct(e)}}function Ct(e){return e[Ge]}var Ot={isEmpty:ct,put:ut,take:ut},Tt="TAKE",It="CALL",Pt="FORK",Rt="SELECT",xt=function(e,t){var r;return(r={})[Ue]=!0,r.combinator=!1,r.type=e,r.payload=t,r},Mt=function(e){return xt(Pt,Je({},e.payload,{detached:!0}))};function jt(e,t){return void 0===e&&(e="*"),ot(e)?xt(Tt,{pattern:e}):it(r=e)&&r[Fe]&&Ye(t)&&ot(t)?xt(Tt,{channel:e,pattern:t}):it(e)?xt(Tt,{channel:e}):void 0;var r}function At(e,t){return Xe(t)&&(t=e,e=void 0),xt("PUT",{channel:e,action:t})}function Lt(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 Dt(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 xt(It,Lt(e,r))}function Nt(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 xt(Pt,Lt(e,r))}function Vt(e){void 0===e&&(e=dt);for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return xt(Rt,{selector:e,args:r})}var $t=Dt.bind(null,at),Wt=[],Ut=0;function qt(e){try{Ht(),e()}finally{Kt()}}function Ft(e){Wt.push(e),Ut||(Ht(),zt())}function Bt(e){try{return Ht(),e()}finally{zt()}}function Ht(){Ut++}function Kt(){Ut--}function zt(){var e;for(Kt();!Ut&&void 0!==(e=Wt.shift());)qt(e)}var Qt=function(e){return function(t){return e.some((function(e){return Zt(e)(t)}))}},Gt=function(e){return function(t){return e(t)}},Jt=function(e){return function(t){return t.type===String(e)}},Xt=function(e){return function(t){return t.type===e}},Yt=function(){return ct};function Zt(e){var t="*"===e?Yt:et(e)?Jt:tt(e)?Qt:function(e){return Ze(e)&&e.hasOwnProperty("toString")}(e)?Jt:Ze(e)?Gt:st(e)?Xt:null;if(null===t)throw new Error("invalid pattern: "+e);return t(e)}var er={type:We},tr=function(e){return e&&e.type===We};function rr(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(er):e.isEmpty()?(r.push(n),n.cancel=function(){ht(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(er):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])(er)}}}}function nr(){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(er)}))},(e={})[Fe]=!0,e.put=function(e){if(!t)if(tr(e))i();else for(var o=r=n,s=0,a=o.length;s<a;s++){var c=o[s];c[qe](e)&&(c.cancel(),c(e))}},e.take=function(e,r){void 0===r&&(r=Yt),t?e(er):(e[qe]=r,o(),n.push(e),e.cancel=pt((function(){o(),ht(n,e)})))},e.close=i,e),a=s.put;return s.put=function(e){e[Be]?a(e):Ft((function(){a(e)}))},s}function or(e,t){var r=e[$e];Ze(r)&&(t.cancel=r),e.then(t,(function(e){t(e,!0)}))}var ir,sr=0,ar=function(){return++sr};function cr(e){e.isRunning()&&e.cancel()}var ur=((ir={}).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):!tr(e)||s?r(e):r(Qe)};try{o.take(a,Ye(i)?Zt(i):null)}catch(e){return void r(e,!0)}r.cancel=a.cancel},ir.PUT=function(e,t,r){var n=t.channel,o=t.action,i=t.resolve;Ft((function(){var t;try{t=(n?n.put:e.dispatch)(o)}catch(e){return void r(e,!0)}i&&rt(t)?or(t,r):r(t)}))},ir.ALL=function(e,t,r,n){var o=n.digestEffect,i=sr,s=Object.keys(t);if(0!==s.length){var a=kt(t,r);s.forEach((function(e){o(t[e],i,a[e],e)}))}else r(tt(t)?[]:{})},ir.RACE=function(e,t,r,n){var o=n.digestEffect,i=sr,s=Object.keys(t),a=tt(t)?yt(s.length):{},c={},u=!1;s.forEach((function(e){var t=function(t,n){u||(n||wt(t)?(r.cancel(),r(t,n)):(r.cancel(),u=!0,a[e]=t,r(a)))};t.cancel=ut,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)}))},ir.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 or(c,r);if(nt(c))return void yr(e,c,a.context,sr,Et(i),!1,r);r(c)}catch(e){r(e,!0)}},ir.CPS=function(e,t,r){var n=t.context,o=t.fn,i=t.args;try{var s=function(e,t){Xe(e)?r(t):r(e,!0)};o.apply(n,i.concat(s)),s.cancel&&(r.cancel=s.cancel)}catch(e){r(e,!0)}},ir.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);Bt((function(){var t=yr(e,a,s.context,sr,c,i,void 0);i?r(t):t.isRunning()?(s.queue.addTask(t),r(t)):t.isAborted()?s.queue.abort(t.error()):r(t)}))},ir.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()&&ht(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=kt(t,r);t.forEach((function(e,t){i(e,s[t])}))}else i(t,r)},ir.CANCEL=function(e,t,r,n){t===He?cr(n.task):tt(t)?t.forEach(cr):cr(t),r()},ir.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)}},ir.ACTION_CHANNEL=function(e,t,r){var n=t.pattern,o=rr(t.buffer),i=Zt(n),s=function t(r){tr(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)},ir.CANCELLED=function(e,t,r,n){r(n.task.isCancelled())},ir.FLUSH=function(e,t,r){t.flush(r)},ir.GET_CONTEXT=function(e,t,r,n){r(n.task.context[t])},ir.SET_CONTEXT=function(e,t,r,n){lt(n.task.context,t),r()},ir);function dr(e,t){return e+"?"+t}function lr(e){var t=e.name,r=e.location;return r?t+" "+dr(r.fileName,r.lineNumber):t}function hr(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 pr=null,fr=[],mr=function(e){e.crashedEffect=pr,fr.push(e)},vr=function(){pr=null,fr.length=0},gr=function(){var e,t=fr[0],r=fr.slice(1),n=t.crashedEffect?(e=Ct(t.crashedEffect))?e.code+" "+dr(e.fileName,e.lineNumber):"":null;return["The above error occurred in task "+lr(t.meta)+(n?" \n when executing effect "+n:"")].concat(r.map((function(e){return" created by "+lr(e.meta)})),[hr(fr)]).join("\n")};function yr(e,t,r,n,o,i,s){var a=e.finalizeRunEffect((function(t,r,n){rt(t)?or(t,n):nt(t)?yr(e,t,u.context,r,o,!1,n):t&&t[Ue]?(0,ur[t.type])(e,t.payload,n,d):n(t)}));l.cancel=ut;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=ut);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||(ht(o,t),t.cont=ut,c?s(a):(t===e&&(n=a),o.length||(i=!0,r(n))))}}function c(){i||(i=!0,o.forEach((function(e){e.cont=ut,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,mr({meta:o,cancelledTasks:h}),v.isRoot){var n=gr();vr(),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={})[Ke]=!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){lt(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),vr()):St(e)?(c.status=1,l.cancel(),o=Ze(t.return)?t.return(ze):{done:!0,value:ze}):o=_t(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=ar();function c(r,o){i||(i=!0,n.cancel=ut,e.sagaMonitor&&(o?e.sagaMonitor.effectRejected(s,r):e.sagaMonitor.effectResolved(s,r)),o&&function(e){pr=e}(t),n(r,o))}e.sagaMonitor&&e.sagaMonitor.effectTriggered({effectId:s,parentEffectId:r,label:o,effect:t}),c.cancel=ut,n.cancel=function(){i||(i=!0,c.cancel(),c.cancel=ut,e.sagaMonitor&&e.sagaMonitor.effectCancelled(s))},a(t,s,c)}}function br(e,t){for(var r=e.channel,n=void 0===r?nr():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?gt: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),g=ar();if(c&&(c.rootSagaStarted=c.rootSagaStarted||ut,c.effectTriggered=c.effectTriggered||ut,c.effectResolved=c.effectResolved||ut,c.effectRejected=c.effectRejected||ut,c.effectCancelled=c.effectCancelled||ut,c.actionDispatched=c.actionDispatched||ut,c.rootSagaStarted({effectId:g,saga:t,args:p})),u){var y=w.apply(void 0,u);m=function(e){return function(t,r,n){return y((function(t){return e(t,r,n)}))(t)}}}else m=dt;var b={channel:n,dispatch:bt(o),getState:i,sagaMonitor:c,onError:l,finalizeRunEffect:m};return Bt((function(){var e=yr(b,v,a,g,Et(t),!0,void 0);return c&&c.effectResolved(g,e),e}))}function _r(e){var t,r=void 0===e?{}:e,n=r.context,o=void 0===n?{}:n,i=r.channel,s=void 0===i?nr():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=br.bind(null,Je({},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){lt(o,e)},u}var Sr={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}(Sr);var wr,kr,Er=Sr.exports,Cr=Object.defineProperty,Or=Object.defineProperties,Tr=Object.getOwnPropertyDescriptors,Ir=Object.getOwnPropertySymbols,Pr=Object.prototype.hasOwnProperty,Rr=Object.prototype.propertyIsEnumerable,xr=(e,t,r)=>t in e?Cr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Mr=(e,t)=>{for(var r in t||(t={}))Pr.call(t,r)&&xr(e,r,t[r]);if(Ir)for(var r of Ir(t))Rr.call(t,r)&&xr(e,r,t[r]);return e},jr=(e,t)=>Or(e,Tr(t)),Ar=(e,t)=>{var r={};for(var n in e)Pr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Ir)for(var n of Ir(e))t.indexOf(n)<0&&Rr.call(e,n)&&(r[n]=e[n]);return r},Lr=(e,t)=>{for(var r in(e=>{Cr(e,"__esModule",{value:!0})})(e),t)Cr(e,r,{get:t[r],enumerable:!0})},Dr=(e,t,r)=>(xr(e,"symbol"!=typeof t?t+"":t,r),r);(kr=wr||(wr={}))[kr.CONNECTING=0]="CONNECTING",kr[kr.OPEN=1]="OPEN",kr[kr.CLOSING=2]="CLOSING",kr[kr.CLOSED=3]="CLOSED";var Nr="__local__",Vr=["room.started","room.ended"].map((e=>`video.${e}`)),$r=()=>(new Date).toISOString().replace("T"," ").replace("Z",""),Wr=o.getLogger("signalwire"),Ur=Wr.methodFactory;Wr.methodFactory=(e,t,r)=>{const n=Ur(e,t,r);return function(){const e=[$r(),"-"];for(let t=0;t<arguments.length;t++)e.push(arguments[t]);n.apply(void 0,e)}};var qr,Fr=Wr.getLevel();Wr.setLevel(Fr);var Br={},Hr=()=>null!=qr?qr:Wr,Kr=({type:e,payload:t})=>{const r=Hr(),{logWsTraffic:n}=Br||{};if(!n)return;const o=(e=>!("method"in e)||"signalwire.ping"!==e.method)(t)?JSON.stringify(t,null,2):t;return r.info(`${e.toUpperCase()}: \n`,o,"\n")},zr=()=>{const e=Hr();return new Proxy(e,{get:(e,t,r)=>"wsTraffic"===t?Kr:Reflect.get(e,t,r)})},Qr=(e,t)=>{const{result:r={},error:n}=e;if(n)return{error:n};const{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?Qr(s,i):{result:s}:{result:r}},Gr={propsToUpdateValue:["updated","layers","members","recordings","playbacks"]},Jr=(e,t=Gr)=>Object.entries(e).reduce(((e,[r,n])=>{const o=Xr(r);return e[o]="object"==typeof n&&n?Array.isArray(n)?t.propsToUpdateValue.includes(r)?n.map((e=>"string"==typeof e?Xr(e):Jr(e))):n:Jr(n):(e=>e.endsWith("At"))(o)?(e=>{if(void 0===e)return e;const t=new Date(1e3*e);return isNaN(t.getTime())?e:t})(n):n,e}),{}),Xr=e=>e.includes("_")?e.split("_").reduce(((e,t,r)=>{const n=t.trim().charAt(0),o=t.substr(1).toLowerCase();return`${e}${0===r?n.toLowerCase():n.toUpperCase()}${o}`}),""):e,Yr=({event:e,namespace:t})=>("string"==typeof e&&(e=tn({event:e,namespace:t}),e=en(e)),e),Zr=/[A-Z]/g,en=e=>e.replace(Zr,(e=>`_${e.toLowerCase()}`)),tn=({namespace:e,event:t})=>!e||t.startsWith(e)?t:`${e}:${t}`,rn=(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),nn=new Map,on=[{field:"members",preProcessPayload:e=>({member:e}),eventTransformType:"roomSessionMember"},{field:"recordings",preProcessPayload:e=>({recording:e}),eventTransformType:"roomSessionRecording"}],sn=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch(t){return e}},an=/^(ws|wss):\/\//,cn=["video.member.updated","video.member.talking"],un=["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"],dn=e=>e.includes(Nr),ln=e=>{const t=e.split(".")[0];return e.split(".").reduce(((e,r)=>(e.push(r),r===t&&e.push(Nr),e)),[]).join(".")},hn=e=>{var t;return Mr({jsonrpc:"2.0",id:null!=(t=e.id)?t:l()},e)},pn=e=>Mr({jsonrpc:"2.0"},e),fn={major:3,minor:0,revision:0},mn=e=>hn({method:"signalwire.connect",params:Mr({version:fn},e)}),vn={id:"callID",destinationNumber:"destination_number",remoteCallerName:"remote_caller_id_name",remoteCallerNumber:"remote_caller_id_number",callerName:"caller_id_name",callerNumber:"caller_id_number"},gn=e=>{if(e.hasOwnProperty("dialogParams")){const t=Ar(e.dialogParams,["remoteSdp","localStream","remoteStream"]);for(const e in vn)e&&t.hasOwnProperty(e)&&(t[vn[e]]=t[e],delete t[e]);e.dialogParams=t}return e},yn=e=>(t={})=>hn({method:e,params:gn(t)}),bn=yn("verto.invite"),_n=yn("verto.bye"),Sn=yn("verto.info"),wn=(e,t)=>pn({id:e,result:{method:t}}),kn={};Lr(kn,{authErrorAction:()=>Pn,authSuccessAction:()=>Rn,closeConnectionAction:()=>On,createAction:()=>De,destroyAction:()=>Cn,executeAction:()=>In,getCustomSagaActionType:()=>$n,initAction:()=>En,makeCustomSagaAction:()=>Vn,reauthAction:()=>Tn,sessionConnectedAction:()=>An,sessionDisconnectedAction:()=>Ln,sessionReconnectingAction:()=>Dn,socketClosedAction:()=>xn,socketErrorAction:()=>Mn,socketMessageAction:()=>jn});var En=De("swSdk/init"),Cn=De("swSdk/destroy"),On=De("swSdk/closeConnection"),Tn=De("swSdk/reauth"),In=De("swSdk/executeRequest"),Pn=De("auth/error"),Rn=De("auth/success"),xn=De("socket/closed"),Mn=De("socket/error"),jn=De("socket/message"),An=De("session.connected"),Ln=De("session.disconnected"),Dn=De("session.reconnecting"),Nn=(e,t)=>`${t.type}/${e}`,Vn=(e,t)=>jr(Mr({},t),{type:Nn(e,t)}),$n=(e,t)=>Nn(e,t),Wn=({name:e="",initialState:t,reducers:r,extraReducers:n})=>function(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:!x(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)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,Me(Me({},s),p),c,d);return{name:t,reducer:m,actions:f,caseReducers:h}}({name:e,initialState:t,reducers:r,extraReducers:e=>{e.addCase(Cn.type,(()=>t)),"function"==typeof n&&n(e)}}),Un=Wn({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(Pn.type,((e,{payload:t})=>{e.authStatus="unauthorized",e.authError=t.error}))}}),{actions:qn,reducer:Fn}=Un,Bn=Wn({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})=>{const{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})=>{const{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:Hn,reducer:Kn}=Bn,zn={queue:[]},Qn=Wn({name:"executeQueue",initialState:zn,reducers:{add:(e,{payload:t})=>{e.queue.push(t)},clean:()=>zn}}),{actions:Gn,reducer:Jn}=Qn,Xn=S({components:Kn,session:Fn,executeQueue:Jn}),Yn={};Lr(Yn,{getAuthStatus:()=>to,getIceServers:()=>Zn,getSession:()=>eo});var Zn=({session:e})=>{var t;return null!=(t=null==e?void 0:e.iceServers)?t:[]},eo=e=>e.session,to=({session:e})=>e.authStatus,ro=({components:e},t)=>{var r;return null==(r=e.byId)?void 0:r[t]};function*no(e){function*t(t){if("authorized"!==(yield Vt(to)))return;const{componentId:r,requestId:n,method:o,params:i}=t.payload;try{const s=(({method:e,params:t})=>hn({method:e,params:t}))({id:n,method:o,params:i}),a=yield Dt(e.execute,s);r&&n&&(yield At(Hn.executeSuccess({componentId:r,requestId:n,response:a})))}catch(e){zr().warn("worker error",r,e),r&&n&&(yield At(Hn.executeFailure({componentId:r,requestId:n,action:t,error:e})))}finally{if((yield xt("CANCELLED",{}))&&r&&n){const e={jsonrpc:"2.0",id:n,error:{code:-32600,message:"Cancelled task"}};zr().debug("executeActionWorker cancelled",{requestId:n,componentId:r,error:e}),yield At(Hn.executeFailure({componentId:r,requestId:n,action:t,error:e}))}}}for(;;){const e=yield jt(In.type);yield Nt(t,e)}}function*oo({session:e,sessionChannel:t,pubSubChannel:r}){function*n({jsonrpc:t,nodeId:r}){var n,o;const{id:i,method:s,params:a={}}=t;switch(s){case"verto.media":{const e={id:a.callID,state:"early",remoteSDP:a.sdp,nodeId:r};yield At(Hn.upsert(e)),yield At(In({method:"video.message",params:{message:wn(i,s),node_id:r}}));break}case"verto.answer":{const e={id:a.callID,state:"active",nodeId:r};(null==a?void 0:a.sdp)&&(e.remoteSDP=a.sdp),yield At(Hn.upsert(e)),yield At(In({method:"video.message",params:{message:wn(i,s),node_id:r}}));break}case"verto.bye":{const 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 At(Hn.upsert(e)),yield At(In({method:"video.message",params:{message:wn(i,s),node_id:r}}));break}case"verto.ping":yield At(In({method:"video.message",params:{message:wn(i,s),node_id:r}}));break;case"verto.punt":return e.disconnect();case"verto.mediaParams":{const{callID:e,mediaParams:t={}}=a;if(!e){zr().debug("Invalid mediaParams event",a);break}const r={id:e};(null==t?void 0:t.video)&&(r.videoConstraints=t.video),(null==t?void 0:t.audio)&&(r.audioConstraints=t.audio),yield At(Hn.upsert(r));break}case"verto.info":return zr().debug("Verto Info",a);case"verto.clientReady":return zr().debug("Verto ClientReady",a);case"verto.announce":return zr().debug("Verto Announce",a);default:return zr().debug(`Unknown Verto method: ${s}`,a)}}function*o(e){switch(e.event_type){case"video.room.subscribed":yield At(Hn.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 At(r,{type:"video.room.joined",payload:e.params});break;case"video.member.updated":{const{member:{updated:t=[]}}=e.params;for(const n of t){const t=`video.member.updated.${n}`;yield At(r,{type:t,payload:e.params})}break}case"video.member.joined":{const{member:t}=e.params;(null==t?void 0:t.parent_id)&&(yield Vt(ro,t.parent_id))&&(yield At(Hn.upsert({id:t.id,roomId:e.params.room_id,roomSessionId:e.params.room_session_id,memberId:t.id})));break}case"video.member.talking":{const{member:t}=e.params;if("talking"in t){const n=t.talking?"started":"ended";yield At(r,{type:`video.member.talking.${n}`,payload:e.params});const o=t.talking?"start":"stop";yield At(r,{type:`video.member.talking.${o}`,payload:e.params})}break}}yield At(r,{type:e.event_type,payload:e.params})}function*i(e){yield At(r,{type:e.event_type,payload:e.params})}function*s(e){var t;if("webrtc.message"!==(null==(t=e)?void 0:t.event_type))if((e=>{var t;return!!(null==(t=null==e?void 0:e.event_type)?void 0:t.startsWith("video."))})(e))yield Nt(o,e);else{if(!(e=>{var t;return!!(null==(t=null==e?void 0:e.event_type)?void 0:t.startsWith("cantina-manager."))})(e))return zr().debug("Unknown broadcast event",e);yield Nt(i,e)}else yield Nt(n,{jsonrpc:e.params,nodeId:e.node_id})}function*a(e){if(e.type!==jn.type)return void(yield At(e));const{method:t,params:r}=e.payload;switch(t){case"signalwire.event":yield Nt(s,r);break;default:return zr().debug(`Unknown message: ${t}`,e)}}for(;;)try{for(;;){const e=yield jt(t);yield Nt(a,e)}}catch(e){zr().error("sessionChannelWorker error:",e)}finally{zr().debug("sessionChannelWorker finally")}}function io(e){return function(t,r){void 0===r&&(r=Ot);var n,o,i=!1,s=rr(r),a=function(){i||(i=!0,Ze(n)&&n(),s.close())};return n=pt((o=function(e){tr(e)?a():s.put(e)},e.dispatch=e=>{o(e)},n=()=>{zr().debug("sessionChannel unsubscribe"),e.disconnect()})),i&&n(),{take:s.take,flush:s.flush,close:a}}()}function*so({pubSubChannel:e,emitter:t}){for(;;){const n=yield jt(e),{type:o,payload:i}=n;try{const e=void 0===(r=n).payload?"":(e=>e.type.startsWith("video.member."))(r)||(e=>e.type.startsWith("video.layout."))(r)||(e=>e.type.startsWith("video.recording."))(r)||(e=>e.type.startsWith("video.playback."))(r)?r.payload.room_session_id:(e=>e.type.startsWith("video.room."))(r)?r.payload.room_session.id:"";Vr.includes(o)&&t.emit(o,i),t.emit(Yr({namespace:e,event:o}),i)}catch(e){zr().error(e)}}var r}var ao=({executeQueue:e})=>e;function*co(){function*e(e){"authorized"!==(yield Vt(to))&&(yield At(Gn.add(e.payload)))}for(;;){const t=yield jt(In.type);yield Nt(e,t)}}function*uo(){const{queue:e}=yield Vt(ao);for(const t of e)yield At(In(t));yield At(Gn.clean())}var lo=class extends Error{constructor(e,t){super(t),this.code=e,this.message=t,Dr(this,"name","AuthError"),Object.setPrototypeOf(this,lo.prototype)}};Lr({},{createCatchableSaga:()=>po,createRestartableSaga:()=>ho});var ho=e=>function*(){!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];Mt(Nt.apply(void 0,[e].concat(r)))}((function*(){for(;;)try{zr().debug("Run a restartable saga"),yield Dt(e),zr().debug("One of the restartable saga has ended. Restarting..")}catch(e){zr().error("Restartable Saga Error",e)}}))},po=e=>function*(){try{zr().debug("Run a catchable saga"),yield Dt(e)}catch(e){zr().error("Catchable Saga Error",e)}};function*fo(e,t){var r;const n=new e(t),o=yield Dt(io,n),i=yield Dt(rr);let s=[];if(null==(r=t.workers)?void 0:r.length)try{const e=t.workers.map((e=>Dt(ho(e))));s=yield function(e){var t=xt("ALL",e);return t.combinator=!0,t}(e)}catch(e){zr().error("Error running custom workers",e)}yield Nt(oo,{session:n,sessionChannel:o,pubSubChannel:i}),yield Nt(go,{session:n,sessionChannel:o,pubSubChannel:i,userOptions:t}),n.connect(),yield jt(Cn.type),i.close(),o.close(),s.forEach((e=>e.cancel()))}function*mo({session:e,sessionChannel:t,pubSubChannel:r}){"reconnecting"===e.status?(yield At(r,Dn()),yield $t(2e3*Math.random()),yield Dt(e.connect)):(t.close(),yield At(r,Ln()))}function*vo({session:e,token:t}){try{e.reauthenticate&&(e.token=t,yield Dt(e.reauthenticate))}catch(e){zr().error("Reauthenticate Error",e)}}function*go(e){for(;;){const t=yield jt([Rn.type,Pn.type,Mn.type,xn.type,Tn.type]);switch(t.type){case Rn.type:yield Nt(yo,e);break;case Pn.type:{const{error:e}=t.payload;throw e?new lo(e.code,e.error):new Error("Unauthorized")}case Mn.type:break;case xn.type:yield Nt(mo,e);break;case Tn.type:yield Nt(vo,{session:e.session,token:t.payload.token})}}}function*yo(e){const{session:t,pubSubChannel:r,userOptions:n}=e,o=yield Nt(so,{pubSubChannel:r,emitter:n.emitter}),i=yield Nt(no,t);yield At(qn.connected(t.rpcConnectResult)),yield At(r,An());const s=yield Nt(uo);yield jt(On.type),o.cancel(),i.cancel(),s.cancel()}var bo=e=>{const{componentListeners:t={},sessionListeners:r={},store:n,Component:o,customSagas:i=[]}=e,s=Object.keys(t),a=Object.keys(r);return e=>{const c=new o(jr(Mr({},e),{store:n})),u=new Map;let d=!0;const l=n.subscribe((()=>{const e=n.getState(),o=ro(e,c.__uuid);if(!o)return;for(const e of s){if(!1===d)return;const 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);const n=t[e];"string"==typeof n?c[n](o):n(o)}}const i=eo(e);for(const e of a){if(!1===d)return;const t=`session.${e}`,n=u.get(t),o=i[e];if(void 0!==o&&n!==o){u.set(t,o);const n=r[e];"string"==typeof n?c[n](i):"function"==typeof n&&n(i)}}}));n.dispatch(Hn.upsert({id:c.__uuid}));const 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,Dr(this,"uuid",l()),Dr(this,"_eventsPrefix",""),Dr(this,"_eventsRegisterQueue",new Set),Dr(this,"_eventsEmitQueue",new Set),Dr(this,"_eventsNamespace"),Dr(this,"_eventsTransformsCache",new Map),Dr(this,"_requests",new Map),Dr(this,"_customSagaTriggers",new Map),Dr(this,"_destroyer"),Dr(this,"_emitterTransforms",new Map),Dr(this,"_emitterListenersCache",new Map),Dr(this,"_trackedEvents",[]),Dr(this,"_runningWorkers",[])}get __uuid(){return this.uuid}get logger(){return zr()}_getNamespacedEvent(e){let t=this._eventsNamespace;return"string"==typeof e&&dn(e)&&(t=this.__uuid),Yr({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){const[t,r]=e.params;return this.logger.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){this.logger.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)){const n=t.instanceFactory(r);return this._eventsTransformsCache.set(e,n),n}return this._eventsTransformsCache.get(e)}cleanupEventHandlerTransformCache({internalEvent:e,force:t}){const r=this._eventsTransformsCache.get(e),n=this.listenerCount(e);return r&&(t||n<=1)?(r.destroy(),this._eventsTransformsCache.delete(e)):(this.logger.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){const r=this.getEmitterListenersMapByInternalEventName(e);if(t&&r.has(t)){const n=r.get(t);return r.delete(t),this._emitterListenersCache.set(e,r),n}return t}_createStableEventHandler(e,t){return r=>{const n=this._emitterTransforms.get(e);if(!n)return t(r);const 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 on.forEach((({field:t,preProcessPayload:r,eventTransformType:n})=>{var o;const 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})=>{const r=(({transform:e,payload:t})=>{if(!nn.has(e.type)){const r=e.instanceFactory(t);return nn.set(e.type,r),r}return nn.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){const r=this.getEmitterListenersMapByInternalEventName(e);let 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){const n=this._getInternalEvent(e);this._trackEvent(n);const o=r?"once":"on";if(this.shouldAddToQueue())return this.addEventToRegisterQueue({type:o,params:[e,t]}),this.emitter;const i=this.getOrCreateStableEventHandler(n,t);return this.logger.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;const r=this._getInternalEvent(e),n=this.getAndRemoveStableEventHandler(r,t);return this.cleanupEventHandlerTransformCache({internalEvent:r,force:!n}),this.logger.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=>{const t=this.eventNames().map((e=>{if("string"==typeof e){const t=(e=>{const t=e.split(":");return t[t.length-1]})(e);return un.includes(t)?null:cn.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;const r=this._getInternalEvent(e);return this.logger.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(),this.detachWorkers()}execute({method:e,params:t},{transformResolve:r=_o,transformReject:n=_o}={transformResolve:_o,transformReject:_o}){return new Promise(((o,i)=>{const s=l();this._requests.set(s,{resolve:o,reject:i,transformResolve:r,transformReject:n}),this.store.dispatch(In({requestId:s,componentId:this.__uuid,method:e,params:t}))}))}triggerCustomSaga(e){return new Promise(((t,r)=>{const n=l();this._customSagaTriggers.set(n,{resolve:t,reject:r}),this.store.dispatch(Mr({dispatchId:n},Vn(this.__uuid,e)))}))}settleCustomSagaTrigger({dispatchId:e,payload:t,kind:r}){const 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=>{const{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}){const n=this._getInternalEvent(e);(r?dn(e):!dn(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)}))}getWorkers(){return new Map}attachWorkers(){this.getWorkers().forEach((({worker:e})=>{const t=this.store.runSaga(e);this._runningWorkers.push(t)}))}detachWorkers(){this._runningWorkers.forEach((e=>{e.cancel()})),this._runningWorkers=[]}},wo=class extends So{constructor(e){super(e),this.options=e}onClientSubscribed(){this._attachListeners("")}connect(){return new Promise(((e,t)=>{const r=this.store.subscribe((()=>{const n=this.store.getState(),{authStatus:o,authError:i}=n.session;if("authorized"===o)e(this),r();else if("unauthorized"===o){const e=i?new lo(i.code,i.error):new Error("Unauthorized");t(e),r()}}));this.store.dispatch(En())}))}disconnect(){this.store.dispatch(Cn())}},ko=class extends So{constructor(e){super(e),this.options=e,Dr(this,"subscribeParams",{}),this.applyEmitterTransforms({local:!0})}subscribe(){return new Promise((async(e,t)=>{const r=this.getSubscriptions();if(r.length>0){const e={method:"signalwire.subscribe",params:jr(Mr({},this.subscribeParams),{event_channel:this.getStateProperty("eventChannel"),events:r})};try{this.applyEmitterTransforms(),this.attachWorkers(),await this.execute(e)}catch(e){return t(e)}}else this.logger.warn("`run()` was called without any listeners attached.");return e(void 0)}))}},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 Co=Jr(Eo);Object.keys(Co).map((e=>`member.updated.${e}`));var Oo={};Lr(Oo,{RoomSessionPlaybackAPI:()=>Zo,RoomSessionRecordingAPI:()=>Xo,audioMuteMember:()=>Wo,audioUnmuteMember:()=>Uo,createRoomSessionPlaybackObject:()=>ei,createRoomSessionRecordingObject:()=>Yo,deafMember:()=>Bo,getLayouts:()=>Ro,getMembers:()=>xo,getPlaybacks:()=>Vo,getRecordings:()=>Do,hideVideoMuted:()=>jo,play:()=>$o,removeMember:()=>Jo,setDeaf:()=>Ko,setHideVideoMuted:()=>Lo,setInputSensitivityMember:()=>Go,setInputVolumeMember:()=>zo,setLayout:()=>Mo,setOutputVolumeMember:()=>Qo,showVideoMuted:()=>Ao,startRecording:()=>No,undeafMember:()=>Ho,videoMuteMember:()=>qo,videoUnmuteMember:()=>Fo});var To=()=>{},Io=(e,t={})=>({value:function(r={}){return this.execute({method:e,params:Mr({room_session_id:this.roomSessionId},r)},t)}}),Po=(e,t={})=>({value:function(r={}){var n=r,{memberId:o}=n,i=Ar(n,["memberId"]);return this.execute({method:e,params:Mr({room_session_id:this.roomSessionId,member_id:o||this.memberId},i)},t)}}),Ro=Io("video.list_available_layouts",{transformResolve:e=>({layouts:e.layouts})}),xo=Io("video.members.get",{transformResolve:e=>({members:e.members})}),Mo=Io("video.set_layout",{transformResolve:To}),jo=Io("video.hide_video_muted",{transformResolve:To}),Ao=Io("video.show_video_muted",{transformResolve:To}),Lo={value:function(e){return this.execute({method:e?"video.hide_video_muted":"video.show_video_muted",params:{room_session_id:this.roomSessionId}},{transformResolve:To})}},Do=Io("video.recording.list",{transformResolve:e=>({recordings:e.recordings.map((e=>Jr(e)))})}),No={value:function(){return new Promise((async e=>{const t=t=>{e(t)};this.on(ln("video.recording.start"),t);try{const e=await this.execute({method:"video.recording.start",params:{room_session_id:this.roomSessionId}});this.emit(ln("video.recording.start"),jr(Mr({},e),{room_session_id:this.roomSessionId}))}catch(e){throw this.off(ln("video.recording.start"),t),e}}))}},Vo=Io("video.playback.list",{transformResolve:e=>({playbacks:e.playbacks.map((e=>Jr(e)))})}),$o={value:function(e){return new Promise((async t=>{const r=e=>{t(e)};this.on(ln("video.playback.start"),r);try{const t=await this.execute({method:"video.playback.start",params:Mr({room_session_id:this.roomSessionId},e)});this.emit(ln("video.playback.start"),jr(Mr({},t),{room_session_id:this.roomSessionId}))}catch(e){throw this.off(ln("video.playback.start"),r),e}}))}},Wo=Po("video.member.audio_mute",{transformResolve:To}),Uo=Po("video.member.audio_unmute",{transformResolve:To}),qo=Po("video.member.video_mute",{transformResolve:To}),Fo=Po("video.member.video_unmute",{transformResolve:To}),Bo=Po("video.member.deaf",{transformResolve:To}),Ho=Po("video.member.undeaf",{transformResolve:To}),Ko={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:To})}},zo=Po("video.member.set_input_volume",{transformResolve:To}),Qo=Po("video.member.set_output_volume",{transformResolve:To}),Go=Po("video.member.set_input_sensitivity",{transformResolve:To}),Jo={value:function(e={}){var t=e,{memberId:r}=t,n=Ar(t,["memberId"]);if(!r)throw new TypeError('Invalid or missing "memberId" argument');return this.execute({method:"video.member.remove",params:Mr({room_session_id:this.roomSessionId,member_id:r},n)},{transformResolve:To})}},Xo=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")}})}},Yo=e=>bo({store:e.store,Component:Xo,componentListeners:{errors:"onError",responses:"onSuccess"}})(e),Zo=class extends So{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}})}},ei=e=>bo({store:e.store,Component:Zo,componentListeners:{errors:"onError",responses:"onSuccess"}})(e),ti=Mr({},Yn);const ri=()=>"undefined"!=typeof navigator&&!!navigator.mediaDevices,ni=()=>{if(!ri())throw new Error("The media devices API isn't supported in this environment");return navigator.mediaDevices},oi=(e={audio:!0,video:!0})=>{try{return ni().getUserMedia(e)}catch(t){switch(t.name){case"Error":zr().error("navigator.mediaDevices.getUserMedia doesn't seem to be supported.");break;case"NotFoundError":zr().error("No media tracks of the type specified were found that satisfy the given constraints.");break;case"NotReadableError":zr().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":zr().error(`The constraint: ${t.constraint} cannot be met by the selected device.`),zr().info("List of available constraints:",ci());break;case"NotAllowedError":zr().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?zr().error('Constraints can\'t be empty nor have "video" and "audio" set to false.'):zr().error("Please check that you are calling this method from a secure context (using HTTPS rather than HTTP).");break;case"SecurityError":zr().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}},ii=e=>ni().getDisplayMedia(e),si=()=>ni().enumerateDevices(),ai=async e=>{let t=await si().catch((e=>[]));return e&&(t=t.filter((({kind:t})=>t===e))),t},ci=()=>ni().getSupportedConstraints(),ui=e=>e&&e instanceof MediaStream,di=()=>"sinkId"in HTMLMediaElement.prototype,li=async(e,t)=>{if(null!==e)if("string"==typeof t)if(di())try{return await e.setSinkId(t)}catch(e){throw"SecurityError"===e.name?zr().error(`You need to use HTTPS for selecting audio output device: ${e}`):zr().error(`Error: ${e}`),e}else zr().warn("Browser does not support output device selection.");else zr().warn(`Invalid speaker deviceId: '${t}'`);else zr().warn("No HTMLMediaElement to attach the speakerId")},hi=e=>{var t;ui(e)&&(null===(t=null==e?void 0:e.getTracks())||void 0===t||t.forEach(pi))},pi=e=>{e&&"live"===e.readyState&&(e.stop(),e.dispatchEvent(new Event("ended")))},fi={camera:"videoinput",microphone:"audioinput",speaker:"audiooutput"},mi=e=>{if(e)return fi[e]},vi=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 ai(e);return t.length?t.every((({deviceId:e,label:t})=>Boolean(e&&t))):(zr().warn(`No ${e} devices to check for permissions!`),null)})(mi(e))},gi=()=>vi("camera"),yi=()=>vi("microphone"),bi=()=>vi("speaker"),_i=async(e,t=!1)=>{if(!1===await vi(e)){const t=(e=>({audio:!e||"all"===e||"microphone"===e||"speaker"===e,video:!e||"all"===e||"camera"===e}))(e),r=await oi(t);hi(r)}return wi(e,t)},Si=(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))}))},wi=async(e,t=!1)=>{const r=await ai(mi(e));return!0===t?r:Si(r)},ki=async(e,t,r)=>{const n=await wi(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},Ei=e=>{const t=new Map;return e.forEach((e=>{e.deviceId&&t.set(e.deviceId,e)})),t},Ci={camera:gi,microphone:yi,speaker:bi},Oi=["camera","microphone","speaker"],Ti=`Allowed targets are: '${Oi.join("', '")}'`,Ii={speaker:di},Pi=async(e={})=>{const t=await(async e=>{var t;const r=(null!==(t=e.targets)&&void 0!==t?t:Oi).filter((e=>!!Oi.includes(e)||(zr().warn(`We'll ignore the "${e}" target as it is not allowed. ${Ti}.`),!1)));if(!r.length)throw new Error(`At least one "target" is required for createDeviceWatcher(). ${Ti}.`);const n=await(async e=>{const t=e.targets;return(await Promise.all(t.map((e=>Ci[e]())))).reduce(((e,r,n)=>{var o;const i=t[n];return e[!(i in Ii)||(null===(o=Ii[i])||void 0===o?void 0:o.call(Ii))?"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(", ")}. `:"";zr().warn(`${e}${t}We'll be watching for the following targets instead: "${i.join(", ")}"`)}return zr().debug(`Watching these targets: "${i.join(", ")}"`),i})({targets:e.targets}),r=new Er,n=await si(),o=null==t?void 0:t.reduce(((e,t)=>{const r=mi(t);return r&&e.push(r),e}),[]);let i=Si(n,{excludeDefault:!0,targets:o});return ni().addEventListener("devicechange",(async()=>{const e=await si(),t=i,n=Si(e,{excludeDefault:!0,targets:o});i=n;const s=((e,t)=>{const r=Ei(e),n=Ei(e),o=[];zr().debug("[_getDeviceListDiff] <- oldDevices",e),zr().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},Ri=async e=>{zr().info("RTCService.getUserMedia",e);const{audio:t,video:r}=e;if(t||r)try{return await oi(e)}catch(e){throw zr().error("getUserMedia error: ",e),e}},xi=async e=>{let{audio:t=!0,micId:r}=e;const{micLabel:n=""}=e;if(r){const e=await ki(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 ki(i,s,"camera").catch((e=>null));e&&("boolean"==typeof o&&(o={}),o.deviceId={exact:e})}return{audio:t,video:o}},Mi=e=>/^m=audio/.test(e),ji=e=>/^m=video/.test(e),Ai=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 Li{constructor(e,t){this.call=e,this.type=t,this._negotiating=!1,this.options=e.options,this.logger.debug("New Peer with type:",this.type,"Options:",this.options),this._onIce=this._onIce.bind(this)}get logger(){return zr()}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 this.logger.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 this.logger.info(`There is not a '${e}' sender to stop.`);n.track&&(pi(n.track),null===(r=null===(t=this.options)||void 0===t?void 0:t.localStream)||void 0===r||r.removeTrack(n.track))}catch(t){this.logger.error("RTCPeer stopTrackSender error",e,t)}}async restoreTrackSender(e){var t,r;try{const n=this._getSenderByKind(e);if(!n)return this.logger.info(`There is not a '${e}' sender to restore.`);if(n.track&&"ended"!==n.track.readyState)return this.logger.info(`There is already an active ${e} track.`);const o=await xi(this.options),i=await Ri({[e]:o[e]});if(i&&ui(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){this.logger.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 this.logger.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 this.logger.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 this.logger.error("RTCPeer getDeviceLabel error",e,t),null}}restartIceWithRelayOnly(){try{const e=this.instance.getConfiguration();if("relay"===e.iceTransportPolicy)return this.logger.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){this.logger.error("RTCPeer restartIce error",e)}}async applyMediaConstraints(e,t){try{const r=this._getSenderByKind(e);if(!r||!r.track)return this.logger.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}),this.logger.info(`Apply ${e} constraints`,this.call.id,n),await r.track.applyConstraints(n)}}catch(r){this.logger.error("Error applying constraints",e,t)}}_getSenderByKind(e){return this.instance.getSenders?this.instance.getSenders().find((({track:t})=>t&&t.kind===e)):(this.logger.warn("RTCPeerConnection.getSenders() not available."),null)}_getReceiverByKind(e){return this.instance.getReceivers?this.instance.getReceivers().find((({track:t})=>t&&t.kind===e)):(this.logger.warn("RTCPeerConnection.getReceivers() not available."),null)}async startNegotiation(e=!1){var t,r;if(this._negotiating)return this.logger.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){this.logger.debug("Trying to generate offer");const e=await this.instance.createOffer({voiceActivityDetection:!1});await this._setLocalDescription(e)}if(this.isAnswer){this.logger.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){this.logger.error(`Error creating ${this.type}:`,e)}}async onRemoteSdp(e){try{const t=this.isOffer?"answer":"offer";await this._setRemoteDescription({sdp:e,type:t}),this.isOffer&&this._resolveStartMethod()}catch(e){this.logger.error(`Error handling remote SDP on call ${this.call.id}:`,e),this.call.hangup(),this._rejectStartMethod(e)}}_setupRTCPeerConnection(){this.instance||(this.instance=new window.RTCPeerConnection(this.config),this._attachListeners())}async start(){return new Promise((async(e,t)=>{this._resolveStartMethod=e,this._rejectStartMethod=t;try{this.options.localStream=await this._retrieveLocalStream()}catch(e){return this.logger.error("Error retrieving a local stream",e),this._rejectStartMethod(e),this.call.setState("hangup")}this._setupRTCPeerConnection();const{localStream:r=null}=this.options;if(r&&ui(r)){const e=r.getAudioTracks();this.logger.debug("Local audio tracks: ",e);const t=r.getVideoTracks();if(this.logger.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})))),this.logger.debug("Applying video transceiverParams",n),t.forEach((e=>{this.instance.addTransceiver(e,n)})),this.isSfu){const{msStreamsNumber:e=5}=this.options;this.logger.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);this.logger.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 this.logger.debug("No candidate - retry \n"),void this.startNegotiation(!0);this.logger.debug("LOCAL SDP \n",`Type: ${t}`,"\n\n",e),this.instance.removeEventListener("icecandidate",this._onIce);try{await this.call.onLocalSDPReady(this.instance.localDescription)}catch(e){this._rejectStartMethod(e)}}_onIce(e){this._iceTimeout||(this._iceTimeout=setTimeout((()=>this._sdpReady()),this.options.iceGatheringTimeout)),e.candidate?(this.logger.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=Ai(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)),this.logger.debug("LOCAL SDP \n",`Type: ${e.type}`,"\n\n",e.sdp),this.instance.setLocalDescription(e)}_setRemoteDescription(e){e.sdp&&this.options.useStereo&&(e.sdp=Ai(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(Mi)<n.findIndex(ji))return e;const o=e.split(r),i=o.findIndex(Mi),s=o.findIndex(ji),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 this.logger.debug("REMOTE SDP \n",`Type: ${e.type}`,"\n\n",e.sdp),this.instance.setRemoteDescription(t)}async _retrieveLocalStream(){if(ui(this.options.localStream))return this.options.localStream;const e=await xi(this.options);return Ri(e)}_attachListeners(){this.instance.addEventListener("signalingstatechange",(()=>{switch(this.logger.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",(()=>{this.logger.debug("Negotiation needed event"),this.startNegotiation()})),this.instance.addEventListener("iceconnectionstatechange",(()=>{this.logger.debug("iceConnectionState:",this.instance.iceConnectionState)})),this.instance.addEventListener("icegatheringstatechange",(()=>{this.logger.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 Di={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 Ni 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(ti.getIceServers);this.options=Object.assign(Object.assign(Object.assign({},Di),e),{iceServers:r}),this.setState("new"),this.logger.debug("New Call with Options:",this.options),this.applyEmitterTransforms({local:!0}),this.attachWorkers()}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(this.logger.debug("onStateChange",e),e.state){case"hangup":this._hangup(e);break;default:this.setState(e.state)}}onRemoteSDP(e){this.logger.debug("onRemoteSDP",e),e.remoteSDP&&this.peer.onRemoteSdp(e.remoteSDP)}onRoomSubscribed(e){this.logger.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){this.logger.debug("onVideoConstraints",e),(null==e?void 0:e.videoConstraints)&&this.peer.applyMediaConstraints("video",e.videoConstraints)}onAudioConstraints(e){this.logger.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&&(this.logger.info("Switching off the microphone"),this.stopOutboundAudio()),!1===e.video&&(this.logger.info("Switching off the camera"),this.stopOutboundVideo()),e.audio||e.video}updateConstraints(e){return new Promise((async(t,r)=>{try{if(this.logger.debug("updateConstraints trying constraints",this.__uuid,e),!Object.keys(e).length)return this.logger.warn("Invalid constraints:",e);if(!this.manageSendersWithConstraints(e))return void this.logger.debug("Either `video` and `audio` (or both) constraints were set to `false` so their corresponding senders (if any) were stopped");const r=await oi(e);this.logger.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];this.logger.debug("updateConstraints apply track: ",t);const r=n.getTransceivers().find((({mid:e,sender:r,receiver:n})=>r.track&&r.track.kind===t.kind?(this.logger.debug("Found transceiver by sender"),!0):n.track&&n.track.kind===t.kind?(this.logger.debug("Found transceiver by receiver"),!0):null===e&&(this.logger.debug("Found disassociated transceiver"),!0)));r&&r.sender?(this.logger.debug("updateConstraints FOUND - replaceTrack on it and on localStream"),await r.sender.replaceTrack(t),this.logger.debug("updateConstraints replaceTrack SUCCESS"),this.options.localStream.getTracks().forEach((e=>{var r;e.kind===t.kind&&e.id!==t.id&&(this.logger.debug("updateConstraints stop old track and apply new one - "),pi(e),null===(r=this.options.localStream)||void 0===r||r.removeTrack(e))})),this.options.localStream.addTrack(t)):(this.logger.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)),this.logger.debug("updateConstraints Simply update mic/cam"),"audio"===t.kind?this.options.micId=t.getSettings().deviceId:"video"===t.kind&&(this.options.camId=t.getSettings().deviceId)}this.logger.debug("updateConstraints done!"),t()}catch(e){this.logger.error("updateConstraints",e),r(e)}}))}invite(){return new Promise((async(e,t)=>{this.direction="outbound",this.peer=new Li(this,"offer");try{await this.peer.start(),e(this)}catch(e){this.logger.error("Invite error",e),t(e)}}))}answer(){return new Promise((async(e,t)=>{this.direction="inbound",this.peer=new Li(this,"answer");try{await this.peer.start(),e(this)}catch(e){this.logger.error("Answer error",e),t(e)}}))}onLocalSDPReady(e){const{type:t,sdp:r}=e;switch(t){case"offer":return this.executeInvite(r);case"answer":this.logger.warn("Unhandled verto.answer");break;default:return this.logger.error(`Unknown SDP type: '${t}' on call ${this.id}`)}}async executeInvite(e){this.setState("requesting");try{const t=bn(Object.assign(Object.assign({},this.messagePayload),{sdp:e})),r=await this.vertoExecute(t);this.logger.debug("Invite response",r)}catch(e){throw this.setState("hangup"),e.jsonrpc}}async hangup(){try{const e=_n(this.messagePayload);await this.vertoExecute(e)}catch(e){this.logger.error("Hangup error:",e)}finally{this._hangup()}}dtmf(e){const t=Sn(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,this.logger.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?(this.logger.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;hi(e),hi(t),this.destroy()}}const Vi=()=>{const e=document.createElement("video");return e.muted=!0,e.autoplay=!0,e.playsInline=!0,e},$i=({x:e,y:t,width:r,height:n})=>({top:`${t}%`,left:`${e}%`,width:`${r}%`,height:`${n}%`}),Wi=e=>t=>{const r=document.getElementById(t);r&&(r.style.display=e)},Ui=kn.createAction("swJs/audioSetSpeakerAction");function*qi({element:e,room:t}){const r=kn.getCustomSagaActionType(t.__uuid,Ui);for(;;){const n=yield jt([r]);try{switch(n.type){case r:const o=yield Dt(li,e,n.payload);t.settleCustomSagaTrigger({dispatchId:n.dispatchId,payload:o,kind:"resolve"})}}catch(e){t.settleCustomSagaTrigger({dispatchId:n.dispatchId,payload:e,kind:"reject"}),zr().error(e)}}}function*Fi({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&&li(t,r).catch((()=>{})),yield Nt(qi,{element:t,room:n})}function*Bi({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 Hi={state:"onStateChange",remoteSDP:"onRemoteSDP",roomId:"onRoomSubscribed",videoConstraints:"onVideoConstraints",audioConstraints:"onAudioConstraints",errors:"onError",responses:"onSuccess"},Ki={echoCancellation:!1,noiseSuppression:!1,autoGainControl:!1,googAutoGainControl:!1},zi=rn(class extends Ni{join(){return super.invite()}leave(){return super.hangup()}},{audioMute:Oo.audioMuteMember,audioUnmute:Oo.audioUnmuteMember,videoMute:Oo.videoMuteMember,videoUnmute:Oo.videoUnmuteMember,setMicrophoneVolume:Oo.setInputVolumeMember,setInputVolume:Oo.setInputVolumeMember,setInputSensitivity:Oo.setInputSensitivityMember}),Qi=rn(class extends Ni{join(){return super.invite()}leave(){return super.hangup()}},{audioMute:Oo.audioMuteMember,audioUnmute:Oo.audioUnmuteMember,videoMute:Oo.videoMuteMember,videoUnmute:Oo.videoUnmuteMember,setInputVolume:Oo.setInputVolumeMember,setMicrophoneVolume:Oo.setInputVolumeMember,setInputSensitivity:Oo.setInputSensitivityMember}),Gi=rn(class extends Ni{_screenShareList=new Set;_deviceList=new Set;get screenShareList(){return Array.from(this._screenShareList)}get deviceList(){return Array.from(this._deviceList)}getEmitterTransforms(){return new Map([[[ln("video.recording.start"),"video.recording.started","video.recording.updated","video.recording.ended"],{type:"roomSessionRecording",instanceFactory:e=>Oo.createRoomSessionRecordingObject({store:this.store,emitter:this.emitter}),payloadTransform:e=>Jr({...e.recording,room_session_id:this.roomSessionId})}],[[ln("video.playback.start"),"video.playback.started","video.playback.updated","video.playback.ended"],{type:"roomSessionPlayback",instanceFactory:e=>Oo.createRoomSessionPlaybackObject({store:this.store,emitter:this.emitter}),payloadTransform:e=>Jr({...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 ii({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:zi,componentListeners:Hi})(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 this.logger.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:Qi,componentListeners:Hi})(o);i.on("destroy",(()=>{this._deviceList.delete(i)}));try{return this._deviceList.add(i),t&&await i.join(),i}catch(e){throw this.logger.error("RoomDevice Error",e),e}}join(){return super.invite()}leave(){return this.hangup()}updateSpeaker({deviceId:e}){return this.triggerCustomSaga(Ui(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:Oo.audioMuteMember,audioUnmute:Oo.audioUnmuteMember,videoMute:Oo.videoMuteMember,videoUnmute:Oo.videoUnmuteMember,deaf:Oo.deafMember,undeaf:Oo.undeafMember,setInputVolume:Oo.setInputVolumeMember,setOutputVolume:Oo.setOutputVolumeMember,setMicrophoneVolume:Oo.setInputVolumeMember,setSpeakerVolume:Oo.setOutputVolumeMember,setInputSensitivity:Oo.setInputSensitivityMember,removeMember:Oo.removeMember,getMembers:Oo.getMembers,getLayouts:Oo.getLayouts,setLayout:Oo.setLayout,hideVideoMuted:Oo.hideVideoMuted,showVideoMuted:Oo.showVideoMuted,getRecordings:Oo.getRecordings,startRecording:Oo.startRecording,getPlaybacks:Oo.getPlaybacks,play:Oo.play,setHideVideoMuted:Oo.setHideVideoMuted});class Ji extends ko{_eventsPrefix="cantina-manager";getEmitterTransforms(){return new Map([[["cantina-manager.rooms.subscribed"],{type:"roomSession",instanceFactory:({rooms:e})=>({rooms:e.map((e=>Jr(e)))}),payloadTransform:({rooms:e})=>({rooms:e.map((e=>Jr(e)))})}],[["cantina-manager.room.started","cantina-manager.room.added","cantina-manager.room.updated","cantina-manager.room.ended","cantina-manager.room.deleted"],{type:"roomSession",instanceFactory:e=>Jr(e),payloadTransform:e=>Jr(e)}]])}}class Xi extends wo{_cantina;get rooms(){return{makeRoomObject:e=>{const{rootElement:t,applyLocalVideoOverlay:r=!0,stopCameraWhileMuted:n=!0,stopMicrophoneWhileMuted:o=!0,...i}=e,s=[];s.push((({speakerId:e})=>function*({instance:t,runSaga:r}){try{const n=new Audio;let o;const i=function(s){switch(s.track.kind){case"audio":o=r(Fi,{track:s.track,element:n,speakerId:e,room:t}),t.off("track",i)}};t.on("track",i),t.once("destroy",(()=>{o?.cancel()}))}catch(e){zr().error("audioElementSaga",e)}})({speakerId:i.speakerId})),t&&s.push((({rootElement:e,applyLocalVideoOverlay:t})=>function*({instance:r,runSaga:n}){try{const o=new Map,i=Vi(),s=(({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 zr().debug("Current Layer Not Found",JSON.stringify(n));let c=e.get(o);if(!c){c=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}=$i(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}),c.id=o;const n=Vi();n.srcObject=i,n.style.width="100%",n.style.height="100%",c.appendChild(n);const s=r.querySelector(".mcuLayers"),u=document.getElementById(o);return void(s&&!u&&(s.appendChild(c),e.set(o,c)))}const{top:u,left:d,width:l,height:h}=$i(a);c.style.top=u,c.style.left=d,c.style.width=l,c.style.height=h}catch(e){zr().error("Layout Changed Error",e)}})({rootElement:e,element:i,layerMap:o}),a=Wi("none"),c=Wi("block");let u;r.on("layout.changed",(e=>{r.peer.hasVideoSender&&r.localStream&&s({layout:e.layout,localStream:r.localStream,myMemberId:r.memberId})})),r.on("member.updated.video_muted",(e=>{try{const{member:t}=e;t.id===r.memberId&&"video_muted"in t&&(t.video_muted?a(t.id):c(t.id))}catch(e){zr().error("Error handling video_muted",e)}}));const d=function(o){switch(o.track.kind){case"video":u=n(Bi,{applyLocalVideoOverlay:t,rootElement:e,track:o.track,element:i}),r.off("track",d)}};r.on("track",d),r.once("destroy",(()=>{(e=>{for(;e.firstChild;)e.removeChild(e.firstChild)})(e),o.clear(),u?.cancel()}))}catch(e){zr().error("videoElementSaga",e)}})({rootElement:t,applyLocalVideoOverlay:r}));const a=(c={...i,store:this.store,emitter:this.emitter,customSagas:s},bo({store:c.store,customSagas:c.customSagas,Component:Gi,componentListeners:Hi})(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){this.logger.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){this.logger.error("Error handling video_muted",e)}})),a}}}get cantina(){return this._cantina||(this._cantina=(e=>{const t=bo({store:e.store,Component:Ji,componentListeners:{errors:"onError",responses:"onSuccess"}})(e);return new Proxy(t,{get:(e,t,r)=>"_eventsNamespace"===t?"":"eventChannel"===t?"cantina-manager.rooms":Reflect.get(e,t,r)})})(this.options)),this._cantina}reauthenticate(e){this.store.dispatch(kn.reauthAction({token:e}))}}class Yi extends class extends class{constructor(e){var t,r;this.options=e,Dr(this,"uuid",l()),Dr(this,"WebSocketConstructor"),Dr(this,"agent"),Dr(this,"connectVersion",fn),Dr(this,"_rpcConnectResult"),Dr(this,"_requests",new Map),Dr(this,"_socket",null),Dr(this,"_host","wss://relay.signalwire.com"),Dr(this,"_executeTimeoutMs",1e4),Dr(this,"_executeTimeoutError",Symbol.for("sw-execute-timeout")),Dr(this,"_checkPingDelay",15e3),Dr(this,"_checkPingTimer",null),Dr(this,"_status","unknown");const{host:n,logLevel:o="info"}=e;n&&(this._host=(e=>`${an.test(e)?"":"wss://"}${e}`)(n)),o&&(null==(r=(t=this.logger).setLevel)||r.call(t,o)),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 zr()}get connecting(){var e;return(null==(e=this._socket)?void 0:e.readyState)===wr.CONNECTING}get connected(){var e;return(null==(e=this._socket)?void 0:e.readyState)===wr.OPEN}get closing(){var e;return(null==(e=this._socket)?void 0:e.readyState)===wr.CLOSING}get closed(){return!this._socket||this._socket.readyState===wr.CLOSED}get status(){return this._status}set token(e){this.options.token=e}connect(){(null==this?void 0:this.WebSocketConstructor)?this._socket?this.logger.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)):this.logger.error("Missing WebSocketConstructor")}_createSocket(){return new this.WebSocketConstructor(this._host)}async disconnect(){this._socket&&!this.closing?(clearTimeout(this._checkPingTimer),this._requests.clear(),this._closeConnection("disconnected")):this.logger.warn("Session not connected or already in closing state.")}execute(e){if("idle"===this._status||!this.connected)return Promise.reject("Can't call `execute` when Session is not authorized.");let t;return t="params"in e?new Promise(((t,r)=>{this._requests.set(e.id,{rpcRequest:e,resolve:t,reject:r})})):Promise.resolve(),this.logger.wsTraffic({type:"send",payload:e}),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;this.logger.error("Request Timeout",e),this._closeConnection("reconnecting")}))}async authenticate(){const 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(mn(e))}async _onSocketOpen(e){this.logger.debug("_onSocketOpen",e.type);try{await this.authenticate(),this._status="connected",this.dispatch(Rn())}catch(e){this.logger.error("Auth Error",e),this.dispatch(Pn({error:e}))}}_onSocketError(e){this.logger.debug("_onSocketError",e),this.dispatch(Mn())}_onSocketClose(e){this.logger.debug("_onSocketClose",e.type,e.code,e.reason),this._status=e.code>=1006&&e.code<=1014?"reconnecting":"disconnected",this.dispatch(xn()),this._socket=null}_onSocketMessage(e){const t=sn(e.data);this.logger.wsTraffic({type:"recv",payload:t});const r=this._requests.get(t.id);if(r){const{rpcRequest:e,resolve:n,reject:o}=r;this._requests.delete(t.id);const{result:i,error:s}=(({response:e,request:t})=>{const{result:r={},error:n}=e;if(n)return{error:n};switch(t.method){case"signalwire.connect":return{result:r};default:return Qr(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((n=t.id,pn({id:n,result:{}}))).catch((e=>{this.logger.error("SwDisconnect Error",e)})).finally((()=>{this._status="idle"}));break;default:this.dispatch(jn(t)),this._handleWebSocketMessage(t)}var n}_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}async _pingHandler(e){var t,r,n;clearTimeout(this._checkPingTimer),this._checkPingTimer=setTimeout((()=>{this._closeConnection("reconnecting")}),this._checkPingDelay),await this.execute((r=e.id,n=null==(t=null==e?void 0:e.params)?void 0:t.timestamp,pn({id:r,result:{timestamp:n||Date.now()/1e3}})))}_closeConnection(e){this._status=e,this.dispatch(qn.authStatus("unknown")),this.dispatch(On()),this._socket&&(this._socket.close(),this._socket=null)}}{constructor(e){super(e),this.options=e,Dr(this,"_expiredDiffSeconds",0),Dr(this,"_refreshTokenNotificationDiff",120),Dr(this,"_checkTokenExpirationDelay",2e4),Dr(this,"_checkTokenExpirationTimer",null),this._checkTokenExpiration=this._checkTokenExpiration.bind(this),this.reauthenticate=this.reauthenticate.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(){const e=Math.floor(Date.now()/1e3);return this.expiresAt-e}get expired(){return this.expiresIn<=this._expiredDiffSeconds}async authenticate(){const e={agent:this.agent,version:this.connectVersion,authentication:{jwt_token:this.options.token}};if(this._relayProtocolIsValid())e.protocol=this.relayProtocol;else if(this.signature){const r=await(t=this.signature,(async(e,t)=>{if("undefined"==typeof window&&"undefined"!=typeof process)return null;const r=window.sessionStorage.getItem((e=>`@signalwire:${e}`)(t));return sn(r)})(0,t));r&&(e.protocol=r)}var t;this._rpcConnectResult=await this.execute(mn(e)),this._checkTokenExpiration()}async reauthenticate(){if(this.expired)return this.connect();const e={project:this._rpcConnectResult.authorization.project,jwt_token:this.options.token};try{this._rpcConnectResult=await this.execute((t=e,hn({method:"signalwire.reauthenticate",params:{authentication:t}})))}catch(e){throw clearTimeout(this._checkTokenExpirationTimer),e}var t}_checkTokenExpiration(){this.expiresAt&&(this.expiresIn<=this._refreshTokenNotificationDiff&&(this.options._onRefreshToken?this.options._onRefreshToken():this.logger.error("The token is going to expire!")),clearTimeout(this._checkTokenExpirationTimer),this.expired||(this._checkTokenExpirationTimer=setTimeout(this._checkTokenExpiration,this._checkTokenExpirationDelay)))}}{WebSocketConstructor=WebSocket;agent="@signalwire/js/3.6.0-dev.202111170816.f436d5f.0"}const Zi=e=>{const t={...e,emitter:new Er},r=(e=>{var t;const{userOptions:r,SessionConstructor:n,preloadedState:o={},runSagaMiddleware:i=!0}=e,s=_r(),a=Le({devTools:null==(t=null==r?void 0:r.devTools)||t,reducer:Xn,preloadedState:o,middleware:e=>e().concat(s)});if(i){const e=(e=>function*(t){t.logger&&(qr=t.logger),t.debug&&(e=>{null!=e?Object.assign(Br,e):Br={}})(t.debug),yield Nt(co),yield jt(En.type);try{yield Dt(fo,e.SessionConstructor,t)}catch(e){return}})({SessionConstructor:n});s.run(e,r)}return jr(Mr({},a),{runSaga:s.run})})({userOptions:t,SessionConstructor:Yi});return bo({store:r,Component:Xi,componentListeners:{errors:"onError",responses:"onSuccess",id:"onClientSubscribed"}})(t)},es={aspectRatio:{ideal:16/9}},ts=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=Zi({...h});if(await p.connect(),!p)return;let f;if(s){const e=document.getElementById(s);e?f=e:(f=document.body,zr().warn(`We couldn't find an element with id: ${s}: using 'document.body' instead.`))}const m=p.rooms.makeRoomObject({audio:n,video:!0===o?es: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)})),rs={aspectRatio:{ideal:16/9}},ns=["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 os=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=Zi(u),l=d.rooms.makeRoomObject({audio:t,video:!0===r?rs:r,negotiateAudio:!0,negotiateVideo:!0,iceServers:n,rootElement:o,applyLocalVideoOverlay:i,stopCameraWhileMuted:s,stopMicrophoneWhileMuted:a,speakerId:c});l.once("destroy",(()=>{d.disconnect()}));const h=()=>new Promise((async(e,t)=>{try{await d.connect(),l.once("room.subscribed",(()=>{e(l)})),await l.join()}catch(e){zr().error("RoomSession Join",e),t(e)}}));return new Proxy(l,{get(e,t,r){if("join"===t)return h;if(!e.active&&ns.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:ts,joinRoom:e=>ts({...e,autoJoin:!0}),createClient:Zi}),is=Object.freeze({__proto__:null,getDevices:wi,getCameraDevices:()=>wi("camera"),getMicrophoneDevices:()=>wi("microphone"),getSpeakerDevices:()=>wi("speaker"),getDevicesWithPermissions:_i,getCameraDevicesWithPermissions:()=>_i("camera"),getMicrophoneDevicesWithPermissions:()=>_i("microphone"),getSpeakerDevicesWithPermissions:()=>_i("speaker"),checkPermissions:vi,checkCameraPermissions:gi,checkMicrophonePermissions:yi,checkSpeakerPermissions:bi,requestPermissions:async e=>{try{const t=await oi(e);hi(t)}catch(e){throw e}},createDeviceWatcher:Pi,createCameraDeviceWatcher:()=>Pi({targets:["camera"]}),createMicrophoneDeviceWatcher:()=>Pi({targets:["microphone"]}),createSpeakerDeviceWatcher:()=>Pi({targets:["speaker"]}),supportsMediaDevices:ri,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:oi,getDisplayMedia:ii,enumerateDevices:si,getSupportedConstraints:ci,supportsMediaOutput:di,setMediaElementSinkId:li,stopStream:hi,stopTrack:pi});e.Video=os,e.WebRTC=is,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="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r={exports:{}};!function(e){var r,n;r=t,n=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;r=null==r?"WARN":r;var 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){r=e,d()||s.setLevel(e,!1)},s.resetLevel=function(){s.setLevel(r,!1),function(){if(typeof window!==t&&c){try{return void window.localStorage.removeItem(c)}catch(e){}try{window.document.cookie=encodeURIComponent(c)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}()},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=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=n():r.log=n()}(r);var n,o=r.exports,i=new Uint8Array(16);function s(){if(!n&&!(n="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 n(i)}var a=/^(?:[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 c(e){return"string"==typeof e&&a.test(e)}for(var u=[],d=0;d<256;++d)u.push((d+256).toString(16).substr(1));function l(e,t,r){var n=(e=e||{}).random||(e.rng||s)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(var o=0;o<16;++o)t[r+o]=n[o];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=(u[e[t+0]]+u[e[t+1]]+u[e[t+2]]+u[e[t+3]]+"-"+u[e[t+4]]+u[e[t+5]]+"-"+u[e[t+6]]+u[e[t+7]]+"-"+u[e[t+8]]+u[e[t+9]]+"-"+u[e[t+10]]+u[e[t+11]]+u[e[t+12]]+u[e[t+13]]+u[e[t+14]]+u[e[t+15]]).toLowerCase();if(!c(r))throw TypeError("Stringified UUID is invalid");return r}(n)}function h(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 p(e){return!!e&&!!e[Z]}function f(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)===ee}(e)||Array.isArray(e)||!!e[Y]||!!e.constructor[Y]||_(e)||w(e))}function m(e,t,r){void 0===r&&(r=!1),0===g(e)?(r?Object.keys:te)(e).forEach((function(n){r&&"symbol"==typeof n||t(n,e[n],e)})):e.forEach((function(r,n){return t(n,r,e)}))}function g(e){var t=e[Z];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:_(e)?2:w(e)?3:0}function v(e,t){return 2===g(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function y(e,t,r){var n=g(e);2===n?e.set(t,r):3===n?(e.delete(t),e.add(r)):e[t]=r}function b(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function _(e){return Q&&e instanceof Map}function w(e){return J&&e instanceof Set}function S(e){return e.o||e.t}function k(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=re(e);delete t[Z];for(var r=te(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 E(e,t){return void 0===t&&(t=!1),T(e)||p(e)||!f(e)||(g(e)>1&&(e.set=e.add=e.clear=e.delete=C),Object.freeze(e),t&&m(e,(function(e,t){return E(t,!0)}),!0)),e}function C(){h(2)}function T(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function O(e){var t=ne[e];return t||h(18,e),t}function I(){return H}function P(e,t){t&&(O("Patches"),e.u=[],e.s=[],e.v=t)}function A(e){R(e),e.p.forEach(x),e.p=null}function R(e){e===H&&(H=e.l)}function M(e){return H={p:[],l:H,h:e,m:!0,_:0}}function x(e){var t=e[Z];0===t.i||1===t.i?t.j():t.O=!0}function j(e,t){t._=t.p.length;var r=t.p[0],n=void 0!==e&&e!==r;return t.h.g||O("ES5").S(t,e,n),n?(r[Z].P&&(A(t),h(4)),f(e)&&(e=L(t,e),t.l||N(t,e)),t.u&&O("Patches").M(r[Z],e,t.u,t.s)):e=L(t,r,[]),A(t),t.u&&t.v(t.u,t.s),e!==X?e:void 0}function L(e,t,r){if(T(t))return t;var n=t[Z];if(!n)return m(t,(function(o,i){return D(e,n,t,o,i,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return N(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var o=4===n.i||5===n.i?n.o=k(n.k):n.o;m(3===n.i?new Set(o):o,(function(t,i){return D(e,n,o,t,i,r)})),N(e,o,!1),r&&e.u&&O("Patches").R(n,r,e.u,e.s)}return n.o}function D(e,t,r,n,o,i){if(p(o)){var s=L(e,o,i&&t&&3!==t.i&&!v(t.D,n)?i.concat(n):void 0);if(y(r,n,s),!p(s))return;e.m=!1}if(f(o)&&!T(o)){if(!e.h.F&&e._<1)return;L(e,o),t&&t.A.l||N(e,o)}}function N(e,t,r){void 0===r&&(r=!1),e.h.F&&e.m&&E(t,r)}function V(e,t){var r=e[Z];return(r?S(r):e)[t]}function W(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 $(e){e.P||(e.P=!0,e.l&&$(e.l))}function U(e){e.o||(e.o=k(e.t))}function F(e,t,r){var n=_(t)?O("MapSet").N(t,r):w(t)?O("MapSet").T(t,r):e.g?function(e,t){var r=Array.isArray(e),n={i:r?1:0,A:t?t.A:I(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=n,i=oe;r&&(o=[n],i=ie);var s=Proxy.revocable(o,i),a=s.revoke,c=s.proxy;return n.k=c,n.j=a,c}(t,r):O("ES5").J(t,r);return(r?r.A:I()).p.push(n),n}function q(e){return p(e)||h(22,e),function e(t){if(!f(t))return t;var r,n=t[Z],o=g(t);if(n){if(!n.P&&(n.i<4||!O("ES5").K(n)))return n.t;n.I=!0,r=z(t,o),n.I=!1}else r=z(t,o);return m(r,(function(t,o){n&&function(e,t){return 2===g(e)?e.get(t):e[t]}(n.t,t)===o||y(r,t,e(o))})),3===o?new Set(r):r}(e)}function z(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return k(e)}var B,H,K="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),Q="undefined"!=typeof Map,J="undefined"!=typeof Set,G="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,X=K?Symbol.for("immer-nothing"):((B={})["immer-nothing"]=!0,B),Y=K?Symbol.for("immer-draftable"):"__$immer_draftable",Z=K?Symbol.for("immer-state"):"__$immer_state",ee=""+Object.prototype.constructor,te="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,re=Object.getOwnPropertyDescriptors||function(e){var t={};return te(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)})),t},ne={},oe={get:function(e,t){if(t===Z)return e;var r=S(e);if(!v(r,t))return function(e,t,r){var n,o=W(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||!f(n)?n:n===V(e.t,t)?(U(e),e.o[t]=F(e.A.h,n,e)):n},has:function(e,t){return t in S(e)},ownKeys:function(e){return Reflect.ownKeys(S(e))},set:function(e,t,r){var n=W(S(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=V(S(e),t),i=null==o?void 0:o[Z];if(i&&i.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(b(r,o)&&(void 0!==r||v(e.t,t)))return!0;U(e),$(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!==V(e.t,t)||t in e.t?(e.D[t]=!1,U(e),$(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=S(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(){h(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){h(12)}},ie={};m(oe,(function(e,t){ie[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),ie.deleteProperty=function(e,t){return oe.deleteProperty.call(this,e[0],t)},ie.set=function(e,t,r){return oe.set.call(this,e[0],t,r,e[0])};var se=new(function(){function e(e){var t=this;this.g=G,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&&h(6),void 0!==n&&"function"!=typeof n&&h(7),f(e)){var a=M(t),c=F(t,e,void 0),u=!0;try{s=r(c),u=!1}finally{u?A(a):R(a)}return"undefined"!=typeof Promise&&s instanceof Promise?s.then((function(e){return P(a,n),j(e,a)}),(function(e){throw A(a),e})):(P(a,n),j(s,a))}if(!e||"object"!=typeof e){if((s=r(e))===X)return;return void 0===s&&(s=e),t.F&&E(s,!0),s}h(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){f(e)||h(8),p(e)&&(e=q(e));var t=M(this),r=F(this,e,void 0);return r[Z].C=!0,R(t),r},t.finishDraft=function(e,t){var r=(e&&e[Z]).A;return P(r,t),j(void 0,r)},t.setAutoFreeze=function(e){this.F=e},t.setUseProxies=function(e){e&&!G&&h(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}}r>-1&&(t=t.slice(r+1));var o=O("Patches").$;return p(e)?o(e,t):this.produce(e,(function(e){return o(e,t)}))},e}()),ae=se.produce;se.produceWithPatches.bind(se),se.setAutoFreeze.bind(se),se.setUseProxies.bind(se),se.applyPatches.bind(se),se.createDraft.bind(se),se.finishDraft.bind(se);var ce=ae;function ue(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function de(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 le(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?de(Object(r),!0).forEach((function(t){ue(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):de(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function he(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 pe="function"==typeof Symbol&&Symbol.observable||"@@observable",fe=function(){return Math.random().toString(36).substring(7).split("").join(".")},me={INIT:"@@redux/INIT"+fe(),REPLACE:"@@redux/REPLACE"+fe(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+fe()}};function ge(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 ve(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error(he(0));if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error(he(1));return r(ve)(e,t)}if("function"!=typeof e)throw new Error(he(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(he(3));return i}function l(e){if("function"!=typeof e)throw new Error(he(4));if(c)throw new Error(he(5));var t=!0;return u(),a.push(e),function(){if(t){if(c)throw new Error(he(6));t=!1,u();var r=a.indexOf(e);a.splice(r,1),s=null}}}function h(e){if(!ge(e))throw new Error(he(7));if(void 0===e.type)throw new Error(he(8));if(c)throw new Error(he(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(he(10));o=e,h({type:me.REPLACE})}function f(){var e,t=l;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new Error(he(11));function r(){e.next&&e.next(d())}return r(),{unsubscribe:t(r)}}})[pe]=function(){return this},e}return h({type:me.INIT}),(n={dispatch:h,subscribe:l,getState:d,replaceReducer:p})[pe]=f,n}function ye(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:me.INIT}))throw new Error(he(12));if(void 0===r(void 0,{type:me.PROBE_UNKNOWN_ACTION()}))throw new Error(he(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(he(14));o[c]=d,n=n||d!==u}return(n=n||s.length!==Object.keys(e).length)?o:e}}function be(){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(he(15))},o={getState:r.getState,dispatch:function(){return n.apply(void 0,arguments)}},i=t.map((function(e){return e(o)}));return n=be.apply(void 0,i)(r.dispatch),le(le({},r),{},{dispatch:n})}}}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)}}}}var Se=we();Se.withExtraArgument=we;var ke,Ee=Se,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)}),Te=function(e,t){for(var r=0,n=t.length,o=e.length;r<n;r++,o++)e[o]=t[r];return e},Oe=Object.defineProperty,Ie=Object.getOwnPropertySymbols,Pe=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,Re=function(e,t,r){return t in e?Oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},Me=function(e,t){for(var r in t||(t={}))Pe.call(t,r)&&Re(e,r,t[r]);if(Ie)for(var n=0,o=Ie(t);n<o.length;n++)Ae.call(t,r=o[n])&&Re(e,r,t[r]);return e},xe="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?be:be.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,Te([void 0],e[0].concat(this)))):new(t.bind.apply(t,Te([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(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,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;var t=Object.getPrototypeOf(e);if(null===t)return!0;for(var r=t;null!==Object.getPrototypeOf(r);)r=Object.getPrototypeOf(r);return t===r}(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=ye(i)}var f=a;"function"==typeof f&&(f=f(r));var m=_e.apply(void 0,f),g=be;u&&(g=xe(Me({trace:!1},"object"==typeof u&&u)));var v=[m];return Array.isArray(p)?v=Te([m],p):"function"==typeof p&&(v=p(v)),ve(t,l,g.apply(void 0,v))}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 Me(Me({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(){function e(e,t){var r=o[e];return r?r.enumerable=t:o[e]=r={configurable:!0,enumerable:t,get:function(){return oe.get(this[Z],e)},set:function(t){oe.set(this[Z],e,t)}},r}function t(e){for(var t=e.length-1;t>=0;t--){var o=e[t][Z];if(!o.P)switch(o.i){case 5:n(o)&&$(o);break;case 4:r(o)&&$(o)}}}function r(e){for(var t=e.t,r=e.k,n=te(r),o=n.length-1;o>=0;o--){var i=n[o];if(i!==Z){var s=t[i];if(void 0===s&&!v(t,i))return!0;var a=r[i],c=a&&a[Z];if(c?c.t!==s:!b(a,s))return!0}}var u=!!t[Z];return n.length!==te(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){ne.ES5||(ne.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=re(r);delete i[Z];for(var s=te(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:I(),P:!1,I:!1,D:{},l:r,t:t,k:o,o:null,O:!1,C:!1};return Object.defineProperty(o,Z,{value:i,writable:!0}),o},S:function(e,r,o){o?p(r)&&r[Z].A===e&&t(e.p):(e.u&&function e(t){if(t&&"object"==typeof t){var r=t[Z];if(r){var o=r.t,i=r.k,s=r.D,a=r.i;if(4===a)m(i,(function(t){t!==Z&&(void 0!==o[t]||v(o,t)?s[t]||e(i[t]):(s[t]=!0,$(r)))})),m(o,(function(e){void 0!==i[e]||v(i,e)||(s[e]=!1,$(r))}));else if(5===a){if(n(r)&&($(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 Ve=function(e){return"@@redux-saga/"+e},We=Ve("CANCEL_PROMISE"),$e=Ve("CHANNEL_END"),Ue=Ve("IO"),Fe=Ve("MATCH"),qe=Ve("MULTICAST"),ze=Ve("SAGA_ACTION"),Be=Ve("SELF_CANCELLATION"),He=Ve("TASK"),Ke=Ve("TASK_CANCEL"),Qe=Ve("TERMINATE"),Je=Ve("LOCATION");function Ge(){return(Ge=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 Xe=function(e){return null==e},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};function at(e,t){var r;void 0===t&&(t=!0);var n=new Promise((function(n){r=setTimeout(n,e,t)}));return n[We]=function(){clearTimeout(r)},n}var ct=function(e){return function(){return!0}}(),ut=function(){},dt=function(e){return e},lt=function(e,t){Ge(e,t),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach((function(r){e[r]=t[r]}))};function ht(e,t){var r=e.indexOf(t);r>=0&&e.splice(r,1)}function pt(e){var t=!1;return function(){t||(t=!0,e())}}var ft=function(e){throw e},mt=function(e){return{value:e,done:!0}};function gt(e,t,r){void 0===t&&(t=ft),void 0===r&&(r="iterator");var n={meta:{name:r},next:e,throw:t,return:mt,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))},bt=function(e){return function(t){return e(Object.defineProperty(t,ze,{value:!0}))}},_t=function(e){return e===Qe},wt=function(e){return e===Ke},St=function(e){return _t(e)||wt(e)};function kt(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=ut,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:Ct(e)}}function Ct(e){return e[Je]}var Tt={isEmpty:ct,put:ut,take:ut},Ot="TAKE",It="CALL",Pt="FORK",At="SELECT",Rt=function(e,t){var r;return(r={})[Ue]=!0,r.combinator=!1,r.type=e,r.payload=t,r},Mt=function(e){return Rt(Pt,Ge({},e.payload,{detached:!0}))};function xt(e,t){return void 0===e&&(e="*"),ot(e)?Rt(Ot,{pattern:e}):it(r=e)&&r[qe]&&Ye(t)&&ot(t)?Rt(Ot,{channel:e,pattern:t}):it(e)?Rt(Ot,{channel:e}):void 0;var r}function jt(e,t){return Xe(t)&&(t=e,e=void 0),Rt("PUT",{channel:e,action:t})}function Lt(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 Dt(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 Rt(It,Lt(e,r))}function Nt(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 Rt(Pt,Lt(e,r))}function Vt(e){void 0===e&&(e=dt);for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Rt(At,{selector:e,args:r})}var Wt=Dt.bind(null,at),$t=[],Ut=0;function Ft(e){try{Bt(),e()}finally{Ht()}}function qt(e){$t.push(e),Ut||(Bt(),Kt())}function zt(e){try{return Bt(),e()}finally{Kt()}}function Bt(){Ut++}function Ht(){Ut--}function Kt(){var e;for(Ht();!Ut&&void 0!==(e=$t.shift());)Ft(e)}var Qt=function(e){return function(t){return e.some((function(e){return Zt(e)(t)}))}},Jt=function(e){return function(t){return e(t)}},Gt=function(e){return function(t){return t.type===String(e)}},Xt=function(e){return function(t){return t.type===e}},Yt=function(){return ct};function Zt(e){var t="*"===e?Yt:et(e)?Gt:tt(e)?Qt:function(e){return Ze(e)&&e.hasOwnProperty("toString")}(e)?Gt:Ze(e)?Jt:st(e)?Xt:null;if(null===t)throw new Error("invalid pattern: "+e);return t(e)}var er={type:$e},tr=function(e){return e&&e.type===$e};function rr(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(er):e.isEmpty()?(r.push(n),n.cancel=function(){ht(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(er):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])(er)}}}}function nr(){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(er)}))},(e={})[qe]=!0,e.put=function(e){if(!t)if(tr(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=Yt),t?e(er):(e[Fe]=r,o(),n.push(e),e.cancel=pt((function(){o(),ht(n,e)})))},e.close=i,e),a=s.put;return s.put=function(e){e[ze]?a(e):qt((function(){a(e)}))},s}function or(e,t){var r=e[We];Ze(r)&&(t.cancel=r),e.then(t,(function(e){t(e,!0)}))}var ir,sr=0,ar=function(){return++sr};function cr(e){e.isRunning()&&e.cancel()}var ur=((ir={}).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):!tr(e)||s?r(e):r(Qe)};try{o.take(a,Ye(i)?Zt(i):null)}catch(e){return void r(e,!0)}r.cancel=a.cancel},ir.PUT=function(e,t,r){var n=t.channel,o=t.action,i=t.resolve;qt((function(){var t;try{t=(n?n.put:e.dispatch)(o)}catch(e){return void r(e,!0)}i&&rt(t)?or(t,r):r(t)}))},ir.ALL=function(e,t,r,n){var o=n.digestEffect,i=sr,s=Object.keys(t);if(0!==s.length){var a=kt(t,r);s.forEach((function(e){o(t[e],i,a[e],e)}))}else r(tt(t)?[]:{})},ir.RACE=function(e,t,r,n){var o=n.digestEffect,i=sr,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=ut,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)}))},ir.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 or(c,r);if(nt(c))return void yr(e,c,a.context,sr,Et(i),!1,r);r(c)}catch(e){r(e,!0)}},ir.CPS=function(e,t,r){var n=t.context,o=t.fn,i=t.args;try{var s=function(e,t){Xe(e)?r(t):r(e,!0)};o.apply(n,i.concat(s)),s.cancel&&(r.cancel=s.cancel)}catch(e){r(e,!0)}},ir.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 gt((function(e){return i?{value:e,done:!0}:(i=!0,{value:o,done:!rt(o)})}))}catch(e){return gt((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);zt((function(){var t=yr(e,a,s.context,sr,c,i,void 0);i?r(t):t.isRunning()?(s.queue.addTask(t),r(t)):t.isAborted()?s.queue.abort(t.error()):r(t)}))},ir.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()&&ht(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=kt(t,r);t.forEach((function(e,t){i(e,s[t])}))}else i(t,r)},ir.CANCEL=function(e,t,r,n){t===Be?cr(n.task):tt(t)?t.forEach(cr):cr(t),r()},ir.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)}},ir.ACTION_CHANNEL=function(e,t,r){var n=t.pattern,o=rr(t.buffer),i=Zt(n),s=function t(r){tr(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)},ir.CANCELLED=function(e,t,r,n){r(n.task.isCancelled())},ir.FLUSH=function(e,t,r){t.flush(r)},ir.GET_CONTEXT=function(e,t,r,n){r(n.task.context[t])},ir.SET_CONTEXT=function(e,t,r,n){lt(n.task.context,t),r()},ir);function dr(e,t){return e+"?"+t}function lr(e){var t=e.name,r=e.location;return r?t+" "+dr(r.fileName,r.lineNumber):t}function hr(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 pr=null,fr=[],mr=function(e){e.crashedEffect=pr,fr.push(e)},gr=function(){pr=null,fr.length=0},vr=function(){var e,t=fr[0],r=fr.slice(1),n=t.crashedEffect?(e=Ct(t.crashedEffect))?e.code+" "+dr(e.fileName,e.lineNumber):"":null;return["The above error occurred in task "+lr(t.meta)+(n?" \n when executing effect "+n:"")].concat(r.map((function(e){return" created by "+lr(e.meta)})),[hr(fr)]).join("\n")};function yr(e,t,r,n,o,i,s){var a=e.finalizeRunEffect((function(t,r,n){rt(t)?or(t,n):nt(t)?yr(e,t,u.context,r,o,!1,n):t&&t[Ue]?(0,ur[t.type])(e,t.payload,n,d):n(t)}));l.cancel=ut;var c={meta:o,cancel:function(){0===c.status&&(c.status=1,l(Ke))},status:0},u=function(e,t,r,n,o,i,s){var a;void 0===s&&(s=ut);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||(ht(o,t),t.cont=ut,c?s(a):(t===e&&(n=a),o.length||(i=!0,r(n))))}}function c(){i||(i=!0,o.forEach((function(e){e.cont=ut,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,mr({meta:o,cancelledTasks:h}),g.isRoot){var n=vr();gr(),e.onError(t,{sagaStack:n})}u=t,l&&l.reject(t)}else t===Ke?d=1:1!==d&&(d=3),c=t,l&&l.resolve(t);g.cont(t,r),g.joiners.forEach((function(e){e.cb(t,r)})),g.joiners=null}var g=((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(Ke,!1))},a.cont=s,a.end=m,a.setContext=function(e){lt(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 g}(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),gr()):wt(e)?(c.status=1,l.cancel(),o=Ze(t.return)?t.return(Ke):{done:!0,value:Ke}):o=_t(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=ar();function c(r,o){i||(i=!0,n.cancel=ut,e.sagaMonitor&&(o?e.sagaMonitor.effectRejected(s,r):e.sagaMonitor.effectResolved(s,r)),o&&function(e){pr=e}(t),n(r,o))}e.sagaMonitor&&e.sagaMonitor.effectTriggered({effectId:s,parentEffectId:r,label:o,effect:t}),c.cancel=ut,n.cancel=function(){i||(i=!0,c.cancel(),c.cancel=ut,e.sagaMonitor&&e.sagaMonitor.effectCancelled(s))},a(t,s,c)}}function br(e,t){for(var r=e.channel,n=void 0===r?nr():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,g=t.apply(void 0,p),v=ar();if(c&&(c.rootSagaStarted=c.rootSagaStarted||ut,c.effectTriggered=c.effectTriggered||ut,c.effectResolved=c.effectResolved||ut,c.effectRejected=c.effectRejected||ut,c.effectCancelled=c.effectCancelled||ut,c.actionDispatched=c.actionDispatched||ut,c.rootSagaStarted({effectId:v,saga:t,args:p})),u){var y=be.apply(void 0,u);m=function(e){return function(t,r,n){return y((function(t){return e(t,r,n)}))(t)}}}else m=dt;var b={channel:n,dispatch:bt(o),getState:i,sagaMonitor:c,onError:l,finalizeRunEffect:m};return zt((function(){var e=yr(b,g,a,v,Et(t),!0,void 0);return c&&c.effectResolved(v,e),e}))}function _r(e){var t,r=void 0===e?{}:e,n=r.context,o=void 0===n?{}:n,i=r.channel,s=void 0===i?nr():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=br.bind(null,Ge({},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){lt(o,e)},u}var wr={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}(wr);var Sr=wr.exports,kr=Object.defineProperty,Er=Object.defineProperties,Cr=Object.getOwnPropertyDescriptors,Tr=Object.getOwnPropertySymbols,Or=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Pr=(e,t,r)=>t in e?kr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ar=(e,t)=>{for(var r in t||(t={}))Or.call(t,r)&&Pr(e,r,t[r]);if(Tr)for(var r of Tr(t))Ir.call(t,r)&&Pr(e,r,t[r]);return e},Rr=(e,t)=>Er(e,Cr(t)),Mr=(e,t)=>{var r={};for(var n in e)Or.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Tr)for(var n of Tr(e))t.indexOf(n)<0&&Ir.call(e,n)&&(r[n]=e[n]);return r},xr=(e,t)=>{for(var r in t)kr(e,r,{get:t[r],enumerable:!0})},jr=(e,t,r)=>(Pr(e,"symbol"!=typeof t?t+"":t,r),r),Lr="__local__",Dr=["room.started","room.ended"].map((e=>`video.${e}`)),Nr=()=>(new Date).toISOString().replace("T"," ").replace("Z",""),Vr=o.getLogger("signalwire"),Wr=Vr.methodFactory;Vr.methodFactory=(e,t,r)=>{const n=Wr(e,t,r);return function(){const e=[Nr(),"-"];for(let t=0;t<arguments.length;t++)e.push(arguments[t]);n.apply(void 0,e)}};var $r,Ur=Vr.getLevel();Vr.setLevel(Ur);var Fr={},qr=()=>null!=$r?$r:Vr,zr=({type:e,payload:t})=>{const r=qr(),{logWsTraffic:n}=Fr||{};if(!n)return;const o=(e=>!("method"in e)||"signalwire.ping"!==e.method)(t)?JSON.stringify(t,null,2):t;return r.info(`${e.toUpperCase()}: \n`,o,"\n")},Br=()=>{const e=qr();return new Proxy(e,{get:(e,t,r)=>"wsTraffic"===t?zr:Reflect.get(e,t,r)})},Hr=(e,t)=>{const{result:r={},error:n}=e;if(n)return{error:n};const{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?Hr(s,i):{result:s}:{result:r}},Kr={propsToUpdateValue:["updated","layers","members","recordings","playbacks"]},Qr=(e,t=Kr)=>Object.entries(e).reduce(((e,[r,n])=>{const o=Jr(r);return e[o]="object"==typeof n&&n?Array.isArray(n)?t.propsToUpdateValue.includes(r)?n.map((e=>"string"==typeof e?Jr(e):Qr(e))):n:Qr(n):(e=>e.endsWith("At"))(o)?(e=>{if(void 0===e)return e;const t=new Date(1e3*e);return isNaN(t.getTime())?e:t})(n):n,e}),{}),Jr=e=>e.includes("_")?e.split("_").reduce(((e,t,r)=>{const n=t.trim().charAt(0),o=t.substr(1).toLowerCase();return`${e}${0===r?n.toLowerCase():n.toUpperCase()}${o}`}),""):e,Gr=({event:e,namespace:t})=>("string"==typeof e&&(e=Zr({event:e,namespace:t}),e=Yr(e)),e),Xr=/[A-Z]/g,Yr=e=>e.replace(Xr,(e=>`_${e.toLowerCase()}`)),Zr=({namespace:e,event:t})=>!e||t.startsWith(e)?t:`${e}:${t}`,en=(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),tn=({instance:e,transform:t,payload:r,transformedPayload:n})=>new Proxy(e,{get:(e,o,i)=>"toString"===o?(({property:e,payload:t})=>"function"==typeof e?()=>JSON.stringify(t):e)({property:e[o],payload:n}):"_eventsNamespace"===o&&t.getInstanceEventNamespace?t.getInstanceEventNamespace(r):"eventChannel"===o&&t.getInstanceEventChannel?t.getInstanceEventChannel(r):o in n?n[o]:Reflect.get(e,o,i)}),rn=new Map,nn=[{field:"members",preProcessPayload:e=>({member:e}),eventTransformType:"roomSessionMember"},{field:"recordings",preProcessPayload:e=>({recording:e}),eventTransformType:"roomSessionRecording"}],on=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch(t){return e}},sn=/^(ws|wss):\/\//,an=["video.member.updated","video.member.talking"],cn=["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"],un=e=>e.includes(Lr),dn=e=>{const t=e.split(".")[0];return e.split(".").reduce(((e,r)=>(e.push(r),r===t&&e.push(Lr),e)),[]).join(".")},ln=e=>{var t;return Ar({jsonrpc:"2.0",id:null!=(t=e.id)?t:l()},e)},hn=e=>Ar({jsonrpc:"2.0"},e),pn={major:3,minor:0,revision:0},fn=e=>ln({method:"signalwire.connect",params:Ar({version:pn},e)}),mn={id:"callID",destinationNumber:"destination_number",remoteCallerName:"remote_caller_id_name",remoteCallerNumber:"remote_caller_id_number",callerName:"caller_id_name",callerNumber:"caller_id_number"},gn=e=>{if(e.hasOwnProperty("dialogParams")){const t=Mr(e.dialogParams,["remoteSdp","localStream","remoteStream"]);for(const e in mn)e&&t.hasOwnProperty(e)&&(t[mn[e]]=t[e],delete t[e]);e.dialogParams=t}return e},vn=e=>(t={})=>ln({method:e,params:gn(t)}),yn=vn("verto.invite"),bn=vn("verto.bye"),_n=vn("verto.info"),wn=(e,t)=>hn({id:e,result:{method:t}}),Sn={};xr(Sn,{authErrorAction:()=>In,authSuccessAction:()=>Pn,closeConnectionAction:()=>Cn,createAction:()=>De,destroyAction:()=>En,executeAction:()=>On,getCustomSagaActionType:()=>Vn,initAction:()=>kn,makeCustomSagaAction:()=>Nn,reauthAction:()=>Tn,sessionConnectedAction:()=>xn,sessionDisconnectedAction:()=>jn,sessionReconnectingAction:()=>Ln,socketClosedAction:()=>An,socketErrorAction:()=>Rn,socketMessageAction:()=>Mn});var kn=De("swSdk/init"),En=De("swSdk/destroy"),Cn=De("swSdk/closeConnection"),Tn=De("swSdk/reauth"),On=De("swSdk/executeRequest"),In=De("auth/error"),Pn=De("auth/success"),An=De("socket/closed"),Rn=De("socket/error"),Mn=De("socket/message"),xn=De("session.connected"),jn=De("session.disconnected"),Ln=De("session.reconnecting"),Dn=(e,t)=>`${t.type}/${e}`,Nn=(e,t)=>Rr(Ar({},t),{type:Dn(e,t)}),Vn=(e,t)=>Dn(e,t),Wn=({name:e="",initialState:t,reducers:r,extraReducers:n})=>function(e){var t=e.name;if(!t)throw new Error("`name` is a required option for createSlice");var r,n="function"==typeof e.initialState?e.initialState:ce(e.initialState,(function(){})),o=e.reducers||{},i=Object.keys(o),s={},a={},c={};function u(){var t="function"==typeof e.extraReducers?Ne(e.extraReducers):[e.extraReducers],r=t[0],o=t[1],i=void 0===o?[]:o,s=t[2],c=void 0===s?void 0:s,u=Me(Me({},void 0===r?{}:r),a);return function(e,t,r,n){void 0===r&&(r=[]);var o,i="function"==typeof t?Ne(t):[t,r,n],s=i[0],a=i[1],c=i[2];if(function(e){return"function"==typeof e}(e))o=function(){return ce(e(),(function(){}))};else{var u=ce(e,(function(){}));o=function(){return u}}function d(e,t){void 0===e&&(e=o());var r=Te([s[t.type]],a.filter((function(e){return(0,e.matcher)(t)})).map((function(e){return e.reducer})));return 0===r.filter((function(e){return!!e})).length&&(r=[c]),r.reduce((function(e,r){if(r){var n;if(p(e))return void 0===(n=r(e,t))?e:n;if(f(e))return ce(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)}return d.getInitialState=o,d}(n,u,i,c)}return i.forEach((function(e){var r,n,i=o[e],u=t+"/"+e;"reducer"in i?(r=i.reducer,n=i.prepare):r=i,s[e]=r,a[u]=r,c[e]=n?De(u,n):De(u)})),{name:t,reducer:function(e,t){return r||(r=u()),r(e,t)},actions:c,caseReducers:s,getInitialState:function(){return r||(r=u()),r.getInitialState()}}}({name:e,initialState:t,reducers:r,extraReducers:e=>{e.addCase(En.type,(()=>t)),"function"==typeof n&&n(e)}}),$n=Wn({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(In.type,((e,{payload:t})=>{e.authStatus="unauthorized",e.authError=t.error}))}}),{actions:Un,reducer:Fn}=$n,qn=Wn({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})=>{var r,n;const{componentId:o,requestId:i,response:s}=t;null!=(r=e.byId)[o]||(r[o]={id:o}),null!=(n=e.byId[o]).responses||(n.responses={}),e.byId[o].responses[i]=s},executeFailure:(e,{payload:t})=>{var r,n;const{componentId:o,requestId:i,error:s,action:a}=t;null!=(r=e.byId)[o]||(r[o]={id:o}),null!=(n=e.byId[o]).errors||(n.errors={}),e.byId[o].errors[i]={action:a,jsonrpc:s}},cleanup:(e,{payload:t})=>{t.ids.forEach((t=>{delete e.byId[t]}))}}}),{actions:zn,reducer:Bn}=qn,Hn={queue:[]},Kn=Wn({name:"executeQueue",initialState:Hn,reducers:{add:(e,{payload:t})=>{e.queue.push(t)},clean:()=>Hn}}),{actions:Qn,reducer:Jn}=Kn,Gn=ye({components:Bn,session:Fn,executeQueue:Jn});xr({},{createCatchableSaga:()=>Zn,createRestartableSaga:()=>Xn});var Xn=e=>function*(){!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];Mt(Nt.apply(void 0,[e].concat(r)))}((function*(){for(;;)try{Br().debug("Run a restartable saga"),yield Dt(e),Br().debug("One of the restartable saga has ended. Restarting..")}catch(e){Br().error("Restartable Saga Error",e)}}))},Yn=e=>Br().error("Catchable Saga Error",e),Zn=(e,t=Yn)=>function*(...r){try{yield Dt(e,...r)}catch(e){t(e)}},eo={};xr(eo,{getAuthError:()=>oo,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=({session:e})=>e.authError,io=({components:e},t)=>{var r;return null==(r=e.byId)?void 0:r[t]},so=e=>{const t=(({components:e})=>e.byId)(e);let r=[];return Object.keys(t).forEach((e=>{(t[e].responses||t[e].errors)&&r.push(e)})),r};function*ao(e){function*t(t){if("authorized"!==(yield Vt(no)))return;const{componentId:r,requestId:n,method:o,params:i}=t.payload;try{const s=(({method:e,params:t})=>ln({method:e,params:t}))({id:n,method:o,params:i}),a=yield Dt(e.execute,s);r&&n&&(yield jt(zn.executeSuccess({componentId:r,requestId:n,response:a})))}catch(e){Br().warn("worker error",r,e),r&&n&&(yield jt(zn.executeFailure({componentId:r,requestId:n,action:t,error:e})))}finally{if((yield Rt("CANCELLED",{}))&&r&&n){const e={jsonrpc:"2.0",id:n,error:{code:-32600,message:"Cancelled task"}};Br().debug("executeActionWorker cancelled",{requestId:n,componentId:r,error:e}),yield jt(zn.executeFailure({componentId:r,requestId:n,action:t,error:e}))}}}for(;;){const e=yield xt(On.type);yield Nt(t,e)}}function*co({session:e,sessionChannel:t,pubSubChannel:r}){function*n({jsonrpc:t,nodeId:r}){var n,o;const{id:i,method:s,params:a={}}=t;switch(s){case"verto.media":{const e={id:a.callID,state:"early",remoteSDP:a.sdp,nodeId:r};yield jt(zn.upsert(e)),yield jt(On({method:"video.message",params:{message:wn(i,s),node_id:r}}));break}case"verto.answer":{const e={id:a.callID,state:"active",nodeId:r};(null==a?void 0:a.sdp)&&(e.remoteSDP=a.sdp),yield jt(zn.upsert(e)),yield jt(On({method:"video.message",params:{message:wn(i,s),node_id:r}}));break}case"verto.bye":{const 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 jt(zn.upsert(e)),yield jt(On({method:"video.message",params:{message:wn(i,s),node_id:r}}));break}case"verto.ping":yield jt(On({method:"video.message",params:{message:wn(i,s),node_id:r}}));break;case"verto.punt":return e.disconnect();case"verto.mediaParams":{const{callID:e,mediaParams:t={}}=a;if(!e){Br().debug("Invalid mediaParams event",a);break}const r={id:e};(null==t?void 0:t.video)&&(r.videoConstraints=t.video),(null==t?void 0:t.audio)&&(r.audioConstraints=t.audio),yield jt(zn.upsert(r));break}case"verto.info":return Br().debug("Verto Info",a);case"verto.clientReady":return Br().debug("Verto ClientReady",a);case"verto.announce":return Br().debug("Verto Announce",a);default:return Br().debug(`Unknown Verto method: ${s}`,a)}}function*o(e){switch(e.event_type){case"video.room.subscribed":yield jt(zn.upsert({id:e.params.call_id,roomId:e.params.room_session.room_id,roomSessionId:e.params.room_session.id,memberId:e.params.member_id,previewUrl:e.params.room_session.preview_url})),yield jt(r,{type:"video.room.joined",payload:e.params});break;case"video.member.updated":{const{member:{updated:t=[]}}=e.params;for(const n of t){const t=`video.member.updated.${n}`;yield jt(r,{type:t,payload:e.params})}break}case"video.member.joined":{const{member:t}=e.params;(null==t?void 0:t.parent_id)&&(yield Vt(io,t.parent_id))&&(yield jt(zn.upsert({id:t.id,roomId:e.params.room_id,roomSessionId:e.params.room_session_id,memberId:t.id})));break}case"video.member.talking":{const{member:t}=e.params;if("talking"in t){const n=t.talking?"started":"ended";yield jt(r,{type:`video.member.talking.${n}`,payload:e.params});const o=t.talking?"start":"stop";yield jt(r,{type:`video.member.talking.${o}`,payload:e.params})}break}}yield jt(r,{type:e.event_type,payload:e.params})}function*i(e){yield jt(r,{type:e.event_type,payload:e.params})}function*s(e){var t;"webrtc.message"!==(null==(t=e)?void 0:t.event_type)?(e=>{var t;return!!(null==(t=null==e?void 0:e.event_type)?void 0:t.startsWith("video."))})(e)?yield Nt(o,e):(e=>{var t;return!!(null==(t=null==e?void 0:e.event_type)?void 0:t.startsWith("cantina-manager."))})(e)?yield Nt(i,e):yield jt({type:e.event_type,payload:e}):yield Nt(n,{jsonrpc:e.params,nodeId:e.node_id})}const a=Zn((function*(e){if(e.type!==Mn.type)return void(yield jt(e));const{method:t,params:r}=e.payload;switch(t){case"signalwire.event":yield Nt(s,r);break;default:return Br().debug(`Unknown message: ${t}`,e)}}),(e=>{Br().error("Channel Error",e)}));for(;;)try{for(;;){const e=yield xt(t);yield Nt(a,e)}}catch(e){Br().error("sessionChannelWorker error:",e)}finally{Br().debug("sessionChannelWorker finally")}}function uo(e){return function(t,r){void 0===r&&(r=Tt);var n,o,i=!1,s=rr(r),a=function(){i||(i=!0,Ze(n)&&n(),s.close())};return n=pt((o=function(e){tr(e)?a():s.put(e)},e.dispatch=e=>{o(e)},n=()=>{Br().debug("sessionChannel unsubscribe"),e.disconnect()})),i&&n(),{take:s.take,flush:s.flush,close:a}}()}function*lo({pubSubChannel:e,emitter:t}){for(;;){const n=yield xt(e),{type:o,payload:i}=n;try{const e=void 0===(r=n).payload?"":(e=>e.type.startsWith("video.member."))(r)||(e=>e.type.startsWith("video.layout."))(r)||(e=>e.type.startsWith("video.recording."))(r)||(e=>e.type.startsWith("video.playback."))(r)?r.payload.room_session_id:(e=>e.type.startsWith("video.room."))(r)?r.payload.room_session.id:((e=>{e.type.startsWith("chat.")})(r),"");Dr.includes(o)&&t.emit(o,i),t.emit(Gr({namespace:e,event:o}),i)}catch(e){Br().error(e)}}var r}var ho=({executeQueue:e})=>e;function*po(){function*e(e){"authorized"!==(yield Vt(no))&&(yield jt(Qn.add(e.payload)))}for(;;){const t=yield xt(On.type);yield Nt(e,t)}}function*fo(){const{queue:e}=yield Vt(ho);for(const t of e)yield jt(On(t));yield jt(Qn.clean())}var mo=class extends Error{constructor(e,t){super(t),this.code=e,this.message=t,jr(this,"name","AuthError"),Object.setPrototypeOf(this,mo.prototype)}};function*go(){const e=yield Vt(so);e.length&&(yield jt(zn.cleanup({ids:e})))}function*vo(){for(;;)yield Wt(36e5),yield Nt(go)}function*yo({SessionConstructor:e,userOptions:t,channels:r}){var n;const o=new e(t),i=yield Dt(uo,o),s=r.pubSubChannel;let a=[];if(null==(n=t.workers)?void 0:n.length)try{const e=t.workers.map((e=>Dt(Xn(e))));a=yield function(e){var t=Rt("ALL",e);return t.combinator=!0,t}(e)}catch(e){Br().error("Error running custom workers",e)}yield Nt(co,{session:o,sessionChannel:i,pubSubChannel:s}),yield Nt(wo,{session:o,sessionChannel:i,pubSubChannel:s,userOptions:t});const c=yield Nt(vo);o.connect(),yield xt(En.type),null==c||c.cancel(),s.close(),i.close(),a.forEach((e=>e.cancel()))}function*bo({session:e,sessionChannel:t,pubSubChannel:r}){"reconnecting"===e.status?(yield jt(r,Ln()),yield Wt(2e3*Math.random()),yield Dt(e.connect)):(t.close(),yield jt(r,jn()))}function*_o({session:e,token:t}){try{e.reauthenticate&&(e.token=t,yield Dt(e.reauthenticate))}catch(e){Br().error("Reauthenticate Error",e)}}function*wo(e){for(;;){const t=yield xt([Pn.type,In.type,Rn.type,An.type,Tn.type]);switch(t.type){case Pn.type:yield Nt(So,e);break;case In.type:{const{error:e}=t.payload;throw e?new mo(e.code,e.error):new Error("Unauthorized")}case Rn.type:break;case An.type:yield Nt(bo,e);break;case Tn.type:yield Nt(_o,{session:e.session,token:t.payload.token})}}}function*So(e){const{session:t,pubSubChannel:r,userOptions:n}=e,o=yield Nt(lo,{pubSubChannel:r,emitter:n.emitter}),i=yield Nt(ao,t);yield jt(Un.connected(t.rpcConnectResult)),yield jt(r,xn());const s=yield Nt(fo);yield xt(Cn.type),o.cancel(),i.cancel(),s.cancel()}var ko=e=>{const{componentListeners:t={},sessionListeners:r={},store:n,Component:o,customSagas:i=[]}=e,s=Object.keys(t),a=Object.keys(r);return e=>{const c=new o(Rr(Ar({},e),{store:n})),u=new Map;let d=!0;const l=n.subscribe((()=>{const e=n.getState(),o=io(e,c.__uuid)||{};for(const e of s){if(!1===d)return;const r=`${c.__uuid}.${e}`,n=u.get(r),i=o[e];if(void 0!==i&&n!==i){u.set(r,i);const n=t[e];"string"==typeof n?c[n](o):n(o)}}const i=ro(e);for(const e of a){if(!1===d)return;const t=`session.${e}`,n=u.get(t),o=i[e];if(void 0!==o&&n!==o){u.set(t,o);const n=r[e];"string"==typeof n?c[n](i):"function"==typeof n&&n(i)}}})),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}},Eo=e=>e,Co=class{constructor(e){this.options=e,jr(this,"uuid",l()),jr(this,"_eventsPrefix",""),jr(this,"_eventsRegisterQueue",new Set),jr(this,"_eventsEmitQueue",new Set),jr(this,"_eventsNamespace"),jr(this,"_eventsTransformsCache",new Map),jr(this,"_requests",new Map),jr(this,"_customSagaTriggers",new Map),jr(this,"_destroyer"),jr(this,"_emitterTransforms",new Map),jr(this,"_emitterListenersCache",new Map),jr(this,"_trackedEvents",[]),jr(this,"_runningWorkers",[])}get __uuid(){return this.uuid}get logger(){return Br()}_getNamespacedEvent(e){let t=this._eventsNamespace;return"string"==typeof e&&un(e)&&(t=this.__uuid),Gr({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){const[t,r]=e.params;return this.logger.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){this.logger.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)){const n=t.instanceFactory(r);return this._eventsTransformsCache.set(e,n),n}return this._eventsTransformsCache.get(e)}cleanupEventHandlerTransformCache({internalEvent:e,force:t}){const r=this._eventsTransformsCache.get(e),n=this.listenerCount(e);return r&&(t||n<=1)?(r.destroy(),this._eventsTransformsCache.delete(e)):(this.logger.trace("[cleanupEventHandlerTransformCache] Key wasn't cached",e),!1)}getEmitterListenersMapByInternalEventName(e){var t;return null!=(t=this._emitterListenersCache.get(e))?t:new Map}getAndRemoveStableEventHandler(e,t){const r=this.getEmitterListenersMapByInternalEventName(e);if(t&&r.has(t)){const n=r.get(t);return r.delete(t),this._emitterListenersCache.set(e,r),n}return t}_createStableEventHandler(e,t){return r=>{const n=this._emitterTransforms.get(e);if(!n)return t(r);const o=this.runAndCacheEventHandlerTransform({internalEvent:e,transform:n,payload:r}),i=this._parseNestedFields(n.payloadTransform(r)),s=tn({instance:o,payload:r,transformedPayload:i,transform:n});return t(s)}}_parseNestedFields(e){return nn.forEach((({field:t,preProcessPayload:r,eventTransformType:n})=>{var o;const 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})=>{const r=(({transform:e,payload:t})=>{if(!rn.has(e.type)){const r=e.instanceFactory(t);return rn.set(e.type,r),r}return rn.get(e.type)})({transform:e,payload:t}),n=e.payloadTransform(t);return tn({transform:e,payload:t,instance:r,transformedPayload:n})})({transform:i,payload:r(e)}))))})),e}getOrCreateStableEventHandler(e,t){const r=this.getEmitterListenersMapByInternalEventName(e);let 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){const n=this._getInternalEvent(e);this._trackEvent(n);const o=r?"once":"on";if(this.shouldAddToQueue())return this.addEventToRegisterQueue({type:o,params:[e,t]}),this.emitter;const i=this.getOrCreateStableEventHandler(n,t);return this.logger.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;const r=this._getInternalEvent(e),n=this.getAndRemoveStableEventHandler(r,t);return this.cleanupEventHandlerTransformCache({internalEvent:r,force:!n}),this.logger.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=>{const t=this.eventNames().map((e=>{if("string"==typeof e){const t=(e=>{const t=e.split(":");return t[t.length-1]})(e);return cn.includes(t)?null:an.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;const r=this._getInternalEvent(e);return this.logger.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(),this.detachWorkers()}execute({method:e,params:t},{transformResolve:r=Eo,transformReject:n=Eo}={transformResolve:Eo,transformReject:Eo}){return new Promise(((o,i)=>{const s=l();this._requests.set(s,{resolve:o,reject:i,transformResolve:r,transformReject:n}),this.store.dispatch(On({requestId:s,componentId:this.__uuid,method:e,params:t}))}))}triggerCustomSaga(e){return new Promise(((t,r)=>{const n=l();this._customSagaTriggers.set(n,{resolve:t,reject:r}),this.store.dispatch(Ar({dispatchId:n},Nn(this.__uuid,e)))}))}settleCustomSagaTrigger({dispatchId:e,payload:t,kind:r}){const 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=>{const{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}get _sessionAuthStatus(){return no(this.store.getState())}_waitUntilSessionAuthorized(){switch(no(this.store.getState())){case"authorized":return Promise.resolve(this);case"unknown":case"authorizing":return new Promise(((e,t)=>{const r=this.store.subscribe((()=>{const n=no(this.store.getState()),o=oo(this.store.getState());if("authorized"===n)e(this),r();else if("unauthorized"===n){const e=o?new mo(o.code,o.error):new Error("Unauthorized");t(e),r()}}))}));case"unauthorized":return Promise.reject(new Error("Unauthorized"))}}_setEmitterTransform({event:e,handler:t,local:r}){const n=this._getInternalEvent(e);(r?un(e):!un(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)}))}getWorkers(){return new Map}attachWorkers(){this.getWorkers().forEach((({worker:e})=>{const t=this.store.runSaga(e);this._runningWorkers.push(t)}))}detachWorkers(){this._runningWorkers.forEach((e=>{e.cancel()})),this._runningWorkers=[]}},To=class extends Co{constructor(e){super(e),this.options=e,this._attachListeners("")}connect(){const e=no(this.store.getState());return"unknown"!==e&&"unauthorized"!==e||this.store.dispatch(kn()),this._waitUntilSessionAuthorized()}disconnect(){this.store.dispatch(En())}},Oo=class extends Co{constructor(e){super(e),this.options=e,jr(this,"subscribeMethod","signalwire.subscribe"),jr(this,"subscribeParams",{}),this.applyEmitterTransforms({local:!0})}subscribe(){return new Promise((async(e,t)=>{const r=this.getSubscriptions();if(r.length>0){const e={method:this.subscribeMethod,params:Rr(Ar({},this.subscribeParams),{event_channel:this.getStateProperty("eventChannel"),events:r})};try{this.applyEmitterTransforms(),this.attachWorkers(),await this.execute(e)}catch(e){return t(e)}}else this.logger.warn("`subscribe()` was called without any listeners attached.");return e(void 0)}))}},Io={audio_muted:!0,video_muted:!0,deaf:!0,on_hold:!0,visible:!0,input_volume:1,output_volume:1,input_sensitivity:1};Object.keys(Io).map((e=>`video.member.updated.${e}`));var Po=Qr(Io);Object.keys(Po).map((e=>`member.updated.${e}`));var Ao={};xr(Ao,{RoomSessionPlaybackAPI:()=>ni,RoomSessionRecordingAPI:()=>ti,audioMuteMember:()=>zo,audioUnmuteMember:()=>Bo,createRoomSessionPlaybackObject:()=>oi,createRoomSessionRecordingObject:()=>ri,deafMember:()=>Qo,getLayouts:()=>jo,getMembers:()=>Lo,getPlaybacks:()=>Fo,getRecordings:()=>$o,hideVideoMuted:()=>No,play:()=>qo,removeMember:()=>ei,setDeaf:()=>Go,setHideVideoMuted:()=>Wo,setInputSensitivityMember:()=>Zo,setInputVolumeMember:()=>Xo,setLayout:()=>Do,setOutputVolumeMember:()=>Yo,showVideoMuted:()=>Vo,startRecording:()=>Uo,undeafMember:()=>Jo,videoMuteMember:()=>Ho,videoUnmuteMember:()=>Ko});var Ro=()=>{},Mo=(e,t={})=>({value:function(r={}){return this.execute({method:e,params:Ar({room_session_id:this.roomSessionId},r)},t)}}),xo=(e,t={})=>({value:function(r={}){var n=r,{memberId:o}=n,i=Mr(n,["memberId"]);return this.execute({method:e,params:Ar({room_session_id:this.roomSessionId,member_id:o||this.memberId},i)},t)}}),jo=Mo("video.list_available_layouts",{transformResolve:e=>({layouts:e.layouts})}),Lo=Mo("video.members.get",{transformResolve:e=>({members:e.members})}),Do=Mo("video.set_layout",{transformResolve:Ro}),No=Mo("video.hide_video_muted",{transformResolve:Ro}),Vo=Mo("video.show_video_muted",{transformResolve:Ro}),Wo={value:function(e){return this.execute({method:e?"video.hide_video_muted":"video.show_video_muted",params:{room_session_id:this.roomSessionId}},{transformResolve:Ro})}},$o=Mo("video.recording.list",{transformResolve:e=>({recordings:e.recordings.map((e=>Qr(e)))})}),Uo={value:function(){return new Promise((async e=>{const t=t=>{e(t)};this.on(dn("video.recording.start"),t);try{const e=await this.execute({method:"video.recording.start",params:{room_session_id:this.roomSessionId}});this.emit(dn("video.recording.start"),Rr(Ar({},e),{room_session_id:this.roomSessionId}))}catch(e){throw this.off(dn("video.recording.start"),t),e}}))}},Fo=Mo("video.playback.list",{transformResolve:e=>({playbacks:e.playbacks.map((e=>Qr(e)))})}),qo={value:function(e){return new Promise((async t=>{const r=e=>{t(e)};this.on(dn("video.playback.start"),r);try{const t=await this.execute({method:"video.playback.start",params:Ar({room_session_id:this.roomSessionId},e)});this.emit(dn("video.playback.start"),Rr(Ar({},t),{room_session_id:this.roomSessionId}))}catch(e){throw this.off(dn("video.playback.start"),r),e}}))}},zo=xo("video.member.audio_mute",{transformResolve:Ro}),Bo=xo("video.member.audio_unmute",{transformResolve:Ro}),Ho=xo("video.member.video_mute",{transformResolve:Ro}),Ko=xo("video.member.video_unmute",{transformResolve:Ro}),Qo=xo("video.member.deaf",{transformResolve:Ro}),Jo=xo("video.member.undeaf",{transformResolve:Ro}),Go={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:Ro})}},Xo=xo("video.member.set_input_volume",{transformResolve:Ro}),Yo=xo("video.member.set_output_volume",{transformResolve:Ro}),Zo=xo("video.member.set_input_sensitivity",{transformResolve:Ro}),ei={value:function(e={}){var t=e,{memberId:r}=t,n=Mr(t,["memberId"]);if(!r)throw new TypeError('Invalid or missing "memberId" argument');return this.execute({method:"video.member.remove",params:Ar({room_session_id:this.roomSessionId,member_id:r},n)},{transformResolve:Ro})}},ti=class extends Co{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")}})}},ri=e=>ko({store:e.store,Component:ti,componentListeners:{errors:"onError",responses:"onSuccess"}})(e),ni=class extends Co{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}})}},oi=e=>ko({store:e.store,Component:ni,componentListeners:{errors:"onError",responses:"onSuccess"}})(e),ii={};xr(ii,{BaseChatAPI:()=>bi,BaseChatConsumer:()=>yi,ChatMessage:()=>fi,createBaseChatObject:()=>_i,getMembers:()=>li,getMessages:()=>di,getState:()=>pi,publish:()=>ui,setState:()=>hi});var si=e=>{const t=!e||Array.isArray(e)?e:[e];return Array.isArray(t)?t.map((e=>({name:e}))):[]},ai=e=>Array.isArray(e)||"string"==typeof e,ci=(e,t={})=>({value:function(r={}){const n=ai(null==r?void 0:r.channels)?si(r.channels):void 0;return this.execute({method:e,params:Rr(Ar({},r),{channels:n})},t)}}),ui=ci("chat.publish"),di=ci("chat.messages.get",{transformResolve:e=>({messages:e.messages.map((e=>Qr(e))),cursor:e.cursor})}),li=ci("chat.members.get",{transformResolve:e=>({members:e.members.map((e=>Qr(e)))})}),hi=ci("chat.presence.set_state",{transformResolve:()=>{}}),pi=((e,t={})=>({value:function(r={}){var n=r,{memberId:o}=n,i=Mr(n,["memberId"]);const s=ai(null==i?void 0:i.channels)?si(i.channels):void 0;return this.execute({method:e,params:Rr(Ar({member_id:o},i),{channels:s})},t)}}))("chat.presence.get_state",{transformResolve:e=>({channels:e.channels})}),fi=class{constructor(e){this.payload=e}get id(){return this.payload.id}get senderId(){return this.payload.senderId}get channel(){return this.payload.channel}get content(){return this.payload.content}get meta(){return this.payload.meta}get publishedAt(){return this.payload.publishedAt}},mi=class{constructor(e){this.payload=e}get id(){return this.payload.id}get channel(){return this.payload.channel}get state(){var e,t;return null!=(t=null==(e=this.payload)?void 0:e.state)?t:{}}},gi=function*({channels:{pubSubChannel:e}}){for(;;){const t=yield xt((e=>e.type.startsWith("chat.")));switch(Br().debug("chatWorker:",t),t.type){case"chat.channel.message":yield jt(e,{type:"chat.message",payload:t.payload});break;case"chat.member.joined":case"chat.member.updated":case"chat.member.left":yield jt(e,t);break;default:Br().warn("[chatWorker] Unrecognized Action",t)}}},vi=e=>e.map((e=>({name:e}))),yi=class extends Oo{constructor(e){super(e),jr(this,"_eventsPrefix","chat"),jr(this,"subscribeMethod","chat.subscribe"),this._attachListeners("")}_getChannelsParam(e,t){const r=!e||Array.isArray(e)?e:[e];if(!Array.isArray(r)||0===r.length)throw new Error(`Please specify one or more channels when calling .${t}()`);return{channels:vi(r)}}_setSubscribeParams(e){this.subscribeParams=Ar(Ar({},this.subscribeParams),e)}_getSubscribeParams({channels:e}){return Ar({},this._getChannelsParam(e,"subscribe"))}_getUnsubscribeParams({channels:e}){const t=this._getChannelsParam(e,"unsubscribe");return Ar({},t)}getWorkers(){return new Map([["chat",{worker:gi}]])}getEmitterTransforms(){return new Map([[["message"],{type:"chatMessage",instanceFactory:e=>{const{channel:t,message:r}=e.params;return new fi(Qr(Rr(Ar({},r),{channel:t})))},payloadTransform:e=>{const{channel:t,message:r}=e.params;return Qr(Rr(Ar({},r),{channel:t}))}}],[["member.joined","member.left"],{type:"chatMessage",instanceFactory:e=>{const{channel:t,member:r}=e.params,n=Rr(Ar({},Qr(r)),{channel:t});return new mi(n)},payloadTransform:e=>{const{channel:t,member:r}=e.params;return Rr(Ar({},Qr(r)),{channel:t})}}],[["member.updated"],{type:"chatMessage",instanceFactory:e=>{const{channel:t,member:r,state:n={}}=e.params,o=Rr(Ar({},Qr(r)),{channel:t,state:n});return new mi(o)},payloadTransform:e=>{const{channel:t,member:r,state:n={}}=e.params;return Rr(Ar({},Qr(r)),{channel:t,state:n})}}]])}async subscribe(e){const t=this._getSubscribeParams({channels:e});return this._setSubscribeParams(t),super.subscribe()}async unsubscribe(e){if("unknown"===this._sessionAuthStatus||"unauthorized"===this._sessionAuthStatus)throw new Error("You must be authenticated to unsubscribe from a channel");const t=this._getUnsubscribeParams({channels:e});return new Promise((async(e,r)=>{const n=this.getSubscriptions();if(n.length>0){const e={method:"chat.unsubscribe",params:Rr(Ar({},t),{events:n})};try{await this.execute(e)}catch(e){return r(e)}}else this.logger.warn("`unsubscribe()` was called without any listeners attached.");return e(void 0)}))}},bi=en(yi,{publish:ui,getMembers:li,getMessages:di,setState:hi,getState:pi}),_i=e=>ko({store:e.store,Component:bi,componentListeners:{errors:"onError",responses:"onSuccess"}})(e),wi=Ar({},eo);const Si=()=>"undefined"!=typeof navigator&&!!navigator.mediaDevices,ki=()=>{if(!Si())throw new Error("The media devices API isn't supported in this environment");return navigator.mediaDevices},Ei=(e={audio:!0,video:!0})=>{try{return ki().getUserMedia(e)}catch(t){switch(t.name){case"Error":Br().error("navigator.mediaDevices.getUserMedia doesn't seem to be supported.");break;case"NotFoundError":Br().error("No media tracks of the type specified were found that satisfy the given constraints.");break;case"NotReadableError":Br().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":Br().error(`The constraint: ${t.constraint} cannot be met by the selected device.`),Br().info("List of available constraints:",Ii());break;case"NotAllowedError":Br().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?Br().error('Constraints can\'t be empty nor have "video" and "audio" set to false.'):Br().error("Please check that you are calling this method from a secure context (using HTTPS rather than HTTP).");break;case"SecurityError":Br().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}},Ci=e=>ki().getDisplayMedia(e),Ti=()=>ki().enumerateDevices(),Oi=async e=>{let t=await Ti().catch((e=>[]));return e&&(t=t.filter((({kind:t})=>t===e))),t},Ii=()=>ki().getSupportedConstraints(),Pi=e=>e&&e instanceof MediaStream,Ai=()=>"sinkId"in HTMLMediaElement.prototype,Ri=async(e,t)=>{if(null!==e)if("string"==typeof t)if(Ai())try{return await e.setSinkId(t)}catch(e){throw"SecurityError"===e.name?Br().error(`You need to use HTTPS for selecting audio output device: ${e}`):Br().error(`Error: ${e}`),e}else Br().warn("Browser does not support output device selection.");else Br().warn(`Invalid speaker deviceId: '${t}'`);else Br().warn("No HTMLMediaElement to attach the speakerId")},Mi=e=>{var t;Pi(e)&&(null===(t=null==e?void 0:e.getTracks())||void 0===t||t.forEach(xi))},xi=e=>{e&&"live"===e.readyState&&(e.stop(),e.dispatchEvent(new Event("ended")))},ji={camera:"videoinput",microphone:"audioinput",speaker:"audiooutput"},Li=e=>{if(e)return ji[e]},Di=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 Oi(e);return t.length?t.every((({deviceId:e,label:t})=>Boolean(e&&t))):(Br().warn(`No ${e} devices to check for permissions!`),null)})(Li(e))},Ni=()=>Di("camera"),Vi=()=>Di("microphone"),Wi=()=>Di("speaker"),$i=async(e,t=!1)=>{if(!1===await Di(e)){const t=(e=>({audio:!e||"all"===e||"microphone"===e||"speaker"===e,video:!e||"all"===e||"camera"===e}))(e),r=await Ei(t);Mi(r)}return Fi(e,t)},Ui=(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))}))},Fi=async(e,t=!1)=>{const r=await Oi(Li(e));return!0===t?r:Ui(r)},qi=async(e,t,r)=>{const n=await Fi(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},zi=e=>{const t=new Map;return e.forEach((e=>{e.deviceId&&t.set(e.deviceId,e)})),t},Bi={camera:Ni,microphone:Vi,speaker:Wi},Hi=["camera","microphone","speaker"],Ki=`Allowed targets are: '${Hi.join("', '")}'`,Qi={speaker:Ai},Ji=async(e={})=>{const t=await(async e=>{var t;const r=(null!==(t=e.targets)&&void 0!==t?t:Hi).filter((e=>!!Hi.includes(e)||(Br().warn(`We'll ignore the "${e}" target as it is not allowed. ${Ki}.`),!1)));if(!r.length)throw new Error(`At least one "target" is required for createDeviceWatcher(). ${Ki}.`);const n=await(async e=>{const t=e.targets;return(await Promise.all(t.map((e=>Bi[e]())))).reduce(((e,r,n)=>{var o;const i=t[n];return e[!(i in Qi)||(null===(o=Qi[i])||void 0===o?void 0:o.call(Qi))?"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(", ")}. `:"";Br().warn(`${e}${t}We'll be watching for the following targets instead: "${i.join(", ")}"`)}return Br().debug(`Watching these targets: "${i.join(", ")}"`),i})({targets:e.targets}),r=new Sr,n=await Ti(),o=null==t?void 0:t.reduce(((e,t)=>{const r=Li(t);return r&&e.push(r),e}),[]);let i=Ui(n,{excludeDefault:!0,targets:o});return ki().addEventListener("devicechange",(async()=>{const e=await Ti(),t=i,n=Ui(e,{excludeDefault:!0,targets:o});i=n;const s=((e,t)=>{const r=zi(e),n=zi(e),o=[];Br().debug("[_getDeviceListDiff] <- oldDevices",e),Br().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},Gi=async e=>{Br().info("RTCService.getUserMedia",e);const{audio:t,video:r}=e;if(t||r)try{return await Ei(e)}catch(e){throw Br().error("getUserMedia error: ",e),e}},Xi=async e=>{let{audio:t=!0,micId:r}=e;const{micLabel:n=""}=e;if(r){const e=await qi(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 qi(i,s,"camera").catch((e=>null));e&&("boolean"==typeof o&&(o={}),o.deviceId={exact:e})}return{audio:t,video:o}},Yi=e=>/^m=audio/.test(e),Zi=e=>/^m=video/.test(e),es=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 ts{constructor(e,t){this.call=e,this.type=t,this._negotiating=!1,this.options=e.options,this.logger.debug("New Peer with type:",this.type,"Options:",this.options),this._onIce=this._onIce.bind(this)}get logger(){return Br()}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 this.logger.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 this.logger.info(`There is not a '${e}' sender to stop.`);n.track&&(xi(n.track),null===(r=null===(t=this.options)||void 0===t?void 0:t.localStream)||void 0===r||r.removeTrack(n.track))}catch(t){this.logger.error("RTCPeer stopTrackSender error",e,t)}}async restoreTrackSender(e){var t,r;try{const n=this._getSenderByKind(e);if(!n)return this.logger.info(`There is not a '${e}' sender to restore.`);if(n.track&&"ended"!==n.track.readyState)return this.logger.info(`There is already an active ${e} track.`);const o=await Xi(this.options),i=await Gi({[e]:o[e]});if(i&&Pi(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){this.logger.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 this.logger.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 this.logger.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 this.logger.error("RTCPeer getDeviceLabel error",e,t),null}}restartIceWithRelayOnly(){try{const e=this.instance.getConfiguration();if("relay"===e.iceTransportPolicy)return this.logger.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){this.logger.error("RTCPeer restartIce error",e)}}async applyMediaConstraints(e,t){try{const r=this._getSenderByKind(e);if(!r||!r.track)return this.logger.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}),this.logger.info(`Apply ${e} constraints`,this.call.id,n),await r.track.applyConstraints(n)}}catch(r){this.logger.error("Error applying constraints",e,t)}}_getSenderByKind(e){return this.instance.getSenders?this.instance.getSenders().find((({track:t})=>t&&t.kind===e)):(this.logger.warn("RTCPeerConnection.getSenders() not available."),null)}_getReceiverByKind(e){return this.instance.getReceivers?this.instance.getReceivers().find((({track:t})=>t&&t.kind===e)):(this.logger.warn("RTCPeerConnection.getReceivers() not available."),null)}async startNegotiation(e=!1){var t,r;if(this._negotiating)return this.logger.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){this.logger.debug("Trying to generate offer");const e=await this.instance.createOffer({voiceActivityDetection:!1});await this._setLocalDescription(e)}if(this.isAnswer){this.logger.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){this.logger.error(`Error creating ${this.type}:`,e)}}async onRemoteSdp(e){try{const t=this.isOffer?"answer":"offer";await this._setRemoteDescription({sdp:e,type:t}),this.isOffer&&this._resolveStartMethod()}catch(e){this.logger.error(`Error handling remote SDP on call ${this.call.id}:`,e),this.call.hangup(),this._rejectStartMethod(e)}}_setupRTCPeerConnection(){this.instance||(this.instance=new window.RTCPeerConnection(this.config),this._attachListeners())}async start(){return new Promise((async(e,t)=>{this._resolveStartMethod=e,this._rejectStartMethod=t;try{this.options.localStream=await this._retrieveLocalStream()}catch(e){return this.logger.error("Error retrieving a local stream",e),this._rejectStartMethod(e),this.call.setState("hangup")}this._setupRTCPeerConnection();const{localStream:r=null}=this.options;if(r&&Pi(r)){const e=r.getAudioTracks();this.logger.debug("Local audio tracks: ",e);const t=r.getVideoTracks();if(this.logger.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})))),this.logger.debug("Applying video transceiverParams",n),t.forEach((e=>{this.instance.addTransceiver(e,n)})),this.isSfu){const{msStreamsNumber:e=5}=this.options;this.logger.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);this.logger.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 this.logger.debug("No candidate - retry \n"),void this.startNegotiation(!0);this.logger.debug("LOCAL SDP \n",`Type: ${t}`,"\n\n",e),this.instance.removeEventListener("icecandidate",this._onIce);try{await this.call.onLocalSDPReady(this.instance.localDescription)}catch(e){this._rejectStartMethod(e)}}_onIce(e){this._iceTimeout||(this._iceTimeout=setTimeout((()=>this._sdpReady()),this.options.iceGatheringTimeout)),e.candidate?(this.logger.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=es(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)),this.logger.debug("LOCAL SDP \n",`Type: ${e.type}`,"\n\n",e.sdp),this.instance.setLocalDescription(e)}_setRemoteDescription(e){e.sdp&&this.options.useStereo&&(e.sdp=es(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(Yi)<n.findIndex(Zi))return e;const o=e.split(r),i=o.findIndex(Yi),s=o.findIndex(Zi),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 this.logger.debug("REMOTE SDP \n",`Type: ${e.type}`,"\n\n",e.sdp),this.instance.setRemoteDescription(t)}async _retrieveLocalStream(){if(Pi(this.options.localStream))return this.options.localStream;const e=await Xi(this.options);return Gi(e)}_attachListeners(){this.instance.addEventListener("signalingstatechange",(()=>{switch(this.logger.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",(()=>{this.logger.debug("Negotiation needed event"),this.startNegotiation()})),this.instance.addEventListener("iceconnectionstatechange",(()=>{this.logger.debug("iceConnectionState:",this.instance.iceConnectionState)})),this.instance.addEventListener("icegatheringstatechange",(()=>{this.logger.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 rs={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 ns extends Co{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(wi.getIceServers);this.options=Object.assign(Object.assign(Object.assign({},rs),e),{iceServers:r}),this.setState("new"),this.logger.debug("New Call with Options:",this.options),this.applyEmitterTransforms({local:!0}),this.attachWorkers()}get id(){return this.__uuid}get active(){return"active"===this.state}get trying(){return"trying"===this.state}get memberId(){return this._memberId}get previewUrl(){return this._previewUrl}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(this.logger.debug("onStateChange",e),e.state){case"hangup":this._hangup(e);break;default:this.setState(e.state)}}onRemoteSDP(e){this.logger.debug("onRemoteSDP",e),e.remoteSDP&&this.peer.onRemoteSdp(e.remoteSDP)}onRoomSubscribed(e){this.logger.debug("onRoomSubscribed",e),this.nodeId=e.nodeId,this._roomId=e.roomId,this._roomSessionId=e.roomSessionId,this._memberId=e.memberId,this._previewUrl=e.previewUrl,this._attachListeners(this.options.additionalDevice||this.options.screenShare?e.memberId:e.roomSessionId),this.applyEmitterTransforms()}onVideoConstraints(e){this.logger.debug("onVideoConstraints",e),(null==e?void 0:e.videoConstraints)&&this.peer.applyMediaConstraints("video",e.videoConstraints)}onAudioConstraints(e){this.logger.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&&(this.logger.info("Switching off the microphone"),this.stopOutboundAudio()),!1===e.video&&(this.logger.info("Switching off the camera"),this.stopOutboundVideo()),e.audio||e.video}updateConstraints(e){return new Promise((async(t,r)=>{try{if(this.logger.debug("updateConstraints trying constraints",this.__uuid,e),!Object.keys(e).length)return this.logger.warn("Invalid constraints:",e);if(!this.manageSendersWithConstraints(e))return void this.logger.debug("Either `video` and `audio` (or both) constraints were set to `false` so their corresponding senders (if any) were stopped");const r=await Ei(e);this.logger.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];this.logger.debug("updateConstraints apply track: ",t);const r=n.getTransceivers().find((({mid:e,sender:r,receiver:n})=>r.track&&r.track.kind===t.kind?(this.logger.debug("Found transceiver by sender"),!0):n.track&&n.track.kind===t.kind?(this.logger.debug("Found transceiver by receiver"),!0):null===e&&(this.logger.debug("Found disassociated transceiver"),!0)));r&&r.sender?(this.logger.debug("updateConstraints FOUND - replaceTrack on it and on localStream"),await r.sender.replaceTrack(t),this.logger.debug("updateConstraints replaceTrack SUCCESS"),this.options.localStream.getTracks().forEach((e=>{var r;e.kind===t.kind&&e.id!==t.id&&(this.logger.debug("updateConstraints stop old track and apply new one - "),xi(e),null===(r=this.options.localStream)||void 0===r||r.removeTrack(e))})),this.options.localStream.addTrack(t)):(this.logger.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)),this.logger.debug("updateConstraints Simply update mic/cam"),"audio"===t.kind?this.options.micId=t.getSettings().deviceId:"video"===t.kind&&(this.options.camId=t.getSettings().deviceId)}this.logger.debug("updateConstraints done!"),t()}catch(e){this.logger.error("updateConstraints",e),r(e)}}))}invite(){return new Promise((async(e,t)=>{this.direction="outbound",this.peer=new ts(this,"offer");try{await this.peer.start(),e(this)}catch(e){this.logger.error("Invite error",e),t(e)}}))}answer(){return new Promise((async(e,t)=>{this.direction="inbound",this.peer=new ts(this,"answer");try{await this.peer.start(),e(this)}catch(e){this.logger.error("Answer error",e),t(e)}}))}onLocalSDPReady(e){const{type:t,sdp:r}=e;switch(t){case"offer":return this.executeInvite(r);case"answer":this.logger.warn("Unhandled verto.answer");break;default:return this.logger.error(`Unknown SDP type: '${t}' on call ${this.id}`)}}async executeInvite(e){this.setState("requesting");try{const t=yn(Object.assign(Object.assign({},this.messagePayload),{sdp:e})),r=await this.vertoExecute(t);this.logger.debug("Invite response",r)}catch(e){throw this.setState("hangup"),e.jsonrpc}}async hangup(){try{const e=bn(this.messagePayload);await this.vertoExecute(e)}catch(e){this.logger.error("Hangup error:",e)}finally{this._hangup()}}dtmf(e){const t=_n(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,this.logger.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.peer.localSdp?(this.logger.debug("Redirect Destination to:",n),this.nodeId=n,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;Mi(e),Mi(t),this.destroy()}}const os=e=>`sw-sdk-${e}`,is=()=>{const e=document.createElement("video");return e.muted=!0,e.autoplay=!0,e.playsInline=!0,e},ss=({x:e,y:t,width:r,height:n})=>({top:`${t}%`,left:`${e}%`,width:`${r}%`,height:`${n}%`}),as=e=>t=>{const r=document.getElementById(os(t));r&&(r.style.display=e)},cs=Sn.createAction("swJs/audioSetSpeakerAction");function*us({element:e,room:t}){const r=Sn.getCustomSagaActionType(t.__uuid,cs);for(;;){const n=yield xt([r]);try{switch(n.type){case r:const o=yield Dt(Ri,e,n.payload);t.settleCustomSagaTrigger({dispatchId:n.dispatchId,payload:o,kind:"resolve"})}}catch(e){t.settleCustomSagaTrigger({dispatchId:n.dispatchId,payload:e,kind:"reject"}),Br().error(e)}}}function*ds({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&&Ri(t,r).catch((()=>{})),yield Nt(us,{element:t,room:n})}function*ls({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 hs={state:"onStateChange",remoteSDP:"onRemoteSDP",roomId:"onRoomSubscribed",videoConstraints:"onVideoConstraints",audioConstraints:"onAudioConstraints",errors:"onError",responses:"onSuccess"},ps={echoCancellation:!1,noiseSuppression:!1,autoGainControl:!1,googAutoGainControl:!1},fs=en(class extends ns{join(){return super.invite()}leave(){return super.hangup()}},{audioMute:Ao.audioMuteMember,audioUnmute:Ao.audioUnmuteMember,videoMute:Ao.videoMuteMember,videoUnmute:Ao.videoUnmuteMember,setMicrophoneVolume:Ao.setInputVolumeMember,setInputVolume:Ao.setInputVolumeMember,setInputSensitivity:Ao.setInputSensitivityMember}),ms=en(class extends ns{join(){return super.invite()}leave(){return super.hangup()}},{audioMute:Ao.audioMuteMember,audioUnmute:Ao.audioUnmuteMember,videoMute:Ao.videoMuteMember,videoUnmute:Ao.videoUnmuteMember,setInputVolume:Ao.setInputVolumeMember,setMicrophoneVolume:Ao.setInputVolumeMember,setInputSensitivity:Ao.setInputSensitivityMember}),gs=en(class extends ns{_screenShareList=new Set;_deviceList=new Set;get screenShareList(){return Array.from(this._screenShareList)}get deviceList(){return Array.from(this._deviceList)}getEmitterTransforms(){return new Map([[[dn("video.recording.start"),"video.recording.started","video.recording.updated","video.recording.ended"],{type:"roomSessionRecording",instanceFactory:e=>Ao.createRoomSessionRecordingObject({store:this.store,emitter:this.emitter}),payloadTransform:e=>Qr({...e.recording,room_session_id:this.roomSessionId})}],[[dn("video.playback.start"),"video.playback.started","video.playback.updated","video.playback.ended"],{type:"roomSessionPlayback",instanceFactory:e=>Ao.createRoomSessionPlaybackObject({store:this.store,emitter:this.emitter}),payloadTransform:e=>Qr({...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 Ci({audio:!0===r?ps: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=ko({store:this.store,Component:fs,componentListeners:hs})(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 this.logger.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=ko({store:this.store,Component:ms,componentListeners:hs})(o);i.on("destroy",(()=>{this._deviceList.delete(i)}));try{return this._deviceList.add(i),t&&await i.join(),i}catch(e){throw this.logger.error("RoomDevice Error",e),e}}join(){return super.invite()}leave(){return this.hangup()}updateSpeaker({deviceId:e}){return this.triggerCustomSaga(cs(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:Ao.audioMuteMember,audioUnmute:Ao.audioUnmuteMember,videoMute:Ao.videoMuteMember,videoUnmute:Ao.videoUnmuteMember,deaf:Ao.deafMember,undeaf:Ao.undeafMember,setInputVolume:Ao.setInputVolumeMember,setOutputVolume:Ao.setOutputVolumeMember,setMicrophoneVolume:Ao.setInputVolumeMember,setSpeakerVolume:Ao.setOutputVolumeMember,setInputSensitivity:Ao.setInputSensitivityMember,removeMember:Ao.removeMember,getMembers:Ao.getMembers,getLayouts:Ao.getLayouts,setLayout:Ao.setLayout,hideVideoMuted:Ao.hideVideoMuted,showVideoMuted:Ao.showVideoMuted,getRecordings:Ao.getRecordings,startRecording:Ao.startRecording,getPlaybacks:Ao.getPlaybacks,play:Ao.play,setHideVideoMuted:Ao.setHideVideoMuted});class vs extends Oo{_eventsPrefix="cantina-manager";getEmitterTransforms(){return new Map([[["cantina-manager.rooms.subscribed"],{type:"roomSession",instanceFactory:({rooms:e})=>({rooms:e.map((e=>Qr(e)))}),payloadTransform:({rooms:e})=>({rooms:e.map((e=>Qr(e)))})}],[["cantina-manager.room.started","cantina-manager.room.added","cantina-manager.room.updated","cantina-manager.room.ended","cantina-manager.room.deleted"],{type:"roomSession",instanceFactory:e=>Qr(e),payloadTransform:e=>Qr(e)}]])}}class ys extends To{_cantina;_chat;get rooms(){return{makeRoomObject:e=>{const{rootElement:t,applyLocalVideoOverlay:r=!0,stopCameraWhileMuted:n=!0,stopMicrophoneWhileMuted:o=!0,...i}=e,s=[];s.push((({speakerId:e})=>function*({instance:t,runSaga:r}){try{const n=new Audio;let o;const i=function(s){switch(s.track.kind){case"audio":o=r(ds,{track:s.track,element:n,speakerId:e,room:t}),t.off("track",i)}};t.on("track",i),t.once("destroy",(()=>{o?.cancel()}))}catch(e){Br().error("audioElementSaga",e)}})({speakerId:i.speakerId})),t&&s.push((({rootElement:e,applyLocalVideoOverlay:t})=>function*({instance:r,runSaga:n}){try{const o=new Map,i=is(),s=(({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)),c=os(o);let u=e.get(c);if(!a)return void(u&&(Br().debug("Current layer not visible"),u.style.display="none"));if(!u){u=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}=ss(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}),u.id=c;const n=is();n.srcObject=i,n.style.width="100%",n.style.height="100%",u.appendChild(n);const o=r.querySelector(".mcuLayers"),s=document.getElementById(c);return void(o&&!s&&(o.appendChild(u),e.set(c,u)))}const{top:d,left:l,width:h,height:p}=ss(a);u.style.display="block",u.style.top=d,u.style.left=l,u.style.width=h,u.style.height=p}catch(e){Br().error("Layout Changed Error",e)}})({rootElement:e,element:i,layerMap:o}),a=as("none"),c=as("block");let u;r.on("layout.changed",(e=>{r.peer.hasVideoSender&&r.localStream&&s({layout:e.layout,localStream:r.localStream,myMemberId:r.memberId})})),r.on("member.updated.video_muted",(e=>{try{const{member:t}=e;t.id===r.memberId&&"video_muted"in t&&(t.video_muted?a(t.id):c(t.id))}catch(e){Br().error("Error handling video_muted",e)}}));const d=function(o){switch(o.track.kind){case"video":u=n(ls,{applyLocalVideoOverlay:t,rootElement:e,track:o.track,element:i}),r.off("track",d)}};r.on("track",d),r.once("destroy",(()=>{(e=>{for(;e.firstChild;)e.removeChild(e.firstChild)})(e),o.clear(),u?.cancel()}))}catch(e){Br().error("videoElementSaga",e)}})({rootElement:t,applyLocalVideoOverlay:r}));const a=(c={...i,store:this.store,emitter:this.emitter,customSagas:s},ko({store:c.store,customSagas:c.customSagas,Component:gs,componentListeners:hs})(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){this.logger.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){this.logger.error("Error handling video_muted",e)}})),a}}}get chat(){return this._chat||(this._chat=ii.createBaseChatObject({store:this.store,emitter:this.options.emitter})),this._chat}get cantina(){return this._cantina||(this._cantina=(e=>{const t=ko({store:e.store,Component:vs,componentListeners:{errors:"onError",responses:"onSuccess"}})(e);return new Proxy(t,{get:(e,t,r)=>"_eventsNamespace"===t?"":"eventChannel"===t?"cantina-manager.rooms":Reflect.get(e,t,r)})})(this.options)),this._cantina}reauthenticate(e){this.store.dispatch(Sn.reauthAction({token:e}))}}class bs extends class extends class{constructor(e){var t,r;this.options=e,jr(this,"uuid",l()),jr(this,"WebSocketConstructor"),jr(this,"agent"),jr(this,"connectVersion",pn),jr(this,"_rpcConnectResult"),jr(this,"_requests",new Map),jr(this,"_socket",null),jr(this,"_host","wss://relay.signalwire.com"),jr(this,"_executeTimeoutMs",1e4),jr(this,"_executeTimeoutError",Symbol.for("sw-execute-timeout")),jr(this,"_checkPingDelay",15e3),jr(this,"_checkPingTimer",null),jr(this,"_status","unknown");const{host:n,logLevel:o="info"}=e;n&&(this._host=(e=>`${sn.test(e)?"":"wss://"}${e}`)(n)),o&&(null==(r=(t=this.logger).setLevel)||r.call(t,o)),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 Br()}get connecting(){var e;return 0===(null==(e=this._socket)?void 0:e.readyState)}get connected(){var e;return 1===(null==(e=this._socket)?void 0:e.readyState)}get closing(){var e;return 2===(null==(e=this._socket)?void 0:e.readyState)}get closed(){return!this._socket||3===this._socket.readyState}get status(){return this._status}set token(e){this.options.token=e}connect(){(null==this?void 0:this.WebSocketConstructor)?this._socket?this.logger.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)):this.logger.error("Missing WebSocketConstructor")}_createSocket(){return new this.WebSocketConstructor(this._host)}async disconnect(){this._socket&&!this.closing?(clearTimeout(this._checkPingTimer),this._requests.clear(),this._closeConnection("disconnected")):this.logger.warn("Session not connected or already in closing state.")}execute(e){if("idle"===this._status||!this.connected)return Promise.reject("Can't call `execute` when Session is not authorized.");let t;return t="params"in e?new Promise(((t,r)=>{this._requests.set(e.id,{rpcRequest:e,resolve:t,reject:r})})):Promise.resolve(),this.logger.wsTraffic({type:"send",payload:e}),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;this.logger.error("Request Timeout",e),this._closeConnection("reconnecting")}))}async authenticate(){const 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(fn(e))}async _onSocketOpen(e){this.logger.debug("_onSocketOpen",e.type);try{await this.authenticate(),this._status="connected",this.dispatch(Pn())}catch(e){this.logger.error("Auth Error",e),this.dispatch(In({error:e}))}}_onSocketError(e){this.logger.debug("_onSocketError",e),this.dispatch(Rn())}_onSocketClose(e){this.logger.debug("_onSocketClose",e.type,e.code,e.reason),this._status=e.code>=1006&&e.code<=1014?"reconnecting":"disconnected",this.dispatch(An()),this._socket=null}_onSocketMessage(e){const t=on(e.data);this.logger.wsTraffic({type:"recv",payload:t});const r=this._requests.get(t.id);if(r){const{rpcRequest:e,resolve:n,reject:o}=r;this._requests.delete(t.id);const{result:i,error:s}=(({response:e,request:t})=>{const{result:r={},error:n}=e;if(n)return{error:n};switch(t.method){case"signalwire.connect":return{result:r};default:return Hr(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((n=t.id,hn({id:n,result:{}}))).catch((e=>{this.logger.error("SwDisconnect Error",e)})).finally((()=>{this._status="idle"}));break;default:this.dispatch(Mn(t)),this._handleWebSocketMessage(t)}var n}_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}async _pingHandler(e){var t,r,n;clearTimeout(this._checkPingTimer),this._checkPingTimer=setTimeout((()=>{this._closeConnection("reconnecting")}),this._checkPingDelay),await this.execute((r=e.id,n=null==(t=null==e?void 0:e.params)?void 0:t.timestamp,hn({id:r,result:{timestamp:n||Date.now()/1e3}})))}_closeConnection(e){this._status=e,this.dispatch(Un.authStatus("unknown")),this.dispatch(Cn()),this._socket&&(this._socket.close(),this._socket=null)}}{constructor(e){super(e),this.options=e,jr(this,"_expiredDiffSeconds",0),jr(this,"_refreshTokenNotificationDiff",120),jr(this,"_checkTokenExpirationDelay",2e4),jr(this,"_checkTokenExpirationTimer",null),this._checkTokenExpiration=this._checkTokenExpiration.bind(this),this.reauthenticate=this.reauthenticate.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(){const e=Math.floor(Date.now()/1e3);return this.expiresAt-e}get expired(){return this.expiresIn<=this._expiredDiffSeconds}async authenticate(){const e={agent:this.agent,version:this.connectVersion,authentication:{jwt_token:this.options.token}};if(this._relayProtocolIsValid())e.protocol=this.relayProtocol;else if(this.signature){const r=await(t=this.signature,(async(e,t)=>{if("undefined"==typeof window&&"undefined"!=typeof process)return null;const r=window.sessionStorage.getItem((e=>`@signalwire:${e}`)(t));return on(r)})(0,t));r&&(e.protocol=r)}var t;this._rpcConnectResult=await this.execute(fn(e)),this._checkTokenExpiration()}async reauthenticate(){if(this.expired)return this.connect();const e={project:this._rpcConnectResult.authorization.project,jwt_token:this.options.token};try{this._rpcConnectResult=await this.execute((t=e,ln({method:"signalwire.reauthenticate",params:{authentication:t}})))}catch(e){throw clearTimeout(this._checkTokenExpirationTimer),e}var t}_checkTokenExpiration(){this.expiresAt&&(this.expiresIn<=this._refreshTokenNotificationDiff&&(this.options._onRefreshToken?this.options._onRefreshToken():this.logger.warn("The token is going to expire!")),clearTimeout(this._checkTokenExpirationTimer),this.expired||(this._checkTokenExpirationTimer=setTimeout(this._checkTokenExpiration,this._checkTokenExpirationDelay)))}}{WebSocketConstructor=WebSocket;agent="@signalwire/js/3.7.0"}const _s=e=>{const t={...e,emitter:new Sr},r=(e=>{var t;const{userOptions:r,SessionConstructor:n,preloadedState:o={},runSagaMiddleware:i=!0}=e,s=_r(),a={pubSubChannel:rr()},c=Le({devTools:null==(t=null==r?void 0:r.devTools)||t,reducer:Gn,preloadedState:o,middleware:e=>e().concat(s)});if(i){const e=(e=>function*({userOptions:t,channels:r}){t.logger&&($r=t.logger),t.debug&&(e=>{null!=e?Object.assign(Fr,e):Fr={}})(t.debug),yield Nt(po),yield xt(kn.type);try{yield Dt(yo,Rr(Ar({},e),{userOptions:t,channels:r}))}catch(e){return void Br().error("RootSaga Error:",e)}})({SessionConstructor:n});s.run(e,{userOptions:r,channels:a})}return Rr(Ar({},c),{runSaga:(e,t)=>s.run(e,Rr(Ar({},t),{channels:a}))})})({userOptions:t,SessionConstructor:bs});return ko({store:r,Component:ys,componentListeners:{errors:"onError",responses:"onSuccess"}})(t)},ws={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=_s({...h});if(await p.connect(),!p)return;let f;if(s){const e=document.getElementById(s);e?f=e:(f=document.body,Br().warn(`We couldn't find an element with id: ${s}: using 'document.body' instead.`))}const m=p.rooms.makeRoomObject({audio:n,video:!0===o?ws: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)})),ks={aspectRatio:{ideal:16/9}},Es=["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 Cs=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=_s(u),l=d.rooms.makeRoomObject({audio:t,video:!0===r?ks:r,negotiateAudio:!0,negotiateVideo:!0,iceServers:n,rootElement:o,applyLocalVideoOverlay:i,stopCameraWhileMuted:s,stopMicrophoneWhileMuted:a,speakerId:c});l.once("destroy",(()=>{d.disconnect()}));const h=()=>new Promise((async(e,t)=>{try{await d.connect(),l.once("room.subscribed",(()=>{e(l)})),await l.join()}catch(e){Br().error("RoomSession Join",e),t(e)}}));return new Proxy(l,{get(e,t,r){if("join"===t)return h;if(!e.active&&Es.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}),createClient:_s}),Ts=Object.freeze({__proto__:null,getDevices:Fi,getCameraDevices:()=>Fi("camera"),getMicrophoneDevices:()=>Fi("microphone"),getSpeakerDevices:()=>Fi("speaker"),getDevicesWithPermissions:$i,getCameraDevicesWithPermissions:()=>$i("camera"),getMicrophoneDevicesWithPermissions:()=>$i("microphone"),getSpeakerDevicesWithPermissions:()=>$i("speaker"),checkPermissions:Di,checkCameraPermissions:Ni,checkMicrophonePermissions:Vi,checkSpeakerPermissions:Wi,requestPermissions:async e=>{try{const t=await Ei(e);Mi(t)}catch(e){throw e}},createDeviceWatcher:Ji,createCameraDeviceWatcher:()=>Ji({targets:["camera"]}),createMicrophoneDeviceWatcher:()=>Ji({targets:["microphone"]}),createSpeakerDeviceWatcher:()=>Ji({targets:["speaker"]}),supportsMediaDevices:Si,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:Ei,getDisplayMedia:Ci,enumerateDevices:Ti,getSupportedConstraints:Ii,supportsMediaOutput:Ai,setMediaElementSinkId:Ri,stopStream:Mi,stopTrack:xi}),Os=Object.freeze({__proto__:null,Client:function(e){Br().warn("`Chat` is still under development and may change in the future without prior notice.");const t=_s(e),r=async e=>(await t.connect(),t.chat.subscribe(e)),n=async e=>(await t.connect(),t.chat.publish(e));return new Proxy(t.chat,{get:(e,t,o)=>"subscribe"===t?r:"publish"===t?n:Reflect.get(e,t,o)})}});e.Video=Cs,e.WebRTC=Ts,e.__sw__Chat=Os,Object.defineProperty(e,"__esModule",{value:!0})}));
7
7
  //# sourceMappingURL=index.umd.js.map