polfan-server-js-client 0.4.2 → 0.4.4

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.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PservClient=t():e.PservClient=t()}(this,()=>(()=>{"use strict";var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function o(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e){var t=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==n(t)?t:t+""}e.r(t),e.d(t,{AbstractRestClient:()=>Jr,FilesClient:()=>oo,IndexedCollection:()=>x,IndexedObjectCollection:()=>U,Layer:()=>Ht,ObservableIndexedCollection:()=>D,ObservableIndexedObjectCollection:()=>G,PermissionDefinition:()=>$t,Permissions:()=>Qt,UserStatus:()=>io,WebApiChatClient:()=>Mr,WebSocketChatClient:()=>br,extractUserFromMember:()=>kt});var a=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),o(this,"events",new Map),o(this,"onceEvents",new Map)},(t=[{key:"on",value:function(e,t){return this.addHandler(this.events,e,t),this}},{key:"once",value:function(e,t){return this.addHandler(this.onceEvents,e,t),this}},{key:"off",value:function(e,t){var n,r,o=null===(n=this.events.get(e))||void 0===n?void 0:n.indexOf(t);return void 0===o||o<0||null===(r=this.events.get(e))||void 0===r||r.splice(o,1),this}},{key:"emit",value:function(e,t){return this.callHandlers(this.events,e,t),this.callHandlers(this.onceEvents,e,t),this.onceEvents.delete(e),this}},{key:"addHandler",value:function(e,t,n){var r,o=null!==(r=e.get(t))&&void 0!==r?r:[];o.push(n),e.set(t,o)}},{key:"callHandlers",value:function(e,t,n){var r;null===(r=e.get(t))||void 0===r||r.forEach(function(e){return e(n)})}}])&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,m(r.key),r)}}function f(e,t,n){return t=p(t),function(e,t){if(t&&("object"==c(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,h()?Reflect.construct(t,n||[],p(e).constructor):t.apply(e,n))}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(h=function(){return!!e})()}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function d(e,t){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},d(e,t)}function y(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){var t=function(e,t){if("object"!=c(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==c(t)?t:t+""}var v=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return y(e=f(this,t,[].concat(r)),"awaitingResponse",new Map),y(e,"sentCounter",0),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&d(e,t)}(t,e),n=t,r=[{key:"createEnvelope",value:function(e,t){return{type:e,data:t,ref:(++this.sentCounter).toString()}}},{key:"createPromiseFromCommandEnvelope",value:function(e){var t=this;return new Promise(function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return t.awaitingResponse.set(e.ref,r)})}},{key:"handleIncomingEnvelope",value:function(e){if(this.awaitingResponse.has(e.ref)){var t="Error"===e.type;this.awaitingResponse.get(e.ref)[0]({data:t?null:e.data,error:t?e.data:null}),this.awaitingResponse.delete(e.ref)}}},{key:"handleEnvelopeSendError",value:function(e,t){this.awaitingResponse.has(e.ref)&&(this.awaitingResponse.get(e.ref)[1](t),this.awaitingResponse.delete(e.ref))}},{key:"failAwaitingResponses",value:function(e){if(this.awaitingResponse.size){var t=Array.from(this.awaitingResponse.values());this.awaitingResponse.clear();for(var n=0,r=t;n<r.length;n++)(0,u(r[n],2)[1])(e)}}}],r&&l(n.prototype,r),o&&l(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(a);function b(e){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}function g(e,t,n){return t=O(t),function(e,t){if(t&&("object"==b(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,w()?Reflect.construct(t,n||[],O(e).constructor):t.apply(e,n))}function w(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(w=function(){return!!e})()}function S(e,t,n,r){var o=k(O(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof o?function(e){return o.apply(n,e)}:o}function k(){return k="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=O(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},k.apply(null,arguments)}function O(e){return O=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},O(e)}function T(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&j(e,t)}function j(e,t){return j=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},j(e,t)}function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||E(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=E(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function R(e){return function(e){if(Array.isArray(e))return A(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||E(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){if(e){if("string"==typeof e)return A(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?A(e,t):void 0}}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function M(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,L(r.key),r)}}function F(e,t,n){return t&&M(e.prototype,t),n&&M(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function C(e,t,n){return(t=L(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function L(e){var t=function(e,t){if("object"!=b(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=b(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==b(t)?t:t+""}var x=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];_(this,e),C(this,"_items",new Map),this.set.apply(this,R(t))}return F(e,[{key:"items",get:function(){return this._items}},{key:"length",get:function(){return this._items.size}},{key:"set",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0,o=t;r<o.length;r++){var i=o[r];this._items.set(i[0],i[1])}}},{key:"get",value:function(e){return this.items.get(e)}},{key:"has",value:function(e){return this.items.has(e)}},{key:"delete",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0,o=t;r<o.length;r++){var i=o[r];this.items.delete(i)}}},{key:"deleteAll",value:function(){this.items.clear()}},{key:"findBy",value:function(t,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,i=new e,a=I(this.items.entries());try{for(a.s();!(r=a.n()).done;){var c=P(r.value,2),u=c[0],s=c[1];if(i.length>=o)break;s[t]===n&&i.set([u,s])}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"createMirror",value:function(){var t=new e;return t._items=this._items,t}}])}(),U=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];_(this,e),C(this,"_items",void 0),this.id=t,this._items=new x,this.set.apply(this,R(n))}return F(e,[{key:"items",get:function(){return Array.from(this._items.items.values())}},{key:"length",get:function(){return this._items.length}},{key:"set",value:function(){for(var e,t=this,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];(e=this._items).set.apply(e,R(r.map(function(e){return[t.getId(e),e]})))}},{key:"get",value:function(e){return this._items.get(e)}},{key:"getAt",value:function(e){return this.items[e]}},{key:"has",value:function(e){return this._items.has(e)}},{key:"delete",value:function(){var e;(e=this._items).delete.apply(e,arguments)}},{key:"deleteAll",value:function(){this._items.deleteAll()}},{key:"findBy",value:function(t,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=new e(this.id),a=I(this.items);try{for(a.s();!(r=a.n()).done;){var c=r.value;if(o&&i.length===o)break;c[t]===n&&i.set(c)}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"createMirror",value:function(){var t=new e(this.id);return t._items=this._items,t}},{key:"getId",value:function(e){return"function"==typeof this.id?this.id(e):e[this.id]}}])}(),D=function(e){function t(){var e,n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return _(this,t),C(n=g(this,t),"eventTarget",void 0),n.eventTarget=new a,(e=n).set.apply(e,R(r)),n}return T(t,e),F(t,[{key:"set",value:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length&&(S(t,"set",this,3)(n),this.eventTarget.emit("change",{setItems:n.map(function(e){return e[0]})}))}},{key:"delete",value:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length&&(S(t,"delete",this,3)(n),this.eventTarget.emit("change",{deletedItems:n}))}},{key:"deleteAll",value:function(){if(this.length){var e=Array.from(this._items.keys());S(t,"deleteAll",this,3)([]),this.eventTarget.emit("change",{deletedItems:Array.from(e)})}}},{key:"createMirror",value:function(){var e=new t;return e.eventTarget=this.eventTarget,e._items=this._items,e}},{key:"on",value:function(e,t){return this.eventTarget.on(e,t),this}},{key:"once",value:function(e,t){return this.eventTarget.once(e,t),this}},{key:"off",value:function(e,t){return this.eventTarget.off(e,t),this}}])}(x),G=function(e){function t(e){var n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return _(this,t),C(r=g(this,t,[e]),"eventTarget",void 0),r.eventTarget=new a,(n=r).set.apply(n,R(o)),r}return T(t,e),F(t,[{key:"set",value:function(){for(var e=this,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];r.length&&(S(t,"set",this,3)(r),this.eventTarget.emit("change",{setItems:r.map(function(t){return e.getId(t)})}))}},{key:"delete",value:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length&&(S(t,"delete",this,3)(n),this.eventTarget.emit("change",{deletedItems:n}))}},{key:"deleteAll",value:function(){var e=this;if(this.length){var n=this.items.map(function(t){return e.getId(t)});S(t,"deleteAll",this,3)([]),this.eventTarget.emit("change",{deletedItems:n})}}},{key:"reconcile",value:function(){for(var e,n=this,r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];var a,c=new Set(o.map(function(e){return n.getId(e)})),u=[],s=I(this.items);try{for(s.s();!(a=s.n()).done;){var l=a.value,f=this.getId(l);c.has(f)||u.push(f)}}catch(e){s.e(e)}finally{s.f()}(o.length||u.length)&&((e=this._items).delete.apply(e,u),S(t,"set",this,3)(o),this.eventTarget.emit("change",{setItems:o.map(function(e){return n.getId(e)}),deletedItems:u}))}},{key:"createMirror",value:function(){var e=new t(this.id);return e.eventTarget=this.eventTarget,e._items=this._items,e}},{key:"on",value:function(e,t){return this.eventTarget.on(e,t),this}},{key:"once",value:function(e,t){return this.eventTarget.once(e,t),this}},{key:"off",value:function(e,t){return this.eventTarget.off(e,t),this}}])}(U);function N(e){return N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},N(e)}function B(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,$(r.key),r)}}function W(e,t,n){return t&&B(e.prototype,t),n&&B(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function J(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function H(e,t,n){return(t=$(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $(e){var t=function(e,t){if("object"!=N(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=N(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==N(t)?t:t+""}var Q=W(function e(){var t=this;J(this,e),H(this,"promise",void 0),H(this,"resolve",void 0),this.promise=new Promise(function(e){return t.resolve=e})}),V=function(){return W(function e(){J(this,e),H(this,"promises",new x)},[{key:"register",value:function(e,t){var n=this;this.promises.set([t,e]),e.catch(function(){n.promises.get(t)===e&&n.promises.delete(t)})}},{key:"registerByFunction",value:function(e,t){this.register(e(),t)}},{key:"get",value:function(e){return this.promises.get(e)}},{key:"has",value:function(e){return this.promises.has(e)}},{key:"notExist",value:function(e){return!this.has(e)}},{key:"forget",value:function(){var e;(e=this.promises).delete.apply(e,arguments)}},{key:"forgetAll",value:function(){this.promises.deleteAll()}}])}();function z(e){return z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},z(e)}function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach(function(t){de(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Y(e,t,n,r){var o=X(fe(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof o?function(e){return o.apply(n,e)}:o}function X(){return X="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=fe(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},X.apply(null,arguments)}function Z(e){return function(e){if(Array.isArray(e))return te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ee(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ee(e,t){if(e){if("string"==typeof e)return te(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?te(e,t):void 0}}function te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ne(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return re(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(re(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,re(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,re(f,"constructor",s),re(s,"constructor",u),u.displayName="GeneratorFunction",re(s,o,"GeneratorFunction"),re(f),re(f,o,"Generator"),re(f,r,function(){return this}),re(f,"toString",function(){return"[object Generator]"}),(ne=function(){return{w:i,m:h}})()}function re(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}re=function(e,t,n,r){function i(t,n){re(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},re(e,t,n,r)}function oe(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function ie(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){oe(i,r,o,a,c,"next",e)}function c(e){oe(i,r,o,a,c,"throw",e)}a(void 0)})}}function ae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ce(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ye(r.key),r)}}function ue(e,t,n){return t&&ce(e.prototype,t),n&&ce(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function se(e,t,n){return t=fe(t),function(e,t){if(t&&("object"==z(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,le()?Reflect.construct(t,n||[],fe(e).constructor):t.apply(e,n))}function le(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(le=function(){return!!e})()}function fe(e){return fe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},fe(e)}function he(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&pe(e,t)}function pe(e,t){return pe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},pe(e,t)}function de(e,t,n){return(t=ye(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ye(e){var t=function(e,t){if("object"!=z(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=z(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==z(t)?t:t+""}var me=function(e){return e[e.LIVE=0]="LIVE",e[e.LATEST=1]="LATEST",e[e.PAST=2]="PAST",e[e.OLDEST=3]="OLDEST",e}({}),ve=function(e){function t(e,n,r){var o,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return ae(this,t),de(o=se(this,t,["id"]),"WindowState",me),o.roomId=e,o.topicId=n,o.tracker=r,o.internalState.traverseLock=!1,o.internalState.includeMyReactions=!0,o.internalState.myReactions={},i&&(o.tracker.client.on("NewMessage",function(e){return o.handleNewMessage(e)}),o.tracker.client.on("MessagesRedacted",function(e){return o.handleMessagesRedacted(e)}),o.tracker.client.on("ReactionUpdated",function(e){return o.handleReactionUpdated(e)}),o.tracker.client.on("Reacted",function(e){return o.handleReacted(e)})),o}return he(t,e),ue(t,[{key:"createMirror",value:function(){var e=new t(this.roomId,this.topicId,this.tracker,!1);return e.eventTarget=this.eventTarget,e._items=this._items,e.internalState=this.internalState,e}},{key:"isTraverseLocked",get:function(){return this.internalState.traverseLock}},{key:"myReactions",get:function(){return this.internalState.myReactions}},{key:"includeMyReactions",get:function(){return this.internalState.includeMyReactions},set:function(e){this.internalState.includeMyReactions=e}},{key:"setTraverseLock",value:(m=ie(ne().m(function e(n){return ne().w(function(e){for(;;)switch(e.n){case 0:if(this.internalState.traverseLock=n,!n||this.state===me.LIVE||this.state===me.LATEST){e.n=1;break}return e.n=1,Y(t,"resetToLatest",this,3)([]);case 1:return e.a(2)}},e,this)})),function(e){return m.apply(this,arguments)})},{key:"resetToLatest",value:(y=ie(ne().m(function e(){var n,r=arguments;return ne().w(function(e){for(;;)switch(e.n){case 0:if(n=r.length>0&&void 0!==r[0]&&r[0],!this.internalState.traverseLock){e.n=1;break}return e.a(2);case 1:return e.a(2,Y(t,"resetToLatest",this,3)([n]))}},e,this)})),function(){return y.apply(this,arguments)})},{key:"fetchNext",value:(d=ie(ne().m(function e(){return ne().w(function(e){for(;;)switch(e.n){case 0:if(!this.internalState.traverseLock){e.n=1;break}return e.a(2);case 1:return e.a(2,Y(t,"fetchNext",this,3)([]))}},e,this)})),function(){return d.apply(this,arguments)})},{key:"fetchPrevious",value:(p=ie(ne().m(function e(){return ne().w(function(e){for(;;)switch(e.n){case 0:if(!this.internalState.traverseLock){e.n=1;break}return e.a(2);case 1:return e.a(2,Y(t,"fetchPrevious",this,3)([]))}},e,this)})),function(){return p.apply(this,arguments)})},{key:"jumpTo",value:(h=ie(ne().m(function e(n){return ne().w(function(e){for(;;)switch(e.n){case 0:if(!this.internalState.traverseLock){e.n=1;break}return e.a(2);case 1:return e.a(2,Y(t,"jumpTo",this,3)([n]))}},e,this)})),function(e){return h.apply(this,arguments)})},{key:"_updateMessageReference",value:function(e){var t=this.get(e.refMessage.id);t&&this.set(K(K({},t),{},{topicRef:e.id}))}},{key:"fetchItemsAfter",value:(f=ie(ne().m(function e(){var t,n;return ne().w(function(e){for(;;)if(0===e.n)return n=null===(t=this.getAt(this.length-1))||void 0===t?void 0:t.id,e.a(2,n?this.fetchMessages({after:n}):null)},e,this)})),function(){return f.apply(this,arguments)})},{key:"fetchItemsAround",value:(l=ie(ne().m(function e(t){return ne().w(function(e){for(;;)if(0===e.n)return e.a(2,this.fetchMessages({around:t}))},e,this)})),function(e){return l.apply(this,arguments)})},{key:"fetchItemsBefore",value:(s=ie(ne().m(function e(){var t,n;return ne().w(function(e){for(;;)if(0===e.n)return n=null===(t=this.getAt(0))||void 0===t?void 0:t.id,e.a(2,n?this.fetchMessages({before:n}):null)},e,this)})),function(){return s.apply(this,arguments)})},{key:"fetchLatestItems",value:(u=ie(ne().m(function e(){return ne().w(function(e){for(;;)if(0===e.n)return e.a(2,this.fetchMessages({}))},e,this)})),function(){return u.apply(this,arguments)})},{key:"fetchMessages",value:(c=ie(ne().m(function e(t){var n;return ne().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.client.send("GetMessages",K({location:{roomId:this.roomId,topicId:this.topicId},limit:this.internalState.fetchLimit,includeMyReactions:this.internalState.includeMyReactions},t));case 1:if(!(n=e.v).error){e.n=2;break}throw new Error("Cannot fetch messages: ".concat(n.error.message));case 2:return this.storeMyReactions(n.data.messages,n.data.myReactions),e.a(2,n.data.messages)}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"storeMyReactions",value:function(e,t){if(this.internalState.includeMyReactions){var n,r=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=ee(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}(e);try{for(r.s();!(n=r.n()).done;){var o=n.value,i=null==t?void 0:t[o.id];null!=i&&i.length?this.internalState.myReactions[o.id]=i:delete this.internalState.myReactions[o.id]}}catch(e){r.e(e)}finally{r.f()}}}},{key:"getTopic",value:(a=ie(ne().m(function e(){return ne().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.rooms.getTopics(this.roomId,[this.topicId]);case 1:return e.a(2,e.v.get(this.topicId))}},e,this)})),function(){return a.apply(this,arguments)})},{key:"getLatestMessageId",value:(i=ie(ne().m(function e(){var t,n,r,o,i;return ne().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.getTopic();case 1:if(o=t=e.v,r=null===o){e.n=2;break}r=void 0===t;case 2:if(n=r){e.n=3;break}n=null===(t=t.lastMessage)||void 0===t;case 3:if(!n){e.n=4;break}i=void 0,e.n=5;break;case 4:i=t.id;case 5:return e.a(2,i)}},e,this)})),function(){return i.apply(this,arguments)})},{key:"isLatestItemLoaded",value:(o=ie(ne().m(function e(){var t;return ne().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.getLatestMessageId();case 1:return t=e.v,e.a(2,!t||this.has(t))}},e,this)})),function(){return o.apply(this,arguments)})},{key:"handleNewMessage",value:(r=ie(ne().m(function e(t){var n;return ne().w(function(e){for(;;)switch(e.n){case 0:[me.LATEST,me.LIVE].includes(this.state)&&t.message.location.roomId===this.roomId&&t.message.location.topicId===this.topicId&&(n=this.state,this.addItems([t.message],"tail"),this.emitChangeWithDiff(!0,n));case 1:return e.a(2)}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"handleReactionUpdated",value:function(e){var t=this.get(e.messageId);if(t){var n=t.reactions.findIndex(function(t){return t.type===e.reaction.type&&t.value===e.reaction.value});if(-1!==n||e.reaction.count){var r=Z(t.reactions);-1===n?r.push(e.reaction):e.reaction.count?r[n]=e.reaction:r.splice(n,1),this.set(K(K({},t),{},{reactions:r}))}}}},{key:"handleReacted",value:function(e){var t;if(this.has(e.messageId)){var n=e.reaction,r=n.type,o=n.value,i=n.isAdded,a=(null!==(t=this.internalState.myReactions[e.messageId])&&void 0!==t?t:[]).filter(function(e){return e.type!==r||e.value!==o});i&&a.push({type:r,value:o}),a.length?this.internalState.myReactions[e.messageId]=a:delete this.internalState.myReactions[e.messageId],this.eventTarget.emit("change",{setItems:[e.messageId]})}}},{key:"handleMessagesRedacted",value:(n=ie(ne().m(function e(t){var n;return ne().w(function(e){for(;;)switch(e.n){case 0:if(t.location.topicId===this.topicId&&t.location.roomId===this.roomId){e.n=1;break}return e.a(2);case 1:if(n=this.items.filter(function(e){return e.topicRef&&t.ids.includes(e.id)}).map(function(e){return e.topicRef}),this.delete.apply(this,Z(t.ids)),0!==this.length){e.n=2;break}return e.n=2,this.resetToLatest();case 2:n.length>0&&this.eventTarget.emit("reftopicsdeleted",n);case 3:return e.a(2)}},e,this)})),function(e){return n.apply(this,arguments)})}]);var n,r,o,i,a,c,u,s,l,f,h,p,d,y,m}(function(e){function t(){var e;ae(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return de(e=se(this,t,[].concat(r)),"internalState",{current:me.LIVE,ongoing:void 0,limit:1e3,retainRatio:1,fetchLimit:50,lastFetchCount:0,oldestId:null}),e}return he(t,e),ue(t,[{key:"state",get:function(){return this.internalState.current}},{key:"fetchLimit",get:function(){return this.internalState.fetchLimit},set:function(e){this.internalState.fetchLimit=e}},{key:"limit",get:function(){return this.internalState.limit},set:function(e){this.internalState.limit=e}},{key:"retainRatio",get:function(){return this.internalState.retainRatio},set:function(e){this.internalState.retainRatio=e}},{key:"hasLatest",get:function(){return[me.LATEST,me.LIVE].includes(this.state)}},{key:"hasOldest",get:function(){return this.state===me.OLDEST||this.state===me.LATEST&&this.length<this.fetchLimit||null!==this.internalState.oldestId&&this.has(this.internalState.oldestId)}},{key:"resetToLatest",value:(a=ie(ne().m(function e(){var t,n,r,o=arguments;return ne().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t=o.length>0&&void 0!==o[0]&&o[0],!this.internalState.ongoing&&(t||this.internalState.current!==me.LATEST)){e.n=1;break}return e.a(2);case 1:return r=this.state,this.internalState.ongoing=me.LATEST,e.p=2,e.n=3,this.fetchLatestItems();case 3:n=e.v,this.internalState.lastFetchCount=n.length;case 4:return e.p=4,this.internalState.ongoing=void 0,e.f(4);case 5:this._items.deleteAll(),this.addItems(n,"tail"),this.internalState.current=me.LATEST,this.emitChangeWithDiff(!0,r);case 6:return e.a(2)}},e,this,[[2,,4,5]])})),function(){return a.apply(this,arguments)})},{key:"fetchPrevious",value:(i=ie(ne().m(function e(){var t,n,r;return ne().w(function(e){for(;;)switch(e.p=e.n){case 0:if(!this.internalState.ongoing&&!this.hasOldest){e.n=1;break}return e.a(2);case 1:return n=this.state,this.internalState.ongoing=me.PAST,e.p=2,e.n=3,this.fetchItemsBefore();case 3:t=e.v,this.internalState.lastFetchCount=t?t.length:0;case 4:return e.p=4,this.internalState.ongoing=void 0,e.f(4);case 5:if(t){e.n=6;break}return e.a(2,this.resetToLatest());case 6:if(t.length){e.n=8;break}return r=this.getAt(0),this.internalState.oldestId=r?this.getId(r):null,e.n=7,this.refreshFetchedState();case 7:return this.internalState.current===me.PAST&&(this.internalState.current=me.OLDEST),this.emitChangeWithDiff(!1,n),e.a(2);case 8:return this.addItems(t,"head"),e.n=9,this.refreshFetchedState();case 9:this.emitChangeWithDiff(!0,n);case 10:return e.a(2)}},e,this,[[2,,4,5]])})),function(){return i.apply(this,arguments)})},{key:"fetchNext",value:(o=ie(ne().m(function e(){var t,n;return ne().w(function(e){for(;;)switch(e.p=e.n){case 0:if(!this.internalState.ongoing&&!this.hasLatest){e.n=1;break}return e.a(2);case 1:return n=this.state,this.internalState.ongoing=me.PAST,e.p=2,e.n=3,this.fetchItemsAfter();case 3:t=e.v,this.internalState.lastFetchCount=t?t.length:0;case 4:return e.p=4,this.internalState.ongoing=void 0,e.f(4);case 5:if(t){e.n=7;break}return e.n=6,this.resetToLatest();case 6:return e.a(2);case 7:if(!t.length){e.n=9;break}return this.addItems(t,"tail"),e.n=8,this.refreshFetchedState();case 8:return this.emitChangeWithDiff(!0,n),e.a(2);case 9:return e.a(2)}},e,this,[[2,,4,5]])})),function(){return o.apply(this,arguments)})},{key:"jumpTo",value:(r=ie(ne().m(function e(t){var n,r;return ne().w(function(e){for(;;)switch(e.p=e.n){case 0:if(!(this.internalState.ongoing||this.state!==me.LIVE&&this._items.has(t))){e.n=1;break}return e.a(2);case 1:return r=this.state,this.internalState.ongoing=me.PAST,e.p=2,e.n=3,this.fetchItemsAround(t);case 3:if(n=e.v,this.internalState.lastFetchCount=n?n.length:0,!n){e.n=4;break}return this._items.deleteAll(),this.addItems(n,"tail"),e.n=4,this.refreshFetchedState();case 4:return e.p=4,this.internalState.ongoing=void 0,e.f(4);case 5:this.emitChangeWithDiff(!!n,r);case 6:return e.a(2)}},e,this,[[2,,4,5]])})),function(e){return r.apply(this,arguments)})},{key:"refreshFetchedState",value:(n=ie(ne().m(function e(){var t;return ne().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.isLatestItemLoaded();case 1:if(!e.v){e.n=2;break}t=me.LATEST,e.n=3;break;case 2:t=me.PAST;case 3:this.internalState.current=t;case 4:return e.a(2)}},e,this)})),function(){return n.apply(this,arguments)})},{key:"addItems",value:function(e,t){var n,r,o=this;"head"===t&&(r=this.trimItemsArrayToLimit([].concat(Z(e),Z(this.items)),"tail")),"tail"===t&&(r=this.trimItemsArrayToLimit([].concat(Z(this.items),Z(e)),"head")),this._items.deleteAll(),(n=this._items).set.apply(n,Z(r.map(function(e){return[o.getId(e),e]})))}},{key:"emitChangeWithDiff",value:function(e,t){(e||t!==this.state)&&this.eventTarget.emit("change",{setItems:Array.from(this._items.items.keys())})}},{key:"trimItemsArrayToLimit",value:function(e,t){var n=this.limit;if(null===n||e.length<=n)return e;var r=Math.floor(n*this.internalState.retainRatio);return"head"===t?e.slice(-r):"tail"===t?e.slice(0,r):e}}]);var n,r,o,i,a}(G));function be(e){return be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},be(e)}function ge(e){return function(e){if(Array.isArray(e))return ke(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Se(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||Se(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Se(e,t){if(e){if("string"==typeof e)return ke(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ke(e,t):void 0}}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Oe(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Te(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Te(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Te(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Te(f,"constructor",s),Te(s,"constructor",u),u.displayName="GeneratorFunction",Te(s,o,"GeneratorFunction"),Te(f),Te(f,o,"Generator"),Te(f,r,function(){return this}),Te(f,"toString",function(){return"[object Generator]"}),(Oe=function(){return{w:i,m:h}})()}function Te(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Te=function(e,t,n,r){function i(t,n){Te(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Te(e,t,n,r)}function je(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Pe(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){je(i,r,o,a,c,"next",e)}function c(e){je(i,r,o,a,c,"throw",e)}a(void 0)})}}function Ie(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ee(r.key),r)}}function Re(e,t,n){return(t=Ee(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ee(e){var t=function(e,t){if("object"!=be(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=be(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==be(t)?t:t+""}var Ae=function(){return e=function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Re(this,"historyWindows",new x),Re(this,"traverseLock",!1),this.room=t,this.tracker=n,this.tracker.client.on("RoomUpdated",function(e){return r.handleRoomUpdated(e)}),this.tracker.client.on("NewTopic",function(e){return r.handleNewTopic(e)}),this.tracker.client.on("TopicDeleted",function(e){return r.handleTopicDeleted(e)}),this.updateTraverseLock(this.room),this.room.defaultTopic&&this.createHistoryWindowForTopic(this.room.defaultTopic)},t=[{key:"getMessagesWindow",value:(i=Pe(Oe().m(function e(t){var n,r,o=arguments;return Oe().w(function(e){for(;;)switch(e.n){case 0:if(n=o.length>1&&void 0!==o[1]&&o[1],this.historyWindows.has(t)||n){e.n=2;break}return e.n=1,this.tracker.rooms.getTopics(this.room.id,[t]);case 1:(r=e.v.get(t))&&this.createHistoryWindowForTopic(r);case 2:return e.a(2,this.historyWindows.get(t))}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"resync",value:(o=Pe(Oe().m(function e(t){var n,r,o,i;return Oe().w(function(e){for(;;)switch(e.p=e.n){case 0:this.room=t,this.updateTraverseLock(t),this.room.defaultTopic&&this.createHistoryWindowForTopic(this.room.defaultTopic),n=0,r=Array.from(this.historyWindows.items);case 1:if(!(n<r.length)){e.n=8;break}return o=we(r[n],2),i=o[1],e.p=2,e.n=3,i.setTraverseLock(this.traverseLock);case 3:if(!this.traverseLock){e.n=4;break}return e.a(3,7);case 4:if(i.state!==me.LATEST){e.n=5;break}return e.n=5,i.resetToLatest(!0);case 5:e.n=7;break;case 6:e.p=6,e.v;case 7:n++,e.n=1;break;case 8:return e.a(2)}},e,this,[[2,6]])})),function(e){return o.apply(this,arguments)})},{key:"handleRoomUpdated",value:(r=Pe(Oe().m(function e(t){var n,r,o,i;return Oe().w(function(e){for(;;)switch(e.n){case 0:if(this.room.id!==t.room.id){e.n=3;break}this.room=t.room,this.updateTraverseLock(t.room),t.room.defaultTopic&&this.createHistoryWindowForTopic(t.room.defaultTopic),n=0,r=Array.from(this.historyWindows.items);case 1:if(!(n<r.length)){e.n=3;break}return o=we(r[n],2),i=o[1],e.n=2,i.setTraverseLock(this.traverseLock);case 2:n++,e.n=1;break;case 3:return e.a(2)}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"handleNewTopic",value:function(e){this.room.id===e.roomId&&this.createHistoryWindowForTopic(e.topic)}},{key:"handleTopicDeleted",value:function(e){this.room.id===e.location.roomId&&this.historyWindows.delete(e.location.topicId)}},{key:"createHistoryWindowForTopic",value:function(e){var t=this;if(!this.historyWindows.has(e.id)){var n=new ve(this.room.id,e.id,this.tracker);if(n.setTraverseLock(this.traverseLock),this.historyWindows.set([e.id,n]),n.on("reftopicsdeleted",function(e){var n,r,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Se(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}(e);try{for(o.s();!(r=o.n()).done;){var i=r.value;t.historyWindows.delete(i)}}catch(e){o.e(e)}finally{o.f()}(n=t.tracker.rooms)._deleteTopicsFromRoom.apply(n,[t.room.id].concat(ge(e)))}),e.refMessage){var r=this.historyWindows.get(e.refMessage.location.topicId);null==r||r._updateMessageReference(e)}}}},{key:"updateTraverseLock",value:function(e){this.traverseLock="Ephemeral"===e.history.mode}}],t&&Ie(e.prototype,t),n&&Ie(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o,i}();function _e(e){return _e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_e(e)}function Me(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Fe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Fe(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function Fe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ce(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Le(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Le(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Le(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Le(f,"constructor",s),Le(s,"constructor",u),u.displayName="GeneratorFunction",Le(s,o,"GeneratorFunction"),Le(f),Le(f,o,"Generator"),Le(f,r,function(){return this}),Le(f,"toString",function(){return"[object Generator]"}),(Ce=function(){return{w:i,m:h}})()}function Le(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Le=function(e,t,n,r){function i(t,n){Le(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Le(e,t,n,r)}function xe(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Ue(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){xe(i,r,o,a,c,"next",e)}function c(e){xe(i,r,o,a,c,"throw",e)}a(void 0)})}}function De(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ne(r.key),r)}}function Ge(e,t,n){return(t=Ne(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ne(e){var t=function(e,t){if("object"!=_e(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=_e(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==_e(t)?t:t+""}var Be=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Ge(this,"roomHistories",new x),Ge(this,"deferredSession",new Q),this.tracker=t,this.tracker.client.on("Session",function(e){return n.handleSession(e)}),this.tracker.client.on("RoomJoined",function(e){return n.handleRoomJoin(e)}),this.tracker.client.on("RoomDeleted",function(e){return n.handleRoomDeleted(e)}),this.tracker.client.on("RoomLeft",function(e){return n.handleRoomLeft(e)})},t=[{key:"getRoomHistory",value:(o=Ue(Ce().m(function e(t){return Ce().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:return e.a(2,this.roomHistories.get(t))}},e,this)})),function(e){return o.apply(this,arguments)})},{key:"_resolveLastMessage",value:(r=Ue(Ce().m(function e(t){var n,r,o;return Ce().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.getRoomHistory(t.roomId).then(function(e){return null==e?void 0:e.getMessagesWindow(t.topicId,!0)}).then(function(e){return(null==e?void 0:e.hasLatest)&&e.getAt(e.length-1)});case 1:if(n=e.v){e.n=3;break}return e.n=2,this.tracker.client.send("GetMessages",{location:t,limit:1});case 2:o=e.v,n=null===(r=o.data)||void 0===r?void 0:r.messages[0];case 3:return e.a(2,n||null)}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"createHistoryForNewRoom",value:function(e){this.roomHistories.set([e.id,new Ae(e,this.tracker)])}},{key:"handleRoomDeleted",value:function(e){this.roomHistories.delete(e.id)}},{key:"handleRoomJoin",value:function(e){this.createHistoryForNewRoom(e.room)}},{key:"handleRoomLeft",value:function(e){this.roomHistories.delete(e.id)}},{key:"handleSession",value:function(e){for(var t=new Set(e.state.rooms.map(function(e){return e.id})),n=0,r=Array.from(this.roomHistories.items.keys());n<r.length;n++){var o=r[n];t.has(o)||this.roomHistories.delete(o)}var i,a=Me(e.state.rooms);try{for(a.s();!(i=a.n()).done;){var c=i.value,u=this.roomHistories.get(c.id);u?u.resync(c):this.createHistoryForNewRoom(c)}}catch(e){a.e(e)}finally{a.f()}this.deferredSession.resolve()}}],t&&De(e.prototype,t),n&&De(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o}();function We(e){return We="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},We(e)}function Je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function He(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Je(Object(n),!0).forEach(function(t){ot(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Je(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function $e(e){return function(e){if(Array.isArray(e))return ze(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ve(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qe(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Ve(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function Ve(e,t){if(e){if("string"==typeof e)return ze(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ze(e,t):void 0}}function ze(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function qe(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Ke(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Ke(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Ke(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Ke(f,"constructor",s),Ke(s,"constructor",u),u.displayName="GeneratorFunction",Ke(s,o,"GeneratorFunction"),Ke(f),Ke(f,o,"Generator"),Ke(f,r,function(){return this}),Ke(f,"toString",function(){return"[object Generator]"}),(qe=function(){return{w:i,m:h}})()}function Ke(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Ke=function(e,t,n,r){function i(t,n){Ke(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Ke(e,t,n,r)}function Ye(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Xe(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){Ye(i,r,o,a,c,"next",e)}function c(e){Ye(i,r,o,a,c,"throw",e)}a(void 0)})}}function Ze(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,it(r.key),r)}}function et(e,t,n){return t=nt(t),function(e,t){if(t&&("object"==We(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,tt()?Reflect.construct(t,n||[],nt(e).constructor):t.apply(e,n))}function tt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(tt=function(){return!!e})()}function nt(e){return nt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},nt(e)}function rt(e,t){return rt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},rt(e,t)}function ot(e,t,n){return(t=it(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function it(e){var t=function(e,t){if("object"!=We(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=We(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==We(t)?t:t+""}var at=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ot(n=et(this,t),"followedTopics",new x),ot(n,"followedTopicsPromises",new V),ot(n,"deferredSession",new Q),ot(n,"summariesCache",new Map),ot(n,"staleRooms",new Set),n.tracker=e,n.tracker.client.on("Session",function(e){return n.handleSession(e)}),n.tracker.client.on("RoomJoined",function(e){return n.handleRoomJoin(e)}),n.tracker.client.on("NewTopic",function(e){return n.handleNewTopic(e)}),n.tracker.client.on("FollowedTopicUpdated",function(e){return n.handleFollowedTopicUpdated(e)}),n.tracker.client.on("TopicFollowed",function(e){return n.handleTopicFollowed(e)}),n.tracker.client.on("TopicUnfollowed",function(e){return n.handleTopicUnfollowed(e)}),n.tracker.client.on("NewMessage",function(e){return n.handleNewMessage(e)}),n.tracker.client.on("RoomDeleted",function(e){return n.handleRoomDeleted(e)}),n.tracker.client.on("RoomLeft",function(e){return n.handleRoomLeft(e)}),n.tracker.client.on("TopicDeleted",function(e){return n.handleTopicDeleted(e)}),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&rt(e,t)}(t,e),n=t,r=[{key:"cacheForSpace",value:(l=Xe(qe().m(function e(t){var n,r,o,i,a=this;return qe().w(function(e){for(;;)switch(e.n){case 0:if(!(i=t)){e.n=2;break}return e.n=1,this.tracker.spaces.get();case 1:i=!e.v.has(t);case 2:if(!i){e.n=3;break}throw new Error("You are not in space ".concat(t));case 3:return e.n=4,this.tracker.rooms.get();case 4:if(n=e.v,(r=t?n.findBy("spaceId",t).items.map(function(e){return e.id}):n.items.filter(function(e){return!e.spaceId}).map(function(e){return e.id})).length){e.n=5;break}return e.a(2);case 5:if(r.some(function(e){return!a.followedTopics.has(e)||a.staleRooms.has(e)})){e.n=6;break}return e.a(2);case 6:return o="space_fetch_".concat(t||"spaceless"),this.followedTopicsPromises.notExist(o)&&this.followedTopicsPromises.registerByFunction(Xe(qe().m(function e(){var n;return qe().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,a.tracker.client.send("GetFollowedTopics",{location:{spaceId:t}});case 1:if(!(n=e.v).error){e.n=2;break}throw n.error;case 2:a.reconcileRoomsFollowedTopics(r,n.data.followedTopics);case 3:return e.a(2)}},e)})),o),e.n=7,this.followedTopicsPromises.get(o);case 7:return e.a(2)}},e,this)})),function(e){return l.apply(this,arguments)})},{key:"getForRoom",value:(s=Xe(qe().m(function e(t){var n=this;return qe().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.rooms.get();case 1:if(e.v.has(t)){e.n=2;break}return e.a(2,void 0);case 2:if(this.followedTopics.has(t)&&!this.staleRooms.has(t)){e.n=3;break}return this.followedTopicsPromises.notExist(t)&&this.followedTopicsPromises.registerByFunction(Xe(qe().m(function e(){var r;return qe().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,n.tracker.client.send("GetFollowedTopics",{location:{roomId:t}});case 1:if(!(r=e.v).error){e.n=2;break}throw r.error;case 2:n.applyRoomFollowedTopics(t,r.data.followedTopics),n.invalidateUnreadSummaries(t);case 3:return e.a(2)}},e)})),t),e.n=3,this.followedTopicsPromises.get(t);case 3:return e.a(2,this.followedTopics.get(t))}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"ackRoom",value:(u=Xe(qe().m(function e(t){var n,r,o,i,a;return qe().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.n=1,this.getForRoom(t);case 1:if(n=e.v){e.n=2;break}return e.a(2);case 2:r=Qe(n.items),e.p=3,r.s();case 4:if((o=r.n()).done){e.n=6;break}if(!(i=o.value).isUnread){e.n=5;break}return e.n=5,this.tracker.client.send("Ack",{location:i.location});case 5:e.n=4;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,r.e(a);case 8:return e.p=8,r.f(),e.f(8);case 9:return e.a(2)}},e,this,[[3,7,8,9]])})),function(e){return u.apply(this,arguments)})},{key:"summarize",value:(c=Xe(qe().m(function e(t){var n,r,o,i,a,c,u,s,l,f,h,p,d,y,m,v,b,g,w;return qe().w(function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.topicId?"topic:".concat(t.roomId,":").concat(t.topicId):t.roomId?"room:".concat(t.roomId):t.spaceId?"space:".concat(t.spaceId):"spaceless",!this.summariesCache.has(n)){e.n=1;break}return e.a(2,this.summariesCache.get(n));case 1:return r=[],e.n=2,this.tracker.rooms.get();case 2:if(i=e.v,!t.topicId){e.n=4;break}if(t.roomId){e.n=3;break}throw new Error("roomId is required when querying by topicId");case 3:r=[t.roomId],o=t.topicId,e.n=9;break;case 4:if(!t.roomId){e.n=5;break}r=[t.roomId],e.n=9;break;case 5:if(!t.spaceId){e.n=7;break}return e.n=6,this.cacheForSpace(t.spaceId);case 6:r=i.findBy("spaceId",t.spaceId).items.map(function(e){return e.id}),e.n=9;break;case 7:return e.n=8,this.cacheForSpace(null);case 8:r=i.items.filter(function(e){return!e.spaceId}).map(function(e){return e.id});case 9:a=0,c=0,u=0,s=Qe(r),e.p=10,s.s();case 11:if((l=s.n()).done){e.n=22;break}return f=l.value,e.n=12,this.getForRoom(f);case 12:if(h=e.v){e.n=13;break}return e.a(3,21);case 13:p=!1,d=Qe(h.items),e.p=14,d.s();case 15:if((y=d.n()).done){e.n=18;break}if(v=y.value,!o||v.location.topicId===o){e.n=16;break}return e.a(3,17);case 16:v.isUnread&&(p||(u++,p=!0),c++),a+=null!==(m=v.mentionCount)&&void 0!==m?m:0;case 17:e.n=15;break;case 18:e.n=20;break;case 19:e.p=19,g=e.v,d.e(g);case 20:return e.p=20,d.f(),e.f(20);case 21:e.n=11;break;case 22:e.n=24;break;case 23:e.p=23,w=e.v,s.e(w);case 24:return e.p=24,s.f(),e.f(24);case 25:return b={mentionCount:a,unreadTopicCount:c,unreadRoomCount:u,isUnread:c>0},this.summariesCache.set(n,b),e.a(2,b)}},e,this,[[14,19,20,21],[10,23,24,25]])})),function(e){return c.apply(this,arguments)})},{key:"_deleteByTopicIds",value:function(e){for(var t,n=this,r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];null===(t=this.followedTopics.get(e))||void 0===t||t.delete.apply(t,o),o.forEach(function(t){return n.invalidateUnreadSummaries(e,t)})}},{key:"handleSession",value:function(e){var t,n=Qe(this.followedTopics.items.keys());try{for(n.s();!(t=n.n()).done;){var r=t.value;this.staleRooms.add(r)}}catch(e){n.e(e)}finally{n.f()}this.followedTopicsPromises.forgetAll(),this.invalidateUnreadSummaries(),this.deferredSession.resolve()}},{key:"handleNewMessage",value:function(e){this.updateLocallyFollowedTopicOnNewMessage(e)}},{key:"handleFollowedTopicUpdated",value:function(e){var t;null===(t=this.followedTopics.get(e.followedTopic.location.roomId))||void 0===t||t.set(e.followedTopic),this.invalidateUnreadSummaries(e.followedTopic.location.roomId,e.followedTopic.location.topicId)}},{key:"handleTopicFollowed",value:function(e){this.setFollowedTopicsArray([e.followedTopic.location.roomId],[e.followedTopic]),this.invalidateUnreadSummaries(e.followedTopic.location.roomId,e.followedTopic.location.topicId)}},{key:"handleTopicUnfollowed",value:function(e){var t;null===(t=this.followedTopics.get(e.location.roomId))||void 0===t||t.delete(e.location.topicId),this.invalidateUnreadSummaries(e.location.roomId,e.location.topicId)}},{key:"handleRoomDeleted",value:function(e){this.clearRoomFollowedTopicsStructures(e.id)}},{key:"handleRoomJoin",value:function(e){this.clearRoomFollowedTopicsStructures(e.room.id)}},{key:"handleRoomLeft",value:function(e){this.clearRoomFollowedTopicsStructures(e.id)}},{key:"handleNewTopic",value:(a=Xe(qe().m(function e(t){var n,r;return qe().w(function(e){for(;;)switch(e.n){case 0:if(!this.followedTopics.has(t.roomId)){e.n=2;break}return e.n=1,this.tracker.client.send("GetFollowedTopics",{location:{roomId:t.roomId,topicId:t.topic.id}});case 1:n=e.v,(r=n.data.followedTopics[0])&&(this.followedTopics.get(t.roomId).set(r),this.invalidateUnreadSummaries(t.roomId,t.topic.id));case 2:return e.a(2)}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"handleTopicDeleted",value:function(e){var t;null===(t=this.followedTopics.get(e.location.roomId))||void 0===t||t.delete(e.location.topicId),this.invalidateUnreadSummaries(e.location.roomId,e.location.topicId)}},{key:"invalidateUnreadSummaries",value:function(e,t){if(e){if(this.summariesCache.delete("room:".concat(e)),t)this.summariesCache.delete("topic:".concat(e,":").concat(t));else{var n,r=Qe(this.summariesCache.keys());try{for(r.s();!(n=r.n()).done;){var o=n.value;o.startsWith("topic:".concat(e,":"))&&this.summariesCache.delete(o)}}catch(e){r.e(e)}finally{r.f()}}var i,a=Qe(this.summariesCache.keys());try{for(a.s();!(i=a.n()).done;){var c=i.value;(c.startsWith("space:")||"spaceless"===c)&&this.summariesCache.delete(c)}}catch(e){a.e(e)}finally{a.f()}}else this.summariesCache.clear();this.emit("change")}},{key:"invalidateUnreadSummariesForRooms",value:function(e){var t=this,n=new Set(e);e.forEach(function(e){t.summariesCache.delete("room:".concat(e))});var r,o=Qe(this.summariesCache.keys());try{for(o.s();!(r=o.n()).done;){var i=r.value;if(i.startsWith("space:")||"spaceless"===i)this.summariesCache.delete(i);else if(i.startsWith("topic:")){var a=i.split(":");a.length>=2&&n.has(a[1])&&this.summariesCache.delete(i)}}}catch(e){o.e(e)}finally{o.f()}this.emit("change")}},{key:"updateLocallyFollowedTopicOnNewMessage",value:(i=Xe(qe().m(function e(t){var n,r,o,i,a,c,u,s,l,f,h;return qe().w(function(e){for(;;)switch(e.n){case 0:if(n=this.followedTopics.get(t.message.location.roomId),r=null==n?void 0:n.get(t.message.location.topicId),n&&r&&"Ephemeral"!==t.message.type){e.n=1;break}return e.a(2);case 1:return e.n=2,this.tracker.getMe();case 2:if(o=e.v,t.message.author.user.id!==o.id){e.n=3;break}i={missed:0,lastAckMessageId:t.message.id},e.n=6;break;case 3:if("Text"!==t.message.type){e.n=5;break}return e.n=4,this.tracker.rooms.getMe(t.message.location.roomId);case 4:s=e.v,l=[].concat($e(null!==(a=null===(c=s.spaceMember)||void 0===c?void 0:c.roles)&&void 0!==a?a:[]),$e(null!==(u=s.roles)&&void 0!==u?u:[])),f=[].concat($e(l.map(function(e){return"<@&".concat(e,">")})),["<@".concat(o.id,">")]),h=f.some(function(e){return t.message.content.includes(e)}),i={missed:null===r.missed?null:r.missed+1,isUnread:!0,mentionCount:r.mentionCount+(h?1:0)},e.n=6;break;case 5:i={missed:null===r.missed?null:r.missed+1,isUnread:!0};case 6:n.set(He(He({},r),i)),this.invalidateUnreadSummaries(t.message.location.roomId,t.message.location.topicId);case 7:return e.a(2)}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"applyRoomFollowedTopics",value:function(e,t){var n;this.followedTopics.has(e)||this.followedTopics.set([e,new G(function(e){return e.location.topicId})]),(n=this.followedTopics.get(e)).reconcile.apply(n,$e(t)),this.staleRooms.delete(e)}},{key:"reconcileRoomsFollowedTopics",value:function(e,t){var n=this,r={};t.forEach(function(e){var t,n;(null!==(n=r[t=e.location.roomId])&&void 0!==n?n:r[t]=[]).push(e)}),e.forEach(function(e){var t;return n.applyRoomFollowedTopics(e,null!==(t=r[e])&&void 0!==t?t:[])}),this.invalidateUnreadSummariesForRooms(e)}},{key:"setFollowedTopicsArray",value:function(e,t){var n=this,r={};t.forEach(function(e){var t,n;null!==(n=r[t=e.location.roomId])&&void 0!==n||(r[t]=[]),r[e.location.roomId].push(e)}),e.forEach(function(e){var t;n.followedTopics.has(e)||n.followedTopics.set([e,new G(function(e){return e.location.topicId})]),r[e]&&(t=n.followedTopics.get(e)).set.apply(t,$e(r[e]))}),this.invalidateUnreadSummariesForRooms(e)}},{key:"clearRoomFollowedTopicsStructures",value:function(e){this.followedTopics.delete(e),this.followedTopicsPromises.forget(e),this.staleRooms.delete(e),this.invalidateUnreadSummaries(e)}}],r&&Ze(n.prototype,r),o&&Ze(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a,c,u,s,l}(a);function ct(e){return ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ct(e)}function ut(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function st(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ut(Object(n),!0).forEach(function(t){gt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ut(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function lt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=ht(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function ft(e){return function(e){if(Array.isArray(e))return pt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ht(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ht(e,t){if(e){if("string"==typeof e)return pt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pt(e,t):void 0}}function pt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function dt(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return yt(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(yt(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,yt(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,yt(f,"constructor",s),yt(s,"constructor",u),u.displayName="GeneratorFunction",yt(s,o,"GeneratorFunction"),yt(f),yt(f,o,"Generator"),yt(f,r,function(){return this}),yt(f,"toString",function(){return"[object Generator]"}),(dt=function(){return{w:i,m:h}})()}function yt(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}yt=function(e,t,n,r){function i(t,n){yt(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},yt(e,t,n,r)}function mt(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function vt(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){mt(i,r,o,a,c,"next",e)}function c(e){mt(i,r,o,a,c,"throw",e)}a(void 0)})}}function bt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,wt(r.key),r)}}function gt(e,t,n){return(t=wt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wt(e){var t=function(e,t){if("object"!=ct(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=ct(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==ct(t)?t:t+""}var St=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),gt(this,"messages",void 0),gt(this,"followedTopics",void 0),gt(this,"list",new G("id")),gt(this,"topics",new x),gt(this,"members",new x),gt(this,"deferredSession",new Q),gt(this,"membersPromises",new V),gt(this,"topicsPromises",new V),this.tracker=t,this.messages=new Be(t),this.followedTopics=new at(t),this.tracker.client.on("NewMessage",function(e){return n.handleNewMessage(e)}),this.tracker.client.on("MessagesRedacted",function(e){return n.handleMessagesRedacted(e)}),this.tracker.client.on("NewTopic",function(e){return n.handleNewTopic(e)}),this.tracker.client.on("TopicDeleted",function(e){return n.handleTopicDeleted(e)}),this.tracker.client.on("RoomJoined",function(e){return n.handleRoomJoined(e)}),this.tracker.client.on("RoomLeft",function(e){return n.handleRoomLeft(e)}),this.tracker.client.on("RoomUpdated",function(e){return n.handleRoomUpdated(e)}),this.tracker.client.on("RoomDeleted",function(e){return n.handleRoomDeleted(e)}),this.tracker.client.on("TopicUpdated",function(e){return n.handleTopicUpdated(e)}),this.tracker.client.on("RoomMembersJoined",function(e){return n.handleRoomMembersJoined(e)}),this.tracker.client.on("RoomMemberLeft",function(e){return n.handleRoomMemberLeft(e)}),this.tracker.client.on("RoomMembers",function(e){return n.handleRoomMembers(e)}),this.tracker.client.on("RoomMemberUpdated",function(e){return n.handleRoomMemberUpdated(e)}),this.tracker.client.on("SpaceMemberLeft",function(e){return n.handleSpaceMemberLeft(e)}),this.tracker.client.on("SpaceMemberUpdated",function(e){return n.handleSpaceMemberUpdated(e)}),this.tracker.client.on("SpaceDeleted",function(e){return n.handleSpaceDeleted(e)}),this.tracker.client.on("SpaceLeft",function(e){return n.handleSpaceDeleted(e)}),this.tracker.client.on("UserUpdated",function(e){return n.handleUserUpdated(e)}),this.tracker.client.on("Session",function(e){return n.handleSession(e)})},t=[{key:"getMembers",value:(a=vt(dt().m(function e(t){var n=this;return dt().w(function(e){for(;;)switch(e.n){case 0:return this.membersPromises.notExist(t)&&this.membersPromises.registerByFunction(vt(dt().m(function e(){var r;return dt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,n.tracker.client.send("GetRoomMembers",{id:t});case 1:if(!(r=e.v).error){e.n=2;break}throw r.error;case 2:n.handleRoomMembers(r.data);case 3:return e.a(2)}},e)})),t),e.n=1,this.membersPromises.get(t);case 1:return e.a(2,this.members.get(t))}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"getMe",value:(i=vt(dt().m(function e(t){var n,r;return dt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.getMe();case 1:if(n=e.v.id,this.list.has(t)){e.n=2;break}return e.a(2,void 0);case 2:return e.n=3,this.getMembers(t);case 3:return r=e.v,e.a(2,null==r?void 0:r.items.find(function(e){var t,r;return(null!==(t=null===(r=e.user)||void 0===r?void 0:r.id)&&void 0!==t?t:e.spaceMember.user.id)===n}))}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"get",value:function(){var e=vt(dt().m(function e(){return dt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:return e.a(2,this.list)}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getTopics",value:(o=vt(dt().m(function e(t,n){var r,o,i,a,c,u,s,l=this;return dt().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:if(null==n||!n.length){e.n=8;break}r=function(e){var n;return!(null!==(n=l.topics.get(t))&&void 0!==n&&n.has(e)||l.topicsPromises.has(t+e))},(o=n.filter(r)).length&&(i=this.tracker.client.send("GetTopics",{roomId:t,topicIds:o}).then(function(e){var t;return null===(t=l.topics.get(e.data.location.roomId))||void 0===t?void 0:t.set.apply(t,ft(e.data.topics))}),o.forEach(function(e){return l.topicsPromises.register(i,t+e)})),a=lt(n),e.p=2,a.s();case 3:if((c=a.n()).done){e.n=5;break}return u=c.value,e.n=4,this.topicsPromises.get(t+u);case 4:e.n=3;break;case 5:e.n=7;break;case 6:e.p=6,s=e.v,a.e(s);case 7:return e.p=7,a.f(),e.f(7);case 8:return e.a(2,this.topics.get(t))}},e,this,[[2,6,7,8]])})),function(e,t){return o.apply(this,arguments)})},{key:"_deleteTopicsFromRoom",value:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];null===(t=this.topics.get(e))||void 0===t||t.delete.apply(t,r)}},{key:"deleteRoom",value:function(){for(var e,t,n,r,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];(e=this.list).delete.apply(e,i),(t=this.members).delete.apply(t,i),(n=this.membersPromises).forget.apply(n,i);for(var c=0,u=i;c<u.length;c++){var s,l,f,h=u[c],p=null!==(s=null===(l=this.topics.get(h))||void 0===l?void 0:l.items.map(function(e){return e.id}))&&void 0!==s?s:[];(f=this.followedTopics)._deleteByTopicIds.apply(f,[h].concat(ft(p)))}(r=this.topics).delete.apply(r,i)}},{key:"deleteRoomsBySpaceId",value:function(e){this.deleteRoom.apply(this,ft(this.list.findBy("spaceId",e).items.map(function(e){return e.id})))}},{key:"handleSpaceMemberUpdated",value:function(e){var t,n=lt(this.list.findBy("spaceId",e.spaceId).items);try{for(n.s();!(t=n.n()).done;){var r=t.value,o=this.members.get(r.id);if(o&&o.has(e.userId)){var i=o.get(e.userId),a=e.member;a.user=i.spaceMember.user,o.set(st(st({},i),{},{spaceMember:a}))}}}catch(e){n.e(e)}finally{n.f()}}},{key:"handleSpaceMemberLeft",value:function(e){var t=this;this.list.findBy("spaceId",e.spaceId).items.forEach(function(n){var r;return null===(r=t.members.get(n.id))||void 0===r?void 0:r.delete(e.userId)})}},{key:"handleRoomMemberUpdated",value:function(e){var t,n;if(this.members.has(e.roomId)){var r=this.members.get(e.roomId),o=r.get(e.userId),i=e.member,a=null!==(t=null===(n=o.spaceMember)||void 0===n?void 0:n.user)&&void 0!==t?t:o.user;i.spaceMember?i.spaceMember.user=a:i.user=a,r.set(i)}}},{key:"handleSpaceDeleted",value:function(e){this.deleteRoomsBySpaceId(e.id)}},{key:"handleTopicDeleted",value:function(e){var t;this.topics.get(e.location.roomId).delete(e.location.topicId);var n=this.list.get(e.location.roomId);(null===(t=n.defaultTopic)||void 0===t?void 0:t.id)===e.location.topicId&&this.list.set(st(st({},n),{},{defaultTopic:null}))}},{key:"handleNewTopic",value:function(e){this.addJoinedRoomTopics(e.roomId,e.topic)}},{key:"addJoinedRoomTopics",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o;this.topics.has(e)?(o=this.topics.get(e)).set.apply(o,n):this.topics.set([e,new G("id",n)])}},{key:"handleRoomJoined",value:function(e){this.addJoinedRooms(e.room)}},{key:"handleRoomUpdated",value:function(e){this.list.has(e.room.id)&&this.list.set(e.room)}},{key:"handleRoomDeleted",value:function(e){this.deleteRoom(e.id)}},{key:"handleTopicUpdated",value:function(e){var t,n=this.list.get(e.location.roomId);if(null!==(t=this.topics.get(e.location.roomId))&&void 0!==t&&t.has(e.topic.id)&&this.topics.get(e.location.roomId).set(e.topic),n.defaultTopic.id===e.topic.id){var r=st({},n);r.defaultTopic=e.topic,this.list.set(r)}}},{key:"addJoinedRooms",value:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];for(var o=0,i=n;o<i.length;o++){var a=i[o];a.defaultTopic&&this.addJoinedRoomTopics(a.id,a.defaultTopic),"Pm"===a.type&&a.recipients&&(this.handleRoomMembers({id:a.id,members:a.recipients.map(function(e){return{user:e,spaceMember:null,roles:null,customColor:null,customNick:null,customAvatar:null,extras:""}})}),this.membersPromises.register(Promise.resolve(),a.id))}(e=this.list).set.apply(e,n)}},{key:"handleRoomLeft",value:function(e){this.deleteRoom(e.id)}},{key:"handleRoomMembersJoined",value:function(e){var t;this.members.has(e.roomId)&&(t=this.members.get(e.roomId)).set.apply(t,ft(e.members))}},{key:"handleRoomMemberLeft",value:function(e){this.members.has(e.roomId)&&this.members.get(e.roomId).delete(e.userId)}},{key:"handleRoomMembers",value:function(e){var t;this.members.has(e.id)?(t=this.members.get(e.id)).reconcile.apply(t,ft(e.members)):this.members.set([e.id,new G(function(e){var t,n;return null!==(t=null===(n=e.user)||void 0===n?void 0:n.id)&&void 0!==t?t:e.spaceMember.user.id},e.members)])}},{key:"handleSession",value:function(e){var t=new Set(e.state.rooms.map(function(e){return e.id})),n=this.list.items.filter(function(e){return!t.has(e.id)}).map(function(e){return e.id});n.length&&this.deleteRoom.apply(this,ft(n)),this.membersPromises.forgetAll(),this.topicsPromises.forgetAll(),this.addJoinedRooms.apply(this,ft(e.state.rooms)),this.deferredSession.resolve()}},{key:"handleUserUpdated",value:function(e){var t;this.members.items.forEach(function(t){var n=t.get(e.user.id);if(n){var r=st({},n);n.user?r.user=e.user:r.spaceMember.user=e.user,t.set(r)}});var n=[];this.list.items.forEach(function(t){var r;null!==(r=t.recipients)&&void 0!==r&&r.some(function(t){return t.id===e.user.id})&&(t.recipients=t.recipients.map(function(t){return t.id===e.user.id?e.user:t}),n.push(st({},t)))}),(t=this.list).set.apply(t,n)}},{key:"handleNewMessage",value:function(e){var t,n=this.topics.get(e.message.location.roomId),r=null==n?void 0:n.get(e.message.location.topicId);if(r){var o=st(st({},r),{},{messageCount:r.messageCount+1,lastMessage:e.message});n.set(o);var i=this.list.get(e.message.location.roomId);(null===(t=i.defaultTopic)||void 0===t?void 0:t.id)===e.message.location.topicId&&this.list.set(st(st({},i),{},{defaultTopic:o}))}}},{key:"handleMessagesRedacted",value:(r=vt(dt().m(function e(t){var n,r,o,i,a;return dt().w(function(e){for(;;)switch(e.n){case 0:if(n=this.topics.get(t.location.roomId),!(r=null==n?void 0:n.get(t.location.topicId))){e.n=4;break}if(!((o=Math.max(r.messageCount-t.ids.length,0))>0)){e.n=2;break}return e.n=1,this.messages._resolveLastMessage(t.location);case 1:a=e.v,e.n=3;break;case 2:a=null;case 3:i=a,n.set(st(st({},r),{},{messageCount:o,lastMessage:i}));case 4:return e.a(2)}},e,this)})),function(e){return r.apply(this,arguments)})}],t&&bt(e.prototype,t),n&&bt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o,i,a}();function kt(e){var t,n;return null!==(t=e.user)&&void 0!==t?t:null===(n=e.spaceMember)||void 0===n?void 0:n.user}function Ot(e){return Ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ot(e)}function Tt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Pt(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function jt(e){return function(e){if(Array.isArray(e))return It(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Pt(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pt(e,t){if(e){if("string"==typeof e)return It(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?It(e,t):void 0}}function It(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Rt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Et(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rt(Object(n),!0).forEach(function(t){Lt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function At(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return _t(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(_t(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,_t(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,_t(f,"constructor",s),_t(s,"constructor",u),u.displayName="GeneratorFunction",_t(s,o,"GeneratorFunction"),_t(f),_t(f,o,"Generator"),_t(f,r,function(){return this}),_t(f,"toString",function(){return"[object Generator]"}),(At=function(){return{w:i,m:h}})()}function _t(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}_t=function(e,t,n,r){function i(t,n){_t(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},_t(e,t,n,r)}function Mt(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Ft(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){Mt(i,r,o,a,c,"next",e)}function c(e){Mt(i,r,o,a,c,"throw",e)}a(void 0)})}}function Ct(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,xt(r.key),r)}}function Lt(e,t,n){return(t=xt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xt(e){var t=function(e,t){if("object"!=Ot(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Ot(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Ot(t)?t:t+""}var Ut=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Lt(this,"list",new G("id")),Lt(this,"roles",new x),Lt(this,"rooms",new x),Lt(this,"roomIdToSpaceId",new x),Lt(this,"members",new x),Lt(this,"deferredSession",new Q),Lt(this,"roomsPromises",new V),Lt(this,"membersPromises",new V),this.tracker=t,this.tracker.client.on("NewRoom",function(e){return n.handleNewRoom(e)}),this.tracker.client.on("RoomDeleted",function(e){return n.handleRoomDeleted(e)}),this.tracker.client.on("RoomUpdated",function(e){return n.handleRoomUpdated(e)}),this.tracker.client.on("SpaceDeleted",function(e){return n.handleSpaceDeleted(e)}),this.tracker.client.on("SpaceUpdated",function(e){return n.handleSpaceUpdated(e)}),this.tracker.client.on("SpaceJoined",function(e){return n.handleSpaceJoined(e)}),this.tracker.client.on("SpaceLeft",function(e){return n.handleSpaceDeleted(e)}),this.tracker.client.on("SpaceMemberJoined",function(e){return n.handleSpaceMemberJoined(e)}),this.tracker.client.on("SpaceMemberLeft",function(e){return n.handleSpaceMemberLeft(e)}),this.tracker.client.on("SpaceMembers",function(e){return n.handleSpaceMembers(e)}),this.tracker.client.on("SpaceRooms",function(e){return n.handleSpaceRooms(e)}),this.tracker.client.on("RoomSummaryUpdated",function(e){return n.handleRoomSummaryUpdated(e)}),this.tracker.client.on("SpaceMemberUpdated",function(e){return n.handleSpaceMemberUpdated(e)}),this.tracker.client.on("UserUpdated",function(e){return n.handleUserUpdated(e)}),this.tracker.client.on("NewRole",function(e){return n.handleNewRole(e)}),this.tracker.client.on("RoleDeleted",function(e){return n.handleRoleDeleted(e)}),this.tracker.client.on("RoleUpdated",function(e){return n.handleRoleUpdated(e)}),this.tracker.client.on("Session",function(e){return n.handleSession(e)})},t=[{key:"get",value:function(){var e=Ft(At().m(function e(){return At().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:return e.a(2,this.list)}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getRoles",value:(s=Ft(At().m(function e(t){return At().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:return e.a(2,this.roles.get(t))}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"getRooms",value:(u=Ft(At().m(function e(t){var n=this;return At().w(function(e){for(;;)switch(e.n){case 0:return this.roomsPromises.notExist(t)&&this.roomsPromises.registerByFunction(Ft(At().m(function e(){var r;return At().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,n.tracker.client.send("GetSpaceRooms",{id:t});case 1:if(!(r=e.v).error){e.n=2;break}throw r.error;case 2:n.handleSpaceRooms(r.data);case 3:return e.a(2)}},e)})),t),e.n=1,this.roomsPromises.get(t);case 1:return e.a(2,this.rooms.get(t))}},e,this)})),function(e){return u.apply(this,arguments)})},{key:"refreshRooms",value:(c=Ft(At().m(function e(t){return At().w(function(e){for(;;)if(0===e.n)return this.roomsPromises.forget(t),e.a(2,this.getRooms(t))},e,this)})),function(e){return c.apply(this,arguments)})},{key:"getMembers",value:(a=Ft(At().m(function e(t){var n=this;return At().w(function(e){for(;;)switch(e.n){case 0:return this.membersPromises.notExist(t)&&this.membersPromises.registerByFunction(Ft(At().m(function e(){var r;return At().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,n.tracker.client.send("GetSpaceMembers",{id:t});case 1:if(!(r=e.v).error){e.n=2;break}throw r.error;case 2:n.handleSpaceMembers(r.data);case 3:return e.a(2)}},e)})),t),e.n=1,this.membersPromises.get(t);case 1:return e.a(2,this.members.get(t))}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"getMe",value:(i=Ft(At().m(function e(t){var n,r;return At().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.getMe();case 1:if(n=e.v.id,this.list.has(t)){e.n=2;break}return e.a(2,void 0);case 2:return e.n=3,this.getMembers(t);case 3:return r=e.v,e.a(2,null==r?void 0:r.items.find(function(e){return e.user.id===n}))}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"handleNewRole",value:function(e){var t=this.roles.get(e.spaceId);t.set(e.role),this.list.get(e.spaceId).roles=t.items}},{key:"handleNewRoom",value:function(e){var t;null===(t=this.rooms.get(e.spaceId))||void 0===t||t.set(e.summary),this.roomIdToSpaceId.set([e.summary.id,e.spaceId])}},{key:"handleRoomUpdated",value:function(e){if(e.room.spaceId&&this.rooms.has(e.room.spaceId)){var t=this.rooms.get(e.room.spaceId);t.set(Et(Et({},t.get(e.room.id)),{},{name:e.room.name,description:e.room.description}))}}},{key:"handleRoomDeleted",value:(o=Ft(At().m(function e(t){var n,r,o,i;return At().w(function(e){for(;;)switch(e.n){case 0:if(r=this.roomIdToSpaceId.get(t.id),this.roomIdToSpaceId.delete(t.id),r){e.n=1;break}return e.a(2);case 1:o=this.list.get(r),i=!1,null===(n=this.rooms.get(r))||void 0===n||n.delete(t.id),o.systemRoom===t.id&&(o.systemRoom=null,i=!0),o.defaultRooms.includes(t.id)&&(o.defaultRooms=o.defaultRooms.filter(function(e){return e!==t.id}),i=!0),i&&this.list.set(o);case 2:return e.a(2)}},e,this)})),function(e){return o.apply(this,arguments)})},{key:"handleRoleDeleted",value:function(e){var t=this.roles.get(e.spaceId);t.delete(e.id),this.list.get(e.spaceId).roles=t.items}},{key:"handleSpaceUpdated",value:function(e){this.list.set(e.space)}},{key:"handleSpaceDeleted",value:function(e){var t,n,r,o=null!==(t=null===(n=this.rooms.get(e.id))||void 0===n?void 0:n.items.map(function(e){return e.id}))&&void 0!==t?t:[];(r=this.roomIdToSpaceId).delete.apply(r,jt(o)),this.roles.delete(e.id),this.members.delete(e.id),this.membersPromises.forget(e.id),this.rooms.delete(e.id),this.roomsPromises.forget(e.id),this.list.delete(e.id)}},{key:"handleSpaceJoined",value:function(e){this.addJoinedSpaces(e.space)}},{key:"addJoinedSpaces",value:function(){for(var e,t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];(e=this.roles).set.apply(e,jt(r.map(function(e){return[e.id,new G("id",e.roles)]}))),(t=this.list).set.apply(t,r)}},{key:"handleSpaceMemberJoined",value:function(e){this.members.has(e.spaceId)&&this.members.get(e.spaceId).set(e.member)}},{key:"handleSpaceMemberLeft",value:function(e){this.members.has(e.spaceId)&&this.members.get(e.spaceId).delete(e.userId)}},{key:"handleSpaceMembers",value:function(e){var t;this.members.has(e.id)?(t=this.members.get(e.id)).reconcile.apply(t,jt(e.members)):this.members.set([e.id,new G(function(e){return null==e?void 0:e.user.id},e.members)])}},{key:"handleSpaceRooms",value:function(e){var t,n=this;this.rooms.has(e.id)?(t=this.rooms.get(e.id)).reconcile.apply(t,jt(e.summaries)):this.rooms.set([e.id,new G("id",e.summaries)]),e.summaries.forEach(function(t){return n.roomIdToSpaceId.set([t.id,e.id])})}},{key:"handleRoomSummaryUpdated",value:(r=Ft(At().m(function e(t){var n,r,o,i,a;return At().w(function(e){for(;;)switch(e.n){case 0:if(n=this.roomIdToSpaceId.get(t.summary.id),r=this.roomsPromises.get(n),!n||!r){e.n=2;break}return e.n=1,r;case 1:o=this.rooms.get(n),i=o.get(t.summary.id),a=i?Et(Et({},i),t.summary):t.summary,o.set(a);case 2:return e.a(2)}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"handleSpaceMemberUpdated",value:function(e){if(this.members.has(e.spaceId)){var t=this.members.get(e.spaceId),n=t.get(e.userId);t.set(Et(Et({},e.member),{},{user:n.user}))}}},{key:"handleRoleUpdated",value:function(e){var t,n=this.roles.get(e.spaceId),r=n.get(e.role.id),o=e.role,i=[o];r.priority!==o.priority&&i.push.apply(i,jt(function(e,t,n){var r=n.priority-t.priority>0,o=!r,i=[];return e.forEach(function(e){e.id!==n.id&&(r&&t.priority<=e.priority&&(e.priority--,i.push(e)),o&&n.priority<=e.priority&&(e.priority++,i.push(e)))}),i}(n.items,r,o))),(t=this.roles.get(e.spaceId)).set.apply(t,i)}},{key:"handleSession",value:function(e){var t,n,r=new Set(e.state.spaces.map(function(e){return e.id})),o=this.list.items.filter(function(e){return!r.has(e.id)}).map(function(e){return e.id}),i=Tt(o);try{for(i.s();!(n=i.n()).done;){var a=n.value;this.handleSpaceDeleted({id:a})}}catch(e){i.e(e)}finally{i.f()}this.roomsPromises.forgetAll(),this.membersPromises.forgetAll();var c,u=Tt(e.state.spaces);try{for(u.s();!(c=u.n()).done;){var s,l=c.value;this.roles.has(l.id)?(s=this.roles.get(l.id)).reconcile.apply(s,jt(l.roles)):this.roles.set([l.id,new G("id",l.roles)])}}catch(e){u.e(e)}finally{u.f()}(t=this.list).set.apply(t,jt(e.state.spaces)),this.deferredSession.resolve()}},{key:"handleUserUpdated",value:function(e){this.members.items.forEach(function(t){var n=t.get(e.user.id);n&&t.set(Et(Et({},n),{},{user:e.user}))})}}],t&&Ct(e.prototype,t),n&&Ct(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o,i,a,c,u,s}();function Dt(e){return Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Dt(e)}function Gt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Jt(r.key),r)}}function Nt(e,t,n){return t&&Gt(e.prototype,t),n&&Gt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Bt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Wt(e,t,n){return(t=Jt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Jt(e){var t=function(e,t){if("object"!=Dt(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Dt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Dt(t)?t:t+""}var Ht=function(e){return e[e.Global=0]="Global",e[e.Space=1]="Space",e[e.Room=2]="Room",e[e.Topic=3]="Topic",e}({}),$t=Nt(function e(){Bt(this,e),Wt(this,"value",void 0),Wt(this,"maxLayer",void 0)}),Qt=function(){return Nt(function e(){Bt(this,e)},null,[{key:"getNames",value:function(){return Object.keys(this.list)}},{key:"getByName",value:function(e){return this.list[e]}},{key:"canBeDefinedOnLayer",value:function(e,t){if(!this.getByName(e))throw new Error("Invalid permission name: ".concat(e));return t<=this.getByName(e).maxLayer}}])}();function Vt(e){return Vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vt(e)}function zt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Yt(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function qt(e){return function(e){if(Array.isArray(e))return Xt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Yt(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||Yt(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Yt(e,t){if(e){if("string"==typeof e)return Xt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Xt(e,t):void 0}}function Xt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Zt(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return en(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(en(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,en(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,en(f,"constructor",s),en(s,"constructor",u),u.displayName="GeneratorFunction",en(s,o,"GeneratorFunction"),en(f),en(f,o,"Generator"),en(f,r,function(){return this}),en(f,"toString",function(){return"[object Generator]"}),(Zt=function(){return{w:i,m:h}})()}function en(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}en=function(e,t,n,r){function i(t,n){en(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},en(e,t,n,r)}function tn(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function nn(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){tn(i,r,o,a,c,"next",e)}function c(e){tn(i,r,o,a,c,"throw",e)}a(void 0)})}}function rn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ln(r.key),r)}}function on(e,t,n){return t=cn(t),function(e,t){if(t&&("object"==Vt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,an()?Reflect.construct(t,n||[],cn(e).constructor):t.apply(e,n))}function an(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(an=function(){return!!e})()}function cn(e){return cn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},cn(e)}function un(e,t){return un=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},un(e,t)}function sn(e,t,n){return(t=ln(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ln(e){var t=function(e,t){if("object"!=Vt(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Vt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Vt(t)?t:t+""}Wt(Qt,"list",{Root:{value:1,maxLayer:Ht.Room},CreateSpaces:{value:2,maxLayer:Ht.Global},ManageSpace:{value:4,maxLayer:Ht.Space},ManageRoles:{value:8,maxLayer:Ht.Space},CreateTopics:{value:32,maxLayer:Ht.Room},ManageTopic:{value:64,maxLayer:Ht.Topic},ManageMemberProfiles:{value:128,maxLayer:Ht.Space},ManageMemberRoles:{value:256,maxLayer:Ht.Room},CreateMessages:{value:512,maxLayer:Ht.Topic},ManagePermissions:{value:1024,maxLayer:Ht.Topic},CreateRooms:{value:2048,maxLayer:Ht.Space},ManageRoom:{value:4096,maxLayer:Ht.Room},CreateEmoticons:{value:8192,maxLayer:Ht.Space},ManageEmoticons:{value:16384,maxLayer:Ht.Space},ManageBans:{value:32768,maxLayer:Ht.Room},Kick:{value:65536,maxLayer:Ht.Room},ChangeOwnProfile:{value:1<<17,maxLayer:Ht.Space},ChangeOwnColor:{value:1<<18,maxLayer:Ht.Room},RedactMessages:{value:1<<19,maxLayer:Ht.Topic},AddMembers:{value:1<<20,maxLayer:Ht.Space},React:{value:1<<21,maxLayer:Ht.Topic},CreatePolls:{value:1<<22,maxLayer:Ht.Topic}});var fn=function(e,t){return[e.spaceId,e.roomId,e.topicId,null==t?void 0:t.type,null==t?void 0:t.userId,null==t?void 0:t.roleId].filter(Boolean).join("/")},hn=function(e){return fn(e.location,e.target)},pn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),sn(n=on(this,t),"overwrites",new x),sn(n,"overwritesPromises",new V),n.tracker=e,n.tracker.client.on("PermissionOverwrites",function(e){return n.handlePermissionOverwrites(e)}),n.tracker.client.on("PermissionOverwritesUpdated",function(e){return n.handlePermissionOverwrites(e)}),n.tracker.client.on("SpaceDeleted",function(e){return n.handleSpaceDeleted(e)}),n.tracker.client.on("SpaceLeft",function(e){return n.handleSpaceDeleted(e)}),n.tracker.client.on("RoomDeleted",function(e){return n.handleRoomDeleted(e)}),n.tracker.client.on("RoomLeft",function(e){return n.handleRoomDeleted(e)}),n.tracker.client.on("TopicDeleted",function(e){return n.handleTopicDeleted(e)}),n.tracker.client.on("RoleDeleted",function(e){return n.handleRoleDeleted(e)}),n.tracker.client.on("SpaceMemberUpdated",function(e){return n.handleSpaceMemberUpdated(e)}),n.tracker.client.on("RoomMemberUpdated",function(e){return n.handleRoomMemberUpdated(e)}),n.tracker.client.on("Session",function(e){return n.handleSession(e)}),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&un(e,t)}(t,e),n=t,r=[{key:"getOverwrites",value:(f=nn(Zt().m(function e(t,n){var r,o=this;return Zt().w(function(e){for(;;)switch(e.n){case 0:return this.validateLocation(t),r=fn(t,n),this.overwritesPromises.notExist(r)&&this.overwritesPromises.registerByFunction(nn(Zt().m(function e(){var r;return Zt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.tracker.client.send("GetPermissionOverwrites",{location:t,target:n});case 1:if(!(r=e.v).error){e.n=2;break}throw r.error;case 2:o.handlePermissionOverwrites(r.data);case 3:return e.a(2)}},e)})),r),e.n=1,this.overwritesPromises.get(r);case 1:return e.a(2,this.overwrites.get(r))}},e,this)})),function(e,t){return f.apply(this,arguments)})},{key:"check",value:(l=nn(Zt().m(function e(t,n){var r,o;return Zt().w(function(e){for(;;)switch(e.n){case 0:if(t.length){e.n=1;break}throw new Error("Permission names array cannot be empty");case 1:return e.n=2,this.calculatePermissions(n);case 2:return r=e.v,o=[],t.forEach(function(e){~r&Qt.getByName(e).value&&o.push(e)}),e.a(2,{ok:0===o.length,hasAll:0===o.length,hasAny:o.length<t.length,missing:o})}},e,this)})),function(e,t){return l.apply(this,arguments)})},{key:"calculatePermissions",value:(s=nn(Zt().m(function e(t){var n,r,o,i,a,c,u,s,l,f,h,p,d,y,m,v,b,g,w,S,k,O,T,j,P;return Zt().w(function(e){for(;;)switch(e.n){case 0:if(!t.roomId){e.n=2;break}return e.n=1,this.tracker.rooms.get();case 1:v=e.v.get(t.roomId),e.n=3;break;case 2:v=null;case 3:return c=v,t={spaceId:null!==(n=t.spaceId)&&void 0!==n?n:null==c?void 0:c.spaceId,roomId:t.roomId,topicId:t.topicId},this.validateLocation(t),e.n=4,this.tracker.getMe();case 4:return u=e.v.id,e.n=5,this.fetchMembersOrFail(t);case 5:if(s=e.v,l=Kt(s,2),f=l[0],h=l[1],p=[].concat(qt(null!==(r=null==f?void 0:f.roles)&&void 0!==r?r:[]),qt(null!==(o=null==h?void 0:h.roles)&&void 0!==o?o:[])),d=[this.getOverwrites({},{type:"User",userId:u}).then(function(e){return e.overwrites})],!(b=t.spaceId)){e.n=9;break}return e.n=6,this.tracker.spaces.get();case 6:if(S=i=e.v,!(w=null!==S)){e.n=7;break}w=void 0!==i;case 7:if(!(g=w)){e.n=8;break}g=i.has(t.spaceId);case 8:b=g;case 9:if(!b){e.n=10;break}y={spaceId:t.spaceId},d.push(this.collectRoleOverwrites(y,p)),d.push(this.getOverwrites(y,{type:"User",userId:u}).then(function(e){return e.overwrites}));case 10:if(c&&(m={spaceId:t.spaceId,roomId:t.roomId},p.length&&d.push(this.collectRoleOverwrites(m,p)),d.push(this.getOverwrites(m,{type:"User",userId:u}).then(function(e){return e.overwrites}))),!(k=t.topicId)){e.n=14;break}return e.n=11,this.tracker.rooms.getTopics(t.roomId);case 11:if(j=a=e.v,!(T=null!==j)){e.n=12;break}T=void 0!==a;case 12:if(!(O=T)){e.n=13;break}O=a.has(t.topicId);case 13:k=O;case 14:if(!k){e.n=15;break}p.length&&d.push(this.collectRoleOverwrites(t,p)),d.push(this.getOverwrites(t,{type:"User",userId:u}).then(function(e){return e.overwrites}));case 15:return P=this,e.n=16,Promise.all(d);case 16:return e.a(2,P.resolveOverwritesHierarchy.call(P,e.v))}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"handlePermissionOverwrites",value:function(e){this.overwrites.set([hn(e),e]),this.emit("change")}},{key:"handleSpaceDeleted",value:function(e){var t,n=this.deleteOverwritesByIdPrefix(fn({spaceId:e.id}));(t=this.overwritesPromises).forget.apply(t,qt(n))}},{key:"handleRoomDeleted",value:(u=nn(Zt().m(function e(t){var n,r,o;return Zt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.rooms.get();case 1:(n=e.v.get(t.id))&&(o=this.deleteOverwritesByIdPrefix(fn({spaceId:n.spaceId,roomId:n.id})),(r=this.overwritesPromises).forget.apply(r,qt(o)));case 2:return e.a(2)}},e,this)})),function(e){return u.apply(this,arguments)})},{key:"handleTopicDeleted",value:function(e){var t,n=this.deleteOverwritesByIdPrefix(fn(e.location));(t=this.overwritesPromises).forget.apply(t,qt(n))}},{key:"handleRoleDeleted",value:function(e){var t,n=this.deleteOverwritesByIdPrefix(fn({spaceId:e.spaceId},{type:"Role",roleId:e.id}));(t=this.overwritesPromises).forget.apply(t,qt(n))}},{key:"handleSpaceMemberUpdated",value:function(e){var t;e.userId===(null===(t=this.tracker.me)||void 0===t?void 0:t.id)&&this.emit("change")}},{key:"handleRoomMemberUpdated",value:function(e){var t;e.userId===(null===(t=this.tracker.me)||void 0===t?void 0:t.id)&&this.emit("change")}},{key:"deleteOverwritesByIdPrefix",value:function(e){var t=this,n=[];return this.overwrites.items.forEach(function(r){var o=hn(r);o.startsWith(e)&&(n.push(o),t.overwrites.delete(o))}),n}},{key:"collectRoleOverwrites",value:(c=nn(Zt().m(function e(t,n){var r,o=this;return Zt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,Promise.all(n.map(function(e){return o.getOverwrites(t,{type:"Role",roleId:e})}));case 1:return r=e.v,e.a(2,this.resolveOverwritesFromRolesByOrder(t.spaceId,r))}},e,this)})),function(e,t){return c.apply(this,arguments)})},{key:"resolveOverwritesFromRolesByOrder",value:(a=nn(Zt().m(function e(t,n){var r,o,i,a,c;return Zt().w(function(e){for(;;)switch(e.n){case 0:return r=0,o=0,e.n=1,this.tracker.spaces.getRoles(t);case 1:return i=e.v,a=n.sort(function(e,t){return i.get(e.target.roleId).priority-i.get(t.target.roleId).priority}),c=n.reduce(function(e,t){var n,r,o,i;return Math.max(e,null!==(n=null===(r=t.overwrites.allow)||void 0===r?void 0:r.toString(2).length)&&void 0!==n?n:0,null!==(o=null===(i=t.overwrites.deny)||void 0===i?void 0:i.toString(2).length)&&void 0!==o?o:0)},0),a.forEach(function(e){for(var t,n,i,a,u=e.overwrites,s=null!==(t=null===(n=u.deny)||void 0===n?void 0:n.toString(2).split("").reverse().join(""))&&void 0!==t?t:"",l=null!==(i=null===(a=u.allow)||void 0===a?void 0:a.toString(2).split("").reverse().join(""))&&void 0!==i?i:"",f=0;f<c;f++){var h,p,d=parseInt(null!==(h=s[f])&&void 0!==h?h:"0"),y=parseInt(null!==(p=l[f])&&void 0!==p?p:"0");d&&(o|=1<<f),y&&(r|=1<<f)}}),e.a(2,{allow:r,deny:o})}},e,this)})),function(e,t){return a.apply(this,arguments)})},{key:"resolveOverwritesHierarchy",value:function(e){var t,n=0,r=zt(e);try{for(r.s();!(t=r.n()).done;){var o=t.value;if(o.allow&Qt.getByName("Root").value)return this.getRootAccessValue();n=n&~o.deny|o.allow}}catch(e){r.e(e)}finally{r.f()}return n}},{key:"getRootAccessValue",value:function(){var e,t=0,n=zt(Qt.getNames());try{for(n.s();!(e=n.n()).done;){var r=e.value;t|=Qt.getByName(r).value}}catch(e){n.e(e)}finally{n.f()}return t}},{key:"fetchMembersOrFail",value:(i=nn(Zt().m(function e(t){var n,r,o,i;return Zt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,Promise.all([t.spaceId?this.tracker.spaces.getMe(t.spaceId):null,t.roomId?this.tracker.rooms.getMe(t.roomId):null]);case 1:if(n=e.v,r=t.spaceId&&!n[0],o=t.roomId&&!n[1],!r&&!o){e.n=2;break}throw i=r?"space (".concat(t.spaceId,")"):"room (".concat(t.roomId,")"),new Error("Attempting to calculate permissions for a ".concat(i," that the user does not belong to"));case 2:return e.a(2,n)}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"validateLocation",value:function(e){if(e.topicId&&!e.roomId)throw new Error("Corrupted arguments hierarchy")}},{key:"handleSession",value:function(e){this.overwritesPromises.forgetAll(),this.emit("change")}}],r&&rn(n.prototype,r),o&&rn(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a,c,u,s,l,f}(a);function dn(e){return dn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dn(e)}function yn(e){return function(e){if(Array.isArray(e))return mn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return mn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function vn(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return bn(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(bn(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,bn(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,bn(f,"constructor",s),bn(s,"constructor",u),u.displayName="GeneratorFunction",bn(s,o,"GeneratorFunction"),bn(f),bn(f,o,"Generator"),bn(f,r,function(){return this}),bn(f,"toString",function(){return"[object Generator]"}),(vn=function(){return{w:i,m:h}})()}function bn(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}bn=function(e,t,n,r){function i(t,n){bn(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},bn(e,t,n,r)}function gn(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function wn(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){gn(i,r,o,a,c,"next",e)}function c(e){gn(i,r,o,a,c,"throw",e)}a(void 0)})}}function Sn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,On(r.key),r)}}function kn(e,t,n){return(t=On(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function On(e){var t=function(e,t){if("object"!=dn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=dn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==dn(t)?t:t+""}var Tn="global",jn=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),kn(this,"list",new x),kn(this,"emoticonsPromises",new V),this.tracker=t,this.tracker.client.on("Emoticons",function(e){return n.handleEmoticons(e)}),this.tracker.client.on("NewEmoticon",function(e){return n.handleNewEmoticon(e)}),this.tracker.client.on("EmoticonDeleted",function(e){return n.handleEmoticonDeleted(e)}),this.tracker.client.on("SpaceDeleted",function(e){return n.handleSpaceDeleted(e)}),this.tracker.client.on("Session",function(){return n.handleSession()})},t=[{key:"get",value:function(){var e=wn(vn().m(function e(t){var n,r=this;return vn().w(function(e){for(;;)switch(e.n){case 0:return n=null!=t?t:Tn,this.emoticonsPromises.notExist(n)&&this.emoticonsPromises.registerByFunction(wn(vn().m(function e(){var n;return vn().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,r.tracker.client.send("GetEmoticons",{spaceId:t});case 1:if(!(n=e.v).error){e.n=2;break}throw n.error;case 2:r.handleEmoticons(n.data);case 3:return e.a(2)}},e)})),n),e.n=1,this.emoticonsPromises.get(n);case 1:return e.a(2,this.list.get(n))}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"handleEmoticons",value:function(e){var t,n,r=null!==(t=e.location.spaceId)&&void 0!==t?t:Tn;this.list.has(r)||this.list.set([r,new G("id")]),(n=this.list.get(r)).reconcile.apply(n,yn(e.emoticons))}},{key:"handleNewEmoticon",value:function(e){var t,n=this.list.get(null!==(t=e.emoticon.spaceId)&&void 0!==t?t:Tn);null==n||n.set(e.emoticon)}},{key:"handleEmoticonDeleted",value:function(e){var t,n=this.list.get(null!==(t=e.spaceId)&&void 0!==t?t:Tn);null==n||n.delete(e.emoticonId)}},{key:"handleSpaceDeleted",value:function(e){this.list.delete(e.id)}},{key:"handleSession",value:function(){this.emoticonsPromises.forgetAll()}}],t&&Sn(e.prototype,t),n&&Sn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Pn(e){return Pn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pn(e)}function In(e){return function(e){if(Array.isArray(e))return Rn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Rn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Rn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function En(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return An(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(An(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,An(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,An(f,"constructor",s),An(s,"constructor",u),u.displayName="GeneratorFunction",An(s,o,"GeneratorFunction"),An(f),An(f,o,"Generator"),An(f,r,function(){return this}),An(f,"toString",function(){return"[object Generator]"}),(En=function(){return{w:i,m:h}})()}function An(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}An=function(e,t,n,r){function i(t,n){An(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},An(e,t,n,r)}function _n(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Mn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Cn(r.key),r)}}function Fn(e,t,n){return(t=Cn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Cn(e){var t=function(e,t){if("object"!=Pn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Pn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Pn(t)?t:t+""}var Ln=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Fn(this,"onlineStatus",new a),Fn(this,"users",new G("id")),this.tracker=t,t.client.on("UserUpdated",function(e){return n.handleUsers([e.user])}),t.client.on("RoomMembersJoined",function(e){return n.handleMembers(e.members)}),t.client.on("SpaceMemberJoined",function(e){return n.handleMembers([e.member])}),t.client.on("SpaceMembers",function(e){return n.handleMembers(e.members)}),t.client.on("RoomMembers",function(e){return n.handleMembers(e.members)}),t.client.on("Messages",function(e){return n.handleUsers(e.messages.map(function(e){return e.author.user}))}),t.client.on("NewMessage",function(e){return n.handleUsers([e.message.author.user])}),t.client.on("Session",function(e){return n.handleSession(e)})},t=[{key:"getAvailable",value:(r=En().m(function e(){return En().w(function(e){for(;;)if(0===e.n)return e.a(2,this.users)},e,this)}),o=function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){_n(i,n,o,a,c,"next",e)}function c(e){_n(i,n,o,a,c,"throw",e)}a(void 0)})},function(){return o.apply(this,arguments)})},{key:"handleMembers",value:function(e){this.handleUsers(e.map(kt))}},{key:"handleSession",value:function(e){this.handleUsers([e.user])}},{key:"handleUsers",value:function(e){var t,n=this;e.forEach(function(e){var t=n.users.get(e.id);t&&t.status!==e.status&&n.onlineStatus.emit("change",e)}),(t=this.users).set.apply(t,In(e))}}],t&&Mn(e.prototype,t),n&&Mn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o}();function xn(e){return xn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},xn(e)}function Un(e){return function(e){if(Array.isArray(e))return Dn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Dn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Dn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Dn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Gn(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Nn(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Nn(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Nn(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Nn(f,"constructor",s),Nn(s,"constructor",u),u.displayName="GeneratorFunction",Nn(s,o,"GeneratorFunction"),Nn(f),Nn(f,o,"Generator"),Nn(f,r,function(){return this}),Nn(f,"toString",function(){return"[object Generator]"}),(Gn=function(){return{w:i,m:h}})()}function Nn(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Nn=function(e,t,n,r){function i(t,n){Nn(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Nn(e,t,n,r)}function Bn(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Wn(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){Bn(i,r,o,a,c,"next",e)}function c(e){Bn(i,r,o,a,c,"throw",e)}a(void 0)})}}function Jn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,$n(r.key),r)}}function Hn(e,t,n){return(t=$n(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $n(e){var t=function(e,t){if("object"!=xn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=xn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==xn(t)?t:t+""}var Qn=function(e,t){return"".concat(e,"-").concat(t)},Vn=function(e){return Qn(e.refUser.id,e.type)},zn=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Hn(this,"relationships",new G(Vn)),Hn(this,"promises",new V),this.tracker=t,this.tracker.client.on("Relationships",function(e){return n.handleRelationships(e)}),this.tracker.client.on("NewRelationship",function(e){return n.handleNewRelationship(e)}),this.tracker.client.on("RelationshipDeleted",function(e){return n.handleRelationshipDeleted(e)}),this.tracker.client.on("Session",function(){return n.handleSession()})},t=[{key:"get",value:function(){var e=Wn(Gn().m(function e(){var t=this;return Gn().w(function(e){for(;;)switch(e.n){case 0:return this.promises.notExist("all")&&this.promises.registerByFunction(Wn(Gn().m(function e(){var n;return Gn().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,t.tracker.client.send("GetRelationships",{});case 1:if(!(n=e.v).error){e.n=2;break}throw n.error;case 2:return e.a(2)}},e)})),"all"),e.n=1,this.promises.get("all");case 1:return e.a(2,this.relationships)}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"exists",value:(r=Wn(Gn().m(function e(t,n){return Gn().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.get();case 1:return e.a(2,this.relationships.has(Qn(t,n)))}},e,this)})),function(e,t){return r.apply(this,arguments)})},{key:"handleRelationships",value:function(e){var t;(t=this.relationships).reconcile.apply(t,Un(e.relationships))}},{key:"handleNewRelationship",value:function(e){this.promises.has("all")&&this.relationships.set(e.relationship)}},{key:"handleRelationshipDeleted",value:function(e){this.promises.has("all")&&this.relationships.delete(Vn(e.relationship))}},{key:"handleSession",value:function(){this.promises.forgetAll()}}],t&&Jn(e.prototype,t),n&&Jn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r}();function qn(e){return qn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qn(e)}function Kn(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Yn(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Yn(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Yn(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Yn(f,"constructor",s),Yn(s,"constructor",u),u.displayName="GeneratorFunction",Yn(s,o,"GeneratorFunction"),Yn(f),Yn(f,o,"Generator"),Yn(f,r,function(){return this}),Yn(f,"toString",function(){return"[object Generator]"}),(Kn=function(){return{w:i,m:h}})()}function Yn(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Yn=function(e,t,n,r){function i(t,n){Yn(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Yn(e,t,n,r)}function Xn(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Zn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,tr(r.key),r)}}function er(e,t,n){return(t=tr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tr(e){var t=function(e,t){if("object"!=qn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=qn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==qn(t)?t:t+""}var nr=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),er(this,"client",void 0),er(this,"permissions",void 0),er(this,"rooms",void 0),er(this,"spaces",void 0),er(this,"emoticons",void 0),er(this,"users",void 0),er(this,"relationships",void 0),er(this,"_me",null),er(this,"deferredSession",new Q),this.client=t,this.client.on("Session",function(e){return n.handleSession(e)}),this.permissions=new pn(this),this.rooms=new St(this),this.spaces=new Ut(this),this.emoticons=new jn(this),this.users=new Ln(this),this.relationships=new zn(this)},t=[{key:"me",get:function(){return this._me}},{key:"getMe",value:(r=Kn().m(function e(){return Kn().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:return e.a(2,this._me)}},e,this)}),o=function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){Xn(i,n,o,a,c,"next",e)}function c(e){Xn(i,n,o,a,c,"throw",e)}a(void 0)})},function(){return o.apply(this,arguments)})},{key:"handleSession",value:function(e){this._me=e.user,this.deferredSession.resolve()}}],t&&Zn(e.prototype,t),n&&Zn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o}();function rr(e){return rr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rr(e)}function or(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ir(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ir(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function ir(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ar(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return cr(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(cr(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,cr(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,cr(f,"constructor",s),cr(s,"constructor",u),u.displayName="GeneratorFunction",cr(s,o,"GeneratorFunction"),cr(f),cr(f,o,"Generator"),cr(f,r,function(){return this}),cr(f,"toString",function(){return"[object Generator]"}),(ar=function(){return{w:i,m:h}})()}function cr(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}cr=function(e,t,n,r){function i(t,n){cr(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},cr(e,t,n,r)}function ur(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function sr(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){ur(i,r,o,a,c,"next",e)}function c(e){ur(i,r,o,a,c,"throw",e)}a(void 0)})}}function lr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,mr(r.key),r)}}function fr(e,t,n){return t=pr(t),function(e,t){if(t&&("object"==rr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,hr()?Reflect.construct(t,n||[],pr(e).constructor):t.apply(e,n))}function hr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(hr=function(){return!!e})()}function pr(e){return pr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},pr(e)}function dr(e,t){return dr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},dr(e,t)}function yr(e,t,n){return(t=mr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mr(e){var t=function(e,t){if("object"!=rr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=rr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==rr(t)?t:t+""}var vr=function(e){return e.connect="connect",e.disconnect="disconnect",e.message="message",e.error="error",e}(vr||{}),br=function(e){function t(e){var n,r,o,i,a,c,u,s,l;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),yr(l=fr(this,t),"Event",vr),yr(l,"state",void 0),yr(l,"ws",null),yr(l,"sendQueue",[]),yr(l,"connectingTimeoutId",void 0),yr(l,"authenticated",void 0),yr(l,"authenticatedResolvers",null),yr(l,"connectPromise",null),yr(l,"pingMonitorInterval",void 0),yr(l,"inFlightPingTimeout",void 0),yr(l,"lastReceivedMessageAt",void 0),l.options=e,(null===(n=l.options.stateTracking)||void 0===n||n)&&(l.state=new nr(l)),null!==(r=e.ping)&&void 0!==r||(e.ping={}),null!==(i=(o=e.ping).enabled)&&void 0!==i||(o.enabled=!0),null!==(c=(a=e.ping).noActivityTimeoutMs)&&void 0!==c||(a.noActivityTimeoutMs=15e3),null!==(s=(u=e.ping).pongBackTimeoutMs)&&void 0!==s||(u.pongBackTimeoutMs=5e3),l}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&dr(e,t)}(t,e),n=t,r=[{key:"connect",value:(a=sr(ar().m(function e(){var t,n,r,o,i,a=this;return ar().w(function(e){for(;;)switch(e.n){case 0:if(!this.isOpenWsState()&&!this.isConnectingWsState()){e.n=1;break}return e.a(2,null!==(o=this.connectPromise)&&void 0!==o?o:void 0);case 1:return null!==(t=this.connectPromise)&&void 0!==t||(this.connectPromise=new Promise(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return a.authenticatedResolvers=t})),(i=new URLSearchParams(null!==(n=this.options.queryParams)&&void 0!==n?n:{})).set("token",this.options.token),this.ws=new WebSocket("".concat(this.options.url,"?").concat(i)),this.ws.onclose=function(e){return a.onClose(e)},this.ws.onmessage=function(e){return a.onMessage(e)},this.connectingTimeoutId=setTimeout(function(){return a.triggerConnectionTimeout()},null!==(r=this.options.connectingTimeoutMs)&&void 0!==r?r:1e4),this.authenticated=!1,e.a(2,this.connectPromise)}},e,this)})),function(){return a.apply(this,arguments)})},{key:"disconnect",value:function(){var e;this.failPendingCommands(new Error("Client disconnected before the command was answered")),null===(e=this.ws)||void 0===e||e.close(1e3),this.ws=null}},{key:"send",value:(i=sr(ar().m(function e(t,n){var r,o;return ar().w(function(e){for(;;)switch(e.n){case 0:if(r=this.createEnvelope(t,n),o=this.createPromiseFromCommandEnvelope(r),!(this.isConnectingWsState()||!this.authenticated&&this.isOpenWsState())){e.n=1;break}return this.sendQueue.push(r),e.a(2,o);case 1:return this.sendEnvelope(r),e.a(2,o)}},e,this)})),function(e,t){return i.apply(this,arguments)})},{key:"isReady",get:function(){return this.isOpenWsState()&&this.authenticated}},{key:"sendEnvelope",value:function(e){var t,n;this.isReady?this.ws.send(JSON.stringify(e)):this.handleEnvelopeSendError(e,new Error("Cannot send - client is not ready (state=".concat(null!==(t=null===(n=this.ws)||void 0===n?void 0:n.readyState)&&void 0!==t?t:"[no connection]","; authenticated=").concat(this.authenticated,")")))}},{key:"onMessage",value:function(e){this.lastReceivedMessageAt=Date.now();var t=JSON.parse(e.data);if(this.handleIncomingEnvelope(t),this.emit(t.type,t.data),this.emit(this.Event.message,t),!this.authenticated){var n="Bye"!==t.type;this.authenticated=n,n?(this.startConnectionMonitor(),this.settleConnect(),this.emit(this.Event.connect),this.sendFromQueue()):this.settleConnect(t.data)}}},{key:"onClose",value:function(e){this.stopConnectionMonitor(),clearTimeout(this.connectingTimeoutId);var t=1e3!==e.code;this.failPendingCommands(new Error("Connection closed before the command was answered")),t?this.connect():this.settleConnect(new Error("Connection closed before authentication")),this.emit(this.Event.disconnect,t)}},{key:"settleConnect",value:function(e){var t=this.authenticatedResolvers;this.authenticatedResolvers=null,this.connectPromise=null,t&&(e?t[1](e):t[0]())}},{key:"failPendingCommands",value:function(e){var t=this.sendQueue;this.sendQueue=[];var n,r=or(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;this.handleEnvelopeSendError(o,e)}}catch(e){r.e(e)}finally{r.f()}this.failAwaitingResponses(e)}},{key:"sendFromQueue",value:function(){var e=this,t=0,n=function(){var n,o=e.sendQueue[r];setTimeout(function(){return e.sendEnvelope(o)},t),t+=null!==(n=e.options.awaitQueueSendDelayMs)&&void 0!==n?n:500};for(var r in this.sendQueue)n();this.sendQueue=[],clearTimeout(this.connectingTimeoutId)}},{key:"triggerConnectionTimeout",value:function(){this.disconnect(),this.emit(this.Event.error,new Error("Connection timeout"))}},{key:"isConnectingWsState",value:function(){return this.ws&&this.ws.readyState===this.ws.CONNECTING}},{key:"isOpenWsState",value:function(){return this.ws&&this.ws.readyState===this.ws.OPEN}},{key:"startConnectionMonitor",value:function(){var e=this;this.options.ping.enabled&&(this.lastReceivedMessageAt=Date.now(),this.pingMonitorInterval=setInterval(sr(ar().m(function t(){return ar().w(function(t){for(;;)switch(t.n){case 0:if(e.isReady&&!e.inFlightPingTimeout){t.n=1;break}return t.a(2);case 1:if(!(Date.now()-e.lastReceivedMessageAt<e.options.ping.noActivityTimeoutMs)){t.n=2;break}return t.a(2);case 2:e.inFlightPingTimeout=setTimeout(function(){e.inFlightPingTimeout=void 0,e.ws.close(3e3)},e.options.ping.pongBackTimeoutMs),e.send("Ping",{}).catch(function(){}).then(function(){clearTimeout(e.inFlightPingTimeout),e.inFlightPingTimeout=void 0});case 3:return t.a(2)}},t)})),1e3))}},{key:"stopConnectionMonitor",value:function(){this.inFlightPingTimeout&&(clearTimeout(this.inFlightPingTimeout),this.inFlightPingTimeout=void 0),this.pingMonitorInterval&&(clearInterval(this.pingMonitorInterval),this.pingMonitorInterval=void 0)}}],r&&lr(n.prototype,r),o&&lr(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a}(v);function gr(e){return gr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gr(e)}function wr(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Sr(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Sr(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Sr(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Sr(f,"constructor",s),Sr(s,"constructor",u),u.displayName="GeneratorFunction",Sr(s,o,"GeneratorFunction"),Sr(f),Sr(f,o,"Generator"),Sr(f,r,function(){return this}),Sr(f,"toString",function(){return"[object Generator]"}),(wr=function(){return{w:i,m:h}})()}function Sr(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Sr=function(e,t,n,r){function i(t,n){Sr(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Sr(e,t,n,r)}function kr(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Or(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){kr(i,r,o,a,c,"next",e)}function c(e){kr(i,r,o,a,c,"throw",e)}a(void 0)})}}function Tr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ar(r.key),r)}}function jr(e,t,n){return t=Ir(t),function(e,t){if(t&&("object"==gr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Pr()?Reflect.construct(t,n||[],Ir(e).constructor):t.apply(e,n))}function Pr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Pr=function(){return!!e})()}function Ir(e){return Ir=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Ir(e)}function Rr(e,t){return Rr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Rr(e,t)}function Er(e,t,n){return(t=Ar(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ar(e){var t=function(e,t){if("object"!=gr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=gr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==gr(t)?t:t+""}var _r=function(e){return e.message="message",e.error="error",e.destroy="destroy",e}(_r||{}),Mr=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Er(n=jr(this,t),"Event",_r),Er(n,"sendStack",[]),n.options=e,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Rr(e,t)}(t,e),n=t,r=[{key:"send",value:(a=Or(wr().m(function e(t,n){var r,o;return wr().w(function(e){for(;;)if(0===e.n)return r=this.createEnvelope(t,n),o={data:r,attempts:0,lastTimeoutId:null},this.sendStack.push(o),this.makeApiCall(o),e.a(2,this.createPromiseFromCommandEnvelope(r))},e,this)})),function(e,t){return a.apply(this,arguments)})},{key:"destroy",value:function(){var e=this,t=this.sendStack;this.sendStack=[],t.forEach(function(t){t.lastTimeoutId&&clearTimeout(t.lastTimeoutId),e.handleEnvelopeSendError(t.data,new Error("Client destroyed"))}),this.emit(this.Event.destroy,!1)}},{key:"onMessage",value:(i=Or(wr().m(function e(t,n){var r;return wr().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,n.json();case 1:r=e.v,e.n=3;break;case 2:return e.p=2,e.v,this.onError(t,"envelope ".concat(t.data.ref," (HTTP ").concat(n.status,", unparsable body)")),e.a(2);case 3:if(this.removeFromStack(t)){e.n=4;break}return e.a(2);case 4:this.handleIncomingEnvelope(r),this.emit(r.type,r.data),this.emit(this.Event.message,r);case 5:return e.a(2)}},e,this,[[0,2]])})),function(e,t){return i.apply(this,arguments)})},{key:"onError",value:function(e,t){var n,r,o=this;if(this.sendStack.includes(e))return e.attempts>=(null!==(n=this.options.attemptsToSend)&&void 0!==n?n:10)?(this.removeFromStack(e),void this.handleEnvelopeSendError(e.data,new Error("Cannot send ".concat(t,"; aborting after reaching the maximum connection errors")))):void(e.lastTimeoutId=setTimeout(function(){return o.makeApiCall(e)},null!==(r=this.options.attemptDelayMs)&&void 0!==r?r:3e3))}},{key:"makeApiCall",value:function(e){var t,n=this;if(this.sendStack.includes(e)){e.attempts++,e.lastTimeoutId=null;var r=JSON.stringify(e.data),o={"Content-Type":"application/json",Accept:"application/json"};o.Authorization="Bearer ".concat(this.options.token);var i=new URLSearchParams(null!==(t=this.options.queryParams)&&void 0!==t?t:{}).toString(),a=i?"".concat(this.options.url,"?").concat(i):this.options.url;fetch(a,{headers:o,body:r,method:"POST"}).then(function(t){return n.onMessage(e,t)}).catch(function(){return n.onError(e,r)})}}},{key:"removeFromStack",value:function(e){var t=this.sendStack.indexOf(e);return-1!==t&&(this.sendStack.splice(t,1),!0)}}],r&&Tr(n.prototype,r),o&&Tr(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a}(v);function Fr(e){return Fr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fr(e)}function Cr(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Lr(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Lr(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Lr(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Lr(f,"constructor",s),Lr(s,"constructor",u),u.displayName="GeneratorFunction",Lr(s,o,"GeneratorFunction"),Lr(f),Lr(f,o,"Generator"),Lr(f,r,function(){return this}),Lr(f,"toString",function(){return"[object Generator]"}),(Cr=function(){return{w:i,m:h}})()}function Lr(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Lr=function(e,t,n,r){function i(t,n){Lr(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Lr(e,t,n,r)}function xr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ur(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xr(Object(n),!0).forEach(function(t){Dr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Dr(e,t,n){return(t=Wr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Gr(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Nr(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){Gr(i,r,o,a,c,"next",e)}function c(e){Gr(i,r,o,a,c,"throw",e)}a(void 0)})}}function Br(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Wr(r.key),r)}}function Wr(e){var t=function(e,t){if("object"!=Fr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Fr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Fr(t)?t:t+""}var Jr=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=t},t=[{key:"send",value:(o=Nr(Cr().m(function e(t,n){var r,o,i,a,c,u,s=arguments;return Cr().w(function(e){for(;;)switch(e.n){case 0:return r=s.length>2&&void 0!==s[2]?s[2]:void 0,o=s.length>3&&void 0!==s[3]?s[3]:{},i=this.getUrl(n),a=void 0,r&&(["GET","DELETE"].includes(t)?i+="?"+new URLSearchParams(r).toString():a=JSON.stringify(r)),c=Ur(Ur({"Content-Type":"application/json",Accept:"application/json"},o),this.getAuthHeaders()),e.n=1,fetch(i,{method:t,body:a,headers:c});case 1:return u=e.v,e.a(2,this.convertFetchResponse(u))}},e,this)})),function(e,t){return o.apply(this,arguments)})},{key:"getAuthHeaders",value:function(){var e={};return this.options.token&&(e.Authorization="Bearer ".concat(this.options.token)),e}},{key:"getUrl",value:function(e){var t;return this.removeEndingSlash(null!==(t=this.options.url)&&void 0!==t?t:this.defaultUrl)+"/"+this.removeStartingSlash(e)}},{key:"convertFetchResponse",value:(r=Nr(Cr().m(function e(t){var n,r,o,i,a;return Cr().w(function(e){for(;;)switch(e.n){case 0:if(r=t.ok,o=t.status,null===(n=t.headers.get("content-type"))||void 0===n||!n.includes("json")){e.n=2;break}return e.n=1,t.json();case 1:i=e.v,e.n=4;break;case 2:return e.n=3,t.text();case 3:i=e.v;case 4:return a=i,e.a(2,{ok:r,status:o,data:a})}},e)})),function(e){return r.apply(this,arguments)})},{key:"removeStartingSlash",value:function(e){return e.replace(/^\/+/,"")}},{key:"removeEndingSlash",value:function(e){return e.replace(/\/+$/,"")}}],t&&Br(e.prototype,t),n&&Br(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o}();function Hr(e){return Hr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Hr(e)}function $r(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Qr(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Qr(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Qr(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Qr(f,"constructor",s),Qr(s,"constructor",u),u.displayName="GeneratorFunction",Qr(s,o,"GeneratorFunction"),Qr(f),Qr(f,o,"Generator"),Qr(f,r,function(){return this}),Qr(f,"toString",function(){return"[object Generator]"}),($r=function(){return{w:i,m:h}})()}function Qr(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Qr=function(e,t,n,r){function i(t,n){Qr(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Qr(e,t,n,r)}function Vr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vr(Object(n),!0).forEach(function(t){no(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function qr(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Kr(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){qr(i,r,o,a,c,"next",e)}function c(e){qr(i,r,o,a,c,"throw",e)}a(void 0)})}}function Yr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ro(r.key),r)}}function Xr(e,t,n){return t=eo(t),function(e,t){if(t&&("object"==Hr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Zr()?Reflect.construct(t,n||[],eo(e).constructor):t.apply(e,n))}function Zr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Zr=function(){return!!e})()}function eo(e){return eo=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},eo(e)}function to(e,t){return to=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},to(e,t)}function no(e,t,n){return(t=ro(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ro(e){var t=function(e,t){if("object"!=Hr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Hr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Hr(t)?t:t+""}var oo=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return no(e=Xr(this,t,[].concat(r)),"defaultUrl","https://files.devana.pl"),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&to(e,t)}(t,e),n=t,r=[{key:"uploadFile",value:(c=Kr($r().m(function e(t){var n,r,o,i;return $r().w(function(e){for(;;)switch(e.n){case 0:return r=encodeURIComponent(null!==(n=t.name)&&void 0!==n?n:""),o=zr(zr({},this.getAuthHeaders()),{},{Accept:"application/json","Content-Disposition":'attachment; filename="'.concat(r,'"'),"Content-Length":t.size}),e.n=1,fetch(this.getUrl("files"),{method:"POST",body:t,headers:o});case 1:return i=e.v,e.a(2,this.convertFetchResponse(i))}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"getFileMeta",value:(a=Kr($r().m(function e(t){return $r().w(function(e){for(;;)if(0===e.n)return e.a(2,this.send("GET","files/"+t))},e,this)})),function(e){return a.apply(this,arguments)})},{key:"getFileMetaBulk",value:(i=Kr($r().m(function e(t){var n;return $r().w(function(e){for(;;)if(0===e.n)return n=new URLSearchParams,t.forEach(function(e){return n.append("id[]",e)}),e.a(2,this.send("GET","files?"+n))},e,this)})),function(e){return i.apply(this,arguments)})}],r&&Yr(n.prototype,r),o&&Yr(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a,c}(Jr),io=function(e){return e[e.Offline=0]="Offline",e[e.Online=1]="Online",e[e.OnlineAsync=2]="OnlineAsync",e}({});return t})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PservClient=t():e.PservClient=t()}(this,()=>(()=>{"use strict";var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function o(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e){var t=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==n(t)?t:t+""}e.r(t),e.d(t,{AbstractRestClient:()=>Jr,FilesClient:()=>oo,IndexedCollection:()=>x,IndexedObjectCollection:()=>U,Layer:()=>Ht,ObservableIndexedCollection:()=>D,ObservableIndexedObjectCollection:()=>G,PermissionDefinition:()=>$t,Permissions:()=>Qt,RoleFlag:()=>io,UserStatus:()=>ao,WebApiChatClient:()=>_r,WebSocketChatClient:()=>br,extractUserFromMember:()=>kt});var a=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),o(this,"events",new Map),o(this,"onceEvents",new Map)},(t=[{key:"on",value:function(e,t){return this.addHandler(this.events,e,t),this}},{key:"once",value:function(e,t){return this.addHandler(this.onceEvents,e,t),this}},{key:"off",value:function(e,t){var n,r,o=null===(n=this.events.get(e))||void 0===n?void 0:n.indexOf(t);return void 0===o||o<0||null===(r=this.events.get(e))||void 0===r||r.splice(o,1),this}},{key:"emit",value:function(e,t){return this.callHandlers(this.events,e,t),this.callHandlers(this.onceEvents,e,t),this.onceEvents.delete(e),this}},{key:"addHandler",value:function(e,t,n){var r,o=null!==(r=e.get(t))&&void 0!==r?r:[];o.push(n),e.set(t,o)}},{key:"callHandlers",value:function(e,t,n){var r;null===(r=e.get(t))||void 0===r||r.forEach(function(e){return e(n)})}}])&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,m(r.key),r)}}function f(e,t,n){return t=p(t),function(e,t){if(t&&("object"==c(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,h()?Reflect.construct(t,n||[],p(e).constructor):t.apply(e,n))}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(h=function(){return!!e})()}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function d(e,t){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},d(e,t)}function y(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){var t=function(e,t){if("object"!=c(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==c(t)?t:t+""}var v=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return y(e=f(this,t,[].concat(r)),"awaitingResponse",new Map),y(e,"sentCounter",0),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&d(e,t)}(t,e),n=t,r=[{key:"createEnvelope",value:function(e,t){return{type:e,data:t,ref:(++this.sentCounter).toString()}}},{key:"createPromiseFromCommandEnvelope",value:function(e){var t=this;return new Promise(function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return t.awaitingResponse.set(e.ref,r)})}},{key:"handleIncomingEnvelope",value:function(e){if(this.awaitingResponse.has(e.ref)){var t="Error"===e.type;this.awaitingResponse.get(e.ref)[0]({data:t?null:e.data,error:t?e.data:null}),this.awaitingResponse.delete(e.ref)}}},{key:"handleEnvelopeSendError",value:function(e,t){this.awaitingResponse.has(e.ref)&&(this.awaitingResponse.get(e.ref)[1](t),this.awaitingResponse.delete(e.ref))}},{key:"failAwaitingResponses",value:function(e){if(this.awaitingResponse.size){var t=Array.from(this.awaitingResponse.values());this.awaitingResponse.clear();for(var n=0,r=t;n<r.length;n++)(0,u(r[n],2)[1])(e)}}}],r&&l(n.prototype,r),o&&l(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o}(a);function b(e){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}function g(e,t,n){return t=O(t),function(e,t){if(t&&("object"==b(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,w()?Reflect.construct(t,n||[],O(e).constructor):t.apply(e,n))}function w(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(w=function(){return!!e})()}function S(e,t,n,r){var o=k(O(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof o?function(e){return o.apply(n,e)}:o}function k(){return k="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=O(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},k.apply(null,arguments)}function O(e){return O=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},O(e)}function T(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&j(e,t)}function j(e,t){return j=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},j(e,t)}function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||E(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=E(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function R(e){return function(e){if(Array.isArray(e))return A(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||E(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){if(e){if("string"==typeof e)return A(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?A(e,t):void 0}}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function M(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,F(r.key),r)}}function C(e,t,n){return t&&_(e.prototype,t),n&&_(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function L(e,t,n){return(t=F(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function F(e){var t=function(e,t){if("object"!=b(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=b(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==b(t)?t:t+""}var x=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];M(this,e),L(this,"_items",new Map),this.set.apply(this,R(t))}return C(e,[{key:"items",get:function(){return this._items}},{key:"length",get:function(){return this._items.size}},{key:"set",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0,o=t;r<o.length;r++){var i=o[r];this._items.set(i[0],i[1])}}},{key:"get",value:function(e){return this.items.get(e)}},{key:"has",value:function(e){return this.items.has(e)}},{key:"delete",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0,o=t;r<o.length;r++){var i=o[r];this.items.delete(i)}}},{key:"deleteAll",value:function(){this.items.clear()}},{key:"findBy",value:function(t,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,i=new e,a=I(this.items.entries());try{for(a.s();!(r=a.n()).done;){var c=P(r.value,2),u=c[0],s=c[1];if(i.length>=o)break;s[t]===n&&i.set([u,s])}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"createMirror",value:function(){var t=new e;return t._items=this._items,t}}])}(),U=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];M(this,e),L(this,"_items",void 0),this.id=t,this._items=new x,this.set.apply(this,R(n))}return C(e,[{key:"items",get:function(){return Array.from(this._items.items.values())}},{key:"length",get:function(){return this._items.length}},{key:"set",value:function(){for(var e,t=this,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];(e=this._items).set.apply(e,R(r.map(function(e){return[t.getId(e),e]})))}},{key:"get",value:function(e){return this._items.get(e)}},{key:"getAt",value:function(e){return this.items[e]}},{key:"has",value:function(e){return this._items.has(e)}},{key:"delete",value:function(){var e;(e=this._items).delete.apply(e,arguments)}},{key:"deleteAll",value:function(){this._items.deleteAll()}},{key:"findBy",value:function(t,n){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=new e(this.id),a=I(this.items);try{for(a.s();!(r=a.n()).done;){var c=r.value;if(o&&i.length===o)break;c[t]===n&&i.set(c)}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"createMirror",value:function(){var t=new e(this.id);return t._items=this._items,t}},{key:"getId",value:function(e){return"function"==typeof this.id?this.id(e):e[this.id]}}])}(),D=function(e){function t(){var e,n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return M(this,t),L(n=g(this,t),"eventTarget",void 0),n.eventTarget=new a,(e=n).set.apply(e,R(r)),n}return T(t,e),C(t,[{key:"set",value:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length&&(S(t,"set",this,3)(n),this.eventTarget.emit("change",{setItems:n.map(function(e){return e[0]})}))}},{key:"delete",value:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length&&(S(t,"delete",this,3)(n),this.eventTarget.emit("change",{deletedItems:n}))}},{key:"deleteAll",value:function(){if(this.length){var e=Array.from(this._items.keys());S(t,"deleteAll",this,3)([]),this.eventTarget.emit("change",{deletedItems:Array.from(e)})}}},{key:"createMirror",value:function(){var e=new t;return e.eventTarget=this.eventTarget,e._items=this._items,e}},{key:"on",value:function(e,t){return this.eventTarget.on(e,t),this}},{key:"once",value:function(e,t){return this.eventTarget.once(e,t),this}},{key:"off",value:function(e,t){return this.eventTarget.off(e,t),this}}])}(x),G=function(e){function t(e){var n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return M(this,t),L(r=g(this,t,[e]),"eventTarget",void 0),r.eventTarget=new a,(n=r).set.apply(n,R(o)),r}return T(t,e),C(t,[{key:"set",value:function(){for(var e=this,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];r.length&&(S(t,"set",this,3)(r),this.eventTarget.emit("change",{setItems:r.map(function(t){return e.getId(t)})}))}},{key:"delete",value:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length&&(S(t,"delete",this,3)(n),this.eventTarget.emit("change",{deletedItems:n}))}},{key:"deleteAll",value:function(){var e=this;if(this.length){var n=this.items.map(function(t){return e.getId(t)});S(t,"deleteAll",this,3)([]),this.eventTarget.emit("change",{deletedItems:n})}}},{key:"reconcile",value:function(){for(var e,n=this,r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];var a,c=new Set(o.map(function(e){return n.getId(e)})),u=[],s=I(this.items);try{for(s.s();!(a=s.n()).done;){var l=a.value,f=this.getId(l);c.has(f)||u.push(f)}}catch(e){s.e(e)}finally{s.f()}(o.length||u.length)&&((e=this._items).delete.apply(e,u),S(t,"set",this,3)(o),this.eventTarget.emit("change",{setItems:o.map(function(e){return n.getId(e)}),deletedItems:u}))}},{key:"createMirror",value:function(){var e=new t(this.id);return e.eventTarget=this.eventTarget,e._items=this._items,e}},{key:"on",value:function(e,t){return this.eventTarget.on(e,t),this}},{key:"once",value:function(e,t){return this.eventTarget.once(e,t),this}},{key:"off",value:function(e,t){return this.eventTarget.off(e,t),this}}])}(U);function N(e){return N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},N(e)}function B(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,$(r.key),r)}}function W(e,t,n){return t&&B(e.prototype,t),n&&B(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function J(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function H(e,t,n){return(t=$(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $(e){var t=function(e,t){if("object"!=N(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=N(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==N(t)?t:t+""}var Q=W(function e(){var t=this;J(this,e),H(this,"promise",void 0),H(this,"resolve",void 0),this.promise=new Promise(function(e){return t.resolve=e})}),V=function(){return W(function e(){J(this,e),H(this,"promises",new x)},[{key:"register",value:function(e,t){var n=this;this.promises.set([t,e]),e.catch(function(){n.promises.get(t)===e&&n.promises.delete(t)})}},{key:"registerByFunction",value:function(e,t){this.register(e(),t)}},{key:"get",value:function(e){return this.promises.get(e)}},{key:"has",value:function(e){return this.promises.has(e)}},{key:"notExist",value:function(e){return!this.has(e)}},{key:"forget",value:function(){var e;(e=this.promises).delete.apply(e,arguments)}},{key:"forgetAll",value:function(){this.promises.deleteAll()}}])}();function z(e){return z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},z(e)}function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach(function(t){de(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Y(e,t,n,r){var o=X(fe(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof o?function(e){return o.apply(n,e)}:o}function X(){return X="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=fe(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},X.apply(null,arguments)}function Z(e){return function(e){if(Array.isArray(e))return te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ee(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ee(e,t){if(e){if("string"==typeof e)return te(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?te(e,t):void 0}}function te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ne(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return re(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(re(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,re(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,re(f,"constructor",s),re(s,"constructor",u),u.displayName="GeneratorFunction",re(s,o,"GeneratorFunction"),re(f),re(f,o,"Generator"),re(f,r,function(){return this}),re(f,"toString",function(){return"[object Generator]"}),(ne=function(){return{w:i,m:h}})()}function re(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}re=function(e,t,n,r){function i(t,n){re(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},re(e,t,n,r)}function oe(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function ie(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){oe(i,r,o,a,c,"next",e)}function c(e){oe(i,r,o,a,c,"throw",e)}a(void 0)})}}function ae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ce(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ye(r.key),r)}}function ue(e,t,n){return t&&ce(e.prototype,t),n&&ce(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function se(e,t,n){return t=fe(t),function(e,t){if(t&&("object"==z(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,le()?Reflect.construct(t,n||[],fe(e).constructor):t.apply(e,n))}function le(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(le=function(){return!!e})()}function fe(e){return fe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},fe(e)}function he(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&pe(e,t)}function pe(e,t){return pe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},pe(e,t)}function de(e,t,n){return(t=ye(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ye(e){var t=function(e,t){if("object"!=z(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=z(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==z(t)?t:t+""}var me=function(e){return e[e.LIVE=0]="LIVE",e[e.LATEST=1]="LATEST",e[e.PAST=2]="PAST",e[e.OLDEST=3]="OLDEST",e}({}),ve=function(e){function t(e,n,r){var o,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return ae(this,t),de(o=se(this,t,["id"]),"WindowState",me),o.roomId=e,o.topicId=n,o.tracker=r,o.internalState.traverseLock=!1,o.internalState.includeMyReactions=!0,o.internalState.myReactions={},i&&(o.tracker.client.on("NewMessage",function(e){return o.handleNewMessage(e)}),o.tracker.client.on("MessagesRedacted",function(e){return o.handleMessagesRedacted(e)}),o.tracker.client.on("ReactionUpdated",function(e){return o.handleReactionUpdated(e)}),o.tracker.client.on("Reacted",function(e){return o.handleReacted(e)})),o}return he(t,e),ue(t,[{key:"createMirror",value:function(){var e=new t(this.roomId,this.topicId,this.tracker,!1);return e.eventTarget=this.eventTarget,e._items=this._items,e.internalState=this.internalState,e}},{key:"isTraverseLocked",get:function(){return this.internalState.traverseLock}},{key:"myReactions",get:function(){return this.internalState.myReactions}},{key:"includeMyReactions",get:function(){return this.internalState.includeMyReactions},set:function(e){this.internalState.includeMyReactions=e}},{key:"setTraverseLock",value:(m=ie(ne().m(function e(n){return ne().w(function(e){for(;;)switch(e.n){case 0:if(this.internalState.traverseLock=n,!n||this.state===me.LIVE||this.state===me.LATEST){e.n=1;break}return e.n=1,Y(t,"resetToLatest",this,3)([]);case 1:return e.a(2)}},e,this)})),function(e){return m.apply(this,arguments)})},{key:"resetToLatest",value:(y=ie(ne().m(function e(){var n,r=arguments;return ne().w(function(e){for(;;)switch(e.n){case 0:if(n=r.length>0&&void 0!==r[0]&&r[0],!this.internalState.traverseLock){e.n=1;break}return e.a(2);case 1:return e.a(2,Y(t,"resetToLatest",this,3)([n]))}},e,this)})),function(){return y.apply(this,arguments)})},{key:"fetchNext",value:(d=ie(ne().m(function e(){return ne().w(function(e){for(;;)switch(e.n){case 0:if(!this.internalState.traverseLock){e.n=1;break}return e.a(2);case 1:return e.a(2,Y(t,"fetchNext",this,3)([]))}},e,this)})),function(){return d.apply(this,arguments)})},{key:"fetchPrevious",value:(p=ie(ne().m(function e(){return ne().w(function(e){for(;;)switch(e.n){case 0:if(!this.internalState.traverseLock){e.n=1;break}return e.a(2);case 1:return e.a(2,Y(t,"fetchPrevious",this,3)([]))}},e,this)})),function(){return p.apply(this,arguments)})},{key:"jumpTo",value:(h=ie(ne().m(function e(n){return ne().w(function(e){for(;;)switch(e.n){case 0:if(!this.internalState.traverseLock){e.n=1;break}return e.a(2);case 1:return e.a(2,Y(t,"jumpTo",this,3)([n]))}},e,this)})),function(e){return h.apply(this,arguments)})},{key:"_updateMessageReference",value:function(e){var t=this.get(e.refMessage.id);t&&this.set(K(K({},t),{},{topicRef:e.id}))}},{key:"fetchItemsAfter",value:(f=ie(ne().m(function e(){var t,n;return ne().w(function(e){for(;;)if(0===e.n)return n=null===(t=this.getAt(this.length-1))||void 0===t?void 0:t.id,e.a(2,n?this.fetchMessages({after:n}):null)},e,this)})),function(){return f.apply(this,arguments)})},{key:"fetchItemsAround",value:(l=ie(ne().m(function e(t){return ne().w(function(e){for(;;)if(0===e.n)return e.a(2,this.fetchMessages({around:t}))},e,this)})),function(e){return l.apply(this,arguments)})},{key:"fetchItemsBefore",value:(s=ie(ne().m(function e(){var t,n;return ne().w(function(e){for(;;)if(0===e.n)return n=null===(t=this.getAt(0))||void 0===t?void 0:t.id,e.a(2,n?this.fetchMessages({before:n}):null)},e,this)})),function(){return s.apply(this,arguments)})},{key:"fetchLatestItems",value:(u=ie(ne().m(function e(){return ne().w(function(e){for(;;)if(0===e.n)return e.a(2,this.fetchMessages({}))},e,this)})),function(){return u.apply(this,arguments)})},{key:"fetchMessages",value:(c=ie(ne().m(function e(t){var n;return ne().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.client.send("GetMessages",K({location:{roomId:this.roomId,topicId:this.topicId},limit:this.internalState.fetchLimit,includeMyReactions:this.internalState.includeMyReactions},t));case 1:if(!(n=e.v).error){e.n=2;break}throw new Error("Cannot fetch messages: ".concat(n.error.message));case 2:return this.storeMyReactions(n.data.messages,n.data.myReactions),e.a(2,n.data.messages)}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"storeMyReactions",value:function(e,t){if(this.internalState.includeMyReactions){var n,r=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=ee(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}(e);try{for(r.s();!(n=r.n()).done;){var o=n.value,i=null==t?void 0:t[o.id];null!=i&&i.length?this.internalState.myReactions[o.id]=i:delete this.internalState.myReactions[o.id]}}catch(e){r.e(e)}finally{r.f()}}}},{key:"getTopic",value:(a=ie(ne().m(function e(){return ne().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.rooms.getTopics(this.roomId,[this.topicId]);case 1:return e.a(2,e.v.get(this.topicId))}},e,this)})),function(){return a.apply(this,arguments)})},{key:"getLatestMessageId",value:(i=ie(ne().m(function e(){var t,n,r,o,i;return ne().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.getTopic();case 1:if(o=t=e.v,r=null===o){e.n=2;break}r=void 0===t;case 2:if(n=r){e.n=3;break}n=null===(t=t.lastMessage)||void 0===t;case 3:if(!n){e.n=4;break}i=void 0,e.n=5;break;case 4:i=t.id;case 5:return e.a(2,i)}},e,this)})),function(){return i.apply(this,arguments)})},{key:"isLatestItemLoaded",value:(o=ie(ne().m(function e(){var t;return ne().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.getLatestMessageId();case 1:return t=e.v,e.a(2,!t||this.has(t))}},e,this)})),function(){return o.apply(this,arguments)})},{key:"handleNewMessage",value:(r=ie(ne().m(function e(t){var n;return ne().w(function(e){for(;;)switch(e.n){case 0:[me.LATEST,me.LIVE].includes(this.state)&&t.message.location.roomId===this.roomId&&t.message.location.topicId===this.topicId&&(n=this.state,this.addItems([t.message],"tail"),this.emitChangeWithDiff(!0,n));case 1:return e.a(2)}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"handleReactionUpdated",value:function(e){var t=this.get(e.messageId);if(t){var n=t.reactions.findIndex(function(t){return t.type===e.reaction.type&&t.value===e.reaction.value});if(-1!==n||e.reaction.count){var r=Z(t.reactions);-1===n?r.push(e.reaction):e.reaction.count?r[n]=e.reaction:r.splice(n,1),this.set(K(K({},t),{},{reactions:r}))}}}},{key:"handleReacted",value:function(e){var t;if(this.has(e.messageId)){var n=e.reaction,r=n.type,o=n.value,i=n.isAdded,a=(null!==(t=this.internalState.myReactions[e.messageId])&&void 0!==t?t:[]).filter(function(e){return e.type!==r||e.value!==o});i&&a.push({type:r,value:o}),a.length?this.internalState.myReactions[e.messageId]=a:delete this.internalState.myReactions[e.messageId],this.eventTarget.emit("change",{setItems:[e.messageId]})}}},{key:"handleMessagesRedacted",value:(n=ie(ne().m(function e(t){var n;return ne().w(function(e){for(;;)switch(e.n){case 0:if(t.location.topicId===this.topicId&&t.location.roomId===this.roomId){e.n=1;break}return e.a(2);case 1:if(n=this.items.filter(function(e){return e.topicRef&&t.ids.includes(e.id)}).map(function(e){return e.topicRef}),this.delete.apply(this,Z(t.ids)),0!==this.length){e.n=2;break}return e.n=2,this.resetToLatest();case 2:n.length>0&&this.eventTarget.emit("reftopicsdeleted",n);case 3:return e.a(2)}},e,this)})),function(e){return n.apply(this,arguments)})}]);var n,r,o,i,a,c,u,s,l,f,h,p,d,y,m}(function(e){function t(){var e;ae(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return de(e=se(this,t,[].concat(r)),"internalState",{current:me.LIVE,ongoing:void 0,limit:1e3,retainRatio:1,fetchLimit:50,lastFetchCount:0,oldestId:null}),e}return he(t,e),ue(t,[{key:"state",get:function(){return this.internalState.current}},{key:"fetchLimit",get:function(){return this.internalState.fetchLimit},set:function(e){this.internalState.fetchLimit=e}},{key:"limit",get:function(){return this.internalState.limit},set:function(e){this.internalState.limit=e}},{key:"retainRatio",get:function(){return this.internalState.retainRatio},set:function(e){this.internalState.retainRatio=e}},{key:"hasLatest",get:function(){return[me.LATEST,me.LIVE].includes(this.state)}},{key:"hasOldest",get:function(){return this.state===me.OLDEST||this.state===me.LATEST&&this.length<this.fetchLimit||null!==this.internalState.oldestId&&this.has(this.internalState.oldestId)}},{key:"resetToLatest",value:(a=ie(ne().m(function e(){var t,n,r,o=arguments;return ne().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t=o.length>0&&void 0!==o[0]&&o[0],!this.internalState.ongoing&&(t||this.internalState.current!==me.LATEST)){e.n=1;break}return e.a(2);case 1:return r=this.state,this.internalState.ongoing=me.LATEST,e.p=2,e.n=3,this.fetchLatestItems();case 3:n=e.v,this.internalState.lastFetchCount=n.length;case 4:return e.p=4,this.internalState.ongoing=void 0,e.f(4);case 5:this._items.deleteAll(),this.addItems(n,"tail"),this.internalState.current=me.LATEST,this.emitChangeWithDiff(!0,r);case 6:return e.a(2)}},e,this,[[2,,4,5]])})),function(){return a.apply(this,arguments)})},{key:"fetchPrevious",value:(i=ie(ne().m(function e(){var t,n,r;return ne().w(function(e){for(;;)switch(e.p=e.n){case 0:if(!this.internalState.ongoing&&!this.hasOldest){e.n=1;break}return e.a(2);case 1:return n=this.state,this.internalState.ongoing=me.PAST,e.p=2,e.n=3,this.fetchItemsBefore();case 3:t=e.v,this.internalState.lastFetchCount=t?t.length:0;case 4:return e.p=4,this.internalState.ongoing=void 0,e.f(4);case 5:if(t){e.n=6;break}return e.a(2,this.resetToLatest());case 6:if(t.length){e.n=8;break}return r=this.getAt(0),this.internalState.oldestId=r?this.getId(r):null,e.n=7,this.refreshFetchedState();case 7:return this.internalState.current===me.PAST&&(this.internalState.current=me.OLDEST),this.emitChangeWithDiff(!1,n),e.a(2);case 8:return this.addItems(t,"head"),e.n=9,this.refreshFetchedState();case 9:this.emitChangeWithDiff(!0,n);case 10:return e.a(2)}},e,this,[[2,,4,5]])})),function(){return i.apply(this,arguments)})},{key:"fetchNext",value:(o=ie(ne().m(function e(){var t,n;return ne().w(function(e){for(;;)switch(e.p=e.n){case 0:if(!this.internalState.ongoing&&!this.hasLatest){e.n=1;break}return e.a(2);case 1:return n=this.state,this.internalState.ongoing=me.PAST,e.p=2,e.n=3,this.fetchItemsAfter();case 3:t=e.v,this.internalState.lastFetchCount=t?t.length:0;case 4:return e.p=4,this.internalState.ongoing=void 0,e.f(4);case 5:if(t){e.n=7;break}return e.n=6,this.resetToLatest();case 6:return e.a(2);case 7:if(!t.length){e.n=9;break}return this.addItems(t,"tail"),e.n=8,this.refreshFetchedState();case 8:return this.emitChangeWithDiff(!0,n),e.a(2);case 9:return e.a(2)}},e,this,[[2,,4,5]])})),function(){return o.apply(this,arguments)})},{key:"jumpTo",value:(r=ie(ne().m(function e(t){var n,r;return ne().w(function(e){for(;;)switch(e.p=e.n){case 0:if(!(this.internalState.ongoing||this.state!==me.LIVE&&this._items.has(t))){e.n=1;break}return e.a(2);case 1:return r=this.state,this.internalState.ongoing=me.PAST,e.p=2,e.n=3,this.fetchItemsAround(t);case 3:if(n=e.v,this.internalState.lastFetchCount=n?n.length:0,!n){e.n=4;break}return this._items.deleteAll(),this.addItems(n,"tail"),e.n=4,this.refreshFetchedState();case 4:return e.p=4,this.internalState.ongoing=void 0,e.f(4);case 5:this.emitChangeWithDiff(!!n,r);case 6:return e.a(2)}},e,this,[[2,,4,5]])})),function(e){return r.apply(this,arguments)})},{key:"refreshFetchedState",value:(n=ie(ne().m(function e(){var t;return ne().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.isLatestItemLoaded();case 1:if(!e.v){e.n=2;break}t=me.LATEST,e.n=3;break;case 2:t=me.PAST;case 3:this.internalState.current=t;case 4:return e.a(2)}},e,this)})),function(){return n.apply(this,arguments)})},{key:"addItems",value:function(e,t){var n,r,o=this;"head"===t&&(r=this.trimItemsArrayToLimit([].concat(Z(e),Z(this.items)),"tail")),"tail"===t&&(r=this.trimItemsArrayToLimit([].concat(Z(this.items),Z(e)),"head")),this._items.deleteAll(),(n=this._items).set.apply(n,Z(r.map(function(e){return[o.getId(e),e]})))}},{key:"emitChangeWithDiff",value:function(e,t){(e||t!==this.state)&&this.eventTarget.emit("change",{setItems:Array.from(this._items.items.keys())})}},{key:"trimItemsArrayToLimit",value:function(e,t){var n=this.limit;if(null===n||e.length<=n)return e;var r=Math.floor(n*this.internalState.retainRatio);return"head"===t?e.slice(-r):"tail"===t?e.slice(0,r):e}}]);var n,r,o,i,a}(G));function be(e){return be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},be(e)}function ge(e){return function(e){if(Array.isArray(e))return ke(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Se(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||Se(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Se(e,t){if(e){if("string"==typeof e)return ke(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ke(e,t):void 0}}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Oe(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Te(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Te(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Te(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Te(f,"constructor",s),Te(s,"constructor",u),u.displayName="GeneratorFunction",Te(s,o,"GeneratorFunction"),Te(f),Te(f,o,"Generator"),Te(f,r,function(){return this}),Te(f,"toString",function(){return"[object Generator]"}),(Oe=function(){return{w:i,m:h}})()}function Te(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Te=function(e,t,n,r){function i(t,n){Te(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Te(e,t,n,r)}function je(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Pe(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){je(i,r,o,a,c,"next",e)}function c(e){je(i,r,o,a,c,"throw",e)}a(void 0)})}}function Ie(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ee(r.key),r)}}function Re(e,t,n){return(t=Ee(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ee(e){var t=function(e,t){if("object"!=be(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=be(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==be(t)?t:t+""}var Ae=function(){return e=function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Re(this,"historyWindows",new x),Re(this,"traverseLock",!1),this.room=t,this.tracker=n,this.tracker.client.on("RoomUpdated",function(e){return r.handleRoomUpdated(e)}),this.tracker.client.on("NewTopic",function(e){return r.handleNewTopic(e)}),this.tracker.client.on("TopicDeleted",function(e){return r.handleTopicDeleted(e)}),this.updateTraverseLock(this.room),this.room.defaultTopic&&this.createHistoryWindowForTopic(this.room.defaultTopic)},t=[{key:"getMessagesWindow",value:(i=Pe(Oe().m(function e(t){var n,r,o=arguments;return Oe().w(function(e){for(;;)switch(e.n){case 0:if(n=o.length>1&&void 0!==o[1]&&o[1],this.historyWindows.has(t)||n){e.n=2;break}return e.n=1,this.tracker.rooms.getTopics(this.room.id,[t]);case 1:(r=e.v.get(t))&&this.createHistoryWindowForTopic(r);case 2:return e.a(2,this.historyWindows.get(t))}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"resync",value:(o=Pe(Oe().m(function e(t){var n,r,o,i;return Oe().w(function(e){for(;;)switch(e.p=e.n){case 0:this.room=t,this.updateTraverseLock(t),this.room.defaultTopic&&this.createHistoryWindowForTopic(this.room.defaultTopic),n=0,r=Array.from(this.historyWindows.items);case 1:if(!(n<r.length)){e.n=8;break}return o=we(r[n],2),i=o[1],e.p=2,e.n=3,i.setTraverseLock(this.traverseLock);case 3:if(!this.traverseLock){e.n=4;break}return e.a(3,7);case 4:if(i.state!==me.LATEST){e.n=5;break}return e.n=5,i.resetToLatest(!0);case 5:e.n=7;break;case 6:e.p=6,e.v;case 7:n++,e.n=1;break;case 8:return e.a(2)}},e,this,[[2,6]])})),function(e){return o.apply(this,arguments)})},{key:"handleRoomUpdated",value:(r=Pe(Oe().m(function e(t){var n,r,o,i;return Oe().w(function(e){for(;;)switch(e.n){case 0:if(this.room.id!==t.room.id){e.n=3;break}this.room=t.room,this.updateTraverseLock(t.room),t.room.defaultTopic&&this.createHistoryWindowForTopic(t.room.defaultTopic),n=0,r=Array.from(this.historyWindows.items);case 1:if(!(n<r.length)){e.n=3;break}return o=we(r[n],2),i=o[1],e.n=2,i.setTraverseLock(this.traverseLock);case 2:n++,e.n=1;break;case 3:return e.a(2)}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"handleNewTopic",value:function(e){this.room.id===e.roomId&&this.createHistoryWindowForTopic(e.topic)}},{key:"handleTopicDeleted",value:function(e){this.room.id===e.location.roomId&&this.historyWindows.delete(e.location.topicId)}},{key:"createHistoryWindowForTopic",value:function(e){var t=this;if(!this.historyWindows.has(e.id)){var n=new ve(this.room.id,e.id,this.tracker);if(n.setTraverseLock(this.traverseLock),this.historyWindows.set([e.id,n]),n.on("reftopicsdeleted",function(e){var n,r,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Se(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}(e);try{for(o.s();!(r=o.n()).done;){var i=r.value;t.historyWindows.delete(i)}}catch(e){o.e(e)}finally{o.f()}(n=t.tracker.rooms)._deleteTopicsFromRoom.apply(n,[t.room.id].concat(ge(e)))}),e.refMessage){var r=this.historyWindows.get(e.refMessage.location.topicId);null==r||r._updateMessageReference(e)}}}},{key:"updateTraverseLock",value:function(e){this.traverseLock="Ephemeral"===e.history.mode}}],t&&Ie(e.prototype,t),n&&Ie(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o,i}();function Me(e){return Me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Me(e)}function _e(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Ce(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ce(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function Ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Le(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Fe(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Fe(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Fe(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Fe(f,"constructor",s),Fe(s,"constructor",u),u.displayName="GeneratorFunction",Fe(s,o,"GeneratorFunction"),Fe(f),Fe(f,o,"Generator"),Fe(f,r,function(){return this}),Fe(f,"toString",function(){return"[object Generator]"}),(Le=function(){return{w:i,m:h}})()}function Fe(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Fe=function(e,t,n,r){function i(t,n){Fe(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Fe(e,t,n,r)}function xe(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Ue(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){xe(i,r,o,a,c,"next",e)}function c(e){xe(i,r,o,a,c,"throw",e)}a(void 0)})}}function De(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ne(r.key),r)}}function Ge(e,t,n){return(t=Ne(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ne(e){var t=function(e,t){if("object"!=Me(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Me(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Me(t)?t:t+""}var Be=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Ge(this,"roomHistories",new x),Ge(this,"deferredSession",new Q),this.tracker=t,this.tracker.client.on("Session",function(e){return n.handleSession(e)}),this.tracker.client.on("RoomJoined",function(e){return n.handleRoomJoin(e)}),this.tracker.client.on("RoomDeleted",function(e){return n.handleRoomDeleted(e)}),this.tracker.client.on("RoomLeft",function(e){return n.handleRoomLeft(e)})},t=[{key:"getRoomHistory",value:(o=Ue(Le().m(function e(t){return Le().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:return e.a(2,this.roomHistories.get(t))}},e,this)})),function(e){return o.apply(this,arguments)})},{key:"_resolveLastMessage",value:(r=Ue(Le().m(function e(t){var n,r,o;return Le().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.getRoomHistory(t.roomId).then(function(e){return null==e?void 0:e.getMessagesWindow(t.topicId,!0)}).then(function(e){return(null==e?void 0:e.hasLatest)&&e.getAt(e.length-1)});case 1:if(n=e.v){e.n=3;break}return e.n=2,this.tracker.client.send("GetMessages",{location:t,limit:1});case 2:o=e.v,n=null===(r=o.data)||void 0===r?void 0:r.messages[0];case 3:return e.a(2,n||null)}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"createHistoryForNewRoom",value:function(e){this.roomHistories.set([e.id,new Ae(e,this.tracker)])}},{key:"handleRoomDeleted",value:function(e){this.roomHistories.delete(e.id)}},{key:"handleRoomJoin",value:function(e){this.createHistoryForNewRoom(e.room)}},{key:"handleRoomLeft",value:function(e){this.roomHistories.delete(e.id)}},{key:"handleSession",value:function(e){for(var t=new Set(e.state.rooms.map(function(e){return e.id})),n=0,r=Array.from(this.roomHistories.items.keys());n<r.length;n++){var o=r[n];t.has(o)||this.roomHistories.delete(o)}var i,a=_e(e.state.rooms);try{for(a.s();!(i=a.n()).done;){var c=i.value,u=this.roomHistories.get(c.id);u?u.resync(c):this.createHistoryForNewRoom(c)}}catch(e){a.e(e)}finally{a.f()}this.deferredSession.resolve()}}],t&&De(e.prototype,t),n&&De(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o}();function We(e){return We="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},We(e)}function Je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function He(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Je(Object(n),!0).forEach(function(t){ot(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Je(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function $e(e){return function(e){if(Array.isArray(e))return ze(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ve(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qe(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Ve(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function Ve(e,t){if(e){if("string"==typeof e)return ze(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ze(e,t):void 0}}function ze(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function qe(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Ke(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Ke(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Ke(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Ke(f,"constructor",s),Ke(s,"constructor",u),u.displayName="GeneratorFunction",Ke(s,o,"GeneratorFunction"),Ke(f),Ke(f,o,"Generator"),Ke(f,r,function(){return this}),Ke(f,"toString",function(){return"[object Generator]"}),(qe=function(){return{w:i,m:h}})()}function Ke(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Ke=function(e,t,n,r){function i(t,n){Ke(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Ke(e,t,n,r)}function Ye(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Xe(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){Ye(i,r,o,a,c,"next",e)}function c(e){Ye(i,r,o,a,c,"throw",e)}a(void 0)})}}function Ze(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,it(r.key),r)}}function et(e,t,n){return t=nt(t),function(e,t){if(t&&("object"==We(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,tt()?Reflect.construct(t,n||[],nt(e).constructor):t.apply(e,n))}function tt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(tt=function(){return!!e})()}function nt(e){return nt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},nt(e)}function rt(e,t){return rt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},rt(e,t)}function ot(e,t,n){return(t=it(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function it(e){var t=function(e,t){if("object"!=We(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=We(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==We(t)?t:t+""}var at=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ot(n=et(this,t),"followedTopics",new x),ot(n,"followedTopicsPromises",new V),ot(n,"deferredSession",new Q),ot(n,"summariesCache",new Map),ot(n,"staleRooms",new Set),n.tracker=e,n.tracker.client.on("Session",function(e){return n.handleSession(e)}),n.tracker.client.on("RoomJoined",function(e){return n.handleRoomJoin(e)}),n.tracker.client.on("NewTopic",function(e){return n.handleNewTopic(e)}),n.tracker.client.on("FollowedTopicUpdated",function(e){return n.handleFollowedTopicUpdated(e)}),n.tracker.client.on("TopicFollowed",function(e){return n.handleTopicFollowed(e)}),n.tracker.client.on("TopicUnfollowed",function(e){return n.handleTopicUnfollowed(e)}),n.tracker.client.on("NewMessage",function(e){return n.handleNewMessage(e)}),n.tracker.client.on("RoomDeleted",function(e){return n.handleRoomDeleted(e)}),n.tracker.client.on("RoomLeft",function(e){return n.handleRoomLeft(e)}),n.tracker.client.on("TopicDeleted",function(e){return n.handleTopicDeleted(e)}),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&rt(e,t)}(t,e),n=t,r=[{key:"cacheForSpace",value:(l=Xe(qe().m(function e(t){var n,r,o,i,a=this;return qe().w(function(e){for(;;)switch(e.n){case 0:if(!(i=t)){e.n=2;break}return e.n=1,this.tracker.spaces.get();case 1:i=!e.v.has(t);case 2:if(!i){e.n=3;break}throw new Error("You are not in space ".concat(t));case 3:return e.n=4,this.tracker.rooms.get();case 4:if(n=e.v,(r=t?n.findBy("spaceId",t).items.map(function(e){return e.id}):n.items.filter(function(e){return!e.spaceId}).map(function(e){return e.id})).length){e.n=5;break}return e.a(2);case 5:if(r.some(function(e){return!a.followedTopics.has(e)||a.staleRooms.has(e)})){e.n=6;break}return e.a(2);case 6:return o="space_fetch_".concat(t||"spaceless"),this.followedTopicsPromises.notExist(o)&&this.followedTopicsPromises.registerByFunction(Xe(qe().m(function e(){var n;return qe().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,a.tracker.client.send("GetFollowedTopics",{location:{spaceId:t}});case 1:if(!(n=e.v).error){e.n=2;break}throw n.error;case 2:a.reconcileRoomsFollowedTopics(r,n.data.followedTopics);case 3:return e.a(2)}},e)})),o),e.n=7,this.followedTopicsPromises.get(o);case 7:return e.a(2)}},e,this)})),function(e){return l.apply(this,arguments)})},{key:"getForRoom",value:(s=Xe(qe().m(function e(t){var n=this;return qe().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.rooms.get();case 1:if(e.v.has(t)){e.n=2;break}return e.a(2,void 0);case 2:if(this.followedTopics.has(t)&&!this.staleRooms.has(t)){e.n=3;break}return this.followedTopicsPromises.notExist(t)&&this.followedTopicsPromises.registerByFunction(Xe(qe().m(function e(){var r;return qe().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,n.tracker.client.send("GetFollowedTopics",{location:{roomId:t}});case 1:if(!(r=e.v).error){e.n=2;break}throw r.error;case 2:n.applyRoomFollowedTopics(t,r.data.followedTopics),n.invalidateUnreadSummaries(t);case 3:return e.a(2)}},e)})),t),e.n=3,this.followedTopicsPromises.get(t);case 3:return e.a(2,this.followedTopics.get(t))}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"ackRoom",value:(u=Xe(qe().m(function e(t){var n,r,o,i,a;return qe().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.n=1,this.getForRoom(t);case 1:if(n=e.v){e.n=2;break}return e.a(2);case 2:r=Qe(n.items),e.p=3,r.s();case 4:if((o=r.n()).done){e.n=6;break}if(!(i=o.value).isUnread){e.n=5;break}return e.n=5,this.tracker.client.send("Ack",{location:i.location});case 5:e.n=4;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,r.e(a);case 8:return e.p=8,r.f(),e.f(8);case 9:return e.a(2)}},e,this,[[3,7,8,9]])})),function(e){return u.apply(this,arguments)})},{key:"summarize",value:(c=Xe(qe().m(function e(t){var n,r,o,i,a,c,u,s,l,f,h,p,d,y,m,v,b,g,w;return qe().w(function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.topicId?"topic:".concat(t.roomId,":").concat(t.topicId):t.roomId?"room:".concat(t.roomId):t.spaceId?"space:".concat(t.spaceId):"spaceless",!this.summariesCache.has(n)){e.n=1;break}return e.a(2,this.summariesCache.get(n));case 1:return r=[],e.n=2,this.tracker.rooms.get();case 2:if(i=e.v,!t.topicId){e.n=4;break}if(t.roomId){e.n=3;break}throw new Error("roomId is required when querying by topicId");case 3:r=[t.roomId],o=t.topicId,e.n=9;break;case 4:if(!t.roomId){e.n=5;break}r=[t.roomId],e.n=9;break;case 5:if(!t.spaceId){e.n=7;break}return e.n=6,this.cacheForSpace(t.spaceId);case 6:r=i.findBy("spaceId",t.spaceId).items.map(function(e){return e.id}),e.n=9;break;case 7:return e.n=8,this.cacheForSpace(null);case 8:r=i.items.filter(function(e){return!e.spaceId}).map(function(e){return e.id});case 9:a=0,c=0,u=0,s=Qe(r),e.p=10,s.s();case 11:if((l=s.n()).done){e.n=22;break}return f=l.value,e.n=12,this.getForRoom(f);case 12:if(h=e.v){e.n=13;break}return e.a(3,21);case 13:p=!1,d=Qe(h.items),e.p=14,d.s();case 15:if((y=d.n()).done){e.n=18;break}if(v=y.value,!o||v.location.topicId===o){e.n=16;break}return e.a(3,17);case 16:v.isUnread&&(p||(u++,p=!0),c++),a+=null!==(m=v.mentionCount)&&void 0!==m?m:0;case 17:e.n=15;break;case 18:e.n=20;break;case 19:e.p=19,g=e.v,d.e(g);case 20:return e.p=20,d.f(),e.f(20);case 21:e.n=11;break;case 22:e.n=24;break;case 23:e.p=23,w=e.v,s.e(w);case 24:return e.p=24,s.f(),e.f(24);case 25:return b={mentionCount:a,unreadTopicCount:c,unreadRoomCount:u,isUnread:c>0},this.summariesCache.set(n,b),e.a(2,b)}},e,this,[[14,19,20,21],[10,23,24,25]])})),function(e){return c.apply(this,arguments)})},{key:"_deleteByTopicIds",value:function(e){for(var t,n=this,r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];null===(t=this.followedTopics.get(e))||void 0===t||t.delete.apply(t,o),o.forEach(function(t){return n.invalidateUnreadSummaries(e,t)})}},{key:"handleSession",value:function(e){var t,n=Qe(this.followedTopics.items.keys());try{for(n.s();!(t=n.n()).done;){var r=t.value;this.staleRooms.add(r)}}catch(e){n.e(e)}finally{n.f()}this.followedTopicsPromises.forgetAll(),this.invalidateUnreadSummaries(),this.deferredSession.resolve()}},{key:"handleNewMessage",value:function(e){this.updateLocallyFollowedTopicOnNewMessage(e)}},{key:"handleFollowedTopicUpdated",value:function(e){var t;null===(t=this.followedTopics.get(e.followedTopic.location.roomId))||void 0===t||t.set(e.followedTopic),this.invalidateUnreadSummaries(e.followedTopic.location.roomId,e.followedTopic.location.topicId)}},{key:"handleTopicFollowed",value:function(e){this.setFollowedTopicsArray([e.followedTopic.location.roomId],[e.followedTopic]),this.invalidateUnreadSummaries(e.followedTopic.location.roomId,e.followedTopic.location.topicId)}},{key:"handleTopicUnfollowed",value:function(e){var t;null===(t=this.followedTopics.get(e.location.roomId))||void 0===t||t.delete(e.location.topicId),this.invalidateUnreadSummaries(e.location.roomId,e.location.topicId)}},{key:"handleRoomDeleted",value:function(e){this.clearRoomFollowedTopicsStructures(e.id)}},{key:"handleRoomJoin",value:function(e){this.clearRoomFollowedTopicsStructures(e.room.id)}},{key:"handleRoomLeft",value:function(e){this.clearRoomFollowedTopicsStructures(e.id)}},{key:"handleNewTopic",value:(a=Xe(qe().m(function e(t){var n,r;return qe().w(function(e){for(;;)switch(e.n){case 0:if(!this.followedTopics.has(t.roomId)){e.n=2;break}return e.n=1,this.tracker.client.send("GetFollowedTopics",{location:{roomId:t.roomId,topicId:t.topic.id}});case 1:n=e.v,(r=n.data.followedTopics[0])&&(this.followedTopics.get(t.roomId).set(r),this.invalidateUnreadSummaries(t.roomId,t.topic.id));case 2:return e.a(2)}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"handleTopicDeleted",value:function(e){var t;null===(t=this.followedTopics.get(e.location.roomId))||void 0===t||t.delete(e.location.topicId),this.invalidateUnreadSummaries(e.location.roomId,e.location.topicId)}},{key:"invalidateUnreadSummaries",value:function(e,t){if(e){if(this.summariesCache.delete("room:".concat(e)),t)this.summariesCache.delete("topic:".concat(e,":").concat(t));else{var n,r=Qe(this.summariesCache.keys());try{for(r.s();!(n=r.n()).done;){var o=n.value;o.startsWith("topic:".concat(e,":"))&&this.summariesCache.delete(o)}}catch(e){r.e(e)}finally{r.f()}}var i,a=Qe(this.summariesCache.keys());try{for(a.s();!(i=a.n()).done;){var c=i.value;(c.startsWith("space:")||"spaceless"===c)&&this.summariesCache.delete(c)}}catch(e){a.e(e)}finally{a.f()}}else this.summariesCache.clear();this.emit("change")}},{key:"invalidateUnreadSummariesForRooms",value:function(e){var t=this,n=new Set(e);e.forEach(function(e){t.summariesCache.delete("room:".concat(e))});var r,o=Qe(this.summariesCache.keys());try{for(o.s();!(r=o.n()).done;){var i=r.value;if(i.startsWith("space:")||"spaceless"===i)this.summariesCache.delete(i);else if(i.startsWith("topic:")){var a=i.split(":");a.length>=2&&n.has(a[1])&&this.summariesCache.delete(i)}}}catch(e){o.e(e)}finally{o.f()}this.emit("change")}},{key:"updateLocallyFollowedTopicOnNewMessage",value:(i=Xe(qe().m(function e(t){var n,r,o,i,a,c,u,s,l,f,h;return qe().w(function(e){for(;;)switch(e.n){case 0:if(n=this.followedTopics.get(t.message.location.roomId),r=null==n?void 0:n.get(t.message.location.topicId),n&&r&&"Ephemeral"!==t.message.type){e.n=1;break}return e.a(2);case 1:return e.n=2,this.tracker.getMe();case 2:if(o=e.v,t.message.author.user.id!==o.id){e.n=3;break}i={missed:0,lastAckMessageId:t.message.id},e.n=6;break;case 3:if("Text"!==t.message.type){e.n=5;break}return e.n=4,this.tracker.rooms.getMe(t.message.location.roomId);case 4:s=e.v,l=[].concat($e(null!==(a=null===(c=s.spaceMember)||void 0===c?void 0:c.roles)&&void 0!==a?a:[]),$e(null!==(u=s.roles)&&void 0!==u?u:[])),f=[].concat($e(l.map(function(e){return"<@&".concat(e,">")})),["<@".concat(o.id,">")]),h=f.some(function(e){return t.message.content.includes(e)}),i={missed:null===r.missed?null:r.missed+1,isUnread:!0,mentionCount:r.mentionCount+(h?1:0)},e.n=6;break;case 5:i={missed:null===r.missed?null:r.missed+1,isUnread:!0};case 6:n.set(He(He({},r),i)),this.invalidateUnreadSummaries(t.message.location.roomId,t.message.location.topicId);case 7:return e.a(2)}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"applyRoomFollowedTopics",value:function(e,t){var n;this.followedTopics.has(e)||this.followedTopics.set([e,new G(function(e){return e.location.topicId})]),(n=this.followedTopics.get(e)).reconcile.apply(n,$e(t)),this.staleRooms.delete(e)}},{key:"reconcileRoomsFollowedTopics",value:function(e,t){var n=this,r={};t.forEach(function(e){var t,n;(null!==(n=r[t=e.location.roomId])&&void 0!==n?n:r[t]=[]).push(e)}),e.forEach(function(e){var t;return n.applyRoomFollowedTopics(e,null!==(t=r[e])&&void 0!==t?t:[])}),this.invalidateUnreadSummariesForRooms(e)}},{key:"setFollowedTopicsArray",value:function(e,t){var n=this,r={};t.forEach(function(e){var t,n;null!==(n=r[t=e.location.roomId])&&void 0!==n||(r[t]=[]),r[e.location.roomId].push(e)}),e.forEach(function(e){var t;n.followedTopics.has(e)||n.followedTopics.set([e,new G(function(e){return e.location.topicId})]),r[e]&&(t=n.followedTopics.get(e)).set.apply(t,$e(r[e]))}),this.invalidateUnreadSummariesForRooms(e)}},{key:"clearRoomFollowedTopicsStructures",value:function(e){this.followedTopics.delete(e),this.followedTopicsPromises.forget(e),this.staleRooms.delete(e),this.invalidateUnreadSummaries(e)}}],r&&Ze(n.prototype,r),o&&Ze(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a,c,u,s,l}(a);function ct(e){return ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ct(e)}function ut(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function st(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ut(Object(n),!0).forEach(function(t){gt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ut(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function lt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=ht(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function ft(e){return function(e){if(Array.isArray(e))return pt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ht(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ht(e,t){if(e){if("string"==typeof e)return pt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pt(e,t):void 0}}function pt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function dt(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return yt(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(yt(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,yt(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,yt(f,"constructor",s),yt(s,"constructor",u),u.displayName="GeneratorFunction",yt(s,o,"GeneratorFunction"),yt(f),yt(f,o,"Generator"),yt(f,r,function(){return this}),yt(f,"toString",function(){return"[object Generator]"}),(dt=function(){return{w:i,m:h}})()}function yt(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}yt=function(e,t,n,r){function i(t,n){yt(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},yt(e,t,n,r)}function mt(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function vt(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){mt(i,r,o,a,c,"next",e)}function c(e){mt(i,r,o,a,c,"throw",e)}a(void 0)})}}function bt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,wt(r.key),r)}}function gt(e,t,n){return(t=wt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wt(e){var t=function(e,t){if("object"!=ct(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=ct(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==ct(t)?t:t+""}var St=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),gt(this,"messages",void 0),gt(this,"followedTopics",void 0),gt(this,"list",new G("id")),gt(this,"topics",new x),gt(this,"members",new x),gt(this,"deferredSession",new Q),gt(this,"membersPromises",new V),gt(this,"topicsPromises",new V),this.tracker=t,this.messages=new Be(t),this.followedTopics=new at(t),this.tracker.client.on("NewMessage",function(e){return n.handleNewMessage(e)}),this.tracker.client.on("MessagesRedacted",function(e){return n.handleMessagesRedacted(e)}),this.tracker.client.on("NewTopic",function(e){return n.handleNewTopic(e)}),this.tracker.client.on("TopicDeleted",function(e){return n.handleTopicDeleted(e)}),this.tracker.client.on("RoomJoined",function(e){return n.handleRoomJoined(e)}),this.tracker.client.on("RoomLeft",function(e){return n.handleRoomLeft(e)}),this.tracker.client.on("RoomUpdated",function(e){return n.handleRoomUpdated(e)}),this.tracker.client.on("RoomDeleted",function(e){return n.handleRoomDeleted(e)}),this.tracker.client.on("TopicUpdated",function(e){return n.handleTopicUpdated(e)}),this.tracker.client.on("RoomMembersJoined",function(e){return n.handleRoomMembersJoined(e)}),this.tracker.client.on("RoomMemberLeft",function(e){return n.handleRoomMemberLeft(e)}),this.tracker.client.on("RoomMembers",function(e){return n.handleRoomMembers(e)}),this.tracker.client.on("RoomMemberUpdated",function(e){return n.handleRoomMemberUpdated(e)}),this.tracker.client.on("SpaceMemberLeft",function(e){return n.handleSpaceMemberLeft(e)}),this.tracker.client.on("SpaceMemberUpdated",function(e){return n.handleSpaceMemberUpdated(e)}),this.tracker.client.on("SpaceDeleted",function(e){return n.handleSpaceDeleted(e)}),this.tracker.client.on("SpaceLeft",function(e){return n.handleSpaceDeleted(e)}),this.tracker.client.on("UserUpdated",function(e){return n.handleUserUpdated(e)}),this.tracker.client.on("Session",function(e){return n.handleSession(e)})},t=[{key:"getMembers",value:(a=vt(dt().m(function e(t){var n=this;return dt().w(function(e){for(;;)switch(e.n){case 0:return this.membersPromises.notExist(t)&&this.membersPromises.registerByFunction(vt(dt().m(function e(){var r;return dt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,n.tracker.client.send("GetRoomMembers",{id:t});case 1:if(!(r=e.v).error){e.n=2;break}throw r.error;case 2:n.handleRoomMembers(r.data);case 3:return e.a(2)}},e)})),t),e.n=1,this.membersPromises.get(t);case 1:return e.a(2,this.members.get(t))}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"getMe",value:(i=vt(dt().m(function e(t){var n,r;return dt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.getMe();case 1:if(n=e.v.id,this.list.has(t)){e.n=2;break}return e.a(2,void 0);case 2:return e.n=3,this.getMembers(t);case 3:return r=e.v,e.a(2,null==r?void 0:r.items.find(function(e){var t,r;return(null!==(t=null===(r=e.user)||void 0===r?void 0:r.id)&&void 0!==t?t:e.spaceMember.user.id)===n}))}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"get",value:function(){var e=vt(dt().m(function e(){return dt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:return e.a(2,this.list)}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getTopics",value:(o=vt(dt().m(function e(t,n){var r,o,i,a,c,u,s,l=this;return dt().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:if(null==n||!n.length){e.n=8;break}r=function(e){var n;return!(null!==(n=l.topics.get(t))&&void 0!==n&&n.has(e)||l.topicsPromises.has(t+e))},(o=n.filter(r)).length&&(i=this.tracker.client.send("GetTopics",{roomId:t,topicIds:o}).then(function(e){var t;return null===(t=l.topics.get(e.data.location.roomId))||void 0===t?void 0:t.set.apply(t,ft(e.data.topics))}),o.forEach(function(e){return l.topicsPromises.register(i,t+e)})),a=lt(n),e.p=2,a.s();case 3:if((c=a.n()).done){e.n=5;break}return u=c.value,e.n=4,this.topicsPromises.get(t+u);case 4:e.n=3;break;case 5:e.n=7;break;case 6:e.p=6,s=e.v,a.e(s);case 7:return e.p=7,a.f(),e.f(7);case 8:return e.a(2,this.topics.get(t))}},e,this,[[2,6,7,8]])})),function(e,t){return o.apply(this,arguments)})},{key:"_deleteTopicsFromRoom",value:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];null===(t=this.topics.get(e))||void 0===t||t.delete.apply(t,r)}},{key:"deleteRoom",value:function(){for(var e,t,n,r,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];(e=this.list).delete.apply(e,i),(t=this.members).delete.apply(t,i),(n=this.membersPromises).forget.apply(n,i);for(var c=0,u=i;c<u.length;c++){var s,l,f,h=u[c],p=null!==(s=null===(l=this.topics.get(h))||void 0===l?void 0:l.items.map(function(e){return e.id}))&&void 0!==s?s:[];(f=this.followedTopics)._deleteByTopicIds.apply(f,[h].concat(ft(p)))}(r=this.topics).delete.apply(r,i)}},{key:"deleteRoomsBySpaceId",value:function(e){this.deleteRoom.apply(this,ft(this.list.findBy("spaceId",e).items.map(function(e){return e.id})))}},{key:"handleSpaceMemberUpdated",value:function(e){var t,n=lt(this.list.findBy("spaceId",e.spaceId).items);try{for(n.s();!(t=n.n()).done;){var r=t.value,o=this.members.get(r.id);if(o&&o.has(e.userId)){var i=o.get(e.userId),a=e.member;a.user=i.spaceMember.user,o.set(st(st({},i),{},{spaceMember:a}))}}}catch(e){n.e(e)}finally{n.f()}}},{key:"handleSpaceMemberLeft",value:function(e){var t=this;this.list.findBy("spaceId",e.spaceId).items.forEach(function(n){var r;return null===(r=t.members.get(n.id))||void 0===r?void 0:r.delete(e.userId)})}},{key:"handleRoomMemberUpdated",value:function(e){var t,n;if(this.members.has(e.roomId)){var r=this.members.get(e.roomId),o=r.get(e.userId),i=e.member,a=null!==(t=null===(n=o.spaceMember)||void 0===n?void 0:n.user)&&void 0!==t?t:o.user;i.spaceMember?i.spaceMember.user=a:i.user=a,r.set(i)}}},{key:"handleSpaceDeleted",value:function(e){this.deleteRoomsBySpaceId(e.id)}},{key:"handleTopicDeleted",value:function(e){var t;this.topics.get(e.location.roomId).delete(e.location.topicId);var n=this.list.get(e.location.roomId);(null===(t=n.defaultTopic)||void 0===t?void 0:t.id)===e.location.topicId&&this.list.set(st(st({},n),{},{defaultTopic:null}))}},{key:"handleNewTopic",value:function(e){this.addJoinedRoomTopics(e.roomId,e.topic)}},{key:"addJoinedRoomTopics",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o;this.topics.has(e)?(o=this.topics.get(e)).set.apply(o,n):this.topics.set([e,new G("id",n)])}},{key:"handleRoomJoined",value:function(e){this.addJoinedRooms(e.room)}},{key:"handleRoomUpdated",value:function(e){this.list.has(e.room.id)&&this.list.set(e.room)}},{key:"handleRoomDeleted",value:function(e){this.deleteRoom(e.id)}},{key:"handleTopicUpdated",value:function(e){var t,n=this.list.get(e.location.roomId);if(null!==(t=this.topics.get(e.location.roomId))&&void 0!==t&&t.has(e.topic.id)&&this.topics.get(e.location.roomId).set(e.topic),n.defaultTopic.id===e.topic.id){var r=st({},n);r.defaultTopic=e.topic,this.list.set(r)}}},{key:"addJoinedRooms",value:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];for(var o=0,i=n;o<i.length;o++){var a=i[o];a.defaultTopic&&this.addJoinedRoomTopics(a.id,a.defaultTopic),"Pm"===a.type&&a.recipients&&(this.handleRoomMembers({id:a.id,members:a.recipients.map(function(e){return{user:e,spaceMember:null,roles:null,customColor:null,customNick:null,customAvatar:null,extras:""}})}),this.membersPromises.register(Promise.resolve(),a.id))}(e=this.list).set.apply(e,n)}},{key:"handleRoomLeft",value:function(e){this.deleteRoom(e.id)}},{key:"handleRoomMembersJoined",value:function(e){var t;this.members.has(e.roomId)&&(t=this.members.get(e.roomId)).set.apply(t,ft(e.members))}},{key:"handleRoomMemberLeft",value:function(e){this.members.has(e.roomId)&&this.members.get(e.roomId).delete(e.userId)}},{key:"handleRoomMembers",value:function(e){var t;this.members.has(e.id)?(t=this.members.get(e.id)).reconcile.apply(t,ft(e.members)):this.members.set([e.id,new G(function(e){var t,n;return null!==(t=null===(n=e.user)||void 0===n?void 0:n.id)&&void 0!==t?t:e.spaceMember.user.id},e.members)])}},{key:"handleSession",value:function(e){var t=new Set(e.state.rooms.map(function(e){return e.id})),n=this.list.items.filter(function(e){return!t.has(e.id)}).map(function(e){return e.id});n.length&&this.deleteRoom.apply(this,ft(n)),this.membersPromises.forgetAll(),this.topicsPromises.forgetAll(),this.addJoinedRooms.apply(this,ft(e.state.rooms)),this.deferredSession.resolve()}},{key:"handleUserUpdated",value:function(e){var t;this.members.items.forEach(function(t){var n=t.get(e.user.id);if(n){var r=st({},n);n.user?r.user=e.user:r.spaceMember.user=e.user,t.set(r)}});var n=[];this.list.items.forEach(function(t){var r;null!==(r=t.recipients)&&void 0!==r&&r.some(function(t){return t.id===e.user.id})&&(t.recipients=t.recipients.map(function(t){return t.id===e.user.id?e.user:t}),n.push(st({},t)))}),(t=this.list).set.apply(t,n)}},{key:"handleNewMessage",value:function(e){var t,n=this.topics.get(e.message.location.roomId),r=null==n?void 0:n.get(e.message.location.topicId);if(r){var o=st(st({},r),{},{messageCount:r.messageCount+1,lastMessage:e.message});n.set(o);var i=this.list.get(e.message.location.roomId);(null===(t=i.defaultTopic)||void 0===t?void 0:t.id)===e.message.location.topicId&&this.list.set(st(st({},i),{},{defaultTopic:o}))}}},{key:"handleMessagesRedacted",value:(r=vt(dt().m(function e(t){var n,r,o,i,a;return dt().w(function(e){for(;;)switch(e.n){case 0:if(n=this.topics.get(t.location.roomId),!(r=null==n?void 0:n.get(t.location.topicId))){e.n=4;break}if(!((o=Math.max(r.messageCount-t.ids.length,0))>0)){e.n=2;break}return e.n=1,this.messages._resolveLastMessage(t.location);case 1:a=e.v,e.n=3;break;case 2:a=null;case 3:i=a,n.set(st(st({},r),{},{messageCount:o,lastMessage:i}));case 4:return e.a(2)}},e,this)})),function(e){return r.apply(this,arguments)})}],t&&bt(e.prototype,t),n&&bt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o,i,a}();function kt(e){var t,n;return null!==(t=e.user)&&void 0!==t?t:null===(n=e.spaceMember)||void 0===n?void 0:n.user}function Ot(e){return Ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ot(e)}function Tt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Pt(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function jt(e){return function(e){if(Array.isArray(e))return It(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Pt(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pt(e,t){if(e){if("string"==typeof e)return It(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?It(e,t):void 0}}function It(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Rt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Et(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rt(Object(n),!0).forEach(function(t){Ft(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function At(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Mt(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Mt(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Mt(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Mt(f,"constructor",s),Mt(s,"constructor",u),u.displayName="GeneratorFunction",Mt(s,o,"GeneratorFunction"),Mt(f),Mt(f,o,"Generator"),Mt(f,r,function(){return this}),Mt(f,"toString",function(){return"[object Generator]"}),(At=function(){return{w:i,m:h}})()}function Mt(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Mt=function(e,t,n,r){function i(t,n){Mt(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Mt(e,t,n,r)}function _t(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Ct(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){_t(i,r,o,a,c,"next",e)}function c(e){_t(i,r,o,a,c,"throw",e)}a(void 0)})}}function Lt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,xt(r.key),r)}}function Ft(e,t,n){return(t=xt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xt(e){var t=function(e,t){if("object"!=Ot(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Ot(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Ot(t)?t:t+""}var Ut=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Ft(this,"list",new G("id")),Ft(this,"roles",new x),Ft(this,"rooms",new x),Ft(this,"roomIdToSpaceId",new x),Ft(this,"members",new x),Ft(this,"deferredSession",new Q),Ft(this,"roomsPromises",new V),Ft(this,"membersPromises",new V),this.tracker=t,this.tracker.client.on("NewRoom",function(e){return n.handleNewRoom(e)}),this.tracker.client.on("RoomDeleted",function(e){return n.handleRoomDeleted(e)}),this.tracker.client.on("RoomUpdated",function(e){return n.handleRoomUpdated(e)}),this.tracker.client.on("SpaceDeleted",function(e){return n.handleSpaceDeleted(e)}),this.tracker.client.on("SpaceUpdated",function(e){return n.handleSpaceUpdated(e)}),this.tracker.client.on("SpaceJoined",function(e){return n.handleSpaceJoined(e)}),this.tracker.client.on("SpaceLeft",function(e){return n.handleSpaceDeleted(e)}),this.tracker.client.on("SpaceMemberJoined",function(e){return n.handleSpaceMemberJoined(e)}),this.tracker.client.on("SpaceMemberLeft",function(e){return n.handleSpaceMemberLeft(e)}),this.tracker.client.on("SpaceMembers",function(e){return n.handleSpaceMembers(e)}),this.tracker.client.on("SpaceRooms",function(e){return n.handleSpaceRooms(e)}),this.tracker.client.on("RoomSummaryUpdated",function(e){return n.handleRoomSummaryUpdated(e)}),this.tracker.client.on("SpaceMemberUpdated",function(e){return n.handleSpaceMemberUpdated(e)}),this.tracker.client.on("UserUpdated",function(e){return n.handleUserUpdated(e)}),this.tracker.client.on("NewRole",function(e){return n.handleNewRole(e)}),this.tracker.client.on("RoleDeleted",function(e){return n.handleRoleDeleted(e)}),this.tracker.client.on("RoleUpdated",function(e){return n.handleRoleUpdated(e)}),this.tracker.client.on("Session",function(e){return n.handleSession(e)})},t=[{key:"get",value:function(){var e=Ct(At().m(function e(){return At().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:return e.a(2,this.list)}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getRoles",value:(s=Ct(At().m(function e(t){return At().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:return e.a(2,this.roles.get(t))}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"getRooms",value:(u=Ct(At().m(function e(t){var n=this;return At().w(function(e){for(;;)switch(e.n){case 0:return this.roomsPromises.notExist(t)&&this.roomsPromises.registerByFunction(Ct(At().m(function e(){var r;return At().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,n.tracker.client.send("GetSpaceRooms",{id:t});case 1:if(!(r=e.v).error){e.n=2;break}throw r.error;case 2:n.handleSpaceRooms(r.data);case 3:return e.a(2)}},e)})),t),e.n=1,this.roomsPromises.get(t);case 1:return e.a(2,this.rooms.get(t))}},e,this)})),function(e){return u.apply(this,arguments)})},{key:"refreshRooms",value:(c=Ct(At().m(function e(t){return At().w(function(e){for(;;)if(0===e.n)return this.roomsPromises.forget(t),e.a(2,this.getRooms(t))},e,this)})),function(e){return c.apply(this,arguments)})},{key:"getMembers",value:(a=Ct(At().m(function e(t){var n=this;return At().w(function(e){for(;;)switch(e.n){case 0:return this.membersPromises.notExist(t)&&this.membersPromises.registerByFunction(Ct(At().m(function e(){var r;return At().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,n.tracker.client.send("GetSpaceMembers",{id:t});case 1:if(!(r=e.v).error){e.n=2;break}throw r.error;case 2:n.handleSpaceMembers(r.data);case 3:return e.a(2)}},e)})),t),e.n=1,this.membersPromises.get(t);case 1:return e.a(2,this.members.get(t))}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"getMe",value:(i=Ct(At().m(function e(t){var n,r;return At().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.getMe();case 1:if(n=e.v.id,this.list.has(t)){e.n=2;break}return e.a(2,void 0);case 2:return e.n=3,this.getMembers(t);case 3:return r=e.v,e.a(2,null==r?void 0:r.items.find(function(e){return e.user.id===n}))}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"handleNewRole",value:function(e){var t=this.roles.get(e.spaceId);t.set(e.role),this.list.get(e.spaceId).roles=t.items}},{key:"handleNewRoom",value:function(e){var t;null===(t=this.rooms.get(e.spaceId))||void 0===t||t.set(e.summary),this.roomIdToSpaceId.set([e.summary.id,e.spaceId])}},{key:"handleRoomUpdated",value:function(e){if(e.room.spaceId&&this.rooms.has(e.room.spaceId)){var t=this.rooms.get(e.room.spaceId);t.set(Et(Et({},t.get(e.room.id)),{},{name:e.room.name,description:e.room.description}))}}},{key:"handleRoomDeleted",value:(o=Ct(At().m(function e(t){var n,r,o,i;return At().w(function(e){for(;;)switch(e.n){case 0:if(r=this.roomIdToSpaceId.get(t.id),this.roomIdToSpaceId.delete(t.id),r){e.n=1;break}return e.a(2);case 1:o=this.list.get(r),i=!1,null===(n=this.rooms.get(r))||void 0===n||n.delete(t.id),o.systemRoom===t.id&&(o.systemRoom=null,i=!0),o.defaultRooms.includes(t.id)&&(o.defaultRooms=o.defaultRooms.filter(function(e){return e!==t.id}),i=!0),i&&this.list.set(o);case 2:return e.a(2)}},e,this)})),function(e){return o.apply(this,arguments)})},{key:"handleRoleDeleted",value:function(e){var t=this.roles.get(e.spaceId);t.delete(e.id),this.list.get(e.spaceId).roles=t.items}},{key:"handleSpaceUpdated",value:function(e){this.list.set(e.space)}},{key:"handleSpaceDeleted",value:function(e){var t,n,r,o=null!==(t=null===(n=this.rooms.get(e.id))||void 0===n?void 0:n.items.map(function(e){return e.id}))&&void 0!==t?t:[];(r=this.roomIdToSpaceId).delete.apply(r,jt(o)),this.roles.delete(e.id),this.members.delete(e.id),this.membersPromises.forget(e.id),this.rooms.delete(e.id),this.roomsPromises.forget(e.id),this.list.delete(e.id)}},{key:"handleSpaceJoined",value:function(e){this.addJoinedSpaces(e.space)}},{key:"addJoinedSpaces",value:function(){for(var e,t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];(e=this.roles).set.apply(e,jt(r.map(function(e){return[e.id,new G("id",e.roles)]}))),(t=this.list).set.apply(t,r)}},{key:"handleSpaceMemberJoined",value:function(e){this.members.has(e.spaceId)&&this.members.get(e.spaceId).set(e.member)}},{key:"handleSpaceMemberLeft",value:function(e){this.members.has(e.spaceId)&&this.members.get(e.spaceId).delete(e.userId)}},{key:"handleSpaceMembers",value:function(e){var t;this.members.has(e.id)?(t=this.members.get(e.id)).reconcile.apply(t,jt(e.members)):this.members.set([e.id,new G(function(e){return null==e?void 0:e.user.id},e.members)])}},{key:"handleSpaceRooms",value:function(e){var t,n=this;this.rooms.has(e.id)?(t=this.rooms.get(e.id)).reconcile.apply(t,jt(e.summaries)):this.rooms.set([e.id,new G("id",e.summaries)]),e.summaries.forEach(function(t){return n.roomIdToSpaceId.set([t.id,e.id])})}},{key:"handleRoomSummaryUpdated",value:(r=Ct(At().m(function e(t){var n,r,o,i,a;return At().w(function(e){for(;;)switch(e.n){case 0:if(n=this.roomIdToSpaceId.get(t.summary.id),r=this.roomsPromises.get(n),!n||!r){e.n=2;break}return e.n=1,r;case 1:o=this.rooms.get(n),i=o.get(t.summary.id),a=i?Et(Et({},i),t.summary):t.summary,o.set(a);case 2:return e.a(2)}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"handleSpaceMemberUpdated",value:function(e){if(this.members.has(e.spaceId)){var t=this.members.get(e.spaceId),n=t.get(e.userId);t.set(Et(Et({},e.member),{},{user:n.user}))}}},{key:"handleRoleUpdated",value:function(e){var t,n=this.roles.get(e.spaceId),r=n.get(e.role.id),o=e.role,i=[o];r.priority!==o.priority&&i.push.apply(i,jt(function(e,t,n){var r=n.priority-t.priority>0,o=!r,i=[];return e.forEach(function(e){e.id!==n.id&&(r&&t.priority<=e.priority&&(e.priority--,i.push(e)),o&&n.priority<=e.priority&&(e.priority++,i.push(e)))}),i}(n.items,r,o))),(t=this.roles.get(e.spaceId)).set.apply(t,i)}},{key:"handleSession",value:function(e){var t,n,r=new Set(e.state.spaces.map(function(e){return e.id})),o=this.list.items.filter(function(e){return!r.has(e.id)}).map(function(e){return e.id}),i=Tt(o);try{for(i.s();!(n=i.n()).done;){var a=n.value;this.handleSpaceDeleted({id:a})}}catch(e){i.e(e)}finally{i.f()}this.roomsPromises.forgetAll(),this.membersPromises.forgetAll();var c,u=Tt(e.state.spaces);try{for(u.s();!(c=u.n()).done;){var s,l=c.value;this.roles.has(l.id)?(s=this.roles.get(l.id)).reconcile.apply(s,jt(l.roles)):this.roles.set([l.id,new G("id",l.roles)])}}catch(e){u.e(e)}finally{u.f()}(t=this.list).set.apply(t,jt(e.state.spaces)),this.deferredSession.resolve()}},{key:"handleUserUpdated",value:function(e){this.members.items.forEach(function(t){var n=t.get(e.user.id);n&&t.set(Et(Et({},n),{},{user:e.user}))})}}],t&&Lt(e.prototype,t),n&&Lt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o,i,a,c,u,s}();function Dt(e){return Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Dt(e)}function Gt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Jt(r.key),r)}}function Nt(e,t,n){return t&&Gt(e.prototype,t),n&&Gt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Bt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Wt(e,t,n){return(t=Jt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Jt(e){var t=function(e,t){if("object"!=Dt(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Dt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Dt(t)?t:t+""}var Ht=function(e){return e[e.Global=0]="Global",e[e.Space=1]="Space",e[e.Room=2]="Room",e[e.Topic=3]="Topic",e}({}),$t=Nt(function e(){Bt(this,e),Wt(this,"value",void 0),Wt(this,"maxLayer",void 0)}),Qt=function(){return Nt(function e(){Bt(this,e)},null,[{key:"getNames",value:function(){return Object.keys(this.list)}},{key:"getByName",value:function(e){return this.list[e]}},{key:"canBeDefinedOnLayer",value:function(e,t){if(!this.getByName(e))throw new Error("Invalid permission name: ".concat(e));return t<=this.getByName(e).maxLayer}}])}();function Vt(e){return Vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vt(e)}function zt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Yt(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function qt(e){return function(e){if(Array.isArray(e))return Xt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Yt(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||Yt(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Yt(e,t){if(e){if("string"==typeof e)return Xt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Xt(e,t):void 0}}function Xt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Zt(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return en(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(en(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,en(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,en(f,"constructor",s),en(s,"constructor",u),u.displayName="GeneratorFunction",en(s,o,"GeneratorFunction"),en(f),en(f,o,"Generator"),en(f,r,function(){return this}),en(f,"toString",function(){return"[object Generator]"}),(Zt=function(){return{w:i,m:h}})()}function en(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}en=function(e,t,n,r){function i(t,n){en(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},en(e,t,n,r)}function tn(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function nn(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){tn(i,r,o,a,c,"next",e)}function c(e){tn(i,r,o,a,c,"throw",e)}a(void 0)})}}function rn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ln(r.key),r)}}function on(e,t,n){return t=cn(t),function(e,t){if(t&&("object"==Vt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,an()?Reflect.construct(t,n||[],cn(e).constructor):t.apply(e,n))}function an(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(an=function(){return!!e})()}function cn(e){return cn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},cn(e)}function un(e,t){return un=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},un(e,t)}function sn(e,t,n){return(t=ln(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ln(e){var t=function(e,t){if("object"!=Vt(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Vt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Vt(t)?t:t+""}Wt(Qt,"list",{Root:{value:1,maxLayer:Ht.Room},CreateSpaces:{value:2,maxLayer:Ht.Global},ManageSpace:{value:4,maxLayer:Ht.Space},ManageRoles:{value:8,maxLayer:Ht.Space},CreateTopics:{value:32,maxLayer:Ht.Room},ManageTopic:{value:64,maxLayer:Ht.Topic},ManageMemberProfiles:{value:128,maxLayer:Ht.Space},ManageMemberRoles:{value:256,maxLayer:Ht.Room},CreateMessages:{value:512,maxLayer:Ht.Topic},ManagePermissions:{value:1024,maxLayer:Ht.Topic},CreateRooms:{value:2048,maxLayer:Ht.Space},ManageRoom:{value:4096,maxLayer:Ht.Room},CreateEmoticons:{value:8192,maxLayer:Ht.Space},ManageEmoticons:{value:16384,maxLayer:Ht.Space},ManageBans:{value:32768,maxLayer:Ht.Room},Kick:{value:65536,maxLayer:Ht.Room},ChangeOwnProfile:{value:1<<17,maxLayer:Ht.Space},ChangeOwnColor:{value:1<<18,maxLayer:Ht.Room},RedactMessages:{value:1<<19,maxLayer:Ht.Topic},AddMembers:{value:1<<20,maxLayer:Ht.Space},React:{value:1<<21,maxLayer:Ht.Topic},CreatePolls:{value:1<<22,maxLayer:Ht.Topic},MentionAllRoles:{value:1<<23,maxLayer:Ht.Topic}});var fn=function(e,t){return[e.spaceId,e.roomId,e.topicId,null==t?void 0:t.type,null==t?void 0:t.userId,null==t?void 0:t.roleId].filter(Boolean).join("/")},hn=function(e){return fn(e.location,e.target)},pn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),sn(n=on(this,t),"overwrites",new x),sn(n,"overwritesPromises",new V),n.tracker=e,n.tracker.client.on("PermissionOverwrites",function(e){return n.handlePermissionOverwrites(e)}),n.tracker.client.on("PermissionOverwritesUpdated",function(e){return n.handlePermissionOverwrites(e)}),n.tracker.client.on("SpaceDeleted",function(e){return n.handleSpaceDeleted(e)}),n.tracker.client.on("SpaceLeft",function(e){return n.handleSpaceDeleted(e)}),n.tracker.client.on("RoomDeleted",function(e){return n.handleRoomDeleted(e)}),n.tracker.client.on("RoomLeft",function(e){return n.handleRoomDeleted(e)}),n.tracker.client.on("TopicDeleted",function(e){return n.handleTopicDeleted(e)}),n.tracker.client.on("RoleDeleted",function(e){return n.handleRoleDeleted(e)}),n.tracker.client.on("SpaceMemberUpdated",function(e){return n.handleSpaceMemberUpdated(e)}),n.tracker.client.on("RoomMemberUpdated",function(e){return n.handleRoomMemberUpdated(e)}),n.tracker.client.on("Session",function(e){return n.handleSession(e)}),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&un(e,t)}(t,e),n=t,r=[{key:"getOverwrites",value:(f=nn(Zt().m(function e(t,n){var r,o=this;return Zt().w(function(e){for(;;)switch(e.n){case 0:return this.validateLocation(t),r=fn(t,n),this.overwritesPromises.notExist(r)&&this.overwritesPromises.registerByFunction(nn(Zt().m(function e(){var r;return Zt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.tracker.client.send("GetPermissionOverwrites",{location:t,target:n});case 1:if(!(r=e.v).error){e.n=2;break}throw r.error;case 2:o.handlePermissionOverwrites(r.data);case 3:return e.a(2)}},e)})),r),e.n=1,this.overwritesPromises.get(r);case 1:return e.a(2,this.overwrites.get(r))}},e,this)})),function(e,t){return f.apply(this,arguments)})},{key:"check",value:(l=nn(Zt().m(function e(t,n){var r,o;return Zt().w(function(e){for(;;)switch(e.n){case 0:if(t.length){e.n=1;break}throw new Error("Permission names array cannot be empty");case 1:return e.n=2,this.calculatePermissions(n);case 2:return r=e.v,o=[],t.forEach(function(e){~r&Qt.getByName(e).value&&o.push(e)}),e.a(2,{ok:0===o.length,hasAll:0===o.length,hasAny:o.length<t.length,missing:o})}},e,this)})),function(e,t){return l.apply(this,arguments)})},{key:"calculatePermissions",value:(s=nn(Zt().m(function e(t){var n,r,o,i,a,c,u,s,l,f,h,p,d,y,m,v,b,g,w,S,k,O,T,j,P;return Zt().w(function(e){for(;;)switch(e.n){case 0:if(!t.roomId){e.n=2;break}return e.n=1,this.tracker.rooms.get();case 1:v=e.v.get(t.roomId),e.n=3;break;case 2:v=null;case 3:return c=v,t={spaceId:null!==(n=t.spaceId)&&void 0!==n?n:null==c?void 0:c.spaceId,roomId:t.roomId,topicId:t.topicId},this.validateLocation(t),e.n=4,this.tracker.getMe();case 4:return u=e.v.id,e.n=5,this.fetchMembersOrFail(t);case 5:if(s=e.v,l=Kt(s,2),f=l[0],h=l[1],p=[].concat(qt(null!==(r=null==f?void 0:f.roles)&&void 0!==r?r:[]),qt(null!==(o=null==h?void 0:h.roles)&&void 0!==o?o:[])),d=[this.getOverwrites({},{type:"User",userId:u}).then(function(e){return e.overwrites})],!(b=t.spaceId)){e.n=9;break}return e.n=6,this.tracker.spaces.get();case 6:if(S=i=e.v,!(w=null!==S)){e.n=7;break}w=void 0!==i;case 7:if(!(g=w)){e.n=8;break}g=i.has(t.spaceId);case 8:b=g;case 9:if(!b){e.n=10;break}y={spaceId:t.spaceId},d.push(this.collectRoleOverwrites(y,p)),d.push(this.getOverwrites(y,{type:"User",userId:u}).then(function(e){return e.overwrites}));case 10:if(c&&(m={spaceId:t.spaceId,roomId:t.roomId},p.length&&d.push(this.collectRoleOverwrites(m,p)),d.push(this.getOverwrites(m,{type:"User",userId:u}).then(function(e){return e.overwrites}))),!(k=t.topicId)){e.n=14;break}return e.n=11,this.tracker.rooms.getTopics(t.roomId);case 11:if(j=a=e.v,!(T=null!==j)){e.n=12;break}T=void 0!==a;case 12:if(!(O=T)){e.n=13;break}O=a.has(t.topicId);case 13:k=O;case 14:if(!k){e.n=15;break}p.length&&d.push(this.collectRoleOverwrites(t,p)),d.push(this.getOverwrites(t,{type:"User",userId:u}).then(function(e){return e.overwrites}));case 15:return P=this,e.n=16,Promise.all(d);case 16:return e.a(2,P.resolveOverwritesHierarchy.call(P,e.v))}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"handlePermissionOverwrites",value:function(e){this.overwrites.set([hn(e),e]),this.emit("change")}},{key:"handleSpaceDeleted",value:function(e){var t,n=this.deleteOverwritesByIdPrefix(fn({spaceId:e.id}));(t=this.overwritesPromises).forget.apply(t,qt(n))}},{key:"handleRoomDeleted",value:(u=nn(Zt().m(function e(t){var n,r,o;return Zt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.tracker.rooms.get();case 1:(n=e.v.get(t.id))&&(o=this.deleteOverwritesByIdPrefix(fn({spaceId:n.spaceId,roomId:n.id})),(r=this.overwritesPromises).forget.apply(r,qt(o)));case 2:return e.a(2)}},e,this)})),function(e){return u.apply(this,arguments)})},{key:"handleTopicDeleted",value:function(e){var t,n=this.deleteOverwritesByIdPrefix(fn(e.location));(t=this.overwritesPromises).forget.apply(t,qt(n))}},{key:"handleRoleDeleted",value:function(e){var t,n=this.deleteOverwritesByIdPrefix(fn({spaceId:e.spaceId},{type:"Role",roleId:e.id}));(t=this.overwritesPromises).forget.apply(t,qt(n))}},{key:"handleSpaceMemberUpdated",value:function(e){var t;e.userId===(null===(t=this.tracker.me)||void 0===t?void 0:t.id)&&this.emit("change")}},{key:"handleRoomMemberUpdated",value:function(e){var t;e.userId===(null===(t=this.tracker.me)||void 0===t?void 0:t.id)&&this.emit("change")}},{key:"deleteOverwritesByIdPrefix",value:function(e){var t=this,n=[];return this.overwrites.items.forEach(function(r){var o=hn(r);o.startsWith(e)&&(n.push(o),t.overwrites.delete(o))}),n}},{key:"collectRoleOverwrites",value:(c=nn(Zt().m(function e(t,n){var r,o=this;return Zt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,Promise.all(n.map(function(e){return o.getOverwrites(t,{type:"Role",roleId:e})}));case 1:return r=e.v,e.a(2,this.resolveOverwritesFromRolesByOrder(t.spaceId,r))}},e,this)})),function(e,t){return c.apply(this,arguments)})},{key:"resolveOverwritesFromRolesByOrder",value:(a=nn(Zt().m(function e(t,n){var r,o,i,a,c;return Zt().w(function(e){for(;;)switch(e.n){case 0:return r=0,o=0,e.n=1,this.tracker.spaces.getRoles(t);case 1:return i=e.v,a=n.sort(function(e,t){return i.get(e.target.roleId).priority-i.get(t.target.roleId).priority}),c=n.reduce(function(e,t){var n,r,o,i;return Math.max(e,null!==(n=null===(r=t.overwrites.allow)||void 0===r?void 0:r.toString(2).length)&&void 0!==n?n:0,null!==(o=null===(i=t.overwrites.deny)||void 0===i?void 0:i.toString(2).length)&&void 0!==o?o:0)},0),a.forEach(function(e){for(var t,n,i,a,u=e.overwrites,s=null!==(t=null===(n=u.deny)||void 0===n?void 0:n.toString(2).split("").reverse().join(""))&&void 0!==t?t:"",l=null!==(i=null===(a=u.allow)||void 0===a?void 0:a.toString(2).split("").reverse().join(""))&&void 0!==i?i:"",f=0;f<c;f++){var h,p,d=parseInt(null!==(h=s[f])&&void 0!==h?h:"0"),y=parseInt(null!==(p=l[f])&&void 0!==p?p:"0");d&&(o|=1<<f),y&&(r|=1<<f)}}),e.a(2,{allow:r,deny:o})}},e,this)})),function(e,t){return a.apply(this,arguments)})},{key:"resolveOverwritesHierarchy",value:function(e){var t,n=0,r=zt(e);try{for(r.s();!(t=r.n()).done;){var o=t.value;if(o.allow&Qt.getByName("Root").value)return this.getRootAccessValue();n=n&~o.deny|o.allow}}catch(e){r.e(e)}finally{r.f()}return n}},{key:"getRootAccessValue",value:function(){var e,t=0,n=zt(Qt.getNames());try{for(n.s();!(e=n.n()).done;){var r=e.value;t|=Qt.getByName(r).value}}catch(e){n.e(e)}finally{n.f()}return t}},{key:"fetchMembersOrFail",value:(i=nn(Zt().m(function e(t){var n,r,o,i;return Zt().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,Promise.all([t.spaceId?this.tracker.spaces.getMe(t.spaceId):null,t.roomId?this.tracker.rooms.getMe(t.roomId):null]);case 1:if(n=e.v,r=t.spaceId&&!n[0],o=t.roomId&&!n[1],!r&&!o){e.n=2;break}throw i=r?"space (".concat(t.spaceId,")"):"room (".concat(t.roomId,")"),new Error("Attempting to calculate permissions for a ".concat(i," that the user does not belong to"));case 2:return e.a(2,n)}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"validateLocation",value:function(e){if(e.topicId&&!e.roomId)throw new Error("Corrupted arguments hierarchy")}},{key:"handleSession",value:function(e){this.overwritesPromises.forgetAll(),this.emit("change")}}],r&&rn(n.prototype,r),o&&rn(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a,c,u,s,l,f}(a);function dn(e){return dn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dn(e)}function yn(e){return function(e){if(Array.isArray(e))return mn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return mn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function vn(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return bn(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(bn(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,bn(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,bn(f,"constructor",s),bn(s,"constructor",u),u.displayName="GeneratorFunction",bn(s,o,"GeneratorFunction"),bn(f),bn(f,o,"Generator"),bn(f,r,function(){return this}),bn(f,"toString",function(){return"[object Generator]"}),(vn=function(){return{w:i,m:h}})()}function bn(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}bn=function(e,t,n,r){function i(t,n){bn(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},bn(e,t,n,r)}function gn(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function wn(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){gn(i,r,o,a,c,"next",e)}function c(e){gn(i,r,o,a,c,"throw",e)}a(void 0)})}}function Sn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,On(r.key),r)}}function kn(e,t,n){return(t=On(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function On(e){var t=function(e,t){if("object"!=dn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=dn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==dn(t)?t:t+""}var Tn="global",jn=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),kn(this,"list",new x),kn(this,"emoticonsPromises",new V),this.tracker=t,this.tracker.client.on("Emoticons",function(e){return n.handleEmoticons(e)}),this.tracker.client.on("NewEmoticon",function(e){return n.handleNewEmoticon(e)}),this.tracker.client.on("EmoticonDeleted",function(e){return n.handleEmoticonDeleted(e)}),this.tracker.client.on("SpaceDeleted",function(e){return n.handleSpaceDeleted(e)}),this.tracker.client.on("Session",function(){return n.handleSession()})},t=[{key:"get",value:function(){var e=wn(vn().m(function e(t){var n,r=this;return vn().w(function(e){for(;;)switch(e.n){case 0:return n=null!=t?t:Tn,this.emoticonsPromises.notExist(n)&&this.emoticonsPromises.registerByFunction(wn(vn().m(function e(){var n;return vn().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,r.tracker.client.send("GetEmoticons",{spaceId:t});case 1:if(!(n=e.v).error){e.n=2;break}throw n.error;case 2:r.handleEmoticons(n.data);case 3:return e.a(2)}},e)})),n),e.n=1,this.emoticonsPromises.get(n);case 1:return e.a(2,this.list.get(n))}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"handleEmoticons",value:function(e){var t,n,r=null!==(t=e.location.spaceId)&&void 0!==t?t:Tn;this.list.has(r)||this.list.set([r,new G("id")]),(n=this.list.get(r)).reconcile.apply(n,yn(e.emoticons))}},{key:"handleNewEmoticon",value:function(e){var t,n=this.list.get(null!==(t=e.emoticon.spaceId)&&void 0!==t?t:Tn);null==n||n.set(e.emoticon)}},{key:"handleEmoticonDeleted",value:function(e){var t,n=this.list.get(null!==(t=e.spaceId)&&void 0!==t?t:Tn);null==n||n.delete(e.emoticonId)}},{key:"handleSpaceDeleted",value:function(e){this.list.delete(e.id)}},{key:"handleSession",value:function(){this.emoticonsPromises.forgetAll()}}],t&&Sn(e.prototype,t),n&&Sn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function Pn(e){return Pn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pn(e)}function In(e){return function(e){if(Array.isArray(e))return Rn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Rn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Rn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function En(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return An(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(An(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,An(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,An(f,"constructor",s),An(s,"constructor",u),u.displayName="GeneratorFunction",An(s,o,"GeneratorFunction"),An(f),An(f,o,"Generator"),An(f,r,function(){return this}),An(f,"toString",function(){return"[object Generator]"}),(En=function(){return{w:i,m:h}})()}function An(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}An=function(e,t,n,r){function i(t,n){An(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},An(e,t,n,r)}function Mn(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function _n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ln(r.key),r)}}function Cn(e,t,n){return(t=Ln(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ln(e){var t=function(e,t){if("object"!=Pn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Pn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Pn(t)?t:t+""}var Fn=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Cn(this,"onlineStatus",new a),Cn(this,"users",new G("id")),this.tracker=t,t.client.on("UserUpdated",function(e){return n.handleUsers([e.user])}),t.client.on("RoomMembersJoined",function(e){return n.handleMembers(e.members)}),t.client.on("SpaceMemberJoined",function(e){return n.handleMembers([e.member])}),t.client.on("SpaceMembers",function(e){return n.handleMembers(e.members)}),t.client.on("RoomMembers",function(e){return n.handleMembers(e.members)}),t.client.on("Messages",function(e){return n.handleUsers(e.messages.map(function(e){return e.author.user}))}),t.client.on("NewMessage",function(e){return n.handleUsers([e.message.author.user])}),t.client.on("Session",function(e){return n.handleSession(e)})},t=[{key:"getAvailable",value:(r=En().m(function e(){return En().w(function(e){for(;;)if(0===e.n)return e.a(2,this.users)},e,this)}),o=function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){Mn(i,n,o,a,c,"next",e)}function c(e){Mn(i,n,o,a,c,"throw",e)}a(void 0)})},function(){return o.apply(this,arguments)})},{key:"handleMembers",value:function(e){this.handleUsers(e.map(kt))}},{key:"handleSession",value:function(e){this.handleUsers([e.user])}},{key:"handleUsers",value:function(e){var t,n=this;e.forEach(function(e){var t=n.users.get(e.id);t&&t.status!==e.status&&n.onlineStatus.emit("change",e)}),(t=this.users).set.apply(t,In(e))}}],t&&_n(e.prototype,t),n&&_n(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o}();function xn(e){return xn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},xn(e)}function Un(e){return function(e){if(Array.isArray(e))return Dn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Dn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Dn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Dn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Gn(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Nn(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Nn(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Nn(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Nn(f,"constructor",s),Nn(s,"constructor",u),u.displayName="GeneratorFunction",Nn(s,o,"GeneratorFunction"),Nn(f),Nn(f,o,"Generator"),Nn(f,r,function(){return this}),Nn(f,"toString",function(){return"[object Generator]"}),(Gn=function(){return{w:i,m:h}})()}function Nn(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Nn=function(e,t,n,r){function i(t,n){Nn(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Nn(e,t,n,r)}function Bn(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Wn(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){Bn(i,r,o,a,c,"next",e)}function c(e){Bn(i,r,o,a,c,"throw",e)}a(void 0)})}}function Jn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,$n(r.key),r)}}function Hn(e,t,n){return(t=$n(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $n(e){var t=function(e,t){if("object"!=xn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=xn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==xn(t)?t:t+""}var Qn=function(e,t){return"".concat(e,"-").concat(t)},Vn=function(e){return Qn(e.refUser.id,e.type)},zn=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Hn(this,"relationships",new G(Vn)),Hn(this,"promises",new V),this.tracker=t,this.tracker.client.on("Relationships",function(e){return n.handleRelationships(e)}),this.tracker.client.on("NewRelationship",function(e){return n.handleNewRelationship(e)}),this.tracker.client.on("RelationshipDeleted",function(e){return n.handleRelationshipDeleted(e)}),this.tracker.client.on("Session",function(){return n.handleSession()})},t=[{key:"get",value:function(){var e=Wn(Gn().m(function e(){var t=this;return Gn().w(function(e){for(;;)switch(e.n){case 0:return this.promises.notExist("all")&&this.promises.registerByFunction(Wn(Gn().m(function e(){var n;return Gn().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,t.tracker.client.send("GetRelationships",{});case 1:if(!(n=e.v).error){e.n=2;break}throw n.error;case 2:return e.a(2)}},e)})),"all"),e.n=1,this.promises.get("all");case 1:return e.a(2,this.relationships)}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"exists",value:(r=Wn(Gn().m(function e(t,n){return Gn().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.get();case 1:return e.a(2,this.relationships.has(Qn(t,n)))}},e,this)})),function(e,t){return r.apply(this,arguments)})},{key:"handleRelationships",value:function(e){var t;(t=this.relationships).reconcile.apply(t,Un(e.relationships))}},{key:"handleNewRelationship",value:function(e){this.promises.has("all")&&this.relationships.set(e.relationship)}},{key:"handleRelationshipDeleted",value:function(e){this.promises.has("all")&&this.relationships.delete(Vn(e.relationship))}},{key:"handleSession",value:function(){this.promises.forgetAll()}}],t&&Jn(e.prototype,t),n&&Jn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r}();function qn(e){return qn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qn(e)}function Kn(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Yn(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Yn(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Yn(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Yn(f,"constructor",s),Yn(s,"constructor",u),u.displayName="GeneratorFunction",Yn(s,o,"GeneratorFunction"),Yn(f),Yn(f,o,"Generator"),Yn(f,r,function(){return this}),Yn(f,"toString",function(){return"[object Generator]"}),(Kn=function(){return{w:i,m:h}})()}function Yn(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Yn=function(e,t,n,r){function i(t,n){Yn(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Yn(e,t,n,r)}function Xn(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Zn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,tr(r.key),r)}}function er(e,t,n){return(t=tr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tr(e){var t=function(e,t){if("object"!=qn(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=qn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==qn(t)?t:t+""}var nr=function(){return e=function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),er(this,"client",void 0),er(this,"permissions",void 0),er(this,"rooms",void 0),er(this,"spaces",void 0),er(this,"emoticons",void 0),er(this,"users",void 0),er(this,"relationships",void 0),er(this,"_me",null),er(this,"deferredSession",new Q),this.client=t,this.client.on("Session",function(e){return n.handleSession(e)}),this.permissions=new pn(this),this.rooms=new St(this),this.spaces=new Ut(this),this.emoticons=new jn(this),this.users=new Fn(this),this.relationships=new zn(this)},t=[{key:"me",get:function(){return this._me}},{key:"getMe",value:(r=Kn().m(function e(){return Kn().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.deferredSession.promise;case 1:return e.a(2,this._me)}},e,this)}),o=function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){Xn(i,n,o,a,c,"next",e)}function c(e){Xn(i,n,o,a,c,"throw",e)}a(void 0)})},function(){return o.apply(this,arguments)})},{key:"handleSession",value:function(e){this._me=e.user,this.deferredSession.resolve()}}],t&&Zn(e.prototype,t),n&&Zn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o}();function rr(e){return rr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rr(e)}function or(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ir(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ir(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function ir(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ar(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return cr(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(cr(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,cr(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,cr(f,"constructor",s),cr(s,"constructor",u),u.displayName="GeneratorFunction",cr(s,o,"GeneratorFunction"),cr(f),cr(f,o,"Generator"),cr(f,r,function(){return this}),cr(f,"toString",function(){return"[object Generator]"}),(ar=function(){return{w:i,m:h}})()}function cr(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}cr=function(e,t,n,r){function i(t,n){cr(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},cr(e,t,n,r)}function ur(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function sr(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){ur(i,r,o,a,c,"next",e)}function c(e){ur(i,r,o,a,c,"throw",e)}a(void 0)})}}function lr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,mr(r.key),r)}}function fr(e,t,n){return t=pr(t),function(e,t){if(t&&("object"==rr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,hr()?Reflect.construct(t,n||[],pr(e).constructor):t.apply(e,n))}function hr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(hr=function(){return!!e})()}function pr(e){return pr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},pr(e)}function dr(e,t){return dr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},dr(e,t)}function yr(e,t,n){return(t=mr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mr(e){var t=function(e,t){if("object"!=rr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=rr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==rr(t)?t:t+""}var vr=function(e){return e.connect="connect",e.disconnect="disconnect",e.message="message",e.error="error",e}(vr||{}),br=function(e){function t(e){var n,r,o,i,a,c,u,s,l;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),yr(l=fr(this,t),"Event",vr),yr(l,"state",void 0),yr(l,"ws",null),yr(l,"sendQueue",[]),yr(l,"connectingTimeoutId",void 0),yr(l,"authenticated",void 0),yr(l,"authenticatedResolvers",null),yr(l,"connectPromise",null),yr(l,"pingMonitorInterval",void 0),yr(l,"inFlightPingTimeout",void 0),yr(l,"lastReceivedMessageAt",void 0),yr(l,"reconnectEnabled",!1),yr(l,"reconnectTimeoutId",void 0),yr(l,"reconnectAttempts",0),l.options=e,(null===(n=l.options.stateTracking)||void 0===n||n)&&(l.state=new nr(l)),null!==(r=e.ping)&&void 0!==r||(e.ping={}),null!==(i=(o=e.ping).enabled)&&void 0!==i||(o.enabled=!0),null!==(c=(a=e.ping).noActivityTimeoutMs)&&void 0!==c||(a.noActivityTimeoutMs=15e3),null!==(s=(u=e.ping).pongBackTimeoutMs)&&void 0!==s||(u.pongBackTimeoutMs=5e3),l}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&dr(e,t)}(t,e),n=t,r=[{key:"connect",value:(a=sr(ar().m(function e(){var t,n,r=this;return ar().w(function(e){for(;;)switch(e.n){case 0:if(this.reconnectEnabled=!0,this.cancelScheduledReconnect(),!this.isOpenWsState()&&!this.isConnectingWsState()){e.n=1;break}return e.a(2,null!==(t=this.connectPromise)&&void 0!==t?t:void 0);case 1:return this.connectPromise||(this.connectPromise=new Promise(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.authenticatedResolvers=t}),this.connectPromise.catch(function(){})),n=this.connectPromise,this.openSocket(),e.a(2,n)}},e,this)})),function(){return a.apply(this,arguments)})},{key:"disconnect",value:function(){var e=null!==this.ws||void 0!==this.reconnectTimeoutId;this.reconnectEnabled=!1,this.reconnectAttempts=0,this.cancelScheduledReconnect(),this.releaseSocket(1e3),this.failPendingCommands(new Error("Client disconnected before the command was answered")),this.settleConnect(new Error("Client disconnected before authentication")),e&&this.emit(this.Event.disconnect,!1)}},{key:"send",value:(i=sr(ar().m(function e(t,n){var r,o;return ar().w(function(e){for(;;)switch(e.n){case 0:if(r=this.createEnvelope(t,n),o=this.createPromiseFromCommandEnvelope(r),!(this.isConnectingWsState()||!this.authenticated&&this.isOpenWsState())){e.n=1;break}return this.sendQueue.push(r),e.a(2,o);case 1:return this.sendEnvelope(r),e.a(2,o)}},e,this)})),function(e,t){return i.apply(this,arguments)})},{key:"isReady",get:function(){return this.isOpenWsState()&&this.authenticated}},{key:"openSocket",value:function(){var e,t,n=this;this.releaseSocket(1e3);var r,o=new URLSearchParams(null!==(e=this.options.queryParams)&&void 0!==e?e:{});o.set("token",this.options.token);try{r=new WebSocket("".concat(this.options.url,"?").concat(o))}catch(e){return void this.settleConnect(e)}r.onmessage=function(e){return r===n.ws&&n.onMessage(e)},r.onclose=function(e){return r===n.ws&&n.onClose(e)},r.onerror=function(){return r===n.ws&&n.handleConnectionLoss(!0)},this.ws=r,this.authenticated=!1,this.connectingTimeoutId=setTimeout(function(){return n.triggerConnectionTimeout()},null!==(t=this.options.connectingTimeoutMs)&&void 0!==t?t:1e4)}},{key:"sendEnvelope",value:function(e){var t,n;this.isReady?this.ws.send(JSON.stringify(e)):this.handleEnvelopeSendError(e,new Error("Cannot send - client is not ready (state=".concat(null!==(t=null===(n=this.ws)||void 0===n?void 0:n.readyState)&&void 0!==t?t:"[no connection]","; authenticated=").concat(this.authenticated,")")))}},{key:"onMessage",value:function(e){this.lastReceivedMessageAt=Date.now();var t=JSON.parse(e.data);if(this.handleIncomingEnvelope(t),this.emit(t.type,t.data),this.emit(this.Event.message,t),!this.authenticated){var n="Bye"!==t.type;if(this.authenticated=n,n)this.reconnectAttempts=0,this.startConnectionMonitor(),this.settleConnect(),this.emit(this.Event.connect),this.sendFromQueue();else{var r;this.settleConnect(t.data);var o=null===(r=t.data)||void 0===r||null===(r=r.reason)||void 0===r?void 0:r.error;"AuthenticationException"===(null==o?void 0:o.code)&&(this.handleConnectionLoss(!1),this.emit(this.Event.error,new Error("Authentication rejected: ".concat(o.message))))}}}},{key:"onClose",value:function(e){this.handleConnectionLoss(1e3!==e.code)}},{key:"handleConnectionLoss",value:function(e){this.releaseSocket(e?3e3:1e3),this.failPendingCommands(new Error("Connection closed before the command was answered")),e&&(e=this.reconnectEnabled),e?this.scheduleReconnect():(this.reconnectEnabled=!1,this.settleConnect(new Error("Connection closed before authentication"))),this.emit(this.Event.disconnect,e)}},{key:"releaseSocket",value:function(e){this.stopConnectionMonitor(),clearTimeout(this.connectingTimeoutId),this.connectingTimeoutId=void 0,this.authenticated=!1;var t=this.ws;if(this.ws=null,t&&(t.onmessage=t.onclose=t.onerror=null,t.readyState===t.CONNECTING||t.readyState===t.OPEN))try{t.close(e)}catch(e){}}},{key:"scheduleReconnect",value:function(){var e,t,n,r,o=this;this.cancelScheduledReconnect();var i=Math.max(0,null!==(e=null===(t=this.options.reconnect)||void 0===t?void 0:t.minDelayMs)&&void 0!==e?e:1e3),a=Math.max(i,null!==(n=null===(r=this.options.reconnect)||void 0===r?void 0:r.maxDelayMs)&&void 0!==n?n:3e4),c=Math.min(a,i*Math.pow(2,Math.min(this.reconnectAttempts,30)));this.reconnectAttempts++,this.reconnectTimeoutId=setTimeout(function(){o.reconnectTimeoutId=void 0,o.connect().catch(function(){})},c/2+Math.random()*c/2)}},{key:"cancelScheduledReconnect",value:function(){clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=void 0}},{key:"settleConnect",value:function(e){var t=this.authenticatedResolvers;this.authenticatedResolvers=null,this.connectPromise=null,t&&(e?t[1](e):t[0]())}},{key:"failPendingCommands",value:function(e){var t=this.sendQueue;this.sendQueue=[];var n,r=or(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;this.handleEnvelopeSendError(o,e)}}catch(e){r.e(e)}finally{r.f()}this.failAwaitingResponses(e)}},{key:"sendFromQueue",value:function(){var e=this,t=0,n=function(){var n,o=e.sendQueue[r];setTimeout(function(){return e.sendEnvelope(o)},t),t+=null!==(n=e.options.awaitQueueSendDelayMs)&&void 0!==n?n:500};for(var r in this.sendQueue)n();this.sendQueue=[],clearTimeout(this.connectingTimeoutId)}},{key:"triggerConnectionTimeout",value:function(){this.handleConnectionLoss(!0),this.emit(this.Event.error,new Error("Connection timeout"))}},{key:"isConnectingWsState",value:function(){return this.ws&&this.ws.readyState===this.ws.CONNECTING}},{key:"isOpenWsState",value:function(){return this.ws&&this.ws.readyState===this.ws.OPEN}},{key:"startConnectionMonitor",value:function(){var e=this;this.stopConnectionMonitor(),this.options.ping.enabled&&(this.lastReceivedMessageAt=Date.now(),this.pingMonitorInterval=setInterval(sr(ar().m(function t(){return ar().w(function(t){for(;;)switch(t.n){case 0:if(e.isReady&&!e.inFlightPingTimeout){t.n=1;break}return t.a(2);case 1:if(!(Date.now()-e.lastReceivedMessageAt<e.options.ping.noActivityTimeoutMs)){t.n=2;break}return t.a(2);case 2:e.inFlightPingTimeout=setTimeout(function(){e.inFlightPingTimeout=void 0,e.handleConnectionLoss(!0)},e.options.ping.pongBackTimeoutMs),e.send("Ping",{}).catch(function(){}).then(function(){clearTimeout(e.inFlightPingTimeout),e.inFlightPingTimeout=void 0});case 3:return t.a(2)}},t)})),1e3))}},{key:"stopConnectionMonitor",value:function(){this.inFlightPingTimeout&&(clearTimeout(this.inFlightPingTimeout),this.inFlightPingTimeout=void 0),this.pingMonitorInterval&&(clearInterval(this.pingMonitorInterval),this.pingMonitorInterval=void 0)}}],r&&lr(n.prototype,r),o&&lr(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a}(v);function gr(e){return gr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gr(e)}function wr(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Sr(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Sr(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Sr(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Sr(f,"constructor",s),Sr(s,"constructor",u),u.displayName="GeneratorFunction",Sr(s,o,"GeneratorFunction"),Sr(f),Sr(f,o,"Generator"),Sr(f,r,function(){return this}),Sr(f,"toString",function(){return"[object Generator]"}),(wr=function(){return{w:i,m:h}})()}function Sr(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Sr=function(e,t,n,r){function i(t,n){Sr(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Sr(e,t,n,r)}function kr(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Or(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){kr(i,r,o,a,c,"next",e)}function c(e){kr(i,r,o,a,c,"throw",e)}a(void 0)})}}function Tr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Ar(r.key),r)}}function jr(e,t,n){return t=Ir(t),function(e,t){if(t&&("object"==gr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Pr()?Reflect.construct(t,n||[],Ir(e).constructor):t.apply(e,n))}function Pr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Pr=function(){return!!e})()}function Ir(e){return Ir=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Ir(e)}function Rr(e,t){return Rr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Rr(e,t)}function Er(e,t,n){return(t=Ar(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ar(e){var t=function(e,t){if("object"!=gr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=gr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==gr(t)?t:t+""}var Mr=function(e){return e.message="message",e.error="error",e.destroy="destroy",e}(Mr||{}),_r=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Er(n=jr(this,t),"Event",Mr),Er(n,"sendStack",[]),n.options=e,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Rr(e,t)}(t,e),n=t,r=[{key:"send",value:(a=Or(wr().m(function e(t,n){var r,o;return wr().w(function(e){for(;;)if(0===e.n)return r=this.createEnvelope(t,n),o={data:r,attempts:0,lastTimeoutId:null},this.sendStack.push(o),this.makeApiCall(o),e.a(2,this.createPromiseFromCommandEnvelope(r))},e,this)})),function(e,t){return a.apply(this,arguments)})},{key:"destroy",value:function(){var e=this,t=this.sendStack;this.sendStack=[],t.forEach(function(t){t.lastTimeoutId&&clearTimeout(t.lastTimeoutId),e.handleEnvelopeSendError(t.data,new Error("Client destroyed"))}),this.emit(this.Event.destroy,!1)}},{key:"onMessage",value:(i=Or(wr().m(function e(t,n){var r;return wr().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,n.json();case 1:r=e.v,e.n=3;break;case 2:return e.p=2,e.v,this.onError(t,"envelope ".concat(t.data.ref," (HTTP ").concat(n.status,", unparsable body)")),e.a(2);case 3:if(this.removeFromStack(t)){e.n=4;break}return e.a(2);case 4:this.handleIncomingEnvelope(r),this.emit(r.type,r.data),this.emit(this.Event.message,r);case 5:return e.a(2)}},e,this,[[0,2]])})),function(e,t){return i.apply(this,arguments)})},{key:"onError",value:function(e,t){var n,r,o=this;if(this.sendStack.includes(e))return e.attempts>=(null!==(n=this.options.attemptsToSend)&&void 0!==n?n:10)?(this.removeFromStack(e),void this.handleEnvelopeSendError(e.data,new Error("Cannot send ".concat(t,"; aborting after reaching the maximum connection errors")))):void(e.lastTimeoutId=setTimeout(function(){return o.makeApiCall(e)},null!==(r=this.options.attemptDelayMs)&&void 0!==r?r:3e3))}},{key:"makeApiCall",value:function(e){var t,n=this;if(this.sendStack.includes(e)){e.attempts++,e.lastTimeoutId=null;var r=JSON.stringify(e.data),o={"Content-Type":"application/json",Accept:"application/json"};o.Authorization="Bearer ".concat(this.options.token);var i=new URLSearchParams(null!==(t=this.options.queryParams)&&void 0!==t?t:{}).toString(),a=i?"".concat(this.options.url,"?").concat(i):this.options.url;fetch(a,{headers:o,body:r,method:"POST"}).then(function(t){return n.onMessage(e,t)}).catch(function(){return n.onError(e,r)})}}},{key:"removeFromStack",value:function(e){var t=this.sendStack.indexOf(e);return-1!==t&&(this.sendStack.splice(t,1),!0)}}],r&&Tr(n.prototype,r),o&&Tr(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a}(v);function Cr(e){return Cr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Cr(e)}function Lr(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Fr(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Fr(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Fr(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Fr(f,"constructor",s),Fr(s,"constructor",u),u.displayName="GeneratorFunction",Fr(s,o,"GeneratorFunction"),Fr(f),Fr(f,o,"Generator"),Fr(f,r,function(){return this}),Fr(f,"toString",function(){return"[object Generator]"}),(Lr=function(){return{w:i,m:h}})()}function Fr(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Fr=function(e,t,n,r){function i(t,n){Fr(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Fr(e,t,n,r)}function xr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ur(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xr(Object(n),!0).forEach(function(t){Dr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Dr(e,t,n){return(t=Wr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Gr(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Nr(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){Gr(i,r,o,a,c,"next",e)}function c(e){Gr(i,r,o,a,c,"throw",e)}a(void 0)})}}function Br(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Wr(r.key),r)}}function Wr(e){var t=function(e,t){if("object"!=Cr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Cr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Cr(t)?t:t+""}var Jr=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=t},t=[{key:"send",value:(o=Nr(Lr().m(function e(t,n){var r,o,i,a,c,u,s=arguments;return Lr().w(function(e){for(;;)switch(e.n){case 0:return r=s.length>2&&void 0!==s[2]?s[2]:void 0,o=s.length>3&&void 0!==s[3]?s[3]:{},i=this.getUrl(n),a=void 0,r&&(["GET","DELETE"].includes(t)?i+="?"+new URLSearchParams(r).toString():a=JSON.stringify(r)),c=Ur(Ur({"Content-Type":"application/json",Accept:"application/json"},o),this.getAuthHeaders()),e.n=1,fetch(i,{method:t,body:a,headers:c});case 1:return u=e.v,e.a(2,this.convertFetchResponse(u))}},e,this)})),function(e,t){return o.apply(this,arguments)})},{key:"getAuthHeaders",value:function(){var e={};return this.options.token&&(e.Authorization="Bearer ".concat(this.options.token)),e}},{key:"getUrl",value:function(e){var t;return this.removeEndingSlash(null!==(t=this.options.url)&&void 0!==t?t:this.defaultUrl)+"/"+this.removeStartingSlash(e)}},{key:"convertFetchResponse",value:(r=Nr(Lr().m(function e(t){var n,r,o,i,a;return Lr().w(function(e){for(;;)switch(e.n){case 0:if(r=t.ok,o=t.status,null===(n=t.headers.get("content-type"))||void 0===n||!n.includes("json")){e.n=2;break}return e.n=1,t.json();case 1:i=e.v,e.n=4;break;case 2:return e.n=3,t.text();case 3:i=e.v;case 4:return a=i,e.a(2,{ok:r,status:o,data:a})}},e)})),function(e){return r.apply(this,arguments)})},{key:"removeStartingSlash",value:function(e){return e.replace(/^\/+/,"")}},{key:"removeEndingSlash",value:function(e){return e.replace(/\/+$/,"")}}],t&&Br(e.prototype,t),n&&Br(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n,r,o}();function Hr(e){return Hr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Hr(e)}function $r(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=r&&r.prototype instanceof c?r:c,s=Object.create(u.prototype);return Qr(s,"_invoke",function(n,r,o){var i,c,u,s=0,l=o||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,c=0,u=e,h.n=n,a}};function p(n,r){for(c=n,u=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],p=h.p,d=i[2];n>3?(o=d===r)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&p<i[1])?(c=0,h.v=r,h.n=i[1]):p<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,h.n=d,c=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),c=l,u=d;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(h.n=-1),p(c,u)):h.n=u:h.v=u);try{if(s=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=h.n<0)?u:n.call(r,h))!==a)break}catch(t){i=e,c=1,u=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),s}var a={};function c(){}function u(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(Qr(t={},r,function(){return this}),t),f=s.prototype=c.prototype=Object.create(l);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Qr(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=s,Qr(f,"constructor",s),Qr(s,"constructor",u),u.displayName="GeneratorFunction",Qr(s,o,"GeneratorFunction"),Qr(f),Qr(f,o,"Generator"),Qr(f,r,function(){return this}),Qr(f,"toString",function(){return"[object Generator]"}),($r=function(){return{w:i,m:h}})()}function Qr(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Qr=function(e,t,n,r){function i(t,n){Qr(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},Qr(e,t,n,r)}function Vr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vr(Object(n),!0).forEach(function(t){no(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function qr(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function Kr(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){qr(i,r,o,a,c,"next",e)}function c(e){qr(i,r,o,a,c,"throw",e)}a(void 0)})}}function Yr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ro(r.key),r)}}function Xr(e,t,n){return t=eo(t),function(e,t){if(t&&("object"==Hr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Zr()?Reflect.construct(t,n||[],eo(e).constructor):t.apply(e,n))}function Zr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Zr=function(){return!!e})()}function eo(e){return eo=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},eo(e)}function to(e,t){return to=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},to(e,t)}function no(e,t,n){return(t=ro(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ro(e){var t=function(e,t){if("object"!=Hr(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=Hr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Hr(t)?t:t+""}var oo=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return no(e=Xr(this,t,[].concat(r)),"defaultUrl","https://files.devana.pl"),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&to(e,t)}(t,e),n=t,r=[{key:"uploadFile",value:(c=Kr($r().m(function e(t){var n,r,o,i;return $r().w(function(e){for(;;)switch(e.n){case 0:return r=encodeURIComponent(null!==(n=t.name)&&void 0!==n?n:""),o=zr(zr({},this.getAuthHeaders()),{},{Accept:"application/json","Content-Disposition":'attachment; filename="'.concat(r,'"'),"Content-Length":t.size}),e.n=1,fetch(this.getUrl("files"),{method:"POST",body:t,headers:o});case 1:return i=e.v,e.a(2,this.convertFetchResponse(i))}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"getFileMeta",value:(a=Kr($r().m(function e(t){return $r().w(function(e){for(;;)if(0===e.n)return e.a(2,this.send("GET","files/"+t))},e,this)})),function(e){return a.apply(this,arguments)})},{key:"getFileMetaBulk",value:(i=Kr($r().m(function e(t){var n;return $r().w(function(e){for(;;)if(0===e.n)return n=new URLSearchParams,t.forEach(function(e){return n.append("id[]",e)}),e.a(2,this.send("GET","files?"+n))},e,this)})),function(e){return i.apply(this,arguments)})}],r&&Yr(n.prototype,r),o&&Yr(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r,o,i,a,c}(Jr),io=function(e){return e[e.SeparateOnMembersList=1]="SeparateOnMembersList",e[e.MentionableByEveryone=2]="MentionableByEveryone",e}({}),ao=function(e){return e[e.Offline=0]="Offline",e[e.Online=1]="Online",e[e.OnlineAsync=2]="OnlineAsync",e}({});return t})());
2
2
  //# sourceMappingURL=index.umd.js.map