polfan-server-js-client 0.1.24 → 0.1.25
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.
- package/build/index.js +1020 -424
- package/build/index.js.map +1 -1
- package/build/types/AbstractChatClient.d.ts +11 -9
- package/build/types/Permission.d.ts +15 -0
- package/build/types/WebSocketChatClient.d.ts +1 -1
- package/build/types/index.d.ts +2 -1
- package/build/types/state-tracker/ChatStateTracker.d.ts +25 -0
- package/build/types/state-tracker/DeferredTask.d.ts +5 -0
- package/build/types/state-tracker/PermissionsManager.d.ts +22 -0
- package/build/types/state-tracker/RoomsManager.d.ts +59 -0
- package/build/types/state-tracker/SpacesManager.d.ts +47 -0
- package/index.html +6 -0
- package/package.json +65 -65
- package/src/AbstractChatClient.ts +20 -15
- package/src/Permission.ts +15 -0
- package/src/WebSocketChatClient.ts +1 -1
- package/src/index.ts +2 -0
- package/src/state-tracker/ChatStateTracker.ts +38 -0
- package/src/state-tracker/DeferredTask.ts +8 -0
- package/src/state-tracker/PermissionsManager.ts +205 -0
- package/src/state-tracker/RoomsManager.ts +222 -0
- package/src/state-tracker/SpacesManager.ts +201 -0
- package/build/types/ChatStateTracker.d.ts +0 -56
- package/src/ChatStateTracker.ts +0 -349
package/build/index.js
CHANGED
|
@@ -54,6 +54,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
54
54
|
"IndexedObjectCollection": () => (/* reexport */ IndexedObjectCollection),
|
|
55
55
|
"ObservableIndexedCollection": () => (/* reexport */ ObservableIndexedCollection),
|
|
56
56
|
"ObservableIndexedObjectCollection": () => (/* reexport */ ObservableIndexedObjectCollection),
|
|
57
|
+
"Permission": () => (/* reexport */ Permission),
|
|
57
58
|
"WebApiChatClient": () => (/* reexport */ WebApiChatClient),
|
|
58
59
|
"WebSocketChatClient": () => (/* reexport */ WebSocketChatClient)
|
|
59
60
|
});
|
|
@@ -561,106 +562,187 @@ var ObservableIndexedObjectCollection = /*#__PURE__*/function (_IndexedObjectCol
|
|
|
561
562
|
}]);
|
|
562
563
|
return ObservableIndexedObjectCollection;
|
|
563
564
|
}(IndexedObjectCollection);
|
|
564
|
-
;// CONCATENATED MODULE: ./src/
|
|
565
|
-
function
|
|
566
|
-
function
|
|
567
|
-
function
|
|
568
|
-
function
|
|
569
|
-
function
|
|
570
|
-
function
|
|
571
|
-
function
|
|
572
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == ChatStateTracker_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
565
|
+
;// CONCATENATED MODULE: ./src/state-tracker/DeferredTask.ts
|
|
566
|
+
function DeferredTask_typeof(obj) { "@babel/helpers - typeof"; return DeferredTask_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, DeferredTask_typeof(obj); }
|
|
567
|
+
function DeferredTask_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, DeferredTask_toPropertyKey(descriptor.key), descriptor); } }
|
|
568
|
+
function DeferredTask_createClass(Constructor, protoProps, staticProps) { if (protoProps) DeferredTask_defineProperties(Constructor.prototype, protoProps); if (staticProps) DeferredTask_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
569
|
+
function DeferredTask_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
570
|
+
function DeferredTask_defineProperty(obj, key, value) { key = DeferredTask_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
571
|
+
function DeferredTask_toPropertyKey(arg) { var key = DeferredTask_toPrimitive(arg, "string"); return DeferredTask_typeof(key) === "symbol" ? key : String(key); }
|
|
572
|
+
function DeferredTask_toPrimitive(input, hint) { if (DeferredTask_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (DeferredTask_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
573
|
+
var DeferredTask = /*#__PURE__*/DeferredTask_createClass(function DeferredTask() {
|
|
574
|
+
var _this = this;
|
|
575
|
+
DeferredTask_classCallCheck(this, DeferredTask);
|
|
576
|
+
DeferredTask_defineProperty(this, "promise", void 0);
|
|
577
|
+
DeferredTask_defineProperty(this, "resolve", void 0);
|
|
578
|
+
this.promise = new Promise(function (resolve) {
|
|
579
|
+
return _this.resolve = resolve;
|
|
580
|
+
});
|
|
581
|
+
});
|
|
582
|
+
;// CONCATENATED MODULE: ./src/state-tracker/RoomsManager.ts
|
|
583
|
+
function RoomsManager_typeof(obj) { "@babel/helpers - typeof"; return RoomsManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, RoomsManager_typeof(obj); }
|
|
584
|
+
function RoomsManager_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = RoomsManager_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
585
|
+
function RoomsManager_toConsumableArray(arr) { return RoomsManager_arrayWithoutHoles(arr) || RoomsManager_iterableToArray(arr) || RoomsManager_unsupportedIterableToArray(arr) || RoomsManager_nonIterableSpread(); }
|
|
586
|
+
function RoomsManager_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."); }
|
|
587
|
+
function RoomsManager_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return RoomsManager_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return RoomsManager_arrayLikeToArray(o, minLen); }
|
|
588
|
+
function RoomsManager_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
589
|
+
function RoomsManager_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return RoomsManager_arrayLikeToArray(arr); }
|
|
590
|
+
function RoomsManager_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
591
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == RoomsManager_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
573
592
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
574
593
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
575
|
-
function
|
|
576
|
-
function
|
|
577
|
-
function
|
|
578
|
-
function
|
|
579
|
-
function
|
|
580
|
-
function
|
|
594
|
+
function RoomsManager_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
595
|
+
function RoomsManager_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, RoomsManager_toPropertyKey(descriptor.key), descriptor); } }
|
|
596
|
+
function RoomsManager_createClass(Constructor, protoProps, staticProps) { if (protoProps) RoomsManager_defineProperties(Constructor.prototype, protoProps); if (staticProps) RoomsManager_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
597
|
+
function RoomsManager_defineProperty(obj, key, value) { key = RoomsManager_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
598
|
+
function RoomsManager_toPropertyKey(arg) { var key = RoomsManager_toPrimitive(arg, "string"); return RoomsManager_typeof(key) === "symbol" ? key : String(key); }
|
|
599
|
+
function RoomsManager_toPrimitive(input, hint) { if (RoomsManager_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (RoomsManager_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
581
600
|
|
|
582
|
-
var ChatStateTracker = /*#__PURE__*/function () {
|
|
583
|
-
// Temporary not lazy loaded; server must implement GetTopicMessages command.
|
|
584
601
|
|
|
585
|
-
|
|
602
|
+
var RoomsManager = /*#__PURE__*/function () {
|
|
603
|
+
// Temporary not lazy loaded; server must implement GetTopicMessages command.
|
|
586
604
|
|
|
587
|
-
function
|
|
588
|
-
|
|
589
|
-
this
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
this.
|
|
605
|
+
function RoomsManager(tracker) {
|
|
606
|
+
var _this = this;
|
|
607
|
+
RoomsManager_classCallCheck(this, RoomsManager);
|
|
608
|
+
this.tracker = tracker;
|
|
609
|
+
RoomsManager_defineProperty(this, "list", new ObservableIndexedObjectCollection('id'));
|
|
610
|
+
RoomsManager_defineProperty(this, "topics", new IndexedCollection());
|
|
611
|
+
RoomsManager_defineProperty(this, "topicsMessages", new IndexedCollection());
|
|
612
|
+
RoomsManager_defineProperty(this, "members", new IndexedCollection());
|
|
613
|
+
RoomsManager_defineProperty(this, "deferredSession", new DeferredTask());
|
|
614
|
+
this.tracker.client.on('NewMessage', function (ev) {
|
|
615
|
+
return _this.handleNewMessage(ev);
|
|
616
|
+
});
|
|
617
|
+
this.tracker.client.on('NewTopic', function (ev) {
|
|
618
|
+
return _this.handleNewTopic(ev);
|
|
619
|
+
});
|
|
620
|
+
this.tracker.client.on('TopicDeleted', function (ev) {
|
|
621
|
+
return _this.handleTopicDeleted(ev);
|
|
622
|
+
});
|
|
623
|
+
this.tracker.client.on('RoomJoined', function (ev) {
|
|
624
|
+
return _this.handleRoomJoined(ev);
|
|
625
|
+
});
|
|
626
|
+
this.tracker.client.on('RoomLeft', function (ev) {
|
|
627
|
+
return _this.handleRoomLeft(ev);
|
|
628
|
+
});
|
|
629
|
+
this.tracker.client.on('RoomMemberJoined', function (ev) {
|
|
630
|
+
return _this.handleRoomMemberJoined(ev);
|
|
631
|
+
});
|
|
632
|
+
this.tracker.client.on('RoomMemberLeft', function (ev) {
|
|
633
|
+
return _this.handleRoomMemberLeft(ev);
|
|
634
|
+
});
|
|
635
|
+
this.tracker.client.on('RoomMembers', function (ev) {
|
|
636
|
+
return _this.handleRoomMembers(ev);
|
|
637
|
+
});
|
|
638
|
+
this.tracker.client.on('RoomMemberUpdated', function (ev) {
|
|
639
|
+
return _this.handleRoomMemberUpdated(ev);
|
|
640
|
+
});
|
|
641
|
+
this.tracker.client.on('Session', function (ev) {
|
|
642
|
+
return _this.handleSession(ev);
|
|
643
|
+
});
|
|
603
644
|
}
|
|
604
|
-
|
|
605
|
-
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* Get collection of room members.
|
|
648
|
+
*/
|
|
649
|
+
RoomsManager_createClass(RoomsManager, [{
|
|
650
|
+
key: "getMembers",
|
|
606
651
|
value: function () {
|
|
607
|
-
var
|
|
652
|
+
var _getMembers = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(roomId) {
|
|
653
|
+
var result;
|
|
608
654
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
609
655
|
while (1) {
|
|
610
656
|
switch (_context.prev = _context.next) {
|
|
611
657
|
case 0:
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
658
|
+
if (this.members.has(roomId)) {
|
|
659
|
+
_context.next = 7;
|
|
660
|
+
break;
|
|
661
|
+
}
|
|
662
|
+
_context.next = 3;
|
|
663
|
+
return this.tracker.client.send('GetRoomMembers', {
|
|
664
|
+
id: roomId
|
|
665
|
+
});
|
|
616
666
|
case 3:
|
|
667
|
+
result = _context.sent;
|
|
668
|
+
if (!result.error) {
|
|
669
|
+
_context.next = 6;
|
|
670
|
+
break;
|
|
671
|
+
}
|
|
672
|
+
throw result.error;
|
|
673
|
+
case 6:
|
|
674
|
+
this.handleRoomMembers(result.data);
|
|
675
|
+
case 7:
|
|
676
|
+
return _context.abrupt("return", this.members.get(roomId));
|
|
677
|
+
case 8:
|
|
617
678
|
case "end":
|
|
618
679
|
return _context.stop();
|
|
619
680
|
}
|
|
620
681
|
}
|
|
621
682
|
}, _callee, this);
|
|
622
683
|
}));
|
|
623
|
-
function
|
|
624
|
-
return
|
|
684
|
+
function getMembers(_x) {
|
|
685
|
+
return _getMembers.apply(this, arguments);
|
|
625
686
|
}
|
|
626
|
-
return
|
|
687
|
+
return getMembers;
|
|
627
688
|
}()
|
|
689
|
+
/**
|
|
690
|
+
* Get a room member representing the current user.
|
|
691
|
+
*/
|
|
628
692
|
}, {
|
|
629
|
-
key: "
|
|
693
|
+
key: "getMe",
|
|
630
694
|
value: function () {
|
|
631
|
-
var
|
|
695
|
+
var _getMe = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(roomId) {
|
|
696
|
+
var userId, members;
|
|
632
697
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
633
698
|
while (1) {
|
|
634
699
|
switch (_context2.prev = _context2.next) {
|
|
635
700
|
case 0:
|
|
636
701
|
_context2.next = 2;
|
|
637
|
-
return this.
|
|
702
|
+
return this.tracker.getMe();
|
|
638
703
|
case 2:
|
|
639
|
-
|
|
640
|
-
|
|
704
|
+
userId = _context2.sent.id;
|
|
705
|
+
_context2.next = 5;
|
|
706
|
+
return this.getMembers(roomId);
|
|
707
|
+
case 5:
|
|
708
|
+
members = _context2.sent;
|
|
709
|
+
if (members) {
|
|
710
|
+
_context2.next = 8;
|
|
711
|
+
break;
|
|
712
|
+
}
|
|
713
|
+
return _context2.abrupt("return", null);
|
|
714
|
+
case 8:
|
|
715
|
+
return _context2.abrupt("return", members.items.find(function (member) {
|
|
716
|
+
var _member$user$id, _member$user;
|
|
717
|
+
return ((_member$user$id = (_member$user = member.user) === null || _member$user === void 0 ? void 0 : _member$user.id) !== null && _member$user$id !== void 0 ? _member$user$id : member.spaceMember.user.id) === userId;
|
|
718
|
+
}));
|
|
719
|
+
case 9:
|
|
641
720
|
case "end":
|
|
642
721
|
return _context2.stop();
|
|
643
722
|
}
|
|
644
723
|
}
|
|
645
724
|
}, _callee2, this);
|
|
646
725
|
}));
|
|
647
|
-
function
|
|
648
|
-
return
|
|
726
|
+
function getMe(_x2) {
|
|
727
|
+
return _getMe.apply(this, arguments);
|
|
649
728
|
}
|
|
650
|
-
return
|
|
729
|
+
return getMe;
|
|
651
730
|
}()
|
|
731
|
+
/**
|
|
732
|
+
* Get collection of all the rooms you are in.
|
|
733
|
+
*/
|
|
652
734
|
}, {
|
|
653
|
-
key: "
|
|
735
|
+
key: "get",
|
|
654
736
|
value: function () {
|
|
655
|
-
var
|
|
737
|
+
var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
656
738
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
657
739
|
while (1) {
|
|
658
740
|
switch (_context3.prev = _context3.next) {
|
|
659
741
|
case 0:
|
|
660
742
|
_context3.next = 2;
|
|
661
|
-
return this.
|
|
743
|
+
return this.deferredSession.promise;
|
|
662
744
|
case 2:
|
|
663
|
-
return _context3.abrupt("return", this.
|
|
745
|
+
return _context3.abrupt("return", this.list);
|
|
664
746
|
case 3:
|
|
665
747
|
case "end":
|
|
666
748
|
return _context3.stop();
|
|
@@ -668,23 +750,26 @@ var ChatStateTracker = /*#__PURE__*/function () {
|
|
|
668
750
|
}
|
|
669
751
|
}, _callee3, this);
|
|
670
752
|
}));
|
|
671
|
-
function
|
|
672
|
-
return
|
|
753
|
+
function get() {
|
|
754
|
+
return _get.apply(this, arguments);
|
|
673
755
|
}
|
|
674
|
-
return
|
|
756
|
+
return get;
|
|
675
757
|
}()
|
|
758
|
+
/**
|
|
759
|
+
* Get collection of room topics.
|
|
760
|
+
*/
|
|
676
761
|
}, {
|
|
677
|
-
key: "
|
|
762
|
+
key: "getTopics",
|
|
678
763
|
value: function () {
|
|
679
|
-
var
|
|
764
|
+
var _getTopics = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(roomId) {
|
|
680
765
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
681
766
|
while (1) {
|
|
682
767
|
switch (_context4.prev = _context4.next) {
|
|
683
768
|
case 0:
|
|
684
769
|
_context4.next = 2;
|
|
685
|
-
return this.
|
|
770
|
+
return this.deferredSession.promise;
|
|
686
771
|
case 2:
|
|
687
|
-
return _context4.abrupt("return", this.
|
|
772
|
+
return _context4.abrupt("return", this.topics.get(roomId));
|
|
688
773
|
case 3:
|
|
689
774
|
case "end":
|
|
690
775
|
return _context4.stop();
|
|
@@ -692,431 +777,492 @@ var ChatStateTracker = /*#__PURE__*/function () {
|
|
|
692
777
|
}
|
|
693
778
|
}, _callee4, this);
|
|
694
779
|
}));
|
|
695
|
-
function
|
|
696
|
-
return
|
|
780
|
+
function getTopics(_x3) {
|
|
781
|
+
return _getTopics.apply(this, arguments);
|
|
697
782
|
}
|
|
698
|
-
return
|
|
783
|
+
return getTopics;
|
|
699
784
|
}()
|
|
785
|
+
/**
|
|
786
|
+
* Get collection of the messages written in topic.
|
|
787
|
+
*/
|
|
700
788
|
}, {
|
|
701
|
-
key: "
|
|
789
|
+
key: "getMessages",
|
|
702
790
|
value: function () {
|
|
703
|
-
var
|
|
791
|
+
var _getMessages = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(topicId) {
|
|
704
792
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
705
793
|
while (1) {
|
|
706
794
|
switch (_context5.prev = _context5.next) {
|
|
707
795
|
case 0:
|
|
708
|
-
_context5.
|
|
709
|
-
|
|
710
|
-
case 2:
|
|
711
|
-
return _context5.abrupt("return", this.roomsTopics.get(roomId));
|
|
712
|
-
case 3:
|
|
796
|
+
return _context5.abrupt("return", this.topicsMessages.get(topicId));
|
|
797
|
+
case 1:
|
|
713
798
|
case "end":
|
|
714
799
|
return _context5.stop();
|
|
715
800
|
}
|
|
716
801
|
}
|
|
717
802
|
}, _callee5, this);
|
|
718
803
|
}));
|
|
719
|
-
function
|
|
720
|
-
return
|
|
804
|
+
function getMessages(_x4) {
|
|
805
|
+
return _getMessages.apply(this, arguments);
|
|
721
806
|
}
|
|
722
|
-
return
|
|
807
|
+
return getMessages;
|
|
723
808
|
}()
|
|
809
|
+
/**
|
|
810
|
+
* For internal use. If you want to leave the room, execute a proper command on client object.
|
|
811
|
+
* @internal
|
|
812
|
+
*/
|
|
724
813
|
}, {
|
|
725
|
-
key: "
|
|
814
|
+
key: "_delete",
|
|
815
|
+
value: function _delete() {
|
|
816
|
+
var _this$list, _this$members, _this$topicsMessages, _this$topics;
|
|
817
|
+
for (var _len = arguments.length, roomIds = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
818
|
+
roomIds[_key] = arguments[_key];
|
|
819
|
+
}
|
|
820
|
+
(_this$list = this.list)["delete"].apply(_this$list, roomIds);
|
|
821
|
+
(_this$members = this.members)["delete"].apply(_this$members, roomIds);
|
|
822
|
+
var topicIds = [];
|
|
823
|
+
for (var _i = 0, _roomIds = roomIds; _i < _roomIds.length; _i++) {
|
|
824
|
+
var _this$topics$get$map, _this$topics$get;
|
|
825
|
+
var roomId = _roomIds[_i];
|
|
826
|
+
topicIds.push.apply(topicIds, RoomsManager_toConsumableArray((_this$topics$get$map = (_this$topics$get = this.topics.get(roomId)) === null || _this$topics$get === void 0 ? void 0 : _this$topics$get.map(function (topic) {
|
|
827
|
+
return topic.id;
|
|
828
|
+
})) !== null && _this$topics$get$map !== void 0 ? _this$topics$get$map : []));
|
|
829
|
+
}
|
|
830
|
+
(_this$topicsMessages = this.topicsMessages)["delete"].apply(_this$topicsMessages, topicIds);
|
|
831
|
+
(_this$topics = this.topics)["delete"].apply(_this$topics, roomIds);
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
/**
|
|
835
|
+
* For internal use. If you want to leave the room, execute a proper command on client object.
|
|
836
|
+
* @internal
|
|
837
|
+
*/
|
|
838
|
+
}, {
|
|
839
|
+
key: "_deleteBySpaceId",
|
|
840
|
+
value: function _deleteBySpaceId(spaceId) {
|
|
841
|
+
this._delete.apply(this, RoomsManager_toConsumableArray(this.list.findBy('spaceId', spaceId).map(function (room) {
|
|
842
|
+
return room.id;
|
|
843
|
+
})));
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
/**
|
|
847
|
+
* For internal use.
|
|
848
|
+
* @internal
|
|
849
|
+
*/
|
|
850
|
+
}, {
|
|
851
|
+
key: "_handleSpaceMemberUpdate",
|
|
852
|
+
value: function _handleSpaceMemberUpdate(spaceId, member) {
|
|
853
|
+
// Update members of rooms related to this space
|
|
854
|
+
var _iterator = RoomsManager_createForOfIteratorHelper(this.list.findBy('spaceId', spaceId).items),
|
|
855
|
+
_step;
|
|
856
|
+
try {
|
|
857
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
858
|
+
var room = _step.value;
|
|
859
|
+
var roomMembers = this.members.get(room.id);
|
|
860
|
+
if (!roomMembers) {
|
|
861
|
+
// Skip update if member list for this room is not loaded
|
|
862
|
+
continue;
|
|
863
|
+
}
|
|
864
|
+
var roomMember = roomMembers.get(member.user.id);
|
|
865
|
+
roomMember.spaceMember = member;
|
|
866
|
+
roomMembers.set(roomMember);
|
|
867
|
+
}
|
|
868
|
+
} catch (err) {
|
|
869
|
+
_iterator.e(err);
|
|
870
|
+
} finally {
|
|
871
|
+
_iterator.f();
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
}, {
|
|
875
|
+
key: "handleRoomMemberUpdated",
|
|
876
|
+
value: function handleRoomMemberUpdated(ev) {
|
|
877
|
+
if (!this.members.has(ev.roomId)) {
|
|
878
|
+
return;
|
|
879
|
+
}
|
|
880
|
+
this.members.get(ev.roomId).set(ev.member);
|
|
881
|
+
}
|
|
882
|
+
}, {
|
|
883
|
+
key: "handleTopicDeleted",
|
|
884
|
+
value: function handleTopicDeleted(ev) {
|
|
885
|
+
var collection = this.topics.get(ev.roomId);
|
|
886
|
+
collection["delete"](ev.id);
|
|
887
|
+
this.list.get(ev.roomId).topics = collection.items;
|
|
888
|
+
}
|
|
889
|
+
}, {
|
|
890
|
+
key: "handleNewMessage",
|
|
891
|
+
value: function handleNewMessage(ev) {
|
|
892
|
+
this.topicsMessages.get(ev.topicId).set(ev.message);
|
|
893
|
+
}
|
|
894
|
+
}, {
|
|
895
|
+
key: "handleNewTopic",
|
|
896
|
+
value: function handleNewTopic(ev) {
|
|
897
|
+
this.addJoinedRoomTopics(ev.roomId, ev.topic);
|
|
898
|
+
this.list.get(ev.roomId).topics.push(ev.topic);
|
|
899
|
+
}
|
|
900
|
+
}, {
|
|
901
|
+
key: "addJoinedRoomTopics",
|
|
902
|
+
value: function addJoinedRoomTopics(roomId) {
|
|
903
|
+
var _this$topicsMessages2;
|
|
904
|
+
for (var _len2 = arguments.length, topics = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
905
|
+
topics[_key2 - 1] = arguments[_key2];
|
|
906
|
+
}
|
|
907
|
+
if (this.topics.has(roomId)) {
|
|
908
|
+
var _this$topics$get2;
|
|
909
|
+
(_this$topics$get2 = this.topics.get(roomId)).set.apply(_this$topics$get2, topics);
|
|
910
|
+
} else {
|
|
911
|
+
this.topics.set([roomId, new ObservableIndexedObjectCollection('id', topics)]);
|
|
912
|
+
}
|
|
913
|
+
(_this$topicsMessages2 = this.topicsMessages).set.apply(_this$topicsMessages2, RoomsManager_toConsumableArray(topics.map(function (topic) {
|
|
914
|
+
return [topic.id, new ObservableIndexedObjectCollection('id')];
|
|
915
|
+
})));
|
|
916
|
+
}
|
|
917
|
+
}, {
|
|
918
|
+
key: "handleRoomJoined",
|
|
919
|
+
value: function handleRoomJoined(ev) {
|
|
920
|
+
this.addJoinedRooms(ev.room);
|
|
921
|
+
}
|
|
922
|
+
}, {
|
|
923
|
+
key: "addJoinedRooms",
|
|
924
|
+
value: function addJoinedRooms() {
|
|
925
|
+
var _this$list2;
|
|
926
|
+
for (var _len3 = arguments.length, rooms = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
927
|
+
rooms[_key3] = arguments[_key3];
|
|
928
|
+
}
|
|
929
|
+
for (var _i2 = 0, _rooms = rooms; _i2 < _rooms.length; _i2++) {
|
|
930
|
+
var room = _rooms[_i2];
|
|
931
|
+
this.addJoinedRoomTopics.apply(this, [room.id].concat(RoomsManager_toConsumableArray(room.topics)));
|
|
932
|
+
}
|
|
933
|
+
(_this$list2 = this.list).set.apply(_this$list2, rooms);
|
|
934
|
+
}
|
|
935
|
+
}, {
|
|
936
|
+
key: "handleRoomLeft",
|
|
937
|
+
value: function handleRoomLeft(ev) {
|
|
938
|
+
this._delete(ev.id);
|
|
939
|
+
}
|
|
940
|
+
}, {
|
|
941
|
+
key: "handleRoomMemberJoined",
|
|
942
|
+
value: function handleRoomMemberJoined(ev) {
|
|
943
|
+
if (this.members.has(ev.roomId)) {
|
|
944
|
+
this.members.get(ev.roomId).set(ev.member);
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
}, {
|
|
948
|
+
key: "handleRoomMemberLeft",
|
|
949
|
+
value: function handleRoomMemberLeft(ev) {
|
|
950
|
+
if (this.members.has(ev.roomId)) {
|
|
951
|
+
this.members.get(ev.roomId)["delete"](ev.userId);
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
}, {
|
|
955
|
+
key: "handleRoomMembers",
|
|
956
|
+
value: function handleRoomMembers(ev) {
|
|
957
|
+
if (!this.members.has(ev.id)) {
|
|
958
|
+
this.members.set([ev.id, new ObservableIndexedObjectCollection(function (member) {
|
|
959
|
+
var _member$user$id2, _member$user2;
|
|
960
|
+
return (_member$user$id2 = (_member$user2 = member.user) === null || _member$user2 === void 0 ? void 0 : _member$user2.id) !== null && _member$user$id2 !== void 0 ? _member$user$id2 : member.spaceMember.user.id;
|
|
961
|
+
}, ev.members)]);
|
|
962
|
+
}
|
|
963
|
+
}
|
|
964
|
+
}, {
|
|
965
|
+
key: "handleSession",
|
|
966
|
+
value: function handleSession(ev) {
|
|
967
|
+
this.list.deleteAll();
|
|
968
|
+
this.topics.deleteAll();
|
|
969
|
+
this.members.deleteAll();
|
|
970
|
+
this.addJoinedRooms.apply(this, RoomsManager_toConsumableArray(ev.state.rooms));
|
|
971
|
+
this.deferredSession.resolve();
|
|
972
|
+
}
|
|
973
|
+
}]);
|
|
974
|
+
return RoomsManager;
|
|
975
|
+
}();
|
|
976
|
+
;// CONCATENATED MODULE: ./src/state-tracker/SpacesManager.ts
|
|
977
|
+
function SpacesManager_typeof(obj) { "@babel/helpers - typeof"; return SpacesManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, SpacesManager_typeof(obj); }
|
|
978
|
+
function SpacesManager_toConsumableArray(arr) { return SpacesManager_arrayWithoutHoles(arr) || SpacesManager_iterableToArray(arr) || SpacesManager_unsupportedIterableToArray(arr) || SpacesManager_nonIterableSpread(); }
|
|
979
|
+
function SpacesManager_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."); }
|
|
980
|
+
function SpacesManager_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return SpacesManager_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return SpacesManager_arrayLikeToArray(o, minLen); }
|
|
981
|
+
function SpacesManager_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
982
|
+
function SpacesManager_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return SpacesManager_arrayLikeToArray(arr); }
|
|
983
|
+
function SpacesManager_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
984
|
+
function SpacesManager_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ SpacesManager_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == SpacesManager_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
985
|
+
function SpacesManager_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
986
|
+
function SpacesManager_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { SpacesManager_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { SpacesManager_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
987
|
+
function SpacesManager_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
988
|
+
function SpacesManager_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, SpacesManager_toPropertyKey(descriptor.key), descriptor); } }
|
|
989
|
+
function SpacesManager_createClass(Constructor, protoProps, staticProps) { if (protoProps) SpacesManager_defineProperties(Constructor.prototype, protoProps); if (staticProps) SpacesManager_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
990
|
+
function SpacesManager_defineProperty(obj, key, value) { key = SpacesManager_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
991
|
+
function SpacesManager_toPropertyKey(arg) { var key = SpacesManager_toPrimitive(arg, "string"); return SpacesManager_typeof(key) === "symbol" ? key : String(key); }
|
|
992
|
+
function SpacesManager_toPrimitive(input, hint) { if (SpacesManager_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (SpacesManager_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
993
|
+
|
|
994
|
+
|
|
995
|
+
var SpacesManager = /*#__PURE__*/function () {
|
|
996
|
+
function SpacesManager(tracker) {
|
|
997
|
+
var _this = this;
|
|
998
|
+
SpacesManager_classCallCheck(this, SpacesManager);
|
|
999
|
+
this.tracker = tracker;
|
|
1000
|
+
SpacesManager_defineProperty(this, "list", new ObservableIndexedObjectCollection('id'));
|
|
1001
|
+
SpacesManager_defineProperty(this, "roles", new IndexedCollection());
|
|
1002
|
+
SpacesManager_defineProperty(this, "rooms", new IndexedCollection());
|
|
1003
|
+
SpacesManager_defineProperty(this, "members", new IndexedCollection());
|
|
1004
|
+
SpacesManager_defineProperty(this, "deferredSession", new DeferredTask());
|
|
1005
|
+
this.tracker.client.on('NewRoom', function (ev) {
|
|
1006
|
+
return _this.handleNewRoom(ev);
|
|
1007
|
+
});
|
|
1008
|
+
this.tracker.client.on('RoomDeleted', function (ev) {
|
|
1009
|
+
return _this.handleRoomDeleted(ev);
|
|
1010
|
+
});
|
|
1011
|
+
this.tracker.client.on('SpaceDeleted', function (ev) {
|
|
1012
|
+
return _this.handleSpaceDeleted(ev);
|
|
1013
|
+
});
|
|
1014
|
+
this.tracker.client.on('SpaceJoined', function (ev) {
|
|
1015
|
+
return _this.handleSpaceJoined(ev);
|
|
1016
|
+
});
|
|
1017
|
+
this.tracker.client.on('SpaceLeft', function (ev) {
|
|
1018
|
+
return _this.handleSpaceLeft(ev);
|
|
1019
|
+
});
|
|
1020
|
+
this.tracker.client.on('SpaceMemberJoined', function (ev) {
|
|
1021
|
+
return _this.handleSpaceMemberJoined(ev);
|
|
1022
|
+
});
|
|
1023
|
+
this.tracker.client.on('SpaceMemberLeft', function (ev) {
|
|
1024
|
+
return _this.handleSpaceMemberLeft(ev);
|
|
1025
|
+
});
|
|
1026
|
+
this.tracker.client.on('SpaceMembers', function (ev) {
|
|
1027
|
+
return _this.handleSpaceMembers(ev);
|
|
1028
|
+
});
|
|
1029
|
+
this.tracker.client.on('SpaceRooms', function (ev) {
|
|
1030
|
+
return _this.handleSpaceRooms(ev);
|
|
1031
|
+
});
|
|
1032
|
+
this.tracker.client.on('SpaceMemberUpdated', function (ev) {
|
|
1033
|
+
return _this.handleSpaceMemberUpdated(ev);
|
|
1034
|
+
});
|
|
1035
|
+
this.tracker.client.on('NewRole', function (ev) {
|
|
1036
|
+
return _this.handleNewRole(ev);
|
|
1037
|
+
});
|
|
1038
|
+
this.tracker.client.on('RoleDeleted', function (ev) {
|
|
1039
|
+
return _this.handleRoleDeleted(ev);
|
|
1040
|
+
});
|
|
1041
|
+
this.tracker.client.on('RoleUpdated', function (ev) {
|
|
1042
|
+
return _this.handleRoleUpdated(ev);
|
|
1043
|
+
});
|
|
1044
|
+
this.tracker.client.on('Session', function (ev) {
|
|
1045
|
+
return _this.handleSession(ev);
|
|
1046
|
+
});
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
/**
|
|
1050
|
+
* Get collection of all the spaces you are in.
|
|
1051
|
+
*/
|
|
1052
|
+
SpacesManager_createClass(SpacesManager, [{
|
|
1053
|
+
key: "get",
|
|
726
1054
|
value: function () {
|
|
727
|
-
var
|
|
728
|
-
return
|
|
1055
|
+
var _get = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee() {
|
|
1056
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee$(_context) {
|
|
729
1057
|
while (1) {
|
|
730
|
-
switch (
|
|
1058
|
+
switch (_context.prev = _context.next) {
|
|
731
1059
|
case 0:
|
|
732
|
-
|
|
733
|
-
|
|
1060
|
+
_context.next = 2;
|
|
1061
|
+
return this.deferredSession.promise;
|
|
1062
|
+
case 2:
|
|
1063
|
+
return _context.abrupt("return", this.list);
|
|
1064
|
+
case 3:
|
|
734
1065
|
case "end":
|
|
735
|
-
return
|
|
1066
|
+
return _context.stop();
|
|
736
1067
|
}
|
|
737
1068
|
}
|
|
738
|
-
},
|
|
1069
|
+
}, _callee, this);
|
|
739
1070
|
}));
|
|
740
|
-
function
|
|
741
|
-
return
|
|
1071
|
+
function get() {
|
|
1072
|
+
return _get.apply(this, arguments);
|
|
742
1073
|
}
|
|
743
|
-
return
|
|
1074
|
+
return get;
|
|
744
1075
|
}()
|
|
1076
|
+
/**
|
|
1077
|
+
* Get collection of space roles.
|
|
1078
|
+
*/
|
|
745
1079
|
}, {
|
|
746
|
-
key: "
|
|
1080
|
+
key: "getRoles",
|
|
747
1081
|
value: function () {
|
|
748
|
-
var
|
|
749
|
-
|
|
750
|
-
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
1082
|
+
var _getRoles = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee2(spaceId) {
|
|
1083
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
751
1084
|
while (1) {
|
|
752
|
-
switch (
|
|
1085
|
+
switch (_context2.prev = _context2.next) {
|
|
753
1086
|
case 0:
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
});
|
|
760
|
-
}
|
|
761
|
-
_context7.next = 4;
|
|
762
|
-
return this.deferredGetterReadiness(deferredGetterName);
|
|
763
|
-
case 4:
|
|
764
|
-
return _context7.abrupt("return", this.spacesRooms.get(spaceId));
|
|
765
|
-
case 5:
|
|
1087
|
+
_context2.next = 2;
|
|
1088
|
+
return this.deferredSession.promise;
|
|
1089
|
+
case 2:
|
|
1090
|
+
return _context2.abrupt("return", this.roles.get(spaceId));
|
|
1091
|
+
case 3:
|
|
766
1092
|
case "end":
|
|
767
|
-
return
|
|
1093
|
+
return _context2.stop();
|
|
768
1094
|
}
|
|
769
1095
|
}
|
|
770
|
-
},
|
|
1096
|
+
}, _callee2, this);
|
|
771
1097
|
}));
|
|
772
|
-
function
|
|
773
|
-
return
|
|
1098
|
+
function getRoles(_x) {
|
|
1099
|
+
return _getRoles.apply(this, arguments);
|
|
774
1100
|
}
|
|
775
|
-
return
|
|
1101
|
+
return getRoles;
|
|
776
1102
|
}()
|
|
1103
|
+
/**
|
|
1104
|
+
* Get collection of the all available rooms inside given space.
|
|
1105
|
+
*/
|
|
777
1106
|
}, {
|
|
778
|
-
key: "
|
|
1107
|
+
key: "getRooms",
|
|
779
1108
|
value: function () {
|
|
780
|
-
var
|
|
781
|
-
var
|
|
782
|
-
return
|
|
1109
|
+
var _getRooms = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee3(spaceId) {
|
|
1110
|
+
var result;
|
|
1111
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
783
1112
|
while (1) {
|
|
784
|
-
switch (
|
|
1113
|
+
switch (_context3.prev = _context3.next) {
|
|
785
1114
|
case 0:
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
this.client.send('GetSpaceMembers', {
|
|
790
|
-
id: spaceId
|
|
791
|
-
});
|
|
1115
|
+
if (this.rooms.has(spaceId)) {
|
|
1116
|
+
_context3.next = 7;
|
|
1117
|
+
break;
|
|
792
1118
|
}
|
|
793
|
-
|
|
794
|
-
return this.
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
case
|
|
1119
|
+
_context3.next = 3;
|
|
1120
|
+
return this.tracker.client.send('GetSpaceRooms', {
|
|
1121
|
+
id: spaceId
|
|
1122
|
+
});
|
|
1123
|
+
case 3:
|
|
1124
|
+
result = _context3.sent;
|
|
1125
|
+
if (!result.error) {
|
|
1126
|
+
_context3.next = 6;
|
|
1127
|
+
break;
|
|
1128
|
+
}
|
|
1129
|
+
throw result.error;
|
|
1130
|
+
case 6:
|
|
1131
|
+
this.handleSpaceRooms(result.data);
|
|
1132
|
+
case 7:
|
|
1133
|
+
return _context3.abrupt("return", this.rooms.get(spaceId));
|
|
1134
|
+
case 8:
|
|
798
1135
|
case "end":
|
|
799
|
-
return
|
|
1136
|
+
return _context3.stop();
|
|
800
1137
|
}
|
|
801
1138
|
}
|
|
802
|
-
},
|
|
1139
|
+
}, _callee3, this);
|
|
803
1140
|
}));
|
|
804
|
-
function
|
|
805
|
-
return
|
|
1141
|
+
function getRooms(_x2) {
|
|
1142
|
+
return _getRooms.apply(this, arguments);
|
|
806
1143
|
}
|
|
807
|
-
return
|
|
1144
|
+
return getRooms;
|
|
808
1145
|
}()
|
|
1146
|
+
/**
|
|
1147
|
+
* Get collection of space members.
|
|
1148
|
+
*/
|
|
809
1149
|
}, {
|
|
810
|
-
key: "
|
|
1150
|
+
key: "getMembers",
|
|
811
1151
|
value: function () {
|
|
812
|
-
var
|
|
813
|
-
var
|
|
814
|
-
return
|
|
1152
|
+
var _getMembers = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee4(spaceId) {
|
|
1153
|
+
var result;
|
|
1154
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
815
1155
|
while (1) {
|
|
816
|
-
switch (
|
|
1156
|
+
switch (_context4.prev = _context4.next) {
|
|
817
1157
|
case 0:
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
this.client.send('GetRoomMembers', {
|
|
822
|
-
id: roomId
|
|
823
|
-
});
|
|
1158
|
+
if (this.members.has(spaceId)) {
|
|
1159
|
+
_context4.next = 7;
|
|
1160
|
+
break;
|
|
824
1161
|
}
|
|
825
|
-
|
|
826
|
-
return this.
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
case
|
|
1162
|
+
_context4.next = 3;
|
|
1163
|
+
return this.tracker.client.send('GetSpaceMembers', {
|
|
1164
|
+
id: spaceId
|
|
1165
|
+
});
|
|
1166
|
+
case 3:
|
|
1167
|
+
result = _context4.sent;
|
|
1168
|
+
if (!result.error) {
|
|
1169
|
+
_context4.next = 6;
|
|
1170
|
+
break;
|
|
1171
|
+
}
|
|
1172
|
+
throw result.error;
|
|
1173
|
+
case 6:
|
|
1174
|
+
this.handleSpaceMembers(result.data);
|
|
1175
|
+
case 7:
|
|
1176
|
+
return _context4.abrupt("return", this.members.get(spaceId));
|
|
1177
|
+
case 8:
|
|
830
1178
|
case "end":
|
|
831
|
-
return
|
|
1179
|
+
return _context4.stop();
|
|
832
1180
|
}
|
|
833
1181
|
}
|
|
834
|
-
},
|
|
1182
|
+
}, _callee4, this);
|
|
835
1183
|
}));
|
|
836
|
-
function
|
|
837
|
-
return
|
|
1184
|
+
function getMembers(_x3) {
|
|
1185
|
+
return _getMembers.apply(this, arguments);
|
|
838
1186
|
}
|
|
839
|
-
return
|
|
1187
|
+
return getMembers;
|
|
840
1188
|
}()
|
|
1189
|
+
/**
|
|
1190
|
+
* Get a space member representing the current user.
|
|
1191
|
+
*/
|
|
841
1192
|
}, {
|
|
842
|
-
key: "
|
|
1193
|
+
key: "getMe",
|
|
843
1194
|
value: function () {
|
|
844
|
-
var
|
|
845
|
-
|
|
1195
|
+
var _getMe = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee5(spaceId) {
|
|
1196
|
+
var userId, members;
|
|
1197
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
846
1198
|
while (1) {
|
|
847
|
-
switch (
|
|
1199
|
+
switch (_context5.prev = _context5.next) {
|
|
848
1200
|
case 0:
|
|
849
|
-
|
|
850
|
-
|
|
1201
|
+
_context5.next = 2;
|
|
1202
|
+
return this.tracker.getMe();
|
|
1203
|
+
case 2:
|
|
1204
|
+
userId = _context5.sent.id;
|
|
1205
|
+
_context5.next = 5;
|
|
1206
|
+
return this.getMembers(spaceId);
|
|
1207
|
+
case 5:
|
|
1208
|
+
members = _context5.sent;
|
|
1209
|
+
if (members) {
|
|
1210
|
+
_context5.next = 8;
|
|
851
1211
|
break;
|
|
852
1212
|
}
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
1213
|
+
return _context5.abrupt("return", null);
|
|
1214
|
+
case 8:
|
|
1215
|
+
return _context5.abrupt("return", members.items.find(function (member) {
|
|
1216
|
+
return member.user.id === userId;
|
|
1217
|
+
}));
|
|
1218
|
+
case 9:
|
|
856
1219
|
case "end":
|
|
857
|
-
return
|
|
1220
|
+
return _context5.stop();
|
|
858
1221
|
}
|
|
859
1222
|
}
|
|
860
|
-
},
|
|
1223
|
+
}, _callee5, this);
|
|
861
1224
|
}));
|
|
862
|
-
function
|
|
863
|
-
return
|
|
1225
|
+
function getMe(_x4) {
|
|
1226
|
+
return _getMe.apply(this, arguments);
|
|
864
1227
|
}
|
|
865
|
-
return
|
|
1228
|
+
return getMe;
|
|
866
1229
|
}()
|
|
867
|
-
}, {
|
|
868
|
-
key: "bind",
|
|
869
|
-
value: function bind() {
|
|
870
|
-
var _this = this;
|
|
871
|
-
this.client.on(this.client.Event.disconnect, function (ev) {
|
|
872
|
-
return _this.handleDisconnect(ev);
|
|
873
|
-
});
|
|
874
|
-
this.client.on('NewMessage', function (ev) {
|
|
875
|
-
return _this.handleNewMessage(ev);
|
|
876
|
-
});
|
|
877
|
-
this.client.on('NewRole', function (ev) {
|
|
878
|
-
return _this.handleNewRole(ev);
|
|
879
|
-
});
|
|
880
|
-
this.client.on('NewRoom', function (ev) {
|
|
881
|
-
return _this.handleNewRoom(ev);
|
|
882
|
-
});
|
|
883
|
-
this.client.on('NewTopic', function (ev) {
|
|
884
|
-
return _this.handleNewTopic(ev);
|
|
885
|
-
});
|
|
886
|
-
this.client.on('RoleDeleted', function (ev) {
|
|
887
|
-
return _this.handleRoleDeleted(ev);
|
|
888
|
-
});
|
|
889
|
-
this.client.on('RoomDeleted', function (ev) {
|
|
890
|
-
return _this.handleRoomDeleted(ev);
|
|
891
|
-
});
|
|
892
|
-
this.client.on('RoomJoined', function (ev) {
|
|
893
|
-
return _this.handleRoomJoined(ev);
|
|
894
|
-
});
|
|
895
|
-
this.client.on('RoomLeft', function (ev) {
|
|
896
|
-
return _this.handleRoomLeft(ev);
|
|
897
|
-
});
|
|
898
|
-
this.client.on('RoomMemberJoined', function (ev) {
|
|
899
|
-
return _this.handleRoomMemberJoined(ev);
|
|
900
|
-
});
|
|
901
|
-
this.client.on('RoomMemberLeft', function (ev) {
|
|
902
|
-
return _this.handleRoomMemberLeft(ev);
|
|
903
|
-
});
|
|
904
|
-
this.client.on('RoomMembers', function (ev) {
|
|
905
|
-
return _this.handleRoomMembers(ev);
|
|
906
|
-
});
|
|
907
|
-
this.client.on('Session', function (ev) {
|
|
908
|
-
return _this.handleSession(ev);
|
|
909
|
-
});
|
|
910
|
-
this.client.on('SpaceDeleted', function (ev) {
|
|
911
|
-
return _this.handleSpaceDeleted(ev);
|
|
912
|
-
});
|
|
913
|
-
this.client.on('SpaceJoined', function (ev) {
|
|
914
|
-
return _this.handleSpaceJoined(ev);
|
|
915
|
-
});
|
|
916
|
-
this.client.on('SpaceLeft', function (ev) {
|
|
917
|
-
return _this.handleSpaceLeft(ev);
|
|
918
|
-
});
|
|
919
|
-
this.client.on('SpaceMemberJoined', function (ev) {
|
|
920
|
-
return _this.handleSpaceMemberJoined(ev);
|
|
921
|
-
});
|
|
922
|
-
this.client.on('SpaceMemberLeft', function (ev) {
|
|
923
|
-
return _this.handleSpaceMemberLeft(ev);
|
|
924
|
-
});
|
|
925
|
-
this.client.on('SpaceMembers', function (ev) {
|
|
926
|
-
return _this.handleSpaceMembers(ev);
|
|
927
|
-
});
|
|
928
|
-
this.client.on('SpaceRooms', function (ev) {
|
|
929
|
-
return _this.handleSpaceRooms(ev);
|
|
930
|
-
});
|
|
931
|
-
this.client.on('SpaceMemberUpdate', function (ev) {
|
|
932
|
-
return _this.handleSpaceMemberUpdate(ev);
|
|
933
|
-
});
|
|
934
|
-
this.client.on('TopicDeleted', function (ev) {
|
|
935
|
-
return _this.handleTopicDeleted(ev);
|
|
936
|
-
});
|
|
937
|
-
}
|
|
938
|
-
}, {
|
|
939
|
-
key: "createDeferredGetter",
|
|
940
|
-
value: function createDeferredGetter(name) {
|
|
941
|
-
var _this2 = this;
|
|
942
|
-
if (this.deferredGetters.has(name)) {
|
|
943
|
-
return;
|
|
944
|
-
}
|
|
945
|
-
var deferred = {
|
|
946
|
-
promise: undefined,
|
|
947
|
-
resolver: undefined
|
|
948
|
-
};
|
|
949
|
-
deferred.promise = new Promise(function (resolve) {
|
|
950
|
-
return deferred.resolver = function () {
|
|
951
|
-
_this2.deferredGetters["delete"](name);
|
|
952
|
-
resolve();
|
|
953
|
-
};
|
|
954
|
-
});
|
|
955
|
-
this.deferredGetters.set([name, deferred]);
|
|
956
|
-
}
|
|
957
|
-
}, {
|
|
958
|
-
key: "handleDisconnect",
|
|
959
|
-
value: function handleDisconnect(reconnect) {
|
|
960
|
-
if (reconnect) {
|
|
961
|
-
this.reconnecting = true;
|
|
962
|
-
return;
|
|
963
|
-
}
|
|
964
|
-
}
|
|
965
|
-
}, {
|
|
966
|
-
key: "handleNewMessage",
|
|
967
|
-
value: function handleNewMessage(ev) {
|
|
968
|
-
this.topicsMessages.get(ev.topicId).set(ev.message);
|
|
969
|
-
}
|
|
970
1230
|
}, {
|
|
971
1231
|
key: "handleNewRole",
|
|
972
1232
|
value: function handleNewRole(ev) {
|
|
973
|
-
var collection = this.
|
|
1233
|
+
var collection = this.roles.get(ev.spaceId);
|
|
974
1234
|
collection.set(ev.role);
|
|
975
|
-
this.
|
|
1235
|
+
this.list.get(ev.spaceId).roles = collection.items;
|
|
976
1236
|
}
|
|
977
1237
|
}, {
|
|
978
1238
|
key: "handleNewRoom",
|
|
979
1239
|
value: function handleNewRoom(ev) {
|
|
980
|
-
var _this$
|
|
981
|
-
(_this$
|
|
982
|
-
}
|
|
983
|
-
}, {
|
|
984
|
-
key: "handleNewTopic",
|
|
985
|
-
value: function handleNewTopic(ev) {
|
|
986
|
-
this.addJoinedRoomTopics(ev.roomId, ev.topic);
|
|
987
|
-
this.joinedRooms.get(ev.roomId).topics.push(ev.topic);
|
|
988
|
-
}
|
|
989
|
-
}, {
|
|
990
|
-
key: "addJoinedRoomTopics",
|
|
991
|
-
value: function addJoinedRoomTopics(roomId) {
|
|
992
|
-
var _this$topicsMessages;
|
|
993
|
-
for (var _len = arguments.length, topics = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
994
|
-
topics[_key - 1] = arguments[_key];
|
|
995
|
-
}
|
|
996
|
-
if (this.roomsTopics.has(roomId)) {
|
|
997
|
-
var _this$roomsTopics$get;
|
|
998
|
-
(_this$roomsTopics$get = this.roomsTopics.get(roomId)).set.apply(_this$roomsTopics$get, topics);
|
|
999
|
-
} else {
|
|
1000
|
-
this.roomsTopics.set([roomId, new ObservableIndexedObjectCollection('id', topics)]);
|
|
1001
|
-
}
|
|
1002
|
-
(_this$topicsMessages = this.topicsMessages).set.apply(_this$topicsMessages, ChatStateTracker_toConsumableArray(topics.map(function (topic) {
|
|
1003
|
-
return [topic.id, new ObservableIndexedObjectCollection('id')];
|
|
1004
|
-
})));
|
|
1005
|
-
}
|
|
1006
|
-
}, {
|
|
1007
|
-
key: "handleRoleDeleted",
|
|
1008
|
-
value: function handleRoleDeleted(ev) {
|
|
1009
|
-
var collection = this.spacesRoles.get(ev.spaceId);
|
|
1010
|
-
collection["delete"](ev.id);
|
|
1011
|
-
this.joinedSpaces.get(ev.spaceId).roles = collection.items;
|
|
1240
|
+
var _this$rooms$get;
|
|
1241
|
+
(_this$rooms$get = this.rooms.get(ev.spaceId)) === null || _this$rooms$get === void 0 ? void 0 : _this$rooms$get.set(ev.summary);
|
|
1012
1242
|
}
|
|
1013
1243
|
}, {
|
|
1014
1244
|
key: "handleRoomDeleted",
|
|
1015
1245
|
value: function handleRoomDeleted(ev) {
|
|
1016
1246
|
if (ev.spaceId) {
|
|
1017
|
-
this.
|
|
1018
|
-
}
|
|
1019
|
-
this.deleteJoinedRooms(ev.id);
|
|
1020
|
-
}
|
|
1021
|
-
}, {
|
|
1022
|
-
key: "handleRoomJoined",
|
|
1023
|
-
value: function handleRoomJoined(ev) {
|
|
1024
|
-
this.addJoinedRooms(ev.room);
|
|
1025
|
-
}
|
|
1026
|
-
}, {
|
|
1027
|
-
key: "addJoinedRooms",
|
|
1028
|
-
value: function addJoinedRooms() {
|
|
1029
|
-
var _this$joinedRooms;
|
|
1030
|
-
for (var _len2 = arguments.length, rooms = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
1031
|
-
rooms[_key2] = arguments[_key2];
|
|
1032
|
-
}
|
|
1033
|
-
for (var _i = 0, _rooms = rooms; _i < _rooms.length; _i++) {
|
|
1034
|
-
var room = _rooms[_i];
|
|
1035
|
-
this.addJoinedRoomTopics.apply(this, [room.id].concat(ChatStateTracker_toConsumableArray(room.topics)));
|
|
1036
|
-
}
|
|
1037
|
-
(_this$joinedRooms = this.joinedRooms).set.apply(_this$joinedRooms, rooms);
|
|
1038
|
-
}
|
|
1039
|
-
}, {
|
|
1040
|
-
key: "handleRoomLeft",
|
|
1041
|
-
value: function handleRoomLeft(ev) {
|
|
1042
|
-
this.deleteJoinedRooms(ev.id);
|
|
1043
|
-
}
|
|
1044
|
-
}, {
|
|
1045
|
-
key: "deleteJoinedRooms",
|
|
1046
|
-
value: function deleteJoinedRooms() {
|
|
1047
|
-
var _this$joinedRooms2, _this$roomsMembers, _this$topicsMessages2, _this$roomsTopics;
|
|
1048
|
-
for (var _len3 = arguments.length, roomIds = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
1049
|
-
roomIds[_key3] = arguments[_key3];
|
|
1050
|
-
}
|
|
1051
|
-
(_this$joinedRooms2 = this.joinedRooms)["delete"].apply(_this$joinedRooms2, roomIds);
|
|
1052
|
-
(_this$roomsMembers = this.roomsMembers)["delete"].apply(_this$roomsMembers, roomIds);
|
|
1053
|
-
var topicIds = [];
|
|
1054
|
-
for (var _i2 = 0, _roomIds = roomIds; _i2 < _roomIds.length; _i2++) {
|
|
1055
|
-
var _this$roomsTopics$get2, _this$roomsTopics$get3;
|
|
1056
|
-
var roomId = _roomIds[_i2];
|
|
1057
|
-
topicIds.push.apply(topicIds, ChatStateTracker_toConsumableArray((_this$roomsTopics$get2 = (_this$roomsTopics$get3 = this.roomsTopics.get(roomId)) === null || _this$roomsTopics$get3 === void 0 ? void 0 : _this$roomsTopics$get3.map(function (topic) {
|
|
1058
|
-
return topic.id;
|
|
1059
|
-
})) !== null && _this$roomsTopics$get2 !== void 0 ? _this$roomsTopics$get2 : []));
|
|
1060
|
-
}
|
|
1061
|
-
(_this$topicsMessages2 = this.topicsMessages)["delete"].apply(_this$topicsMessages2, topicIds);
|
|
1062
|
-
(_this$roomsTopics = this.roomsTopics)["delete"].apply(_this$roomsTopics, roomIds);
|
|
1063
|
-
}
|
|
1064
|
-
}, {
|
|
1065
|
-
key: "handleRoomMemberJoined",
|
|
1066
|
-
value: function handleRoomMemberJoined(ev) {
|
|
1067
|
-
if (this.roomsMembers.has(ev.roomId)) {
|
|
1068
|
-
this.roomsMembers.get(ev.roomId).set(ev.member);
|
|
1069
|
-
}
|
|
1070
|
-
}
|
|
1071
|
-
}, {
|
|
1072
|
-
key: "handleRoomMemberLeft",
|
|
1073
|
-
value: function handleRoomMemberLeft(ev) {
|
|
1074
|
-
if (this.roomsMembers.has(ev.roomId)) {
|
|
1075
|
-
this.roomsMembers.get(ev.roomId)["delete"](ev.userId);
|
|
1076
|
-
}
|
|
1077
|
-
}
|
|
1078
|
-
}, {
|
|
1079
|
-
key: "handleRoomMembers",
|
|
1080
|
-
value: function handleRoomMembers(ev) {
|
|
1081
|
-
if (!this.roomsMembers.has(ev.id)) {
|
|
1082
|
-
var _this$deferredGetters;
|
|
1083
|
-
this.roomsMembers.set([ev.id, new ObservableIndexedObjectCollection(function (member) {
|
|
1084
|
-
var _member$user$id, _member$user;
|
|
1085
|
-
return (_member$user$id = (_member$user = member.user) === null || _member$user === void 0 ? void 0 : _member$user.id) !== null && _member$user$id !== void 0 ? _member$user$id : member.spaceMember.user.id;
|
|
1086
|
-
}, ev.members)]);
|
|
1087
|
-
(_this$deferredGetters = this.deferredGetters.get("rooms-members-".concat(ev.id))) === null || _this$deferredGetters === void 0 ? void 0 : _this$deferredGetters.resolver();
|
|
1247
|
+
this.rooms.get(ev.spaceId)["delete"](ev.id);
|
|
1088
1248
|
}
|
|
1249
|
+
this.tracker.rooms._delete(ev.id);
|
|
1089
1250
|
}
|
|
1090
1251
|
}, {
|
|
1091
|
-
key: "
|
|
1092
|
-
value: function
|
|
1093
|
-
var
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
}
|
|
1097
|
-
this.me = ev.user;
|
|
1098
|
-
this.reconnecting = false;
|
|
1099
|
-
this.joinedRooms.deleteAll();
|
|
1100
|
-
this.roomsTopics.deleteAll();
|
|
1101
|
-
this.roomsMembers.deleteAll();
|
|
1102
|
-
this.joinedSpaces.deleteAll();
|
|
1103
|
-
this.spacesRoles.deleteAll();
|
|
1104
|
-
this.spacesRooms.deleteAll();
|
|
1105
|
-
this.spacesMembers.deleteAll();
|
|
1106
|
-
this.addJoinedRooms.apply(this, ChatStateTracker_toConsumableArray(ev.state.rooms));
|
|
1107
|
-
this.addJoinedSpaces.apply(this, ChatStateTracker_toConsumableArray(ev.state.spaces));
|
|
1108
|
-
(_this$deferredGetters2 = this.deferredGetters.get('session')) === null || _this$deferredGetters2 === void 0 ? void 0 : _this$deferredGetters2.resolver();
|
|
1252
|
+
key: "handleRoleDeleted",
|
|
1253
|
+
value: function handleRoleDeleted(ev) {
|
|
1254
|
+
var collection = this.roles.get(ev.spaceId);
|
|
1255
|
+
collection["delete"](ev.id);
|
|
1256
|
+
this.list.get(ev.spaceId).roles = collection.items;
|
|
1109
1257
|
}
|
|
1110
1258
|
}, {
|
|
1111
1259
|
key: "handleSpaceDeleted",
|
|
1112
1260
|
value: function handleSpaceDeleted(ev) {
|
|
1113
|
-
this.
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
this.
|
|
1117
|
-
this.
|
|
1118
|
-
this.spacesRooms["delete"](ev.id);
|
|
1119
|
-
this.joinedSpaces["delete"](ev.id);
|
|
1261
|
+
this.tracker.rooms._deleteBySpaceId(ev.id);
|
|
1262
|
+
this.roles["delete"](ev.id);
|
|
1263
|
+
this.members["delete"](ev.id);
|
|
1264
|
+
this.rooms["delete"](ev.id);
|
|
1265
|
+
this.list["delete"](ev.id);
|
|
1120
1266
|
}
|
|
1121
1267
|
}, {
|
|
1122
1268
|
key: "handleSpaceJoined",
|
|
@@ -1126,14 +1272,14 @@ var ChatStateTracker = /*#__PURE__*/function () {
|
|
|
1126
1272
|
}, {
|
|
1127
1273
|
key: "addJoinedSpaces",
|
|
1128
1274
|
value: function addJoinedSpaces() {
|
|
1129
|
-
var _this$
|
|
1130
|
-
for (var
|
|
1131
|
-
spaces[
|
|
1275
|
+
var _this$roles, _this$list;
|
|
1276
|
+
for (var _len = arguments.length, spaces = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
1277
|
+
spaces[_key] = arguments[_key];
|
|
1132
1278
|
}
|
|
1133
|
-
(_this$
|
|
1279
|
+
(_this$roles = this.roles).set.apply(_this$roles, SpacesManager_toConsumableArray(spaces.map(function (space) {
|
|
1134
1280
|
return [space.id, new ObservableIndexedObjectCollection('id', space.roles)];
|
|
1135
1281
|
})));
|
|
1136
|
-
(_this$
|
|
1282
|
+
(_this$list = this.list).set.apply(_this$list, spaces);
|
|
1137
1283
|
}
|
|
1138
1284
|
}, {
|
|
1139
1285
|
key: "handleSpaceLeft",
|
|
@@ -1143,50 +1289,499 @@ var ChatStateTracker = /*#__PURE__*/function () {
|
|
|
1143
1289
|
}, {
|
|
1144
1290
|
key: "handleSpaceMemberJoined",
|
|
1145
1291
|
value: function handleSpaceMemberJoined(ev) {
|
|
1146
|
-
if (this.
|
|
1147
|
-
this.
|
|
1292
|
+
if (this.members.has(ev.spaceId)) {
|
|
1293
|
+
this.members.get(ev.spaceId).set(ev.member);
|
|
1148
1294
|
}
|
|
1149
1295
|
}
|
|
1150
1296
|
}, {
|
|
1151
1297
|
key: "handleSpaceMemberLeft",
|
|
1152
1298
|
value: function handleSpaceMemberLeft(ev) {
|
|
1153
|
-
if (this.
|
|
1154
|
-
this.
|
|
1299
|
+
if (this.members.has(ev.spaceId)) {
|
|
1300
|
+
this.members.get(ev.spaceId)["delete"](ev.userId);
|
|
1155
1301
|
}
|
|
1156
1302
|
}
|
|
1157
1303
|
}, {
|
|
1158
1304
|
key: "handleSpaceMembers",
|
|
1159
1305
|
value: function handleSpaceMembers(ev) {
|
|
1160
|
-
if (!this.
|
|
1161
|
-
|
|
1162
|
-
this.spacesMembers.set([ev.id, new ObservableIndexedObjectCollection(function (member) {
|
|
1306
|
+
if (!this.members.has(ev.id)) {
|
|
1307
|
+
this.members.set([ev.id, new ObservableIndexedObjectCollection(function (member) {
|
|
1163
1308
|
return member === null || member === void 0 ? void 0 : member.user.id;
|
|
1164
1309
|
}, ev.members)]);
|
|
1165
|
-
(_this$deferredGetters3 = this.deferredGetters.get("spaces-members-".concat(ev.id))) === null || _this$deferredGetters3 === void 0 ? void 0 : _this$deferredGetters3.resolver();
|
|
1166
1310
|
}
|
|
1167
1311
|
}
|
|
1168
1312
|
}, {
|
|
1169
1313
|
key: "handleSpaceRooms",
|
|
1170
1314
|
value: function handleSpaceRooms(ev) {
|
|
1171
|
-
if (!this.
|
|
1172
|
-
|
|
1173
|
-
this.spacesRooms.set([ev.id, new ObservableIndexedObjectCollection('id', ev.summaries)]);
|
|
1174
|
-
(_this$deferredGetters4 = this.deferredGetters.get("spaces-rooms-".concat(ev.id))) === null || _this$deferredGetters4 === void 0 ? void 0 : _this$deferredGetters4.resolver();
|
|
1315
|
+
if (!this.rooms.has(ev.id)) {
|
|
1316
|
+
this.rooms.set([ev.id, new ObservableIndexedObjectCollection('id', ev.summaries)]);
|
|
1175
1317
|
}
|
|
1176
1318
|
}
|
|
1177
1319
|
}, {
|
|
1178
|
-
key: "
|
|
1179
|
-
value: function
|
|
1180
|
-
if (this.
|
|
1181
|
-
this.
|
|
1320
|
+
key: "handleSpaceMemberUpdated",
|
|
1321
|
+
value: function handleSpaceMemberUpdated(ev) {
|
|
1322
|
+
if (this.members.has(ev.spaceId)) {
|
|
1323
|
+
this.members.get(ev.spaceId).set(ev.member);
|
|
1182
1324
|
}
|
|
1325
|
+
this.tracker.rooms._handleSpaceMemberUpdate(ev.spaceId, ev.member);
|
|
1183
1326
|
}
|
|
1184
1327
|
}, {
|
|
1185
|
-
key: "
|
|
1186
|
-
value: function
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1328
|
+
key: "handleRoleUpdated",
|
|
1329
|
+
value: function handleRoleUpdated(ev) {
|
|
1330
|
+
this.roles.get(ev.spaceId).set(ev.role);
|
|
1331
|
+
}
|
|
1332
|
+
}, {
|
|
1333
|
+
key: "handleSession",
|
|
1334
|
+
value: function handleSession(ev) {
|
|
1335
|
+
this.list.deleteAll();
|
|
1336
|
+
this.roles.deleteAll();
|
|
1337
|
+
this.rooms.deleteAll();
|
|
1338
|
+
this.members.deleteAll();
|
|
1339
|
+
this.addJoinedSpaces.apply(this, SpacesManager_toConsumableArray(ev.state.spaces));
|
|
1340
|
+
this.deferredSession.resolve();
|
|
1341
|
+
}
|
|
1342
|
+
}]);
|
|
1343
|
+
return SpacesManager;
|
|
1344
|
+
}();
|
|
1345
|
+
;// CONCATENATED MODULE: ./src/Permission.ts
|
|
1346
|
+
var Permission;
|
|
1347
|
+
(function (Permission) {
|
|
1348
|
+
Permission[Permission["Root"] = 1] = "Root";
|
|
1349
|
+
Permission[Permission["CreateSpaces"] = 2] = "CreateSpaces";
|
|
1350
|
+
Permission[Permission["ManageSpaces"] = 4] = "ManageSpaces";
|
|
1351
|
+
Permission[Permission["ManageRoles"] = 8] = "ManageRoles";
|
|
1352
|
+
Permission[Permission["ChangeNick"] = 16] = "ChangeNick";
|
|
1353
|
+
Permission[Permission["ManageRooms"] = 32] = "ManageRooms";
|
|
1354
|
+
Permission[Permission["ManageTopics"] = 64] = "ManageTopics";
|
|
1355
|
+
Permission[Permission["ManageMembers"] = 128] = "ManageMembers";
|
|
1356
|
+
Permission[Permission["SendMessages"] = 256] = "SendMessages";
|
|
1357
|
+
Permission[Permission["ViewMessages"] = 512] = "ViewMessages";
|
|
1358
|
+
Permission[Permission["ChangeMessages"] = 1024] = "ChangeMessages";
|
|
1359
|
+
Permission[Permission["ManageMessages"] = 2048] = "ManageMessages";
|
|
1360
|
+
Permission[Permission["ManagePermissions"] = 4096] = "ManagePermissions";
|
|
1361
|
+
})(Permission || (Permission = {}));
|
|
1362
|
+
;// CONCATENATED MODULE: ./src/state-tracker/PermissionsManager.ts
|
|
1363
|
+
function PermissionsManager_typeof(obj) { "@babel/helpers - typeof"; return PermissionsManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, PermissionsManager_typeof(obj); }
|
|
1364
|
+
function PermissionsManager_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = PermissionsManager_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
1365
|
+
function PermissionsManager_toConsumableArray(arr) { return PermissionsManager_arrayWithoutHoles(arr) || PermissionsManager_iterableToArray(arr) || PermissionsManager_unsupportedIterableToArray(arr) || PermissionsManager_nonIterableSpread(); }
|
|
1366
|
+
function PermissionsManager_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."); }
|
|
1367
|
+
function PermissionsManager_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return PermissionsManager_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return PermissionsManager_arrayLikeToArray(o, minLen); }
|
|
1368
|
+
function PermissionsManager_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
1369
|
+
function PermissionsManager_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return PermissionsManager_arrayLikeToArray(arr); }
|
|
1370
|
+
function PermissionsManager_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
1371
|
+
function PermissionsManager_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ PermissionsManager_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == PermissionsManager_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
1372
|
+
function PermissionsManager_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
1373
|
+
function PermissionsManager_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { PermissionsManager_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { PermissionsManager_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
1374
|
+
function PermissionsManager_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
1375
|
+
function PermissionsManager_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, PermissionsManager_toPropertyKey(descriptor.key), descriptor); } }
|
|
1376
|
+
function PermissionsManager_createClass(Constructor, protoProps, staticProps) { if (protoProps) PermissionsManager_defineProperties(Constructor.prototype, protoProps); if (staticProps) PermissionsManager_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
1377
|
+
function PermissionsManager_get() { if (typeof Reflect !== "undefined" && Reflect.get) { PermissionsManager_get = Reflect.get.bind(); } else { PermissionsManager_get = function _get(target, property, receiver) { var base = PermissionsManager_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return PermissionsManager_get.apply(this, arguments); }
|
|
1378
|
+
function PermissionsManager_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = PermissionsManager_getPrototypeOf(object); if (object === null) break; } return object; }
|
|
1379
|
+
function PermissionsManager_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) PermissionsManager_setPrototypeOf(subClass, superClass); }
|
|
1380
|
+
function PermissionsManager_setPrototypeOf(o, p) { PermissionsManager_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return PermissionsManager_setPrototypeOf(o, p); }
|
|
1381
|
+
function PermissionsManager_createSuper(Derived) { var hasNativeReflectConstruct = PermissionsManager_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = PermissionsManager_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = PermissionsManager_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return PermissionsManager_possibleConstructorReturn(this, result); }; }
|
|
1382
|
+
function PermissionsManager_possibleConstructorReturn(self, call) { if (call && (PermissionsManager_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return PermissionsManager_assertThisInitialized(self); }
|
|
1383
|
+
function PermissionsManager_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
1384
|
+
function PermissionsManager_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
1385
|
+
function PermissionsManager_getPrototypeOf(o) { PermissionsManager_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return PermissionsManager_getPrototypeOf(o); }
|
|
1386
|
+
function PermissionsManager_defineProperty(obj, key, value) { key = PermissionsManager_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
1387
|
+
function PermissionsManager_toPropertyKey(arg) { var key = PermissionsManager_toPrimitive(arg, "string"); return PermissionsManager_typeof(key) === "symbol" ? key : String(key); }
|
|
1388
|
+
function PermissionsManager_toPrimitive(input, hint) { if (PermissionsManager_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (PermissionsManager_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
1389
|
+
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
var getOvId = function getOvId(layer, layerId, target, targetId) {
|
|
1393
|
+
return layer + (layerId !== null && layerId !== void 0 ? layerId : '') + target + targetId;
|
|
1394
|
+
};
|
|
1395
|
+
var getOvIdByObject = function getOvIdByObject(overwrites) {
|
|
1396
|
+
return getOvId(overwrites.layer, overwrites.layerId, overwrites.target, overwrites.targetId);
|
|
1397
|
+
};
|
|
1398
|
+
var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
1399
|
+
PermissionsManager_inherits(PermissionsManager, _EventTarget);
|
|
1400
|
+
var _super = PermissionsManager_createSuper(PermissionsManager);
|
|
1401
|
+
function PermissionsManager(tracker) {
|
|
1402
|
+
var _this;
|
|
1403
|
+
PermissionsManager_classCallCheck(this, PermissionsManager);
|
|
1404
|
+
_this = _super.call(this);
|
|
1405
|
+
_this.tracker = tracker;
|
|
1406
|
+
PermissionsManager_defineProperty(PermissionsManager_assertThisInitialized(_this), "overwrites", new IndexedCollection());
|
|
1407
|
+
_this.tracker.client.on('PermissionOverwrites', function (ev) {
|
|
1408
|
+
return _this.handlePermissionOverwrites(ev);
|
|
1409
|
+
});
|
|
1410
|
+
_this.tracker.client.on('PermissionOverwritesChanged', function (ev) {
|
|
1411
|
+
return _this.handlePermissionOverwrites(ev);
|
|
1412
|
+
});
|
|
1413
|
+
return _this;
|
|
1414
|
+
}
|
|
1415
|
+
PermissionsManager_createClass(PermissionsManager, [{
|
|
1416
|
+
key: "getOverwrites",
|
|
1417
|
+
value: function () {
|
|
1418
|
+
var _getOverwrites = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee(layer, layerId, target, targetId) {
|
|
1419
|
+
var id, result;
|
|
1420
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1421
|
+
while (1) {
|
|
1422
|
+
switch (_context.prev = _context.next) {
|
|
1423
|
+
case 0:
|
|
1424
|
+
id = getOvId(layer, layerId, target, targetId);
|
|
1425
|
+
if (!this.overwrites.has(id)) {
|
|
1426
|
+
_context.next = 3;
|
|
1427
|
+
break;
|
|
1428
|
+
}
|
|
1429
|
+
return _context.abrupt("return", this.overwrites.get(id));
|
|
1430
|
+
case 3:
|
|
1431
|
+
_context.next = 5;
|
|
1432
|
+
return this.tracker.client.send('GetPermissionOverwrites', {
|
|
1433
|
+
layer: layer,
|
|
1434
|
+
layerId: layerId,
|
|
1435
|
+
target: target,
|
|
1436
|
+
targetId: targetId
|
|
1437
|
+
});
|
|
1438
|
+
case 5:
|
|
1439
|
+
result = _context.sent;
|
|
1440
|
+
return _context.abrupt("return", result.error ? null : result.data);
|
|
1441
|
+
case 7:
|
|
1442
|
+
case "end":
|
|
1443
|
+
return _context.stop();
|
|
1444
|
+
}
|
|
1445
|
+
}
|
|
1446
|
+
}, _callee, this);
|
|
1447
|
+
}));
|
|
1448
|
+
function getOverwrites(_x, _x2, _x3, _x4) {
|
|
1449
|
+
return _getOverwrites.apply(this, arguments);
|
|
1450
|
+
}
|
|
1451
|
+
return getOverwrites;
|
|
1452
|
+
}()
|
|
1453
|
+
}, {
|
|
1454
|
+
key: "on",
|
|
1455
|
+
value: function on(eventName, handler) {
|
|
1456
|
+
return PermissionsManager_get(PermissionsManager_getPrototypeOf(PermissionsManager.prototype), "on", this).call(this, eventName, handler);
|
|
1457
|
+
}
|
|
1458
|
+
}, {
|
|
1459
|
+
key: "check",
|
|
1460
|
+
value: function () {
|
|
1461
|
+
var _check = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee2(permissionNames, spaceId, roomId, topicId) {
|
|
1462
|
+
var ownedPermissions, missing;
|
|
1463
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
1464
|
+
while (1) {
|
|
1465
|
+
switch (_context2.prev = _context2.next) {
|
|
1466
|
+
case 0:
|
|
1467
|
+
_context2.next = 2;
|
|
1468
|
+
return this.calculatePermissions(spaceId, roomId, topicId);
|
|
1469
|
+
case 2:
|
|
1470
|
+
ownedPermissions = _context2.sent;
|
|
1471
|
+
missing = [];
|
|
1472
|
+
permissionNames.forEach(function (name) {
|
|
1473
|
+
if (~ownedPermissions & Permission[name]) {
|
|
1474
|
+
missing.push(name);
|
|
1475
|
+
}
|
|
1476
|
+
});
|
|
1477
|
+
return _context2.abrupt("return", {
|
|
1478
|
+
ok: missing.length === 0,
|
|
1479
|
+
missing: missing
|
|
1480
|
+
});
|
|
1481
|
+
case 6:
|
|
1482
|
+
case "end":
|
|
1483
|
+
return _context2.stop();
|
|
1484
|
+
}
|
|
1485
|
+
}
|
|
1486
|
+
}, _callee2, this);
|
|
1487
|
+
}));
|
|
1488
|
+
function check(_x5, _x6, _x7, _x8) {
|
|
1489
|
+
return _check.apply(this, arguments);
|
|
1490
|
+
}
|
|
1491
|
+
return check;
|
|
1492
|
+
}()
|
|
1493
|
+
}, {
|
|
1494
|
+
key: "calculatePermissions",
|
|
1495
|
+
value: function () {
|
|
1496
|
+
var _calculatePermissions = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee3(spaceId, roomId, topicId) {
|
|
1497
|
+
var userId, userRoles, promises, roomMember;
|
|
1498
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
1499
|
+
while (1) {
|
|
1500
|
+
switch (_context3.prev = _context3.next) {
|
|
1501
|
+
case 0:
|
|
1502
|
+
if (!(topicId && !roomId || roomId && !spaceId)) {
|
|
1503
|
+
_context3.next = 2;
|
|
1504
|
+
break;
|
|
1505
|
+
}
|
|
1506
|
+
throw new Error('Corrupted arguments hierarchy');
|
|
1507
|
+
case 2:
|
|
1508
|
+
_context3.next = 4;
|
|
1509
|
+
return this.tracker.getMe();
|
|
1510
|
+
case 4:
|
|
1511
|
+
userId = _context3.sent.id;
|
|
1512
|
+
userRoles = [];
|
|
1513
|
+
promises = [
|
|
1514
|
+
// Global user overwrites
|
|
1515
|
+
this.getOverwrites('Global', null, 'User', userId).then(function (v) {
|
|
1516
|
+
return v.overwrites;
|
|
1517
|
+
})];
|
|
1518
|
+
if (!spaceId) {
|
|
1519
|
+
_context3.next = 18;
|
|
1520
|
+
break;
|
|
1521
|
+
}
|
|
1522
|
+
_context3.t0 = userRoles.push;
|
|
1523
|
+
_context3.t1 = userRoles;
|
|
1524
|
+
_context3.t2 = PermissionsManager_toConsumableArray;
|
|
1525
|
+
_context3.next = 13;
|
|
1526
|
+
return this.tracker.spaces.getMe(spaceId);
|
|
1527
|
+
case 13:
|
|
1528
|
+
_context3.t3 = _context3.sent.roles;
|
|
1529
|
+
_context3.t4 = (0, _context3.t2)(_context3.t3);
|
|
1530
|
+
_context3.t0.apply.call(_context3.t0, _context3.t1, _context3.t4);
|
|
1531
|
+
promises.push(this.collectRoleOverwrites(spaceId, 'Space', spaceId, userRoles));
|
|
1532
|
+
promises.push(this.getOverwrites('Space', spaceId, 'User', userId).then(function (v) {
|
|
1533
|
+
return v.overwrites;
|
|
1534
|
+
}));
|
|
1535
|
+
case 18:
|
|
1536
|
+
if (!roomId) {
|
|
1537
|
+
_context3.next = 24;
|
|
1538
|
+
break;
|
|
1539
|
+
}
|
|
1540
|
+
_context3.next = 21;
|
|
1541
|
+
return this.tracker.rooms.getMe(roomId);
|
|
1542
|
+
case 21:
|
|
1543
|
+
roomMember = _context3.sent;
|
|
1544
|
+
if (roomMember.roles !== null) {
|
|
1545
|
+
// Room overwrites from roles (only for space rooms)
|
|
1546
|
+
userRoles.push.apply(userRoles, PermissionsManager_toConsumableArray(roomMember.roles));
|
|
1547
|
+
promises.push(this.collectRoleOverwrites(spaceId, 'Room', roomId, userRoles));
|
|
1548
|
+
}
|
|
1549
|
+
promises.push(this.getOverwrites('Room', roomId, 'User', userId).then(function (v) {
|
|
1550
|
+
return v.overwrites;
|
|
1551
|
+
}));
|
|
1552
|
+
case 24:
|
|
1553
|
+
if (topicId) {
|
|
1554
|
+
if (userRoles.length) {
|
|
1555
|
+
promises.push(this.collectRoleOverwrites(spaceId, 'Topic', topicId, userRoles));
|
|
1556
|
+
}
|
|
1557
|
+
promises.push(this.getOverwrites('Topic', topicId, 'User', userId).then(function (v) {
|
|
1558
|
+
return v.overwrites;
|
|
1559
|
+
}));
|
|
1560
|
+
}
|
|
1561
|
+
_context3.t5 = this;
|
|
1562
|
+
_context3.next = 28;
|
|
1563
|
+
return Promise.all(promises);
|
|
1564
|
+
case 28:
|
|
1565
|
+
_context3.t6 = _context3.sent;
|
|
1566
|
+
return _context3.abrupt("return", _context3.t5.resolveOverwritesHierarchy.call(_context3.t5, _context3.t6));
|
|
1567
|
+
case 30:
|
|
1568
|
+
case "end":
|
|
1569
|
+
return _context3.stop();
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
}, _callee3, this);
|
|
1573
|
+
}));
|
|
1574
|
+
function calculatePermissions(_x9, _x10, _x11) {
|
|
1575
|
+
return _calculatePermissions.apply(this, arguments);
|
|
1576
|
+
}
|
|
1577
|
+
return calculatePermissions;
|
|
1578
|
+
}()
|
|
1579
|
+
}, {
|
|
1580
|
+
key: "handlePermissionOverwrites",
|
|
1581
|
+
value: function handlePermissionOverwrites(ev) {
|
|
1582
|
+
this.overwrites.set([getOvIdByObject(ev), ev]);
|
|
1583
|
+
this.emit('change');
|
|
1584
|
+
}
|
|
1585
|
+
}, {
|
|
1586
|
+
key: "collectRoleOverwrites",
|
|
1587
|
+
value: function () {
|
|
1588
|
+
var _collectRoleOverwrites = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee4(spaceId, layer, layerId, userRoles) {
|
|
1589
|
+
var _this2 = this;
|
|
1590
|
+
var roleOverwrites;
|
|
1591
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
1592
|
+
while (1) {
|
|
1593
|
+
switch (_context4.prev = _context4.next) {
|
|
1594
|
+
case 0:
|
|
1595
|
+
_context4.next = 2;
|
|
1596
|
+
return Promise.all(userRoles.map(function (roleId) {
|
|
1597
|
+
return _this2.getOverwrites(layer, layerId, 'Role', roleId);
|
|
1598
|
+
}));
|
|
1599
|
+
case 2:
|
|
1600
|
+
roleOverwrites = _context4.sent;
|
|
1601
|
+
return _context4.abrupt("return", this.resolveOverwritesFromRolesByOrder(spaceId, roleOverwrites));
|
|
1602
|
+
case 4:
|
|
1603
|
+
case "end":
|
|
1604
|
+
return _context4.stop();
|
|
1605
|
+
}
|
|
1606
|
+
}
|
|
1607
|
+
}, _callee4, this);
|
|
1608
|
+
}));
|
|
1609
|
+
function collectRoleOverwrites(_x12, _x13, _x14, _x15) {
|
|
1610
|
+
return _collectRoleOverwrites.apply(this, arguments);
|
|
1611
|
+
}
|
|
1612
|
+
return collectRoleOverwrites;
|
|
1613
|
+
}()
|
|
1614
|
+
}, {
|
|
1615
|
+
key: "resolveOverwritesFromRolesByOrder",
|
|
1616
|
+
value: function () {
|
|
1617
|
+
var _resolveOverwritesFromRolesByOrder = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee5(spaceId, overwrites) {
|
|
1618
|
+
var allows, denies, roles, sortedOverwrites, permissionsLength;
|
|
1619
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
1620
|
+
while (1) {
|
|
1621
|
+
switch (_context5.prev = _context5.next) {
|
|
1622
|
+
case 0:
|
|
1623
|
+
allows = 0, denies = 0;
|
|
1624
|
+
_context5.next = 3;
|
|
1625
|
+
return this.tracker.spaces.getRoles(spaceId);
|
|
1626
|
+
case 3:
|
|
1627
|
+
roles = _context5.sent;
|
|
1628
|
+
sortedOverwrites = overwrites.sort(function (a, b) {
|
|
1629
|
+
return roles.get(a.targetId).priority - roles.get(b.targetId).priority;
|
|
1630
|
+
}); // Max length of bit word
|
|
1631
|
+
permissionsLength = overwrites.reduce(function (previousValue, currentValue) {
|
|
1632
|
+
return Math.max(previousValue, currentValue.overwrites.allow.toString(2).length, currentValue.overwrites.deny.toString(2).length);
|
|
1633
|
+
}, 0);
|
|
1634
|
+
sortedOverwrites.forEach(function (overwriteEvent) {
|
|
1635
|
+
var overwrites = overwriteEvent.overwrites;
|
|
1636
|
+
var revDecDenies = overwrites.deny.toString(2).split('').reverse().join('');
|
|
1637
|
+
var revDecAllows = overwrites.allow.toString(2).split('').reverse().join('');
|
|
1638
|
+
for (var i = 0; i < permissionsLength; i++) {
|
|
1639
|
+
var _revDecDenies$i, _revDecAllows$i;
|
|
1640
|
+
var deny = parseInt((_revDecDenies$i = revDecDenies[i]) !== null && _revDecDenies$i !== void 0 ? _revDecDenies$i : '0');
|
|
1641
|
+
var allow = parseInt((_revDecAllows$i = revDecAllows[i]) !== null && _revDecAllows$i !== void 0 ? _revDecAllows$i : '0');
|
|
1642
|
+
if (deny) {
|
|
1643
|
+
denies |= 1 << i;
|
|
1644
|
+
}
|
|
1645
|
+
if (allow) {
|
|
1646
|
+
allows |= 1 << i;
|
|
1647
|
+
}
|
|
1648
|
+
}
|
|
1649
|
+
});
|
|
1650
|
+
return _context5.abrupt("return", {
|
|
1651
|
+
allow: allows,
|
|
1652
|
+
deny: denies
|
|
1653
|
+
});
|
|
1654
|
+
case 8:
|
|
1655
|
+
case "end":
|
|
1656
|
+
return _context5.stop();
|
|
1657
|
+
}
|
|
1658
|
+
}
|
|
1659
|
+
}, _callee5, this);
|
|
1660
|
+
}));
|
|
1661
|
+
function resolveOverwritesFromRolesByOrder(_x16, _x17) {
|
|
1662
|
+
return _resolveOverwritesFromRolesByOrder.apply(this, arguments);
|
|
1663
|
+
}
|
|
1664
|
+
return resolveOverwritesFromRolesByOrder;
|
|
1665
|
+
}()
|
|
1666
|
+
}, {
|
|
1667
|
+
key: "resolveOverwritesHierarchy",
|
|
1668
|
+
value: function resolveOverwritesHierarchy(permissionOverwritesValues) {
|
|
1669
|
+
var result = 0;
|
|
1670
|
+
var _iterator = PermissionsManager_createForOfIteratorHelper(permissionOverwritesValues),
|
|
1671
|
+
_step;
|
|
1672
|
+
try {
|
|
1673
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1674
|
+
var value = _step.value;
|
|
1675
|
+
if (value.allow & Permission.Root) {
|
|
1676
|
+
return this.getRootAccessValue();
|
|
1677
|
+
}
|
|
1678
|
+
result = result & ~value.deny | value.allow;
|
|
1679
|
+
}
|
|
1680
|
+
} catch (err) {
|
|
1681
|
+
_iterator.e(err);
|
|
1682
|
+
} finally {
|
|
1683
|
+
_iterator.f();
|
|
1684
|
+
}
|
|
1685
|
+
return result;
|
|
1686
|
+
}
|
|
1687
|
+
}, {
|
|
1688
|
+
key: "getRootAccessValue",
|
|
1689
|
+
value: function getRootAccessValue() {
|
|
1690
|
+
var result = 0;
|
|
1691
|
+
var _iterator2 = PermissionsManager_createForOfIteratorHelper(this.getPermissionNames()),
|
|
1692
|
+
_step2;
|
|
1693
|
+
try {
|
|
1694
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
1695
|
+
var name = _step2.value;
|
|
1696
|
+
result |= Permission[name];
|
|
1697
|
+
}
|
|
1698
|
+
} catch (err) {
|
|
1699
|
+
_iterator2.e(err);
|
|
1700
|
+
} finally {
|
|
1701
|
+
_iterator2.f();
|
|
1702
|
+
}
|
|
1703
|
+
return result;
|
|
1704
|
+
}
|
|
1705
|
+
}, {
|
|
1706
|
+
key: "getPermissionNames",
|
|
1707
|
+
value: function getPermissionNames() {
|
|
1708
|
+
return Object.keys(Permission).filter(function (key) {
|
|
1709
|
+
return Number.isNaN(parseInt(key));
|
|
1710
|
+
});
|
|
1711
|
+
}
|
|
1712
|
+
}]);
|
|
1713
|
+
return PermissionsManager;
|
|
1714
|
+
}(EventTarget);
|
|
1715
|
+
;// CONCATENATED MODULE: ./src/state-tracker/ChatStateTracker.ts
|
|
1716
|
+
function ChatStateTracker_typeof(obj) { "@babel/helpers - typeof"; return ChatStateTracker_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, ChatStateTracker_typeof(obj); }
|
|
1717
|
+
function ChatStateTracker_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ ChatStateTracker_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == ChatStateTracker_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
1718
|
+
function ChatStateTracker_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
1719
|
+
function ChatStateTracker_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { ChatStateTracker_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { ChatStateTracker_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
1720
|
+
function ChatStateTracker_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
1721
|
+
function ChatStateTracker_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, ChatStateTracker_toPropertyKey(descriptor.key), descriptor); } }
|
|
1722
|
+
function ChatStateTracker_createClass(Constructor, protoProps, staticProps) { if (protoProps) ChatStateTracker_defineProperties(Constructor.prototype, protoProps); if (staticProps) ChatStateTracker_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
1723
|
+
function ChatStateTracker_defineProperty(obj, key, value) { key = ChatStateTracker_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
1724
|
+
function ChatStateTracker_toPropertyKey(arg) { var key = ChatStateTracker_toPrimitive(arg, "string"); return ChatStateTracker_typeof(key) === "symbol" ? key : String(key); }
|
|
1725
|
+
function ChatStateTracker_toPrimitive(input, hint) { if (ChatStateTracker_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (ChatStateTracker_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
1726
|
+
|
|
1727
|
+
|
|
1728
|
+
|
|
1729
|
+
|
|
1730
|
+
var ChatStateTracker = /*#__PURE__*/function () {
|
|
1731
|
+
/**
|
|
1732
|
+
* State of the rooms you are in.
|
|
1733
|
+
*/
|
|
1734
|
+
|
|
1735
|
+
/**
|
|
1736
|
+
* State of the spaces you are in.
|
|
1737
|
+
*/
|
|
1738
|
+
|
|
1739
|
+
/**
|
|
1740
|
+
* State of your permissions.
|
|
1741
|
+
*/
|
|
1742
|
+
|
|
1743
|
+
function ChatStateTracker(client) {
|
|
1744
|
+
var _this = this;
|
|
1745
|
+
ChatStateTracker_classCallCheck(this, ChatStateTracker);
|
|
1746
|
+
this.client = client;
|
|
1747
|
+
ChatStateTracker_defineProperty(this, "rooms", new RoomsManager(this));
|
|
1748
|
+
ChatStateTracker_defineProperty(this, "spaces", new SpacesManager(this));
|
|
1749
|
+
ChatStateTracker_defineProperty(this, "permissions", new PermissionsManager(this));
|
|
1750
|
+
ChatStateTracker_defineProperty(this, "me", null);
|
|
1751
|
+
ChatStateTracker_defineProperty(this, "deferredSession", new DeferredTask());
|
|
1752
|
+
this.client.on('Session', function (ev) {
|
|
1753
|
+
return _this.handleSession(ev);
|
|
1754
|
+
});
|
|
1755
|
+
}
|
|
1756
|
+
ChatStateTracker_createClass(ChatStateTracker, [{
|
|
1757
|
+
key: "getMe",
|
|
1758
|
+
value: function () {
|
|
1759
|
+
var _getMe = ChatStateTracker_asyncToGenerator( /*#__PURE__*/ChatStateTracker_regeneratorRuntime().mark(function _callee() {
|
|
1760
|
+
return ChatStateTracker_regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1761
|
+
while (1) {
|
|
1762
|
+
switch (_context.prev = _context.next) {
|
|
1763
|
+
case 0:
|
|
1764
|
+
_context.next = 2;
|
|
1765
|
+
return this.deferredSession.promise;
|
|
1766
|
+
case 2:
|
|
1767
|
+
return _context.abrupt("return", this.me);
|
|
1768
|
+
case 3:
|
|
1769
|
+
case "end":
|
|
1770
|
+
return _context.stop();
|
|
1771
|
+
}
|
|
1772
|
+
}
|
|
1773
|
+
}, _callee, this);
|
|
1774
|
+
}));
|
|
1775
|
+
function getMe() {
|
|
1776
|
+
return _getMe.apply(this, arguments);
|
|
1777
|
+
}
|
|
1778
|
+
return getMe;
|
|
1779
|
+
}()
|
|
1780
|
+
}, {
|
|
1781
|
+
key: "handleSession",
|
|
1782
|
+
value: function handleSession(ev) {
|
|
1783
|
+
this.me = ev.user;
|
|
1784
|
+
this.deferredSession.resolve();
|
|
1190
1785
|
}
|
|
1191
1786
|
}]);
|
|
1192
1787
|
return ChatStateTracker;
|
|
@@ -1798,6 +2393,7 @@ var AuthClient = /*#__PURE__*/function (_AbstractRestClient) {
|
|
|
1798
2393
|
|
|
1799
2394
|
|
|
1800
2395
|
|
|
2396
|
+
|
|
1801
2397
|
/******/ return __webpack_exports__;
|
|
1802
2398
|
/******/ })()
|
|
1803
2399
|
;
|