polfan-server-js-client 0.1.36 → 0.1.38
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 +396 -217
- package/build/index.js.map +1 -1
- package/build/types/state-tracker/AsyncUtils.d.ts +14 -0
- package/build/types/state-tracker/PermissionsManager.d.ts +9 -0
- package/build/types/state-tracker/RoomsManager.d.ts +6 -10
- package/build/types/state-tracker/SpacesManager.d.ts +2 -1
- package/package.json +1 -1
- package/src/state-tracker/AsyncUtils.ts +38 -0
- package/src/state-tracker/ChatStateTracker.ts +1 -1
- package/src/state-tracker/PermissionsManager.ts +61 -14
- package/src/state-tracker/RoomsManager.ts +33 -23
- package/src/state-tracker/SpacesManager.ts +25 -26
- package/tests/async-utils.test.ts +30 -0
- package/build/types/state-tracker/DeferredTask.d.ts +0 -5
- package/src/state-tracker/DeferredTask.ts +0 -8
package/build/index.js
CHANGED
|
@@ -562,23 +562,63 @@ var ObservableIndexedObjectCollection = /*#__PURE__*/function (_IndexedObjectCol
|
|
|
562
562
|
}]);
|
|
563
563
|
return ObservableIndexedObjectCollection;
|
|
564
564
|
}(IndexedObjectCollection);
|
|
565
|
-
;// CONCATENATED MODULE: ./src/state-tracker/
|
|
566
|
-
function
|
|
567
|
-
function
|
|
568
|
-
function
|
|
569
|
-
function
|
|
570
|
-
function
|
|
571
|
-
function
|
|
572
|
-
function
|
|
573
|
-
|
|
565
|
+
;// CONCATENATED MODULE: ./src/state-tracker/AsyncUtils.ts
|
|
566
|
+
function AsyncUtils_typeof(obj) { "@babel/helpers - typeof"; return AsyncUtils_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; }, AsyncUtils_typeof(obj); }
|
|
567
|
+
function AsyncUtils_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, AsyncUtils_toPropertyKey(descriptor.key), descriptor); } }
|
|
568
|
+
function AsyncUtils_createClass(Constructor, protoProps, staticProps) { if (protoProps) AsyncUtils_defineProperties(Constructor.prototype, protoProps); if (staticProps) AsyncUtils_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
569
|
+
function AsyncUtils_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
570
|
+
function AsyncUtils_defineProperty(obj, key, value) { key = AsyncUtils_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 AsyncUtils_toPropertyKey(arg) { var key = AsyncUtils_toPrimitive(arg, "string"); return AsyncUtils_typeof(key) === "symbol" ? key : String(key); }
|
|
572
|
+
function AsyncUtils_toPrimitive(input, hint) { if (AsyncUtils_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (AsyncUtils_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
573
|
+
|
|
574
|
+
var DeferredTask = /*#__PURE__*/AsyncUtils_createClass(function DeferredTask() {
|
|
574
575
|
var _this = this;
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
576
|
+
AsyncUtils_classCallCheck(this, DeferredTask);
|
|
577
|
+
AsyncUtils_defineProperty(this, "promise", void 0);
|
|
578
|
+
AsyncUtils_defineProperty(this, "resolve", void 0);
|
|
578
579
|
this.promise = new Promise(function (resolve) {
|
|
579
580
|
return _this.resolve = resolve;
|
|
580
581
|
});
|
|
581
582
|
});
|
|
583
|
+
var PromiseRegistry = /*#__PURE__*/function () {
|
|
584
|
+
function PromiseRegistry() {
|
|
585
|
+
AsyncUtils_classCallCheck(this, PromiseRegistry);
|
|
586
|
+
AsyncUtils_defineProperty(this, "promises", new IndexedCollection());
|
|
587
|
+
}
|
|
588
|
+
AsyncUtils_createClass(PromiseRegistry, [{
|
|
589
|
+
key: "register",
|
|
590
|
+
value: function register(promise, key) {
|
|
591
|
+
this.promises.set([key, promise]);
|
|
592
|
+
}
|
|
593
|
+
}, {
|
|
594
|
+
key: "registerByFunction",
|
|
595
|
+
value: function registerByFunction(fn, key) {
|
|
596
|
+
this.register(fn(), key);
|
|
597
|
+
}
|
|
598
|
+
}, {
|
|
599
|
+
key: "get",
|
|
600
|
+
value: function get(key) {
|
|
601
|
+
return this.promises.get(key);
|
|
602
|
+
}
|
|
603
|
+
}, {
|
|
604
|
+
key: "has",
|
|
605
|
+
value: function has(key) {
|
|
606
|
+
return this.promises.has(key);
|
|
607
|
+
}
|
|
608
|
+
}, {
|
|
609
|
+
key: "notExist",
|
|
610
|
+
value: function notExist(key) {
|
|
611
|
+
return !this.has(key);
|
|
612
|
+
}
|
|
613
|
+
}, {
|
|
614
|
+
key: "forget",
|
|
615
|
+
value: function forget() {
|
|
616
|
+
var _this$promises;
|
|
617
|
+
(_this$promises = this.promises)["delete"].apply(_this$promises, arguments);
|
|
618
|
+
}
|
|
619
|
+
}]);
|
|
620
|
+
return PromiseRegistry;
|
|
621
|
+
}();
|
|
582
622
|
;// CONCATENATED MODULE: ./src/state-tracker/MessagesManager.ts
|
|
583
623
|
function MessagesManager_typeof(obj) { "@babel/helpers - typeof"; return MessagesManager_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; }, MessagesManager_typeof(obj); }
|
|
584
624
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -900,6 +940,7 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
900
940
|
RoomsManager_defineProperty(this, "topics", new IndexedCollection());
|
|
901
941
|
RoomsManager_defineProperty(this, "members", new IndexedCollection());
|
|
902
942
|
RoomsManager_defineProperty(this, "deferredSession", new DeferredTask());
|
|
943
|
+
RoomsManager_defineProperty(this, "membersPromises", new PromiseRegistry());
|
|
903
944
|
this.messages = new MessagesManager(tracker);
|
|
904
945
|
this.tracker.client.on('NewTopic', function (ev) {
|
|
905
946
|
return _this.handleNewTopic(ev);
|
|
@@ -913,6 +954,9 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
913
954
|
this.tracker.client.on('RoomLeft', function (ev) {
|
|
914
955
|
return _this.handleRoomLeft(ev);
|
|
915
956
|
});
|
|
957
|
+
this.tracker.client.on('RoomDeleted', function (ev) {
|
|
958
|
+
return _this.handleRoomDeleted(ev);
|
|
959
|
+
});
|
|
916
960
|
this.tracker.client.on('RoomMemberJoined', function (ev) {
|
|
917
961
|
return _this.handleRoomMemberJoined(ev);
|
|
918
962
|
});
|
|
@@ -925,9 +969,15 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
925
969
|
this.tracker.client.on('RoomMemberUpdated', function (ev) {
|
|
926
970
|
return _this.handleRoomMemberUpdated(ev);
|
|
927
971
|
});
|
|
972
|
+
this.tracker.client.on('SpaceMemberLeft', function (ev) {
|
|
973
|
+
return _this.handleSpaceMemberLeft(ev);
|
|
974
|
+
});
|
|
928
975
|
this.tracker.client.on('SpaceMemberUpdated', function (ev) {
|
|
929
976
|
return _this.handleSpaceMemberUpdated(ev);
|
|
930
977
|
});
|
|
978
|
+
this.tracker.client.on('SpaceDeleted', function (ev) {
|
|
979
|
+
return _this.handleSpaceDeleted(ev);
|
|
980
|
+
});
|
|
931
981
|
this.tracker.client.on('UserChanged', function (ev) {
|
|
932
982
|
return _this.handleUserChanged(ev);
|
|
933
983
|
});
|
|
@@ -942,37 +992,50 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
942
992
|
RoomsManager_createClass(RoomsManager, [{
|
|
943
993
|
key: "getMembers",
|
|
944
994
|
value: function () {
|
|
945
|
-
var _getMembers = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function
|
|
946
|
-
var
|
|
947
|
-
return RoomsManager_regeneratorRuntime().wrap(function
|
|
995
|
+
var _getMembers = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function _callee2(roomId) {
|
|
996
|
+
var _this2 = this;
|
|
997
|
+
return RoomsManager_regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
948
998
|
while (1) {
|
|
949
|
-
switch (
|
|
999
|
+
switch (_context2.prev = _context2.next) {
|
|
950
1000
|
case 0:
|
|
951
|
-
if (this.
|
|
952
|
-
|
|
953
|
-
|
|
1001
|
+
if (this.membersPromises.notExist(roomId)) {
|
|
1002
|
+
this.membersPromises.registerByFunction( /*#__PURE__*/RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function _callee() {
|
|
1003
|
+
var result;
|
|
1004
|
+
return RoomsManager_regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1005
|
+
while (1) {
|
|
1006
|
+
switch (_context.prev = _context.next) {
|
|
1007
|
+
case 0:
|
|
1008
|
+
_context.next = 2;
|
|
1009
|
+
return _this2.tracker.client.send('GetRoomMembers', {
|
|
1010
|
+
id: roomId
|
|
1011
|
+
});
|
|
1012
|
+
case 2:
|
|
1013
|
+
result = _context.sent;
|
|
1014
|
+
if (!result.error) {
|
|
1015
|
+
_context.next = 5;
|
|
1016
|
+
break;
|
|
1017
|
+
}
|
|
1018
|
+
throw result.error;
|
|
1019
|
+
case 5:
|
|
1020
|
+
_this2.handleRoomMembers(result.data);
|
|
1021
|
+
case 6:
|
|
1022
|
+
case "end":
|
|
1023
|
+
return _context.stop();
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
}, _callee);
|
|
1027
|
+
})), roomId);
|
|
954
1028
|
}
|
|
955
|
-
|
|
956
|
-
return this.
|
|
957
|
-
id: roomId
|
|
958
|
-
});
|
|
1029
|
+
_context2.next = 3;
|
|
1030
|
+
return this.membersPromises.get(roomId);
|
|
959
1031
|
case 3:
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
_context.next = 6;
|
|
963
|
-
break;
|
|
964
|
-
}
|
|
965
|
-
throw result.error;
|
|
966
|
-
case 6:
|
|
967
|
-
this.handleRoomMembers(result.data);
|
|
968
|
-
case 7:
|
|
969
|
-
return _context.abrupt("return", this.members.get(roomId));
|
|
970
|
-
case 8:
|
|
1032
|
+
return _context2.abrupt("return", this.members.get(roomId));
|
|
1033
|
+
case 4:
|
|
971
1034
|
case "end":
|
|
972
|
-
return
|
|
1035
|
+
return _context2.stop();
|
|
973
1036
|
}
|
|
974
1037
|
}
|
|
975
|
-
},
|
|
1038
|
+
}, _callee2, this);
|
|
976
1039
|
}));
|
|
977
1040
|
function getMembers(_x) {
|
|
978
1041
|
return _getMembers.apply(this, arguments);
|
|
@@ -985,36 +1048,36 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
985
1048
|
}, {
|
|
986
1049
|
key: "getMe",
|
|
987
1050
|
value: function () {
|
|
988
|
-
var _getMe = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function
|
|
1051
|
+
var _getMe = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function _callee3(roomId) {
|
|
989
1052
|
var userId, members;
|
|
990
|
-
return RoomsManager_regeneratorRuntime().wrap(function
|
|
1053
|
+
return RoomsManager_regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
991
1054
|
while (1) {
|
|
992
|
-
switch (
|
|
1055
|
+
switch (_context3.prev = _context3.next) {
|
|
993
1056
|
case 0:
|
|
994
|
-
|
|
1057
|
+
_context3.next = 2;
|
|
995
1058
|
return this.tracker.getMe();
|
|
996
1059
|
case 2:
|
|
997
|
-
userId =
|
|
998
|
-
|
|
1060
|
+
userId = _context3.sent.id;
|
|
1061
|
+
_context3.next = 5;
|
|
999
1062
|
return this.getMembers(roomId);
|
|
1000
1063
|
case 5:
|
|
1001
|
-
members =
|
|
1064
|
+
members = _context3.sent;
|
|
1002
1065
|
if (members) {
|
|
1003
|
-
|
|
1066
|
+
_context3.next = 8;
|
|
1004
1067
|
break;
|
|
1005
1068
|
}
|
|
1006
|
-
return
|
|
1069
|
+
return _context3.abrupt("return", undefined);
|
|
1007
1070
|
case 8:
|
|
1008
|
-
return
|
|
1071
|
+
return _context3.abrupt("return", members.items.find(function (member) {
|
|
1009
1072
|
var _member$user$id, _member$user;
|
|
1010
1073
|
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;
|
|
1011
1074
|
}));
|
|
1012
1075
|
case 9:
|
|
1013
1076
|
case "end":
|
|
1014
|
-
return
|
|
1077
|
+
return _context3.stop();
|
|
1015
1078
|
}
|
|
1016
1079
|
}
|
|
1017
|
-
},
|
|
1080
|
+
}, _callee3, this);
|
|
1018
1081
|
}));
|
|
1019
1082
|
function getMe(_x2) {
|
|
1020
1083
|
return _getMe.apply(this, arguments);
|
|
@@ -1027,21 +1090,21 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1027
1090
|
}, {
|
|
1028
1091
|
key: "get",
|
|
1029
1092
|
value: function () {
|
|
1030
|
-
var _get = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function
|
|
1031
|
-
return RoomsManager_regeneratorRuntime().wrap(function
|
|
1093
|
+
var _get = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function _callee4() {
|
|
1094
|
+
return RoomsManager_regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
1032
1095
|
while (1) {
|
|
1033
|
-
switch (
|
|
1096
|
+
switch (_context4.prev = _context4.next) {
|
|
1034
1097
|
case 0:
|
|
1035
|
-
|
|
1098
|
+
_context4.next = 2;
|
|
1036
1099
|
return this.deferredSession.promise;
|
|
1037
1100
|
case 2:
|
|
1038
|
-
return
|
|
1101
|
+
return _context4.abrupt("return", this.list);
|
|
1039
1102
|
case 3:
|
|
1040
1103
|
case "end":
|
|
1041
|
-
return
|
|
1104
|
+
return _context4.stop();
|
|
1042
1105
|
}
|
|
1043
1106
|
}
|
|
1044
|
-
},
|
|
1107
|
+
}, _callee4, this);
|
|
1045
1108
|
}));
|
|
1046
1109
|
function get() {
|
|
1047
1110
|
return _get.apply(this, arguments);
|
|
@@ -1054,40 +1117,37 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1054
1117
|
}, {
|
|
1055
1118
|
key: "getTopics",
|
|
1056
1119
|
value: function () {
|
|
1057
|
-
var _getTopics = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function
|
|
1058
|
-
return RoomsManager_regeneratorRuntime().wrap(function
|
|
1120
|
+
var _getTopics = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function _callee5(roomId) {
|
|
1121
|
+
return RoomsManager_regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
1059
1122
|
while (1) {
|
|
1060
|
-
switch (
|
|
1123
|
+
switch (_context5.prev = _context5.next) {
|
|
1061
1124
|
case 0:
|
|
1062
|
-
|
|
1125
|
+
_context5.next = 2;
|
|
1063
1126
|
return this.deferredSession.promise;
|
|
1064
1127
|
case 2:
|
|
1065
|
-
return
|
|
1128
|
+
return _context5.abrupt("return", this.topics.get(roomId));
|
|
1066
1129
|
case 3:
|
|
1067
1130
|
case "end":
|
|
1068
|
-
return
|
|
1131
|
+
return _context5.stop();
|
|
1069
1132
|
}
|
|
1070
1133
|
}
|
|
1071
|
-
},
|
|
1134
|
+
}, _callee5, this);
|
|
1072
1135
|
}));
|
|
1073
1136
|
function getTopics(_x3) {
|
|
1074
1137
|
return _getTopics.apply(this, arguments);
|
|
1075
1138
|
}
|
|
1076
1139
|
return getTopics;
|
|
1077
1140
|
}()
|
|
1078
|
-
/**
|
|
1079
|
-
* For internal use. If you want to leave the room, execute a proper command on client object.
|
|
1080
|
-
* @internal
|
|
1081
|
-
*/
|
|
1082
1141
|
}, {
|
|
1083
|
-
key: "
|
|
1084
|
-
value: function
|
|
1085
|
-
var _this$list, _this$members, _this$topics;
|
|
1142
|
+
key: "deleteRoom",
|
|
1143
|
+
value: function deleteRoom() {
|
|
1144
|
+
var _this$list, _this$members, _this$membersPromises, _this$topics;
|
|
1086
1145
|
for (var _len = arguments.length, roomIds = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
1087
1146
|
roomIds[_key] = arguments[_key];
|
|
1088
1147
|
}
|
|
1089
1148
|
(_this$list = this.list)["delete"].apply(_this$list, roomIds);
|
|
1090
1149
|
(_this$members = this.members)["delete"].apply(_this$members, roomIds);
|
|
1150
|
+
(_this$membersPromises = this.membersPromises).forget.apply(_this$membersPromises, roomIds);
|
|
1091
1151
|
for (var _i = 0, _roomIds = roomIds; _i < _roomIds.length; _i++) {
|
|
1092
1152
|
var _this$topics$get$map, _this$topics$get, _this$messages;
|
|
1093
1153
|
var roomId = _roomIds[_i];
|
|
@@ -1098,15 +1158,10 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1098
1158
|
}
|
|
1099
1159
|
(_this$topics = this.topics)["delete"].apply(_this$topics, roomIds);
|
|
1100
1160
|
}
|
|
1101
|
-
|
|
1102
|
-
/**
|
|
1103
|
-
* For internal use. If you want to leave the room, execute a proper command on client object.
|
|
1104
|
-
* @internal
|
|
1105
|
-
*/
|
|
1106
1161
|
}, {
|
|
1107
|
-
key: "
|
|
1108
|
-
value: function
|
|
1109
|
-
this.
|
|
1162
|
+
key: "deleteRoomsBySpaceId",
|
|
1163
|
+
value: function deleteRoomsBySpaceId(spaceId) {
|
|
1164
|
+
this.deleteRoom.apply(this, RoomsManager_toConsumableArray(this.list.findBy('spaceId', spaceId).map(function (room) {
|
|
1110
1165
|
return room.id;
|
|
1111
1166
|
})));
|
|
1112
1167
|
}
|
|
@@ -1140,6 +1195,11 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1140
1195
|
_iterator.f();
|
|
1141
1196
|
}
|
|
1142
1197
|
}
|
|
1198
|
+
}, {
|
|
1199
|
+
key: "handleSpaceMemberLeft",
|
|
1200
|
+
value: function handleSpaceMemberLeft(ev) {
|
|
1201
|
+
this.deleteRoomsBySpaceId(ev.spaceId);
|
|
1202
|
+
}
|
|
1143
1203
|
}, {
|
|
1144
1204
|
key: "handleRoomMemberUpdated",
|
|
1145
1205
|
value: function handleRoomMemberUpdated(ev) {
|
|
@@ -1159,6 +1219,11 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1159
1219
|
}
|
|
1160
1220
|
members.set(newMember);
|
|
1161
1221
|
}
|
|
1222
|
+
}, {
|
|
1223
|
+
key: "handleSpaceDeleted",
|
|
1224
|
+
value: function handleSpaceDeleted(ev) {
|
|
1225
|
+
this.deleteRoomsBySpaceId(ev.id);
|
|
1226
|
+
}
|
|
1162
1227
|
}, {
|
|
1163
1228
|
key: "handleTopicDeleted",
|
|
1164
1229
|
value: function handleTopicDeleted(ev) {
|
|
@@ -1192,6 +1257,11 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1192
1257
|
value: function handleRoomJoined(ev) {
|
|
1193
1258
|
this.addJoinedRooms(ev.room);
|
|
1194
1259
|
}
|
|
1260
|
+
}, {
|
|
1261
|
+
key: "handleRoomDeleted",
|
|
1262
|
+
value: function handleRoomDeleted(ev) {
|
|
1263
|
+
this.deleteRoom(ev.id);
|
|
1264
|
+
}
|
|
1195
1265
|
}, {
|
|
1196
1266
|
key: "addJoinedRooms",
|
|
1197
1267
|
value: function addJoinedRooms() {
|
|
@@ -1208,7 +1278,7 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1208
1278
|
}, {
|
|
1209
1279
|
key: "handleRoomLeft",
|
|
1210
1280
|
value: function handleRoomLeft(ev) {
|
|
1211
|
-
this.
|
|
1281
|
+
this.deleteRoom(ev.id);
|
|
1212
1282
|
}
|
|
1213
1283
|
}, {
|
|
1214
1284
|
key: "handleRoomMemberJoined",
|
|
@@ -1318,6 +1388,8 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1318
1388
|
SpacesManager_defineProperty(this, "rooms", new IndexedCollection());
|
|
1319
1389
|
SpacesManager_defineProperty(this, "members", new IndexedCollection());
|
|
1320
1390
|
SpacesManager_defineProperty(this, "deferredSession", new DeferredTask());
|
|
1391
|
+
SpacesManager_defineProperty(this, "roomsPromises", new PromiseRegistry());
|
|
1392
|
+
SpacesManager_defineProperty(this, "membersPromises", new PromiseRegistry());
|
|
1321
1393
|
this.tracker.client.on('NewRoom', function (ev) {
|
|
1322
1394
|
return _this.handleNewRoom(ev);
|
|
1323
1395
|
});
|
|
@@ -1331,7 +1403,7 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1331
1403
|
return _this.handleSpaceJoined(ev);
|
|
1332
1404
|
});
|
|
1333
1405
|
this.tracker.client.on('SpaceLeft', function (ev) {
|
|
1334
|
-
return _this.
|
|
1406
|
+
return _this.handleSpaceDeleted(ev);
|
|
1335
1407
|
});
|
|
1336
1408
|
this.tracker.client.on('SpaceMemberJoined', function (ev) {
|
|
1337
1409
|
return _this.handleSpaceMemberJoined(ev);
|
|
@@ -1425,37 +1497,50 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1425
1497
|
}, {
|
|
1426
1498
|
key: "getRooms",
|
|
1427
1499
|
value: function () {
|
|
1428
|
-
var _getRooms = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function
|
|
1429
|
-
var
|
|
1430
|
-
return SpacesManager_regeneratorRuntime().wrap(function
|
|
1500
|
+
var _getRooms = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee4(spaceId) {
|
|
1501
|
+
var _this2 = this;
|
|
1502
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
1431
1503
|
while (1) {
|
|
1432
|
-
switch (
|
|
1504
|
+
switch (_context4.prev = _context4.next) {
|
|
1433
1505
|
case 0:
|
|
1434
|
-
if (this.
|
|
1435
|
-
|
|
1436
|
-
|
|
1506
|
+
if (this.roomsPromises.notExist(spaceId)) {
|
|
1507
|
+
this.roomsPromises.registerByFunction( /*#__PURE__*/SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee3() {
|
|
1508
|
+
var result;
|
|
1509
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
1510
|
+
while (1) {
|
|
1511
|
+
switch (_context3.prev = _context3.next) {
|
|
1512
|
+
case 0:
|
|
1513
|
+
_context3.next = 2;
|
|
1514
|
+
return _this2.tracker.client.send('GetSpaceRooms', {
|
|
1515
|
+
id: spaceId
|
|
1516
|
+
});
|
|
1517
|
+
case 2:
|
|
1518
|
+
result = _context3.sent;
|
|
1519
|
+
if (!result.error) {
|
|
1520
|
+
_context3.next = 5;
|
|
1521
|
+
break;
|
|
1522
|
+
}
|
|
1523
|
+
throw result.error;
|
|
1524
|
+
case 5:
|
|
1525
|
+
_this2.handleSpaceRooms(result.data);
|
|
1526
|
+
case 6:
|
|
1527
|
+
case "end":
|
|
1528
|
+
return _context3.stop();
|
|
1529
|
+
}
|
|
1530
|
+
}
|
|
1531
|
+
}, _callee3);
|
|
1532
|
+
})), spaceId);
|
|
1437
1533
|
}
|
|
1438
|
-
|
|
1439
|
-
return this.
|
|
1440
|
-
id: spaceId
|
|
1441
|
-
});
|
|
1534
|
+
_context4.next = 3;
|
|
1535
|
+
return this.roomsPromises.get(spaceId);
|
|
1442
1536
|
case 3:
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
_context3.next = 6;
|
|
1446
|
-
break;
|
|
1447
|
-
}
|
|
1448
|
-
throw result.error;
|
|
1449
|
-
case 6:
|
|
1450
|
-
this.handleSpaceRooms(result.data);
|
|
1451
|
-
case 7:
|
|
1452
|
-
return _context3.abrupt("return", this.rooms.get(spaceId));
|
|
1453
|
-
case 8:
|
|
1537
|
+
return _context4.abrupt("return", this.rooms.get(spaceId));
|
|
1538
|
+
case 4:
|
|
1454
1539
|
case "end":
|
|
1455
|
-
return
|
|
1540
|
+
return _context4.stop();
|
|
1456
1541
|
}
|
|
1457
1542
|
}
|
|
1458
|
-
},
|
|
1543
|
+
}, _callee4, this);
|
|
1459
1544
|
}));
|
|
1460
1545
|
function getRooms(_x2) {
|
|
1461
1546
|
return _getRooms.apply(this, arguments);
|
|
@@ -1468,37 +1553,50 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1468
1553
|
}, {
|
|
1469
1554
|
key: "getMembers",
|
|
1470
1555
|
value: function () {
|
|
1471
|
-
var _getMembers = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function
|
|
1472
|
-
var
|
|
1473
|
-
return SpacesManager_regeneratorRuntime().wrap(function
|
|
1556
|
+
var _getMembers = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee6(spaceId) {
|
|
1557
|
+
var _this3 = this;
|
|
1558
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
1474
1559
|
while (1) {
|
|
1475
|
-
switch (
|
|
1560
|
+
switch (_context6.prev = _context6.next) {
|
|
1476
1561
|
case 0:
|
|
1477
|
-
if (this.
|
|
1478
|
-
|
|
1479
|
-
|
|
1562
|
+
if (this.membersPromises.notExist(spaceId)) {
|
|
1563
|
+
this.membersPromises.registerByFunction( /*#__PURE__*/SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee5() {
|
|
1564
|
+
var result;
|
|
1565
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
1566
|
+
while (1) {
|
|
1567
|
+
switch (_context5.prev = _context5.next) {
|
|
1568
|
+
case 0:
|
|
1569
|
+
_context5.next = 2;
|
|
1570
|
+
return _this3.tracker.client.send('GetSpaceMembers', {
|
|
1571
|
+
id: spaceId
|
|
1572
|
+
});
|
|
1573
|
+
case 2:
|
|
1574
|
+
result = _context5.sent;
|
|
1575
|
+
if (!result.error) {
|
|
1576
|
+
_context5.next = 5;
|
|
1577
|
+
break;
|
|
1578
|
+
}
|
|
1579
|
+
throw result.error;
|
|
1580
|
+
case 5:
|
|
1581
|
+
_this3.handleSpaceMembers(result.data);
|
|
1582
|
+
case 6:
|
|
1583
|
+
case "end":
|
|
1584
|
+
return _context5.stop();
|
|
1585
|
+
}
|
|
1586
|
+
}
|
|
1587
|
+
}, _callee5);
|
|
1588
|
+
})), spaceId);
|
|
1480
1589
|
}
|
|
1481
|
-
|
|
1482
|
-
return this.
|
|
1483
|
-
id: spaceId
|
|
1484
|
-
});
|
|
1590
|
+
_context6.next = 3;
|
|
1591
|
+
return this.membersPromises.get(spaceId);
|
|
1485
1592
|
case 3:
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
_context4.next = 6;
|
|
1489
|
-
break;
|
|
1490
|
-
}
|
|
1491
|
-
throw result.error;
|
|
1492
|
-
case 6:
|
|
1493
|
-
this.handleSpaceMembers(result.data);
|
|
1494
|
-
case 7:
|
|
1495
|
-
return _context4.abrupt("return", this.members.get(spaceId));
|
|
1496
|
-
case 8:
|
|
1593
|
+
return _context6.abrupt("return", this.members.get(spaceId));
|
|
1594
|
+
case 4:
|
|
1497
1595
|
case "end":
|
|
1498
|
-
return
|
|
1596
|
+
return _context6.stop();
|
|
1499
1597
|
}
|
|
1500
1598
|
}
|
|
1501
|
-
},
|
|
1599
|
+
}, _callee6, this);
|
|
1502
1600
|
}));
|
|
1503
1601
|
function getMembers(_x3) {
|
|
1504
1602
|
return _getMembers.apply(this, arguments);
|
|
@@ -1511,35 +1609,35 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1511
1609
|
}, {
|
|
1512
1610
|
key: "getMe",
|
|
1513
1611
|
value: function () {
|
|
1514
|
-
var _getMe = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function
|
|
1612
|
+
var _getMe = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee7(spaceId) {
|
|
1515
1613
|
var userId, members;
|
|
1516
|
-
return SpacesManager_regeneratorRuntime().wrap(function
|
|
1614
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
1517
1615
|
while (1) {
|
|
1518
|
-
switch (
|
|
1616
|
+
switch (_context7.prev = _context7.next) {
|
|
1519
1617
|
case 0:
|
|
1520
|
-
|
|
1618
|
+
_context7.next = 2;
|
|
1521
1619
|
return this.tracker.getMe();
|
|
1522
1620
|
case 2:
|
|
1523
|
-
userId =
|
|
1524
|
-
|
|
1621
|
+
userId = _context7.sent.id;
|
|
1622
|
+
_context7.next = 5;
|
|
1525
1623
|
return this.getMembers(spaceId);
|
|
1526
1624
|
case 5:
|
|
1527
|
-
members =
|
|
1625
|
+
members = _context7.sent;
|
|
1528
1626
|
if (members) {
|
|
1529
|
-
|
|
1627
|
+
_context7.next = 8;
|
|
1530
1628
|
break;
|
|
1531
1629
|
}
|
|
1532
|
-
return
|
|
1630
|
+
return _context7.abrupt("return", undefined);
|
|
1533
1631
|
case 8:
|
|
1534
|
-
return
|
|
1632
|
+
return _context7.abrupt("return", members.items.find(function (member) {
|
|
1535
1633
|
return member.user.id === userId;
|
|
1536
1634
|
}));
|
|
1537
1635
|
case 9:
|
|
1538
1636
|
case "end":
|
|
1539
|
-
return
|
|
1637
|
+
return _context7.stop();
|
|
1540
1638
|
}
|
|
1541
1639
|
}
|
|
1542
|
-
},
|
|
1640
|
+
}, _callee7, this);
|
|
1543
1641
|
}));
|
|
1544
1642
|
function getMe(_x4) {
|
|
1545
1643
|
return _getMe.apply(this, arguments);
|
|
@@ -1565,7 +1663,6 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1565
1663
|
if (ev.spaceId) {
|
|
1566
1664
|
this.rooms.get(ev.spaceId)["delete"](ev.id);
|
|
1567
1665
|
}
|
|
1568
|
-
this.tracker.rooms._delete(ev.id);
|
|
1569
1666
|
}
|
|
1570
1667
|
}, {
|
|
1571
1668
|
key: "handleRoleDeleted",
|
|
@@ -1577,10 +1674,11 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1577
1674
|
}, {
|
|
1578
1675
|
key: "handleSpaceDeleted",
|
|
1579
1676
|
value: function handleSpaceDeleted(ev) {
|
|
1580
|
-
this.tracker.rooms._deleteBySpaceId(ev.id);
|
|
1581
1677
|
this.roles["delete"](ev.id);
|
|
1582
1678
|
this.members["delete"](ev.id);
|
|
1679
|
+
this.membersPromises.forget(ev.id);
|
|
1583
1680
|
this.rooms["delete"](ev.id);
|
|
1681
|
+
this.roomsPromises.forget(ev.id);
|
|
1584
1682
|
this.list["delete"](ev.id);
|
|
1585
1683
|
}
|
|
1586
1684
|
}, {
|
|
@@ -1600,11 +1698,6 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1600
1698
|
})));
|
|
1601
1699
|
(_this$list = this.list).set.apply(_this$list, spaces);
|
|
1602
1700
|
}
|
|
1603
|
-
}, {
|
|
1604
|
-
key: "handleSpaceLeft",
|
|
1605
|
-
value: function handleSpaceLeft(ev) {
|
|
1606
|
-
this.handleSpaceDeleted(ev);
|
|
1607
|
-
}
|
|
1608
1701
|
}, {
|
|
1609
1702
|
key: "handleSpaceMemberJoined",
|
|
1610
1703
|
value: function handleSpaceMemberJoined(ev) {
|
|
@@ -1733,8 +1826,9 @@ function PermissionsManager_toPrimitive(input, hint) { if (PermissionsManager_ty
|
|
|
1733
1826
|
|
|
1734
1827
|
|
|
1735
1828
|
|
|
1829
|
+
|
|
1736
1830
|
var getOvId = function getOvId(layer, layerId, target, targetId) {
|
|
1737
|
-
return layer + (layerId !== null && layerId !== void 0 ? layerId : '') + target + targetId;
|
|
1831
|
+
return layer + (layerId !== null && layerId !== void 0 ? layerId : '') + (target !== null && target !== void 0 ? target : '') + (targetId !== null && targetId !== void 0 ? targetId : '');
|
|
1738
1832
|
};
|
|
1739
1833
|
var getOvIdByObject = function getOvIdByObject(overwrites) {
|
|
1740
1834
|
return getOvId(overwrites.layer, overwrites.layerId, overwrites.target, overwrites.targetId);
|
|
@@ -1748,46 +1842,85 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1748
1842
|
_this = _super.call(this);
|
|
1749
1843
|
_this.tracker = tracker;
|
|
1750
1844
|
PermissionsManager_defineProperty(PermissionsManager_assertThisInitialized(_this), "overwrites", new IndexedCollection());
|
|
1845
|
+
PermissionsManager_defineProperty(PermissionsManager_assertThisInitialized(_this), "overwritesPromises", new PromiseRegistry());
|
|
1751
1846
|
_this.tracker.client.on('PermissionOverwrites', function (ev) {
|
|
1752
1847
|
return _this.handlePermissionOverwrites(ev);
|
|
1753
1848
|
});
|
|
1754
1849
|
_this.tracker.client.on('PermissionOverwritesChanged', function (ev) {
|
|
1755
1850
|
return _this.handlePermissionOverwrites(ev);
|
|
1756
1851
|
});
|
|
1852
|
+
_this.tracker.client.on('SpaceDeleted', function (ev) {
|
|
1853
|
+
return _this.handleSpaceDeleted(ev);
|
|
1854
|
+
});
|
|
1855
|
+
_this.tracker.client.on('SpaceLeft', function (ev) {
|
|
1856
|
+
return _this.handleSpaceDeleted(ev);
|
|
1857
|
+
});
|
|
1858
|
+
_this.tracker.client.on('RoomDeleted', function (ev) {
|
|
1859
|
+
return _this.handleRoomDeleted(ev);
|
|
1860
|
+
});
|
|
1861
|
+
_this.tracker.client.on('RoomLeft', function (ev) {
|
|
1862
|
+
return _this.handleRoomDeleted(ev);
|
|
1863
|
+
});
|
|
1864
|
+
_this.tracker.client.on('TopicDeleted', function (ev) {
|
|
1865
|
+
return _this.handleTopicDeleted(ev);
|
|
1866
|
+
});
|
|
1867
|
+
_this.tracker.client.on('RoleDeleted', function (ev) {
|
|
1868
|
+
return _this.handleRoleDeleted(ev);
|
|
1869
|
+
});
|
|
1757
1870
|
return _this;
|
|
1758
1871
|
}
|
|
1759
1872
|
PermissionsManager_createClass(PermissionsManager, [{
|
|
1760
1873
|
key: "getOverwrites",
|
|
1761
1874
|
value: function () {
|
|
1762
|
-
var _getOverwrites = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function
|
|
1763
|
-
var
|
|
1764
|
-
|
|
1875
|
+
var _getOverwrites = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee2(layer, layerId, target, targetId) {
|
|
1876
|
+
var _this2 = this;
|
|
1877
|
+
var id;
|
|
1878
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
1765
1879
|
while (1) {
|
|
1766
|
-
switch (
|
|
1880
|
+
switch (_context2.prev = _context2.next) {
|
|
1767
1881
|
case 0:
|
|
1768
1882
|
id = getOvId(layer, layerId, target, targetId);
|
|
1769
|
-
if (
|
|
1770
|
-
|
|
1771
|
-
|
|
1883
|
+
if (this.overwritesPromises.notExist(id)) {
|
|
1884
|
+
this.overwritesPromises.registerByFunction( /*#__PURE__*/PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee() {
|
|
1885
|
+
var result;
|
|
1886
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1887
|
+
while (1) {
|
|
1888
|
+
switch (_context.prev = _context.next) {
|
|
1889
|
+
case 0:
|
|
1890
|
+
_context.next = 2;
|
|
1891
|
+
return _this2.tracker.client.send('GetPermissionOverwrites', {
|
|
1892
|
+
layer: layer,
|
|
1893
|
+
layerId: layerId,
|
|
1894
|
+
target: target,
|
|
1895
|
+
targetId: targetId
|
|
1896
|
+
});
|
|
1897
|
+
case 2:
|
|
1898
|
+
result = _context.sent;
|
|
1899
|
+
if (!result.error) {
|
|
1900
|
+
_context.next = 5;
|
|
1901
|
+
break;
|
|
1902
|
+
}
|
|
1903
|
+
throw result.error;
|
|
1904
|
+
case 5:
|
|
1905
|
+
_this2.handlePermissionOverwrites(result.data);
|
|
1906
|
+
case 6:
|
|
1907
|
+
case "end":
|
|
1908
|
+
return _context.stop();
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1911
|
+
}, _callee);
|
|
1912
|
+
})), id);
|
|
1772
1913
|
}
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
return this.
|
|
1777
|
-
layer: layer,
|
|
1778
|
-
layerId: layerId,
|
|
1779
|
-
target: target,
|
|
1780
|
-
targetId: targetId
|
|
1781
|
-
});
|
|
1914
|
+
_context2.next = 4;
|
|
1915
|
+
return this.overwritesPromises.get(id);
|
|
1916
|
+
case 4:
|
|
1917
|
+
return _context2.abrupt("return", this.overwrites.get(id));
|
|
1782
1918
|
case 5:
|
|
1783
|
-
result = _context.sent;
|
|
1784
|
-
return _context.abrupt("return", result.error ? null : result.data);
|
|
1785
|
-
case 7:
|
|
1786
1919
|
case "end":
|
|
1787
|
-
return
|
|
1920
|
+
return _context2.stop();
|
|
1788
1921
|
}
|
|
1789
1922
|
}
|
|
1790
|
-
},
|
|
1923
|
+
}, _callee2, this);
|
|
1791
1924
|
}));
|
|
1792
1925
|
function getOverwrites(_x, _x2, _x3, _x4) {
|
|
1793
1926
|
return _getOverwrites.apply(this, arguments);
|
|
@@ -1802,32 +1935,32 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1802
1935
|
}, {
|
|
1803
1936
|
key: "check",
|
|
1804
1937
|
value: function () {
|
|
1805
|
-
var _check = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function
|
|
1938
|
+
var _check = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee3(permissionNames, spaceId, roomId, topicId) {
|
|
1806
1939
|
var ownedPermissions, missing;
|
|
1807
|
-
return PermissionsManager_regeneratorRuntime().wrap(function
|
|
1940
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
1808
1941
|
while (1) {
|
|
1809
|
-
switch (
|
|
1942
|
+
switch (_context3.prev = _context3.next) {
|
|
1810
1943
|
case 0:
|
|
1811
|
-
|
|
1944
|
+
_context3.next = 2;
|
|
1812
1945
|
return this.calculatePermissions(spaceId, roomId, topicId);
|
|
1813
1946
|
case 2:
|
|
1814
|
-
ownedPermissions =
|
|
1947
|
+
ownedPermissions = _context3.sent;
|
|
1815
1948
|
missing = [];
|
|
1816
1949
|
permissionNames.forEach(function (name) {
|
|
1817
1950
|
if (~ownedPermissions & Permission[name]) {
|
|
1818
1951
|
missing.push(name);
|
|
1819
1952
|
}
|
|
1820
1953
|
});
|
|
1821
|
-
return
|
|
1954
|
+
return _context3.abrupt("return", {
|
|
1822
1955
|
ok: missing.length === 0,
|
|
1823
1956
|
missing: missing
|
|
1824
1957
|
});
|
|
1825
1958
|
case 6:
|
|
1826
1959
|
case "end":
|
|
1827
|
-
return
|
|
1960
|
+
return _context3.stop();
|
|
1828
1961
|
}
|
|
1829
1962
|
}
|
|
1830
|
-
},
|
|
1963
|
+
}, _callee3, this);
|
|
1831
1964
|
}));
|
|
1832
1965
|
function check(_x5, _x6, _x7, _x8) {
|
|
1833
1966
|
return _check.apply(this, arguments);
|
|
@@ -1837,22 +1970,22 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1837
1970
|
}, {
|
|
1838
1971
|
key: "calculatePermissions",
|
|
1839
1972
|
value: function () {
|
|
1840
|
-
var _calculatePermissions = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function
|
|
1973
|
+
var _calculatePermissions = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee4(spaceId, roomId, topicId) {
|
|
1841
1974
|
var userId, userRoles, promises, roomMember;
|
|
1842
|
-
return PermissionsManager_regeneratorRuntime().wrap(function
|
|
1975
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
1843
1976
|
while (1) {
|
|
1844
|
-
switch (
|
|
1977
|
+
switch (_context4.prev = _context4.next) {
|
|
1845
1978
|
case 0:
|
|
1846
1979
|
if (!(topicId && !roomId || roomId && !spaceId)) {
|
|
1847
|
-
|
|
1980
|
+
_context4.next = 2;
|
|
1848
1981
|
break;
|
|
1849
1982
|
}
|
|
1850
1983
|
throw new Error('Corrupted arguments hierarchy');
|
|
1851
1984
|
case 2:
|
|
1852
|
-
|
|
1985
|
+
_context4.next = 4;
|
|
1853
1986
|
return this.tracker.getMe();
|
|
1854
1987
|
case 4:
|
|
1855
|
-
userId =
|
|
1988
|
+
userId = _context4.sent.id;
|
|
1856
1989
|
userRoles = [];
|
|
1857
1990
|
promises = [
|
|
1858
1991
|
// Global user overwrites
|
|
@@ -1860,31 +1993,31 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1860
1993
|
return v.overwrites;
|
|
1861
1994
|
})];
|
|
1862
1995
|
if (!spaceId) {
|
|
1863
|
-
|
|
1996
|
+
_context4.next = 18;
|
|
1864
1997
|
break;
|
|
1865
1998
|
}
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1999
|
+
_context4.t0 = userRoles.push;
|
|
2000
|
+
_context4.t1 = userRoles;
|
|
2001
|
+
_context4.t2 = PermissionsManager_toConsumableArray;
|
|
2002
|
+
_context4.next = 13;
|
|
1870
2003
|
return this.tracker.spaces.getMe(spaceId);
|
|
1871
2004
|
case 13:
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
2005
|
+
_context4.t3 = _context4.sent.roles;
|
|
2006
|
+
_context4.t4 = (0, _context4.t2)(_context4.t3);
|
|
2007
|
+
_context4.t0.apply.call(_context4.t0, _context4.t1, _context4.t4);
|
|
1875
2008
|
promises.push(this.collectRoleOverwrites(spaceId, 'Space', spaceId, userRoles));
|
|
1876
2009
|
promises.push(this.getOverwrites('Space', spaceId, 'User', userId).then(function (v) {
|
|
1877
2010
|
return v.overwrites;
|
|
1878
2011
|
}));
|
|
1879
2012
|
case 18:
|
|
1880
2013
|
if (!roomId) {
|
|
1881
|
-
|
|
2014
|
+
_context4.next = 24;
|
|
1882
2015
|
break;
|
|
1883
2016
|
}
|
|
1884
|
-
|
|
2017
|
+
_context4.next = 21;
|
|
1885
2018
|
return this.tracker.rooms.getMe(roomId);
|
|
1886
2019
|
case 21:
|
|
1887
|
-
roomMember =
|
|
2020
|
+
roomMember = _context4.sent;
|
|
1888
2021
|
if (roomMember.roles !== null) {
|
|
1889
2022
|
// Room overwrites from roles (only for space rooms)
|
|
1890
2023
|
userRoles.push.apply(userRoles, PermissionsManager_toConsumableArray(roomMember.roles));
|
|
@@ -1902,18 +2035,18 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1902
2035
|
return v.overwrites;
|
|
1903
2036
|
}));
|
|
1904
2037
|
}
|
|
1905
|
-
|
|
1906
|
-
|
|
2038
|
+
_context4.t5 = this;
|
|
2039
|
+
_context4.next = 28;
|
|
1907
2040
|
return Promise.all(promises);
|
|
1908
2041
|
case 28:
|
|
1909
|
-
|
|
1910
|
-
return
|
|
2042
|
+
_context4.t6 = _context4.sent;
|
|
2043
|
+
return _context4.abrupt("return", _context4.t5.resolveOverwritesHierarchy.call(_context4.t5, _context4.t6));
|
|
1911
2044
|
case 30:
|
|
1912
2045
|
case "end":
|
|
1913
|
-
return
|
|
2046
|
+
return _context4.stop();
|
|
1914
2047
|
}
|
|
1915
2048
|
}
|
|
1916
|
-
},
|
|
2049
|
+
}, _callee4, this);
|
|
1917
2050
|
}));
|
|
1918
2051
|
function calculatePermissions(_x9, _x10, _x11) {
|
|
1919
2052
|
return _calculatePermissions.apply(this, arguments);
|
|
@@ -1926,29 +2059,75 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1926
2059
|
this.overwrites.set([getOvIdByObject(ev), ev]);
|
|
1927
2060
|
this.emit('change');
|
|
1928
2061
|
}
|
|
2062
|
+
}, {
|
|
2063
|
+
key: "handleSpaceDeleted",
|
|
2064
|
+
value: function handleSpaceDeleted(ev) {
|
|
2065
|
+
var _this$overwritesPromi;
|
|
2066
|
+
var ids = this.deleteOverwritesByIdPrefix(getOvId('Space', ev.id));
|
|
2067
|
+
(_this$overwritesPromi = this.overwritesPromises).forget.apply(_this$overwritesPromi, PermissionsManager_toConsumableArray(ids));
|
|
2068
|
+
}
|
|
2069
|
+
}, {
|
|
2070
|
+
key: "handleRoomDeleted",
|
|
2071
|
+
value: function handleRoomDeleted(ev) {
|
|
2072
|
+
var _this$overwritesPromi2;
|
|
2073
|
+
var ids = this.deleteOverwritesByIdPrefix(getOvId('Room', ev.id));
|
|
2074
|
+
(_this$overwritesPromi2 = this.overwritesPromises).forget.apply(_this$overwritesPromi2, PermissionsManager_toConsumableArray(ids));
|
|
2075
|
+
}
|
|
2076
|
+
}, {
|
|
2077
|
+
key: "handleTopicDeleted",
|
|
2078
|
+
value: function handleTopicDeleted(ev) {
|
|
2079
|
+
var _this$overwritesPromi3;
|
|
2080
|
+
var ids = this.deleteOverwritesByIdPrefix(getOvId('Topic', ev.id));
|
|
2081
|
+
(_this$overwritesPromi3 = this.overwritesPromises).forget.apply(_this$overwritesPromi3, PermissionsManager_toConsumableArray(ids));
|
|
2082
|
+
}
|
|
2083
|
+
}, {
|
|
2084
|
+
key: "handleRoleDeleted",
|
|
2085
|
+
value: function handleRoleDeleted(ev) {
|
|
2086
|
+
var _this$overwritesPromi4;
|
|
2087
|
+
var ids = this.deleteOverwritesByIdPrefix(getOvId('Space', ev.spaceId, 'Role', ev.id));
|
|
2088
|
+
(_this$overwritesPromi4 = this.overwritesPromises).forget.apply(_this$overwritesPromi4, PermissionsManager_toConsumableArray(ids));
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
/**
|
|
2092
|
+
* @return Matched and deleted ids
|
|
2093
|
+
*/
|
|
2094
|
+
}, {
|
|
2095
|
+
key: "deleteOverwritesByIdPrefix",
|
|
2096
|
+
value: function deleteOverwritesByIdPrefix(prefix) {
|
|
2097
|
+
var _this3 = this;
|
|
2098
|
+
var ids = [];
|
|
2099
|
+
this.overwrites.items.forEach(function (overwrites) {
|
|
2100
|
+
var id = getOvIdByObject(overwrites);
|
|
2101
|
+
if (id.startsWith(prefix)) {
|
|
2102
|
+
ids.push(id);
|
|
2103
|
+
_this3.overwrites["delete"](id);
|
|
2104
|
+
}
|
|
2105
|
+
});
|
|
2106
|
+
return ids;
|
|
2107
|
+
}
|
|
1929
2108
|
}, {
|
|
1930
2109
|
key: "collectRoleOverwrites",
|
|
1931
2110
|
value: function () {
|
|
1932
|
-
var _collectRoleOverwrites = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function
|
|
1933
|
-
var
|
|
2111
|
+
var _collectRoleOverwrites = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee5(spaceId, layer, layerId, userRoles) {
|
|
2112
|
+
var _this4 = this;
|
|
1934
2113
|
var roleOverwrites;
|
|
1935
|
-
return PermissionsManager_regeneratorRuntime().wrap(function
|
|
2114
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
1936
2115
|
while (1) {
|
|
1937
|
-
switch (
|
|
2116
|
+
switch (_context5.prev = _context5.next) {
|
|
1938
2117
|
case 0:
|
|
1939
|
-
|
|
2118
|
+
_context5.next = 2;
|
|
1940
2119
|
return Promise.all(userRoles.map(function (roleId) {
|
|
1941
|
-
return
|
|
2120
|
+
return _this4.getOverwrites(layer, layerId, 'Role', roleId);
|
|
1942
2121
|
}));
|
|
1943
2122
|
case 2:
|
|
1944
|
-
roleOverwrites =
|
|
1945
|
-
return
|
|
2123
|
+
roleOverwrites = _context5.sent;
|
|
2124
|
+
return _context5.abrupt("return", this.resolveOverwritesFromRolesByOrder(spaceId, roleOverwrites));
|
|
1946
2125
|
case 4:
|
|
1947
2126
|
case "end":
|
|
1948
|
-
return
|
|
2127
|
+
return _context5.stop();
|
|
1949
2128
|
}
|
|
1950
2129
|
}
|
|
1951
|
-
},
|
|
2130
|
+
}, _callee5, this);
|
|
1952
2131
|
}));
|
|
1953
2132
|
function collectRoleOverwrites(_x12, _x13, _x14, _x15) {
|
|
1954
2133
|
return _collectRoleOverwrites.apply(this, arguments);
|
|
@@ -1958,17 +2137,17 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1958
2137
|
}, {
|
|
1959
2138
|
key: "resolveOverwritesFromRolesByOrder",
|
|
1960
2139
|
value: function () {
|
|
1961
|
-
var _resolveOverwritesFromRolesByOrder = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function
|
|
2140
|
+
var _resolveOverwritesFromRolesByOrder = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee6(spaceId, overwrites) {
|
|
1962
2141
|
var allows, denies, roles, sortedOverwrites, permissionsLength;
|
|
1963
|
-
return PermissionsManager_regeneratorRuntime().wrap(function
|
|
2142
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
1964
2143
|
while (1) {
|
|
1965
|
-
switch (
|
|
2144
|
+
switch (_context6.prev = _context6.next) {
|
|
1966
2145
|
case 0:
|
|
1967
2146
|
allows = 0, denies = 0;
|
|
1968
|
-
|
|
2147
|
+
_context6.next = 3;
|
|
1969
2148
|
return this.tracker.spaces.getRoles(spaceId);
|
|
1970
2149
|
case 3:
|
|
1971
|
-
roles =
|
|
2150
|
+
roles = _context6.sent;
|
|
1972
2151
|
sortedOverwrites = overwrites.sort(function (a, b) {
|
|
1973
2152
|
return roles.get(a.targetId).priority - roles.get(b.targetId).priority;
|
|
1974
2153
|
}); // Max length of bit word
|
|
@@ -1991,16 +2170,16 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1991
2170
|
}
|
|
1992
2171
|
}
|
|
1993
2172
|
});
|
|
1994
|
-
return
|
|
2173
|
+
return _context6.abrupt("return", {
|
|
1995
2174
|
allow: allows,
|
|
1996
2175
|
deny: denies
|
|
1997
2176
|
});
|
|
1998
2177
|
case 8:
|
|
1999
2178
|
case "end":
|
|
2000
|
-
return
|
|
2179
|
+
return _context6.stop();
|
|
2001
2180
|
}
|
|
2002
2181
|
}
|
|
2003
|
-
},
|
|
2182
|
+
}, _callee6, this);
|
|
2004
2183
|
}));
|
|
2005
2184
|
function resolveOverwritesFromRolesByOrder(_x16, _x17) {
|
|
2006
2185
|
return _resolveOverwritesFromRolesByOrder.apply(this, arguments);
|