mowetentertainment1 730de334a7 initial
2025-12-05 11:05:33 -05:00

3 lines
293 KiB
JavaScript

/*! For license information please see 6803.js.LICENSE.txt */
(self.webpackChunkelement_web=self.webpackChunkelement_web||[]).push([[6803],{"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js":(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r("./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js");function s(e,t){if(null==e)return{};var r,s,i=(0,n.A)(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(s=0;s<o.length;s++)r=o[s],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}},"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js":(e,t,r)=>{"use strict";function n(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}r.d(t,{A:()=>n})},"./node_modules/base-x/src/esm/index.js":(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let r=0;r<e.length;r++){const n=e.charAt(r),s=n.charCodeAt(0);if(255!==t[s])throw new TypeError(n+" is ambiguous");t[s]=r}const r=e.length,n=e.charAt(0),s=Math.log(r)/Math.log(256),i=Math.log(256)/Math.log(r);function o(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;let i=0,o=0,a=0;for(;e[i]===n;)o++,i++;const c=(e.length-i)*s+1>>>0,l=new Uint8Array(c);for(;i<e.length;){const n=e.charCodeAt(i);if(n>255)return;let s=t[n];if(255===s)return;let o=0;for(let e=c-1;(0!==s||o<a)&&-1!==e;e--,o++)s+=r*l[e]>>>0,l[e]=s%256>>>0,s=s/256>>>0;if(0!==s)throw new Error("Non-zero carry");a=o,i++}let d=c-a;for(;d!==c&&0===l[d];)d++;const u=new Uint8Array(o+(c-d));let h=o;for(;d!==c;)u[h++]=l[d++];return u}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let s=0,o=0,a=0;const c=t.length;for(;a!==c&&0===t[a];)a++,s++;const l=(c-a)*i+1>>>0,d=new Uint8Array(l);for(;a!==c;){let e=t[a],n=0;for(let t=l-1;(0!==e||n<o)&&-1!==t;t--,n++)e+=256*d[t]>>>0,d[t]=e%r>>>0,e=e/r>>>0;if(0!==e)throw new Error("Non-zero carry");o=n,a++}let u=l-o;for(;u!==l&&0===d[u];)u++;let h=n.repeat(s);for(;u<l;++u)h+=e.charAt(d[u]);return h},decodeUnsafe:o,decode:function(e){const t=o(e);if(t)return t;throw new Error("Non-base"+r+" character")}}}},"./node_modules/content-type/index.js":(e,t)=>{"use strict";var r=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,n=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,s=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,i=/\\([\u000b\u0020-\u00ff])/g,o=/([\\"])/g,a=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function c(e){var t=String(e);if(s.test(t))return t;if(t.length>0&&!n.test(t))throw new TypeError("invalid parameter value");return'"'+t.replace(o,"\\$1")+'"'}function l(e){this.parameters=Object.create(null),this.type=e}t.q=function(e){if(!e)throw new TypeError("argument string is required");var t="object"==typeof e?function(e){var t;"function"==typeof e.getHeader?t=e.getHeader("content-type"):"object"==typeof e.headers&&(t=e.headers&&e.headers["content-type"]);if("string"!=typeof t)throw new TypeError("content-type header is missing from object");return t}(e):e;if("string"!=typeof t)throw new TypeError("argument string is required to be a string");var n=t.indexOf(";"),s=-1!==n?t.slice(0,n).trim():t.trim();if(!a.test(s))throw new TypeError("invalid media type");var o=new l(s.toLowerCase());if(-1!==n){var c,d,u;for(r.lastIndex=n;d=r.exec(t);){if(d.index!==n)throw new TypeError("invalid parameter format");n+=d[0].length,c=d[1].toLowerCase(),34===(u=d[2]).charCodeAt(0)&&-1!==(u=u.slice(1,-1)).indexOf("\\")&&(u=u.replace(i,"$1")),o.parameters[c]=u}if(n!==t.length)throw new TypeError("invalid parameter format")}return o}},"./node_modules/events/events.js":e=>{"use strict";var t,r="object"==typeof Reflect?Reflect:null,n=r&&"function"==typeof r.apply?r.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};t=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}e.exports=i,e.exports.once=function(e,t){return new Promise(function(r,n){function s(r){e.removeListener(t,i),n(r)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",s),r([].slice.call(arguments))}g(e,t,i,{once:!0}),"error"!==t&&function(e,t,r){"function"==typeof e.on&&g(e,"error",t,r)}(e,s,{once:!0})})},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var o=10;function a(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function l(e,t,r,n){var s,i,o,l;if(a(r),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),o=i[t]),void 0===o)o=i[t]=r,++e._eventsCount;else if("function"==typeof o?o=i[t]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),(s=c(e))>0&&o.length>s&&!o.warned){o.warned=!0;var d=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");d.name="MaxListenersExceededWarning",d.emitter=e,d.type=t,d.count=o.length,l=d,console&&console.warn&&console.warn(l)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},s=d.bind(n);return s.listener=r,n.wrapFn=s,s}function h(e,t,r){var n=e._events;if(void 0===n)return[];var s=n[t];return void 0===s?[]:"function"==typeof s?r?[s.listener||s]:[s]:r?function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(s):m(s,s.length)}function p(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function m(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function g(e,t,r,n){if("function"==typeof e.on)n.once?e.once(t,r):e.on(t,r);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,function s(i){n.once&&e.removeEventListener(t,s),r(i)})}}Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(e){if("number"!=typeof e||e<0||s(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o=e}}),i.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},i.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||s(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},i.prototype.getMaxListeners=function(){return c(this)},i.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var s="error"===e,i=this._events;if(void 0!==i)s=s&&void 0===i.error;else if(!s)return!1;if(s){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)n(c,this,t);else{var l=c.length,d=m(c,l);for(r=0;r<l;++r)n(d[r],this,t)}return!0},i.prototype.addListener=function(e,t){return l(this,e,t,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(e,t){return l(this,e,t,!0)},i.prototype.once=function(e,t){return a(t),this.on(e,u(this,e,t)),this},i.prototype.prependOnceListener=function(e,t){return a(t),this.prependListener(e,u(this,e,t)),this},i.prototype.removeListener=function(e,t){var r,n,s,i,o;if(a(t),void 0===(n=this._events))return this;if(void 0===(r=n[e]))return this;if(r===t||r.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(s=-1,i=r.length-1;i>=0;i--)if(r[i]===t||r[i].listener===t){o=r[i].listener,s=i;break}if(s<0)return this;0===s?r.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(r,s),1===r.length&&(n[e]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",e,o||t)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(e){var t,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var s,i=Object.keys(r);for(n=0;n<i.length;++n)"removeListener"!==(s=i[n])&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(void 0!==t)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},i.prototype.listeners=function(e){return h(this,e,!0)},i.prototype.rawListeners=function(e){return h(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},i.prototype.listenerCount=p,i.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},"./node_modules/jwt-decode/build/cjs/index.js":(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.jwtDecode=t.InvalidTokenError=void 0;class r extends Error{}function n(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return function(e){return decodeURIComponent(atob(e).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}(t)}catch(e){return atob(t)}}t.InvalidTokenError=r,r.prototype.name="InvalidTokenError",t.jwtDecode=function(e,t){if("string"!=typeof e)throw new r("Invalid token specified: must be a string");t||(t={});const s=!0===t.header?0:1,i=e.split(".")[s];if("string"!=typeof i)throw new r(`Invalid token specified: missing part #${s+1}`);let o;try{o=n(i)}catch(e){throw new r(`Invalid token specified: invalid base64 for part #${s+1} (${e.message})`)}try{return JSON.parse(o)}catch(e){throw new r(`Invalid token specified: invalid json for part #${s+1} (${e.message})`)}}},"./node_modules/matrix-events-sdk/lib/ExtensibleEvents.js":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExtensibleEvents=void 0;var n=r("./node_modules/matrix-events-sdk/lib/NamespacedMap.js"),s=r("./node_modules/matrix-events-sdk/lib/InvalidEventError.js"),i=r("./node_modules/matrix-events-sdk/lib/interpreters/legacy/MRoomMessage.js"),o=r("./node_modules/matrix-events-sdk/lib/interpreters/modern/MMessage.js"),a=r("./node_modules/matrix-events-sdk/lib/events/message_types.js"),c=r("./node_modules/matrix-events-sdk/lib/events/poll_types.js"),l=r("./node_modules/matrix-events-sdk/lib/interpreters/modern/MPoll.js");function d(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,s=function(){};return{s,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:s}}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,o=!0,a=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(a)throw i}}}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function h(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function p(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var m=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),p(this,"interpreters",new n.NamespacedMap([[i.LEGACY_M_ROOM_MESSAGE,i.parseMRoomMessage],[a.M_MESSAGE,o.parseMMessage],[a.M_EMOTE,o.parseMMessage],[a.M_NOTICE,o.parseMMessage],[c.M_POLL_START,l.parseMPoll],[c.M_POLL_RESPONSE,l.parseMPoll],[c.M_POLL_END,l.parseMPoll]])),p(this,"_unknownInterpretOrder",[a.M_MESSAGE])}var t,r,u;return t=e,u=[{key:"defaultInstance",get:function(){return e._defaultInstance}},{key:"unknownInterpretOrder",get:function(){return e.defaultInstance.unknownInterpretOrder},set:function(t){e.defaultInstance.unknownInterpretOrder=t}},{key:"registerInterpreter",value:function(t,r){e.defaultInstance.registerInterpreter(t,r)}},{key:"parse",value:function(t){return e.defaultInstance.parse(t)}}],(r=[{key:"unknownInterpretOrder",get:function(){var e;return null!==(e=this._unknownInterpretOrder)&&void 0!==e?e:[]},set:function(e){this._unknownInterpretOrder=e}},{key:"registerInterpreter",value:function(e,t){this.interpreters.set(e,t)}},{key:"parse",value:function(e){try{if(this.interpreters.hasNamespaced(e.type))return this.interpreters.getNamespaced(e.type)(e);var t,r=d(this.unknownInterpretOrder);try{for(r.s();!(t=r.n()).done;){var n=t.value;if(this.interpreters.has(n)){var i=this.interpreters.get(n)(e);if(i)return i}}}catch(e){r.e(e)}finally{r.f()}return null}catch(e){if(e instanceof s.InvalidEventError)return null;throw e}}}])&&h(t.prototype,r),u&&h(t,u),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.ExtensibleEvents=m,p(m,"_defaultInstance",new m)},"./node_modules/matrix-events-sdk/lib/IPartialEvent.js":(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},"./node_modules/matrix-events-sdk/lib/InvalidEventError.js":(e,t)=>{"use strict";function r(e){return r="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},r(e)}function n(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function s(e){var t=a();return function(){var n,s=l(e);if(t){var i=l(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(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)}(this,n)}}function i(e){var t="function"==typeof Map?new Map:void 0;return i=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return o(e,arguments,l(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),c(n,e)},i(e)}function o(e,t,r){return o=a()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var s=new(Function.bind.apply(e,n));return r&&c(s,r.prototype),s},o.apply(null,arguments)}function a(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function c(e,t){return c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},c(e,t)}function l(e){return l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},l(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.InvalidEventError=void 0;var d=function(e){!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&&c(e,t)}(a,e);var t,r,i,o=s(a);function a(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),o.call(this,e)}return t=a,r&&n(t.prototype,r),i&&n(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}(i(Error));t.InvalidEventError=d},"./node_modules/matrix-events-sdk/lib/NamespacedMap.js":(e,t)=>{"use strict";function r(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var s=0,i=function(){};return{s:i,n:function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(e){throw e},f:i}}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 o,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw o}}}}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}Object.defineProperty(t,"__esModule",{value:!0}),t.NamespacedMap=void 0;var i=function(){function e(t){var n,s,i;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),n=this,s="internalMap",i=new Map,s in n?Object.defineProperty(n,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[s]=i,t){var o,a=r(t);try{for(a.s();!(o=a.n()).done;){var c=o.value;this.set(c[0],c[1])}}catch(e){a.e(e)}finally{a.f()}}}var t,n,i;return t=e,(n=[{key:"get",value:function(e){return e.name&&this.internalMap.has(e.name)?this.internalMap.get(e.name):e.altName&&this.internalMap.has(e.altName)?this.internalMap.get(e.altName):null}},{key:"set",value:function(e,t){e.name&&this.internalMap.set(e.name,t),e.altName&&this.internalMap.set(e.altName,t)}},{key:"has",value:function(e){return!!this.get(e)}},{key:"delete",value:function(e){e.name&&this.internalMap.delete(e.name),e.altName&&this.internalMap.delete(e.altName)}},{key:"hasNamespaced",value:function(e){return this.internalMap.has(e)}},{key:"getNamespaced",value:function(e){return this.internalMap.get(e)}}])&&s(t.prototype,n),i&&s(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.NamespacedMap=i},"./node_modules/matrix-events-sdk/lib/NamespacedValue.js":(e,t)=>{"use strict";function r(e){return r="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},r(e)}function n(e,t){return n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(e,t)}function s(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var n,s=i(e);if(t){var o=i(this).constructor;n=Reflect.construct(s,arguments,o)}else n=s.apply(this,arguments);return function(e,t){if(t&&("object"===r(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)}(this,n)}}function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t,r){return t&&a(e.prototype,t),r&&a(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}Object.defineProperty(t,"__esModule",{value:!0}),t.UnstableValue=t.NamespacedValue=void 0;var l=function(){function e(t,r){if(o(this,e),this.stable=t,this.unstable=r,!this.unstable&&!this.stable)throw new Error("One of stable or unstable values must be supplied")}return c(e,[{key:"name",get:function(){return this.stable?this.stable:this.unstable}},{key:"altName",get:function(){return this.stable?this.unstable:null}},{key:"matches",value:function(e){return!!this.name&&this.name===e||!!this.altName&&this.altName===e}},{key:"findIn",value:function(e){var t;return this.name&&(t=null==e?void 0:e[this.name]),!t&&this.altName&&(t=null==e?void 0:e[this.altName]),t}},{key:"includedIn",value:function(e){var t=!1;return this.name&&(t=e.includes(this.name)),!t&&this.altName&&(t=e.includes(this.altName)),t}}]),e}();t.NamespacedValue=l;var d=function(e){!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&&n(e,t)}(r,e);var t=s(r);function r(e,n){var s;if(o(this,r),!(s=t.call(this,e,n)).unstable)throw new Error("Unstable value must be supplied");return s}return c(r,[{key:"name",get:function(){return this.unstable}},{key:"altName",get:function(){return this.stable}}]),r}(l);t.UnstableValue=d},"./node_modules/matrix-events-sdk/lib/events/EmoteEvent.js":(e,t,r)=>{"use strict";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)}Object.defineProperty(t,"__esModule",{value:!0}),t.EmoteEvent=void 0;var s=r("./node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),i=r("./node_modules/matrix-events-sdk/lib/events/message_types.js"),o=r("./node_modules/matrix-events-sdk/lib/utility/events.js");function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(){return l="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=h(e)););return e}(e,t);if(n){var s=Object.getOwnPropertyDescriptor(n,t);return s.get?s.get.call(arguments.length<3?e:r):s.value}},l.apply(this,arguments)}function d(e,t){return d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},d(e,t)}function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var r,s=h(e);if(t){var i=h(this).constructor;r=Reflect.construct(s,arguments,i)}else r=s.apply(this,arguments);return function(e,t){if(t&&("object"===n(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)}(this,r)}}function h(e){return h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},h(e)}var p=function(e){!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)}(p,e);var t,r,n,s=u(p);function p(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,p),s.call(this,e)}return t=p,n=[{key:"from",value:function(e,t){var r;return new p({type:i.M_EMOTE.name,content:(r={},a(r,i.M_TEXT.name,e),a(r,i.M_HTML.name,t),r)})}}],(r=[{key:"isEmote",get:function(){return!0}},{key:"isEquivalentTo",value:function(e){return(0,o.isEventTypeSame)(e,i.M_EMOTE)||l(h(p.prototype),"isEquivalentTo",this).call(this,e)}},{key:"serialize",value:function(){var e=l(h(p.prototype),"serialize",this).call(this);return e.content.msgtype="m.emote",e}}])&&c(t.prototype,r),n&&c(t,n),Object.defineProperty(t,"prototype",{writable:!1}),p}(s.MessageEvent);t.EmoteEvent=p},"./node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js":(e,t)=>{"use strict";function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}Object.defineProperty(t,"__esModule",{value:!0}),t.ExtensibleEvent=void 0;var n=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.wireFormat=t}var t,n,s;return t=e,(n=[{key:"wireContent",get:function(){return this.wireFormat.content}}])&&r(t.prototype,n),s&&r(t,s),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.ExtensibleEvent=n},"./node_modules/matrix-events-sdk/lib/events/MessageEvent.js":(e,t,r)=>{"use strict";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)}Object.defineProperty(t,"__esModule",{value:!0}),t.MessageEvent=void 0;var s=r("./node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js"),i=r("./node_modules/matrix-events-sdk/lib/types.js"),o=r("./node_modules/matrix-events-sdk/lib/InvalidEventError.js"),a=r("./node_modules/matrix-events-sdk/lib/events/message_types.js"),c=r("./node_modules/matrix-events-sdk/lib/utility/events.js");function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach(function(t){f(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var r,s=g(e);if(t){var i=g(this).constructor;r=Reflect.construct(s,arguments,i)}else r=s.apply(this,arguments);return function(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}(this,r)}}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function f(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var v=function(e){!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&&h(e,t)}(l,e);var t,r,n,s=p(l);function l(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),f(m(t=s.call(this,e)),"text",void 0),f(m(t),"html",void 0),f(m(t),"renderings",void 0);var r=a.M_MESSAGE.findIn(t.wireContent),n=a.M_TEXT.findIn(t.wireContent),c=a.M_HTML.findIn(t.wireContent);if((0,i.isProvided)(r)){if(!Array.isArray(r))throw new o.InvalidEventError("m.message contents must be an array");var d=r.find(function(e){return!(0,i.isProvided)(e.mimetype)||"text/plain"===e.mimetype}),u=r.find(function(e){return"text/html"===e.mimetype});if(!d)throw new o.InvalidEventError("m.message is missing a plain text representation");t.text=d.body,t.html=null==u?void 0:u.body,t.renderings=r}else{if(!(0,i.isOptionalAString)(n))throw new o.InvalidEventError("Missing textual representation for event");t.text=n,t.html=c,t.renderings=[{body:n,mimetype:"text/plain"}],t.html&&t.renderings.push({body:t.html,mimetype:"text/html"})}return t}return t=l,n=[{key:"from",value:function(e,t){var r;return new l({type:a.M_MESSAGE.name,content:(r={},f(r,a.M_TEXT.name,e),f(r,a.M_HTML.name,t),r)})}}],(r=[{key:"isEmote",get:function(){return a.M_EMOTE.matches(this.wireFormat.type)||(0,i.isProvided)(a.M_EMOTE.findIn(this.wireFormat.content))}},{key:"isNotice",get:function(){return a.M_NOTICE.matches(this.wireFormat.type)||(0,i.isProvided)(a.M_NOTICE.findIn(this.wireFormat.content))}},{key:"isEquivalentTo",value:function(e){return(0,c.isEventTypeSame)(e,a.M_MESSAGE)}},{key:"serializeMMessageOnly",value:function(){var e=f({},a.M_MESSAGE.name,this.renderings);if(1===this.renderings.length){var t=this.renderings[0].mimetype;void 0!==t&&"text/plain"!==t||(e=f({},a.M_TEXT.name,this.renderings[0].body))}return e}},{key:"serialize",value:function(){var e;return{type:"m.room.message",content:d(d({},this.serializeMMessageOnly()),{},{body:this.text,msgtype:"m.text",format:this.html?"org.matrix.custom.html":void 0,formatted_body:null!==(e=this.html)&&void 0!==e?e:void 0})}}}])&&u(t.prototype,r),n&&u(t,n),Object.defineProperty(t,"prototype",{writable:!1}),l}(s.ExtensibleEvent);t.MessageEvent=v},"./node_modules/matrix-events-sdk/lib/events/NoticeEvent.js":(e,t,r)=>{"use strict";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)}Object.defineProperty(t,"__esModule",{value:!0}),t.NoticeEvent=void 0;var s=r("./node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),i=r("./node_modules/matrix-events-sdk/lib/events/message_types.js"),o=r("./node_modules/matrix-events-sdk/lib/utility/events.js");function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(){return l="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=h(e)););return e}(e,t);if(n){var s=Object.getOwnPropertyDescriptor(n,t);return s.get?s.get.call(arguments.length<3?e:r):s.value}},l.apply(this,arguments)}function d(e,t){return d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},d(e,t)}function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var r,s=h(e);if(t){var i=h(this).constructor;r=Reflect.construct(s,arguments,i)}else r=s.apply(this,arguments);return function(e,t){if(t&&("object"===n(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)}(this,r)}}function h(e){return h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},h(e)}var p=function(e){!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)}(p,e);var t,r,n,s=u(p);function p(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,p),s.call(this,e)}return t=p,n=[{key:"from",value:function(e,t){var r;return new p({type:i.M_NOTICE.name,content:(r={},a(r,i.M_TEXT.name,e),a(r,i.M_HTML.name,t),r)})}}],(r=[{key:"isNotice",get:function(){return!0}},{key:"isEquivalentTo",value:function(e){return(0,o.isEventTypeSame)(e,i.M_NOTICE)||l(h(p.prototype),"isEquivalentTo",this).call(this,e)}},{key:"serialize",value:function(){var e=l(h(p.prototype),"serialize",this).call(this);return e.content.msgtype="m.notice",e}}])&&c(t.prototype,r),n&&c(t,n),Object.defineProperty(t,"prototype",{writable:!1}),p}(s.MessageEvent);t.NoticeEvent=p},"./node_modules/matrix-events-sdk/lib/events/PollEndEvent.js":(e,t,r)=>{"use strict";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)}Object.defineProperty(t,"__esModule",{value:!0}),t.PollEndEvent=void 0;var s=r("./node_modules/matrix-events-sdk/lib/events/poll_types.js"),i=r("./node_modules/matrix-events-sdk/lib/InvalidEventError.js"),o=r("./node_modules/matrix-events-sdk/lib/events/relationship_types.js"),a=r("./node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),c=r("./node_modules/matrix-events-sdk/lib/events/message_types.js"),l=r("./node_modules/matrix-events-sdk/lib/utility/events.js");function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach(function(t){v(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function h(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function p(e,t){return p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},p(e,t)}function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var r,s=f(e);if(t){var i=f(this).constructor;r=Reflect.construct(s,arguments,i)}else r=s.apply(this,arguments);return function(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return g(e)}(this,r)}}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function v(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var y=function(e){!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&&p(e,t)}(f,e);var t,r,n,d=m(f);function f(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),v(g(t=d.call(this,e)),"pollEventId",void 0),v(g(t),"closingMessage",void 0);var r=t.wireContent["m.relates_to"];if(!o.REFERENCE_RELATION.matches(null==r?void 0:r.rel_type)||"string"!=typeof(null==r?void 0:r.event_id))throw new i.InvalidEventError("Relationship must be a reference to an event");return t.pollEventId=r.event_id,t.closingMessage=new a.MessageEvent(t.wireFormat),t}return t=f,n=[{key:"from",value:function(e,t){var r;return new f({type:s.M_POLL_END.name,content:(r={"m.relates_to":{rel_type:o.REFERENCE_RELATION.name,event_id:e}},v(r,s.M_POLL_END.name,{}),v(r,c.M_TEXT.name,t),r)})}}],(r=[{key:"isEquivalentTo",value:function(e){return(0,l.isEventTypeSame)(e,s.M_POLL_END)}},{key:"serialize",value:function(){return{type:s.M_POLL_END.name,content:u(v({"m.relates_to":{rel_type:o.REFERENCE_RELATION.name,event_id:this.pollEventId}},s.M_POLL_END.name,{}),this.closingMessage.serialize().content)}}}])&&h(t.prototype,r),n&&h(t,n),Object.defineProperty(t,"prototype",{writable:!1}),f}(r("./node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js").ExtensibleEvent);t.PollEndEvent=y},"./node_modules/matrix-events-sdk/lib/events/PollResponseEvent.js":(e,t,r)=>{"use strict";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)}Object.defineProperty(t,"__esModule",{value:!0}),t.PollResponseEvent=void 0;var s=r("./node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js"),i=r("./node_modules/matrix-events-sdk/lib/events/poll_types.js"),o=r("./node_modules/matrix-events-sdk/lib/InvalidEventError.js"),a=r("./node_modules/matrix-events-sdk/lib/events/relationship_types.js"),c=r("./node_modules/matrix-events-sdk/lib/utility/events.js");function l(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function d(e,t){return d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},d(e,t)}function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var r,s=p(e);if(t){var i=p(this).constructor;r=Reflect.construct(s,arguments,i)}else r=s.apply(this,arguments);return function(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return h(e)}(this,r)}}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function m(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var g=function(e){!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)}(p,e);var t,r,n,s=u(p);function p(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,p),m(h(t=s.call(this,e)),"internalAnswerIds",void 0),m(h(t),"internalSpoiled",void 0),m(h(t),"pollEventId",void 0);var r=t.wireContent["m.relates_to"];if(!a.REFERENCE_RELATION.matches(null==r?void 0:r.rel_type)||"string"!=typeof(null==r?void 0:r.event_id))throw new o.InvalidEventError("Relationship must be a reference to an event");return t.pollEventId=r.event_id,t.validateAgainst(null),t}return t=p,n=[{key:"from",value:function(e,t){return new p({type:i.M_POLL_RESPONSE.name,content:m({"m.relates_to":{rel_type:a.REFERENCE_RELATION.name,event_id:t}},i.M_POLL_RESPONSE.name,{answers:e})})}}],(r=[{key:"answerIds",get:function(){return this.internalAnswerIds}},{key:"spoiled",get:function(){return this.internalSpoiled}},{key:"validateAgainst",value:function(e){var t=i.M_POLL_RESPONSE.findIn(this.wireContent);if(!Array.isArray(null==t?void 0:t.answers))return this.internalSpoiled=!0,void(this.internalAnswerIds=[]);var r=t.answers;if(r.some(function(e){return"string"!=typeof e})||0===r.length)return this.internalSpoiled=!0,void(this.internalAnswerIds=[]);if(e){if(r.some(function(t){return!e.answers.some(function(e){return e.id===t})}))return this.internalSpoiled=!0,void(this.internalAnswerIds=[]);r=r.slice(0,e.maxSelections)}this.internalAnswerIds=r,this.internalSpoiled=!1}},{key:"isEquivalentTo",value:function(e){return(0,c.isEventTypeSame)(e,i.M_POLL_RESPONSE)}},{key:"serialize",value:function(){return{type:i.M_POLL_RESPONSE.name,content:m({"m.relates_to":{rel_type:a.REFERENCE_RELATION.name,event_id:this.pollEventId}},i.M_POLL_RESPONSE.name,{answers:this.spoiled?void 0:this.answerIds})}}}])&&l(t.prototype,r),n&&l(t,n),Object.defineProperty(t,"prototype",{writable:!1}),p}(s.ExtensibleEvent);t.PollResponseEvent=g},"./node_modules/matrix-events-sdk/lib/events/PollStartEvent.js":(e,t,r)=>{"use strict";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)}Object.defineProperty(t,"__esModule",{value:!0}),t.PollStartEvent=t.PollAnswerSubevent=void 0;var s=r("./node_modules/matrix-events-sdk/lib/events/poll_types.js"),i=r("./node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),o=r("./node_modules/matrix-events-sdk/lib/events/message_types.js"),a=r("./node_modules/matrix-events-sdk/lib/InvalidEventError.js"),c=r("./node_modules/matrix-events-sdk/lib/NamespacedValue.js"),l=r("./node_modules/matrix-events-sdk/lib/utility/events.js"),d=r("./node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js");function u(e){return function(e){if(Array.isArray(e))return h(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)return;if("string"==typeof e)return h(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return h(e,t)}(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 h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach(function(t){k(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function v(e,t,r){return t&&f(e.prototype,t),r&&f(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function y(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&&_(e,t)}function _(e,t){return _=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_(e,t)}function b(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var r,s=E(e);if(t){var i=E(this).constructor;r=Reflect.construct(s,arguments,i)}else r=s.apply(this,arguments);return function(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return w(e)}(this,r)}}function w(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}function k(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var S=function(e){y(r,e);var t=b(r);function r(e){var n;g(this,r),k(w(n=t.call(this,e)),"id",void 0);var s=e.content.id;if(!s||"string"!=typeof s)throw new a.InvalidEventError("Answer ID must be a non-empty string");return n.id=s,n}return v(r,[{key:"serialize",value:function(){return{type:"org.matrix.sdk.poll.answer",content:m({id:this.id},this.serializeMMessageOnly())}}}],[{key:"from",value:function(e,t){return new r({type:"org.matrix.sdk.poll.answer",content:k({id:e},o.M_TEXT.name,t)})}}]),r}(i.MessageEvent);t.PollAnswerSubevent=S;var x=function(e){y(r,e);var t=b(r);function r(e){var n;g(this,r),k(w(n=t.call(this,e)),"question",void 0),k(w(n),"kind",void 0),k(w(n),"rawKind",void 0),k(w(n),"maxSelections",void 0),k(w(n),"answers",void 0);var o=s.M_POLL_START.findIn(n.wireContent);if(!o.question)throw new a.InvalidEventError("A question is required");if(n.question=new i.MessageEvent({type:"org.matrix.sdk.poll.question",content:o.question}),n.rawKind=o.kind,s.M_POLL_KIND_DISCLOSED.matches(n.rawKind)?n.kind=s.M_POLL_KIND_DISCLOSED:n.kind=s.M_POLL_KIND_UNDISCLOSED,n.maxSelections=Number.isFinite(o.max_selections)&&o.max_selections>0?o.max_selections:1,!Array.isArray(o.answers))throw new a.InvalidEventError("Poll answers must be an array");var c=o.answers.slice(0,20).map(function(e){return new S({type:"org.matrix.sdk.poll.answer",content:e})});if(c.length<=0)throw new a.InvalidEventError("No answers available");return n.answers=c,n}return v(r,[{key:"isEquivalentTo",value:function(e){return(0,l.isEventTypeSame)(e,s.M_POLL_START)}},{key:"serialize",value:function(){var e;return{type:s.M_POLL_START.name,content:(e={},k(e,s.M_POLL_START.name,{question:this.question.serialize().content,kind:this.rawKind,max_selections:this.maxSelections,answers:this.answers.map(function(e){return e.serialize().content})}),k(e,o.M_TEXT.name,"".concat(this.question.text,"\n").concat(this.answers.map(function(e,t){return"".concat(t+1,". ").concat(e.text)}).join("\n"))),e)}}}],[{key:"from",value:function(e,t,n){var i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return new r({type:s.M_POLL_START.name,content:(i={},k(i,o.M_TEXT.name,e),k(i,s.M_POLL_START.name,{question:k({},o.M_TEXT.name,e),kind:n instanceof c.NamespacedValue?n.name:n,max_selections:a,answers:t.map(function(e){return k({id:u(Array(16)).map(function(){return T.charAt(Math.floor(Math.random()*T.length))}).join("")},o.M_TEXT.name,e)})}),i)})}}]),r}(d.ExtensibleEvent);t.PollStartEvent=x;var T="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"},"./node_modules/matrix-events-sdk/lib/events/message_types.js":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.M_TEXT=t.M_NOTICE=t.M_MESSAGE=t.M_HTML=t.M_EMOTE=void 0;var n=r("./node_modules/matrix-events-sdk/lib/NamespacedValue.js"),s=new n.UnstableValue("m.message","org.matrix.msc1767.message");t.M_MESSAGE=s;var i=new n.UnstableValue("m.text","org.matrix.msc1767.text");t.M_TEXT=i;var o=new n.UnstableValue("m.html","org.matrix.msc1767.html");t.M_HTML=o;var a=new n.UnstableValue("m.emote","org.matrix.msc1767.emote");t.M_EMOTE=a;var c=new n.UnstableValue("m.notice","org.matrix.msc1767.notice");t.M_NOTICE=c},"./node_modules/matrix-events-sdk/lib/events/poll_types.js":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.M_POLL_START=t.M_POLL_RESPONSE=t.M_POLL_KIND_UNDISCLOSED=t.M_POLL_KIND_DISCLOSED=t.M_POLL_END=void 0;var n=r("./node_modules/matrix-events-sdk/lib/NamespacedValue.js"),s=new n.UnstableValue("m.poll.disclosed","org.matrix.msc3381.poll.disclosed");t.M_POLL_KIND_DISCLOSED=s;var i=new n.UnstableValue("m.poll.undisclosed","org.matrix.msc3381.poll.undisclosed");t.M_POLL_KIND_UNDISCLOSED=i;var o=new n.UnstableValue("m.poll.start","org.matrix.msc3381.poll.start");t.M_POLL_START=o;var a=new n.UnstableValue("m.poll.response","org.matrix.msc3381.poll.response");t.M_POLL_RESPONSE=a;var c=new n.UnstableValue("m.poll.end","org.matrix.msc3381.poll.end");t.M_POLL_END=c},"./node_modules/matrix-events-sdk/lib/events/relationship_types.js":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.REFERENCE_RELATION=void 0;var n=new(r("./node_modules/matrix-events-sdk/lib/NamespacedValue.js").NamespacedValue)("m.reference");t.REFERENCE_RELATION=n},"./node_modules/matrix-events-sdk/lib/index.js":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r("./node_modules/matrix-events-sdk/lib/ExtensibleEvents.js");Object.keys(n).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===n[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return n[e]}}))});var s=r("./node_modules/matrix-events-sdk/lib/IPartialEvent.js");Object.keys(s).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===s[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))});var i=r("./node_modules/matrix-events-sdk/lib/InvalidEventError.js");Object.keys(i).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))});var o=r("./node_modules/matrix-events-sdk/lib/NamespacedValue.js");Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))});var a=r("./node_modules/matrix-events-sdk/lib/NamespacedMap.js");Object.keys(a).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))});var c=r("./node_modules/matrix-events-sdk/lib/types.js");Object.keys(c).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===c[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return c[e]}}))});var l=r("./node_modules/matrix-events-sdk/lib/utility/MessageMatchers.js");Object.keys(l).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===l[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}}))});var d=r("./node_modules/matrix-events-sdk/lib/utility/events.js");Object.keys(d).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===d[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return d[e]}}))});var u=r("./node_modules/matrix-events-sdk/lib/interpreters/legacy/MRoomMessage.js");Object.keys(u).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===u[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}}))});var h=r("./node_modules/matrix-events-sdk/lib/interpreters/modern/MMessage.js");Object.keys(h).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===h[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return h[e]}}))});var p=r("./node_modules/matrix-events-sdk/lib/interpreters/modern/MPoll.js");Object.keys(p).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===p[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return p[e]}}))});var m=r("./node_modules/matrix-events-sdk/lib/events/relationship_types.js");Object.keys(m).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===m[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return m[e]}}))});var g=r("./node_modules/matrix-events-sdk/lib/events/ExtensibleEvent.js");Object.keys(g).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===g[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return g[e]}}))});var f=r("./node_modules/matrix-events-sdk/lib/events/message_types.js");Object.keys(f).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===f[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return f[e]}}))});var v=r("./node_modules/matrix-events-sdk/lib/events/MessageEvent.js");Object.keys(v).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===v[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return v[e]}}))});var y=r("./node_modules/matrix-events-sdk/lib/events/EmoteEvent.js");Object.keys(y).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===y[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return y[e]}}))});var _=r("./node_modules/matrix-events-sdk/lib/events/NoticeEvent.js");Object.keys(_).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===_[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return _[e]}}))});var b=r("./node_modules/matrix-events-sdk/lib/events/poll_types.js");Object.keys(b).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===b[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return b[e]}}))});var w=r("./node_modules/matrix-events-sdk/lib/events/PollStartEvent.js");Object.keys(w).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===w[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return w[e]}}))});var E=r("./node_modules/matrix-events-sdk/lib/events/PollResponseEvent.js");Object.keys(E).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===E[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return E[e]}}))});var k=r("./node_modules/matrix-events-sdk/lib/events/PollEndEvent.js");Object.keys(k).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===k[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return k[e]}}))})},"./node_modules/matrix-events-sdk/lib/interpreters/legacy/MRoomMessage.js":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LEGACY_M_ROOM_MESSAGE=void 0,t.parseMRoomMessage=function(e){var t,r,o;if(a.M_MESSAGE.findIn(e.content)||a.M_TEXT.findIn(e.content))return new n.MessageEvent(e);var c,u=null===(t=e.content)||void 0===t?void 0:t.msgtype,h=null===(r=e.content)||void 0===r?void 0:r.body,p="org.matrix.custom.html"===(null===(o=e.content)||void 0===o?void 0:o.format)?e.content.formatted_body:null;return"m.text"===u?new n.MessageEvent(l(l({},e),{},{content:l(l({},e.content),{},(c={},d(c,a.M_TEXT.name,h),d(c,a.M_HTML.name,p),c))})):"m.notice"===u?new s.NoticeEvent(l(l({},e),{},{content:l(l({},e.content),{},(m={},d(m,a.M_TEXT.name,h),d(m,a.M_HTML.name,p),m))})):"m.emote"===u?new i.EmoteEvent(l(l({},e),{},{content:l(l({},e.content),{},(g={},d(g,a.M_TEXT.name,h),d(g,a.M_HTML.name,p),g))})):null;var m,g};var n=r("./node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),s=r("./node_modules/matrix-events-sdk/lib/events/NoticeEvent.js"),i=r("./node_modules/matrix-events-sdk/lib/events/EmoteEvent.js"),o=r("./node_modules/matrix-events-sdk/lib/NamespacedValue.js"),a=r("./node_modules/matrix-events-sdk/lib/events/message_types.js");function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach(function(t){d(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function d(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var u=new o.NamespacedValue("m.room.message");t.LEGACY_M_ROOM_MESSAGE=u},"./node_modules/matrix-events-sdk/lib/interpreters/modern/MMessage.js":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseMMessage=function(e){if(s.M_EMOTE.matches(e.type))return new i.EmoteEvent(e);if(s.M_NOTICE.matches(e.type))return new o.NoticeEvent(e);return new n.MessageEvent(e)};var n=r("./node_modules/matrix-events-sdk/lib/events/MessageEvent.js"),s=r("./node_modules/matrix-events-sdk/lib/events/message_types.js"),i=r("./node_modules/matrix-events-sdk/lib/events/EmoteEvent.js"),o=r("./node_modules/matrix-events-sdk/lib/events/NoticeEvent.js")},"./node_modules/matrix-events-sdk/lib/interpreters/modern/MPoll.js":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseMPoll=function(e){if(n.M_POLL_START.matches(e.type))return new s.PollStartEvent(e);if(n.M_POLL_RESPONSE.matches(e.type))return new i.PollResponseEvent(e);if(n.M_POLL_END.matches(e.type))return new o.PollEndEvent(e);return null};var n=r("./node_modules/matrix-events-sdk/lib/events/poll_types.js"),s=r("./node_modules/matrix-events-sdk/lib/events/PollStartEvent.js"),i=r("./node_modules/matrix-events-sdk/lib/events/PollResponseEvent.js"),o=r("./node_modules/matrix-events-sdk/lib/events/PollEndEvent.js")},"./node_modules/matrix-events-sdk/lib/types.js":(e,t)=>{"use strict";function r(e){return null!=e}Object.defineProperty(t,"__esModule",{value:!0}),t.isOptionalAString=function(e){return r(e)&&"string"==typeof e},t.isProvided=r},"./node_modules/matrix-events-sdk/lib/utility/MessageMatchers.js":(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LegacyMsgType=void 0,t.isEventLike=function(e,t){var r=e.content;if(t===n.Text)return s.M_MESSAGE.matches(e.type)||"m.room.message"===e.type&&"m.text"===(null==r?void 0:r.msgtype);if(t===n.Emote)return s.M_EMOTE.matches(e.type)||"m.room.message"===e.type&&"m.emote"===(null==r?void 0:r.msgtype);if(t===n.Notice)return s.M_NOTICE.matches(e.type)||"m.room.message"===e.type&&"m.notice"===(null==r?void 0:r.msgtype);return!1};var n,s=r("./node_modules/matrix-events-sdk/lib/events/message_types.js");t.LegacyMsgType=n,function(e){e.Text="m.text",e.Notice="m.notice",e.Emote="m.emote"}(n||(t.LegacyMsgType=n={}))},"./node_modules/matrix-events-sdk/lib/utility/events.js":(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEventTypeSame=function(e,t){if("string"==typeof e)return"string"==typeof t?t===e:t.matches(e);if("string"==typeof t)return e.matches(t);var r=t,n=e;return r.matches(n.name)||r.matches(n.altName)}},"./node_modules/matrix-js-sdk/src/@types/membership.ts":(e,t,r)=>{"use strict";r.d(t,{O:()=>n});let n=function(e){return e.Ban="ban",e.Invite="invite",e.Join="join",e.Knock="knock",e.Leave="leave",e}({})},"./node_modules/matrix-js-sdk/src/ReEmitter.ts":(e,t,r)=>{"use strict";r.d(t,{K:()=>s,Q:()=>i});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class s{constructor(e){(0,n.A)(this,"reEmitters",new WeakMap),this.target=e}reEmit(e,t){let r=this.reEmitters.get(e);r||(r=new Map,this.reEmitters.set(e,r));for(const n of t){if(r.has(n))continue;const t=(...t)=>{"error"===n&&0===this.target.listenerCount("error")||this.target.emit(n,...t,e)};e.on(n,t),r.set(n,t)}}stopReEmitting(e,t){const r=this.reEmitters.get(e);if(r){for(const n of t)e.off(n,r.get(n)),r.delete(n);0===r.size&&this.reEmitters.delete(e)}}}class i extends s{constructor(e){super(e)}reEmit(e,t){super.reEmit(e,t)}stopReEmitting(e,t){super.stopReEmitting(e,t)}}},"./node_modules/matrix-js-sdk/src/ToDeviceMessageQueue.ts":(e,t,r)=>{"use strict";r.d(t,{k:()=>l});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/@types/event.ts"),i=r("./node_modules/matrix-js-sdk/src/client.ts"),o=r("./node_modules/matrix-js-sdk/src/scheduler.ts"),a=r("./node_modules/matrix-js-sdk/src/sync.ts"),c=r("./node_modules/matrix-js-sdk/src/utils.ts");class l{constructor(e,t){(0,n.A)(this,"sending",!1),(0,n.A)(this,"running",!0),(0,n.A)(this,"retryTimeout",null),(0,n.A)(this,"retryAttempts",0),(0,n.A)(this,"sendQueue",async()=>{if(null!==this.retryTimeout&&clearTimeout(this.retryTimeout),this.retryTimeout=null,this.sending||!this.running)return;let e;this.logger.debug("Attempting to send queued to-device messages"),this.sending=!0;try{for(;this.running&&(e=await this.client.store.getOldestToDeviceBatch(),null!==e);)await this.sendBatch(e),await this.client.store.removeToDeviceBatch(e.id),this.retryAttempts=0;if(!this.running)return;this.logger.debug("All queued to-device messages sent")}catch(t){++this.retryAttempts;const r=o.b.RETRY_BACKOFF_RATELIMIT(null,this.retryAttempts,t);if(-1===r)return void(4===Math.floor(t.httpStatus/100)?(this.logger.error("Fatal error when sending to-device message - dropping to-device batch!",t),await this.client.store.removeToDeviceBatch(e.id)):this.logger.info("Automatic retry limit reached for to-device messages."));this.logger.info(`Failed to send batch of to-device messages. Will retry in ${r}ms`,t),this.retryTimeout=setTimeout(this.sendQueue,r)}finally{this.sending=!1}}),(0,n.A)(this,"onResumedSync",(e,t)=>{e===a.Lm.Syncing&&t!==a.Lm.Syncing&&(this.logger.info("Resuming queue after resumed sync"),this.sendQueue())}),this.client=e,this.logger=t}start(){this.running=!0,this.sendQueue(),this.client.on(i.AU.Sync,this.onResumedSync)}stop(){this.running=!1,null!==this.retryTimeout&&clearTimeout(this.retryTimeout),this.retryTimeout=null,this.client.removeListener(i.AU.Sync,this.onResumedSync)}async queueBatch(e){const t=[];for(let r=0;r<e.batch.length;r+=20){const n={eventType:e.eventType,batch:e.batch.slice(r,r+20),txnId:this.client.makeTxnId()};t.push(n);const i=n.batch.map(e=>`${e.userId}/${e.deviceId} (msgid ${e.payload[s.wt]})`);this.logger.info(`Enqueuing batch of to-device messages. type=${e.eventType} txnid=${n.txnId}`,i)}await this.client.store.saveToDeviceBatches(t),this.sendQueue()}async sendBatch(e){const t=new c.kG(()=>new Map);for(const r of e.batch)t.getOrCreate(r.userId).set(r.deviceId,r.payload);this.logger.info(`Sending batch of ${e.batch.length} to-device messages with ID ${e.id} and txnId ${e.txnId}`),await this.client.sendToDevice(e.eventType,t,e.txnId)}}},"./node_modules/matrix-js-sdk/src/base64.ts":(e,t,r)=>{"use strict";function n(e,t){if("function"==typeof e.toBase64)return e.toBase64(t);let r=btoa(e.reduce((e,t)=>e+String.fromCharCode(t),""));return t.omitPadding&&(r=r.replace(/={1,2}$/,"")),"base64url"===t.alphabet&&(r=r.replace(/\+/g,"-").replace(/\//g,"_")),r}function s(e){return n(e,{alphabet:"base64",omitPadding:!1})}function i(e){return n(e,{alphabet:"base64",omitPadding:!0})}function o(e){return n(e,{alphabet:"base64url",omitPadding:!0})}function a(e){return function(e,t){return"function"==typeof Uint8Array.fromBase64?Uint8Array.fromBase64(e,t):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}(e.replace(/-/g,"+").replace(/_/g,"/"),{alphabet:"base64",lastChunkHandling:"loose"})}r.d(t,{A4:()=>o,PP:()=>i,WG:()=>s,y4:()=>a})},"./node_modules/matrix-js-sdk/src/common-crypto/CryptoBackend.ts":(e,t,r)=>{"use strict";r.d(t,{O:()=>s});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class s extends Error{constructor(e,t,r){super(t),(0,n.A)(this,"detailedString",void 0),this.code=e,this.name="DecryptionError",this.detailedString=function(e,t){let r=e.name+"[msg: "+e.message;t&&(r+=", "+Object.keys(t).map(e=>e+": "+t[e]).join(", "));return r+="]",r}(this,r)}}},"./node_modules/matrix-js-sdk/src/content-repo.ts":(e,t,r)=>{"use strict";r.d(t,{y:()=>i});const n=/^(?:(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})|(?:\[[\dA-Fa-f:.]{2,45}])|(?:[A-Za-z\d\-.]{1,255}))(?::\d{1,5})?$/;const s=/^[\w-]+$/;function i(e,t,r,i,o,a=!1,c,l){if("string"!=typeof t||!t)return"";if(!t.startsWith("mxc://"))return a?t:"";const[d,u,...h]=t.slice(6).split("/");if(h.length>0||!function(e){const t=n.exec(e);return(null==t?void 0:t[0])===e}(d)||!function(e){const t=s.exec(e);return(null==t?void 0:t[0])===e}(u))return"";let p;l&&(c=!0);const m=!!r||!!i||!!o?"thumbnail":"download";p=l?`/_matrix/client/v1/media/${m}`:`/_matrix/media/v3/${m}`;const g=new URL(`${p}/${d}/${u}`,e);return r&&g.searchParams.set("width",Math.round(r).toString()),i&&g.searchParams.set("height",Math.round(i).toString()),o&&g.searchParams.set("method",o),"boolean"==typeof c&&g.searchParams.set("allow_redirect",JSON.stringify(c)),g.href}},"./node_modules/matrix-js-sdk/src/crypto-api/key-passphrase.ts":(e,t,r)=>{"use strict";r.d(t,{w:()=>s});const n=256;async function s(e,t,r,s=n){if(!globalThis.crypto.subtle||!TextEncoder)throw new Error("Password-based backup is not available on this platform");const i=await globalThis.crypto.subtle.importKey("raw",(new TextEncoder).encode(e),{name:"PBKDF2"},!1,["deriveBits"]),o=await globalThis.crypto.subtle.deriveBits({name:"PBKDF2",salt:(new TextEncoder).encode(t),iterations:r,hash:"SHA-512"},i,s);return new Uint8Array(o)}},"./node_modules/matrix-js-sdk/src/digest.ts":(e,t,r)=>{"use strict";async function n(e){if(!globalThis.crypto.subtle)throw new Error("Crypto.subtle is not available: insecure context?");const t=(new TextEncoder).encode(e),r=await globalThis.crypto.subtle.digest("SHA-256",t);return new Uint8Array(r)}r.d(t,{s:()=>n})},"./node_modules/matrix-js-sdk/src/event-mapper.ts":(e,t,r)=>{"use strict";r.d(t,{t:()=>c});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/models/event.ts"),i=r("./node_modules/matrix-js-sdk/src/@types/event.ts");function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function c(e,t){let r=Boolean(t.preventReEmit);const n=!1!==t.decrypt;return function t(o){const c=e.getRoom(o.room_id);let l;c&&void 0===o.state_key&&(l=c.findEventById(o.event_id)),!l||l.status?l=new s.kl(o):(l.setUnsigned(a(a({},l.getUnsigned()),o.unsigned)),r=!0);const d=l.getServerAggregatedRelation(i.zZ.Replace);if(null!=d&&d.content){const e=t(d);l.makeReplaced(e)}const u=null==c?void 0:c.findThreadForEvent(l);return u&&l.setThread(u),l.isEncrypted()&&(r||e.reEmitter.reEmit(l,[s.OQ.Decrypted]),n&&e.decryptEventIfNeeded(l)),r||(e.reEmitter.reEmit(l,[s.OQ.Replaced,s.OQ.VisibilityChange]),null==c||c.reEmitter.reEmit(l,[s.OQ.BeforeRedaction])),l}}},"./node_modules/matrix-js-sdk/src/feature.ts":(e,t,r)=>{"use strict";r.d(t,{Tj:()=>n,Xj:()=>s,yk:()=>o});let n=function(e){return e[e.Stable=0]="Stable",e[e.Unstable=1]="Unstable",e[e.Unsupported=2]="Unsupported",e}({}),s=function(e){return e.Thread="Thread",e.ThreadUnreadNotifications="ThreadUnreadNotifications",e.LoginTokenRequest="LoginTokenRequest",e.RelationBasedRedactions="RelationBasedRedactions",e.AccountDataDeletion="AccountDataDeletion",e.RelationsRecursion="RelationsRecursion",e.IntentionalMentions="IntentionalMentions",e}({});const i={[s.Thread]:{unstablePrefixes:["org.matrix.msc3440"],matrixVersion:"v1.3"},[s.ThreadUnreadNotifications]:{unstablePrefixes:["org.matrix.msc3771","org.matrix.msc3773"],matrixVersion:"v1.4"},[s.LoginTokenRequest]:{unstablePrefixes:["org.matrix.msc3882"]},[s.RelationBasedRedactions]:{unstablePrefixes:["org.matrix.msc3912"]},[s.AccountDataDeletion]:{unstablePrefixes:["org.matrix.msc3391"]},[s.RelationsRecursion]:{unstablePrefixes:["org.matrix.msc3981"],matrixVersion:"v1.10"},[s.IntentionalMentions]:{unstablePrefixes:["org.matrix.msc3952_intentional_mentions"],matrixVersion:"v1.7"}};async function o(e){const t=new Map;for(const[c,l]of Object.entries(i)){var r,s,o,a;const i=null!==(r=null===(s=e.versions)||void 0===s?void 0:s.includes(l.matrixVersion||""))&&void 0!==r&&r,d=null!==(o=null===(a=l.unstablePrefixes)||void 0===a?void 0:a.every(t=>{var r;return!0===(null===(r=e.unstable_features)||void 0===r?void 0:r[t])}))&&void 0!==o&&o;i?t.set(c,n.Stable):d?t.set(c,n.Unstable):t.set(c,n.Unsupported)}return t}},"./node_modules/matrix-js-sdk/src/filter-component.ts":(e,t,r)=>{"use strict";r.d(t,{i:()=>s});var n=r("./node_modules/matrix-js-sdk/src/models/thread.ts");class s{constructor(e,t){this.filterJson=e,this.userId=t}check(e){var t,r;const s=(null===(t=e.getUnsigned())||void 0===t?void 0:t["m.relations"])||{},i=Object.keys(s),o=[];return this.userId&&null!=s&&null!==(r=s[n.RN.name])&&void 0!==r&&r.current_user_participated&&o.push(this.userId),this.checkFields(e.getRoomId(),e.getSender(),e.getType(),!!e.getContent()&&void 0!==e.getContent().url,i,o)}toJSON(){return Object.fromEntries(Object.entries({types:this.filterJson.types,not_types:this.filterJson.not_types,rooms:this.filterJson.rooms,not_rooms:this.filterJson.not_rooms,senders:this.filterJson.senders,not_senders:this.filterJson.not_senders,contains_url:this.filterJson.contains_url,[n.o1.name]:this.filterJson[n.o1.name],[n.H.name]:this.filterJson[n.H.name]}).filter(([e,t])=>t))}checkFields(e,t,r,s,i,o){const a={rooms:function(t){return e===t},senders:function(e){return t===e},types:function(e){return function(e,t){if(t.endsWith("*")){const r=t.slice(0,-1);return e.slice(0,r.length)===r}return e===t}(r,e)}};for(const e in a){const t=a[e],r="not_"+e,n=this.filterJson[r];if(null!=n&&n.some(t))return!1;const s=this.filterJson[e];if(s&&!s.some(t))return!1}const c=this.filterJson.contains_url;if(void 0!==c&&c!==s)return!1;const l=this.filterJson[n.H.name];if(void 0!==l&&!this.arrayMatchesFilter(l,i))return!1;const d=this.filterJson[n.o1.name];return!(void 0!==d&&!this.arrayMatchesFilter(d,o))}arrayMatchesFilter(e,t){return t.length>0&&e.every(e=>t.includes(e))}filter(e){return e.filter(this.check,this)}limit(){return void 0!==this.filterJson.limit?this.filterJson.limit:10}}},"./node_modules/matrix-js-sdk/src/http-api/errors.ts":(e,t,r)=>{"use strict";r.d(t,{DW:()=>u,FS:()=>d,Hl:()=>o,Rc:()=>l,eM:()=>c,up:()=>a});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}class o extends Error{constructor(e,t,r){super(e),this.httpStatus=t,this.httpHeaders=r}isRateLimitError(){return 429===this.httpStatus}getRetryAfterMs(){var e;const t=null===(e=this.httpHeaders)||void 0===e?void 0:e.get("Retry-After");if(null!=t){if(/^\d+$/.test(t)){const e=1e3*Number.parseInt(t);if(!Number.isFinite(e))throw new Error("Retry-After header integer value is too large");return e}const e=new Date(t);if(e.toUTCString()!==t)throw new Error("Retry-After header value is not a valid HTTP-date or non-negative decimal integer");return e.getTime()-Date.now()}return null}}class a extends o{constructor(e={},t,r,s,i){let o=e.error||"Unknown message";t&&(o=`[${t}] ${o}`),r&&(o=`${o} (${r})`),super(`MatrixError: ${o}`,t,i),(0,n.A)(this,"errcode",void 0),(0,n.A)(this,"data",void 0),this.url=r,this.event=s,this.errcode=e.errcode,this.name=e.errcode||"Unknown error code",this.data=e}isRateLimitError(){return"M_LIMIT_EXCEEDED"===this.errcode||("M_UNKNOWN"===this.errcode||void 0===this.errcode)&&super.isRateLimitError()}getRetryAfterMs(){const e=super.getRetryAfterMs();if(null!==e)return e;if("M_LIMIT_EXCEEDED"===this.errcode&&"retry_after_ms"in this.data){if(!Number.isInteger(this.data.retry_after_ms))throw new Error("retry_after_ms is not an integer");return this.data.retry_after_ms}return null}asWidgetApiErrorData(){var e,t,r,n;const s={};if(this.httpHeaders)for(const[e,t]of this.httpHeaders)s[e]=t;return{http_status:null!==(e=this.httpStatus)&&void 0!==e?e:400,http_headers:s,url:null!==(t=this.url)&&void 0!==t?t:"",response:i({errcode:null!==(r=this.errcode)&&void 0!==r?r:"M_UNKNOWN",error:null!==(n=this.data.error)&&void 0!==n?n:"Unknown message"},this.data)}}static fromWidgetApiErrorData(e){return new a(e.response,e.http_status,e.url,void 0,new Headers(e.http_headers))}}function c(e,t){if(!(e instanceof o&&e.isRateLimitError()))return t;try{var r;return null!==(r=e.getRetryAfterMs())&&void 0!==r?r:t}catch{return t}}class l extends Error{constructor(e,t){super(e+(t?`: ${t.message}`:""))}get name(){return"ConnectionError"}}class d extends Error{constructor(e){var t;super(null!==(t=null==e?void 0:e.message)&&void 0!==t?t:"")}get name(){return"TokenRefreshError"}}class u extends Error{constructor(e){var t;super(null!==(t=null==e?void 0:e.message)&&void 0!==t?t:"")}get name(){return"TokenRefreshLogoutError"}}},"./node_modules/matrix-js-sdk/src/http-api/fetch.ts":(e,t,r)=>{"use strict";r.d(t,{H:()=>p});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/utils.ts"),i=r("./node_modules/matrix-js-sdk/src/http-api/method.ts"),o=r("./node_modules/matrix-js-sdk/src/http-api/errors.ts"),a=r("./node_modules/matrix-js-sdk/src/http-api/interface.ts"),c=r("./node_modules/matrix-js-sdk/src/http-api/utils.ts");let l=function(e){return e.Success="success",e.Failure="failure",e.Logout="logout",e}({});class d{constructor(e){(0,n.A)(this,"tokenRefreshPromise",void 0),(0,n.A)(this,"latestTokenRefreshExpiry",void 0),this.opts=e}async prepareForRequest(){return await this.refreshIfNeeded(),{accessToken:this.opts.accessToken,refreshToken:this.opts.refreshToken,expiry:this.latestTokenRefreshExpiry}}async refreshIfNeeded(){if(this.tokenRefreshPromise)return this.tokenRefreshPromise;if(!this.latestTokenRefreshExpiry)return;this.latestTokenRefreshExpiry.getTime()-Date.now()<=500&&await this._handleUnknownToken()}async handleUnknownToken(e,t){return this._handleUnknownToken(e,t)}async _handleUnknownToken(e,t){if(null!=e&&e.expiry){if(e.expiry.getTime()-Date.now()>=6e4)return l.Logout}if(!e||(null==e?void 0:e.accessToken)===this.opts.accessToken){var r;null!==(r=this.tokenRefreshPromise)&&void 0!==r||(this.tokenRefreshPromise=this.doTokenRefresh(t));try{return await this.tokenRefreshPromise}finally{this.tokenRefreshPromise=void 0}}return l.Success}async doTokenRefresh(e){var t;if(!this.opts.refreshToken||!this.opts.tokenRefreshFunction)return null===(t=this.opts.logger)||void 0===t||t.error("Unable to refresh token - no refresh token or refresh function"),l.Logout;e&&e>1&&await(0,s.yy)(1e3*Math.min(32,2**e));try{var r,n;null===(r=this.opts.logger)||void 0===r||r.debug("Attempting to refresh token");const{accessToken:e,refreshToken:t,expiry:s}=await this.opts.tokenRefreshFunction(this.opts.refreshToken);return this.opts.accessToken=e,this.opts.refreshToken=t,this.latestTokenRefreshExpiry=s,null===(n=this.opts.logger)||void 0===n||n.debug("... token refresh complete, new token expiry:",s),l.Success}catch(e){var i,a;return e instanceof o.DW||e instanceof o.up?(null===(a=this.opts.logger)||void 0===a||a.error("Failed to refresh token",e),l.Logout):(null===(i=this.opts.logger)||void 0===i||i.warn("Failed to refresh token",e),l.Failure)}}}function u(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function h(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?u(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):u(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}class p{constructor(e,t){var r;if((0,n.A)(this,"abortController",new AbortController),(0,n.A)(this,"tokenRefresher",void 0),this.eventEmitter=e,this.opts=t,(0,s.UB)(t,["baseUrl","prefix"]),!t.onlyData)throw new Error("Constructing FetchHttpApi without `onlyData=true` is no longer supported.");t.useAuthorizationHeader=null===(r=t.useAuthorizationHeader)||void 0===r||r,this.tokenRefresher=new d(t)}abort(){this.abortController.abort(),this.abortController=new AbortController}fetch(e,t){return this.opts.fetchFn?this.opts.fetchFn(e,t):globalThis.fetch(e,t)}setIdBaseUrl(e){this.opts.idBaseUrl=e}idServerRequest(e,t,r,n,s){if(!this.opts.idBaseUrl)throw new Error("No identity server base URL set");let o,a;e===i.I.Get?o=r:a=r;const c=this.getUrl(t,o,n,this.opts.idBaseUrl),l={json:!0,headers:{}};return s&&(l.headers.Authorization=`Bearer ${s}`),this.requestOtherUrl(e,c,a,l)}authedRequest(e,t,r={},n,s={}){return this.doAuthedRequest(1,e,t,r,n,s)}async doAuthedRequest(e,t,r,n,i,c={}){const d=(0,s.A4)(c);d.abortSignal=c.abortSignal;const u=await this.tokenRefresher.prepareForRequest();u.accessToken&&(this.opts.useAuthorizationHeader?(d.headers||(d.headers={}),d.headers.Authorization||(d.headers.Authorization=`Bearer ${u.accessToken}`),n.access_token&&delete n.access_token):n.access_token||(n.access_token=u.accessToken));try{return await this.request(t,r,n,i,d)}catch(s){if(!(s instanceof o.up))throw s;if("M_UNKNOWN_TOKEN"===s.errcode){const h=await this.tokenRefresher.handleUnknownToken(u,e);if(h===l.Success)return this.doAuthedRequest(e+1,t,r,n,i,c);if(h===l.Failure)throw new o.FS(s);null!=d&&d.inhibitLogoutEmit||this.eventEmitter.emit(a.X.SessionLoggedOut,s)}else"M_CONSENT_NOT_GIVEN"==s.errcode&&this.eventEmitter.emit(a.X.NoConsent,s.message,s.data.consent_uri);throw s}}request(e,t,r,n,s){const i=this.getUrl(t,r,null==s?void 0:s.prefix,null==s?void 0:s.baseUrl);return this.requestOtherUrl(e,i,n,s)}async requestOtherUrl(e,t,r,n={}){var s,i,a,l;if(void 0!==n.json&&void 0!==n.rawResponseBody)throw new Error("Invalid call to `FetchHttpApi` sets both `opts.json` and `opts.rawResponseBody`");const d=this.sanitizeUrlForLogs(t);null===(s=this.opts.logger)||void 0===s||s.debug(`FetchHttpApi: --\x3e ${e} ${d}`);const u=Object.assign({},n.headers||{}),h=!n.rawResponseBody&&!1!==n.json;h&&(u.Accept||(u.Accept="application/json"));const p=null!==(i=n.localTimeoutMs)&&void 0!==i?i:this.opts.localTimeoutMs,m=null!==(a=n.keepAlive)&&void 0!==a&&a,g=[this.abortController.signal];let f;void 0!==p&&g.push((0,c._)(p)),n.abortSignal&&g.push(n.abortSignal),!1!==n.json&&(null==r||null===(l=r.constructor)||void 0===l?void 0:l.name)===Object.name?(f=JSON.stringify(r),u["Content-Type"]||(u["Content-Type"]="application/json")):f=r;const{signal:v,cleanup:y}=(0,c.JG)(g);let _;const b=Date.now();try{var w;_=await this.fetch(t,{signal:v,method:e,body:f,headers:u,mode:"cors",redirect:"follow",referrer:"",referrerPolicy:"no-referrer",cache:"no-cache",credentials:"omit",keepalive:m,priority:n.priority}),null===(w=this.opts.logger)||void 0===w||w.debug(`FetchHttpApi: <-- ${e} ${d} [${Date.now()-b}ms ${_.status}]`)}catch(t){var E;if(null===(E=this.opts.logger)||void 0===E||E.debug(`FetchHttpApi: <-- ${e} ${d} [${Date.now()-b}ms ${t}]`),"AbortError"===t.name)throw t;throw new o.Rc("fetch failed",t)}finally{y()}if(!_.ok)throw(0,c.xy)(_,await _.text());return n.rawResponseBody?await _.blob():h?await _.json():await _.text()}sanitizeUrlForLogs(e){try{let t;t="string"==typeof e?new URL(e):e;const r=new URLSearchParams;for(const e of t.searchParams.keys())r.append(e,"xxx");const n=r.toString(),s=n?`?${n}`:"";return t.origin+t.pathname+s}catch{return"??"}}getUrl(e,t,r,n){const i=null!=n?n:this.opts.baseUrl,o=i.endsWith("/")?i.slice(0,-1):i,a=new URL(o+(null!=r?r:this.opts.prefix)+e);if(this.opts.extraParams||t){const e=h(h({},this.opts.extraParams),t);(0,s.hm)(e,a.searchParams)}return a}}},"./node_modules/matrix-js-sdk/src/http-api/interface.ts":(e,t,r)=>{"use strict";r.d(t,{X:()=>n});let n=function(e){return e.SessionLoggedOut="Session.logged_out",e.NoConsent="no_consent",e}({})},"./node_modules/matrix-js-sdk/src/http-api/method.ts":(e,t,r)=>{"use strict";r.d(t,{I:()=>n});let n=function(e){return e.Get="GET",e.Put="PUT",e.Post="POST",e.Delete="DELETE",e.Options="OPTIONS",e.Head="HEAD",e.Patch="PATCH",e}({})},"./node_modules/matrix-js-sdk/src/http-api/prefix.ts":(e,t,r)=>{"use strict";r.d(t,{Pw:()=>s,iD:()=>n,zs:()=>i});let n=function(e){return e.V1="/_matrix/client/v1",e.V3="/_matrix/client/v3",e.Unstable="/_matrix/client/unstable",e}({}),s=function(e){return e.V2="/_matrix/identity/v2",e}({}),i=function(e){return e.V1="/_matrix/media/v1",e.V3="/_matrix/media/v3",e}({})},"./node_modules/matrix-js-sdk/src/http-api/utils.ts":(e,t,r)=>{"use strict";r.d(t,{JG:()=>c,Y6:()=>u,_:()=>a,fZ:()=>h,xy:()=>l});var n=r("./node_modules/content-type/index.js"),s=r("./node_modules/matrix-js-sdk/src/logger.ts"),i=r("./node_modules/matrix-js-sdk/src/utils.ts"),o=r("./node_modules/matrix-js-sdk/src/http-api/errors.ts");function a(e){const t=new AbortController;return setTimeout(()=>{t.abort()},e),t.signal}function c(e){const t=new AbortController;function r(){for(const t of e)t.removeEventListener("abort",n)}function n(){t.abort(),r()}for(const t of e){if(t.aborted){n();break}t.addEventListener("abort",n)}return{signal:t.signal,cleanup:r}}function l(e,t){var r,s;const i=d(e)?new Headers(e.getAllResponseHeaders().trim().split(/[\r\n]+/).map(e=>{const t=e.indexOf(":");return[e.substring(0,t),e.substring(t+1)]})):e.headers;let a;try{a=function(e){const t=e.get("Content-Type");if(null===t)return null;try{return(0,n.q)(t)}catch(e){throw new Error(`Error parsing Content-Type '${t}': ${e}`)}}(i)}catch(e){return e}return"application/json"===(null===(r=a)||void 0===r?void 0:r.type)&&t?new o.up(JSON.parse(t),e.status,d(e)?e.responseURL:e.url,void 0,i):"text/plain"===(null===(s=a)||void 0===s?void 0:s.type)?new o.Hl(`Server returned ${e.status} error: ${t}`,e.status,i):new o.Hl(`Server returned ${e.status} error`,e.status,i)}function d(e){return"getResponseHeader"in e}async function u(e,t){let r=0,n=null;for(;r<e;)try{if(r>0){const e=1e3*Math.pow(2,r);s.vF.log(`network operation failed ${r} times, retrying in ${e}ms...`),await(0,i.yy)(e)}return await t()}catch(e){if(!(e instanceof o.Rc))throw e;r+=1,n=e}throw n}function h(e,t,r){return t>4||e instanceof o.Rc&&!r||e.httpStatus&&4===Math.floor(e.httpStatus/100)&&429!==e.httpStatus||"AbortError"===e.name||"M_TOO_LARGE"===e.name?-1:(0,o.eM)(e,1e3*Math.pow(2,t))}},"./node_modules/matrix-js-sdk/src/indexeddb-helpers.ts":(e,t,r)=>{"use strict";function n(e,t){return new Promise((r,n)=>{let s=!0;const i=e.open(t);i.onupgradeneeded=()=>{s=!1},i.onblocked=()=>n(i.error),i.onsuccess=()=>{i.result.close(),s||e.deleteDatabase(t),r(s)},i.onerror=()=>n(i.error)})}r.d(t,{t:()=>n})},"./node_modules/matrix-js-sdk/src/matrixrtc/EncryptionManager.ts":(e,t,r)=>{"use strict";r.d(t,{p:()=>h});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/logger.ts"),i=r("./node_modules/matrix-js-sdk/src/randomstring.ts"),o=r("./node_modules/matrix-js-sdk/src/base64.ts"),a=r("./node_modules/matrix-js-sdk/src/http-api/errors.ts"),c=r("./node_modules/matrix-js-sdk/src/matrixrtc/IKeyTransport.ts"),l=r("./node_modules/matrix-js-sdk/src/matrixrtc/types.ts"),d=r("./node_modules/matrix-js-sdk/src/matrixrtc/utils.ts"),u=r("./node_modules/matrix-js-sdk/src/matrixrtc/RoomAndToDeviceKeyTransport.ts");class h{get updateEncryptionKeyThrottle(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.updateEncryptionKeyThrottle)&&void 0!==e?e:3e3}get makeKeyDelay(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.makeKeyDelay)&&void 0!==e?e:3e3}get useKeyDelay(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.useKeyDelay)&&void 0!==e?e:5e3}constructor(e,t,r,i,c,l,d){(0,n.A)(this,"manageMediaKeys",!1),(0,n.A)(this,"keysEventUpdateTimeout",void 0),(0,n.A)(this,"makeNewKeyTimeout",void 0),(0,n.A)(this,"setNewKeyTimeouts",new Set),(0,n.A)(this,"encryptionKeys",new Map),(0,n.A)(this,"lastEncryptionKeyUpdateRequest",void 0),(0,n.A)(this,"lastMembershipFingerprints",void 0),(0,n.A)(this,"latestGeneratedKeyIndex",-1),(0,n.A)(this,"joinConfig",void 0),(0,n.A)(this,"logger",void 0),(0,n.A)(this,"joined",!1),(0,n.A)(this,"sendEncryptionKeysEvent",async e=>{if(void 0!==this.keysEventUpdateTimeout&&(clearTimeout(this.keysEventUpdateTimeout),this.keysEventUpdateTimeout=void 0),this.lastEncryptionKeyUpdateRequest=Date.now(),!this.joined)return;const t=this.getKeysForParticipant(this.userId,this.deviceId);if(!t)return void this.logger.warn("Tried to send encryption keys event but no keys found!");if("number"!=typeof e&&-1===this.latestGeneratedKeyIndex)return void this.logger.warn("Tried to send encryption keys event but no current key index found!");const r=null!=e?e:this.latestGeneratedKeyIndex;this.logger.info(`Try sending encryption keys event. keyIndexToSend=${r} (method parameter: ${e})`);const n=t[r];try{this.statistics.counters.roomEventEncryptionKeysSent+=1;const e=this.getMemberships().filter(e=>null!=e.sender).map(e=>({userId:e.sender,deviceId:e.deviceId,membershipTs:e.createdTs()}));await this.transport.sendKey((0,o.PP)(n),r,e),this.logger.debug(`sendEncryptionKeysEvent participantId=${this.userId}:${this.deviceId} numKeys=${t.length} currentKeyIndex=${this.latestGeneratedKeyIndex} keyIndexToSend=${r}`)}catch(e){if(void 0===this.keysEventUpdateTimeout){const t=(0,a.eM)(e,5e3);this.logger.warn(`Failed to send m.call.encryption_key, retrying in ${t}`,e),this.keysEventUpdateTimeout=setTimeout(()=>{this.sendEncryptionKeysEvent()},t)}else this.logger.info("Not scheduling key resend as another re-send is already pending")}}),(0,n.A)(this,"onTransportChanged",()=>{this.requestSendCurrentKey()}),(0,n.A)(this,"onNewKeyReceived",(e,t,r,n,s)=>{this.logger.debug(`Received key over key transport ${e}:${t} at index ${n}`),this.setEncryptionKey(e,t,n,r,s)}),(0,n.A)(this,"onRotateKeyTimeout",()=>{if(!this.manageMediaKeys)return;this.makeNewKeyTimeout=void 0,this.logger.info("Making new sender key for key rotation");const e=this.makeNewSenderKey(!0);this.sendEncryptionKeysEvent(e)}),this.userId=e,this.deviceId=t,this.getMemberships=r,this.transport=i,this.statistics=c,this.onEncryptionKeysChanged=l,this.logger=(null!=d?d:s.vF).getChild("[EncryptionManager]")}getEncryptionKeys(){const e=new Map;for(const[t,r]of this.encryptionKeys){const n=r.map((e,t)=>({key:e.key,keyIndex:t}));e.set(t,n)}return e}join(e){var t,r,n;this.joinConfig=e,this.joined=!0,this.manageMediaKeys=null!==(t=null===(r=this.joinConfig)||void 0===r?void 0:r.manageMediaKeys)&&void 0!==t?t:this.manageMediaKeys,this.transport.on(c.u.ReceivedKeys,this.onNewKeyReceived),this.transport instanceof u.t&&this.transport.on(u.V.EnabledTransportsChanged,this.onTransportChanged),this.transport.start(),null!==(n=this.joinConfig)&&void 0!==n&&n.manageMediaKeys&&(this.makeNewSenderKey(),this.requestSendCurrentKey())}leave(){this.encryptionKeys.set((0,d.Z)(this.userId,this.deviceId),[]),this.transport.off(c.u.ReceivedKeys,this.onNewKeyReceived),this.transport.stop(),void 0!==this.makeNewKeyTimeout&&(clearTimeout(this.makeNewKeyTimeout),this.makeNewKeyTimeout=void 0);for(const e of this.setNewKeyTimeouts)clearTimeout(e);this.setNewKeyTimeouts.clear(),this.manageMediaKeys=!1,this.joined=!1}onMembershipsUpdate(e){if(this.manageMediaKeys&&this.joined){const t=new Set(e.filter(e=>!(0,l.t)(e,this.userId,this.deviceId)).map(p)),r=new Set(this.getMemberships().filter(e=>!(0,l.t)(e,this.userId,this.deviceId)).map(p)),n=Array.from(t).some(e=>!r.has(e)),s=Array.from(r).some(e=>!t.has(e)),i=this.lastMembershipFingerprints;if(this.storeLastMembershipFingerprints(),n)this.makeNewKeyTimeout||(this.logger.debug("Member(s) have left: queueing sender key rotation"),this.makeNewKeyTimeout=setTimeout(this.onRotateKeyTimeout,this.makeKeyDelay));else if(s)this.logger.debug("New member(s) have joined: re-sending keys"),this.requestSendCurrentKey();else if(i){const e=this.lastMembershipFingerprints;(Array.from(i).some(t=>!e.has(t))||Array.from(e).some(e=>!i.has(e)))&&(this.logger.debug("Member(s) have updated/reconnected: re-sending keys to everyone"),this.requestSendCurrentKey())}}}makeNewSenderKey(e=!1){const t=(0,i.rl)(16),r=this.getNewEncryptionKeyIndex();return this.logger.info("Generated new key at index "+r),this.setEncryptionKey(this.userId,this.deviceId,r,t,Date.now(),e),r}requestSendCurrentKey(){if(this.manageMediaKeys)return this.lastEncryptionKeyUpdateRequest&&this.lastEncryptionKeyUpdateRequest+this.updateEncryptionKeyThrottle>Date.now()?(this.logger.info("Last encryption key event sent too recently: postponing"),void(void 0===this.keysEventUpdateTimeout&&(this.keysEventUpdateTimeout=setTimeout(()=>{this.sendEncryptionKeysEvent()},this.updateEncryptionKeyThrottle)))):void this.sendEncryptionKeysEvent()}getKeysForParticipant(e,t){var r;return null===(r=this.encryptionKeys.get((0,d.Z)(e,t)))||void 0===r?void 0:r.map(e=>e.key)}storeLastMembershipFingerprints(){this.lastMembershipFingerprints=new Set(this.getMemberships().filter(e=>!(0,l.t)(e,this.userId,this.deviceId)).map(e=>`${p(e)}:${e.createdTs()}`))}getNewEncryptionKeyIndex(){return-1===this.latestGeneratedKeyIndex?0:(this.latestGeneratedKeyIndex+1)%256}setEncryptionKey(e,t,r,n,s,i=!1){this.logger.debug(`Setting encryption key for ${e}:${t} at index ${r}`);const a=(0,o.y4)(n),c=(0,d.Z)(e,t);this.encryptionKeys.has(c)||this.encryptionKeys.set(c,[]);const l=this.encryptionKeys.get(c),u=l[r];if(u){if(u.timestamp>s)return void this.logger.info(`Ignoring new key at index ${r} for ${c} as it is older than existing known key`);if((h=u.key)===(p=a)||h&&p&&h.length===p.length&&h.every((e,t)=>e===p[t]))return void(u.timestamp=s)}var h,p;if(e===this.userId&&t===this.deviceId&&(this.latestGeneratedKeyIndex=r),l[r]={key:a,timestamp:s},i){const e=setTimeout(()=>{this.setNewKeyTimeouts.delete(e),this.logger.info(`Delayed-emitting key changed event for ${c} index ${r}`),this.onEncryptionKeysChanged(a,r,c)},this.useKeyDelay);this.setNewKeyTimeouts.add(e)}else this.onEncryptionKeysChanged(a,r,c)}}const p=e=>(0,d.Z)(e.sender,e.deviceId)},"./node_modules/matrix-js-sdk/src/matrixrtc/IKeyTransport.ts":(e,t,r)=>{"use strict";r.d(t,{u:()=>n});let n=function(e){return e.ReceivedKeys="received_keys",e.NotSupportedError="not_supported_error",e}({})},"./node_modules/matrix-js-sdk/src/matrixrtc/MembershipManager.ts":(e,t,r)=>{"use strict";r.d(t,{T:()=>_,W:()=>b});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/p-retry/index.js"),i=r("./node_modules/matrix-js-sdk/src/@types/event.ts"),o=r("./node_modules/matrix-js-sdk/src/@types/requests.ts"),a=r("./node_modules/matrix-js-sdk/src/http-api/errors.ts"),c=r("./node_modules/matrix-js-sdk/src/logger.ts"),l=r("./node_modules/matrix-js-sdk/src/matrixrtc/CallMembership.ts"),d=r("./node_modules/matrix-js-sdk/src/matrixrtc/types.ts"),u=r("./node_modules/matrix-js-sdk/src/matrixrtc/MatrixRTCSession.ts"),h=r("./node_modules/matrix-js-sdk/src/utils.ts");class p{constructor(e,t){(0,n.A)(this,"logger",void 0),(0,n.A)(this,"running",!1),(0,n.A)(this,"wakeup",e=>{this.logger.error("Cannot call wakeup before calling `startWithJoin()`")}),(0,n.A)(this,"_actions",[]),this.membershipLoopHandler=e,this.logger=(null!=t?t:c.vF).getChild("[NewMembershipActionScheduler]")}get actions(){return this._actions}async startWithJoin(){if(this.running)this.logger.error("Cannot call startWithJoin() on NewMembershipActionScheduler while already running");else{this.running=!0,this._actions=[{ts:Date.now(),type:_.SendDelayedEvent}];try{for(;this._actions.length>0;){this._actions.sort((e,t)=>e.ts-t.ts);const e=this._actions[0];let t;const r=new Promise(e=>{this.wakeup=r=>{t=r,e()}});e.ts>Date.now()&&await Promise.race([r,(0,h.yy)(e.ts-Date.now())]);let n={};if(!t){this.logger.debug(`Current MembershipManager processing: ${e.type}\nQueue:`,this._actions,`\nDate.now: "${Date.now()}`);try{n=await this.membershipLoopHandler(e.type)}catch(e){throw Error(`The MembershipManager shut down because of the end condition: ${e}`)}}this._actions.splice(0,1);const s=null!=t?t:n;"replace"in s?this._actions=s.replace:"insert"in s&&this._actions.push(...s.insert)}}finally{this.running=!1}this.logger.debug("Leave MembershipManager ActionScheduler loop (no more actions)")}}initiateJoin(){var e;null===(e=this.wakeup)||void 0===e||e.call(this,{replace:[{ts:Date.now(),type:_.SendDelayedEvent}]})}initiateLeave(){var e;null===(e=this.wakeup)||void 0===e||e.call(this,{replace:[{ts:Date.now(),type:_.SendScheduledDelayedLeaveEvent}]})}}var m=r("./node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts"),g=r("./node_modules/matrix-js-sdk/src/errors.ts"),f=r("./node_modules/matrix-js-sdk/src/matrixrtc/IMembershipManager.ts");function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let _=function(e){return e.SendDelayedEvent="SendDelayedEvent",e.SendJoinEvent="SendJoinEvent",e.RestartDelayedEvent="RestartDelayedEvent",e.UpdateExpiry="UpdateExpiry",e.SendScheduledDelayedLeaveEvent="SendScheduledDelayedLeaveEvent",e.SendLeaveEvent="SendLeaveEvent",e}({});class b extends m.X{isActivated(){return this.activated}isJoined(){return this.isActivated()}join(e,t,r){this.scheduler.running?this.logger.error("MembershipManager is already running. Ignoring join request."):(this.fociPreferred=e,this.rtcTransport=t,this.leavePromiseResolvers=void 0,this.activated=!0,this.oldStatus=this.status,this.state=b.defaultState,this.scheduler.startWithJoin().catch(e=>{this.logger.error("MembershipManager stopped because: ",e),null==r||r(e)}).finally(()=>{var e;(this.activated=!1,this.oldStatus&&this.oldStatus!==this.status&&this.emit(f.e.StatusChanged,this.oldStatus,this.status),this.scheduler.running)||(null===(e=this.leavePromiseResolvers)||void 0===e||e.resolve(!0),this.leavePromiseResolvers=void 0)}))}leave(e){return this.scheduler.running?(this.leavePromiseResolvers||(this.leavePromiseResolvers=Promise.withResolvers(),this.activated=!1,this.scheduler.initiateLeave(),e&&setTimeout(()=>{var e;return null===(e=this.leavePromiseResolvers)||void 0===e?void 0:e.resolve(!1)},e)),this.leavePromiseResolvers.promise):(this.logger.warn("Called MembershipManager.leave() even though the MembershipManager is not running"),Promise.resolve(!0))}onRTCSessionMemberUpdate(e){if(!this.isActivated())return Promise.resolve();const t=this.client.getUserId(),r=this.client.getDeviceId();if(!t||!r)return this.logger.error("MembershipManager.onRTCSessionMemberUpdate called without user or device id"),Promise.resolve();if(this._ownMembership=e.find(e=>(0,d.t)(e,t,r)),!this._ownMembership){const e=[_.SendDelayedEvent,_.SendJoinEvent];this.logger.warn("Missing own membership: force re-join"),this.state.hasMemberStateEvent=!1,this.scheduler.actions.some(t=>e.includes(t.type))?this.logger.error("tried adding another `SendDelayedEvent` actions even though we already have one in the Queue\nActionQueueOnMemberUpdate:",this.scheduler.actions):this.scheduler.initiateJoin()}return Promise.resolve()}async updateCallIntent(e){if(!this.activated||!this.ownMembership)throw Error("You cannot update your intent before joining the call");this.ownMembership.callIntent!==e&&(this.callIntent=e,await this.sendJoinEvent())}constructor(e,t,r,s,i){super(),(0,n.A)(this,"activated",!1),(0,n.A)(this,"logger",void 0),(0,n.A)(this,"callIntent",void 0),(0,n.A)(this,"leavePromiseResolvers",void 0),(0,n.A)(this,"_ownMembership",void 0),(0,n.A)(this,"oldStatus",void 0),(0,n.A)(this,"scheduler",void 0),(0,n.A)(this,"state",void 0),(0,n.A)(this,"deviceId",void 0),(0,n.A)(this,"memberId",void 0),(0,n.A)(this,"fociPreferred",void 0),(0,n.A)(this,"rtcTransport",void 0),(0,n.A)(this,"delayedLeaveEventDelayMsOverride",void 0),this.joinConfig=e,this.room=t,this.client=r,this.slotDescription=s,this.logger=(null!=i?i:c.vF).getChild("[MembershipManager]");const[o,a]=[this.client.getUserId(),this.client.getDeviceId()];if(null===o)throw Error("Missing userId in client");if(null===a)throw Error("Missing deviceId in client");this.deviceId=a,this.memberId=this.makeMembershipStateKey(o,a),this.state=b.defaultState,this.callIntent=null==e?void 0:e.callIntent,this.scheduler=new p(e=>(this.oldStatus&&(this.logger.debug(`MembershipManager applied action changes. Status: ${this.oldStatus} -> ${this.status}`),this.oldStatus!==this.status&&this.emit(f.e.StatusChanged,this.oldStatus,this.status)),this.oldStatus=this.status,this.logger.debug(`MembershipManager before processing action. status=${this.oldStatus}`),this.membershipLoopHandler(e)),this.logger)}get ownMembership(){return this._ownMembership}static get defaultState(){return{hasMemberStateEvent:!1,delayId:void 0,startTime:0,rateLimitRetries:new Map,networkErrorRetries:new Map,expireUpdateIterations:1,probablyLeft:!1}}get networkErrorRetryMs(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.networkErrorRetryMs)&&void 0!==e?e:3e3}get membershipEventExpiryMs(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.membershipEventExpiryMs)&&void 0!==e?e:l.F}get membershipEventExpiryHeadroomMs(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.membershipEventExpiryHeadroomMs)&&void 0!==e?e:5e3}computeNextExpiryActionTs(e){return this.state.startTime+this.membershipEventExpiryMs*e-this.membershipEventExpiryHeadroomMs}get delayedLeaveEventDelayMs(){var e,t,r;return null!==(e=null!==(t=this.delayedLeaveEventDelayMsOverride)&&void 0!==t?t:null===(r=this.joinConfig)||void 0===r?void 0:r.delayedLeaveEventDelayMs)&&void 0!==e?e:8e3}get delayedLeaveEventRestartMs(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.delayedLeaveEventRestartMs)&&void 0!==e?e:5e3}get maximumRateLimitRetryCount(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.maximumRateLimitRetryCount)&&void 0!==e?e:10}get maximumNetworkErrorRetryCount(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.maximumNetworkErrorRetryCount)&&void 0!==e?e:10}get delayedLeaveEventRestartLocalTimeoutMs(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.delayedLeaveEventRestartLocalTimeoutMs)&&void 0!==e?e:2e3}get useRtcMemberFormat(){var e,t;return null!==(e=null===(t=this.joinConfig)||void 0===t?void 0:t.useRtcMemberFormat)&&void 0!==e&&e}async membershipLoopHandler(e){switch(e){case _.SendDelayedEvent:return this.state.delayId?this.cancelKnownDelayIdBeforeSendDelayedEvent(this.state.delayId):this.sendOrResendDelayedLeaveEvent();case _.RestartDelayedEvent:return this.state.delayId?this.restartDelayedEvent(this.state.delayId):w(_.SendDelayedEvent);case _.SendScheduledDelayedLeaveEvent:return this.state.hasMemberStateEvent?this.state.delayId?this.sendScheduledDelayedLeaveEventOrFallbackToSendLeaveEvent(this.state.delayId):w(_.SendLeaveEvent):{replace:[]};case _.SendJoinEvent:return this.sendJoinEvent();case _.UpdateExpiry:return this.updateExpiryOnJoinedEvent();case _.SendLeaveEvent:return this.state.hasMemberStateEvent?this.sendFallbackLeaveEvent():{replace:[]}}}async sendOrResendDelayedLeaveEvent(){return await this.client._unstable_sendDelayedStateEvent(this.room.roomId,{delay:this.delayedLeaveEventDelayMs},this.useRtcMemberFormat?i.Bx.RTCMembership:i.Bx.GroupCallMemberPrefix,{},this.memberId).then(e=>(this.state.expectedServerDelayLeaveTs=Date.now()+this.delayedLeaveEventDelayMs,this.setAndEmitProbablyLeft(!1),this.resetRateLimitCounter(_.SendDelayedEvent),this.state.delayId=e.delay_id,this.state.hasMemberStateEvent?w(_.RestartDelayedEvent,this.delayedLeaveEventRestartMs):w(_.SendJoinEvent))).catch(e=>{const t=_.SendDelayedEvent;if(this.manageMaxDelayExceededSituation(e))return w(t);const r=this.actionUpdateFromErrors(e,t,"sendDelayedStateEvent");if(r)return r;if(this.state.hasMemberStateEvent){if(this.isUnsupportedDelayedEndpoint(e))return{};throw Error("Could not send delayed event, even though delayed events are supported. "+e)}return this.isUnsupportedDelayedEndpoint(e)?this.logger.info("Not using delayed event because the endpoint is not supported"):this.logger.info("Not using delayed event because: "+e),w(_.SendJoinEvent)})}async cancelKnownDelayIdBeforeSendDelayedEvent(e){return await this.client._unstable_updateDelayedEvent(e,o.e.Cancel).then(()=>(this.state.delayId=void 0,this.resetRateLimitCounter(_.SendDelayedEvent),E(_.SendDelayedEvent))).catch(e=>{const t=_.SendDelayedEvent,r=this.actionUpdateFromErrors(e,t,"updateDelayedEvent");if(r)return r;if(this.isNotFoundError(e))return this.state.delayId=void 0,E(t);if(this.isUnsupportedDelayedEndpoint(e))return E(_.SendJoinEvent);throw Error("We failed to cancel a delayed event where we already had a delay id with an error we cannot automatically handle")})}setAndEmitProbablyLeft(e){this.state.probablyLeft!==e&&(this.state.probablyLeft=e,this.emit(f.e.ProbablyLeft,this.state.probablyLeft))}async restartDelayedEvent(e){const t=this.state.expectedServerDelayLeaveTs?this.state.expectedServerDelayLeaveTs-Date.now():void 0,r=new Promise((e,r)=>{setTimeout(()=>{r(new s.lc("Restart delayed event timed out before the HS responded"))},void 0===t||this.state.probablyLeft?this.delayedLeaveEventRestartLocalTimeoutMs:Math.min(this.delayedLeaveEventRestartLocalTimeoutMs,t))});return await Promise.race([this.client._unstable_updateDelayedEvent(e,o.e.Restart),r]).then(()=>(this.state.expectedServerDelayLeaveTs=Date.now()+this.delayedLeaveEventDelayMs,this.resetRateLimitCounter(_.RestartDelayedEvent),this.setAndEmitProbablyLeft(!1),w(_.RestartDelayedEvent,this.delayedLeaveEventRestartMs))).catch(e=>{this.state.expectedServerDelayLeaveTs&&this.state.expectedServerDelayLeaveTs<=Date.now()&&this.setAndEmitProbablyLeft(!0);const t=_.RestartDelayedEvent;if(this.isNotFoundError(e))return this.state.delayId=void 0,w(_.SendDelayedEvent);if(this.isUnsupportedDelayedEndpoint(e))return{};const r=this.actionUpdateFromErrors(e,t,"updateDelayedEvent");if(r)return r;throw Error("Could not restart delayed event, even though delayed events are supported. "+e)})}async sendScheduledDelayedLeaveEventOrFallbackToSendLeaveEvent(e){return await this.client._unstable_updateDelayedEvent(e,o.e.Send).then(()=>(this.state.hasMemberStateEvent=!1,this.resetRateLimitCounter(_.SendScheduledDelayedLeaveEvent),{replace:[]})).catch(e=>{const t=_.SendLeaveEvent;if(this.isUnsupportedDelayedEndpoint(e))return{};if(this.isNotFoundError(e))return this.state.delayId=void 0,w(t);const r=this.actionUpdateFromErrors(e,t,"updateDelayedEvent");return r||(this.logger.warn("Encountered unexpected error during SendScheduledDelayedLeaveEvent. Falling back to SendLeaveEvent",e),w(t))})}async sendJoinEvent(){return await this.client.sendStateEvent(this.room.roomId,this.useRtcMemberFormat?i.Bx.RTCMembership:i.Bx.GroupCallMemberPrefix,this.makeMyMembership(this.membershipEventExpiryMs),this.memberId).then(()=>{this.setAndEmitProbablyLeft(!1),this.state.startTime=Date.now(),this.state.expireUpdateIterations=1,this.state.hasMemberStateEvent=!0,this.resetRateLimitCounter(_.SendJoinEvent);return{replace:[...this.scheduler.actions.filter(e=>e.type!==_.UpdateExpiry&&e.type!==_.SendJoinEvent),{ts:Date.now(),type:_.RestartDelayedEvent},{ts:this.computeNextExpiryActionTs(this.state.expireUpdateIterations),type:_.UpdateExpiry}]}}).catch(e=>{const t=this.actionUpdateFromErrors(e,_.SendJoinEvent,"sendStateEvent");if(t)return t;throw e})}async updateExpiryOnJoinedEvent(){const e=this.state.expireUpdateIterations+1;return await this.client.sendStateEvent(this.room.roomId,this.useRtcMemberFormat?i.Bx.RTCMembership:i.Bx.GroupCallMemberPrefix,this.makeMyMembership(this.membershipEventExpiryMs*e),this.memberId).then(()=>(this.resetRateLimitCounter(_.UpdateExpiry),this.state.expireUpdateIterations=e,{insert:[{ts:this.computeNextExpiryActionTs(e),type:_.UpdateExpiry}]})).catch(e=>{const t=this.actionUpdateFromErrors(e,_.UpdateExpiry,"sendStateEvent");if(t)return t;throw e})}async sendFallbackLeaveEvent(){return await this.client.sendStateEvent(this.room.roomId,this.useRtcMemberFormat?i.Bx.RTCMembership:i.Bx.GroupCallMemberPrefix,{},this.memberId).then(()=>(this.resetRateLimitCounter(_.SendLeaveEvent),this.state.hasMemberStateEvent=!1,{replace:[]})).catch(e=>{const t=this.actionUpdateFromErrors(e,_.SendLeaveEvent,"sendStateEvent");if(t)return t;throw e})}makeMembershipStateKey(e,t){const r=`${e}_${t}_${this.slotDescription.application}${this.slotDescription.id}`;return/^org\.matrix\.msc(3757|3779)\b/.exec(this.room.getVersion())?r:`_${r}`}makeMyMembership(e){const t=this.ownMembership;if(this.useRtcMemberFormat){const e=null!=t&&t.eventId?{"m.relation":{rel_type:i.zZ.Reference,event_id:null==t?void 0:t.eventId}}:{};return y({application:y({type:this.slotDescription.application},this.callIntent?{"m.call.intent":this.callIntent}:{}),slot_id:(0,u.D1)(this.slotDescription),rtc_transports:this.rtcTransport?[this.rtcTransport]:[],member:{device_id:this.deviceId,user_id:this.client.getUserId(),id:this.memberId},versions:[]},e)}{var r,n;const s=void 0===this.rtcTransport?{focus_active:{type:"livekit",focus_selection:"oldest_membership"},foci_preferred:null!==(r=this.fociPreferred)&&void 0!==r?r:[]}:{focus_active:{type:"livekit",focus_selection:"multi_sfu"},foci_preferred:[this.rtcTransport,...null!==(n=this.fociPreferred)&&void 0!==n?n:[]]};return y(y({application:this.slotDescription.application,call_id:this.slotDescription.id,scope:"m.room",device_id:this.deviceId,expires:e,"m.call.intent":this.callIntent},s),void 0!==t?{created_ts:t.createdTs()}:void 0)}}isNotFoundError(e){return e instanceof a.up&&"M_NOT_FOUND"===e.errcode}manageMaxDelayExceededSituation(e){if(e instanceof a.up&&"M_UNKNOWN"===e.errcode&&"M_MAX_DELAY_EXCEEDED"===e.data["org.matrix.msc4140.errcode"]){const t=e.data["org.matrix.msc4140.max_delay"];return"number"==typeof t&&this.delayedLeaveEventDelayMs>t&&(this.delayedLeaveEventDelayMsOverride=t),this.logger.warn("Retry sending delayed disconnection event due to server timeout limitations:",e),!0}return!1}actionUpdateFromErrors(e,t,r){const n=this.actionUpdateFromRateLimitError(e,r,t);if(n)return n;const s=this.actionUpdateFromNetworkErrorRetry(e,t);return s||void 0}actionUpdateFromRateLimitError(e,t,r){var n;if(!(e instanceof a.Hl||e instanceof a.up)||!e.isRateLimitError())return;const s=null!==(n=this.state.rateLimitRetries.get(r))&&void 0!==n?n:0;if(s<this.maximumRateLimitRetryCount){let t;const n=5e3;try{var i;t=null!==(i=e.getRetryAfterMs())&&void 0!==i?i:n,this.logger.info(`Rate limited by server, retrying in ${t}ms`)}catch(e){this.logger.warn(`Error while retrieving a rate-limit retry delay, retrying after default delay of ${n}`,e),t=n}return this.state.rateLimitRetries.set(r,s+1),w(r,t)}throw Error("Exceeded maximum retries for "+r+" attempts (client."+t+"): "+e)}actionUpdateFromNetworkErrorRetry(e,t){var r;const n=null!==(r=this.state.networkErrorRetries.get(t))&&void 0!==r?r:0,s=this.networkErrorRetryMs/1e3+"s",i="("+n+"/"+this.maximumNetworkErrorRetryCount+")";let o=this.networkErrorRetryMs;if(e instanceof Error&&"AbortError"===e.name)o=0,this.logger.warn("Network local timeout error while sending event, immediate retry ("+i+")",e);else if(e instanceof Error&&e.message.includes("updating delayed event"))this.logger.warn("delayed event update timeout error, retrying in "+s+" "+i,e);else if(e instanceof a.Rc)this.logger.warn("Network connection error while sending event, retrying in "+s+" "+i,e);else{if(!((e instanceof a.Hl||e instanceof a.up)&&"number"==typeof e.httpStatus&&e.httpStatus>=500&&e.httpStatus<600))return;this.logger.warn("Server error while sending event, retrying in "+s+" "+i,e)}if(n<this.maximumNetworkErrorRetryCount)return this.state.networkErrorRetries.set(t,n+1),w(t,o);throw Error("Reached maximum ("+this.maximumNetworkErrorRetryCount+") retries cause by: "+e)}isUnsupportedDelayedEndpoint(e){return e instanceof g.qK}resetRateLimitCounter(e){this.state.rateLimitRetries.set(e,0),this.state.networkErrorRetries.set(e,0)}get status(){const e=this.scheduler.actions;if(1===e.length){const{type:t}=e[0];switch(t){case _.SendDelayedEvent:case _.SendJoinEvent:return d.n.Connecting;case _.UpdateExpiry:return d.n.Connected;case _.SendScheduledDelayedLeaveEvent:case _.SendLeaveEvent:return d.n.Disconnecting}}else if(2===e.length){const t=e.map(e=>e.type);if((t.includes(_.RestartDelayedEvent)||t.includes(_.SendDelayedEvent)&&this.state.hasMemberStateEvent)&&t.includes(_.UpdateExpiry))return d.n.Connected}else if(3===e.length){const t=e.map(e=>e.type);if(2===t.filter(e=>e===_.RestartDelayedEvent).length&&t.includes(_.UpdateExpiry))return d.n.Connected}return this.scheduler.running?(this.logger.error("MembershipManager has an unknown state. Actions: ",e),d.n.Unknown):d.n.Disconnected}get probablyLeft(){return this.state.probablyLeft}}function w(e,t){return{insert:[{ts:Date.now()+(null!=t?t:0),type:e}]}}function E(e,t){return{replace:[{ts:Date.now()+(null!=t?t:0),type:e}]}}},"./node_modules/matrix-js-sdk/src/matrixrtc/RTCEncryptionManager.ts":(e,t,r)=>{"use strict";r.d(t,{a:()=>l});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/base64.ts"),i=r("./node_modules/matrix-js-sdk/src/matrixrtc/IKeyTransport.ts"),o=r("./node_modules/matrix-js-sdk/src/utils.ts"),a=r("./node_modules/matrix-js-sdk/src/matrixrtc/utils.ts"),c=r("./node_modules/matrix-js-sdk/src/matrixrtc/RoomAndToDeviceKeyTransport.ts");class l{constructor(e,t,r,i,o,c,l){(0,n.A)(this,"manageMediaKeys",!1),(0,n.A)(this,"participantKeyRings",new Map),(0,n.A)(this,"outboundSession",null),(0,n.A)(this,"currentKeyDistributionPromise",null),(0,n.A)(this,"useKeyDelay",5e3),(0,n.A)(this,"keyRotationGracePeriodMs",1e4),(0,n.A)(this,"needToEnsureKeyAgain",!1),(0,n.A)(this,"keyBuffer",new a.U),(0,n.A)(this,"logger",void 0),(0,n.A)(this,"onTransportChanged",()=>{var e;null===(e=this.logger)||void 0===e||e.info("Transport change detected, restarting key distribution"),this.currentKeyDistributionPromise?this.currentKeyDistributionPromise.then(()=>{this.outboundSession&&(this.outboundSession.sharedWith=[],this.ensureKeyDistribution())}).catch(e=>{var t;null===(t=this.logger)||void 0===t||t.error("Failed to restart key distribution",e)}):this.outboundSession&&(this.outboundSession.sharedWith=[],this.ensureKeyDistribution())}),(0,n.A)(this,"onNewKeyReceived",(e,t,r,n,i)=>{var o,c;if(!this.manageMediaKeys)return void(null===(c=this.logger)||void 0===c||c.warn(`Received key over transport ${e}:${t} at index ${n} but media keys are disabled`));null===(o=this.logger)||void 0===o||o.debug(`Received key over transport ${e}:${t} at index ${n}`);const l=(0,a.Z)(e,t),d={key:(0,s.y4)(r),participantId:l,keyIndex:n,creationTS:i};var u;this.keyBuffer.isOutdated(l,d)?null===(u=this.logger)||void 0===u||u.info(`Received an out of order key for ${e}:${t}, dropping it`):(this.addKeyToParticipant(d.key,d.keyIndex,d.participantId),this.statistics.counters.roomEventEncryptionKeysReceived+=1)}),this.userId=e,this.deviceId=t,this.getMemberships=r,this.transport=i,this.statistics=o,this.onEncryptionKeysChanged=c,this.logger=null==l?void 0:l.getChild("[EncryptionManager]")}getEncryptionKeys(){return new Map(this.participantKeyRings)}addKeyToParticipant(e,t,r){this.participantKeyRings.has(r)||this.participantKeyRings.set(r,[]),this.participantKeyRings.get(r).push({key:e,keyIndex:t}),this.onEncryptionKeysChanged(e,t,r)}join(e){var t,r,n,s;this.manageMediaKeys=null===(t=null==e?void 0:e.manageMediaKeys)||void 0===t||t,null===(r=this.logger)||void 0===r||r.info("Joining room"),this.useKeyDelay=null!==(n=null==e?void 0:e.useKeyDelay)&&void 0!==n?n:1e3,this.keyRotationGracePeriodMs=null!==(s=null==e?void 0:e.keyRotationGracePeriodMs)&&void 0!==s?s:1e4,this.transport.on(i.u.ReceivedKeys,this.onNewKeyReceived),this.transport instanceof c.t&&this.transport.on(c.V.EnabledTransportsChanged,this.onTransportChanged),this.transport.start()}leave(){this.transport.off(i.u.ReceivedKeys,this.onNewKeyReceived),this.transport.stop(),this.participantKeyRings.clear()}ensureKeyDistribution(){var e,t;this.manageMediaKeys&&(null==this.currentKeyDistributionPromise?(null===(e=this.logger)||void 0===e||e.debug("No active rollout, start a new one"),this.currentKeyDistributionPromise=this.rolloutOutboundKey().then(()=>{var e,t;(null===(e=this.logger)||void 0===e||e.debug("Rollout completed"),this.currentKeyDistributionPromise=null,this.needToEnsureKeyAgain)&&(null===(t=this.logger)||void 0===t||t.debug("New Rollout needed"),this.needToEnsureKeyAgain=!1,this.ensureKeyDistribution())})):(null===(t=this.logger)||void 0===t||t.debug("Rollout in progress, a new rollout will be started after the current one"),this.needToEnsureKeyAgain=!0))}onMembershipsUpdate(e=[]){var t;null===(t=this.logger)||void 0===t||t.trace("onMembershipsUpdate"),this.ensureKeyDistribution()}async rolloutOutboundKey(){var e,t;null==this.outboundSession&&(this.outboundSession={key:this.generateRandomKey(),creationTS:Date.now(),sharedWith:[],keyId:0},this.addKeyToParticipant(this.outboundSession.key,this.outboundSession.keyId,(0,a.Z)(this.userId,this.deviceId)));const r=this.getMemberships().filter(e=>null!=e.sender).map(e=>({userId:e.sender,deviceId:e.deviceId,membershipTs:e.createdTs()}));let n=null!==(e=null===(t=this.outboundSession)||void 0===t?void 0:t.sharedWith)&&void 0!==e?e:[];n=n.filter(e=>!r.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs!=t.membershipTs));const i=n.filter(e=>!r.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs==t.membershipTs)),c=r.filter(e=>!n.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs==t.membershipTs));let l,d=[],u=!1;if(i.length>0){const e=this.createNewOutboundSession();u=!0,d=r,l=e}else{if(!(c.length>0))return;{const e=Date.now()-this.outboundSession.creationTS;if(e<this.keyRotationGracePeriodMs){var h;null===(h=this.logger)||void 0===h||h.debug(`New joiners detected, but the key is recent enough (age:${e}), keeping it`),d=c,l=this.outboundSession}else{var p;null===(p=this.logger)||void 0===p||p.debug("New joiners detected, rotating the key");const e=this.createNewOutboundSession();u=!0,d=r,l=e}}}try{var m,g,f,v;if(null===(m=this.logger)||void 0===m||m.trace("Sending key..."),await this.transport.sendKey((0,s.WG)(l.key),l.keyId,d),this.statistics.counters.roomEventEncryptionKeysSent+=1,l.sharedWith.push(...d),null===(g=this.logger)||void 0===g||g.trace(`key index:${l.keyId} sent to ${l.sharedWith.map(e=>`${e.userId}:${e.deviceId}`).join(",")}`),u)null===(f=this.logger)||void 0===f||f.trace(`Delay Rollout for key:${l.keyId}...`),await(0,o.yy)(this.useKeyDelay),null===(v=this.logger)||void 0===v||v.trace(`...Delayed rollout of index:${l.keyId} `),this.addKeyToParticipant(l.key,l.keyId,(0,a.Z)(this.userId,this.deviceId))}catch(e){var y;null===(y=this.logger)||void 0===y||y.error("Failed to rollout key",e)}}createNewOutboundSession(){var e;const t={key:this.generateRandomKey(),creationTS:Date.now(),sharedWith:[],keyId:this.nextKeyIndex()};return null===(e=this.logger)||void 0===e||e.info(`creating new outbound key index:${t.keyId}`),this.outboundSession=t,t}nextKeyIndex(){return this.outboundSession?(this.outboundSession.keyId+1)%256:0}generateRandomKey(){const e=new Uint8Array(16);return globalThis.crypto.getRandomValues(e),e}}},"./node_modules/matrix-js-sdk/src/matrixrtc/RoomAndToDeviceKeyTransport.ts":(e,t,r)=>{"use strict";r.d(t,{V:()=>c,t:()=>l});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/logger.ts"),i=r("./node_modules/matrix-js-sdk/src/matrixrtc/IKeyTransport.ts"),o=r("./node_modules/matrix-js-sdk/src/matrixrtc/ToDeviceKeyTransport.ts"),a=r("./node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts");let c=function(e){return e.EnabledTransportsChanged="enabled_transports_changed",e}({});class l extends a.X{constructor(e,t,r){super(),(0,n.A)(this,"logger",void 0),(0,n.A)(this,"_enabled",{toDevice:!0,room:!1}),this.toDeviceTransport=e,this.roomKeyTransport=t,this.logger=(null!=r?r:s.vF).getChild("[RoomAndToDeviceTransport]"),this.toDeviceTransport.setParentLogger(this.logger),this.roomKeyTransport.setParentLogger(this.logger),this.roomKeyTransport.on(i.u.ReceivedKeys,(...e)=>{this._enabled.room||(this.logger.debug("Received room key, enabling room key transport, disabling toDevice transport"),this.setEnabled({toDevice:!1,room:!0})),this.emit(i.u.ReceivedKeys,...e)}),this.toDeviceTransport.on(i.u.ReceivedKeys,(...e)=>{this._enabled.toDevice?this.emit(i.u.ReceivedKeys,...e):this.logger.debug("To Device transport is disabled, ignoring received keys")})}setEnabled(e){this.enabled.toDevice===e.toDevice&&this.enabled.room===e.room||(this._enabled=e,this.emit(c.EnabledTransportsChanged,e))}get enabled(){return this._enabled}start(){this.roomKeyTransport.start(),this.toDeviceTransport.start()}stop(){this.roomKeyTransport.stop(),this.toDeviceTransport.stop()}async sendKey(e,t,r){if(this.logger.debug(`Sending key with index ${t} to call members (count=${r.length}) via:`+(this._enabled.room?"room transport":"")+(this._enabled.room&&this._enabled.toDevice?"and":"")+(this._enabled.toDevice?"to device transport":"")),this._enabled.room&&await this.roomKeyTransport.sendKey(e,t,r),this._enabled.toDevice)try{await this.toDeviceTransport.sendKey(e,t,r)}catch(n){n instanceof o.E&&!this._enabled.room&&(this.logger.warn("To device is not supported enabling room key transport, disabling toDevice transport"),this.setEnabled({toDevice:!1,room:!0}),await this.sendKey(e,t,r))}}}},"./node_modules/matrix-js-sdk/src/matrixrtc/RoomKeyTransport.ts":(e,t,r)=>{"use strict";r.d(t,{a:()=>l});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/@types/event.ts"),i=r("./node_modules/matrix-js-sdk/src/logger.ts"),o=r("./node_modules/matrix-js-sdk/src/matrixrtc/IKeyTransport.ts"),a=r("./node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts"),c=r("./node_modules/matrix-js-sdk/src/models/room.ts");class l extends a.X{setParentLogger(e){this.logger=e.getChild("[RoomKeyTransport]")}constructor(e,t,r,s){super(),(0,n.A)(this,"logger",i.vF),this.room=e,this.client=t,this.statistics=r,this.setParentLogger(null!=s?s:i.vF)}start(){this.room.on(c.u9.Timeline,e=>{this.consumeCallEncryptionEvent(e)})}stop(){this.room.off(c.u9.Timeline,e=>{this.consumeCallEncryptionEvent(e)})}async consumeCallEncryptionEvent(e,t=!1){if(await this.client.decryptEventIfNeeded(e),!e.isDecryptionFailure())return t&&this.logger.info(`Decryption succeeded for event ${e.getId()} after retry`),e.getType()!==s.Bx.CallEncryptionKeysPrefix?Promise.resolve():this.room?void this.onEncryptionEvent(e):(this.logger.error(`Got room state event for unknown room ${e.getRoomId()}!`),Promise.resolve());t?this.logger.warn(`Decryption failed for event ${e.getId()}: ${e.decryptionFailureReason}`):(this.logger.warn(`Decryption failed for event ${e.getId()}: ${e.decryptionFailureReason} will retry once only`),setTimeout(()=>{this.consumeCallEncryptionEvent(e,!0)},1e3))}async sendKey(e,t,r){const n={keys:[{index:t,key:e}],device_id:this.client.getDeviceId(),call_id:"",sent_ts:Date.now()};try{await this.client.sendEvent(this.room.roomId,s.Bx.CallEncryptionKeysPrefix,n)}catch(e){this.logger.error("Failed to send call encryption keys",e);const t=e;throw t.event&&this.client.cancelPendingEvent(t.event),e}}onEncryptionEvent(e){const t=e.getSender(),r=e.getContent(),n=r.device_id,s=r.call_id;if(!t)return void this.logger.warn(`Received m.call.encryption_keys with no userId: callId=${s}`);if(""!==s)return void this.logger.warn(`Received m.call.encryption_keys with unsupported callId: userId=${t}, deviceId=${n}, callId=${s}`);if(!Array.isArray(r.keys))return void this.logger.warn(`Received m.call.encryption_keys where keys wasn't an array: callId=${s}`);if(t===this.client.getUserId()&&n===this.client.getDeviceId())return void this.logger.info("Ignoring our own keys event");this.statistics.counters.roomEventEncryptionKeysReceived+=1;const i=Date.now()-("number"==typeof r.sent_ts?r.sent_ts:e.getTs());this.statistics.totals.roomEventEncryptionKeysReceivedTotalAge+=i;for(const a of r.keys){if(!a){this.logger.info("Ignoring false-y key in keys event");continue}const r=a.key,c=a.index;r&&null!=c&&null!=s&&"string"==typeof n&&"string"==typeof s&&"string"==typeof r&&"number"==typeof c?(this.logger.debug(`onCallEncryption userId=${t}:${n} encryptionKeyIndex=${c} age=${i}ms`),this.emit(o.u.ReceivedKeys,t,n,r,c,e.getTs())):this.logger.warn(`Malformed call encryption_key: userId=${t}, deviceId=${n}, encryptionKeyIndex=${c} callId=${s}`)}}}},"./node_modules/matrix-js-sdk/src/matrixrtc/ToDeviceKeyTransport.ts":(e,t,r)=>{"use strict";r.d(t,{E:()=>l,i:()=>d});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts"),i=r("./node_modules/matrix-js-sdk/src/matrixrtc/IKeyTransport.ts"),o=r("./node_modules/matrix-js-sdk/src/logger.ts"),a=r("./node_modules/matrix-js-sdk/src/client.ts"),c=r("./node_modules/matrix-js-sdk/src/@types/event.ts");class l extends Error{constructor(e){super(e)}get name(){return"NotSupportedError"}}class d extends s.X{setParentLogger(e){this.logger=e.getChild("[ToDeviceKeyTransport]")}constructor(e,t,r,s,i,a){super(),(0,n.A)(this,"logger",o.vF),(0,n.A)(this,"onToDeviceEvent",e=>{if(e.getType()!==c.Bx.CallEncryptionKeysPrefix)return;const t=this.getValidEventContent(e);t&&e.getSender()&&this.receiveCallKeyEvent(e.getSender(),t)}),this.userId=e,this.deviceId=t,this.roomId=r,this.client=s,this.statistics=i,this.setParentLogger(null!=a?a:o.vF)}start(){this.client.on(a.AU.ToDeviceEvent,this.onToDeviceEvent)}stop(){this.client.off(a.AU.ToDeviceEvent,this.onToDeviceEvent)}async sendKey(e,t,r){const n={keys:{index:t,key:e},room_id:this.roomId,member:{claimed_device_id:this.deviceId},session:{call_id:"",application:"m.call",scope:"m.room"},sent_ts:Date.now()},s=r.map(e=>({userId:e.userId,deviceId:e.deviceId})).filter(e=>!(e.userId==this.userId&&e.deviceId==this.deviceId));s.length>0?(await this.client.encryptAndSendToDevice(c.Bx.CallEncryptionKeysPrefix,s,n).catch(e=>{const t=e.message;if(t.includes("unknown variant")&&t.includes("send_to_device")||t.includes("not supported"))throw new l("The widget driver does not support to-device encryption")}),this.statistics.counters.roomEventEncryptionKeysSent+=1):this.logger.warn("No targets found for sending key")}receiveCallKeyEvent(e,t){this.statistics.counters.roomEventEncryptionKeysReceived+=1;const r=Date.now(),n=r-("number"==typeof t.sent_ts?t.sent_ts:r);this.statistics.totals.roomEventEncryptionKeysReceivedTotalAge+=n,this.emit(i.u.ReceivedKeys,e,t.member.claimed_device_id,t.keys.key,t.keys.index,r)}getValidEventContent(e){const t=e.getContent(),r=t.room_id;if(r)if(r===this.roomId)if(t.keys&&t.keys.key&&"number"==typeof t.keys.index){if(t.member&&t.member.claimed_device_id)return t;this.logger.warn("Malformed Event: Missing claimed_device_id")}else this.logger.warn("Malformed Event: Missing keys field");else this.logger.warn("Malformed Event: Mismatch roomId");else this.logger.warn("Malformed Event: invalid call encryption keys event, no roomId")}}},"./node_modules/matrix-js-sdk/src/matrixrtc/utils.ts":(e,t,r)=>{"use strict";r.d(t,{U:()=>s,Z:()=>i});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class s{constructor(){(0,n.A)(this,"tsBuffer",new Map)}isOutdated(e,t){var r;this.tsBuffer.has(e)||this.tsBuffer.set(e,new Map);const n=null===(r=this.tsBuffer.get(e))||void 0===r?void 0:r.get(t.keyIndex);return!!(n&&n>t.creationTS)||(this.tsBuffer.get(e).set(t.keyIndex,t.creationTS),!1)}}function i(e,t){return`${e}:${t}`}},"./node_modules/matrix-js-sdk/src/models/MSC3089TreeSpace.ts":(e,t,r)=>{"use strict";r.d(t,{mG:()=>g,wZ:()=>v});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/@types/event.ts"),i=r("./node_modules/matrix-js-sdk/src/logger.ts"),o=r("./node_modules/matrix-js-sdk/src/utils.ts"),a=r("./node_modules/matrix-js-sdk/src/models/event-timeline.ts");function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}class d{constructor(e,t,r){this.client=e,this.indexEvent=t,this.directory=r}get id(){const e=this.indexEvent.getStateKey();if(!e)throw new Error("State key not found for branch");return e}get isActive(){return!0===this.indexEvent.getContent().active}get version(){var e;return null!==(e=this.indexEvent.getContent().version)&&void 0!==e?e:1}get roomId(){return this.indexEvent.getRoomId()}async delete(){await this.client.sendStateEvent(this.roomId,s.iK.name,{},this.id),await this.client.redactEvent(this.roomId,this.id);const e=(await this.getVersionHistory())[1];e&&await e.delete()}getName(){return this.indexEvent.getContent().name||"Unnamed File"}async setName(e){await this.client.sendStateEvent(this.roomId,s.iK.name,l(l({},this.indexEvent.getContent()),{},{name:e}),this.id)}isLocked(){return this.indexEvent.getContent().locked||!1}async setLocked(e){await this.client.sendStateEvent(this.roomId,s.iK.name,l(l({},this.indexEvent.getContent()),{},{locked:e}),this.id)}async getFileInfo(){const e=(await this.getFileEvent()).getOriginalContent().file,t=this.client.mxcUrlToHttp(e.url);if(!t)throw new Error(`No HTTP URL available for ${e.url}`);return{info:e,httpUrl:t}}async getFileEvent(){const e=this.client.getRoom(this.roomId);if(!e)throw new Error("Unknown room");let t=e.getUnfilteredTimelineSet().findEventById(this.id);for(;!t&&e.getLiveTimeline().getState(a.q.BACKWARDS).paginationToken;)await this.client.scrollback(e,100),t=e.getUnfilteredTimelineSet().findEventById(this.id);if(!t)throw new Error("Failed to find event");return await this.client.decryptEventIfNeeded(t),t}async createNewVersion(e,t,r,n){const i=await this.directory.createFile(e,t,r,l(l({},null!=n?n:{}),{},{"m.new_content":!0,"m.relates_to":{rel_type:s.zZ.Replace,event_id:this.id}}));return await this.client.sendStateEvent(this.roomId,s.iK.name,{active:!0,name:e,version:this.version+1},i.event_id),await this.client.sendStateEvent(this.roomId,s.iK.name,l(l({},this.indexEvent.getContent()),{},{active:!1}),this.id),i}async getVersionHistory(){const e=[];e.push(this);const t=this.client.getRoom(this.roomId);if(!t)throw new Error("Invalid or unknown room");const r=[...t.getLiveTimeline().getEvents()].reverse();let n,s=await this.getFileEvent();do{if(n=r.find(e=>e.replacingEventId()===s.getId()),n){const t=this.directory.getFile(n.getId());if(!t)break;e.push(t),s=n}}while(n);return e}}var u=r("./node_modules/matrix-js-sdk/src/http-api/index.ts"),h=r("./node_modules/matrix-js-sdk/src/@types/membership.ts");function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}const g={invite:100,kick:100,ban:100,redact:50,state_default:50,events_default:50,users_default:0,events:{[s.Bx.RoomPowerLevels]:100,[s.Bx.RoomHistoryVisibility]:100,[s.Bx.RoomTombstone]:100,[s.Bx.RoomEncryption]:100,[s.Bx.RoomName]:50,[s.Bx.RoomMessage]:50,[s.Bx.RoomMessageEncrypted]:50,[s.Bx.Sticker]:50},users:{}};let f=function(e){return e.Viewer="viewer",e.Editor="editor",e.Owner="owner",e}({});class v{constructor(e,t){if((0,n.A)(this,"room",void 0),this.client=e,this.roomId=t,this.room=this.client.getRoom(this.roomId),!this.room)throw new Error("Unknown room")}get id(){return this.roomId}get isTopLevel(){const e=this.room.currentState.getStateEvents(s.Bx.SpaceParent);return null==e||!e.length||e.every(e=>{var t;return!(null!==(t=e.getContent())&&void 0!==t&&t.via)})}async setName(e){await this.client.sendStateEvent(this.roomId,s.Bx.RoomName,{name:e},"")}async invite(e,t=!0){const r=[this.retryInvite(e)];t&&r.push(...this.getDirectories().map(r=>r.invite(e,t))),await Promise.all(r)}async retryInvite(e){await(0,o.CC)(()=>this.client.invite(this.roomId,e),e=>!(e instanceof u.up&&"M_FORBIDDEN"===e.errcode))}async setPermissions(e,t){var r;const n=this.room.currentState.getStateEvents(s.Bx.RoomPowerLevels,"");if(Array.isArray(n))throw new Error("Unexpected return type for power levels");const i=(null==n?void 0:n.getContent())||{},o=i.users_default||0,a=i.events_default||50,c=(null===(r=i.events)||void 0===r?void 0:r[s.Bx.RoomPowerLevels])||100,l=i.users||{};switch(t){case f.Viewer:l[e]=o;break;case f.Editor:l[e]=a;break;case f.Owner:l[e]=c;break;default:throw new Error("Invalid role: "+t)}i.users=l,await this.client.sendStateEvent(this.roomId,s.Bx.RoomPowerLevels,i,"")}getPermissions(e){var t,r;const n=this.room.currentState.getStateEvents(s.Bx.RoomPowerLevels,"");if(Array.isArray(n))throw new Error("Unexpected return type for power levels");const i=(null==n?void 0:n.getContent())||{},o=i.users_default||0,a=i.events_default||50,c=(null===(t=i.events)||void 0===t?void 0:t[s.Bx.RoomPowerLevels])||100,l=(null===(r=i.users)||void 0===r?void 0:r[e])||o;return l>=c?f.Owner:l>=a?f.Editor:f.Viewer}async createDirectory(e){const t=await this.client.unstableCreateFileTree(e);return await this.client.sendStateEvent(this.roomId,s.Bx.SpaceChild,{via:[this.client.getDomain()]},t.roomId),await this.client.sendStateEvent(t.roomId,s.Bx.SpaceParent,{via:[this.client.getDomain()]},this.roomId),t}getDirectories(){const e=[],t=this.room.currentState.getStateEvents(s.Bx.SpaceChild);for(const r of t)try{const t=r.getStateKey();if(t){const r=this.client.unstableGetFileTreeSpace(t);r&&e.push(r)}}catch(e){i.vF.warn("Unable to create tree space instance for listing. Are we joined?",e)}return e}getDirectory(e){return this.getDirectories().find(t=>t.roomId===e)}async delete(){const e=this.getDirectories();for(const t of e)await t.delete();const t=[h.O.Invite,h.O.Knock,h.O.Join],r=this.room.currentState.getStateEvents(s.Bx.RoomMember);for(const e of r){if(e.getStateKey()!==this.client.getUserId()&&t.includes(e.getContent().membership)){const t=e.getStateKey();if(!t)throw new Error("State key not found for branch");await this.client.kick(this.roomId,t,"Room deleted")}}await this.client.leave(this.roomId)}getOrderedChildren(e){const t=e.map(e=>({roomId:e.getStateKey(),order:e.getContent().order})).filter(e=>e.roomId);return t.sort((e,t)=>{if(e.order&&!t.order)return-1;if(!e.order&&t.order)return 1;if(e.order||t.order)return(0,o.aw)(e.order,t.order);{var r,n,i,a;const c=this.client.getRoom(e.roomId),l=this.client.getRoom(t.roomId);if(!c||!l)return(0,o.aw)(e.roomId,t.roomId);const d=null!==(r=null===(n=c.currentState.getStateEvents(s.Bx.RoomCreate,""))||void 0===n?void 0:n.getTs())&&void 0!==r?r:0,u=null!==(i=null===(a=l.currentState.getStateEvents(s.Bx.RoomCreate,""))||void 0===a?void 0:a.getTs())&&void 0!==i?i:0;return d===u?(0,o.aw)(e.roomId,t.roomId):d-u}}),t}getParentRoom(){const e=this.room.currentState.getStateEvents(s.Bx.SpaceParent)[0];if(!e)throw new Error("Expected to have a parent in a non-top level space");const t=e.getStateKey();if(!t)throw new Error("No state key found for parent");const r=this.client.getRoom(t);if(!r)throw new Error("Unable to locate room for parent");return r}getOrder(){if(this.isTopLevel)return-1;const e=this.getParentRoom().currentState.getStateEvents(s.Bx.SpaceChild);return this.getOrderedChildren(e).findIndex(e=>e.roomId===this.roomId)}async setOrder(e){var t;if(this.isTopLevel)throw new Error("Cannot set order of top level spaces currently");const r=this.getParentRoom(),n=r.currentState.getStateEvents(s.Bx.SpaceChild),i=this.getOrderedChildren(n);e=Math.max(Math.min(e,i.length-1),0);const a=this.getOrder()<e;a&&e===i.length-1?e--:a||0!==e||e++;const c=i[a?e:e-1],l=i[a?e+1:e];let d=o.Mf[0],u=!1;if(c)if(e===i.length-1)null!=l&&l.order&&(d=(0,o.$9)(l.order));else{const e=null==c?void 0:c.order,t=null==l?void 0:l.order;e&&t?d=e===t?(0,o.$9)(e):(0,o.sy)(e,t):e?d=(0,o.$9)(e):t?d=(0,o.zR)(t):u=!0}else null!=l&&l.order&&(d=(0,o.zR)(l.order));if(u){let t;for(let n=0;n<=e;n++){const e=i[n];if(0===n&&(t=e.order),e.order)t=e.order;else{var h;t=t?(0,o.$9)(t):o.Mf[0];const n=r.currentState.getStateEvents(s.Bx.SpaceChild,e.roomId),i=null!==(h=null==n?void 0:n.getContent())&&void 0!==h?h:{via:[this.client.getDomain()]};await this.client.sendStateEvent(r.roomId,s.Bx.SpaceChild,m(m({},i),{},{order:t}),e.roomId)}}t&&(d=(0,o.$9)(t))}const p=r.currentState.getStateEvents(s.Bx.SpaceChild,this.roomId),g=null!==(t=null==p?void 0:p.getContent())&&void 0!==t?t:{via:[this.client.getDomain()]};await this.client.sendStateEvent(r.roomId,s.Bx.SpaceChild,m(m({},g),{},{order:d}),this.roomId)}async createFile(e,t,r,n){const{content_uri:i}=await this.client.uploadContent(t,{includeFilename:!1});r.url=i;const o={msgtype:s.Wr.File,body:e,url:i,file:r};(n=null!=n?n:{})["m.new_content"]&&(n["m.new_content"]=o);const a=await this.client.sendMessage(this.roomId,m(m(m({},n),o),{},{[s.ID.name]:{}}));return await this.client.sendStateEvent(this.roomId,s.iK.name,{active:!0,name:e},a.event_id),a}getFile(e){const t=this.room.currentState.getStateEvents(s.iK.name,e);return t?new d(this.client,t,this):null}listFiles(){return this.listAllFiles().filter(e=>e.isActive)}listAllFiles(){var e;return(null!==(e=this.room.currentState.getStateEvents(s.iK.name))&&void 0!==e?e:[]).map(e=>new d(this.client,e,this))}}},"./node_modules/matrix-js-sdk/src/models/compare-event-ordering.ts":(e,t,r)=>{"use strict";r.d(t,{s:()=>s});var n=r("./node_modules/matrix-js-sdk/src/client.ts");function s(e,t,r){const s=e.findEventById(t),o=e.findEventById(r);if(!s||!o)return null;const a=(0,n.fN)(s),c=(0,n.fN)(o);return a&&c?function(e,t,r,n,s){const o=e.getUnfilteredTimelineSet(),a=o.compareEventOrdering(t,r);if(null!==a)return a;const c=o.getTimelineForEvent(t);if(c===o.getLiveTimeline())return 1;const l=o.getTimelineForEvent(r);if(l===o.getLiveTimeline())return-1;return i(n,s)}(e,t,r,s,o):function(e,t,r,s){const o=(0,n.Xb)(r),a=(0,n.Xb)(s),c=r.getThread();return c&&o===a?c.timelineSet.compareEventOrdering(e,t):i(r,s)}(t,r,s,o)}function i(e,t){const r=e.getTs(),n=t.getTs();return r<n?-1:r>n?1:0}},"./node_modules/matrix-js-sdk/src/models/event-context.ts":(e,t,r)=>{"use strict";r.d(t,{y:()=>i});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/models/event-timeline.ts");class i{constructor(e){(0,n.A)(this,"timeline",void 0),(0,n.A)(this,"ourEventIndex",0),(0,n.A)(this,"paginateTokens",{[s.O.Backward]:null,[s.O.Forward]:null}),this.ourEvent=e,this.timeline=[e]}getEvent(){return this.timeline[this.ourEventIndex]}getTimeline(){return this.timeline}getOurEventIndex(){return this.ourEventIndex}getPaginateToken(e=!1){return this.paginateTokens[e?s.O.Backward:s.O.Forward]}setPaginateToken(e,t=!1){this.paginateTokens[t?s.O.Backward:s.O.Forward]=null!=e?e:null}addEvents(e,t=!1){t?(this.timeline=e.concat(this.timeline),this.ourEventIndex+=e.length):this.timeline=this.timeline.concat(e)}}},"./node_modules/matrix-js-sdk/src/models/event-status.ts":(e,t,r)=>{"use strict";r.d(t,{f:()=>n});let n=function(e){return e.NOT_SENT="not_sent",e.ENCRYPTING="encrypting",e.SENDING="sending",e.QUEUED="queued",e.SENT="sent",e.CANCELLED="cancelled",e}({})},"./node_modules/matrix-js-sdk/src/models/invites-ignorer-types.ts":(e,t,r)=>{"use strict";r.d(t,{Jo:()=>a,NG:()=>i,Q5:()=>o,fx:()=>s});var n=r("./node_modules/matrix-events-sdk/lib/index.js");const s=new n.UnstableValue("m.policies","org.matrix.msc3847.policies"),i=new n.UnstableValue("m.ignore.invites","org.matrix.msc3847.ignore.invites");let o=function(e){return e.Ban="m.ban",e}({}),a=function(e){return e.User="m.policy.user",e.Room="m.policy.room",e.Server="m.policy.server",e}({})},"./node_modules/matrix-js-sdk/src/models/read-receipt.ts":(e,t,r)=>{"use strict";r.d(t,{D:()=>m,h:()=>g});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/@types/read_receipts.ts"),i=r("./node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts"),o=r("./node_modules/matrix-js-sdk/src/utils.ts"),a=r("./node_modules/matrix-js-sdk/src/models/event.ts"),c=r("./node_modules/matrix-js-sdk/src/@types/event.ts"),l=r("./node_modules/matrix-js-sdk/src/models/room.ts"),d=r("./node_modules/matrix-js-sdk/src/logger.ts"),u=r("./node_modules/matrix-js-sdk/src/client.ts");function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function m(e,t,r,n=!1){return new a.kl({content:{[t.getId()]:{[r]:{[e]:p({ts:t.getTs()},!n&&{thread_id:(0,u.Xb)(t)})}}},type:c.Bx.Receipt,room_id:t.getRoomId()})}class g extends i.X{constructor(...e){super(...e),(0,n.A)(this,"receipts",new o.kG(()=>new Map)),(0,n.A)(this,"receiptCacheByEventId",new Map)}getReadReceiptForUserId(e,t=!1,r=s.L.Read){var n,i;const[o,a]=null!==(n=null===(i=this.receipts.get(r))||void 0===i?void 0:i.get(e))&&void 0!==n?n:[null,null];return t?o:null!=a?a:o}compareReceipts(e,t){var r;return null!==(r=this.getUnfilteredTimelineSet().compareEventOrdering(e.eventId,t.eventId))&&void 0!==r?r:e.data.ts-t.data.ts}getEventReadUpTo(e,t=!1){const r=this.getLatestReceipt(e,t);return r&&this.receiptPointsAtConsistentEvent(r)?r.eventId:null}receiptPointsAtConsistentEvent(e){var t;const r=this.findEventById(e.eventId);if(!r)return!1;if(null===(t=e.data)||void 0===t||!t.thread_id)return!0;if(e.data.thread_id===s.S){if((0,u.fN)(r))return!0}else if(r.threadRootId===e.data.thread_id)return!0;return d.vF.warn(`Ignoring receipt because its thread_id (${e.data.thread_id}) disagrees with the thread root (${r.threadRootId}) of the referenced event (event ID = ${e.eventId})`),!1}getLatestReceipt(e,t){var r,n;const i=this.getReadReceiptForUserId(e,t,s.L.Read),o=this.getReadReceiptForUserId(e,t,s.L.ReadPrivate);let a;return null!=i&&i.eventId&&null!=o&&o.eventId&&(a=this.compareReceipts(i,o)),a?null!==(n=a<0?o:i)&&void 0!==n?n:null:null!==(r=null!=o?o:i)&&void 0!==r?r:null}addReceiptToStructure(e,t,r,n,s){var i,o;const a=this.receipts.getOrCreate(t);let c=a.get(r);c||(c=[null,null],a.set(r,c));let l=c[0];var d;s&&(l=null!==(d=c[1])&&void 0!==d?d:c[0]);const u={eventId:e,data:n};if(l){if(this.compareReceipts(l,u)>=0)return}const h=s?c[0]:u,p=s?u:c[1];let m=null;h&&p&&(m=this.getUnfilteredTimelineSet().compareEventOrdering(h.eventId,p.eventId));const g=null===m||m<0,f=null!==(i=c[1])&&void 0!==i?i:c[0];s&&g?c[1]=u:s||(c[0]=u,g||(c[1]=null));if(f!==(null!==(o=c[1])&&void 0!==o?o:c[0])){if(f&&this.receiptCacheByEventId.get(f.eventId)){const e=f.eventId;this.receiptCacheByEventId.set(e,this.receiptCacheByEventId.get(e).filter(e=>e.type!==t||e.userId!==r)),this.receiptCacheByEventId.get(e).length<1&&this.receiptCacheByEventId.delete(e)}this.receiptCacheByEventId.get(e)||this.receiptCacheByEventId.set(e,[]),this.receiptCacheByEventId.get(e).push({userId:r,type:t,data:n})}}getReceiptsForEvent(e){return this.receiptCacheByEventId.get(e.getId())||[]}fixupNotifications(e){const t=this.getReadReceiptForUserId(e,!1),r=this.timeline[this.timeline.length-1];r&&(null==t?void 0:t.eventId)===r.getId()&&e===r.getSender()&&(this.setUnread(l.X5.Total,0),this.setUnread(l.X5.Highlight,0))}addLocalEchoReceipt(e,t,r,n=!1){this.addReceipt(m(e,t,r,n),!0)}getUsersReadUpTo(e){return this.getReceiptsForEvent(e).filter(function(e){return(0,o.ll)(e.type)}).map(function(e){return e.userId})}}},"./node_modules/matrix-js-sdk/src/models/relations-container.ts":(e,t,r)=>{"use strict";r.d(t,{t:()=>o});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/models/relations.ts"),i=r("./node_modules/matrix-js-sdk/src/models/event.ts");class o{constructor(e,t){(0,n.A)(this,"relations",new Map),this.client=e,this.room=t}getChildEventsForEvent(e,t,r){var n;return null===(n=this.relations.get(e))||void 0===n||null===(n=n.get(t))||void 0===n?void 0:n.get(r)}getAllChildEventsForEvent(e){var t;const r=null!==(t=this.relations.get(e))&&void 0!==t?t:new Map,n=[];for(const e of r.values())for(const t of e.values())n.push(...t.getRelations());return n}aggregateParentEvent(e){const t=this.relations.get(e.getId());if(t)for(const r of t.values())for(const t of r.values())t.setTargetEvent(e)}aggregateChildEvent(e,t){if(e.isRedacted()||e.status===i.fb.CANCELLED)return;const r=e.getRelation();if(!r)return;const n=()=>{e.isDecryptionFailure()?e.once(i.OQ.Decrypted,n):this.aggregateChildEvent(e,t)};if(e.isBeingDecrypted()||e.shouldAttemptDecryption())return void e.once(i.OQ.Decrypted,n);const{event_id:o,rel_type:a}=r,c=e.getType();let l=this.relations.get(o);l||(l=new Map,this.relations.set(o,l));let d=l.get(a);d||(d=new Map,l.set(a,d));let u=d.get(c);if(!u){var h,p,m;u=new s.s(a,c,this.client),d.set(c,u);const e=null!==(h=this.room)&&void 0!==h?h:null==t?void 0:t.room,r=null!==(p=null!==(m=null==t?void 0:t.findEventById(o))&&void 0!==m?m:null==e?void 0:e.findEventById(o))&&void 0!==p?p:null==e?void 0:e.getPendingEvent(o);r&&u.setTargetEvent(r)}u.addEvent(e)}}},"./node_modules/matrix-js-sdk/src/models/room-receipts.ts":(e,t,r)=>{"use strict";r.d(t,{$:()=>c});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/@types/read_receipts.ts"),i=r("./node_modules/matrix-js-sdk/src/client.ts"),o=r("./node_modules/matrix-js-sdk/src/models/room.ts"),a=r("./node_modules/matrix-js-sdk/src/logger.ts");class c{constructor(e){(0,n.A)(this,"room",void 0),(0,n.A)(this,"threadedReceipts",void 0),(0,n.A)(this,"unthreadedReceipts",void 0),(0,n.A)(this,"danglingReceipts",void 0),(0,n.A)(this,"onTimelineEvent",e=>{const t=e.getId();if(!t)return;const r=this.danglingReceipts.remove(t);null==r||r.forEach(e=>{e.receipt.thread_id?this.threadedReceipts.set(e.receipt.thread_id,e.eventId,e.receiptType,e.userId,e.receipt.ts,e.synthetic):this.unthreadedReceipts.set(t,e.receiptType,e.userId,e.receipt.ts,e.synthetic)})}),this.room=e,this.threadedReceipts=new p(e),this.unthreadedReceipts=new h(e),this.danglingReceipts=new m,e.on(o.u9.Timeline,this.onTimelineEvent)}add(e,t){for(const[r,n]of Object.entries(e))for(const[e,s]of Object.entries(n))for(const[n,i]of Object.entries(s)){this.room.findEventById(r)?i.thread_id?this.threadedReceipts.set(i.thread_id,r,e,n,i.ts,t):this.unthreadedReceipts.set(r,e,n,i.ts,t):this.danglingReceipts.add(new d(r,e,n,i,t))}}hasUserReadEvent(e,t){const r=this.unthreadedReceipts.get(e);if(r&&f(r.eventId,t,this.room))return!0;const n=this.room.findEventById(t);if(!n)return a.vF.warn(`hasUserReadEvent event ID ${t} not found in room ${this.room.roomId}: this shouldn't happen!`),!1;const s=(0,i.Xb)(n),o=this.threadedReceipts.get(s,e);return!(!o||!f(o.eventId,t,this.room))||!!this.userSentLatestEventInThread(s,e)}userSentLatestEventInThread(e,t){var r;const n=e===s.S?this.room.getLiveTimeline().getEvents():null===(r=this.room.getThread(e))||void 0===r?void 0:r.timeline;return!!(n&&n.length>0&&n[n.length-1].getSender()===t)}}class l{constructor(e,t,r){this.eventId=e,this.receiptType=t,this.ts=r}}class d{constructor(e,t,r,n,s){this.eventId=e,this.receiptType=t,this.userId=r,this.receipt=n,this.synthetic=s}}class u{constructor(e){(0,n.A)(this,"room",void 0),(0,n.A)(this,"real",void 0),(0,n.A)(this,"synthetic",void 0),this.room=e,this.real=void 0,this.synthetic=void 0}set(e,t){e?this.synthetic=t:this.real=t,this.synthetic&&this.real&&f(this.real.eventId,this.synthetic.eventId,this.room)&&(this.synthetic=void 0)}get(){var e;return null!==(e=this.synthetic)&&void 0!==e?e:this.real}getByType(e){return e?this.synthetic:this.real}}class h{constructor(e){(0,n.A)(this,"room",void 0),(0,n.A)(this,"data",void 0),this.room=e,this.data=new Map}set(e,t,r,n,s){const i=g(this.data,r,()=>new u(this.room)),o=i.getByType(s);o&&function(e,t,r){const n=r.compareEventOrdering(e,t);return null!==n&&n>0}(o.eventId,e,this.room)||i.set(s,new l(e,t,n))}get(e){var t;return null===(t=this.data.get(e))||void 0===t?void 0:t.get()}}class p{constructor(e){(0,n.A)(this,"room",void 0),(0,n.A)(this,"data",void 0),this.room=e,this.data=new Map}set(e,t,r,n,s,i){g(this.data,e,()=>new h(this.room)).set(t,r,n,s,i)}get(e,t){var r;return null===(r=this.data.get(e))||void 0===r?void 0:r.get(t)}}class m{constructor(){(0,n.A)(this,"data",new Map)}add(e){g(this.data,e.eventId,()=>[]).push(e)}remove(e){const t=this.data.get(e);return this.data.delete(e),t}}function g(e,t,r){const n=e.get(t);if(n)return n;{const n=r();return e.set(t,n),n}}function f(e,t,r){const n=r.compareEventOrdering(e,t);return null!==n&&n>=0}},"./node_modules/matrix-js-sdk/src/models/room-sticky-events.ts":(e,t,r)=>{"use strict";r.d(t,{m:()=>a,x:()=>c});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/logger.ts"),i=r("./node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts");const o=s.vF.getChild("RoomStickyEvents");let a=function(e){return e.Update="RoomStickyEvents.Update",e}({});class c extends i.X{constructor(...e){super(...e),(0,n.A)(this,"stickyEventsMap",new Map),(0,n.A)(this,"unkeyedStickyEvents",new Set),(0,n.A)(this,"stickyEventTimer",void 0),(0,n.A)(this,"nextStickyEventExpiryTs",Number.MAX_SAFE_INTEGER),(0,n.A)(this,"cleanExpiredStickyEvents",()=>{const e=Date.now(),t=[];this.nextStickyEventExpiryTs=Number.MAX_SAFE_INTEGER;for(const[n,s]of this.stickyEventsMap.entries()){var r;for(const[r,i]of s)e>=i.unstableStickyExpiresAt?(o.debug("Expiring sticky event",i.getId()),t.push(i),this.stickyEventsMap.get(n).delete(r)):this.nextStickyEventExpiryTs=Math.min(this.nextStickyEventExpiryTs,i.unstableStickyExpiresAt);0===(null===(r=this.stickyEventsMap.get(n))||void 0===r?void 0:r.size)&&this.stickyEventsMap.delete(n)}for(const r of this.unkeyedStickyEvents)e>=r.unstableStickyExpiresAt?(o.debug("Expiring sticky event",r.getId()),this.unkeyedStickyEvents.delete(r),t.push(r)):this.nextStickyEventExpiryTs=Math.min(this.nextStickyEventExpiryTs,r.unstableStickyExpiresAt);t.length&&this.emit(a.Update,[],[],t),this.scheduleStickyTimer()})}*getStickyEvents(){yield*this.unkeyedStickyEvents;for(const e of this.stickyEventsMap.values())yield*e.values()}getKeyedStickyEvent(e,t,r){var n;return null===(n=this.stickyEventsMap.get(t))||void 0===n?void 0:n.get(`${r}${e}`)}getUnkeyedStickyEvent(e,t){return[...this.unkeyedStickyEvents].filter(r=>r.getType()===t&&r.getSender()===e)}addStickyEvent(e){const t=e.getContent().msc4354_sticky_key;if("string"!=typeof t&&void 0!==t)throw new Error(`${e.getId()} is missing msc4354_sticky_key`);if(void 0===e.unstableStickyExpiresAt)throw new Error(`${e.getId()} is missing msc4354_sticky.duration_ms`);const r=e.getSender(),n=e.getType();if(!r)throw new Error(`${e.getId()} is missing a sender`);if(e.unstableStickyExpiresAt<=Date.now())return o.info("ignored sticky event with older expiration time than current time",t),{added:!1};if(!r.startsWith("@"))throw new Error("Expected sender to start with @");let s;if(void 0!==t){var i,a,c;const l=`${t}${r}`;if(s=null===(i=this.stickyEventsMap.get(n))||void 0===i?void 0:i.get(l),s&&e.unstableStickyExpiresAt<s.unstableStickyExpiresAt)return o.info("ignored sticky event with older expiry time",t),{added:!1};if(s&&e.getTs()===s.getTs()&&(null!==(a=e.getId())&&void 0!==a?a:"")<(null!==(c=s.getId())&&void 0!==c?c:""))return o.info("ignored sticky event due to 'id tie break rule' on sticky_key",t),{added:!1};this.stickyEventsMap.has(n)||this.stickyEventsMap.set(n,new Map),this.stickyEventsMap.get(n).set(l,e)}else this.unkeyedStickyEvents.add(e);return this.nextStickyEventExpiryTs=Math.min(e.unstableStickyExpiresAt,this.nextStickyEventExpiryTs),this.scheduleStickyTimer(),{added:!0,prevEvent:s}}addStickyEvents(e){const t=[],r=[];for(const n of e)try{const e=this.addStickyEvent(n);e.added&&(e.prevEvent?r.push({current:n,previous:e.prevEvent}):t.push(n))}catch(e){o.warn("ignored invalid sticky event",e)}(t.length||r.length)&&this.emit(a.Update,t,r,[]),this.scheduleStickyTimer()}scheduleStickyTimer(){this.stickyEventTimer&&(clearTimeout(this.stickyEventTimer),this.stickyEventTimer=void 0),this.nextStickyEventExpiryTs!==Number.MAX_SAFE_INTEGER&&(this.stickyEventTimer=setTimeout(this.cleanExpiredStickyEvents,this.nextStickyEventExpiryTs-Date.now()))}clear(){this.stickyEventsMap.clear(),this.nextStickyEventExpiryTs=Number.MAX_SAFE_INTEGER,this.scheduleStickyTimer()}}},"./node_modules/matrix-js-sdk/src/models/room-summary.ts":(e,t,r)=>{"use strict";r.d(t,{c:()=>n});class n{constructor(e,t){this.roomId=e}}},"./node_modules/matrix-js-sdk/src/oidc/discovery.ts":(e,t,r)=>{"use strict";r.d(t,{P:()=>d,k:()=>l});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/oidc-client-ts/dist/umd/oidc-client-ts.js"),i=r("./node_modules/matrix-js-sdk/src/oidc/validate.ts"),o=r("./node_modules/matrix-js-sdk/src/http-api/index.ts");function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}const l=async e=>{const t=new URL(".well-known/openid-configuration",e),r=await fetch(t,{method:o.IT.Get,signal:(0,o._)(5e3)}),n=await r.json();return d(n)},d=async e=>{const t=(0,i.EZ)(e),r=new s.OidcClientSettingsStore({authority:t.issuer,metadata:t,redirect_uri:"",client_id:""}),n=new s.MetadataService(r);return c(c({},t),{},{signingKeys:await n.getSigningKeys()})}},"./node_modules/matrix-js-sdk/src/oidc/error.ts":(e,t,r)=>{"use strict";r.d(t,{u:()=>n});let n=function(e){return e.NotSupported="OIDC authentication not supported",e.Misconfigured="OIDC is misconfigured",e.General="Something went wrong with OIDC discovery",e.OpSupport="Configured OIDC OP does not support required functions",e.DynamicRegistrationNotSupported="Dynamic registration not supported",e.DynamicRegistrationFailed="Dynamic registration failed",e.DynamicRegistrationInvalid="Dynamic registration invalid response",e.CodeExchangeFailed="Failed to exchange code for token",e.InvalidBearerTokenResponse="Invalid bearer token response",e.InvalidIdToken="Invalid ID token",e.MissingOrInvalidStoredState="State required to finish logging in is not found in storage.",e}({})},"./node_modules/matrix-js-sdk/src/pushprocessor.ts":(e,t,r)=>{"use strict";r.d(t,{j:()=>f});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/utils.ts"),i=r("./node_modules/matrix-js-sdk/src/@types/PushRules.ts"),o=r("./node_modules/matrix-js-sdk/src/@types/event.ts");function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}const l=[i.Ji.Override,i.Ji.ContentSpecific,i.Ji.RoomSpecific,i.Ji.SenderSpecific,i.Ji.Underride],d={".m.rule.is_room_mention":{rule_id:".m.rule.is_room_mention",default:!0,enabled:!0,conditions:[{kind:i.wp.EventPropertyIs,key:"content.m\\.mentions.room",value:!0},{kind:i.wp.SenderNotificationPermission,key:"room"}],actions:[i.YU.Notify,{set_tweak:i.QN.Highlight}]},".m.rule.reaction":{rule_id:".m.rule.reaction",default:!0,enabled:!0,conditions:[{kind:i.wp.EventMatch,key:"type",pattern:"m.reaction"}],actions:[i.YU.DontNotify]},".org.matrix.msc3786.rule.room.server_acl":{rule_id:".org.matrix.msc3786.rule.room.server_acl",default:!0,enabled:!0,conditions:[{kind:i.wp.EventMatch,key:"type",pattern:o.Bx.RoomServerAcl},{kind:i.wp.EventMatch,key:"state_key",pattern:""}],actions:[]}},u=Symbol("UserDefinedRules"),h=[i.kq.Master,u,i.kq.SuppressNotices,i.kq.InviteToSelf,i.kq.MemberEvent,i.kq.IsUserMention,i.kq.ContainsDisplayName,i.kq.IsRoomMention,i.kq.AtRoomNotification,i.kq.Tombstone,".m.rule.reaction",".m.rule.room.server_acl",".org.matrix.msc3786.rule.room.server_acl",".m.rule.suppress_edits"],p={".org.matrix.msc3914.rule.room.call":{rule_id:".org.matrix.msc3914.rule.room.call",default:!0,enabled:!0,conditions:[{kind:i.wp.EventMatch,key:"type",pattern:"org.matrix.msc3401.call"},{kind:i.wp.CallStarted}],actions:[i.YU.Notify,{set_tweak:i.QN.Sound,value:"default"}]}},m=[u,i.kq.IncomingCall,".org.matrix.msc3914.rule.room.call",i.kq.EncryptedDM,i.kq.DM,i.kq.Message,i.kq.EncryptedMessage];function g(e,t,r,n,s){const i=r.filter(e=>e.default),o=r.filter(e=>!e.default);function a(r){r===u?l.push(...o):r in n?(e.warn(`Adding default global ${t} push rule ${r}`),l.push(n[r])):e.warn(`Missing default global ${t} push rule ${r}`)}let c=0;const l=[];for(const e of i){const t=s.indexOf(e.rule_id);if(-1!==t){for(;t>c;){a(s[c]),c+=1}l.push(e),c+=1}else l.push(e)}for(const e of s.slice(c))a(e);return l}class f{constructor(e){(0,n.A)(this,"parsedKeys",new Map),this.client=e}static actionListToActionsObject(e){const t={notify:!1,tweaks:{}};for(const r of e)r===i.YU.Notify?t.notify=!0:"object"==typeof r&&(void 0===r.value&&(r.value=!0),t.tweaks[r.set_tweak]=r.value);return t}static rewriteDefaultRules(e,t,r=void 0){let n=JSON.parse(JSON.stringify(t));return n||(n={}),n.global||(n.global={}),n.global.override||(n.global.override=[]),n.global.underride||(n.global.underride=[]),n.global.override=g(e,i.Ji.Override,n.global.override,d,h),n.global.underride=g(e,i.Ji.Underride,n.global.underride,p,m),n}static getPushRuleGlobRegex(e,t=!1,r="i"){const[n,i]=t?["(?<=^|\\W)","(?=\\W|$)"]:["^","$"],o=`${t}-${r}-${e}`;return f.cachedGlobToRegex[o]||(f.cachedGlobToRegex[o]=new RegExp(n+"("+(0,s.dn)(e)+")"+i,r)),f.cachedGlobToRegex[o]}updateCachedPushRuleKeys(e){e||(e={}),e.global||(e.global={}),e.global.override||(e.global.override=[]),e.global.room||(e.global.room=[]),e.global.sender||(e.global.sender=[]),e.global.underride||(e.global.underride=[]);const t=new Set(this.parsedKeys.keys());for(const r of[e.global.override,e.global.room,e.global.sender,e.global.underride])for(const e of r)if(e.conditions)for(const r of e.conditions)r.kind===i.wp.EventMatch&&(t.delete(r.key),this.parsedKeys.set(r.key,f.partsForDottedKey(r.key)));t.forEach(e=>this.parsedKeys.delete(e))}matchingRuleFromKindSet(e,t){for(const r of l){const n=t[r];if(n)for(const t of n){if(!t.enabled)continue;const n=this.templateRuleToRaw(r,t);if(n&&this.ruleMatchesEvent(n,e))return c(c({},t),{},{kind:r})}}return null}templateRuleToRaw(e,t){const r={rule_id:t.rule_id,actions:t.actions,conditions:[]};switch(e){case i.Ji.Underride:case i.Ji.Override:r.conditions=t.conditions;break;case i.Ji.RoomSpecific:if(!t.rule_id)return null;r.conditions.push({kind:i.wp.EventMatch,key:"room_id",value:t.rule_id});break;case i.Ji.SenderSpecific:if(!t.rule_id)return null;r.conditions.push({kind:i.wp.EventMatch,key:"user_id",value:t.rule_id});break;case i.Ji.ContentSpecific:if(!t.pattern)return null;r.conditions.push({kind:i.wp.EventMatch,key:"content.body",pattern:t.pattern})}return r}eventFulfillsCondition(e,t){switch(e.kind){case i.wp.EventMatch:return this.eventFulfillsEventMatchCondition(e,t);case i.wp.EventPropertyIs:return this.eventFulfillsEventPropertyIsCondition(e,t);case i.wp.EventPropertyContains:return this.eventFulfillsEventPropertyContains(e,t);case i.wp.ContainsDisplayName:return this.eventFulfillsDisplayNameCondition(e,t);case i.wp.RoomMemberCount:return this.eventFulfillsRoomMemberCountCondition(e,t);case i.wp.SenderNotificationPermission:return this.eventFulfillsSenderNotifPermCondition(e,t);case i.wp.CallStarted:case i.wp.CallStartedPrefix:return this.eventFulfillsCallStartedCondition(e,t)}return!1}eventFulfillsSenderNotifPermCondition(e,t){const r=e.key;if(!r)return!1;const n=this.client.getRoom(t.getRoomId());return!(null==n||!n.currentState)&&n.currentState.mayTriggerNotifOfType(r,t.getSender())}eventFulfillsRoomMemberCountCondition(e,t){if(!e.is)return!1;const r=this.client.getRoom(t.getRoomId());if(!r||!r.currentState||!r.currentState.members)return!1;const n=r.currentState.getJoinedMemberCount(),s=e.is.match(/^([=<>]*)(\d*)$/);if(!s)return!1;const i=s[1],o=parseInt(s[2]);if(isNaN(o))return!1;switch(i){case"":case"==":return n==o;case"<":return n<o;case">":return n>o;case"<=":return n<=o;case">=":return n>=o;default:return!1}}eventFulfillsDisplayNameCondition(e,t){var r;let n=t.getContent();if(t.isEncrypted()&&t.getClearContent()&&(n=t.getClearContent()),!n||!n.body||"string"!=typeof n.body)return!1;const i=this.client.getRoom(t.getRoomId()),o=null==i||null===(r=i.currentState)||void 0===r?void 0:r.getMember(this.client.credentials.userId);if(!o)return!1;const a=o.name,c=new RegExp("(^|\\W)"+(0,s.Nt)(a)+"(\\W|$)","i");return n.body.search(c)>-1}eventFulfillsEventMatchCondition(e,t){if(!e.key)return!1;const r=this.valueForDottedKey(e.key,t);if("string"!=typeof r)return!1;if(e.value)return e.value===r;if("string"!=typeof e.pattern)return!1;const n=f.getPushRuleGlobRegex(e.pattern,"content.body"===e.key);return!!r.match(n)}eventFulfillsEventPropertyIsCondition(e,t){return!(!e.key||void 0===e.value)&&e.value===this.valueForDottedKey(e.key,t)}eventFulfillsEventPropertyContains(e,t){if(!e.key||void 0===e.value)return!1;const r=this.valueForDottedKey(e.key,t);return!!Array.isArray(r)&&r.includes(e.value)}eventFulfillsCallStartedCondition(e,t){return["m.ring","m.prompt"].includes(t.getContent()["m.intent"])&&!("m.terminated"in t.getContent())&&(t.getPrevContent()["m.terminated"]!==t.getContent()["m.terminated"]||(0,s.ky)(t.getPrevContent(),{}))}static partsForDottedKey(e){const t=[];let r="",n=!1;for(const s of e)n?(r+="\\"===s||"."===s?s:"\\"+s,n=!1):"."==s?(t.push(r),r=""):"\\"==s?n=!0:r+=s;return n&&(r+="\\"),t.push(r),t}valueForDottedKey(e,t){let r,n=this.parsedKeys.get(e);void 0===n&&(n=f.partsForDottedKey(e),this.parsedKeys.set(e,n));const i=n[0];let o=0;for("content"===i?(r=t.getContent(),++o):"type"===i?(r=t.getType(),++o):r=t.event;o<n.length;++o){if((0,s.hX)(r))return;r=r[n[o]]}return r}matchingRuleForEventWithRulesets(e,t){return t?e.getSender()===this.client.getSafeUserId()?null:this.matchingRuleFromKindSet(e,t.global):null}pushActionsForEventAndRulesets(e,t){const r=this.matchingRuleForEventWithRulesets(e,t);if(!r)return{};const n=f.actionListToActionsObject(r.actions);return void 0===n.tweaks.highlight&&(n.tweaks.highlight=r.kind==i.Ji.ContentSpecific),{actions:n,rule:r}}ruleMatchesEvent(e,t){var r;return(!this.client.supportsIntentionalMentions()||void 0===t.getContent()["m.mentions"]||e.rule_id!==i.kq.ContainsUserName&&e.rule_id!==i.kq.ContainsDisplayName&&e.rule_id!==i.kq.AtRoomNotification)&&!(null!==(r=e.conditions)&&void 0!==r&&r.some(e=>!this.eventFulfillsCondition(e,t)))}actionsForEvent(e){const{actions:t}=this.pushActionsForEventAndRulesets(e,this.client.pushRules);return t||{}}actionsAndRuleForEvent(e){return this.pushActionsForEventAndRulesets(e,this.client.pushRules)}getPushRuleById(e){var t;const r=this.getPushRuleAndKindById(e);return null!==(t=null==r?void 0:r.rule)&&void 0!==t?t:null}getPushRuleAndKindById(e){for(const r of["global"]){var t;if(void 0!==(null===(t=this.client.pushRules)||void 0===t?void 0:t[r]))for(const t of l)if(void 0!==this.client.pushRules[r][t])for(const n of this.client.pushRules[r][t])if(n.rule_id===e)return{rule:n,kind:t}}return null}}(0,n.A)(f,"cachedGlobToRegex",{})},"./node_modules/matrix-js-sdk/src/realtime-callbacks.ts":(e,t,r)=>{"use strict";r.d(t,{D:()=>d,w:()=>l});var n=r("./node_modules/matrix-js-sdk/src/logger.ts");const s=1e3;let i,o=0;const a=[],c=function(...e){};function l(e,t,...r){(t=t||0)<0&&(t=0);const n=Date.now()+t,s=o++;c("setTimeout: scheduling cb",s,"at",n,"(delay",t,")");const i={runAt:n,func:e,params:r,key:s},l=function(e,t){let r=0,n=e.length;for(;r<n;){const s=r+n>>1;t(e[s])>0?n=s:r=s+1}return r}(a,function(e){return e.runAt-n});return a.splice(l,0,i),u(),s}function d(e){if(0===a.length)return;let t;for(t=0;t<a.length;t++){if(a[t].key==e){a.splice(t,1);break}}0===t&&u()}function u(){i&&globalThis.clearTimeout(i);const e=a[0];if(!e)return void c("scheduleRealCallback: no more callbacks, not rescheduling");const t=Date.now(),r=Math.min(e.runAt-t,s);c("scheduleRealCallback: now:",t,"delay:",r),i=globalThis.setTimeout(h,r)}function h(){const e=Date.now();c("runCallbacks: now:",e);const t=[];for(;;){const r=a[0];if(!r||r.runAt>e)break;const n=a.shift();c("runCallbacks: popping",n.key),t.push(n)}u();for(const e of t)try{e.func.apply(globalThis,e.params)}catch(e){n.vF.error("Uncaught exception in callback function",e)}}},"./node_modules/matrix-js-sdk/src/rust-crypto/constants.ts":(e,t,r)=>{"use strict";r.d(t,{J:()=>n});const n="matrix-js-sdk"},"./node_modules/matrix-js-sdk/src/scheduler.ts":(e,t,r)=>{"use strict";r.d(t,{b:()=>c});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/logger.ts"),i=r("./node_modules/matrix-js-sdk/src/@types/event.ts"),o=r("./node_modules/matrix-js-sdk/src/utils.ts"),a=r("./node_modules/matrix-js-sdk/src/http-api/index.ts");class c{static RETRY_BACKOFF_RATELIMIT(e,t,r){return(0,a.fZ)(r,t,!1)}static QUEUE_MESSAGES(e){return e.getType()===i.Bx.RoomMessage||e.hasAssociation()?"message":null}constructor(e=c.RETRY_BACKOFF_RATELIMIT,t=c.QUEUE_MESSAGES){(0,n.A)(this,"queues",{}),(0,n.A)(this,"activeQueues",[]),(0,n.A)(this,"procFn",null),(0,n.A)(this,"processQueue",e=>{const t=this.peekNextEvent(e);t?(l("Queue '%s' has %s pending events",e,this.queues[e].length),Promise.resolve().then(()=>this.procFn(t.event)).then(r=>{this.removeNextEvent(e),l("Queue '%s' sent event %s",e,t.event.getId()),t.resolvers.resolve(r),this.processQueue(e)},r=>{t.attempts+=1;const n=this.retryAlgorithm(t.event,t.attempts,r);l("retry(%s) err=%s event_id=%s waitTime=%s",t.attempts,r,t.event.getId(),n),-1===n?(s.vF.info("Queue '%s' giving up on event %s",e,t.event.getId()),this.clearQueue(e,r)):setTimeout(this.processQueue,n,e)})):this.disableQueue(e)}),this.retryAlgorithm=e,this.queueAlgorithm=t}getQueueForEvent(e){const t=this.queueAlgorithm(e);return t&&this.queues[t]?this.queues[t].map(function(e){return e.event}):null}removeEventFromQueue(e){const t=this.queueAlgorithm(e);if(!t||!this.queues[t])return!1;let r=!1;return(0,o.Nz)(this.queues[t],t=>t.event.getId()===e.getId()&&(r=!0,!0)),r}setProcessFunction(e){this.procFn=e,this.startProcessingQueues()}queueEvent(e){const t=this.queueAlgorithm(e);if(!t)return null;this.queues[t]||(this.queues[t]=[]);const r=Promise.withResolvers();return this.queues[t].push({event:e,resolvers:r,attempts:0}),l("Queue algorithm dumped event %s into queue '%s'",e.getId(),t),this.startProcessingQueues(),r.promise}startProcessingQueues(){this.procFn&&Object.keys(this.queues).filter(e=>-1===this.activeQueues.indexOf(e)&&this.queues[e].length>0).forEach(e=>{this.activeQueues.push(e),l("Spinning up queue: '%s'",e),this.processQueue(e)})}disableQueue(e){const t=this.activeQueues.indexOf(e);t>=0&&this.activeQueues.splice(t,1),s.vF.info("Stopping queue '%s' as it is now empty",e)}clearQueue(e,t){let r;for(s.vF.info("clearing queue '%s'",e);r=this.removeNextEvent(e);)r.resolvers.reject(t);this.disableQueue(e)}peekNextEvent(e){const t=this.queues[e];if(Array.isArray(t))return t[0]}removeNextEvent(e){const t=this.queues[e];if(Array.isArray(t))return t.shift()}}function l(...e){false}},"./node_modules/matrix-js-sdk/src/sliding-sync-sdk.ts":(e,t,r)=>{"use strict";r.d(t,{m:()=>w});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/models/room.ts"),i=r("./node_modules/matrix-js-sdk/src/logger.ts"),o=r("./node_modules/matrix-js-sdk/src/utils.ts"),a=r("./node_modules/matrix-js-sdk/src/models/event-timeline.ts"),c=r("./node_modules/matrix-js-sdk/src/client.ts"),l=r("./node_modules/matrix-js-sdk/src/sync.ts"),d=r("./node_modules/matrix-js-sdk/src/http-api/index.ts"),u=r("./node_modules/matrix-js-sdk/src/sliding-sync.ts"),h=r("./node_modules/matrix-js-sdk/src/@types/event.ts"),p=r("./node_modules/matrix-js-sdk/src/models/room-state.ts"),m=r("./node_modules/matrix-js-sdk/src/models/room-member.ts"),g=r("./node_modules/matrix-js-sdk/src/@types/membership.ts");class f{constructor(e){this.crypto=e}name(){return"e2ee"}when(){return u.HY.PreProcess}async onRequest(e){return e&&(i.vF.log("ExtensionE2EE: invalidating all device lists due to missing 'pos'"),await this.crypto.markAllTrackedUsersAsDirty()),{enabled:!0}}async onResponse(e){e.device_lists&&await this.crypto.processDeviceLists(e.device_lists),await this.crypto.processKeyCounts(e.device_one_time_keys_count,e.device_unused_fallback_key_types||e["org.matrix.msc2732.device_unused_fallback_key_types"]),this.crypto.onSyncCompleted({})}}class v{constructor(e,t){(0,n.A)(this,"nextBatch",null),this.client=e,this.cryptoCallbacks=t}name(){return"to_device"}when(){return u.HY.PreProcess}async onRequest(e){return{since:null!==this.nextBatch?this.nextBatch:void 0,limit:100,enabled:!0}}async onResponse(e){const t=e.events||[];let r;r=this.cryptoCallbacks?await this.cryptoCallbacks.preprocessToDeviceMessages(t):t.map(e=>({message:e,encryptionInfo:null})),(0,l.pq)(r,this.client),this.nextBatch=e.next_batch}}class y{constructor(e){this.client=e}name(){return"account_data"}when(){return u.HY.PostProcess}async onRequest(e){return{enabled:!0}}async onResponse(e){e.global&&e.global.length>0&&this.processGlobalAccountData(e.global);for(const t in e.rooms){const r=E(this.client,t,e.rooms[t]),n=this.client.getRoom(t);n?(n.addAccountData(r),r.forEach(e=>{this.client.emit(c.AU.Event,e)})):i.vF.warn("got account data for room but room doesn't exist on client:",t)}}processGlobalAccountData(e){const t=E(this.client,void 0,e),r=t.reduce((e,t)=>(e[t.getType()]=this.client.store.getAccountData(t.getType()),e),{});this.client.store.storeAccountDataEvents(t),t.forEach(e=>{if(e.getType()===h.Bx.PushRules){const t=e.getContent();this.client.setPushRules(t)}const t=r[e.getType()];return this.client.emit(c.AU.AccountData,e,t),e})}}class _{constructor(e){this.client=e}name(){return"typing"}when(){return u.HY.PostProcess}async onRequest(e){return{enabled:!0}}async onResponse(e){if(null!=e&&e.rooms)for(const t in e.rooms)k(this.client,t,[e.rooms[t]])}}class b{constructor(e){this.client=e}name(){return"receipts"}when(){return u.HY.PostProcess}async onRequest(e){return{enabled:!0}}async onResponse(e){if(null!=e&&e.rooms)for(const t in e.rooms)k(this.client,t,[e.rooms[t]])}}class w{constructor(e,t,r,i){(0,n.A)(this,"opts",void 0),(0,n.A)(this,"syncOpts",void 0),(0,n.A)(this,"syncState",null),(0,n.A)(this,"syncStateData",void 0),(0,n.A)(this,"lastPos",null),(0,n.A)(this,"failCount",0),(0,n.A)(this,"notifEvents",[]),this.slidingSync=e,this.client=t,this.opts=(0,l.Bn)(r),this.syncOpts=(0,l.Fe)(i),t.getNotifTimelineSet()&&t.reEmitter.reEmit(t.getNotifTimelineSet(),[s.u9.Timeline,s.u9.TimelineReset]),this.slidingSync.on(u.cQ.Lifecycle,this.onLifecycle.bind(this)),this.slidingSync.on(u.cQ.RoomData,this.onRoomData.bind(this));const o=[new v(this.client,this.syncOpts.cryptoCallbacks),new y(this.client),new _(this.client),new b(this.client)];this.syncOpts.cryptoCallbacks&&o.push(new f(this.syncOpts.cryptoCallbacks)),o.forEach(e=>{this.slidingSync.registerExtension(e)})}async onRoomData(e,t){let r=this.client.store.getRoom(e);if(!r){if(!t.initial)return void this.syncOpts.logger.debug("initial flag not set but no stored room exists for room ",e,t);r=(0,l.M)(this.client,e,this.opts)}await this.processRoomData(this.client,r,t)}onLifecycle(e,t,r){switch(r&&this.syncOpts.logger.debug("onLifecycle",e,r),e){case u.ns.Complete:if(this.purgeNotifications(),!t)break;this.lastPos||this.updateSyncState(l.Lm.Prepared,{oldSyncToken:void 0,nextSyncToken:t.pos,catchingUp:!1,fromCache:!1}),this.updateSyncState(l.Lm.Syncing,{oldSyncToken:this.lastPos,nextSyncToken:t.pos,catchingUp:!1,fromCache:!1}),this.lastPos=t.pos;break;case u.ns.RequestFinished:if(r){if(this.failCount+=1,this.updateSyncState(this.failCount>3?l.Lm.Error:l.Lm.Reconnecting,{error:new d.up(r)}),this.shouldAbortSync(new d.up(r)))return}else this.failCount=0,this.syncOpts.logger.debug(`SlidingSyncState.RequestFinished with ${Object.keys((null==t?void 0:t.rooms)||[]).length} rooms`)}}async syncLeftRooms(){return[]}async peek(e){return null}stopPeeking(){}setPresence(e){}getSyncState(){return this.syncState}getSyncStateData(){var e;return null!==(e=this.syncStateData)&&void 0!==e?e:null}createRoom(e){const{timelineSupport:t}=this.client,r=new s.Wv(e,this.client,this.client.getUserId(),{lazyLoadMembers:this.opts.lazyLoadMembers,pendingEventOrdering:this.opts.pendingEventOrdering,timelineSupport:t});return this.client.reEmitter.reEmit(r,[s.u9.Name,s.u9.Redaction,s.u9.RedactionCancelled,s.u9.Receipt,s.u9.Tags,s.u9.LocalEchoUpdated,s.u9.AccountData,s.u9.MyMembership,s.u9.Timeline,s.u9.TimelineReset]),this.registerStateListeners(r),r}registerStateListeners(e){this.client.reEmitter.reEmit(e.currentState,[p.f.Events,p.f.Members,p.f.NewMember,p.f.Update]),e.currentState.on(p.f.NewMember,(e,t,r)=>{var n;r.user=null!==(n=this.client.getUser(r.userId))&&void 0!==n?n:void 0,this.client.reEmitter.reEmit(r,[m.o5.Name,m.o5.Typing,m.o5.PowerLevel,m.o5.Membership])})}shouldAbortSync(e){return"M_UNKNOWN_TOKEN"===e.errcode&&(this.syncOpts.logger.warn("Token no longer valid - assuming logout"),this.stop(),this.updateSyncState(l.Lm.Error,{error:e}),!0)}async processRoomData(e,t,r){r=function(e,t,r){if(!r.name)return r;for(const e of r.required_state)if(e.type===h.Bx.RoomName&&""===e.state_key)return e.content={name:r.name},r;return r.required_state.push({event_id:"$fake-sliding-sync-name-event-"+t,state_key:"",type:h.Bx.RoomName,content:{name:r.name},sender:e.getUserId(),origin_server_ts:(new Date).getTime()}),r}(e,t.roomId,r);const n=E(this.client,t.roomId,r.required_state);let i=E(this.client,t.roomId,r.timeline,!1);const l=[];if(r.limited||r.initial){const e=new Set;t.getLiveTimeline().getEvents().forEach(t=>{e.add(t.getId())});const n=[],s=[];let o=!1;for(let t=i.length-1;t>=0;t--){const r=i[t];e.has(r.getId())?o=!0:o?n.push(r):s.unshift(r)}i=s,n.length>0&&t.addEventsToTimeline(n,!0,!1,t.getLiveTimeline(),r.prev_batch)}const d=t.hasEncryptionStateEvent();if(null!=r.notification_count&&t.setUnreadNotificationCount(s.X5.Total,r.notification_count),null!=r.highlight_count&&(!d||d&&t.getUnreadNotificationCount(s.X5.Highlight)<=0)&&t.setUnreadNotificationCount(s.X5.Highlight,r.highlight_count),r.bump_stamp&&t.setBumpStamp(r.bump_stamp),Number.isInteger(r.invited_count)&&t.currentState.setInvitedMemberCount(r.invited_count),Number.isInteger(r.joined_count)&&t.currentState.setJoinedMemberCount(r.joined_count),r.invite_state){const e=E(this.client,t.roomId,r.invite_state);return await this.injectRoomEvents(t,e),r.initial&&(t.recalculate(),this.client.store.storeRoom(t),this.client.emit(c.AU.Room,t)),void e.forEach(e=>{this.client.emit(c.AU.Event,e)})}var u;r.limited&&t.getLiveTimeline().setPaginationToken(null!==(u=r.prev_batch)&&void 0!==u?u:null,a.q.BACKWARDS);await this.injectRoomEvents(t,n,i,r.num_live),t.addEphemeralEvents(l),t.updateMyMembership(g.O.Join),t.setMSC4186SummaryData(r.heroes,r.joined_count,r.invited_count),t.recalculate(),r.initial&&(e.store.storeRoom(t),e.emit(c.AU.Room,t)),this.addNotifications(i);const p=async r=>{e.emit(c.AU.Event,r),r.isState()&&r.getType()==h.Bx.RoomEncryption&&this.syncOpts.cryptoCallbacks&&await this.syncOpts.cryptoCallbacks.onCryptoEvent(t,r)};await(0,o.d8)(n,p),await(0,o.d8)(i,p),l.forEach(function(t){e.emit(c.AU.Event,t)}),t.decryptCriticalEvents()}async injectRoomEvents(e,t,r=[],n=0){const s=e.getLiveTimeline(),i=0==s.getEvents().length;if(i){for(const e of t)this.client.getPushActionsForEvent(e);s.initialiseState(t)}i||(e.oldState.setStateEvents(t),e.currentState.setStateEvents(t));let o=[];n>0&&(o=r.slice(-1*n),r=r.slice(0,-1*o.length)),await e.addLiveEvents(r,{fromCache:!0,addToState:!1}),o.length>0&&await e.addLiveEvents(o,{fromCache:!1,addToState:!1}),e.recalculate(),this.resolveInvites(e)}resolveInvites(e){if(!e||!this.opts.resolveInvitesToProfiles)return;const t=this.client;e.getMembersWithMembership(g.O.Invite).forEach(function(r){if(r.requestedProfileInfo)return;r.requestedProfileInfo=!0;const n=t.getUser(r.userId);let s;s=n?Promise.resolve({avatar_url:n.avatarUrl,displayname:n.displayName}):t.getProfileInfo(r.userId),s.then(function(t){const n=r.events.member;n.getContent().membership===g.O.Invite&&(n.getContent().avatar_url=t.avatar_url,n.getContent().displayname=t.displayname,r.setMembershipEvent(n,e.currentState))},function(e){})})}retryImmediately(){return!0}async sync(){for(this.syncOpts.logger.debug("Sliding sync init loop");!this.client.isGuest();)try{this.syncOpts.logger.debug("Getting push rules...");const e=await this.client.getPushRules();this.syncOpts.logger.debug("Got push rules"),this.client.pushRules=e;break}catch(e){if(this.syncOpts.logger.error("Getting push rules failed",e),this.shouldAbortSync(e))return}await this.slidingSync.start()}stop(){this.syncOpts.logger.debug("SyncApi.stop"),this.slidingSync.stop()}updateSyncState(e,t){const r=this.syncState;this.syncState=e,this.syncStateData=t,this.client.emit(c.AU.Sync,this.syncState,r,t)}addNotifications(e){if(this.client.getNotifTimelineSet())for(const t of e){const e=this.client.getPushActionsForEvent(t);e&&e.notify&&e.tweaks&&e.tweaks.highlight&&this.notifEvents.push(t)}}purgeNotifications(){this.notifEvents.sort(function(e,t){return e.getTs()-t.getTs()}),this.notifEvents.forEach(e=>{var t;null===(t=this.client.getNotifTimelineSet())||void 0===t||t.addLiveEvent(e,{addToState:!1})}),this.notifEvents=[]}}function E(e,t,r,n=!0){const s=e.getEventMapper({decrypt:n});return r.map(function(e){return e.room_id=t,s(e)})}function k(e,t,r){const n=E(e,t,r),s=e.getRoom(t);s?(s.addEphemeralEvents(n),n.forEach(t=>{e.emit(c.AU.Event,t)})):i.vF.warn("got ephemeral events for room but room doesn't exist on client:",t)}},"./node_modules/matrix-js-sdk/src/store/indexeddb-local-backend.ts":(e,t,r)=>{"use strict";r.d(t,{k:()=>m});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/sync-accumulator.ts"),i=r("./node_modules/matrix-js-sdk/src/utils.ts"),o=r("./node_modules/matrix-js-sdk/src/indexeddb-helpers.ts"),a=r("./node_modules/matrix-js-sdk/src/logger.ts");const c=[e=>{e.createObjectStore("users",{keyPath:["userId"]}),e.createObjectStore("accountData",{keyPath:["type"]}),e.createObjectStore("sync",{keyPath:["clobber"]})},e=>{e.createObjectStore("oob_membership_events",{keyPath:["room_id","state_key"]}).createIndex("room","room_id")},e=>{e.createObjectStore("client_options",{keyPath:["clobber"]})},e=>{e.createObjectStore("to_device_queue",{autoIncrement:!0})}],l=c.length;function d(e,t,r){const n=e.openCursor(t);return new Promise((e,t)=>{const s=[];n.onerror=()=>{var e;t(new Error("Query failed: "+(null===(e=n.error)||void 0===e?void 0:e.name)))},n.onsuccess=()=>{const t=n.result;t?(s.push(r(t)),t.continue()):e(s)}})}function u(e){return new Promise((t,r)=>{e.oncomplete=function(e){t(e)},e.onerror=function(){r(e.error)}})}function h(e){return new Promise((t,r)=>{e.onsuccess=function(e){t(e)},e.onerror=function(){r(e.error)}})}function p(e){return h(e).then(t=>e.result)}class m{static exists(e,t){return t="matrix-js-sdk:"+(t||"default"),(0,o.t)(e,t)}constructor(e,t="default"){(0,n.A)(this,"dbName",void 0),(0,n.A)(this,"syncAccumulator",void 0),(0,n.A)(this,"db",void 0),(0,n.A)(this,"disconnected",!0),(0,n.A)(this,"_isNewlyCreated",!1),(0,n.A)(this,"syncToDatabasePromise",void 0),(0,n.A)(this,"pendingUserPresenceData",[]),this.indexedDB=e,this.dbName="matrix-js-sdk:"+t,this.syncAccumulator=new s.w}connect(e){if(!this.disconnected)return a.vF.log("LocalIndexedDBStoreBackend.connect: already connected or connecting"),Promise.resolve();this.disconnected=!1,a.vF.log("LocalIndexedDBStoreBackend.connect: connecting...");const t=this.indexedDB.open(this.dbName,l);return t.onupgradeneeded=e=>{const r=t.result,n=e.oldVersion;a.vF.log(`LocalIndexedDBStoreBackend.connect: upgrading from ${n}`),n<1&&(this._isNewlyCreated=!0),c.forEach((e,t)=>{n<=t&&e(r)})},t.onblocked=()=>{a.vF.log("can't yet open LocalIndexedDBStoreBackend because it is open elsewhere")},a.vF.log("LocalIndexedDBStoreBackend.connect: awaiting connection..."),h(t).then(async()=>{a.vF.log("LocalIndexedDBStoreBackend.connect: connected"),this.db=t.result,this.db.onversionchange=()=>{var e;null===(e=this.db)||void 0===e||e.close(),this.disconnected=!0,this.db=void 0},this.db.onclose=()=>{this.disconnected=!0,this.db=void 0,null==e||e()},await this.init()})}isNewlyCreated(){return Promise.resolve(this._isNewlyCreated)}init(){return Promise.all([this.loadAccountData(),this.loadSyncData()]).then(([e,t])=>{a.vF.log("LocalIndexedDBStoreBackend: loaded initial data"),this.syncAccumulator.accumulate({next_batch:t.nextBatch,rooms:t.roomsData,account_data:{events:e}},!0)})}getOutOfBandMembers(e){return new Promise((t,r)=>{const n=this.db.transaction(["oob_membership_events"],"readonly").objectStore("oob_membership_events").index("room"),s=IDBKeyRange.only(e),i=n.openCursor(s),o=[];let a=!1;i.onsuccess=()=>{const e=i.result;if(!e)return o.length||a?t(o):t(null);const r=e.value;r.oob_written?a=!0:o.push(r),e.continue()},i.onerror=e=>{r(e)}}).then(t=>(a.vF.log(`LL: got ${null==t?void 0:t.length} membershipEvents from storage for room ${e} ...`),t))}async setOutOfBandMembers(e,t){a.vF.log(`LL: backend about to store ${t.length} members for ${e}`);const r=this.db.transaction(["oob_membership_events"],"readwrite"),n=r.objectStore("oob_membership_events");t.forEach(e=>{n.put(e)});const s={room_id:e,oob_written:!0,state_key:0};n.put(s),await u(r),a.vF.log(`LL: backend done storing for ${e}!`)}async clearOutOfBandMembers(e){const t=this.db.transaction(["oob_membership_events"],"readonly").objectStore("oob_membership_events").index("room"),r=IDBKeyRange.only(e),n=p(t.openKeyCursor(r,"next")).then(e=>(null==e?void 0:e.primaryKey)[1]),s=p(t.openKeyCursor(r,"prev")).then(e=>(null==e?void 0:e.primaryKey)[1]),[i,o]=await Promise.all([n,s]),c=this.db.transaction(["oob_membership_events"],"readwrite").objectStore("oob_membership_events"),l=IDBKeyRange.bound([e,i],[e,o]);var d;a.vF.log(`LL: Deleting all users + marker in storage for room ${e}, with key range:`,[e,i],[e,o]),await(d=c.delete(l),new Promise((e,t)=>{d.onsuccess=()=>e(d),d.onerror=e=>t(e)}))}clearDatabase(){return new Promise(e=>{var t;a.vF.log(`Removing indexeddb instance: ${this.dbName}`),null===(t=this.db)||void 0===t||t.close();const r=this.indexedDB.deleteDatabase(this.dbName);r.onblocked=()=>{a.vF.log(`can't yet delete indexeddb ${this.dbName} because it is open elsewhere`)},r.onerror=()=>{var t;a.vF.warn(`unable to delete js-sdk store indexeddb: ${null===(t=r.error)||void 0===t?void 0:t.name}`),e()},r.onsuccess=()=>{a.vF.log(`Removed indexeddb instance: ${this.dbName}`),e()}})}getSavedSync(e=!0){const t=this.syncAccumulator.getJSON();return t.nextBatch?e?Promise.resolve((0,i.A4)(t)):Promise.resolve(t):Promise.resolve(null)}getNextBatchToken(){return Promise.resolve(this.syncAccumulator.getNextBatchToken())}setSyncData(e){return Promise.resolve().then(()=>{this.syncAccumulator.accumulate(e)})}async syncToDatabase(e){return this.syncToDatabasePromise?(a.vF.warn("Skipping syncToDatabase() as persist already in flight"),this.pendingUserPresenceData.push(...e),this.syncToDatabasePromise):(e.unshift(...this.pendingUserPresenceData),this.syncToDatabasePromise=this.doSyncToDatabase(e),this.syncToDatabasePromise)}async doSyncToDatabase(e){try{const t=this.syncAccumulator.getJSON(!0);await Promise.all([this.persistUserPresenceEvents(e),this.persistAccountData(t.accountData),this.persistSyncData(t.nextBatch,t.roomsData)])}finally{this.syncToDatabasePromise=void 0}}persistSyncData(e,t){return a.vF.log("Persisting sync data up to",e),(0,i.j0)(()=>{const r=this.db.transaction(["sync"],"readwrite");return r.objectStore("sync").put({clobber:"-",nextBatch:e,roomsData:t}),u(r).then(()=>{a.vF.log("Persisted sync data up to",e)})})}persistAccountData(e){return(0,i.j0)(()=>{const t=this.db.transaction(["accountData"],"readwrite"),r=t.objectStore("accountData");for(const t of e)r.put(t);return u(t).then()})}persistUserPresenceEvents(e){return(0,i.j0)(()=>{const t=this.db.transaction(["users"],"readwrite"),r=t.objectStore("users");for(const t of e)r.put({userId:t[0],event:t[1]});return u(t).then()})}getUserPresenceEvents(){return(0,i.j0)(()=>d(this.db.transaction(["users"],"readonly").objectStore("users"),void 0,e=>[e.value.userId,e.value.event]))}loadAccountData(){return a.vF.log("LocalIndexedDBStoreBackend: loading account data..."),(0,i.j0)(()=>d(this.db.transaction(["accountData"],"readonly").objectStore("accountData"),void 0,e=>e.value).then(e=>(a.vF.log("LocalIndexedDBStoreBackend: loaded account data"),e)))}loadSyncData(){return a.vF.log("LocalIndexedDBStoreBackend: loading sync data..."),(0,i.j0)(()=>d(this.db.transaction(["sync"],"readonly").objectStore("sync"),void 0,e=>e.value).then(e=>(a.vF.log("LocalIndexedDBStoreBackend: loaded sync data"),e.length>1&&a.vF.warn("loadSyncData: More than 1 sync row found."),e.length>0?e[0]:{})))}getClientOptions(){return Promise.resolve().then(()=>d(this.db.transaction(["client_options"],"readonly").objectStore("client_options"),void 0,e=>{var t;return null===(t=e.value)||void 0===t?void 0:t.options}).then(e=>e[0]))}async storeClientOptions(e){const t=this.db.transaction(["client_options"],"readwrite");t.objectStore("client_options").put({clobber:"-",options:e}),await u(t)}async saveToDeviceBatches(e){const t=this.db.transaction(["to_device_queue"],"readwrite"),r=t.objectStore("to_device_queue");for(const t of e)r.add(t);await u(t)}async getOldestToDeviceBatch(){const e=this.db.transaction(["to_device_queue"],"readonly").objectStore("to_device_queue"),t=await p(e.openCursor());if(!t)return null;const r=t.value;return{id:t.key,txnId:r.txnId,eventType:r.eventType,batch:r.batch}}async removeToDeviceBatch(e){const t=this.db.transaction(["to_device_queue"],"readwrite");t.objectStore("to_device_queue").delete(e),await u(t)}async destroy(){var e;null===(e=this.db)||void 0===e||e.close()}}},"./node_modules/matrix-js-sdk/src/store/stub.ts":(e,t,r)=>{"use strict";r.d(t,{E:()=>s});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class s{constructor(){(0,n.A)(this,"accountData",new Map),(0,n.A)(this,"fromToken",null)}isNewlyCreated(){return Promise.resolve(!0)}getSyncToken(){return this.fromToken}setSyncToken(e){this.fromToken=e}storeRoom(e){}getRoom(e){return null}getRooms(){return[]}removeRoom(e){}getRoomSummaries(){return[]}storeUser(e){}getUser(e){return null}getUsers(){return[]}scrollback(e,t){return[]}setUserCreator(e){}storeEvents(e,t,r,n){}storeFilter(e){}getFilter(e,t){return null}getFilterIdByName(e){return null}setFilterIdByName(e,t){}storeAccountDataEvents(e){}getAccountData(e){}setSyncData(e){return Promise.resolve()}wantsSave(){return!1}save(){return Promise.resolve()}startup(){return Promise.resolve()}getSavedSync(){return Promise.resolve(null)}getSavedSyncToken(){return Promise.resolve(null)}deleteAllData(){return Promise.resolve()}getOutOfBandMembers(){return Promise.resolve(null)}setOutOfBandMembers(e,t){return Promise.resolve()}clearOutOfBandMembers(){return Promise.resolve()}getClientOptions(){return Promise.resolve(void 0)}storeClientOptions(e){return Promise.resolve()}async getPendingEvents(e){return[]}setPendingEvents(e,t){return Promise.resolve()}async saveToDeviceBatches(e){return Promise.resolve()}getOldestToDeviceBatch(){return Promise.resolve(null)}async removeToDeviceBatch(e){return Promise.resolve()}async destroy(){}}},"./node_modules/matrix-js-sdk/src/thread-utils.ts":(e,t,r)=>{"use strict";r.d(t,{q:()=>s});var n=r("./node_modules/matrix-js-sdk/src/models/thread.ts");function s(e){return t=>{var r,s;return(null===(r=t.content)||void 0===r||null===(r=r["m.relates_to"])||void 0===r?void 0:r.event_id)!==e||(null===(s=t.content)||void 0===s||null===(s=s["m.relates_to"])||void 0===s?void 0:s.rel_type)===n.RN.name}}},"./node_modules/matrix-js-sdk/src/utils/encryptAESSecretStorageItem.ts":(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r("./node_modules/matrix-js-sdk/src/base64.ts"),s=r("./node_modules/matrix-js-sdk/src/utils/internal/deriveKeys.ts");async function i(e,t,r,i){let o;i?o=(0,n.y4)(i):(o=new Uint8Array(16),globalThis.crypto.getRandomValues(o),o[8]&=127);const[a,c]=await(0,s.C)(t,r),l=(new TextEncoder).encode(e),d=await globalThis.crypto.subtle.encrypt({name:"AES-CTR",counter:o,length:64},a,l),u=await globalThis.crypto.subtle.sign({name:"HMAC"},c,d);return{iv:(0,n.WG)(o),ciphertext:(0,n.WG)(new Uint8Array(d)),mac:(0,n.WG)(new Uint8Array(u))}}},"./node_modules/matrix-js-sdk/src/utils/internal/deriveKeys.ts":(e,t,r)=>{"use strict";r.d(t,{C:()=>s});const n=new Uint8Array(8);async function s(e,t){const r=await globalThis.crypto.subtle.importKey("raw",e,{name:"HKDF"},!1,["deriveBits"]),s=await globalThis.crypto.subtle.deriveBits({name:"HKDF",salt:n,info:(new TextEncoder).encode(t),hash:"SHA-256"},r,512),i=s.slice(0,32),o=s.slice(32),a=globalThis.crypto.subtle.importKey("raw",i,{name:"AES-CTR"},!1,["encrypt","decrypt"]),c=globalThis.crypto.subtle.importKey("raw",o,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]);return Promise.all([a,c])}},"./node_modules/matrix-js-sdk/src/utils/roomVersion.ts":(e,t,r)=>{"use strict";r.d(t,{H:()=>s});const n=["1","2","3","4","5","6","7","8","9","10","11"];function s(e){return!n.includes(e)}},"./node_modules/matrix-js-sdk/src/webrtc/audioContext.ts":(e,t,r)=>{"use strict";r.d(t,{N:()=>o,o:()=>i});let n=null,s=0;const i=()=>(null===n&&(n=new AudioContext),s++,n),o=()=>{var e;(s--,0===s)&&(null===(e=n)||void 0===e||e.close(),n=null)}},"./node_modules/matrix-js-sdk/src/webrtc/callEventHandler.ts":(e,t,r)=>{"use strict";r.d(t,{B:()=>d,N:()=>u});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/logger.ts"),i=r("./node_modules/matrix-js-sdk/src/webrtc/call.ts"),o=r("./node_modules/matrix-js-sdk/src/@types/event.ts"),a=r("./node_modules/matrix-js-sdk/src/client.ts"),c=r("./node_modules/matrix-js-sdk/src/webrtc/groupCall.ts"),l=r("./node_modules/matrix-js-sdk/src/models/room.ts");let d=function(e){return e.Incoming="Call.incoming",e}({});class u{constructor(e){(0,n.A)(this,"calls",void 0),(0,n.A)(this,"callEventBuffer",void 0),(0,n.A)(this,"nextSeqByCall",new Map),(0,n.A)(this,"toDeviceEventBuffers",new Map),(0,n.A)(this,"client",void 0),(0,n.A)(this,"candidateEventsByCall",void 0),(0,n.A)(this,"eventBufferPromiseChain",void 0),(0,n.A)(this,"onSync",()=>{const e=this.callEventBuffer;this.callEventBuffer=[],this.eventBufferPromiseChain?this.eventBufferPromiseChain=this.eventBufferPromiseChain.then(()=>this.evaluateEventBuffer(e)):this.eventBufferPromiseChain=this.evaluateEventBuffer(e)}),(0,n.A)(this,"onRoomTimeline",e=>{this.callEventBuffer.push(e)}),(0,n.A)(this,"onToDeviceEvent",e=>{const t=e.getContent();if(!t.call_id)return void this.callEventBuffer.push(e);if(this.nextSeqByCall.has(t.call_id)||this.nextSeqByCall.set(t.call_id,0),void 0===t.seq)return void this.callEventBuffer.push(e);const r=this.nextSeqByCall.get(t.call_id)||0;if(t.seq!==r){this.toDeviceEventBuffers.has(t.call_id)||this.toDeviceEventBuffers.set(t.call_id,[]);const r=this.toDeviceEventBuffers.get(t.call_id),n=r.findIndex(e=>e.getContent().seq>t.seq);-1===n?r.push(e):r.splice(n,0,e)}else{const r=t.call_id;this.callEventBuffer.push(e),this.nextSeqByCall.set(r,t.seq+1);const n=this.toDeviceEventBuffers.get(r);let s=n&&n.shift();for(;s&&s.getContent().seq===this.nextSeqByCall.get(r);)this.callEventBuffer.push(s),this.nextSeqByCall.set(r,s.getContent().seq+1),s=n.shift()}}),this.client=e,this.calls=new Map,this.callEventBuffer=[],this.candidateEventsByCall=new Map}start(){this.client.on(a.AU.Sync,this.onSync),this.client.on(l.u9.Timeline,this.onRoomTimeline),this.client.on(a.AU.ToDeviceEvent,this.onToDeviceEvent)}stop(){this.client.removeListener(a.AU.Sync,this.onSync),this.client.removeListener(l.u9.Timeline,this.onRoomTimeline),this.client.removeListener(a.AU.ToDeviceEvent,this.onToDeviceEvent)}async evaluateEventBuffer(e){await Promise.all(e.map(e=>this.client.decryptEventIfNeeded(e)));const t=e.filter(e=>{const t=e.getType();return t.startsWith("m.call.")||t.startsWith("org.matrix.call.")}),r=new Set;for(const e of t){const t=e.getType();t!==o.Bx.CallAnswer&&t!==o.Bx.CallHangup||r.add(e.getContent().call_id)}for(const e of t){const t=e.getType(),n=e.getContent().call_id;if(t!==o.Bx.CallInvite||!r.has(n))try{await this.handleCallEvent(e)}catch(e){s.vF.error("CallEventHandler evaluateEventBuffer() caught exception handling call event",e)}}}async handleCallEvent(e){var t;this.client.emit(a.AU.ReceivedVoipEvent,e);const r=e.getContent(),n=e.getRoomId()||(null===(t=this.client.groupCallEventHandler.getGroupCallById(r.conf_id))||void 0===t||null===(t=t.room)||void 0===t?void 0:t.roomId),l=r.conf_id,u=e.getType(),h=e.getSender();let p,m,g=r.call_id?this.calls.get(r.call_id):void 0;if(l){if(m=this.client.groupCallEventHandler.getGroupCallById(l),!m)return void s.vF.warn(`CallEventHandler handleCallEvent() could not find a group call - ignoring event (groupCallId=${l}, type=${u})`);if(p=r.device_id,!p)return s.vF.warn(`CallEventHandler handleCallEvent() could not find a device id - ignoring event (senderId=${h})`),void m.emit(c.AZ.Error,new c.Iy(h));if(r.dest_session_id!==this.client.getSessionId())return void s.vF.warn("CallEventHandler handleCallEvent() call event does not match current session id - ignoring")}const f=h===this.client.credentials.userId&&(void 0===p||p===this.client.getDeviceId());if(n){if(u===o.Bx.CallInvite){var v,y,_;if(f)return;if(e.getLocalAge()>r.lifetime-3e3)return;if(g&&g.state===i.iP.Ended)return;if(g&&s.vF.warn(`CallEventHandler handleCallEvent() already has a call but got an invite - clobbering (callId=${r.call_id})`),r.invitee&&r.invitee!==this.client.getUserId())return;const t=(null!==(v=this.client.getTurnServersExpiry())&&void 0!==v?v:0)-Date.now();if(s.vF.info("CallEventHandler handleCallEvent() current turn creds expire in "+t+" ms"),g=null!==(y=(0,i.sv)(this.client,n,{forceTURN:this.client.forceTURN,opponentDeviceId:p,groupCallId:l,opponentSessionId:r.sender_session_id}))&&void 0!==y?y:void 0,!g)return void s.vF.log(`CallEventHandler handleCallEvent() this client does not support WebRTC (callId=${r.call_id})`);g.callId=r.call_id;const o=null===(_=m)||void 0===_?void 0:_.getGroupCallStats();o&&g.initStats(o);try{await g.initWithInvite(e)}catch(e){var b;if(e instanceof i.RA)if(e.code===c.BF.UnknownDevice)null===(b=m)||void 0===b||b.emit(c.AZ.Error,e);else s.vF.error(e)}if(this.calls.set(g.callId,g),this.candidateEventsByCall.get(g.callId))for(const e of this.candidateEventsByCall.get(g.callId))g.onRemoteIceCandidatesReceived(e);let a;for(const e of this.calls.values()){var w;const t=[i.iP.WaitLocalMedia,i.iP.CreateOffer,i.iP.InviteSent].includes(e.state);if(g.roomId===e.roomId&&e.direction===i.QO.Outbound&&(null===(w=g.getOpponentMember())||void 0===w?void 0:w.userId)===e.invitee&&t){a=e;break}}return void(a?a.callId>g.callId?(s.vF.log(`CallEventHandler handleCallEvent() detected glare - answering incoming call and canceling outgoing call (incomingId=${g.callId}, outgoingId=${a.callId})`),a.replacedBy(g)):(s.vF.log(`CallEventHandler handleCallEvent() detected glare - hanging up incoming call (incomingId=${g.callId}, outgoingId=${a.callId})`),g.hangup(i.Il.Replaced,!0)):this.client.emit(d.Incoming,g))}if(u!==o.Bx.CallCandidates){var E;if([o.Bx.CallHangup,o.Bx.CallReject].includes(u))g?g.state!==i.iP.Ended&&(u===o.Bx.CallHangup?g.onHangupReceived(r):g.onRejectReceived(r),g.state===i.iP.Ended&&this.calls.delete(r.call_id)):(g=null!==(E=(0,i.sv)(this.client,n,{opponentDeviceId:p,opponentSessionId:r.sender_session_id}))&&void 0!==E?E:void 0,g&&(g.callId=r.call_id,g.initWithHangup(e),this.calls.set(r.call_id,g)));else if(g&&g.hasPeerConnection){if(e.getContent().party_id!==g.ourPartyId)switch(u){case o.Bx.CallAnswer:f?g.state===i.iP.Ringing&&g.onAnsweredElsewhere(r):g.onAnswerReceived(e);break;case o.Bx.CallSelectAnswer:g.onSelectAnswerReceived(e);break;case o.Bx.CallNegotiate:g.onNegotiateReceived(e);break;case o.Bx.CallAssertedIdentity:case o.Bx.CallAssertedIdentityPrefix:g.onAssertedIdentityReceived(e);break;case o.Bx.CallSDPStreamMetadataChanged:case o.Bx.CallSDPStreamMetadataChangedPrefix:g.onSDPStreamMetadataChangedReceived(e)}}else s.vF.info(`CallEventHandler handleCallEvent() discarding possible call event as we don't have a call (type=${u})`)}else{if(f)return;g?g.onRemoteIceCandidatesReceived(e):(this.candidateEventsByCall.has(r.call_id)||this.candidateEventsByCall.set(r.call_id,[]),this.candidateEventsByCall.get(r.call_id).push(e))}}}}},"./node_modules/matrix-js-sdk/src/webrtc/callEventTypes.ts":(e,t,r)=>{"use strict";r.d(t,{A:()=>n,h:()=>s});const n="org.matrix.msc3077.sdp_stream_metadata";let s=function(e){return e.Usermedia="m.usermedia",e.Screenshare="m.screenshare",e}({})},"./node_modules/matrix-js-sdk/src/webrtc/groupCallEventHandler.ts":(e,t,r)=>{"use strict";r.d(t,{e:()=>u,o:()=>d});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("./node_modules/matrix-js-sdk/src/client.ts"),i=r("./node_modules/matrix-js-sdk/src/webrtc/groupCall.ts"),o=r("./node_modules/matrix-js-sdk/src/models/room-state.ts"),a=r("./node_modules/matrix-js-sdk/src/logger.ts"),c=r("./node_modules/matrix-js-sdk/src/@types/event.ts"),l=r("./node_modules/matrix-js-sdk/src/sync.ts");let d=function(e){return e.Incoming="GroupCall.incoming",e.Outgoing="GroupCall.outgoing",e.Ended="GroupCall.ended",e.Participants="GroupCall.participants",e}({});class u{constructor(e){(0,n.A)(this,"groupCalls",new Map),(0,n.A)(this,"roomDeferreds",new Map),(0,n.A)(this,"onRoomsChanged",e=>{this.createGroupCallForRoom(e)}),(0,n.A)(this,"onRoomStateChanged",(e,t)=>{if(e.getType()===c.Bx.GroupCallPrefix){const r=e.getStateKey(),n=e.getContent(),s=this.groupCalls.get(t.roomId);s||n["m.terminated"]||e.isRedacted()?s&&s.groupCallId===r?n["m.terminated"]||e.isRedacted()?s.terminate(!1):n["m.type"]!==s.type&&a.vF.warn(`GroupCallEventHandler onRoomStateChanged() currently does not support changing type (roomId=${t.roomId})`):s&&s.groupCallId!==r&&a.vF.warn(`GroupCallEventHandler onRoomStateChanged() currently does not support multiple calls (roomId=${t.roomId})`):this.createGroupCallFromRoomStateEvent(e)}}),this.client=e}async start(){this.client.getSyncState()!==l.Lm.Syncing&&(a.vF.debug("GroupCallEventHandler start() waiting for client to start syncing"),await new Promise(e=>{const t=()=>{if(this.client.getSyncState()===l.Lm.Syncing)return this.client.off(s.AU.Sync,t),e()};this.client.on(s.AU.Sync,t)}));const e=this.client.getRooms();for(const t of e)this.createGroupCallForRoom(t);this.client.on(s.AU.Room,this.onRoomsChanged),this.client.on(o.f.Events,this.onRoomStateChanged)}stop(){this.client.removeListener(s.AU.Room,this.onRoomsChanged),this.client.removeListener(o.f.Events,this.onRoomStateChanged)}getRoomDeferred(e){let t=this.roomDeferreds.get(e);if(void 0===t){let r;t={prom:new Promise(e=>{r=e})},t.resolve=r,this.roomDeferreds.set(e,t)}return t}waitUntilRoomReadyForGroupCalls(e){return this.getRoomDeferred(e).prom}getGroupCallById(e){return[...this.groupCalls.values()].find(t=>t.groupCallId===e)}createGroupCallForRoom(e){const t=e.currentState.getStateEvents(c.Bx.GroupCallPrefix),r=t.sort((e,t)=>t.getTs()-e.getTs());for(const n of r){if(!n.getContent()["m.terminated"]&&!n.isRedacted()){a.vF.debug(`GroupCallEventHandler createGroupCallForRoom() choosing group call from possible calls (stateKey=${n.getStateKey()}, ts=${n.getTs()}, roomId=${e.roomId}, numOfPossibleCalls=${t.length})`),this.createGroupCallFromRoomStateEvent(n);break}}this.getRoomDeferred(e.roomId).resolve()}createGroupCallFromRoomStateEvent(e){const t=e.getRoomId(),r=e.getContent(),n=this.client.getRoom(t);if(!n)return void a.vF.warn(`GroupCallEventHandler createGroupCallFromRoomStateEvent() couldn't find room for call (roomId=${t})`);const s=e.getStateKey(),o=r["m.type"];if(!Object.values(i.Ad).includes(o))return void a.vF.warn(`GroupCallEventHandler createGroupCallFromRoomStateEvent() received invalid call type (type=${o}, roomId=${t})`);const c=r["m.intent"];if(!Object.values(i.MC).includes(c))return void a.vF.warn(`Received invalid group call intent (type=${o}, roomId=${t})`);const l=Boolean(r["io.element.ptt"]);let u;if(null!=r&&r.dataChannelsEnabled&&null!=r&&r.dataChannelOptions){const{ordered:e,maxPacketLifeTime:t,maxRetransmits:n,protocol:s}=r.dataChannelOptions;u={ordered:e,maxPacketLifeTime:t,maxRetransmits:n,protocol:s}}const h=new i.eO(this.client,n,o,l,c,s,(null==r?void 0:r.dataChannelsEnabled)||this.client.isVoipWithNoMediaAllowed,u,this.client.isVoipWithNoMediaAllowed,this.client.useLivekitForGroupCalls,r["io.element.livekit_service_url"]);return this.groupCalls.set(n.roomId,h),this.client.emit(d.Incoming,h),h}}},"./node_modules/matrix-js-sdk/src/webrtc/stats/callFeedStatsReporter.ts":(e,t,r)=>{"use strict";r.d(t,{F:()=>n});class n{static buildCallFeedReport(e,t,r){const s=r.getTransceivers(),i=[];return s.forEach(e=>{var t;const r=null!==(t=e.sender)&&void 0!==t&&t.track?n.buildTrackStats(e.sender.track,"sender"):null,s=n.buildTrackStats(e.receiver.track,"receiver");i.push({mid:null==e.mid?"null":e.mid,direction:e.direction,currentDirection:null==e.currentDirection?"null":e.currentDirection,sender:r,receiver:s})}),{callId:e,opponentMemberId:t,transceiver:i,callFeeds:[]}}static buildTrackStats(e,t="--"){var r,n;const s=null===(r=e.getSettings())||void 0===r?void 0:r.deviceId,i=null===(n=e.getConstraints())||void 0===n?void 0:n.deviceId;return{id:e.id,kind:e.kind,settingDeviceId:null!=s?s:"unknown",constrainDeviceId:null!=i?i:"unknown",muted:e.muted,enabled:e.enabled,readyState:e.readyState,label:t}}static expandCallFeedReport(e,t,r="unknown"){return t.forEach(t=>{const s=t.stream.getAudioTracks(),i=t.stream.getVideoTracks(),o=s.length>0?n.buildTrackStats(t.stream.getAudioTracks()[0],t.purpose):null,a=i.length>0?n.buildTrackStats(t.stream.getVideoTracks()[0],t.purpose):null,c={stream:t.stream.id,type:t.isLocal()?"local":"remote",audio:o,video:a,purpose:t.purpose,prefix:r,isVideoMuted:t.isVideoMuted(),isAudioMuted:t.isAudioMuted()};e.callFeeds.push(c)}),e}}},"./node_modules/matrix-js-sdk/src/webrtc/stats/groupCallStats.ts":(e,t,r)=>{"use strict";r.d(t,{r:()=>S});var n=r("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class s{constructor(){(0,n.A)(this,"bandwidth",{}),(0,n.A)(this,"bitrate",{}),(0,n.A)(this,"packetLoss",{}),(0,n.A)(this,"transport",[])}}class i{static buildBandwidthReport(e){const t=e.availableIncomingBitrate,r=e.availableOutgoingBitrate;return{download:t?Math.round(t/1e3):0,upload:r?Math.round(r/1e3):0}}}class o{static buildReport(e,t,r,n){const s=null==e?void 0:e.get(t.localCandidateId),i=null==e?void 0:e.get(t.remoteCandidateId);if(i&&s){const e=`${void 0!==i.ip?i.ip:i.address}:${i.port}`,o=`${void 0!==s.ip?s.ip:s.address}:${s.port}`,a=i.protocol;r.some(t=>t.ip===e&&t.type===a&&t.localIp===o)||r.push({ip:e,type:a,localIp:o,isFocus:n,localCandidateType:s.candidateType,remoteCandidateType:i.candidateType,networkType:s.networkType,rtt:t.currentRoundTripTime?1e3*t.currentRoundTripTime:NaN})}return r}}var a=r("./node_modules/sdp-transform/lib/index.js");class c{constructor(){(0,n.A)(this,"ssrcToMid",{local:new Map,remote:new Map})}findMidBySsrc(e,t){let r;return this.ssrcToMid[t].forEach((t,n)=>{t.find(t=>t==e)&&(r=n)}),r}parse(e,t){const r=(0,a.qg)(e),n=new Map;r.media.forEach(e=>{if(e.mid&&"video"===e.type||"audio"===e.type){var t;const r=[];null===(t=e.ssrcs)||void 0===t||t.forEach(e=>{"cname"===e.attribute&&r.push(`${e.id}`)}),n.set(`${e.mid}`,r)}}),this.ssrcToMid[t]=n}getSsrcToMidMap(e){return this.ssrcToMid[e]}}class l{constructor(e){this.pc=e}getLocalTracks(e){return this.pc.getTransceivers().filter(e=>"sendonly"===e.currentDirection||"sendrecv"===e.currentDirection).filter(e=>null!==e.sender).map(e=>e.sender).map(e=>e.track).filter(t=>null!==t&&t.kind===e)}getTackById(e){return this.pc.getTransceivers().map(t=>null!==(null==t?void 0:t.sender.track)&&t.sender.track.id===e?t.sender.track:null!==(null==t?void 0:t.receiver.track)&&t.receiver.track.id===e?t.receiver.track:void 0).find(e=>void 0!==e)}getLocalTrackIdByMid(e){var t;const r=this.pc.getTransceivers().find(t=>t.mid===e);return null==r||null===(t=r.sender)||void 0===t||null===(t=t.track)||void 0===t?void 0:t.id}getRemoteTrackIdByMid(e){var t;const r=this.pc.getTransceivers().find(t=>t.mid===e);return null==r||null===(t=r.receiver)||void 0===t||null===(t=t.track)||void 0===t?void 0:t.id}getActiveSimulcastStreams(){return 3}getTransceiverByTrackId(e){return this.pc.getTransceivers().find(t=>t.receiver.track.id===e||null!==t.sender.track&&t.sender.track.id===e)}}class d{constructor(e,t,r){(0,n.A)(this,"loss",{packetsTotal:0,packetsLost:0,isDownloadStream:!1}),(0,n.A)(this,"bitrate",{download:0,upload:0}),(0,n.A)(this,"resolution",{width:-1,height:-1}),(0,n.A)(this,"audioConcealment",{concealedAudio:0,totalAudioDuration:0}),(0,n.A)(this,"framerate",0),(0,n.A)(this,"jitter",0),(0,n.A)(this,"codec",""),(0,n.A)(this,"isAlive",!0),(0,n.A)(this,"isMuted",!1),(0,n.A)(this,"isEnabled",!0),this.trackId=e,this.type=t,this.kind=r}getType(){return this.type}setLoss(e){this.loss=e}getLoss(){return this.loss}setResolution(e){this.resolution=e}getResolution(){return this.resolution}setFramerate(e){this.framerate=e}getFramerate(){return this.framerate}setBitrate(e){this.bitrate=e}getBitrate(){return this.bitrate}setCodec(e){return this.codec=e,!0}getCodec(){return this.codec}resetBitrate(){this.bitrate={download:0,upload:0}}set alive(e){this.isAlive=e}get alive(){return this.isAlive}set muted(e){this.isMuted=e}get muted(){return this.isMuted}set enabled(e){this.isEnabled=e}get enabled(){return this.isEnabled}setJitter(e){this.jitter=e}getJitter(){return this.jitter}setAudioConcealment(e,t){this.audioConcealment.concealedAudio=e,this.audioConcealment.totalAudioDuration=t}getAudioConcealment(){return this.audioConcealment}}class u{constructor(e,t){(0,n.A)(this,"track2stats",new Map),this.mediaSsrcHandler=e,this.mediaTrackHandler=t}findTrack2Stats(e,t){let r;if(e.trackIdentifier)r=e.trackIdentifier;else if(e.mid)r="remote"===t?this.mediaTrackHandler.getRemoteTrackIdByMid(e.mid):this.mediaTrackHandler.getLocalTrackIdByMid(e.mid);else if(e.ssrc){if(!this.mediaSsrcHandler.findMidBySsrc(e.ssrc,t))return;r="remote"===t?this.mediaTrackHandler.getRemoteTrackIdByMid(e.mid):this.mediaTrackHandler.getLocalTrackIdByMid(e.mid)}if(!r)return;let n=this.track2stats.get(r);if(!n){const e=this.mediaTrackHandler.getTackById(r);if(void 0===e)return;{const s="audio"===e.kind?e.kind:"video";n=new d(r,t,s),this.track2stats.set(r,n)}}return n}findLocalVideoTrackStats(e){if(0!==this.mediaTrackHandler.getLocalTracks("video").length)return this.findTrack2Stats(e,"local")}getTrack2stats(){return this.track2stats}findTransceiverByTrackId(e){return this.mediaTrackHandler.getTransceiverByTrackId(e)}}class h{static getNonNegativeValue(e){let t=e;return"number"!=typeof t&&(t=Number(t)),isNaN(t)?0:Math.max(0,t)}}class p{static buildFramerateResolution(e,t){const r={height:t.frameHeight,width:t.frameWidth},n=t.framesPerSecond;r.height&&r.width&&e.setResolution(r),e.setFramerate(Math.round(n||0))}static calculateSimulcastFramerate(e,t,r,n){let s=e.getFramerate();if(!s){if(r){const e=t.timestamp-r.timestamp;if(e>0&&t.framesSent){s=(t.framesSent-r.framesSent)/e*1e3}}if(!s)return}s=n?Math.round(s/n):0,e.setFramerate(s)}static buildCodec(e,t,r){const n=null==e?void 0:e.get(r.codecId);if(n){const e=n.mimeType.split("/")[1];e&&t.setCodec(e)}}static buildBitrateReceived(e,t,r){e.setBitrate({download:p.calculateBitrate(t.bytesReceived,r.bytesReceived,t.timestamp,r.timestamp),upload:0})}static buildBitrateSend(e,t,r){e.setBitrate({download:0,upload:this.calculateBitrate(t.bytesSent,r.bytesSent,t.timestamp,r.timestamp)})}static buildPacketsLost(e,t,r){const n="outbound-rtp"===t.type?"packetsSent":"packetsReceived";let s=t[n];(!s||s<0)&&(s=0);const i=h.getNonNegativeValue(r[n]),o=Math.max(0,s-i),a=h.getNonNegativeValue(t.packetsLost),c=h.getNonNegativeValue(r.packetsLost),l=Math.max(0,a-c);e.setLoss({packetsTotal:o+l,packetsLost:l,isDownloadStream:"outbound-rtp"!==t.type})}static calculateBitrate(e,t,r,n){const s=h.getNonNegativeValue(e),i=h.getNonNegativeValue(t),o=Math.max(0,s-i),a=r-n;let c=0;return a>0&&(c=Math.round(8*o/a)),c}static setTrackStatsState(e,t){var r;if(void 0===t)return void(e.alive=!1);const n="remote"===e.getType()?t.receiver.track:null==t||null===(r=t.sender)||void 0===r?void 0:r.track;null!=n&&"ended"!==n.readyState?(e.muted=n.muted,e.enabled=n.enabled,e.alive=!0):e.alive=!1}static buildTrackSummary(e){const t={count:0,muted:0,maxJitter:0,maxPacketLoss:0,concealedAudio:0,totalAudio:0},r={count:0,muted:0,maxJitter:0,maxPacketLoss:0,concealedAudio:0,totalAudio:0},n=e.filter(e=>"remote"===e.getType()),s=n.filter(e=>"audio"===e.kind);return n.forEach(e=>{const n="video"===e.kind?t:r;var i,o;(n.count++,e.alive&&e.muted&&n.muted++,n.maxJitter<e.getJitter()&&(n.maxJitter=e.getJitter()),n.maxPacketLoss<e.getLoss().packetsLost&&(n.maxPacketLoss=e.getLoss().packetsLost),s.length>0)&&(n.concealedAudio+=null===(i=e.getAudioConcealment())||void 0===i?void 0:i.concealedAudio,n.totalAudio+=null===(o=e.getAudioConcealment())||void 0===o?void 0:o.totalAudioDuration)}),{audioTrackSummary:r,videoTrackSummary:t}}static buildJitter(e,t){if("inbound-rtp"!==t.type)return;const r=null==t?void 0:t.jitter;if(void 0!==r){const t=h.getNonNegativeValue(r);e.setJitter(Math.round(1e3*t))}else e.setJitter(-1)}static buildAudioConcealment(e,t){if("inbound-rtp"!==t.type)return;const r=1e3*(null==t?void 0:t.totalSamplesDuration)/(null==t?void 0:t.totalSamplesReceived)*(null==t?void 0:t.concealedSamples),n=1e3*(null==t?void 0:t.totalSamplesDuration);e.setAudioConcealment(r,n)}}class m{static build(e){const t={},r={download:0,upload:0},n={download:0,upload:0};let s=0,i=0;const o={local:new Map,remote:new Map},a={local:new Map,remote:new Map},c={local:new Map,remote:new Map},l=new Map,d=new Map;let u=0,h=0,p=0,g=0,f=0,v=0;for(const[t,m]of e){const e=m.getLoss(),y=e.isDownloadStream?"download":"upload";if(r[y]+=e.packetsTotal,n[y]+=e.packetsLost,s+=m.getBitrate().download,i+=m.getBitrate().upload,"audio"===m.kind){const e=m.getAudioConcealment();f+=e.concealedAudio,v+=e.totalAudioDuration,u+=m.getBitrate().download,h+=m.getBitrate().upload}else p+=m.getBitrate().download,g+=m.getBitrate().upload;o[m.getType()].set(t,m.getResolution()),a[m.getType()].set(t,m.getFramerate()),c[m.getType()].set(t,m.getCodec()),"remote"===m.getType()&&(l.set(t,m.getJitter()),"audio"===m.kind&&d.set(t,m.getAudioConcealment())),m.resetBitrate()}return t.bitrate={upload:i,download:s},t.bitrate.audio={upload:h,download:u},t.bitrate.video={upload:g,download:p},t.packetLoss={total:m.calculatePacketLoss(n.download+n.upload,r.download+r.upload),download:m.calculatePacketLoss(n.download,r.download),upload:m.calculatePacketLoss(n.upload,r.upload)},t.audioConcealment=d,t.totalAudioConcealment={concealedAudio:f,totalAudioDuration:v},t.framerate=a,t.resolution=o,t.codec=c,t.jitter=l,t}static calculatePacketLoss(e,t){return!t||t<=0||!e||e<=0?0:Math.round(e/t*100)}}var g=r("./node_modules/matrix-js-sdk/src/logger.ts"),f=r("./node_modules/matrix-js-sdk/src/webrtc/stats/callFeedStatsReporter.ts");function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}class _{constructor(e,t,r,i,o=!0){(0,n.A)(this,"isActive",!0),(0,n.A)(this,"previousStatsReport",void 0),(0,n.A)(this,"currentStatsReport",void 0),(0,n.A)(this,"connectionStats",new s),(0,n.A)(this,"trackStats",void 0),this.callId=e,this.opponentMemberId=t,this.pc=r,this.emitter=i,this.isFocus=o,r.addEventListener("signalingstatechange",this.onSignalStateChange.bind(this)),this.trackStats=new u(new c,new l(r))}async processStats(e,t){const r={isFirstCollection:void 0===this.previousStatsReport,receivedMedia:0,receivedAudioMedia:0,receivedVideoMedia:0,audioTrackSummary:{count:0,muted:0,maxPacketLoss:0,maxJitter:0,concealedAudio:0,totalAudio:0},videoTrackSummary:{count:0,muted:0,maxPacketLoss:0,maxJitter:0,concealedAudio:0,totalAudio:0}};if(this.isActive){const n=this.pc.getStats();if("function"==typeof(null==n?void 0:n.then))return n.then(n=>{var s,i;this.currentStatsReport="function"==typeof(null==n?void 0:n.result)?n.result():n;try{this.processStatsReport(e,t)}catch(e){return this.handleError(e),r}this.previousStatsReport=this.currentStatsReport,r.receivedMedia=this.connectionStats.bitrate.download,r.receivedAudioMedia=(null===(s=this.connectionStats.bitrate.audio)||void 0===s?void 0:s.download)||0,r.receivedVideoMedia=(null===(i=this.connectionStats.bitrate.video)||void 0===i?void 0:i.download)||0;const o=p.buildTrackSummary(Array.from(this.trackStats.getTrack2stats().values()));return y(y({},r),{},{audioTrackSummary:o.audioTrackSummary,videoTrackSummary:o.videoTrackSummary})}).catch(e=>(this.handleError(e),r));this.isActive=!1}return Promise.resolve(r)}processStatsReport(e,t){var r;const n=new Map;n.callId=this.callId,n.opponentMemberId=this.opponentMemberId,null===(r=this.currentStatsReport)||void 0===r||r.forEach(e=>{const t=this.previousStatsReport?this.previousStatsReport.get(e.id):null;if("candidate-pair"===e.type&&e.nominated&&"succeeded"===e.state)this.connectionStats.bandwidth=i.buildBandwidthReport(e),this.connectionStats.transport=o.buildReport(this.currentStatsReport,e,this.connectionStats.transport,this.isFocus);else if("inbound-rtp"===e.type||"outbound-rtp"===e.type){const r=this.trackStats.findTrack2Stats(e,"inbound-rtp"===e.type?"remote":"local");if(!r)return;if(t&&p.buildPacketsLost(r,e,t),"inbound-rtp"===e.type){p.buildFramerateResolution(r,e),t&&p.buildBitrateReceived(r,e,t);const n=this.trackStats.findTransceiverByTrackId(r.trackId);p.setTrackStatsState(r,n),p.buildJitter(r,e),p.buildAudioConcealment(r,e)}else t&&(n.set(r.trackId,h.getNonNegativeValue(e.bytesSent)),p.buildBitrateSend(r,e,t));p.buildCodec(this.currentStatsReport,r,e)}else if("track"===e.type&&"video"===e.kind&&!e.remoteSource){const r=this.trackStats.findLocalVideoTrackStats(e);if(!r)return;p.buildFramerateResolution(r,e),p.calculateSimulcastFramerate(r,e,t,this.trackStats.mediaTrackHandler.getActiveSimulcastStreams())}}),this.emitter.emitByteSendReport(n),this.emitter.emitCallFeedReport(f.F.buildCallFeedReport(this.callId,this.opponentMemberId,this.pc)),this.processAndEmitConnectionStatsReport()}setActive(e){this.isActive=e}getActive(){return this.isActive}handleError(e){this.isActive=!1,g.vF.warn(`CallStatsReportGatherer ${this.callId} processStatsReport fails and set to inactive ${e}`)}processAndEmitConnectionStatsReport(){const e=m.build(this.trackStats.getTrack2stats());e.callId=this.callId,e.opponentMemberId=this.opponentMemberId,this.connectionStats.bandwidth=e.bandwidth,this.connectionStats.bitrate=e.bitrate,this.connectionStats.packetLoss=e.packetLoss,this.emitter.emitConnectionStatsReport(y(y({},e),{},{transport:this.connectionStats.transport})),this.connectionStats.transport=[]}stopProcessingStats(){}onSignalStateChange(){"stable"===this.pc.signalingState&&(this.pc.currentRemoteDescription&&this.trackStats.mediaSsrcHandler.parse(this.pc.currentRemoteDescription.sdp,"remote"),this.pc.currentLocalDescription&&this.trackStats.mediaSsrcHandler.parse(this.pc.currentLocalDescription.sdp,"local"))}setOpponentMemberId(e){this.opponentMemberId=e}}var b=r("./node_modules/matrix-js-sdk/src/models/typed-event-emitter.ts"),w=r("./node_modules/matrix-js-sdk/src/webrtc/stats/statsReport.ts");class E extends b.X{emitByteSendReport(e){this.emit(w.I.BYTE_SENT_STATS,e)}emitConnectionStatsReport(e){this.emit(w.I.CONNECTION_STATS,e)}emitCallFeedReport(e){this.emit(w.I.CALL_FEED_REPORT,e)}emitSummaryStatsReport(e){this.emit(w.I.SUMMARY_STATS,e)}}var k=r("./node_modules/matrix-js-sdk/src/webrtc/stats/summaryStatsReportGatherer.ts");class S{constructor(e,t,r=1e4){(0,n.A)(this,"timer",void 0),(0,n.A)(this,"gatherers",new Map),(0,n.A)(this,"reports",new E),(0,n.A)(this,"summaryStatsReportGatherer",new k.Q(this.reports)),this.groupCallId=e,this.userId=t,this.interval=r}start(){void 0===this.timer&&this.interval>0&&(this.timer=setInterval(()=>{this.processStats()},this.interval))}stop(){void 0!==this.timer&&(clearInterval(this.timer),this.gatherers.forEach(e=>e.stopProcessingStats()))}hasStatsReportGatherer(e){return this.gatherers.has(e)}addStatsReportGatherer(e,t,r){return!this.hasStatsReportGatherer(e)&&(this.gatherers.set(e,new _(e,t,r,this.reports)),!0)}removeStatsReportGatherer(e){return this.gatherers.delete(e)}getStatsReportGatherer(e){return this.hasStatsReportGatherer(e)?this.gatherers.get(e):void 0}updateOpponentMember(e,t){var r;null===(r=this.getStatsReportGatherer(e))||void 0===r||r.setOpponentMemberId(t)}processStats(){const e=[];this.gatherers.forEach(t=>{e.push(t.processStats(this.groupCallId,this.userId))}),Promise.all(e).then(e=>this.summaryStatsReportGatherer.build(e)).catch(e=>{g.vF.error("Could not build summary stats report",e)})}setInterval(e){this.interval=e}}},"./node_modules/matrix-js-sdk/src/webrtc/stats/summaryStatsReportGatherer.ts":(e,t,r)=>{"use strict";r.d(t,{Q:()=>n});class n{constructor(e){this.emitter=e}build(e){const t=e.filter(e=>!e.isFirstCollection),r=t.length,n=e.length;if(0===r)return;const s={receivedAudio:0,receivedVideo:0,receivedMedia:0,concealedAudio:0,totalAudio:0};let i=0,o=0;t.forEach(e=>{this.countTrackListReceivedMedia(s,e),this.countConcealedAudio(s,e),i=this.buildMaxJitter(i,e),o=this.buildMaxPacketLoss(o,e)});const a={percentageReceivedMedia:Number((s.receivedMedia/r).toFixed(5)),percentageReceivedVideoMedia:Number((s.receivedVideo/r).toFixed(5)),percentageReceivedAudioMedia:Number((s.receivedAudio/r).toFixed(5)),maxJitter:i,maxPacketLoss:o,percentageConcealedAudio:Number(s.totalAudio>0?(s.concealedAudio/s.totalAudio).toFixed(5):0),peerConnections:n};this.emitter.emitSummaryStatsReport(a)}static extendSummaryReport(e,t){const r=[],n=[];for(const e of t){n.push(e);for(const t of e[1])r.push(t)}e.opponentDevicesInCall=Math.max(0,r.length-1),e.opponentUsersInCall=Math.max(0,n.length-1),e.diffDevicesToPeerConnections=Math.max(0,r.length-1)-e.peerConnections,e.ratioPeerConnectionToDevices=0==Math.max(0,r.length-1)?0:e.peerConnections/(r.length-1)}countTrackListReceivedMedia(e,t){let r=!1,n=!1;(t.receivedAudioMedia>0||0===t.audioTrackSummary.count)&&(e.receivedAudio++,r=!0),(t.receivedVideoMedia>0||0===t.videoTrackSummary.count||t.videoTrackSummary.muted>0&&t.videoTrackSummary.muted===t.videoTrackSummary.count)&&(e.receivedVideo++,n=!0),n&&r&&e.receivedMedia++}buildMaxJitter(e,t){return e<t.videoTrackSummary.maxJitter&&(e=t.videoTrackSummary.maxJitter),e<t.audioTrackSummary.maxJitter&&(e=t.audioTrackSummary.maxJitter),e}buildMaxPacketLoss(e,t){return e<t.videoTrackSummary.maxPacketLoss&&(e=t.videoTrackSummary.maxPacketLoss),e<t.audioTrackSummary.maxPacketLoss&&(e=t.audioTrackSummary.maxPacketLoss),e}countConcealedAudio(e,t){e.concealedAudio+=t.audioTrackSummary.concealedAudio,e.totalAudio+=t.audioTrackSummary.totalAudio}}},"./node_modules/oidc-client-ts/dist/umd/oidc-client-ts.js":(e,t,r)=>{"use strict";var n,s=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:!0})})(c,{AccessTokenEvents:()=>I,CheckSessionIFrame:()=>R,DPoPState:()=>V,ErrorResponse:()=>x,ErrorTimeout:()=>T,InMemoryWebStorage:()=>j,IndexedDbDPoPStore:()=>ge,Log:()=>p,Logger:()=>m,MetadataService:()=>M,OidcClient:()=>z,OidcClientSettingsStore:()=>A,SessionMonitor:()=>Q,SigninResponse:()=>$,SigninState:()=>F,SignoutResponse:()=>H,State:()=>U,User:()=>X,UserManager:()=>pe,UserManagerSettingsStore:()=>se,Version:()=>me,WebStorageStateStore:()=>C}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of o(t))a.call(e,c)||c===r||s(e,c,{get:()=>t[c],enumerable:!(n=i(t,c))||n.enumerable});return e})(s({},"__esModule",{value:!0}),n));var l,d,u,h={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},p=(e=>(e[e.NONE=0]="NONE",e[e.ERROR=1]="ERROR",e[e.WARN=2]="WARN",e[e.INFO=3]="INFO",e[e.DEBUG=4]="DEBUG",e))(p||{});(u=p||(p={})).reset=function(){l=3,d=h},u.setLevel=function(e){if(!(0<=e&&e<=4))throw new Error("Invalid log level");l=e},u.setLogger=function(e){d=e};var m=class e{constructor(e){this._name=e}debug(...t){l>=4&&d.debug(e._format(this._name,this._method),...t)}info(...t){l>=3&&d.info(e._format(this._name,this._method),...t)}warn(...t){l>=2&&d.warn(e._format(this._name,this._method),...t)}error(...t){l>=1&&d.error(e._format(this._name,this._method),...t)}throw(e){throw this.error(e),e}create(e){const t=Object.create(this);return t._method=e,t.debug("begin"),t}static createStatic(t,r){const n=new e(`${t}.${r}`);return n.debug("begin"),n}static _format(e,t){const r=`[${e}]`;return t?`${r} ${t}:`:r}static debug(t,...r){l>=4&&d.debug(e._format(t),...r)}static info(t,...r){l>=3&&d.info(e._format(t),...r)}static warn(t,...r){l>=2&&d.warn(e._format(t),...r)}static error(t,...r){l>=1&&d.error(e._format(t),...r)}};p.reset();var g=r("./node_modules/jwt-decode/build/cjs/index.js"),f=class{static decode(e){try{return(0,g.jwtDecode)(e)}catch(e){throw m.error("JwtUtils.decode",e),e}}static async generateSignedJwt(e,t,r){const n=`${_.encodeBase64Url((new TextEncoder).encode(JSON.stringify(e)))}.${_.encodeBase64Url((new TextEncoder).encode(JSON.stringify(t)))}`,s=await window.crypto.subtle.sign({name:"ECDSA",hash:{name:"SHA-256"}},r,(new TextEncoder).encode(n));return`${n}.${_.encodeBase64Url(new Uint8Array(s))}`}},v=e=>btoa([...new Uint8Array(e)].map(e=>String.fromCharCode(e)).join("")),y=class e{static _randomWord(){const e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}static generateUUIDv4(){return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,t=>(+t^e._randomWord()&15>>+t/4).toString(16)).replace(/-/g,"")}static generateCodeVerifier(){return e.generateUUIDv4()+e.generateUUIDv4()+e.generateUUIDv4()}static async generateCodeChallenge(e){if(!crypto.subtle)throw new Error("Crypto.subtle is available only in secure contexts (HTTPS).");try{const t=(new TextEncoder).encode(e),r=await crypto.subtle.digest("SHA-256",t);return v(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}catch(e){throw m.error("CryptoUtils.generateCodeChallenge",e),e}}static generateBasicAuth(e,t){const r=(new TextEncoder).encode([e,t].join(":"));return v(r)}static async hash(e,t){const r=(new TextEncoder).encode(t),n=await crypto.subtle.digest(e,r);return new Uint8Array(n)}static async customCalculateJwkThumbprint(t){let r;switch(t.kty){case"RSA":r={e:t.e,kty:t.kty,n:t.n};break;case"EC":r={crv:t.crv,kty:t.kty,x:t.x,y:t.y};break;case"OKP":r={crv:t.crv,kty:t.kty,x:t.x};break;case"oct":r={crv:t.k,kty:t.kty};break;default:throw new Error("Unknown jwk type")}const n=await e.hash("SHA-256",JSON.stringify(r));return e.encodeBase64Url(n)}static async generateDPoPProof({url:t,accessToken:r,httpMethod:n,keyPair:s,nonce:i}){let o,a;const c={jti:window.crypto.randomUUID(),htm:null!=n?n:"GET",htu:t,iat:Math.floor(Date.now()/1e3)};r&&(o=await e.hash("SHA-256",r),a=e.encodeBase64Url(o),c.ath=a),i&&(c.nonce=i);try{const e=await crypto.subtle.exportKey("jwk",s.publicKey),t={alg:"ES256",typ:"dpop+jwt",jwk:{crv:e.crv,kty:e.kty,x:e.x,y:e.y}};return await f.generateSignedJwt(t,c,s.privateKey)}catch(e){throw e instanceof TypeError?new Error(`Error exporting dpop public key: ${e.message}`):e}}static async generateDPoPJkt(t){try{const r=await crypto.subtle.exportKey("jwk",t.publicKey);return await e.customCalculateJwkThumbprint(r)}catch(e){throw e instanceof TypeError?new Error(`Could not retrieve dpop keys from storage: ${e.message}`):e}}static async generateDPoPKeys(){return await window.crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},!1,["sign","verify"])}};y.encodeBase64Url=e=>v(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_");var _=y,b=class{constructor(e){this._name=e,this._callbacks=[],this._logger=new m(`Event('${this._name}')`)}addHandler(e){return this._callbacks.push(e),()=>this.removeHandler(e)}removeHandler(e){const t=this._callbacks.lastIndexOf(e);t>=0&&this._callbacks.splice(t,1)}async raise(...e){this._logger.debug("raise:",...e);for(const t of this._callbacks)await t(...e)}},w=class{static center({...e}){var t;return null==e.width&&(e.width=null!=(t=[800,720,600,480].find(e=>e<=window.outerWidth/1.618))?t:360),null!=e.left||(e.left=Math.max(0,Math.round(window.screenX+(window.outerWidth-e.width)/2))),null!=e.height&&(null!=e.top||(e.top=Math.max(0,Math.round(window.screenY+(window.outerHeight-e.height)/2)))),e}static serialize(e){return Object.entries(e).filter(([,e])=>null!=e).map(([e,t])=>`${e}=${"boolean"!=typeof t?t:t?"yes":"no"}`).join(",")}},E=class e extends b{constructor(){super(...arguments),this._logger=new m(`Timer('${this._name}')`),this._timerHandle=null,this._expiration=0,this._callback=()=>{const t=this._expiration-e.getEpochTime();this._logger.debug("timer completes in",t),this._expiration<=e.getEpochTime()&&(this.cancel(),super.raise())}}static getEpochTime(){return Math.floor(Date.now()/1e3)}init(t){const r=this._logger.create("init");t=Math.max(Math.floor(t),1);const n=e.getEpochTime()+t;if(this.expiration===n&&this._timerHandle)return void r.debug("skipping since already initialized for expiration at",this.expiration);this.cancel(),r.debug("using duration",t),this._expiration=n;const s=Math.min(t,5);this._timerHandle=setInterval(this._callback,1e3*s)}get expiration(){return this._expiration}cancel(){this._logger.create("cancel"),this._timerHandle&&(clearInterval(this._timerHandle),this._timerHandle=null)}},k=class{static readParams(e,t="query"){if(!e)throw new TypeError("Invalid URL");const r=new URL(e,"http://127.0.0.1")["fragment"===t?"hash":"search"];return new URLSearchParams(r.slice(1))}},S=";",x=class extends Error{constructor(e,t){var r,n,s;if(super(e.error_description||e.error||""),this.form=t,this.name="ErrorResponse",!e.error)throw m.error("ErrorResponse","No error passed"),new Error("No error passed");this.error=e.error,this.error_description=null!=(r=e.error_description)?r:null,this.error_uri=null!=(n=e.error_uri)?n:null,this.state=e.userState,this.session_state=null!=(s=e.session_state)?s:null,this.url_state=e.url_state}},T=class extends Error{constructor(e){super(e),this.name="ErrorTimeout"}},I=class{constructor(e){this._logger=new m("AccessTokenEvents"),this._expiringTimer=new E("Access token expiring"),this._expiredTimer=new E("Access token expired"),this._expiringNotificationTimeInSeconds=e.expiringNotificationTimeInSeconds}async load(e){const t=this._logger.create("load");if(e.access_token&&void 0!==e.expires_in){const r=e.expires_in;if(t.debug("access token present, remaining duration:",r),r>0){let e=r-this._expiringNotificationTimeInSeconds;e<=0&&(e=1),t.debug("registering expiring timer, raising in",e,"seconds"),this._expiringTimer.init(e)}else t.debug("canceling existing expiring timer because we're past expiration."),this._expiringTimer.cancel();const n=r+1;t.debug("registering expired timer, raising in",n,"seconds"),this._expiredTimer.init(n)}else this._expiringTimer.cancel(),this._expiredTimer.cancel()}async unload(){this._logger.debug("unload: canceling existing access token timers"),this._expiringTimer.cancel(),this._expiredTimer.cancel()}addAccessTokenExpiring(e){return this._expiringTimer.addHandler(e)}removeAccessTokenExpiring(e){this._expiringTimer.removeHandler(e)}addAccessTokenExpired(e){return this._expiredTimer.addHandler(e)}removeAccessTokenExpired(e){this._expiredTimer.removeHandler(e)}},R=class{constructor(e,t,r,n,s){this._callback=e,this._client_id=t,this._intervalInSeconds=n,this._stopOnError=s,this._logger=new m("CheckSessionIFrame"),this._timer=null,this._session_state=null,this._message=e=>{e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&("error"===e.data?(this._logger.error("error message from check session op iframe"),this._stopOnError&&this.stop()):"changed"===e.data?(this._logger.debug("changed message from check session op iframe"),this.stop(),this._callback()):this._logger.debug(e.data+" message from check session op iframe"))};const i=new URL(r);this._frame_origin=i.origin,this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="fixed",this._frame.style.left="-1000px",this._frame.style.top="0",this._frame.width="0",this._frame.height="0",this._frame.src=i.href}load(){return new Promise(e=>{this._frame.onload=()=>{e()},window.document.body.appendChild(this._frame),window.addEventListener("message",this._message,!1)})}start(e){if(this._session_state===e)return;this._logger.create("start"),this.stop(),this._session_state=e;const t=()=>{this._frame.contentWindow&&this._session_state&&this._frame.contentWindow.postMessage(this._client_id+" "+this._session_state,this._frame_origin)};t(),this._timer=setInterval(t,1e3*this._intervalInSeconds)}stop(){this._logger.create("stop"),this._session_state=null,this._timer&&(clearInterval(this._timer),this._timer=null)}},j=class{constructor(){this._logger=new m("InMemoryWebStorage"),this._data={}}clear(){this._logger.create("clear"),this._data={}}getItem(e){return this._logger.create(`getItem('${e}')`),this._data[e]}setItem(e,t){this._logger.create(`setItem('${e}')`),this._data[e]=t}removeItem(e){this._logger.create(`removeItem('${e}')`),delete this._data[e]}get length(){return Object.getOwnPropertyNames(this._data).length}key(e){return Object.getOwnPropertyNames(this._data)[e]}},O=class extends Error{constructor(e,t){super(t),this.name="ErrorDPoPNonce",this.nonce=e}},P=class{constructor(e=[],t=null,r={}){this._jwtHandler=t,this._extraHeaders=r,this._logger=new m("JsonService"),this._contentTypes=[],this._contentTypes.push(...e,"application/json"),t&&this._contentTypes.push("application/jwt")}async fetchWithTimeout(e,t={}){const{timeoutInSeconds:r,...n}=t;if(!r)return await fetch(e,n);const s=new AbortController,i=setTimeout(()=>s.abort(),1e3*r);try{return await fetch(e,{...t,signal:s.signal})}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)throw new T("Network timed out");throw e}finally{clearTimeout(i)}}async getJson(e,{token:t,credentials:r,timeoutInSeconds:n}={}){const s=this._logger.create("getJson"),i={Accept:this._contentTypes.join(", ")};let o;t&&(s.debug("token passed, setting Authorization header"),i.Authorization="Bearer "+t),this._appendExtraHeaders(i);try{s.debug("url:",e),o=await this.fetchWithTimeout(e,{method:"GET",headers:i,timeoutInSeconds:n,credentials:r})}catch(e){throw s.error("Network Error"),e}s.debug("HTTP response received, status",o.status);const a=o.headers.get("Content-Type");if(a&&!this._contentTypes.find(e=>a.startsWith(e))&&s.throw(new Error(`Invalid response Content-Type: ${null!=a?a:"undefined"}, from URL: ${e}`)),o.ok&&this._jwtHandler&&(null==a?void 0:a.startsWith("application/jwt")))return await this._jwtHandler(await o.text());let c;try{c=await o.json()}catch(e){if(s.error("Error parsing JSON response",e),o.ok)throw e;throw new Error(`${o.statusText} (${o.status})`)}if(!o.ok){if(s.error("Error from server:",c),c.error)throw new x(c);throw new Error(`${o.statusText} (${o.status}): ${JSON.stringify(c)}`)}return c}async postForm(e,{body:t,basicAuth:r,timeoutInSeconds:n,initCredentials:s,extraHeaders:i}){const o=this._logger.create("postForm"),a={Accept:this._contentTypes.join(", "),"Content-Type":"application/x-www-form-urlencoded",...i};let c;void 0!==r&&(a.Authorization="Basic "+r),this._appendExtraHeaders(a);try{o.debug("url:",e),c=await this.fetchWithTimeout(e,{method:"POST",headers:a,body:t,timeoutInSeconds:n,credentials:s})}catch(e){throw o.error("Network error"),e}o.debug("HTTP response received, status",c.status);const l=c.headers.get("Content-Type");if(l&&!this._contentTypes.find(e=>l.startsWith(e)))throw new Error(`Invalid response Content-Type: ${null!=l?l:"undefined"}, from URL: ${e}`);const d=await c.text();let u={};if(d)try{u=JSON.parse(d)}catch(e){if(o.error("Error parsing JSON response",e),c.ok)throw e;throw new Error(`${c.statusText} (${c.status})`)}if(!c.ok){if(o.error("Error from server:",u),c.headers.has("dpop-nonce")){const e=c.headers.get("dpop-nonce");throw new O(e,`${JSON.stringify(u)}`)}if(u.error)throw new x(u,t);throw new Error(`${c.statusText} (${c.status}): ${JSON.stringify(u)}`)}return u}_appendExtraHeaders(e){const t=this._logger.create("appendExtraHeaders"),r=Object.keys(this._extraHeaders),n=["accept","content-type"],s=["authorization"];0!==r.length&&r.forEach(r=>{if(n.includes(r.toLocaleLowerCase()))return void t.warn("Protected header could not be set",r,n);if(s.includes(r.toLocaleLowerCase())&&Object.keys(e).includes(r))return void t.warn("Header could not be overridden",r,s);const i="function"==typeof this._extraHeaders[r]?this._extraHeaders[r]():this._extraHeaders[r];i&&""!==i&&(e[r]=i)})}},M=class{constructor(e){this._settings=e,this._logger=new m("MetadataService"),this._signingKeys=null,this._metadata=null,this._metadataUrl=this._settings.metadataUrl,this._jsonService=new P(["application/jwk-set+json"],null,this._settings.extraHeaders),this._settings.signingKeys&&(this._logger.debug("using signingKeys from settings"),this._signingKeys=this._settings.signingKeys),this._settings.metadata&&(this._logger.debug("using metadata from settings"),this._metadata=this._settings.metadata),this._settings.fetchRequestCredentials&&(this._logger.debug("using fetchRequestCredentials from settings"),this._fetchRequestCredentials=this._settings.fetchRequestCredentials)}resetSigningKeys(){this._signingKeys=null}async getMetadata(){const e=this._logger.create("getMetadata");if(this._metadata)return e.debug("using cached values"),this._metadata;if(!this._metadataUrl)throw e.throw(new Error("No authority or metadataUrl configured on settings")),null;e.debug("getting metadata from",this._metadataUrl);const t=await this._jsonService.getJson(this._metadataUrl,{credentials:this._fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return e.debug("merging remote JSON with seed metadata"),this._metadata=Object.assign({},t,this._settings.metadataSeed),this._metadata}getIssuer(){return this._getMetadataProperty("issuer")}getAuthorizationEndpoint(){return this._getMetadataProperty("authorization_endpoint")}getUserInfoEndpoint(){return this._getMetadataProperty("userinfo_endpoint")}getTokenEndpoint(e=!0){return this._getMetadataProperty("token_endpoint",e)}getCheckSessionIframe(){return this._getMetadataProperty("check_session_iframe",!0)}getEndSessionEndpoint(){return this._getMetadataProperty("end_session_endpoint",!0)}getRevocationEndpoint(e=!0){return this._getMetadataProperty("revocation_endpoint",e)}getKeysEndpoint(e=!0){return this._getMetadataProperty("jwks_uri",e)}async _getMetadataProperty(e,t=!1){const r=this._logger.create(`_getMetadataProperty('${e}')`),n=await this.getMetadata();if(r.debug("resolved"),void 0===n[e]){if(!0===t)return void r.warn("Metadata does not contain optional property");r.throw(new Error("Metadata does not contain property "+e))}return n[e]}async getSigningKeys(){const e=this._logger.create("getSigningKeys");if(this._signingKeys)return e.debug("returning signingKeys from cache"),this._signingKeys;const t=await this.getKeysEndpoint(!1);e.debug("got jwks_uri",t);const r=await this._jsonService.getJson(t,{timeoutInSeconds:this._settings.requestTimeoutInSeconds});if(e.debug("got key set",r),!Array.isArray(r.keys))throw e.throw(new Error("Missing keys on keyset")),null;return this._signingKeys=r.keys,this._signingKeys}},C=class{constructor({prefix:e="oidc.",store:t=localStorage}={}){this._logger=new m("WebStorageStateStore"),this._store=t,this._prefix=e}async set(e,t){this._logger.create(`set('${e}')`),e=this._prefix+e,await this._store.setItem(e,t)}async get(e){this._logger.create(`get('${e}')`),e=this._prefix+e;return await this._store.getItem(e)}async remove(e){this._logger.create(`remove('${e}')`),e=this._prefix+e;const t=await this._store.getItem(e);return await this._store.removeItem(e),t}async getAllKeys(){this._logger.create("getAllKeys");const e=await this._store.length,t=[];for(let r=0;r<e;r++){const e=await this._store.key(r);e&&0===e.indexOf(this._prefix)&&t.push(e.substr(this._prefix.length))}return t}},A=class{constructor({authority:e,metadataUrl:t,metadata:r,signingKeys:n,metadataSeed:s,client_id:i,client_secret:o,response_type:a="code",scope:c="openid",redirect_uri:l,post_logout_redirect_uri:d,client_authentication:u="client_secret_post",prompt:h,display:p,max_age:m,ui_locales:g,acr_values:f,resource:v,response_mode:y,filterProtocolClaims:_=!0,loadUserInfo:b=!1,requestTimeoutInSeconds:w,staleStateAgeInSeconds:E=900,mergeClaimsStrategy:k={array:"replace"},disablePKCE:S=!1,stateStore:x,revokeTokenAdditionalContentTypes:T,fetchRequestCredentials:I,refreshTokenAllowedScope:R,extraQueryParams:O={},extraTokenParams:P={},extraHeaders:M={},dpop:A,omitScopeWhenRequesting:D=!1}){var L;if(this.authority=e,t?this.metadataUrl=t:(this.metadataUrl=e,e&&(this.metadataUrl.endsWith("/")||(this.metadataUrl+="/"),this.metadataUrl+=".well-known/openid-configuration")),this.metadata=r,this.metadataSeed=s,this.signingKeys=n,this.client_id=i,this.client_secret=o,this.response_type=a,this.scope=c,this.redirect_uri=l,this.post_logout_redirect_uri=d,this.client_authentication=u,this.prompt=h,this.display=p,this.max_age=m,this.ui_locales=g,this.acr_values=f,this.resource=v,this.response_mode=y,this.filterProtocolClaims=null==_||_,this.loadUserInfo=!!b,this.staleStateAgeInSeconds=E,this.mergeClaimsStrategy=k,this.omitScopeWhenRequesting=D,this.disablePKCE=!!S,this.revokeTokenAdditionalContentTypes=T,this.fetchRequestCredentials=I||"same-origin",this.requestTimeoutInSeconds=w,x)this.stateStore=x;else{const e="undefined"!=typeof window?window.localStorage:new j;this.stateStore=new C({store:e})}if(this.refreshTokenAllowedScope=R,this.extraQueryParams=O,this.extraTokenParams=P,this.extraHeaders=M,this.dpop=A,this.dpop&&!(null==(L=this.dpop)?void 0:L.store))throw new Error("A DPoPStore is required when dpop is enabled")}},D=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new m("UserInfoService"),this._getClaimsFromJwt=async e=>{const t=this._logger.create("_getClaimsFromJwt");try{const r=f.decode(e);return t.debug("JWT decoding successful"),r}catch(e){throw t.error("Error parsing JWT response"),e}},this._jsonService=new P(void 0,this._getClaimsFromJwt,this._settings.extraHeaders)}async getClaims(e){const t=this._logger.create("getClaims");e||this._logger.throw(new Error("No token passed"));const r=await this._metadataService.getUserInfoEndpoint();t.debug("got userinfo url",r);const n=await this._jsonService.getJson(r,{token:e,credentials:this._settings.fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return t.debug("got claims",n),n}},L=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new m("TokenClient"),this._jsonService=new P(this._settings.revokeTokenAdditionalContentTypes,null,this._settings.extraHeaders)}async exchangeCode({grant_type:e="authorization_code",redirect_uri:t=this._settings.redirect_uri,client_id:r=this._settings.client_id,client_secret:n=this._settings.client_secret,extraHeaders:s,...i}){const o=this._logger.create("exchangeCode");r||o.throw(new Error("A client_id is required")),t||o.throw(new Error("A redirect_uri is required")),i.code||o.throw(new Error("A code is required"));const a=new URLSearchParams({grant_type:e,redirect_uri:t});for(const[e,t]of Object.entries(i))null!=t&&a.set(e,t);let c;switch(this._settings.client_authentication){case"client_secret_basic":if(null==n)throw o.throw(new Error("A client_secret is required")),null;c=_.generateBasicAuth(r,n);break;case"client_secret_post":a.append("client_id",r),n&&a.append("client_secret",n)}const l=await this._metadataService.getTokenEndpoint(!1);o.debug("got token endpoint");const d=await this._jsonService.postForm(l,{body:a,basicAuth:c,timeoutInSeconds:this._settings.requestTimeoutInSeconds,initCredentials:this._settings.fetchRequestCredentials,extraHeaders:s});return o.debug("got response"),d}async exchangeCredentials({grant_type:e="password",client_id:t=this._settings.client_id,client_secret:r=this._settings.client_secret,scope:n=this._settings.scope,...s}){const i=this._logger.create("exchangeCredentials");t||i.throw(new Error("A client_id is required"));const o=new URLSearchParams({grant_type:e});this._settings.omitScopeWhenRequesting||o.set("scope",n);for(const[e,t]of Object.entries(s))null!=t&&o.set(e,t);let a;switch(this._settings.client_authentication){case"client_secret_basic":if(null==r)throw i.throw(new Error("A client_secret is required")),null;a=_.generateBasicAuth(t,r);break;case"client_secret_post":o.append("client_id",t),r&&o.append("client_secret",r)}const c=await this._metadataService.getTokenEndpoint(!1);i.debug("got token endpoint");const l=await this._jsonService.postForm(c,{body:o,basicAuth:a,timeoutInSeconds:this._settings.requestTimeoutInSeconds,initCredentials:this._settings.fetchRequestCredentials});return i.debug("got response"),l}async exchangeRefreshToken({grant_type:e="refresh_token",client_id:t=this._settings.client_id,client_secret:r=this._settings.client_secret,timeoutInSeconds:n,extraHeaders:s,...i}){const o=this._logger.create("exchangeRefreshToken");t||o.throw(new Error("A client_id is required")),i.refresh_token||o.throw(new Error("A refresh_token is required"));const a=new URLSearchParams({grant_type:e});for(const[e,t]of Object.entries(i))Array.isArray(t)?t.forEach(t=>a.append(e,t)):null!=t&&a.set(e,t);let c;switch(this._settings.client_authentication){case"client_secret_basic":if(null==r)throw o.throw(new Error("A client_secret is required")),null;c=_.generateBasicAuth(t,r);break;case"client_secret_post":a.append("client_id",t),r&&a.append("client_secret",r)}const l=await this._metadataService.getTokenEndpoint(!1);o.debug("got token endpoint");const d=await this._jsonService.postForm(l,{body:a,basicAuth:c,timeoutInSeconds:n,initCredentials:this._settings.fetchRequestCredentials,extraHeaders:s});return o.debug("got response"),d}async revoke(e){var t;const r=this._logger.create("revoke");e.token||r.throw(new Error("A token is required"));const n=await this._metadataService.getRevocationEndpoint(!1);r.debug(`got revocation endpoint, revoking ${null!=(t=e.token_type_hint)?t:"default token type"}`);const s=new URLSearchParams;for(const[t,r]of Object.entries(e))null!=r&&s.set(t,r);s.set("client_id",this._settings.client_id),this._settings.client_secret&&s.set("client_secret",this._settings.client_secret),await this._jsonService.postForm(n,{body:s,timeoutInSeconds:this._settings.requestTimeoutInSeconds}),r.debug("got response")}},N=class{constructor(e,t,r){this._settings=e,this._metadataService=t,this._claimsService=r,this._logger=new m("ResponseValidator"),this._userInfoService=new D(this._settings,this._metadataService),this._tokenClient=new L(this._settings,this._metadataService)}async validateSigninResponse(e,t,r){const n=this._logger.create("validateSigninResponse");this._processSigninState(e,t),n.debug("state processed"),await this._processCode(e,t,r),n.debug("code processed"),e.isOpenId&&this._validateIdTokenAttributes(e),n.debug("tokens validated"),await this._processClaims(e,null==t?void 0:t.skipUserInfo,e.isOpenId),n.debug("claims processed")}async validateCredentialsResponse(e,t){const r=this._logger.create("validateCredentialsResponse"),n=e.isOpenId&&!!e.id_token;n&&this._validateIdTokenAttributes(e),r.debug("tokens validated"),await this._processClaims(e,t,n),r.debug("claims processed")}async validateRefreshResponse(e,t){const r=this._logger.create("validateRefreshResponse");e.userState=t.data,null!=e.session_state||(e.session_state=t.session_state),null!=e.scope||(e.scope=t.scope),e.isOpenId&&e.id_token&&(this._validateIdTokenAttributes(e,t.id_token),r.debug("ID Token validated")),e.id_token||(e.id_token=t.id_token,e.profile=t.profile);const n=e.isOpenId&&!!e.id_token;await this._processClaims(e,!1,n),r.debug("claims processed")}validateSignoutResponse(e,t){const r=this._logger.create("validateSignoutResponse");if(t.id!==e.state&&r.throw(new Error("State does not match")),r.debug("state validated"),e.userState=t.data,e.error)throw r.warn("Response was error",e.error),new x(e)}_processSigninState(e,t){const r=this._logger.create("_processSigninState");if(t.id!==e.state&&r.throw(new Error("State does not match")),t.client_id||r.throw(new Error("No client_id on state")),t.authority||r.throw(new Error("No authority on state")),this._settings.authority!==t.authority&&r.throw(new Error("authority mismatch on settings vs. signin state")),this._settings.client_id&&this._settings.client_id!==t.client_id&&r.throw(new Error("client_id mismatch on settings vs. signin state")),r.debug("state validated"),e.userState=t.data,e.url_state=t.url_state,null!=e.scope||(e.scope=t.scope),e.error)throw r.warn("Response was error",e.error),new x(e);t.code_verifier&&!e.code&&r.throw(new Error("Expected code in response"))}async _processClaims(e,t=!1,r=!0){const n=this._logger.create("_processClaims");if(e.profile=this._claimsService.filterProtocolClaims(e.profile),t||!this._settings.loadUserInfo||!e.access_token)return void n.debug("not loading user info");n.debug("loading user info");const s=await this._userInfoService.getClaims(e.access_token);n.debug("user info claims received from user info endpoint"),r&&s.sub!==e.profile.sub&&n.throw(new Error("subject from UserInfo response does not match subject in ID Token")),e.profile=this._claimsService.mergeClaims(e.profile,this._claimsService.filterProtocolClaims(s)),n.debug("user info claims received, updated profile:",e.profile)}async _processCode(e,t,r){const n=this._logger.create("_processCode");if(e.code){n.debug("Validating code");const s=await this._tokenClient.exchangeCode({client_id:t.client_id,client_secret:t.client_secret,code:e.code,redirect_uri:t.redirect_uri,code_verifier:t.code_verifier,extraHeaders:r,...t.extraTokenParams});Object.assign(e,s)}else n.debug("No code to process")}_validateIdTokenAttributes(e,t){var r;const n=this._logger.create("_validateIdTokenAttributes");n.debug("decoding ID Token JWT");const s=f.decode(null!=(r=e.id_token)?r:"");if(s.sub||n.throw(new Error("ID Token is missing a subject claim")),t){const e=f.decode(t);s.sub!==e.sub&&n.throw(new Error("sub in id_token does not match current sub")),s.auth_time&&s.auth_time!==e.auth_time&&n.throw(new Error("auth_time in id_token does not match original auth_time")),s.azp&&s.azp!==e.azp&&n.throw(new Error("azp in id_token does not match original azp")),!s.azp&&e.azp&&n.throw(new Error("azp not in id_token, but present in original id_token"))}e.profile=s}},U=class e{constructor(e){this.id=e.id||_.generateUUIDv4(),this.data=e.data,e.created&&e.created>0?this.created=e.created:this.created=E.getEpochTime(),this.request_type=e.request_type,this.url_state=e.url_state}toStorageString(){return new m("State").create("toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state})}static fromStorageString(t){return m.createStatic("State","fromStorageString"),Promise.resolve(new e(JSON.parse(t)))}static async clearStaleState(t,r){const n=m.createStatic("State","clearStaleState"),s=E.getEpochTime()-r,i=await t.getAllKeys();n.debug("got keys",i);for(let r=0;r<i.length;r++){const o=i[r],a=await t.get(o);let c=!1;if(a)try{const t=await e.fromStorageString(a);n.debug("got item from key:",o,t.created),t.created<=s&&(c=!0)}catch(e){n.error("Error parsing state for key:",o,e),c=!0}else n.debug("no item in storage for key:",o),c=!0;c&&(n.debug("removed item for key:",o),t.remove(o))}}},F=class e extends U{constructor(e){super(e),this.code_verifier=e.code_verifier,this.code_challenge=e.code_challenge,this.authority=e.authority,this.client_id=e.client_id,this.redirect_uri=e.redirect_uri,this.scope=e.scope,this.client_secret=e.client_secret,this.extraTokenParams=e.extraTokenParams,this.response_mode=e.response_mode,this.skipUserInfo=e.skipUserInfo}static async create(t){const r=!0===t.code_verifier?_.generateCodeVerifier():t.code_verifier||void 0,n=r?await _.generateCodeChallenge(r):void 0;return new e({...t,code_verifier:r,code_challenge:n})}toStorageString(){return new m("SigninState").create("toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state,code_verifier:this.code_verifier,authority:this.authority,client_id:this.client_id,redirect_uri:this.redirect_uri,scope:this.scope,client_secret:this.client_secret,extraTokenParams:this.extraTokenParams,response_mode:this.response_mode,skipUserInfo:this.skipUserInfo})}static fromStorageString(t){m.createStatic("SigninState","fromStorageString");const r=JSON.parse(t);return e.create(r)}},B=class e{constructor(e){this.url=e.url,this.state=e.state}static async create({url:t,authority:r,client_id:n,redirect_uri:s,response_type:i,scope:o,state_data:a,response_mode:c,request_type:l,client_secret:d,nonce:u,url_state:h,resource:p,skipUserInfo:m,extraQueryParams:g,extraTokenParams:f,disablePKCE:v,dpopJkt:y,omitScopeWhenRequesting:_,...b}){if(!t)throw this._logger.error("create: No url passed"),new Error("url");if(!n)throw this._logger.error("create: No client_id passed"),new Error("client_id");if(!s)throw this._logger.error("create: No redirect_uri passed"),new Error("redirect_uri");if(!i)throw this._logger.error("create: No response_type passed"),new Error("response_type");if(!o)throw this._logger.error("create: No scope passed"),new Error("scope");if(!r)throw this._logger.error("create: No authority passed"),new Error("authority");const w=await F.create({data:a,request_type:l,url_state:h,code_verifier:!v,client_id:n,authority:r,redirect_uri:s,response_mode:c,client_secret:d,scope:o,extraTokenParams:f,skipUserInfo:m}),E=new URL(t);E.searchParams.append("client_id",n),E.searchParams.append("redirect_uri",s),E.searchParams.append("response_type",i),_||E.searchParams.append("scope",o),u&&E.searchParams.append("nonce",u),y&&E.searchParams.append("dpop_jkt",y);let k=w.id;if(h&&(k=`${k}${S}${h}`),E.searchParams.append("state",k),w.code_challenge&&(E.searchParams.append("code_challenge",w.code_challenge),E.searchParams.append("code_challenge_method","S256")),p){(Array.isArray(p)?p:[p]).forEach(e=>E.searchParams.append("resource",e))}for(const[e,t]of Object.entries({response_mode:c,...b,...g}))null!=t&&E.searchParams.append(e,t.toString());return new e({url:E.href,state:w})}};B._logger=new m("SigninRequest");var K=B,$=class{constructor(e){if(this.access_token="",this.token_type="",this.profile={},this.state=e.get("state"),this.session_state=e.get("session_state"),this.state){const e=decodeURIComponent(this.state).split(S);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(S))}this.error=e.get("error"),this.error_description=e.get("error_description"),this.error_uri=e.get("error_uri"),this.code=e.get("code")}get expires_in(){if(void 0!==this.expires_at)return this.expires_at-E.getEpochTime()}set expires_in(e){"string"==typeof e&&(e=Number(e)),void 0!==e&&e>=0&&(this.expires_at=Math.floor(e)+E.getEpochTime())}get isOpenId(){var e;return(null==(e=this.scope)?void 0:e.split(" ").includes("openid"))||!!this.id_token}},q=class{constructor({url:e,state_data:t,id_token_hint:r,post_logout_redirect_uri:n,extraQueryParams:s,request_type:i,client_id:o,url_state:a}){if(this._logger=new m("SignoutRequest"),!e)throw this._logger.error("ctor: No url passed"),new Error("url");const c=new URL(e);if(r&&c.searchParams.append("id_token_hint",r),o&&c.searchParams.append("client_id",o),n&&(c.searchParams.append("post_logout_redirect_uri",n),t||a)){this.state=new U({data:t,request_type:i,url_state:a});let e=this.state.id;a&&(e=`${e}${S}${a}`),c.searchParams.append("state",e)}for(const[e,t]of Object.entries({...s}))null!=t&&c.searchParams.append(e,t.toString());this.url=c.href}},H=class{constructor(e){if(this.state=e.get("state"),this.state){const e=decodeURIComponent(this.state).split(S);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(S))}this.error=e.get("error"),this.error_description=e.get("error_description"),this.error_uri=e.get("error_uri")}},J=["nbf","jti","auth_time","nonce","acr","amr","azp","at_hash"],G=["sub","iss","aud","exp","iat"],W=class{constructor(e){this._settings=e,this._logger=new m("ClaimsService")}filterProtocolClaims(e){const t={...e};if(this._settings.filterProtocolClaims){let e;e=Array.isArray(this._settings.filterProtocolClaims)?this._settings.filterProtocolClaims:J;for(const r of e)G.includes(r)||delete t[r]}return t}mergeClaims(e,t){const r={...e};for(const[e,n]of Object.entries(t))if(r[e]!==n)if(Array.isArray(r[e])||Array.isArray(n))if("replace"==this._settings.mergeClaimsStrategy.array)r[e]=n;else{const t=Array.isArray(r[e])?r[e]:[r[e]];for(const e of Array.isArray(n)?n:[n])t.includes(e)||t.push(e);r[e]=t}else"object"==typeof r[e]&&"object"==typeof n?r[e]=this.mergeClaims(r[e],n):r[e]=n;return r}},V=class{constructor(e,t){this.keys=e,this.nonce=t}},z=class{constructor(e,t){this._logger=new m("OidcClient"),this.settings=e instanceof A?e:new A(e),this.metadataService=null!=t?t:new M(this.settings),this._claimsService=new W(this.settings),this._validator=new N(this.settings,this.metadataService,this._claimsService),this._tokenClient=new L(this.settings,this.metadataService)}async createSigninRequest({state:e,request:t,request_uri:r,request_type:n,id_token_hint:s,login_hint:i,skipUserInfo:o,nonce:a,url_state:c,response_type:l=this.settings.response_type,scope:d=this.settings.scope,redirect_uri:u=this.settings.redirect_uri,prompt:h=this.settings.prompt,display:p=this.settings.display,max_age:m=this.settings.max_age,ui_locales:g=this.settings.ui_locales,acr_values:f=this.settings.acr_values,resource:v=this.settings.resource,response_mode:y=this.settings.response_mode,extraQueryParams:_=this.settings.extraQueryParams,extraTokenParams:b=this.settings.extraTokenParams,dpopJkt:w,omitScopeWhenRequesting:E=this.settings.omitScopeWhenRequesting}){const k=this._logger.create("createSigninRequest");if("code"!==l)throw new Error("Only the Authorization Code flow (with PKCE) is supported");const S=await this.metadataService.getAuthorizationEndpoint();k.debug("Received authorization endpoint",S);const x=await K.create({url:S,authority:this.settings.authority,client_id:this.settings.client_id,redirect_uri:u,response_type:l,scope:d,state_data:e,url_state:c,prompt:h,display:p,max_age:m,ui_locales:g,id_token_hint:s,login_hint:i,acr_values:f,dpopJkt:w,resource:v,request:t,request_uri:r,extraQueryParams:_,extraTokenParams:b,request_type:n,response_mode:y,client_secret:this.settings.client_secret,skipUserInfo:o,nonce:a,disablePKCE:this.settings.disablePKCE,omitScopeWhenRequesting:E});await this.clearStaleState();const T=x.state;return await this.settings.stateStore.set(T.id,T.toStorageString()),x}async readSigninResponseState(e,t=!1){const r=this._logger.create("readSigninResponseState"),n=new $(k.readParams(e,this.settings.response_mode));if(!n.state)throw r.throw(new Error("No state in response")),null;const s=await this.settings.stateStore[t?"remove":"get"](n.state);if(!s)throw r.throw(new Error("No matching state found in storage")),null;return{state:await F.fromStorageString(s),response:n}}async processSigninResponse(e,t,r=!0){const n=this._logger.create("processSigninResponse"),{state:s,response:i}=await this.readSigninResponseState(e,r);if(n.debug("received state from storage; validating response"),this.settings.dpop&&this.settings.dpop.store){const e=await this.getDpopProof(this.settings.dpop.store);t={...t,DPoP:e}}try{await this._validator.validateSigninResponse(i,s,t)}catch(e){if(!(e instanceof O&&this.settings.dpop))throw e;{const r=await this.getDpopProof(this.settings.dpop.store,e.nonce);t.DPoP=r,await this._validator.validateSigninResponse(i,s,t)}}return i}async getDpopProof(e,t){let r,n;return(await e.getAllKeys()).includes(this.settings.client_id)?(n=await e.get(this.settings.client_id),n.nonce!==t&&t&&(n.nonce=t,await e.set(this.settings.client_id,n))):(r=await _.generateDPoPKeys(),n=new V(r,t),await e.set(this.settings.client_id,n)),await _.generateDPoPProof({url:await this.metadataService.getTokenEndpoint(!1),httpMethod:"POST",keyPair:n.keys,nonce:n.nonce})}async processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:r=!1,extraTokenParams:n={}}){const s=await this._tokenClient.exchangeCredentials({username:e,password:t,...n}),i=new $(new URLSearchParams);return Object.assign(i,s),await this._validator.validateCredentialsResponse(i,r),i}async useRefreshToken({state:e,redirect_uri:t,resource:r,timeoutInSeconds:n,extraHeaders:s,extraTokenParams:i}){var o;const a=this._logger.create("useRefreshToken");let c,l;if(void 0===this.settings.refreshTokenAllowedScope)c=e.scope;else{const t=this.settings.refreshTokenAllowedScope.split(" ");c=((null==(o=e.scope)?void 0:o.split(" "))||[]).filter(e=>t.includes(e)).join(" ")}if(this.settings.dpop&&this.settings.dpop.store){const e=await this.getDpopProof(this.settings.dpop.store);s={...s,DPoP:e}}try{l=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:c,redirect_uri:t,resource:r,timeoutInSeconds:n,extraHeaders:s,...i})}catch(o){if(!(o instanceof O&&this.settings.dpop))throw o;s.DPoP=await this.getDpopProof(this.settings.dpop.store,o.nonce),l=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:c,redirect_uri:t,resource:r,timeoutInSeconds:n,extraHeaders:s,...i})}const d=new $(new URLSearchParams);return Object.assign(d,l),a.debug("validating response",d),await this._validator.validateRefreshResponse(d,{...e,scope:c}),d}async createSignoutRequest({state:e,id_token_hint:t,client_id:r,request_type:n,url_state:s,post_logout_redirect_uri:i=this.settings.post_logout_redirect_uri,extraQueryParams:o=this.settings.extraQueryParams}={}){const a=this._logger.create("createSignoutRequest"),c=await this.metadataService.getEndSessionEndpoint();if(!c)throw a.throw(new Error("No end session endpoint")),null;a.debug("Received end session endpoint",c),r||!i||t||(r=this.settings.client_id);const l=new q({url:c,id_token_hint:t,client_id:r,post_logout_redirect_uri:i,state_data:e,extraQueryParams:o,request_type:n,url_state:s});await this.clearStaleState();const d=l.state;return d&&(a.debug("Signout request has state to persist"),await this.settings.stateStore.set(d.id,d.toStorageString())),l}async readSignoutResponseState(e,t=!1){const r=this._logger.create("readSignoutResponseState"),n=new H(k.readParams(e,this.settings.response_mode));if(!n.state){if(r.debug("No state in response"),n.error)throw r.warn("Response was error:",n.error),new x(n);return{state:void 0,response:n}}const s=await this.settings.stateStore[t?"remove":"get"](n.state);if(!s)throw r.throw(new Error("No matching state found in storage")),null;return{state:await U.fromStorageString(s),response:n}}async processSignoutResponse(e){const t=this._logger.create("processSignoutResponse"),{state:r,response:n}=await this.readSignoutResponseState(e,!0);return r?(t.debug("Received state from storage; validating response"),this._validator.validateSignoutResponse(n,r)):t.debug("No state from storage; skipping response validation"),n}clearStaleState(){return this._logger.create("clearStaleState"),U.clearStaleState(this.settings.stateStore,this.settings.staleStateAgeInSeconds)}async revokeToken(e,t){return this._logger.create("revokeToken"),await this._tokenClient.revoke({token:e,token_type_hint:t})}},Q=class{constructor(e){this._userManager=e,this._logger=new m("SessionMonitor"),this._start=async e=>{const t=e.session_state;if(!t)return;const r=this._logger.create("_start");if(e.profile?(this._sub=e.profile.sub,r.debug("session_state",t,", sub",this._sub)):(this._sub=void 0,r.debug("session_state",t,", anonymous user")),this._checkSessionIFrame)this._checkSessionIFrame.start(t);else try{const e=await this._userManager.metadataService.getCheckSessionIframe();if(e){r.debug("initializing check session iframe");const n=this._userManager.settings.client_id,s=this._userManager.settings.checkSessionIntervalInSeconds,i=this._userManager.settings.stopCheckSessionOnError,o=new R(this._callback,n,e,s,i);await o.load(),this._checkSessionIFrame=o,o.start(t)}else r.warn("no check session iframe found in the metadata")}catch(e){r.error("Error from getCheckSessionIframe:",e instanceof Error?e.message:e)}},this._stop=()=>{const e=this._logger.create("_stop");if(this._sub=void 0,this._checkSessionIFrame&&this._checkSessionIFrame.stop(),this._userManager.settings.monitorAnonymousSession){const t=setInterval(async()=>{clearInterval(t);try{const e=await this._userManager.querySessionStatus();if(e){const t={session_state:e.session_state,profile:e.sub?{sub:e.sub}:null};this._start(t)}}catch(t){e.error("error from querySessionStatus",t instanceof Error?t.message:t)}},1e3)}},this._callback=async()=>{const e=this._logger.create("_callback");try{const t=await this._userManager.querySessionStatus();let r=!0;t&&this._checkSessionIFrame?t.sub===this._sub?(r=!1,this._checkSessionIFrame.start(t.session_state),e.debug("same sub still logged in at OP, session state has changed, restarting check session iframe; session_state",t.session_state),await this._userManager.events._raiseUserSessionChanged()):e.debug("different subject signed into OP",t.sub):e.debug("subject no longer signed into OP"),r?this._sub?await this._userManager.events._raiseUserSignedOut():await this._userManager.events._raiseUserSignedIn():e.debug("no change in session detected, no event to raise")}catch(t){this._sub&&(e.debug("Error calling queryCurrentSigninSession; raising signed out event",t),await this._userManager.events._raiseUserSignedOut())}},e||this._logger.throw(new Error("No user manager passed")),this._userManager.events.addUserLoaded(this._start),this._userManager.events.addUserUnloaded(this._stop),this._init().catch(e=>{this._logger.error(e)})}async _init(){this._logger.create("_init");const e=await this._userManager.getUser();if(e)this._start(e);else if(this._userManager.settings.monitorAnonymousSession){const e=await this._userManager.querySessionStatus();if(e){const t={session_state:e.session_state,profile:e.sub?{sub:e.sub}:null};this._start(t)}}}},X=class e{constructor(e){var t;this.id_token=e.id_token,this.session_state=null!=(t=e.session_state)?t:null,this.access_token=e.access_token,this.refresh_token=e.refresh_token,this.token_type=e.token_type,this.scope=e.scope,this.profile=e.profile,this.expires_at=e.expires_at,this.state=e.userState,this.url_state=e.url_state}get expires_in(){if(void 0!==this.expires_at)return this.expires_at-E.getEpochTime()}set expires_in(e){void 0!==e&&(this.expires_at=Math.floor(e)+E.getEpochTime())}get expired(){const e=this.expires_in;if(void 0!==e)return e<=0}get scopes(){var e,t;return null!=(t=null==(e=this.scope)?void 0:e.split(" "))?t:[]}toStorageString(){return new m("User").create("toStorageString"),JSON.stringify({id_token:this.id_token,session_state:this.session_state,access_token:this.access_token,refresh_token:this.refresh_token,token_type:this.token_type,scope:this.scope,profile:this.profile,expires_at:this.expires_at})}static fromStorageString(t){return m.createStatic("User","fromStorageString"),new e(JSON.parse(t))}},Z="oidc-client",Y=class{constructor(){this._abort=new b("Window navigation aborted"),this._disposeHandlers=new Set,this._window=null}async navigate(e){const t=this._logger.create("navigate");if(!this._window)throw new Error("Attempted to navigate on a disposed window");t.debug("setting URL in window"),this._window.location.replace(e.url);const{url:r,keepOpen:n}=await new Promise((r,n)=>{const s=s=>{var i;const o=s.data,a=null!=(i=e.scriptOrigin)?i:window.location.origin;if(s.origin===a&&(null==o?void 0:o.source)===Z){try{const r=k.readParams(o.url,e.response_mode).get("state");if(r||t.warn("no state found in response url"),s.source!==this._window&&r!==e.state)return}catch{this._dispose(),n(new Error("Invalid response from window"))}r(o)}};window.addEventListener("message",s,!1),this._disposeHandlers.add(()=>window.removeEventListener("message",s,!1));const i=new BroadcastChannel(`oidc-client-popup-${e.state}`);i.addEventListener("message",s,!1),this._disposeHandlers.add(()=>i.close()),this._disposeHandlers.add(this._abort.addHandler(e=>{this._dispose(),n(e)}))});return t.debug("got response from window"),this._dispose(),n||this.close(),{url:r}}_dispose(){this._logger.create("_dispose");for(const e of this._disposeHandlers)e();this._disposeHandlers.clear()}static _notifyParent(e,t,r=!1,n=window.location.origin){const s={source:Z,url:t,keepOpen:r},i=new m("_notifyParent");if(e)i.debug("With parent. Using parent.postMessage."),e.postMessage(s,n);else{i.debug("No parent. Using BroadcastChannel.");const e=new URL(t).searchParams.get("state");if(!e)throw new Error("No parent and no state in URL. Can't complete notification.");const r=new BroadcastChannel(`oidc-client-popup-${e}`);r.postMessage(s),r.close()}}},ee={location:!1,toolbar:!1,height:640,closePopupWindowAfterInSeconds:-1},te="_blank",re=60,ne=2,se=class extends A{constructor(e){const{popup_redirect_uri:t=e.redirect_uri,popup_post_logout_redirect_uri:r=e.post_logout_redirect_uri,popupWindowFeatures:n=ee,popupWindowTarget:s=te,redirectMethod:i="assign",redirectTarget:o="self",iframeNotifyParentOrigin:a=e.iframeNotifyParentOrigin,iframeScriptOrigin:c=e.iframeScriptOrigin,requestTimeoutInSeconds:l,silent_redirect_uri:d=e.redirect_uri,silentRequestTimeoutInSeconds:u,automaticSilentRenew:h=!0,validateSubOnSilentRenew:p=!0,includeIdTokenInSilentRenew:m=!1,monitorSession:g=!1,monitorAnonymousSession:f=!1,checkSessionIntervalInSeconds:v=ne,query_status_response_type:y="code",stopCheckSessionOnError:_=!0,revokeTokenTypes:b=["access_token","refresh_token"],revokeTokensOnSignout:w=!1,includeIdTokenInSilentSignout:E=!1,accessTokenExpiringNotificationTimeInSeconds:k=re,userStore:S}=e;if(super(e),this.popup_redirect_uri=t,this.popup_post_logout_redirect_uri=r,this.popupWindowFeatures=n,this.popupWindowTarget=s,this.redirectMethod=i,this.redirectTarget=o,this.iframeNotifyParentOrigin=a,this.iframeScriptOrigin=c,this.silent_redirect_uri=d,this.silentRequestTimeoutInSeconds=u||l||10,this.automaticSilentRenew=h,this.validateSubOnSilentRenew=p,this.includeIdTokenInSilentRenew=m,this.monitorSession=g,this.monitorAnonymousSession=f,this.checkSessionIntervalInSeconds=v,this.stopCheckSessionOnError=_,this.query_status_response_type=y,this.revokeTokenTypes=b,this.revokeTokensOnSignout=w,this.includeIdTokenInSilentSignout=E,this.accessTokenExpiringNotificationTimeInSeconds=k,S)this.userStore=S;else{const e="undefined"!=typeof window?window.sessionStorage:new j;this.userStore=new C({store:e})}}},ie=class e extends Y{constructor({silentRequestTimeoutInSeconds:t=10}){super(),this._logger=new m("IFrameWindow"),this._timeoutInSeconds=t,this._frame=e.createHiddenIframe(),this._window=this._frame.contentWindow}static createHiddenIframe(){const e=window.document.createElement("iframe");return e.style.visibility="hidden",e.style.position="fixed",e.style.left="-1000px",e.style.top="0",e.width="0",e.height="0",window.document.body.appendChild(e),e}async navigate(e){this._logger.debug("navigate: Using timeout of:",this._timeoutInSeconds);const t=setTimeout(()=>{this._abort.raise(new T("IFrame timed out without a response"))},1e3*this._timeoutInSeconds);return this._disposeHandlers.add(()=>clearTimeout(t)),await super.navigate(e)}close(){var e;this._frame&&(this._frame.parentNode&&(this._frame.addEventListener("load",e=>{var t;const r=e.target;null==(t=r.parentNode)||t.removeChild(r),this._abort.raise(new Error("IFrame removed from DOM"))},!0),null==(e=this._frame.contentWindow)||e.location.replace("about:blank")),this._frame=null),this._window=null}static notifyParent(e,t){return super._notifyParent(window.parent,e,!1,t)}},oe=class{constructor(e){this._settings=e,this._logger=new m("IFrameNavigator")}async prepare({silentRequestTimeoutInSeconds:e=this._settings.silentRequestTimeoutInSeconds}){return new ie({silentRequestTimeoutInSeconds:e})}async callback(e){this._logger.create("callback"),ie.notifyParent(e,this._settings.iframeNotifyParentOrigin)}},ae=class extends Y{constructor({popupWindowTarget:e=te,popupWindowFeatures:t={},popupSignal:r}){super(),this._logger=new m("PopupWindow");const n=w.center({...ee,...t});this._window=window.open(void 0,e,w.serialize(n)),r&&r.addEventListener("abort",()=>{var e;this._abort.raise(new Error(null!=(e=r.reason)?e:"Popup aborted"))}),t.closePopupWindowAfterInSeconds&&t.closePopupWindowAfterInSeconds>0&&setTimeout(()=>{this._window&&"boolean"==typeof this._window.closed&&!this._window.closed?this.close():this._abort.raise(new Error("Popup blocked by user"))},1e3*t.closePopupWindowAfterInSeconds)}async navigate(e){var t;null==(t=this._window)||t.focus();const r=setInterval(()=>{this._window&&!this._window.closed||(this._logger.debug("Popup closed by user or isolated by redirect"),n(),this._disposeHandlers.delete(n))},500),n=()=>clearInterval(r);return this._disposeHandlers.add(n),await super.navigate(e)}close(){this._window&&(this._window.closed||(this._window.close(),this._abort.raise(new Error("Popup closed")))),this._window=null}static notifyOpener(e,t){super._notifyParent(window.opener,e,t),t||window.opener||window.close()}},ce=class{constructor(e){this._settings=e,this._logger=new m("PopupNavigator")}async prepare({popupWindowFeatures:e=this._settings.popupWindowFeatures,popupWindowTarget:t=this._settings.popupWindowTarget,popupSignal:r}){return new ae({popupWindowFeatures:e,popupWindowTarget:t,popupSignal:r})}async callback(e,{keepOpen:t=!1}){this._logger.create("callback"),ae.notifyOpener(e,t)}},le=class{constructor(e){this._settings=e,this._logger=new m("RedirectNavigator")}async prepare({redirectMethod:e=this._settings.redirectMethod,redirectTarget:t=this._settings.redirectTarget}){var r;this._logger.create("prepare");let n=window.self;"top"===t&&(n=null!=(r=window.top)?r:window.self);const s=n.location[e].bind(n.location);let i;return{navigate:async e=>{this._logger.create("navigate");const t=new Promise((e,t)=>{i=t});return s(e.url),await t},close:()=>{this._logger.create("close"),null==i||i(new Error("Redirect aborted")),n.stop()}}}async callback(){}},de=class extends I{constructor(e){super({expiringNotificationTimeInSeconds:e.accessTokenExpiringNotificationTimeInSeconds}),this._logger=new m("UserManagerEvents"),this._userLoaded=new b("User loaded"),this._userUnloaded=new b("User unloaded"),this._silentRenewError=new b("Silent renew error"),this._userSignedIn=new b("User signed in"),this._userSignedOut=new b("User signed out"),this._userSessionChanged=new b("User session changed")}async load(e,t=!0){await super.load(e),t&&await this._userLoaded.raise(e)}async unload(){await super.unload(),await this._userUnloaded.raise()}addUserLoaded(e){return this._userLoaded.addHandler(e)}removeUserLoaded(e){return this._userLoaded.removeHandler(e)}addUserUnloaded(e){return this._userUnloaded.addHandler(e)}removeUserUnloaded(e){return this._userUnloaded.removeHandler(e)}addSilentRenewError(e){return this._silentRenewError.addHandler(e)}removeSilentRenewError(e){return this._silentRenewError.removeHandler(e)}async _raiseSilentRenewError(e){await this._silentRenewError.raise(e)}addUserSignedIn(e){return this._userSignedIn.addHandler(e)}removeUserSignedIn(e){this._userSignedIn.removeHandler(e)}async _raiseUserSignedIn(){await this._userSignedIn.raise()}addUserSignedOut(e){return this._userSignedOut.addHandler(e)}removeUserSignedOut(e){this._userSignedOut.removeHandler(e)}async _raiseUserSignedOut(){await this._userSignedOut.raise()}addUserSessionChanged(e){return this._userSessionChanged.addHandler(e)}removeUserSessionChanged(e){this._userSessionChanged.removeHandler(e)}async _raiseUserSessionChanged(){await this._userSessionChanged.raise()}},ue=class{constructor(e){this._userManager=e,this._logger=new m("SilentRenewService"),this._isStarted=!1,this._retryTimer=new E("Retry Silent Renew"),this._tokenExpiring=async()=>{const e=this._logger.create("_tokenExpiring");try{await this._userManager.signinSilent(),e.debug("silent token renewal successful")}catch(t){if(t instanceof T)return e.warn("ErrorTimeout from signinSilent:",t,"retry in 5s"),void this._retryTimer.init(5);e.error("Error from signinSilent:",t),await this._userManager.events._raiseSilentRenewError(t)}}}async start(){const e=this._logger.create("start");if(!this._isStarted){this._isStarted=!0,this._userManager.events.addAccessTokenExpiring(this._tokenExpiring),this._retryTimer.addHandler(this._tokenExpiring);try{await this._userManager.getUser()}catch(t){e.error("getUser error",t)}}}stop(){this._isStarted&&(this._retryTimer.cancel(),this._retryTimer.removeHandler(this._tokenExpiring),this._userManager.events.removeAccessTokenExpiring(this._tokenExpiring),this._isStarted=!1)}},he=class{constructor(e){this.refresh_token=e.refresh_token,this.id_token=e.id_token,this.session_state=e.session_state,this.scope=e.scope,this.profile=e.profile,this.data=e.state}},pe=class{constructor(e,t,r,n){this._logger=new m("UserManager"),this.settings=new se(e),this._client=new z(e),this._redirectNavigator=null!=t?t:new le(this.settings),this._popupNavigator=null!=r?r:new ce(this.settings),this._iframeNavigator=null!=n?n:new oe(this.settings),this._events=new de(this.settings),this._silentRenewService=new ue(this),this.settings.automaticSilentRenew&&this.startSilentRenew(),this._sessionMonitor=null,this.settings.monitorSession&&(this._sessionMonitor=new Q(this))}get events(){return this._events}get metadataService(){return this._client.metadataService}async getUser(e=!1){const t=this._logger.create("getUser"),r=await this._loadUser();return r?(t.info("user loaded"),await this._events.load(r,e),r):(t.info("user not found in storage"),null)}async removeUser(){const e=this._logger.create("removeUser");await this.storeUser(null),e.info("user removed from storage"),await this._events.unload()}async signinRedirect(e={}){var t;this._logger.create("signinRedirect");const{redirectMethod:r,...n}=e;let s;(null==(t=this.settings.dpop)?void 0:t.bind_authorization_code)&&(s=await this.generateDPoPJkt(this.settings.dpop));const i=await this._redirectNavigator.prepare({redirectMethod:r});await this._signinStart({request_type:"si:r",dpopJkt:s,...n},i)}async signinRedirectCallback(e=window.location.href){const t=this._logger.create("signinRedirectCallback"),r=await this._signinEnd(e);return r.profile&&r.profile.sub?t.info("success, signed in subject",r.profile.sub):t.info("no subject"),r}async signinResourceOwnerCredentials({username:e,password:t,skipUserInfo:r=!1}){const n=this._logger.create("signinResourceOwnerCredential"),s=await this._client.processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:r,extraTokenParams:this.settings.extraTokenParams});n.debug("got signin response");const i=await this._buildUser(s);return i.profile&&i.profile.sub?n.info("success, signed in subject",i.profile.sub):n.info("no subject"),i}async signinPopup(e={}){var t;const r=this._logger.create("signinPopup");let n;(null==(t=this.settings.dpop)?void 0:t.bind_authorization_code)&&(n=await this.generateDPoPJkt(this.settings.dpop));const{popupWindowFeatures:s,popupWindowTarget:i,popupSignal:o,...a}=e,c=this.settings.popup_redirect_uri;c||r.throw(new Error("No popup_redirect_uri configured"));const l=await this._popupNavigator.prepare({popupWindowFeatures:s,popupWindowTarget:i,popupSignal:o}),d=await this._signin({request_type:"si:p",redirect_uri:c,display:"popup",dpopJkt:n,...a},l);return d&&(d.profile&&d.profile.sub?r.info("success, signed in subject",d.profile.sub):r.info("no subject")),d}async signinPopupCallback(e=window.location.href,t=!1){const r=this._logger.create("signinPopupCallback");await this._popupNavigator.callback(e,{keepOpen:t}),r.info("success")}async signinSilent(e={}){var t,r;const n=this._logger.create("signinSilent"),{silentRequestTimeoutInSeconds:s,...i}=e;let o,a=await this._loadUser();if(null==a?void 0:a.refresh_token){n.debug("using refresh token");const e=new he(a);return await this._useRefreshToken({state:e,redirect_uri:i.redirect_uri,resource:i.resource,extraTokenParams:i.extraTokenParams,timeoutInSeconds:s})}(null==(t=this.settings.dpop)?void 0:t.bind_authorization_code)&&(o=await this.generateDPoPJkt(this.settings.dpop));const c=this.settings.silent_redirect_uri;let l;c||n.throw(new Error("No silent_redirect_uri configured")),a&&this.settings.validateSubOnSilentRenew&&(n.debug("subject prior to silent renew:",a.profile.sub),l=a.profile.sub);const d=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:s});return a=await this._signin({request_type:"si:s",redirect_uri:c,prompt:"none",id_token_hint:this.settings.includeIdTokenInSilentRenew?null==a?void 0:a.id_token:void 0,dpopJkt:o,...i},d,l),a&&((null==(r=a.profile)?void 0:r.sub)?n.info("success, signed in subject",a.profile.sub):n.info("no subject")),a}async _useRefreshToken(e){const t=await this._client.useRefreshToken({timeoutInSeconds:this.settings.silentRequestTimeoutInSeconds,...e}),r=new X({...e.state,...t});return await this.storeUser(r),await this._events.load(r),r}async signinSilentCallback(e=window.location.href){const t=this._logger.create("signinSilentCallback");await this._iframeNavigator.callback(e),t.info("success")}async signinCallback(e=window.location.href){const{state:t}=await this._client.readSigninResponseState(e);switch(t.request_type){case"si:r":return await this.signinRedirectCallback(e);case"si:p":await this.signinPopupCallback(e);break;case"si:s":await this.signinSilentCallback(e);break;default:throw new Error("invalid response_type in state")}}async signoutCallback(e=window.location.href,t=!1){const{state:r}=await this._client.readSignoutResponseState(e);if(r)switch(r.request_type){case"so:r":return await this.signoutRedirectCallback(e);case"so:p":await this.signoutPopupCallback(e,t);break;case"so:s":await this.signoutSilentCallback(e);break;default:throw new Error("invalid response_type in state")}}async querySessionStatus(e={}){const t=this._logger.create("querySessionStatus"),{silentRequestTimeoutInSeconds:r,...n}=e,s=this.settings.silent_redirect_uri;s||t.throw(new Error("No silent_redirect_uri configured"));const i=await this._loadUser(),o=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:r}),a=await this._signinStart({request_type:"si:s",redirect_uri:s,prompt:"none",id_token_hint:this.settings.includeIdTokenInSilentRenew?null==i?void 0:i.id_token:void 0,response_type:this.settings.query_status_response_type,scope:"openid",skipUserInfo:!0,...n},o);try{const e={},r=await this._client.processSigninResponse(a.url,e);return t.debug("got signin response"),r.session_state&&r.profile.sub?(t.info("success for subject",r.profile.sub),{session_state:r.session_state,sub:r.profile.sub}):(t.info("success, user not authenticated"),null)}catch(e){if(this.settings.monitorAnonymousSession&&e instanceof x)switch(e.error){case"login_required":case"consent_required":case"interaction_required":case"account_selection_required":return t.info("success for anonymous user"),{session_state:e.session_state}}throw e}}async _signin(e,t,r){const n=await this._signinStart(e,t);return await this._signinEnd(n.url,r)}async _signinStart(e,t){const r=this._logger.create("_signinStart");try{const n=await this._client.createSigninRequest(e);return r.debug("got signin request"),await t.navigate({url:n.url,state:n.state.id,response_mode:n.state.response_mode,scriptOrigin:this.settings.iframeScriptOrigin})}catch(e){throw r.debug("error after preparing navigator, closing navigator window"),t.close(),e}}async _signinEnd(e,t){const r=this._logger.create("_signinEnd"),n=await this._client.processSigninResponse(e,{});r.debug("got signin response");return await this._buildUser(n,t)}async _buildUser(e,t){const r=this._logger.create("_buildUser"),n=new X(e);if(t){if(t!==n.profile.sub)throw r.debug("current user does not match user returned from signin. sub from signin:",n.profile.sub),new x({...e,error:"login_required"});r.debug("current user matches user returned from signin")}return await this.storeUser(n),r.debug("user stored"),await this._events.load(n),n}async signoutRedirect(e={}){const t=this._logger.create("signoutRedirect"),{redirectMethod:r,...n}=e,s=await this._redirectNavigator.prepare({redirectMethod:r});await this._signoutStart({request_type:"so:r",post_logout_redirect_uri:this.settings.post_logout_redirect_uri,...n},s),t.info("success")}async signoutRedirectCallback(e=window.location.href){const t=this._logger.create("signoutRedirectCallback"),r=await this._signoutEnd(e);return t.info("success"),r}async signoutPopup(e={}){const t=this._logger.create("signoutPopup"),{popupWindowFeatures:r,popupWindowTarget:n,popupSignal:s,...i}=e,o=this.settings.popup_post_logout_redirect_uri,a=await this._popupNavigator.prepare({popupWindowFeatures:r,popupWindowTarget:n,popupSignal:s});await this._signout({request_type:"so:p",post_logout_redirect_uri:o,state:null==o?void 0:{},...i},a),t.info("success")}async signoutPopupCallback(e=window.location.href,t=!1){const r=this._logger.create("signoutPopupCallback");await this._popupNavigator.callback(e,{keepOpen:t}),r.info("success")}async _signout(e,t){const r=await this._signoutStart(e,t);return await this._signoutEnd(r.url)}async _signoutStart(e={},t){var r;const n=this._logger.create("_signoutStart");try{const s=await this._loadUser();n.debug("loaded current user from storage"),this.settings.revokeTokensOnSignout&&await this._revokeInternal(s);const i=e.id_token_hint||s&&s.id_token;i&&(n.debug("setting id_token_hint in signout request"),e.id_token_hint=i),await this.removeUser(),n.debug("user removed, creating signout request");const o=await this._client.createSignoutRequest(e);return n.debug("got signout request"),await t.navigate({url:o.url,state:null==(r=o.state)?void 0:r.id,scriptOrigin:this.settings.iframeScriptOrigin})}catch(e){throw n.debug("error after preparing navigator, closing navigator window"),t.close(),e}}async _signoutEnd(e){const t=this._logger.create("_signoutEnd"),r=await this._client.processSignoutResponse(e);return t.debug("got signout response"),r}async signoutSilent(e={}){var t;const r=this._logger.create("signoutSilent"),{silentRequestTimeoutInSeconds:n,...s}=e,i=this.settings.includeIdTokenInSilentSignout?null==(t=await this._loadUser())?void 0:t.id_token:void 0,o=this.settings.popup_post_logout_redirect_uri,a=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:n});await this._signout({request_type:"so:s",post_logout_redirect_uri:o,id_token_hint:i,...s},a),r.info("success")}async signoutSilentCallback(e=window.location.href){const t=this._logger.create("signoutSilentCallback");await this._iframeNavigator.callback(e),t.info("success")}async revokeTokens(e){const t=await this._loadUser();await this._revokeInternal(t,e)}async _revokeInternal(e,t=this.settings.revokeTokenTypes){const r=this._logger.create("_revokeInternal");if(!e)return;const n=t.filter(t=>"string"==typeof e[t]);if(n.length){for(const t of n)await this._client.revokeToken(e[t],t),r.info(`${t} revoked successfully`),"access_token"!==t&&(e[t]=null);await this.storeUser(e),r.debug("user stored"),await this._events.load(e)}else r.debug("no need to revoke due to no token(s)")}startSilentRenew(){this._logger.create("startSilentRenew"),this._silentRenewService.start()}stopSilentRenew(){this._silentRenewService.stop()}get _userStoreKey(){return`user:${this.settings.authority}:${this.settings.client_id}`}async _loadUser(){const e=this._logger.create("_loadUser"),t=await this.settings.userStore.get(this._userStoreKey);return t?(e.debug("user storageString loaded"),X.fromStorageString(t)):(e.debug("no user storageString"),null)}async storeUser(e){const t=this._logger.create("storeUser");if(e){t.debug("storing user");const r=e.toStorageString();await this.settings.userStore.set(this._userStoreKey,r)}else this._logger.debug("removing user"),await this.settings.userStore.remove(this._userStoreKey),this.settings.dpop&&await this.settings.dpop.store.remove(this.settings.client_id)}async clearStaleState(){await this._client.clearStaleState()}async dpopProof(e,t,r,n){var s,i;const o=await(null==(i=null==(s=this.settings.dpop)?void 0:s.store)?void 0:i.get(this.settings.client_id));if(o)return await _.generateDPoPProof({url:e,accessToken:null==t?void 0:t.access_token,httpMethod:r,keyPair:o.keys,nonce:n})}async generateDPoPJkt(e){let t=await e.store.get(this.settings.client_id);if(!t){const r=await _.generateDPoPKeys();t=new V(r),await e.store.set(this.settings.client_id,t)}return await _.generateDPoPJkt(t.keys)}},me="3.3.0",ge=class{constructor(){this._dbName="oidc",this._storeName="dpop"}async set(e,t){const r=await this.createStore(this._dbName,this._storeName);await r("readwrite",r=>(r.put(t,e),this.promisifyRequest(r.transaction)))}async get(e){const t=await this.createStore(this._dbName,this._storeName);return await t("readonly",t=>this.promisifyRequest(t.get(e)))}async remove(e){const t=await this.get(e),r=await this.createStore(this._dbName,this._storeName);return await r("readwrite",t=>this.promisifyRequest(t.delete(e))),t}async getAllKeys(){const e=await this.createStore(this._dbName,this._storeName);return await e("readonly",e=>this.promisifyRequest(e.getAllKeys()))}promisifyRequest(e){return new Promise((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)})}async createStore(e,t){const r=indexedDB.open(e);r.onupgradeneeded=()=>r.result.createObjectStore(t);const n=await this.promisifyRequest(r);return async(e,r)=>{const s=n.transaction(t,e).objectStore(t);return await r(s)}}}},"./node_modules/sdp-transform/lib/grammar.js":e=>{var t=e.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return null!=e.address?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return null!=e.subtype?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return null!=e.sessionConfig?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=null!=e.raddr?" raddr %s rport %d":"%v%v",t+=null!=e.tcptype?" tcptype %s":"%v",null!=e.generation&&(t+=" generation %d"),t+=null!=e["network-id"]?" network-id %d":"%v",t+=null!=e["network-cost"]?" network-cost %d":"%v"}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return null!=e.maxMessageSize?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=null!=e.id?"id=%s %s":"%v%s",t+=null!=e.mediaClockValue?"=%s":"",t+=null!=e.rateNumerator?" rate=%s":"",t+=null!=e.rateDenominator?"/%s":""}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(t).forEach(function(e){t[e].forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})},"./node_modules/sdp-transform/lib/index.js":(e,t,r)=>{var n=r("./node_modules/sdp-transform/lib/parser.js"),s=r("./node_modules/sdp-transform/lib/writer.js");t.M9=s,t.qg=n.parse,n.parseParams,n.parseFmtpConfig,n.parsePayloads,n.parseRemoteCandidates,n.parseImageAttributes,n.parseSimulcastStreamList},"./node_modules/sdp-transform/lib/parser.js":(e,t,r)=>{var n=function(e){return String(Number(e))===e?Number(e):e},s=function(e,t,r){var s=e.name&&e.names;e.push&&!t[e.push]?t[e.push]=[]:s&&!t[e.name]&&(t[e.name]={});var i=e.push?{}:s?t[e.name]:t;!function(e,t,r,s){if(s&&!r)t[s]=n(e[1]);else for(var i=0;i<r.length;i+=1)null!=e[i+1]&&(t[r[i]]=n(e[i+1]))}(r.match(e.reg),i,e.names,e.name),e.push&&t[e.push].push(i)},i=r("./node_modules/sdp-transform/lib/grammar.js"),o=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(e){var t={},r=[],n=t;return e.split(/(\r\n|\r|\n)/).filter(o).forEach(function(e){var t=e[0],o=e.slice(2);"m"===t&&(r.push({rtp:[],fmtp:[]}),n=r[r.length-1]);for(var a=0;a<(i[t]||[]).length;a+=1){var c=i[t][a];if(c.reg.test(o))return s(c,n,o)}}),t.media=r,t};var a=function(e,t){var r=t.split(/=(.+)/,2);return 2===r.length?e[r[0]]=n(r[1]):1===r.length&&t.length>1&&(e[r[0]]=void 0),e};t.parseParams=function(e){return e.split(/;\s?/).reduce(a,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(e){return e.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(e){for(var t=[],r=e.split(" ").map(n),s=0;s<r.length;s+=3)t.push({component:r[s],ip:r[s+1],port:r[s+2]});return t},t.parseImageAttributes=function(e){return e.split(" ").map(function(e){return e.substring(1,e.length-1).split(",").reduce(a,{})})},t.parseSimulcastStreamList=function(e){return e.split(";").map(function(e){return e.split(",").map(function(e){var t,r=!1;return"~"!==e[0]?t=n(e):(t=n(e.substring(1,e.length)),r=!0),{scid:t,paused:r}})})}},"./node_modules/sdp-transform/lib/writer.js":(e,t,r)=>{var n=r("./node_modules/sdp-transform/lib/grammar.js"),s=/%[sdv%]/g,i=function(e){var t=1,r=arguments,n=r.length;return e.replace(s,function(e){if(t>=n)return e;var s=r[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},o=function(e,t,r){var n=[e+"="+(t.format instanceof Function?t.format(t.push?r:r[t.name]):t.format)];if(t.names)for(var s=0;s<t.names.length;s+=1){var o=t.names[s];t.name?n.push(r[t.name][o]):n.push(r[t.names[s]])}else n.push(r[t.name]);return i.apply(null,n)},a=["v","o","s","i","u","e","p","c","b","t","r","z","a"],c=["i","c","b","a"];e.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach(function(e){null==e.payloads&&(e.payloads="")});var r=t.outerOrder||a,s=t.innerOrder||c,i=[];return r.forEach(function(t){n[t].forEach(function(r){r.name in e&&null!=e[r.name]?i.push(o(t,r,e)):r.push in e&&null!=e[r.push]&&e[r.push].forEach(function(e){i.push(o(t,r,e))})})}),e.media.forEach(function(e){i.push(o("m",n.m[0],e)),s.forEach(function(t){n[t].forEach(function(r){r.name in e&&null!=e[r.name]?i.push(o(t,r,e)):r.push in e&&null!=e[r.push]&&e[r.push].forEach(function(e){i.push(o(t,r,e))})})})}),i.join("\r\n")+"\r\n"}},"./node_modules/uuid/dist/v4.js":(e,t,r)=>{"use strict";r.d(t,{A:()=>l});const n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let s;const i=new Uint8Array(16);const o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));function a(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}function c(e,t,r){const n=(e=e||{}).random??e.rng?.()??function(){if(!s){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");s=crypto.getRandomValues.bind(crypto)}return s(i)}();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){if((r=r||0)<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=n[e];return t}return a(n)}const l=function(e,t,r){return!n.randomUUID||t||e?c(e,t,r):n.randomUUID()}}}]);
//# sourceMappingURL=6803.js.map