polfan-server-js-client 0.2.96 → 0.2.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -209,6 +209,10 @@ function _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !==
209
209
  function IndexedObjectCollection_getPrototypeOf(t) { return IndexedObjectCollection_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, IndexedObjectCollection_getPrototypeOf(t); }
210
210
  function IndexedObjectCollection_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && IndexedObjectCollection_setPrototypeOf(t, e); }
211
211
  function IndexedObjectCollection_setPrototypeOf(t, e) { return IndexedObjectCollection_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, IndexedObjectCollection_setPrototypeOf(t, e); }
212
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
213
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
214
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
215
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
212
216
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } 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, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
213
217
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
214
218
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -280,16 +284,26 @@ var IndexedCollection = /*#__PURE__*/function () {
280
284
  }, {
281
285
  key: "findBy",
282
286
  value: function findBy(field, valueToFind) {
283
- var limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
287
+ var limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity;
284
288
  var result = new IndexedCollection();
285
- var item;
286
- while (!(item = this.items.entries().next().value).done) {
287
- if (limit && result.length === limit) {
288
- break;
289
- }
290
- if (item[1][field] === valueToFind) {
291
- result.set(item);
289
+ var _iterator = _createForOfIteratorHelper(this.items.entries()),
290
+ _step;
291
+ try {
292
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
293
+ var _step$value = _slicedToArray(_step.value, 2),
294
+ key = _step$value[0],
295
+ value = _step$value[1];
296
+ if (result.length >= limit) {
297
+ break;
298
+ }
299
+ if (value[field] === valueToFind) {
300
+ result.set([key, value]);
301
+ }
292
302
  }
303
+ } catch (err) {
304
+ _iterator.e(err);
305
+ } finally {
306
+ _iterator.f();
293
307
  }
294
308
  return result;
295
309
  }
@@ -364,11 +378,11 @@ var IndexedObjectCollection = /*#__PURE__*/function () {
364
378
  value: function findBy(field, valueToFind) {
365
379
  var limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
366
380
  var result = new IndexedObjectCollection(this.id);
367
- var _iterator = _createForOfIteratorHelper(this.items),
368
- _step;
381
+ var _iterator2 = _createForOfIteratorHelper(this.items),
382
+ _step2;
369
383
  try {
370
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
371
- var value = _step.value;
384
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
385
+ var value = _step2.value;
372
386
  if (limit && result.length === limit) {
373
387
  break;
374
388
  }
@@ -377,9 +391,9 @@ var IndexedObjectCollection = /*#__PURE__*/function () {
377
391
  }
378
392
  }
379
393
  } catch (err) {
380
- _iterator.e(err);
394
+ _iterator2.e(err);
381
395
  } finally {
382
- _iterator.f();
396
+ _iterator2.f();
383
397
  }
384
398
  return result;
385
399
  }
@@ -1528,12 +1542,12 @@ function RoomMessagesHistory_nonIterableSpread() { throw new TypeError("Invalid
1528
1542
  function RoomMessagesHistory_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
1529
1543
  function RoomMessagesHistory_arrayWithoutHoles(r) { if (Array.isArray(r)) return RoomMessagesHistory_arrayLikeToArray(r); }
1530
1544
  function RoomMessagesHistory_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = RoomMessagesHistory_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } 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, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
1531
- function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || RoomMessagesHistory_unsupportedIterableToArray(r, e) || _nonIterableRest(); }
1532
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1545
+ function RoomMessagesHistory_slicedToArray(r, e) { return RoomMessagesHistory_arrayWithHoles(r) || RoomMessagesHistory_iterableToArrayLimit(r, e) || RoomMessagesHistory_unsupportedIterableToArray(r, e) || RoomMessagesHistory_nonIterableRest(); }
1546
+ function RoomMessagesHistory_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1533
1547
  function RoomMessagesHistory_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return RoomMessagesHistory_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? RoomMessagesHistory_arrayLikeToArray(r, a) : void 0; } }
1534
1548
  function RoomMessagesHistory_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
1535
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
1536
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
1549
+ function RoomMessagesHistory_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
1550
+ function RoomMessagesHistory_arrayWithHoles(r) { if (Array.isArray(r)) return r; }
1537
1551
  function RoomMessagesHistory_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return RoomMessagesHistory_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (RoomMessagesHistory_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, RoomMessagesHistory_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, RoomMessagesHistory_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), RoomMessagesHistory_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", RoomMessagesHistory_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), RoomMessagesHistory_regeneratorDefine2(u), RoomMessagesHistory_regeneratorDefine2(u, o, "Generator"), RoomMessagesHistory_regeneratorDefine2(u, n, function () { return this; }), RoomMessagesHistory_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (RoomMessagesHistory_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
1538
1552
  function RoomMessagesHistory_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } RoomMessagesHistory_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { RoomMessagesHistory_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, RoomMessagesHistory_regeneratorDefine2(e, r, n, t); }
1539
1553
  function RoomMessagesHistory_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
@@ -1629,7 +1643,7 @@ var RoomMessagesHistory = /*#__PURE__*/function () {
1629
1643
  _context2.n = 3;
1630
1644
  break;
1631
1645
  }
1632
- _Array$from$_i = _slicedToArray(_Array$from[_i], 2), window = _Array$from$_i[1];
1646
+ _Array$from$_i = RoomMessagesHistory_slicedToArray(_Array$from[_i], 2), window = _Array$from$_i[1];
1633
1647
  _context2.n = 2;
1634
1648
  return window.setTraverseLock(this.traverseLock);
1635
1649
  case 2:
@@ -1705,15 +1719,6 @@ var RoomMessagesHistory = /*#__PURE__*/function () {
1705
1719
  }();
1706
1720
  ;// ./src/state-tracker/MessagesManager.ts
1707
1721
  function MessagesManager_typeof(o) { "@babel/helpers - typeof"; return MessagesManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MessagesManager_typeof(o); }
1708
- function MessagesManager_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1709
- function MessagesManager_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? MessagesManager_ownKeys(Object(t), !0).forEach(function (r) { MessagesManager_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : MessagesManager_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1710
- function MessagesManager_toConsumableArray(r) { return MessagesManager_arrayWithoutHoles(r) || MessagesManager_iterableToArray(r) || MessagesManager_unsupportedIterableToArray(r) || MessagesManager_nonIterableSpread(); }
1711
- function MessagesManager_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1712
- function MessagesManager_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
1713
- function MessagesManager_arrayWithoutHoles(r) { if (Array.isArray(r)) return MessagesManager_arrayLikeToArray(r); }
1714
- function MessagesManager_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = MessagesManager_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } 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, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
1715
- function MessagesManager_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return MessagesManager_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? MessagesManager_arrayLikeToArray(r, a) : void 0; } }
1716
- function MessagesManager_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
1717
1722
  function MessagesManager_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return MessagesManager_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (MessagesManager_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, MessagesManager_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, MessagesManager_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), MessagesManager_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", MessagesManager_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), MessagesManager_regeneratorDefine2(u), MessagesManager_regeneratorDefine2(u, o, "Generator"), MessagesManager_regeneratorDefine2(u, n, function () { return this; }), MessagesManager_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (MessagesManager_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
1718
1723
  function MessagesManager_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } MessagesManager_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { MessagesManager_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, MessagesManager_regeneratorDefine2(e, r, n, t); }
1719
1724
  function MessagesManager_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
@@ -1732,10 +1737,7 @@ var MessagesManager = /*#__PURE__*/function () {
1732
1737
  var _this = this;
1733
1738
  MessagesManager_classCallCheck(this, MessagesManager);
1734
1739
  MessagesManager_defineProperty(this, "roomHistories", new IndexedCollection());
1735
- MessagesManager_defineProperty(this, "followedTopics", new IndexedCollection());
1736
- MessagesManager_defineProperty(this, "followedTopicsPromises", new PromiseRegistry());
1737
1740
  MessagesManager_defineProperty(this, "deferredSession", new DeferredTask());
1738
- MessagesManager_defineProperty(this, "unreadSummariesCache", new Map());
1739
1741
  this.tracker = tracker;
1740
1742
  this.tracker.client.on('Session', function (ev) {
1741
1743
  return _this.handleSession(ev);
@@ -1743,27 +1745,12 @@ var MessagesManager = /*#__PURE__*/function () {
1743
1745
  this.tracker.client.on('RoomJoined', function (ev) {
1744
1746
  return _this.handleRoomJoin(ev);
1745
1747
  });
1746
- this.tracker.client.on('NewTopic', function (ev) {
1747
- return _this.handleNewTopic(ev);
1748
- });
1749
- this.tracker.client.on('FollowedTopicUpdated', function (ev) {
1750
- return _this.handleFollowedTopicUpdated(ev);
1751
- });
1752
- this.tracker.client.on('TopicFollowed', function (ev) {
1753
- return _this.handleTopicFollowed(ev);
1754
- });
1755
- this.tracker.client.on('NewMessage', function (ev) {
1756
- return _this.handleNewMessage(ev);
1757
- });
1758
1748
  this.tracker.client.on('RoomDeleted', function (ev) {
1759
1749
  return _this.handleRoomDeleted(ev);
1760
1750
  });
1761
1751
  this.tracker.client.on('RoomLeft', function (ev) {
1762
1752
  return _this.handleRoomLeft(ev);
1763
1753
  });
1764
- this.tracker.client.on('TopicDeleted', function (ev) {
1765
- return _this.handleTopicDeleted(ev);
1766
- });
1767
1754
  }
1768
1755
 
1769
1756
  /**
@@ -1789,40 +1776,186 @@ var MessagesManager = /*#__PURE__*/function () {
1789
1776
  return getRoomHistory;
1790
1777
  }()
1791
1778
  /**
1792
- * Cache followed topics for all joined rooms in a space and fetch them in bulk if necessary.
1793
- * Then you can get them using getRoomFollowedTopics().
1794
- * @see getRoomFollowedTopics
1779
+ * For internal use.
1780
+ * @internal
1795
1781
  */
1796
1782
  )
1797
1783
  }, {
1798
- key: "cacheSpaceFollowedTopics",
1784
+ key: "_resolveLastMessage",
1799
1785
  value: (function () {
1800
- var _cacheSpaceFollowedTopics = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee3(spaceId) {
1786
+ var _resolveLastMessage2 = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee2(location) {
1787
+ var message, _result$data, result;
1788
+ return MessagesManager_regenerator().w(function (_context2) {
1789
+ while (1) switch (_context2.n) {
1790
+ case 0:
1791
+ _context2.n = 1;
1792
+ return this.getRoomHistory(location.roomId).then(function (roomHistory) {
1793
+ return roomHistory === null || roomHistory === void 0 ? void 0 : roomHistory.getMessagesWindow(location.topicId, true);
1794
+ }).then(function (historyWindow) {
1795
+ return (historyWindow === null || historyWindow === void 0 ? void 0 : historyWindow.hasLatest) && historyWindow.getAt(historyWindow.length - 1);
1796
+ });
1797
+ case 1:
1798
+ message = _context2.v;
1799
+ if (message) {
1800
+ _context2.n = 3;
1801
+ break;
1802
+ }
1803
+ _context2.n = 2;
1804
+ return this.tracker.client.send('GetMessages', {
1805
+ location: location,
1806
+ limit: 1
1807
+ });
1808
+ case 2:
1809
+ result = _context2.v;
1810
+ message = (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.messages[0];
1811
+ case 3:
1812
+ return _context2.a(2, message || null);
1813
+ }
1814
+ }, _callee2, this);
1815
+ }));
1816
+ function _resolveLastMessage(_x2) {
1817
+ return _resolveLastMessage2.apply(this, arguments);
1818
+ }
1819
+ return _resolveLastMessage;
1820
+ }())
1821
+ }, {
1822
+ key: "createHistoryForNewRoom",
1823
+ value: function createHistoryForNewRoom(room) {
1824
+ this.roomHistories.set([room.id, new RoomMessagesHistory(room, this.tracker)]);
1825
+ }
1826
+ }, {
1827
+ key: "handleRoomDeleted",
1828
+ value: function handleRoomDeleted(ev) {
1829
+ this.roomHistories["delete"](ev.id);
1830
+ }
1831
+ }, {
1832
+ key: "handleRoomJoin",
1833
+ value: function handleRoomJoin(ev) {
1834
+ this.createHistoryForNewRoom(ev.room);
1835
+ }
1836
+ }, {
1837
+ key: "handleRoomLeft",
1838
+ value: function handleRoomLeft(ev) {
1839
+ this.roomHistories["delete"](ev.id);
1840
+ }
1841
+ }, {
1842
+ key: "handleSession",
1843
+ value: function handleSession(ev) {
1844
+ var _this2 = this;
1845
+ this.roomHistories.deleteAll();
1846
+ ev.state.rooms.forEach(function (room) {
1847
+ return _this2.createHistoryForNewRoom(room);
1848
+ });
1849
+ this.deferredSession.resolve();
1850
+ }
1851
+ }]);
1852
+ }();
1853
+ ;// ./src/state-tracker/FollowedTopicsManager.ts
1854
+ function FollowedTopicsManager_typeof(o) { "@babel/helpers - typeof"; return FollowedTopicsManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FollowedTopicsManager_typeof(o); }
1855
+ function FollowedTopicsManager_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1856
+ function FollowedTopicsManager_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? FollowedTopicsManager_ownKeys(Object(t), !0).forEach(function (r) { FollowedTopicsManager_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : FollowedTopicsManager_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1857
+ function FollowedTopicsManager_toConsumableArray(r) { return FollowedTopicsManager_arrayWithoutHoles(r) || FollowedTopicsManager_iterableToArray(r) || FollowedTopicsManager_unsupportedIterableToArray(r) || FollowedTopicsManager_nonIterableSpread(); }
1858
+ function FollowedTopicsManager_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1859
+ function FollowedTopicsManager_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
1860
+ function FollowedTopicsManager_arrayWithoutHoles(r) { if (Array.isArray(r)) return FollowedTopicsManager_arrayLikeToArray(r); }
1861
+ function FollowedTopicsManager_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = FollowedTopicsManager_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } 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, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
1862
+ function FollowedTopicsManager_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return FollowedTopicsManager_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? FollowedTopicsManager_arrayLikeToArray(r, a) : void 0; } }
1863
+ function FollowedTopicsManager_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
1864
+ function FollowedTopicsManager_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return FollowedTopicsManager_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (FollowedTopicsManager_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, FollowedTopicsManager_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, FollowedTopicsManager_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), FollowedTopicsManager_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", FollowedTopicsManager_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), FollowedTopicsManager_regeneratorDefine2(u), FollowedTopicsManager_regeneratorDefine2(u, o, "Generator"), FollowedTopicsManager_regeneratorDefine2(u, n, function () { return this; }), FollowedTopicsManager_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (FollowedTopicsManager_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
1865
+ function FollowedTopicsManager_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } FollowedTopicsManager_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { FollowedTopicsManager_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, FollowedTopicsManager_regeneratorDefine2(e, r, n, t); }
1866
+ function FollowedTopicsManager_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
1867
+ function FollowedTopicsManager_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { FollowedTopicsManager_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { FollowedTopicsManager_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
1868
+ function FollowedTopicsManager_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
1869
+ function FollowedTopicsManager_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FollowedTopicsManager_toPropertyKey(o.key), o); } }
1870
+ function FollowedTopicsManager_createClass(e, r, t) { return r && FollowedTopicsManager_defineProperties(e.prototype, r), t && FollowedTopicsManager_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
1871
+ function FollowedTopicsManager_callSuper(t, o, e) { return o = FollowedTopicsManager_getPrototypeOf(o), FollowedTopicsManager_possibleConstructorReturn(t, FollowedTopicsManager_isNativeReflectConstruct() ? Reflect.construct(o, e || [], FollowedTopicsManager_getPrototypeOf(t).constructor) : o.apply(t, e)); }
1872
+ function FollowedTopicsManager_possibleConstructorReturn(t, e) { if (e && ("object" == FollowedTopicsManager_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FollowedTopicsManager_assertThisInitialized(t); }
1873
+ function FollowedTopicsManager_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
1874
+ function FollowedTopicsManager_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FollowedTopicsManager_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1875
+ function FollowedTopicsManager_getPrototypeOf(t) { return FollowedTopicsManager_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FollowedTopicsManager_getPrototypeOf(t); }
1876
+ function FollowedTopicsManager_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && FollowedTopicsManager_setPrototypeOf(t, e); }
1877
+ function FollowedTopicsManager_setPrototypeOf(t, e) { return FollowedTopicsManager_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, FollowedTopicsManager_setPrototypeOf(t, e); }
1878
+ function FollowedTopicsManager_defineProperty(e, r, t) { return (r = FollowedTopicsManager_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
1879
+ function FollowedTopicsManager_toPropertyKey(t) { var i = FollowedTopicsManager_toPrimitive(t, "string"); return "symbol" == FollowedTopicsManager_typeof(i) ? i : i + ""; }
1880
+ function FollowedTopicsManager_toPrimitive(t, r) { if ("object" != FollowedTopicsManager_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != FollowedTopicsManager_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
1881
+
1882
+
1883
+
1884
+ var FollowedTopicsManager = /*#__PURE__*/function (_EventTarget) {
1885
+ function FollowedTopicsManager(tracker) {
1886
+ var _this;
1887
+ FollowedTopicsManager_classCallCheck(this, FollowedTopicsManager);
1888
+ _this = FollowedTopicsManager_callSuper(this, FollowedTopicsManager);
1889
+ FollowedTopicsManager_defineProperty(_this, "followedTopics", new IndexedCollection());
1890
+ FollowedTopicsManager_defineProperty(_this, "followedTopicsPromises", new PromiseRegistry());
1891
+ FollowedTopicsManager_defineProperty(_this, "deferredSession", new DeferredTask());
1892
+ FollowedTopicsManager_defineProperty(_this, "summariesCache", new Map());
1893
+ _this.tracker = tracker;
1894
+ _this.tracker.client.on('Session', function (ev) {
1895
+ return _this.handleSession(ev);
1896
+ });
1897
+ _this.tracker.client.on('RoomJoined', function (ev) {
1898
+ return _this.handleRoomJoin(ev);
1899
+ });
1900
+ _this.tracker.client.on('NewTopic', function (ev) {
1901
+ return _this.handleNewTopic(ev);
1902
+ });
1903
+ _this.tracker.client.on('FollowedTopicUpdated', function (ev) {
1904
+ return _this.handleFollowedTopicUpdated(ev);
1905
+ });
1906
+ _this.tracker.client.on('TopicFollowed', function (ev) {
1907
+ return _this.handleTopicFollowed(ev);
1908
+ });
1909
+ _this.tracker.client.on('NewMessage', function (ev) {
1910
+ return _this.handleNewMessage(ev);
1911
+ });
1912
+ _this.tracker.client.on('RoomDeleted', function (ev) {
1913
+ return _this.handleRoomDeleted(ev);
1914
+ });
1915
+ _this.tracker.client.on('RoomLeft', function (ev) {
1916
+ return _this.handleRoomLeft(ev);
1917
+ });
1918
+ _this.tracker.client.on('TopicDeleted', function (ev) {
1919
+ return _this.handleTopicDeleted(ev);
1920
+ });
1921
+ return _this;
1922
+ }
1923
+
1924
+ /**
1925
+ * Cache followed topics for all joined rooms in a space and fetch them in bulk if necessary.
1926
+ * Then you can get them using getRoomFollowedTopics().
1927
+ * @see getForRoom
1928
+ */
1929
+ FollowedTopicsManager_inherits(FollowedTopicsManager, _EventTarget);
1930
+ return FollowedTopicsManager_createClass(FollowedTopicsManager, [{
1931
+ key: "cacheForSpace",
1932
+ value: (function () {
1933
+ var _cacheForSpace = FollowedTopicsManager_asyncToGenerator(/*#__PURE__*/FollowedTopicsManager_regenerator().m(function _callee2(spaceId) {
1801
1934
  var _this2 = this;
1802
1935
  var rooms, roomIds, isAlreadyCached, spaceRegistryKey, _t;
1803
- return MessagesManager_regenerator().w(function (_context3) {
1804
- while (1) switch (_context3.n) {
1936
+ return FollowedTopicsManager_regenerator().w(function (_context2) {
1937
+ while (1) switch (_context2.n) {
1805
1938
  case 0:
1806
1939
  _t = spaceId;
1807
1940
  if (!_t) {
1808
- _context3.n = 2;
1941
+ _context2.n = 2;
1809
1942
  break;
1810
1943
  }
1811
- _context3.n = 1;
1944
+ _context2.n = 1;
1812
1945
  return this.tracker.spaces.get();
1813
1946
  case 1:
1814
- _t = !_context3.v.has(spaceId);
1947
+ _t = !_context2.v.has(spaceId);
1815
1948
  case 2:
1816
1949
  if (!_t) {
1817
- _context3.n = 3;
1950
+ _context2.n = 3;
1818
1951
  break;
1819
1952
  }
1820
1953
  throw new Error("You are not in space ".concat(spaceId));
1821
1954
  case 3:
1822
- _context3.n = 4;
1955
+ _context2.n = 4;
1823
1956
  return this.tracker.rooms.get();
1824
1957
  case 4:
1825
- rooms = _context3.v;
1958
+ rooms = _context2.v;
1826
1959
  roomIds = spaceId ? rooms.findBy('spaceId', spaceId).items.map(function (r) {
1827
1960
  return r.id;
1828
1961
  }) : rooms.items.filter(function (r) {
@@ -1831,59 +1964,59 @@ var MessagesManager = /*#__PURE__*/function () {
1831
1964
  return r.id;
1832
1965
  });
1833
1966
  if (roomIds.length) {
1834
- _context3.n = 5;
1967
+ _context2.n = 5;
1835
1968
  break;
1836
1969
  }
1837
- return _context3.a(2);
1970
+ return _context2.a(2);
1838
1971
  case 5:
1839
1972
  isAlreadyCached = roomIds.every(function (roomId) {
1840
1973
  return _this2.followedTopics.has(roomId);
1841
1974
  });
1842
1975
  if (!isAlreadyCached) {
1843
- _context3.n = 6;
1976
+ _context2.n = 6;
1844
1977
  break;
1845
1978
  }
1846
- return _context3.a(2);
1979
+ return _context2.a(2);
1847
1980
  case 6:
1848
1981
  spaceRegistryKey = "space_fetch_".concat(spaceId || 'spaceless');
1849
1982
  if (this.followedTopicsPromises.notExist(spaceRegistryKey)) {
1850
- this.followedTopicsPromises.registerByFunction(/*#__PURE__*/MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee2() {
1983
+ this.followedTopicsPromises.registerByFunction(/*#__PURE__*/FollowedTopicsManager_asyncToGenerator(/*#__PURE__*/FollowedTopicsManager_regenerator().m(function _callee() {
1851
1984
  var result;
1852
- return MessagesManager_regenerator().w(function (_context2) {
1853
- while (1) switch (_context2.n) {
1985
+ return FollowedTopicsManager_regenerator().w(function (_context) {
1986
+ while (1) switch (_context.n) {
1854
1987
  case 0:
1855
- _context2.n = 1;
1988
+ _context.n = 1;
1856
1989
  return _this2.tracker.client.send('GetFollowedTopics', {
1857
1990
  location: {
1858
1991
  spaceId: spaceId
1859
1992
  }
1860
1993
  });
1861
1994
  case 1:
1862
- result = _context2.v;
1995
+ result = _context.v;
1863
1996
  if (!result.error) {
1864
- _context2.n = 2;
1997
+ _context.n = 2;
1865
1998
  break;
1866
1999
  }
1867
2000
  throw result.error;
1868
2001
  case 2:
1869
2002
  _this2.setFollowedTopicsArray(roomIds, result.data.followedTopics);
1870
2003
  case 3:
1871
- return _context2.a(2);
2004
+ return _context.a(2);
1872
2005
  }
1873
- }, _callee2);
2006
+ }, _callee);
1874
2007
  })), spaceRegistryKey);
1875
2008
  }
1876
- _context3.n = 7;
2009
+ _context2.n = 7;
1877
2010
  return this.followedTopicsPromises.get(spaceRegistryKey);
1878
2011
  case 7:
1879
- return _context3.a(2);
2012
+ return _context2.a(2);
1880
2013
  }
1881
- }, _callee3, this);
2014
+ }, _callee2, this);
1882
2015
  }));
1883
- function cacheSpaceFollowedTopics(_x2) {
1884
- return _cacheSpaceFollowedTopics.apply(this, arguments);
2016
+ function cacheForSpace(_x) {
2017
+ return _cacheForSpace.apply(this, arguments);
1885
2018
  }
1886
- return cacheSpaceFollowedTopics;
2019
+ return cacheForSpace;
1887
2020
  }()
1888
2021
  /**
1889
2022
  * Get followed topics for the given room.
@@ -1891,64 +2024,64 @@ var MessagesManager = /*#__PURE__*/function () {
1891
2024
  */
1892
2025
  )
1893
2026
  }, {
1894
- key: "getRoomFollowedTopics",
2027
+ key: "getForRoom",
1895
2028
  value: (function () {
1896
- var _getRoomFollowedTopics = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee5(roomId) {
2029
+ var _getForRoom = FollowedTopicsManager_asyncToGenerator(/*#__PURE__*/FollowedTopicsManager_regenerator().m(function _callee4(roomId) {
1897
2030
  var _this3 = this;
1898
- return MessagesManager_regenerator().w(function (_context5) {
1899
- while (1) switch (_context5.n) {
2031
+ return FollowedTopicsManager_regenerator().w(function (_context4) {
2032
+ while (1) switch (_context4.n) {
1900
2033
  case 0:
1901
- _context5.n = 1;
2034
+ _context4.n = 1;
1902
2035
  return this.tracker.rooms.get();
1903
2036
  case 1:
1904
- if (_context5.v.has(roomId)) {
1905
- _context5.n = 2;
2037
+ if (_context4.v.has(roomId)) {
2038
+ _context4.n = 2;
1906
2039
  break;
1907
2040
  }
1908
- return _context5.a(2, undefined);
2041
+ return _context4.a(2, undefined);
1909
2042
  case 2:
1910
2043
  if (this.followedTopics.has(roomId)) {
1911
- _context5.n = 3;
2044
+ _context4.n = 3;
1912
2045
  break;
1913
2046
  }
1914
2047
  if (this.followedTopicsPromises.notExist(roomId)) {
1915
- this.followedTopicsPromises.registerByFunction(/*#__PURE__*/MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee4() {
2048
+ this.followedTopicsPromises.registerByFunction(/*#__PURE__*/FollowedTopicsManager_asyncToGenerator(/*#__PURE__*/FollowedTopicsManager_regenerator().m(function _callee3() {
1916
2049
  var result;
1917
- return MessagesManager_regenerator().w(function (_context4) {
1918
- while (1) switch (_context4.n) {
2050
+ return FollowedTopicsManager_regenerator().w(function (_context3) {
2051
+ while (1) switch (_context3.n) {
1919
2052
  case 0:
1920
- _context4.n = 1;
2053
+ _context3.n = 1;
1921
2054
  return _this3.tracker.client.send('GetFollowedTopics', {
1922
2055
  location: {
1923
2056
  roomId: roomId
1924
2057
  }
1925
2058
  });
1926
2059
  case 1:
1927
- result = _context4.v;
2060
+ result = _context3.v;
1928
2061
  if (!result.error) {
1929
- _context4.n = 2;
2062
+ _context3.n = 2;
1930
2063
  break;
1931
2064
  }
1932
2065
  throw result.error;
1933
2066
  case 2:
1934
2067
  _this3.setFollowedTopicsArray([roomId], result.data.followedTopics);
1935
2068
  case 3:
1936
- return _context4.a(2);
2069
+ return _context3.a(2);
1937
2070
  }
1938
- }, _callee4);
2071
+ }, _callee3);
1939
2072
  })), roomId);
1940
2073
  }
1941
- _context5.n = 3;
2074
+ _context4.n = 3;
1942
2075
  return this.followedTopicsPromises.get(roomId);
1943
2076
  case 3:
1944
- return _context5.a(2, this.followedTopics.get(roomId));
2077
+ return _context4.a(2, this.followedTopics.get(roomId));
1945
2078
  }
1946
- }, _callee5, this);
2079
+ }, _callee4, this);
1947
2080
  }));
1948
- function getRoomFollowedTopics(_x3) {
1949
- return _getRoomFollowedTopics.apply(this, arguments);
2081
+ function getForRoom(_x2) {
2082
+ return _getForRoom.apply(this, arguments);
1950
2083
  }
1951
- return getRoomFollowedTopics;
2084
+ return getForRoom;
1952
2085
  }()
1953
2086
  /**
1954
2087
  * Batch acknowledge all messages for given room.
@@ -1957,125 +2090,127 @@ var MessagesManager = /*#__PURE__*/function () {
1957
2090
  }, {
1958
2091
  key: "ackRoom",
1959
2092
  value: (function () {
1960
- var _ackRoom = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee6(roomId) {
2093
+ var _ackRoom = FollowedTopicsManager_asyncToGenerator(/*#__PURE__*/FollowedTopicsManager_regenerator().m(function _callee5(roomId) {
1961
2094
  var collection, _iterator, _step, followedTopic, _t2;
1962
- return MessagesManager_regenerator().w(function (_context6) {
1963
- while (1) switch (_context6.p = _context6.n) {
2095
+ return FollowedTopicsManager_regenerator().w(function (_context5) {
2096
+ while (1) switch (_context5.p = _context5.n) {
1964
2097
  case 0:
1965
- _context6.n = 1;
1966
- return this.getRoomFollowedTopics(roomId);
2098
+ _context5.n = 1;
2099
+ return this.getForRoom(roomId);
1967
2100
  case 1:
1968
- collection = _context6.v;
2101
+ collection = _context5.v;
1969
2102
  if (collection) {
1970
- _context6.n = 2;
2103
+ _context5.n = 2;
1971
2104
  break;
1972
2105
  }
1973
- return _context6.a(2);
2106
+ return _context5.a(2);
1974
2107
  case 2:
1975
- _iterator = MessagesManager_createForOfIteratorHelper(collection.items);
1976
- _context6.p = 3;
2108
+ _iterator = FollowedTopicsManager_createForOfIteratorHelper(collection.items);
2109
+ _context5.p = 3;
1977
2110
  _iterator.s();
1978
2111
  case 4:
1979
2112
  if ((_step = _iterator.n()).done) {
1980
- _context6.n = 6;
2113
+ _context5.n = 6;
1981
2114
  break;
1982
2115
  }
1983
2116
  followedTopic = _step.value;
1984
2117
  if (!followedTopic.isUnread) {
1985
- _context6.n = 5;
2118
+ _context5.n = 5;
1986
2119
  break;
1987
2120
  }
1988
- _context6.n = 5;
2121
+ _context5.n = 5;
1989
2122
  return this.tracker.client.send('Ack', {
1990
2123
  location: followedTopic.location
1991
2124
  });
1992
2125
  case 5:
1993
- _context6.n = 4;
2126
+ _context5.n = 4;
1994
2127
  break;
1995
2128
  case 6:
1996
- _context6.n = 8;
2129
+ _context5.n = 8;
1997
2130
  break;
1998
2131
  case 7:
1999
- _context6.p = 7;
2000
- _t2 = _context6.v;
2132
+ _context5.p = 7;
2133
+ _t2 = _context5.v;
2001
2134
  _iterator.e(_t2);
2002
2135
  case 8:
2003
- _context6.p = 8;
2136
+ _context5.p = 8;
2004
2137
  _iterator.f();
2005
- return _context6.f(8);
2138
+ return _context5.f(8);
2006
2139
  case 9:
2007
- return _context6.a(2);
2140
+ return _context5.a(2);
2008
2141
  }
2009
- }, _callee6, this, [[3, 7, 8, 9]]);
2142
+ }, _callee5, this, [[3, 7, 8, 9]]);
2010
2143
  }));
2011
- function ackRoom(_x4) {
2144
+ function ackRoom(_x3) {
2012
2145
  return _ackRoom.apply(this, arguments);
2013
2146
  }
2014
2147
  return ackRoom;
2015
2148
  }()
2016
2149
  /**
2017
- * Calculate missed messages with mentions from any topic in given room.
2150
+ * Summarize all unread messages or mentions from any topic in given location.
2151
+ * This method uses an internal cache, so it's ok to call it multiple times.
2152
+ * Capture the 'change' event to determine when it's worth calling this method again due to data changes.
2018
2153
  * @return Undefined if you are not in room.
2019
2154
  */
2020
2155
  )
2021
2156
  }, {
2022
- key: "summarizeUnreadMessages",
2157
+ key: "summarize",
2023
2158
  value: (function () {
2024
- var _summarizeUnreadMessages = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee7(location) {
2159
+ var _summarize = FollowedTopicsManager_asyncToGenerator(/*#__PURE__*/FollowedTopicsManager_regenerator().m(function _callee6(location) {
2025
2160
  var cacheKey, roomIds, targetTopicId, rooms, mentionCount, isUnread, _iterator2, _step2, roomId, collection, _iterator3, _step3, _topic$mentionCount, topic, result, _t3, _t4;
2026
- return MessagesManager_regenerator().w(function (_context7) {
2027
- while (1) switch (_context7.p = _context7.n) {
2161
+ return FollowedTopicsManager_regenerator().w(function (_context6) {
2162
+ while (1) switch (_context6.p = _context6.n) {
2028
2163
  case 0:
2029
2164
  cacheKey = location.topicId ? "topic:".concat(location.roomId, ":").concat(location.topicId) : location.roomId ? "room:".concat(location.roomId) : location.spaceId ? "space:".concat(location.spaceId) : 'spaceless';
2030
- if (!this.unreadSummariesCache.has(cacheKey)) {
2031
- _context7.n = 1;
2165
+ if (!this.summariesCache.has(cacheKey)) {
2166
+ _context6.n = 1;
2032
2167
  break;
2033
2168
  }
2034
- return _context7.a(2, this.unreadSummariesCache.get(cacheKey));
2169
+ return _context6.a(2, this.summariesCache.get(cacheKey));
2035
2170
  case 1:
2036
2171
  roomIds = [];
2037
- _context7.n = 2;
2172
+ _context6.n = 2;
2038
2173
  return this.tracker.rooms.get();
2039
2174
  case 2:
2040
- rooms = _context7.v;
2175
+ rooms = _context6.v;
2041
2176
  if (!location.topicId) {
2042
- _context7.n = 4;
2177
+ _context6.n = 4;
2043
2178
  break;
2044
2179
  }
2045
2180
  if (location.roomId) {
2046
- _context7.n = 3;
2181
+ _context6.n = 3;
2047
2182
  break;
2048
2183
  }
2049
2184
  throw new Error("roomId is required when querying by topicId");
2050
2185
  case 3:
2051
2186
  roomIds = [location.roomId];
2052
2187
  targetTopicId = location.topicId;
2053
- _context7.n = 9;
2188
+ _context6.n = 9;
2054
2189
  break;
2055
2190
  case 4:
2056
2191
  if (!location.roomId) {
2057
- _context7.n = 5;
2192
+ _context6.n = 5;
2058
2193
  break;
2059
2194
  }
2060
2195
  roomIds = [location.roomId];
2061
- _context7.n = 9;
2196
+ _context6.n = 9;
2062
2197
  break;
2063
2198
  case 5:
2064
2199
  if (!location.spaceId) {
2065
- _context7.n = 7;
2200
+ _context6.n = 7;
2066
2201
  break;
2067
2202
  }
2068
- _context7.n = 6;
2069
- return this.cacheSpaceFollowedTopics(location.spaceId);
2203
+ _context6.n = 6;
2204
+ return this.cacheForSpace(location.spaceId);
2070
2205
  case 6:
2071
2206
  roomIds = rooms.findBy('spaceId', location.spaceId).items.map(function (r) {
2072
2207
  return r.id;
2073
2208
  });
2074
- _context7.n = 9;
2209
+ _context6.n = 9;
2075
2210
  break;
2076
2211
  case 7:
2077
- _context7.n = 8;
2078
- return this.cacheSpaceFollowedTopics(null);
2212
+ _context6.n = 8;
2213
+ return this.cacheForSpace(null);
2079
2214
  case 8:
2080
2215
  roomIds = rooms.items.filter(function (r) {
2081
2216
  return !r.spaceId;
@@ -2085,86 +2220,86 @@ var MessagesManager = /*#__PURE__*/function () {
2085
2220
  case 9:
2086
2221
  mentionCount = 0;
2087
2222
  isUnread = false;
2088
- _iterator2 = MessagesManager_createForOfIteratorHelper(roomIds);
2089
- _context7.p = 10;
2223
+ _iterator2 = FollowedTopicsManager_createForOfIteratorHelper(roomIds);
2224
+ _context6.p = 10;
2090
2225
  _iterator2.s();
2091
2226
  case 11:
2092
2227
  if ((_step2 = _iterator2.n()).done) {
2093
- _context7.n = 22;
2228
+ _context6.n = 22;
2094
2229
  break;
2095
2230
  }
2096
2231
  roomId = _step2.value;
2097
- _context7.n = 12;
2098
- return this.getRoomFollowedTopics(roomId);
2232
+ _context6.n = 12;
2233
+ return this.getForRoom(roomId);
2099
2234
  case 12:
2100
- collection = _context7.v;
2235
+ collection = _context6.v;
2101
2236
  if (collection) {
2102
- _context7.n = 13;
2237
+ _context6.n = 13;
2103
2238
  break;
2104
2239
  }
2105
- return _context7.a(3, 21);
2240
+ return _context6.a(3, 21);
2106
2241
  case 13:
2107
- _iterator3 = MessagesManager_createForOfIteratorHelper(collection.items);
2108
- _context7.p = 14;
2242
+ _iterator3 = FollowedTopicsManager_createForOfIteratorHelper(collection.items);
2243
+ _context6.p = 14;
2109
2244
  _iterator3.s();
2110
2245
  case 15:
2111
2246
  if ((_step3 = _iterator3.n()).done) {
2112
- _context7.n = 18;
2247
+ _context6.n = 18;
2113
2248
  break;
2114
2249
  }
2115
2250
  topic = _step3.value;
2116
2251
  if (!(targetTopicId && topic.location.topicId !== targetTopicId)) {
2117
- _context7.n = 16;
2252
+ _context6.n = 16;
2118
2253
  break;
2119
2254
  }
2120
- return _context7.a(3, 17);
2255
+ return _context6.a(3, 17);
2121
2256
  case 16:
2122
2257
  if (topic.isUnread) {
2123
2258
  isUnread = true;
2124
2259
  }
2125
2260
  mentionCount += (_topic$mentionCount = topic.mentionCount) !== null && _topic$mentionCount !== void 0 ? _topic$mentionCount : 0;
2126
2261
  case 17:
2127
- _context7.n = 15;
2262
+ _context6.n = 15;
2128
2263
  break;
2129
2264
  case 18:
2130
- _context7.n = 20;
2265
+ _context6.n = 20;
2131
2266
  break;
2132
2267
  case 19:
2133
- _context7.p = 19;
2134
- _t3 = _context7.v;
2268
+ _context6.p = 19;
2269
+ _t3 = _context6.v;
2135
2270
  _iterator3.e(_t3);
2136
2271
  case 20:
2137
- _context7.p = 20;
2272
+ _context6.p = 20;
2138
2273
  _iterator3.f();
2139
- return _context7.f(20);
2274
+ return _context6.f(20);
2140
2275
  case 21:
2141
- _context7.n = 11;
2276
+ _context6.n = 11;
2142
2277
  break;
2143
2278
  case 22:
2144
- _context7.n = 24;
2279
+ _context6.n = 24;
2145
2280
  break;
2146
2281
  case 23:
2147
- _context7.p = 23;
2148
- _t4 = _context7.v;
2282
+ _context6.p = 23;
2283
+ _t4 = _context6.v;
2149
2284
  _iterator2.e(_t4);
2150
2285
  case 24:
2151
- _context7.p = 24;
2286
+ _context6.p = 24;
2152
2287
  _iterator2.f();
2153
- return _context7.f(24);
2288
+ return _context6.f(24);
2154
2289
  case 25:
2155
2290
  result = {
2156
2291
  mentionCount: mentionCount,
2157
2292
  isUnread: isUnread
2158
2293
  };
2159
- this.unreadSummariesCache.set(cacheKey, result);
2160
- return _context7.a(2, result);
2294
+ this.summariesCache.set(cacheKey, result);
2295
+ return _context6.a(2, result);
2161
2296
  }
2162
- }, _callee7, this, [[14, 19, 20, 21], [10, 23, 24, 25]]);
2297
+ }, _callee6, this, [[14, 19, 20, 21], [10, 23, 24, 25]]);
2163
2298
  }));
2164
- function summarizeUnreadMessages(_x5) {
2165
- return _summarizeUnreadMessages.apply(this, arguments);
2299
+ function summarize(_x4) {
2300
+ return _summarize.apply(this, arguments);
2166
2301
  }
2167
- return summarizeUnreadMessages;
2302
+ return summarize;
2168
2303
  }()
2169
2304
  /**
2170
2305
  * For internal use. If you want to delete the message, execute a proper command on client object.
@@ -2184,128 +2319,13 @@ var MessagesManager = /*#__PURE__*/function () {
2184
2319
  return _this4.invalidateUnreadSummaries(roomId, topicId);
2185
2320
  });
2186
2321
  }
2187
-
2188
- /**
2189
- * For internal use.
2190
- * @internal
2191
- */
2192
- }, {
2193
- key: "_resolveLastMessage",
2194
- value: (function () {
2195
- var _resolveLastMessage2 = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee8(location) {
2196
- var message, _result$data, result;
2197
- return MessagesManager_regenerator().w(function (_context8) {
2198
- while (1) switch (_context8.n) {
2199
- case 0:
2200
- _context8.n = 1;
2201
- return this.getRoomHistory(location.roomId).then(function (roomHistory) {
2202
- return roomHistory === null || roomHistory === void 0 ? void 0 : roomHistory.getMessagesWindow(location.topicId, true);
2203
- }).then(function (historyWindow) {
2204
- return (historyWindow === null || historyWindow === void 0 ? void 0 : historyWindow.hasLatest) && historyWindow.getAt(historyWindow.length - 1);
2205
- });
2206
- case 1:
2207
- message = _context8.v;
2208
- if (message) {
2209
- _context8.n = 3;
2210
- break;
2211
- }
2212
- _context8.n = 2;
2213
- return this.tracker.client.send('GetMessages', {
2214
- location: location,
2215
- limit: 1
2216
- });
2217
- case 2:
2218
- result = _context8.v;
2219
- message = (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.messages[0];
2220
- case 3:
2221
- return _context8.a(2, message || null);
2222
- }
2223
- }, _callee8, this);
2224
- }));
2225
- function _resolveLastMessage(_x6) {
2226
- return _resolveLastMessage2.apply(this, arguments);
2227
- }
2228
- return _resolveLastMessage;
2229
- }()
2230
- /**
2231
- * Wyczyść cache celowo, tylko dla lokalizacji których dotyczy zmiana.
2232
- */
2233
- )
2234
- }, {
2235
- key: "invalidateUnreadSummaries",
2236
- value: function invalidateUnreadSummaries(roomId, topicId) {
2237
- if (!roomId) {
2238
- this.unreadSummariesCache.clear();
2239
- return;
2240
- }
2241
- this.unreadSummariesCache["delete"]("room:".concat(roomId));
2242
- if (topicId) {
2243
- this.unreadSummariesCache["delete"]("topic:".concat(roomId, ":").concat(topicId));
2244
- } else {
2245
- var _iterator4 = MessagesManager_createForOfIteratorHelper(this.unreadSummariesCache.keys()),
2246
- _step4;
2247
- try {
2248
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
2249
- var key = _step4.value;
2250
- if (key.startsWith("topic:".concat(roomId, ":"))) {
2251
- this.unreadSummariesCache["delete"](key);
2252
- }
2253
- }
2254
- } catch (err) {
2255
- _iterator4.e(err);
2256
- } finally {
2257
- _iterator4.f();
2258
- }
2259
- }
2260
- var _iterator5 = MessagesManager_createForOfIteratorHelper(this.unreadSummariesCache.keys()),
2261
- _step5;
2262
- try {
2263
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
2264
- var _key2 = _step5.value;
2265
- if (_key2.startsWith('space:') || _key2 === 'spaceless') {
2266
- this.unreadSummariesCache["delete"](_key2);
2267
- }
2268
- }
2269
- } catch (err) {
2270
- _iterator5.e(err);
2271
- } finally {
2272
- _iterator5.f();
2273
- }
2274
- }
2275
- }, {
2276
- key: "invalidateUnreadSummariesForRooms",
2277
- value: function invalidateUnreadSummariesForRooms(roomIds) {
2278
- var _this5 = this;
2279
- var roomIdsSet = new Set(roomIds);
2280
- roomIds.forEach(function (roomId) {
2281
- _this5.unreadSummariesCache["delete"]("room:".concat(roomId));
2282
- });
2283
- var _iterator6 = MessagesManager_createForOfIteratorHelper(this.unreadSummariesCache.keys()),
2284
- _step6;
2285
- try {
2286
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
2287
- var key = _step6.value;
2288
- if (key.startsWith('space:') || key === 'spaceless') {
2289
- this.unreadSummariesCache["delete"](key);
2290
- continue;
2291
- }
2292
- if (key.startsWith('topic:')) {
2293
- var parts = key.split(':');
2294
- if (parts.length >= 2 && roomIdsSet.has(parts[1])) {
2295
- this.unreadSummariesCache["delete"](key);
2296
- }
2297
- }
2298
- }
2299
- } catch (err) {
2300
- _iterator6.e(err);
2301
- } finally {
2302
- _iterator6.f();
2303
- }
2304
- }
2305
2322
  }, {
2306
- key: "createHistoryForNewRoom",
2307
- value: function createHistoryForNewRoom(room) {
2308
- this.roomHistories.set([room.id, new RoomMessagesHistory(room, this.tracker)]);
2323
+ key: "handleSession",
2324
+ value: function handleSession(ev) {
2325
+ this.followedTopics.deleteAll();
2326
+ this.followedTopicsPromises.forgetAll();
2327
+ this.invalidateUnreadSummaries();
2328
+ this.deferredSession.resolve();
2309
2329
  }
2310
2330
  }, {
2311
2331
  key: "handleNewMessage",
@@ -2328,34 +2348,31 @@ var MessagesManager = /*#__PURE__*/function () {
2328
2348
  }, {
2329
2349
  key: "handleRoomDeleted",
2330
2350
  value: function handleRoomDeleted(ev) {
2331
- this.roomHistories["delete"](ev.id);
2332
2351
  this.clearRoomFollowedTopicsStructures(ev.id);
2333
2352
  }
2334
2353
  }, {
2335
2354
  key: "handleRoomJoin",
2336
2355
  value: function handleRoomJoin(ev) {
2337
- this.createHistoryForNewRoom(ev.room);
2338
2356
  this.clearRoomFollowedTopicsStructures(ev.room.id);
2339
2357
  }
2340
2358
  }, {
2341
2359
  key: "handleRoomLeft",
2342
2360
  value: function handleRoomLeft(ev) {
2343
- this.roomHistories["delete"](ev.id);
2344
2361
  this.clearRoomFollowedTopicsStructures(ev.id);
2345
2362
  }
2346
2363
  }, {
2347
2364
  key: "handleNewTopic",
2348
2365
  value: function () {
2349
- var _handleNewTopic = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee9(ev) {
2366
+ var _handleNewTopic = FollowedTopicsManager_asyncToGenerator(/*#__PURE__*/FollowedTopicsManager_regenerator().m(function _callee7(ev) {
2350
2367
  var result, followedTopic;
2351
- return MessagesManager_regenerator().w(function (_context9) {
2352
- while (1) switch (_context9.n) {
2368
+ return FollowedTopicsManager_regenerator().w(function (_context7) {
2369
+ while (1) switch (_context7.n) {
2353
2370
  case 0:
2354
2371
  if (!this.followedTopics.has(ev.roomId)) {
2355
- _context9.n = 2;
2372
+ _context7.n = 2;
2356
2373
  break;
2357
2374
  }
2358
- _context9.n = 1;
2375
+ _context7.n = 1;
2359
2376
  return this.tracker.client.send('GetFollowedTopics', {
2360
2377
  location: {
2361
2378
  roomId: ev.roomId,
@@ -2363,18 +2380,18 @@ var MessagesManager = /*#__PURE__*/function () {
2363
2380
  }
2364
2381
  });
2365
2382
  case 1:
2366
- result = _context9.v;
2383
+ result = _context7.v;
2367
2384
  followedTopic = result.data.followedTopics[0];
2368
2385
  if (followedTopic) {
2369
2386
  this.followedTopics.get(ev.roomId).set(followedTopic);
2370
2387
  this.invalidateUnreadSummaries(ev.roomId, ev.topic.id);
2371
2388
  }
2372
2389
  case 2:
2373
- return _context9.a(2);
2390
+ return _context7.a(2);
2374
2391
  }
2375
- }, _callee9, this);
2392
+ }, _callee7, this);
2376
2393
  }));
2377
- function handleNewTopic(_x7) {
2394
+ function handleNewTopic(_x5) {
2378
2395
  return _handleNewTopic.apply(this, arguments);
2379
2396
  }
2380
2397
  return handleNewTopic;
@@ -2386,39 +2403,106 @@ var MessagesManager = /*#__PURE__*/function () {
2386
2403
  (_this$followedTopics$3 = this.followedTopics.get(ev.location.roomId)) === null || _this$followedTopics$3 === void 0 || _this$followedTopics$3["delete"](ev.location.topicId);
2387
2404
  this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);
2388
2405
  }
2406
+
2407
+ /**
2408
+ * Invalidate the summaries cache intentionally, only for the locations affected by the change.
2409
+ */
2389
2410
  }, {
2390
- key: "handleSession",
2391
- value: function handleSession(ev) {
2392
- var _this6 = this;
2393
- this.followedTopics.deleteAll();
2394
- this.followedTopicsPromises.forgetAll();
2395
- this.invalidateUnreadSummaries();
2396
- this.roomHistories.deleteAll();
2397
- ev.state.rooms.forEach(function (room) {
2398
- return _this6.createHistoryForNewRoom(room);
2411
+ key: "invalidateUnreadSummaries",
2412
+ value: function invalidateUnreadSummaries(roomId, topicId) {
2413
+ if (roomId) {
2414
+ this.summariesCache["delete"]("room:".concat(roomId));
2415
+ if (topicId) {
2416
+ this.summariesCache["delete"]("topic:".concat(roomId, ":").concat(topicId));
2417
+ } else {
2418
+ var _iterator4 = FollowedTopicsManager_createForOfIteratorHelper(this.summariesCache.keys()),
2419
+ _step4;
2420
+ try {
2421
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
2422
+ var key = _step4.value;
2423
+ if (key.startsWith("topic:".concat(roomId, ":"))) {
2424
+ this.summariesCache["delete"](key);
2425
+ }
2426
+ }
2427
+ } catch (err) {
2428
+ _iterator4.e(err);
2429
+ } finally {
2430
+ _iterator4.f();
2431
+ }
2432
+ }
2433
+ var _iterator5 = FollowedTopicsManager_createForOfIteratorHelper(this.summariesCache.keys()),
2434
+ _step5;
2435
+ try {
2436
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
2437
+ var _key2 = _step5.value;
2438
+ if (_key2.startsWith('space:') || _key2 === 'spaceless') {
2439
+ this.summariesCache["delete"](_key2);
2440
+ }
2441
+ }
2442
+ } catch (err) {
2443
+ _iterator5.e(err);
2444
+ } finally {
2445
+ _iterator5.f();
2446
+ }
2447
+ } else {
2448
+ this.summariesCache.clear();
2449
+ }
2450
+ this.emit('change');
2451
+ }
2452
+ }, {
2453
+ key: "invalidateUnreadSummariesForRooms",
2454
+ value: function invalidateUnreadSummariesForRooms(roomIds) {
2455
+ var _this5 = this;
2456
+ var roomIdsSet = new Set(roomIds);
2457
+ roomIds.forEach(function (roomId) {
2458
+ _this5.summariesCache["delete"]("room:".concat(roomId));
2399
2459
  });
2400
- this.deferredSession.resolve();
2460
+ var _iterator6 = FollowedTopicsManager_createForOfIteratorHelper(this.summariesCache.keys()),
2461
+ _step6;
2462
+ try {
2463
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
2464
+ var key = _step6.value;
2465
+ if (key.startsWith('space:') || key === 'spaceless') {
2466
+ this.summariesCache["delete"](key);
2467
+ continue;
2468
+ }
2469
+ if (key.startsWith('topic:')) {
2470
+ var parts = key.split(':');
2471
+ if (parts.length >= 2 && roomIdsSet.has(parts[1])) {
2472
+ this.summariesCache["delete"](key);
2473
+ }
2474
+ }
2475
+ }
2476
+ } catch (err) {
2477
+ _iterator6.e(err);
2478
+ } finally {
2479
+ _iterator6.f();
2480
+ }
2481
+ this.emit('change');
2401
2482
  }
2402
2483
  }, {
2403
2484
  key: "updateLocallyFollowedTopicOnNewMessage",
2404
2485
  value: function () {
2405
- var _updateLocallyFollowedTopicOnNewMessage = MessagesManager_asyncToGenerator(/*#__PURE__*/MessagesManager_regenerator().m(function _callee0(ev) {
2406
- var _this$tracker$me;
2407
- var roomFollowedTopics, followedTopic, isMe, update, _member$spaceMember$r, _member$spaceMember, member, roleIds, mentionHandlers, mentionExists;
2408
- return MessagesManager_regenerator().w(function (_context0) {
2409
- while (1) switch (_context0.n) {
2486
+ var _updateLocallyFollowedTopicOnNewMessage = FollowedTopicsManager_asyncToGenerator(/*#__PURE__*/FollowedTopicsManager_regenerator().m(function _callee8(ev) {
2487
+ var roomFollowedTopics, followedTopic, me, isMe, update, _member$spaceMember$r, _member$spaceMember, member, roleIds, mentionHandlers, mentionExists;
2488
+ return FollowedTopicsManager_regenerator().w(function (_context8) {
2489
+ while (1) switch (_context8.n) {
2410
2490
  case 0:
2411
2491
  roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);
2412
2492
  followedTopic = roomFollowedTopics === null || roomFollowedTopics === void 0 ? void 0 : roomFollowedTopics.get(ev.message.location.topicId);
2413
2493
  if (!(!roomFollowedTopics || !followedTopic || ev.message.type === 'Ephemeral')) {
2414
- _context0.n = 1;
2494
+ _context8.n = 1;
2415
2495
  break;
2416
2496
  }
2417
- return _context0.a(2);
2497
+ return _context8.a(2);
2418
2498
  case 1:
2419
- isMe = ev.message.author.user.id === ((_this$tracker$me = this.tracker.me) === null || _this$tracker$me === void 0 ? void 0 : _this$tracker$me.id);
2499
+ _context8.n = 2;
2500
+ return this.tracker.getMe();
2501
+ case 2:
2502
+ me = _context8.v;
2503
+ isMe = ev.message.author.user.id === me.id;
2420
2504
  if (!isMe) {
2421
- _context0.n = 2;
2505
+ _context8.n = 3;
2422
2506
  break;
2423
2507
  }
2424
2508
  // Reset missed messages count if new message is authored by me
@@ -2426,21 +2510,21 @@ var MessagesManager = /*#__PURE__*/function () {
2426
2510
  missed: 0,
2427
2511
  lastAckMessageId: ev.message.id
2428
2512
  };
2429
- _context0.n = 5;
2513
+ _context8.n = 6;
2430
2514
  break;
2431
- case 2:
2515
+ case 3:
2432
2516
  if (!(ev.message.type === 'Text')) {
2433
- _context0.n = 4;
2517
+ _context8.n = 5;
2434
2518
  break;
2435
2519
  }
2436
- _context0.n = 3;
2520
+ _context8.n = 4;
2437
2521
  return this.tracker.rooms.getMe(ev.message.location.roomId);
2438
- case 3:
2439
- member = _context0.v;
2440
- roleIds = [].concat(MessagesManager_toConsumableArray((_member$spaceMember$r = (_member$spaceMember = member.spaceMember) === null || _member$spaceMember === void 0 ? void 0 : _member$spaceMember.roles) !== null && _member$spaceMember$r !== void 0 ? _member$spaceMember$r : []), MessagesManager_toConsumableArray(member.roles));
2441
- mentionHandlers = [].concat(MessagesManager_toConsumableArray(roleIds.map(function (id) {
2522
+ case 4:
2523
+ member = _context8.v;
2524
+ roleIds = [].concat(FollowedTopicsManager_toConsumableArray((_member$spaceMember$r = (_member$spaceMember = member.spaceMember) === null || _member$spaceMember === void 0 ? void 0 : _member$spaceMember.roles) !== null && _member$spaceMember$r !== void 0 ? _member$spaceMember$r : []), FollowedTopicsManager_toConsumableArray(member.roles));
2525
+ mentionHandlers = [].concat(FollowedTopicsManager_toConsumableArray(roleIds.map(function (id) {
2442
2526
  return "<@&".concat(id, ">");
2443
- })), ["<@".concat(ev.message.author.user.id, ">")]);
2527
+ })), ["<@".concat(me.id, ">")]);
2444
2528
  mentionExists = mentionHandlers.some(function (handler) {
2445
2529
  return ev.message.content.includes(handler);
2446
2530
  });
@@ -2449,23 +2533,23 @@ var MessagesManager = /*#__PURE__*/function () {
2449
2533
  isUnread: true,
2450
2534
  mentionCount: followedTopic.mentionCount + (mentionExists ? 1 : 0)
2451
2535
  };
2452
- _context0.n = 5;
2536
+ _context8.n = 6;
2453
2537
  break;
2454
- case 4:
2538
+ case 5:
2455
2539
  // ...or just mark as unread.
2456
2540
  update = {
2457
2541
  missed: followedTopic.missed === null ? null : followedTopic.missed + 1,
2458
2542
  isUnread: true
2459
2543
  };
2460
- case 5:
2461
- roomFollowedTopics.set(MessagesManager_objectSpread(MessagesManager_objectSpread({}, followedTopic), update));
2462
- this.invalidateUnreadSummaries(ev.message.location.roomId, ev.message.location.topicId);
2463
2544
  case 6:
2464
- return _context0.a(2);
2545
+ roomFollowedTopics.set(FollowedTopicsManager_objectSpread(FollowedTopicsManager_objectSpread({}, followedTopic), update));
2546
+ this.invalidateUnreadSummaries(ev.message.location.roomId, ev.message.location.topicId);
2547
+ case 7:
2548
+ return _context8.a(2);
2465
2549
  }
2466
- }, _callee0, this);
2550
+ }, _callee8, this);
2467
2551
  }));
2468
- function updateLocallyFollowedTopicOnNewMessage(_x8) {
2552
+ function updateLocallyFollowedTopicOnNewMessage(_x6) {
2469
2553
  return _updateLocallyFollowedTopicOnNewMessage.apply(this, arguments);
2470
2554
  }
2471
2555
  return updateLocallyFollowedTopicOnNewMessage;
@@ -2473,7 +2557,7 @@ var MessagesManager = /*#__PURE__*/function () {
2473
2557
  }, {
2474
2558
  key: "setFollowedTopicsArray",
2475
2559
  value: function setFollowedTopicsArray(roomIds, followedTopics) {
2476
- var _this7 = this;
2560
+ var _this6 = this;
2477
2561
  var roomToTopics = {};
2478
2562
 
2479
2563
  // Reassign followed topics to limit collection change event emit
@@ -2483,14 +2567,14 @@ var MessagesManager = /*#__PURE__*/function () {
2483
2567
  roomToTopics[followedTopic.location.roomId].push(followedTopic);
2484
2568
  });
2485
2569
  roomIds.forEach(function (roomId) {
2486
- if (!_this7.followedTopics.has(roomId)) {
2487
- _this7.followedTopics.set([roomId, new ObservableIndexedObjectCollection(function (followedTopic) {
2570
+ if (!_this6.followedTopics.has(roomId)) {
2571
+ _this6.followedTopics.set([roomId, new ObservableIndexedObjectCollection(function (followedTopic) {
2488
2572
  return followedTopic.location.topicId;
2489
2573
  })]);
2490
2574
  }
2491
2575
  if (roomToTopics[roomId]) {
2492
- var _this7$followedTopics;
2493
- (_this7$followedTopics = _this7.followedTopics.get(roomId)).set.apply(_this7$followedTopics, MessagesManager_toConsumableArray(roomToTopics[roomId]));
2576
+ var _this6$followedTopics;
2577
+ (_this6$followedTopics = _this6.followedTopics.get(roomId)).set.apply(_this6$followedTopics, FollowedTopicsManager_toConsumableArray(roomToTopics[roomId]));
2494
2578
  }
2495
2579
  });
2496
2580
  this.invalidateUnreadSummariesForRooms(roomIds);
@@ -2503,7 +2587,7 @@ var MessagesManager = /*#__PURE__*/function () {
2503
2587
  this.invalidateUnreadSummaries(roomId);
2504
2588
  }
2505
2589
  }]);
2506
- }();
2590
+ }(EventTarget);
2507
2591
  ;// ./src/state-tracker/RoomsManager.ts
2508
2592
  function RoomsManager_typeof(o) { "@babel/helpers - typeof"; return RoomsManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, RoomsManager_typeof(o); }
2509
2593
  function RoomsManager_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -2528,11 +2612,13 @@ function RoomsManager_toPrimitive(t, r) { if ("object" != RoomsManager_typeof(t)
2528
2612
 
2529
2613
 
2530
2614
 
2615
+
2531
2616
  var RoomsManager = /*#__PURE__*/function () {
2532
2617
  function RoomsManager(tracker) {
2533
2618
  var _this = this;
2534
2619
  RoomsManager_classCallCheck(this, RoomsManager);
2535
2620
  RoomsManager_defineProperty(this, "messages", void 0);
2621
+ RoomsManager_defineProperty(this, "followedTopics", void 0);
2536
2622
  RoomsManager_defineProperty(this, "list", new ObservableIndexedObjectCollection('id'));
2537
2623
  RoomsManager_defineProperty(this, "topics", new IndexedCollection());
2538
2624
  RoomsManager_defineProperty(this, "members", new IndexedCollection());
@@ -2541,6 +2627,7 @@ var RoomsManager = /*#__PURE__*/function () {
2541
2627
  RoomsManager_defineProperty(this, "topicsPromises", new PromiseRegistry());
2542
2628
  this.tracker = tracker;
2543
2629
  this.messages = new MessagesManager(tracker);
2630
+ this.followedTopics = new FollowedTopicsManager(tracker);
2544
2631
  this.tracker.client.on('NewMessage', function (ev) {
2545
2632
  return _this.handleNewMessage(ev);
2546
2633
  });
@@ -2808,12 +2895,12 @@ var RoomsManager = /*#__PURE__*/function () {
2808
2895
  (_this$members = this.members)["delete"].apply(_this$members, roomIds);
2809
2896
  (_this$membersPromises = this.membersPromises).forget.apply(_this$membersPromises, roomIds);
2810
2897
  for (var _i = 0, _roomIds = roomIds; _i < _roomIds.length; _i++) {
2811
- var _this$topics$get$item, _this$topics$get2, _this$messages;
2898
+ var _this$topics$get$item, _this$topics$get2, _this$followedTopics;
2812
2899
  var roomId = _roomIds[_i];
2813
2900
  var topicIds = (_this$topics$get$item = (_this$topics$get2 = this.topics.get(roomId)) === null || _this$topics$get2 === void 0 ? void 0 : _this$topics$get2.items.map(function (topic) {
2814
2901
  return topic.id;
2815
2902
  })) !== null && _this$topics$get$item !== void 0 ? _this$topics$get$item : [];
2816
- (_this$messages = this.messages)._deleteByTopicIds.apply(_this$messages, [roomId].concat(RoomsManager_toConsumableArray(topicIds)));
2903
+ (_this$followedTopics = this.followedTopics)._deleteByTopicIds.apply(_this$followedTopics, [roomId].concat(RoomsManager_toConsumableArray(topicIds)));
2817
2904
  }
2818
2905
  (_this$topics = this.topics)["delete"].apply(_this$topics, roomIds);
2819
2906
  }