polfan-server-js-client 0.1.91 → 0.1.92
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 +123 -84
- package/build/index.js.map +1 -1
- package/build/types/AbstractChatClient.d.ts +14 -4
- package/build/types/state-tracker/MessagesManager.d.ts +15 -9
- package/build/types/types/dist/schemes/FollowedTopic.d.ts +1 -0
- package/build/types/types/dist/schemes/commands/FollowTopic.d.ts +1 -0
- package/build/types/types/dist/schemes/commands/GetFollowedTopics.d.ts +1 -0
- package/build/types/types/dist/schemes/commands/UnfollowTopic.d.ts +1 -0
- package/build/types/types/dist/schemes/events/FollowedTopics.d.ts +1 -0
- package/build/types/types/dist/schemes/events/TopicFollowed.d.ts +1 -0
- package/build/types/types/dist/schemes/events/TopicUnfollowed.d.ts +1 -0
- package/build/types/types/src/index.d.ts +8 -4
- package/build/types/types/src/schemes/FollowedTopic.d.ts +7 -0
- package/build/types/types/src/schemes/commands/{GetAckReports.d.ts → FollowTopic.d.ts} +1 -1
- package/build/types/types/src/schemes/commands/GetFollowedTopics.d.ts +4 -0
- package/build/types/types/src/schemes/commands/UnfollowTopic.d.ts +4 -0
- package/build/types/types/src/schemes/events/FollowedTopics.d.ts +4 -0
- package/build/types/types/src/schemes/events/TopicFollowed.d.ts +4 -0
- package/build/types/types/src/schemes/events/TopicUnfollowed.d.ts +4 -0
- package/package.json +1 -1
- package/src/AbstractChatClient.ts +13 -5
- package/src/state-tracker/MessagesManager.ts +94 -52
- package/src/types/dist/index.d.ts +9 -4
- package/src/types/dist/schemes/FollowedTopic.d.ts +7 -0
- package/src/types/dist/schemes/FollowedTopic.js +2 -0
- package/src/types/dist/schemes/commands/CreateTopic.d.ts +2 -2
- package/src/types/dist/schemes/commands/FollowTopic.d.ts +4 -0
- package/src/types/dist/schemes/commands/FollowTopic.js +2 -0
- package/src/types/dist/schemes/commands/GetFollowedTopics.d.ts +4 -0
- package/src/types/dist/schemes/commands/GetFollowedTopics.js +2 -0
- package/src/types/dist/schemes/commands/UnfollowTopic.d.ts +4 -0
- package/src/types/dist/schemes/commands/UnfollowTopic.js +2 -0
- package/src/types/dist/schemes/events/AckReports.d.ts +2 -2
- package/src/types/dist/schemes/events/FollowedTopics.d.ts +4 -0
- package/src/types/dist/schemes/events/FollowedTopics.js +2 -0
- package/src/types/dist/schemes/events/TopicFollowed.d.ts +4 -0
- package/src/types/dist/schemes/events/TopicFollowed.js +2 -0
- package/src/types/dist/schemes/events/TopicUnfollowed.d.ts +4 -0
- package/src/types/dist/schemes/events/TopicUnfollowed.js +2 -0
- package/src/types/src/index.ts +14 -6
- package/src/types/src/schemes/FollowedTopic.ts +8 -0
- package/src/types/src/schemes/commands/{GetAckReports.ts → FollowTopic.ts} +1 -1
- package/src/types/src/schemes/commands/GetFollowedTopics.ts +5 -0
- package/src/types/src/schemes/commands/UnfollowTopic.ts +5 -0
- package/src/types/src/schemes/events/FollowedTopics.ts +5 -0
- package/src/types/src/schemes/events/TopicFollowed.ts +5 -0
- package/src/types/src/schemes/events/TopicUnfollowed.ts +5 -0
- package/build/types/types/src/schemes/AckReport.d.ts +0 -7
- package/build/types/types/src/schemes/events/AckReports.d.ts +0 -4
- package/src/types/src/schemes/AckReport.ts +0 -7
- package/src/types/src/schemes/events/AckReports.ts +0 -5
package/build/index.js
CHANGED
|
@@ -653,12 +653,27 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
653
653
|
MessagesManager_classCallCheck(this, MessagesManager);
|
|
654
654
|
this.tracker = tracker;
|
|
655
655
|
MessagesManager_defineProperty(this, "list", new IndexedCollection());
|
|
656
|
-
MessagesManager_defineProperty(this, "
|
|
656
|
+
MessagesManager_defineProperty(this, "followedTopics", new IndexedCollection());
|
|
657
657
|
this.tracker.client.on('NewMessage', function (ev) {
|
|
658
658
|
return _this.handleNewMessage(ev);
|
|
659
659
|
});
|
|
660
|
-
this.tracker.client.on('
|
|
661
|
-
return _this.
|
|
660
|
+
this.tracker.client.on('FollowedTopics', function (ev) {
|
|
661
|
+
return _this.handleFollowedTopics(ev);
|
|
662
|
+
});
|
|
663
|
+
this.tracker.client.on('TopicFollowed', function (ev) {
|
|
664
|
+
return _this.handleTopicFollowed(ev);
|
|
665
|
+
});
|
|
666
|
+
this.tracker.client.on('TopicUnfollowed', function (ev) {
|
|
667
|
+
return _this.handleTopicUnfollowed(ev);
|
|
668
|
+
});
|
|
669
|
+
this.tracker.client.on('RoomDeleted', function (ev) {
|
|
670
|
+
return _this.handleRoomDeleted(ev);
|
|
671
|
+
});
|
|
672
|
+
this.tracker.client.on('RoomLeft', function (ev) {
|
|
673
|
+
return _this.handleRoomLeft(ev);
|
|
674
|
+
});
|
|
675
|
+
this.tracker.client.on('TopicDeleted', function (ev) {
|
|
676
|
+
return _this.handleTopicDeleted(ev);
|
|
662
677
|
});
|
|
663
678
|
}
|
|
664
679
|
|
|
@@ -688,15 +703,14 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
688
703
|
}()
|
|
689
704
|
/**
|
|
690
705
|
* Cache ack reports for all joined rooms in a space and fetch them in bulk if necessary.
|
|
691
|
-
* Then you can get the reports using
|
|
692
|
-
* @see
|
|
706
|
+
* Then you can get the reports using getRoomFollowedTopics().
|
|
707
|
+
* @see getRoomFollowedTopics
|
|
693
708
|
*/
|
|
694
709
|
}, {
|
|
695
|
-
key: "
|
|
710
|
+
key: "cacheSpaceFollowedTopic",
|
|
696
711
|
value: function () {
|
|
697
|
-
var
|
|
698
|
-
var
|
|
699
|
-
var roomIds, missingRoomIds, result;
|
|
712
|
+
var _cacheSpaceFollowedTopic = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(spaceId) {
|
|
713
|
+
var result;
|
|
700
714
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
701
715
|
while (1) {
|
|
702
716
|
switch (_context2.prev = _context2.next) {
|
|
@@ -711,59 +725,41 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
711
725
|
throw new Error("You are not in space ".concat(spaceId));
|
|
712
726
|
case 4:
|
|
713
727
|
_context2.next = 6;
|
|
714
|
-
return this.tracker.
|
|
715
|
-
case 6:
|
|
716
|
-
roomIds = _context2.sent.findBy('spaceId', spaceId).map(function (room) {
|
|
717
|
-
return room.id;
|
|
718
|
-
});
|
|
719
|
-
missingRoomIds = roomIds.filter(function (roomId) {
|
|
720
|
-
return !_this2.acks.has(roomId);
|
|
721
|
-
});
|
|
722
|
-
if (!missingRoomIds.length) {
|
|
723
|
-
_context2.next = 15;
|
|
724
|
-
break;
|
|
725
|
-
}
|
|
726
|
-
_context2.next = 11;
|
|
727
|
-
return this.tracker.client.send('GetAckReports', {
|
|
728
|
+
return this.tracker.client.send('GetFollowedTopics', {
|
|
728
729
|
location: {
|
|
729
730
|
spaceId: spaceId
|
|
730
731
|
}
|
|
731
732
|
});
|
|
732
|
-
case
|
|
733
|
+
case 6:
|
|
733
734
|
result = _context2.sent;
|
|
734
735
|
if (!result.error) {
|
|
735
|
-
_context2.next =
|
|
736
|
+
_context2.next = 9;
|
|
736
737
|
break;
|
|
737
738
|
}
|
|
738
739
|
throw result.error;
|
|
739
|
-
case
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
return report.roomId === roomId;
|
|
743
|
-
});
|
|
744
|
-
_this2.acks.set([roomId, new ObservableIndexedObjectCollection('topicId', reports)]);
|
|
745
|
-
});
|
|
746
|
-
case 15:
|
|
740
|
+
case 9:
|
|
741
|
+
this.setFollowedTopicsArray(result.data.followedTopics);
|
|
742
|
+
case 10:
|
|
747
743
|
case "end":
|
|
748
744
|
return _context2.stop();
|
|
749
745
|
}
|
|
750
746
|
}
|
|
751
747
|
}, _callee2, this);
|
|
752
748
|
}));
|
|
753
|
-
function
|
|
754
|
-
return
|
|
749
|
+
function cacheSpaceFollowedTopic(_x2) {
|
|
750
|
+
return _cacheSpaceFollowedTopic.apply(this, arguments);
|
|
755
751
|
}
|
|
756
|
-
return
|
|
752
|
+
return cacheSpaceFollowedTopic;
|
|
757
753
|
}()
|
|
758
754
|
/**
|
|
759
755
|
* Get ack reports for the given room. Undefined if you are not in the room.
|
|
760
756
|
* @param roomId
|
|
761
757
|
*/
|
|
762
758
|
}, {
|
|
763
|
-
key: "
|
|
759
|
+
key: "getRoomFollowedTopics",
|
|
764
760
|
value: function () {
|
|
765
|
-
var
|
|
766
|
-
var
|
|
761
|
+
var _getRoomFollowedTopics = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(roomId) {
|
|
762
|
+
var result;
|
|
767
763
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
768
764
|
while (1) {
|
|
769
765
|
switch (_context3.prev = _context3.next) {
|
|
@@ -771,45 +767,44 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
771
767
|
_context3.next = 2;
|
|
772
768
|
return this.tracker.rooms.get();
|
|
773
769
|
case 2:
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
_context3.next = 5;
|
|
770
|
+
if (_context3.sent.has(roomId)) {
|
|
771
|
+
_context3.next = 4;
|
|
777
772
|
break;
|
|
778
773
|
}
|
|
779
774
|
return _context3.abrupt("return", undefined);
|
|
780
|
-
case
|
|
781
|
-
if (this.
|
|
782
|
-
_context3.next =
|
|
775
|
+
case 4:
|
|
776
|
+
if (this.followedTopics.has(roomId)) {
|
|
777
|
+
_context3.next = 11;
|
|
783
778
|
break;
|
|
784
779
|
}
|
|
785
|
-
_context3.next =
|
|
786
|
-
return this.tracker.client.send('
|
|
780
|
+
_context3.next = 7;
|
|
781
|
+
return this.tracker.client.send('GetFollowedTopics', {
|
|
787
782
|
location: {
|
|
788
783
|
roomId: roomId
|
|
789
784
|
}
|
|
790
785
|
});
|
|
791
|
-
case
|
|
786
|
+
case 7:
|
|
792
787
|
result = _context3.sent;
|
|
793
788
|
if (!result.error) {
|
|
794
|
-
_context3.next =
|
|
789
|
+
_context3.next = 10;
|
|
795
790
|
break;
|
|
796
791
|
}
|
|
797
792
|
throw result.error;
|
|
793
|
+
case 10:
|
|
794
|
+
this.setFollowedTopicsArray(result.data.followedTopics);
|
|
798
795
|
case 11:
|
|
799
|
-
|
|
796
|
+
return _context3.abrupt("return", this.followedTopics.get(roomId));
|
|
800
797
|
case 12:
|
|
801
|
-
return _context3.abrupt("return", this.acks.get(roomId));
|
|
802
|
-
case 13:
|
|
803
798
|
case "end":
|
|
804
799
|
return _context3.stop();
|
|
805
800
|
}
|
|
806
801
|
}
|
|
807
802
|
}, _callee3, this);
|
|
808
803
|
}));
|
|
809
|
-
function
|
|
810
|
-
return
|
|
804
|
+
function getRoomFollowedTopics(_x3) {
|
|
805
|
+
return _getRoomFollowedTopics.apply(this, arguments);
|
|
811
806
|
}
|
|
812
|
-
return
|
|
807
|
+
return getRoomFollowedTopics;
|
|
813
808
|
}()
|
|
814
809
|
/**
|
|
815
810
|
* For internal use. If you want to delete the message, execute a proper command on client object.
|
|
@@ -818,7 +813,7 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
818
813
|
}, {
|
|
819
814
|
key: "_deleteByTopicIds",
|
|
820
815
|
value: function _deleteByTopicIds(roomId) {
|
|
821
|
-
var _this$list, _this$
|
|
816
|
+
var _this$list, _this$followedTopics$;
|
|
822
817
|
for (var _len = arguments.length, topicIds = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
823
818
|
topicIds[_key - 1] = arguments[_key];
|
|
824
819
|
}
|
|
@@ -828,7 +823,7 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
828
823
|
topicId: topicId
|
|
829
824
|
});
|
|
830
825
|
})));
|
|
831
|
-
(_this$
|
|
826
|
+
(_this$followedTopics$ = this.followedTopics.get(roomId)) === null || _this$followedTopics$ === void 0 ? void 0 : _this$followedTopics$["delete"].apply(_this$followedTopics$, topicIds);
|
|
832
827
|
}
|
|
833
828
|
|
|
834
829
|
/**
|
|
@@ -865,55 +860,51 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
865
860
|
}
|
|
866
861
|
}
|
|
867
862
|
}
|
|
868
|
-
this.
|
|
863
|
+
this.createFollowedStructuresForNewTopics(roomId, newTopics);
|
|
869
864
|
}
|
|
870
865
|
}, {
|
|
871
866
|
key: "handleNewMessage",
|
|
872
867
|
value: function handleNewMessage(ev) {
|
|
873
868
|
this.list.get(getCombinedId(ev.location)).set(ev.message);
|
|
874
|
-
this.
|
|
869
|
+
this.updateLocallyFollowedTopicOnNewMessage(ev);
|
|
875
870
|
}
|
|
876
871
|
}, {
|
|
877
|
-
key: "
|
|
878
|
-
value: function
|
|
879
|
-
|
|
880
|
-
ev.reports.forEach(function (report) {
|
|
881
|
-
var ackReports = _this3.acks.get(report.roomId);
|
|
882
|
-
if (ackReports) {
|
|
883
|
-
ackReports.set(report);
|
|
884
|
-
}
|
|
885
|
-
});
|
|
872
|
+
key: "handleFollowedTopics",
|
|
873
|
+
value: function handleFollowedTopics(ev) {
|
|
874
|
+
this.setFollowedTopicsArray(ev.followedTopics);
|
|
886
875
|
}
|
|
887
876
|
}, {
|
|
888
|
-
key: "
|
|
889
|
-
value: function
|
|
890
|
-
var
|
|
891
|
-
if (!
|
|
877
|
+
key: "createFollowedStructuresForNewTopics",
|
|
878
|
+
value: function createFollowedStructuresForNewTopics(roomId, topics) {
|
|
879
|
+
var followedTopic = this.followedTopics.get(roomId);
|
|
880
|
+
if (!followedTopic) {
|
|
892
881
|
// If we don't follow ack reports for this room, skip
|
|
893
882
|
return;
|
|
894
883
|
}
|
|
895
|
-
var
|
|
884
|
+
var followedTopics = topics.map(function (topic) {
|
|
896
885
|
return {
|
|
897
|
-
|
|
898
|
-
|
|
886
|
+
location: {
|
|
887
|
+
roomId: roomId,
|
|
888
|
+
topicId: topic.id
|
|
889
|
+
},
|
|
899
890
|
lastAckMessageId: null,
|
|
900
891
|
missed: 0,
|
|
901
892
|
missedMoreThan: null
|
|
902
893
|
};
|
|
903
894
|
});
|
|
904
|
-
|
|
895
|
+
followedTopic.set.apply(followedTopic, MessagesManager_toConsumableArray(followedTopics));
|
|
905
896
|
}
|
|
906
897
|
}, {
|
|
907
|
-
key: "
|
|
908
|
-
value: function
|
|
898
|
+
key: "updateLocallyFollowedTopicOnNewMessage",
|
|
899
|
+
value: function updateLocallyFollowedTopicOnNewMessage(ev) {
|
|
909
900
|
var _this$tracker$me;
|
|
910
|
-
var
|
|
911
|
-
if (!
|
|
901
|
+
var followedTopic = this.followedTopics.get(ev.location.roomId);
|
|
902
|
+
if (!followedTopic) {
|
|
912
903
|
// If we don't follow ack reports for this room, skip
|
|
913
904
|
return;
|
|
914
905
|
}
|
|
915
906
|
var isMe = ev.message.author.id === ((_this$tracker$me = this.tracker.me) === null || _this$tracker$me === void 0 ? void 0 : _this$tracker$me.id);
|
|
916
|
-
var
|
|
907
|
+
var currentFollowedTopic = followedTopic.get(ev.location.topicId);
|
|
917
908
|
var update;
|
|
918
909
|
if (isMe) {
|
|
919
910
|
// Reset missed messages count if new message is authored by me
|
|
@@ -925,11 +916,59 @@ var MessagesManager = /*#__PURE__*/function () {
|
|
|
925
916
|
} else {
|
|
926
917
|
// ...add 1 otherwise
|
|
927
918
|
update = {
|
|
928
|
-
missed:
|
|
929
|
-
missedMoreThan:
|
|
919
|
+
missed: currentFollowedTopic.missed === null ? null : currentFollowedTopic.missed + 1,
|
|
920
|
+
missedMoreThan: currentFollowedTopic.missedMoreThan === null ? null : currentFollowedTopic.missedMoreThan
|
|
930
921
|
};
|
|
931
922
|
}
|
|
932
|
-
|
|
923
|
+
followedTopic.set(_objectSpread(_objectSpread({}, currentFollowedTopic), update));
|
|
924
|
+
}
|
|
925
|
+
}, {
|
|
926
|
+
key: "handleTopicFollowed",
|
|
927
|
+
value: function handleTopicFollowed(ev) {
|
|
928
|
+
this.setFollowedTopicsArray([ev.followedTopic]);
|
|
929
|
+
}
|
|
930
|
+
}, {
|
|
931
|
+
key: "handleTopicUnfollowed",
|
|
932
|
+
value: function handleTopicUnfollowed(ev) {
|
|
933
|
+
var _this$followedTopics$2;
|
|
934
|
+
(_this$followedTopics$2 = this.followedTopics.get(ev.location.roomId)) === null || _this$followedTopics$2 === void 0 ? void 0 : _this$followedTopics$2["delete"](ev.location.topicId);
|
|
935
|
+
}
|
|
936
|
+
}, {
|
|
937
|
+
key: "handleRoomDeleted",
|
|
938
|
+
value: function handleRoomDeleted(ev) {
|
|
939
|
+
this.followedTopics["delete"](ev.id);
|
|
940
|
+
}
|
|
941
|
+
}, {
|
|
942
|
+
key: "handleRoomLeft",
|
|
943
|
+
value: function handleRoomLeft(ev) {
|
|
944
|
+
this.followedTopics["delete"](ev.id);
|
|
945
|
+
}
|
|
946
|
+
}, {
|
|
947
|
+
key: "handleTopicDeleted",
|
|
948
|
+
value: function handleTopicDeleted(ev) {
|
|
949
|
+
var _this$followedTopics$3;
|
|
950
|
+
(_this$followedTopics$3 = this.followedTopics.get(ev.location.roomId)) === null || _this$followedTopics$3 === void 0 ? void 0 : _this$followedTopics$3["delete"](ev.location.topicId);
|
|
951
|
+
}
|
|
952
|
+
}, {
|
|
953
|
+
key: "setFollowedTopicsArray",
|
|
954
|
+
value: function setFollowedTopicsArray(followedTopics) {
|
|
955
|
+
var roomToTopics = {};
|
|
956
|
+
|
|
957
|
+
// Reassign reports to limit collection change event emit
|
|
958
|
+
followedTopics.forEach(function (followedTopic) {
|
|
959
|
+
var _followedTopic$locati, _roomToTopics$_follow;
|
|
960
|
+
(_roomToTopics$_follow = roomToTopics[_followedTopic$locati = followedTopic.location.roomId]) !== null && _roomToTopics$_follow !== void 0 ? _roomToTopics$_follow : roomToTopics[_followedTopic$locati] = [];
|
|
961
|
+
roomToTopics[followedTopic.location.roomId].push(followedTopic);
|
|
962
|
+
});
|
|
963
|
+
for (var _roomId in roomToTopics) {
|
|
964
|
+
var _this$followedTopics$4;
|
|
965
|
+
if (!this.followedTopics.has(_roomId)) {
|
|
966
|
+
this.followedTopics.set([_roomId, new ObservableIndexedObjectCollection(function (report) {
|
|
967
|
+
return report.location.topicId;
|
|
968
|
+
})]);
|
|
969
|
+
}
|
|
970
|
+
(_this$followedTopics$4 = this.followedTopics.get(_roomId)).set.apply(_this$followedTopics$4, MessagesManager_toConsumableArray(roomToTopics[_roomId]));
|
|
971
|
+
}
|
|
933
972
|
}
|
|
934
973
|
}]);
|
|
935
974
|
return MessagesManager;
|