polfan-server-js-client 0.1.92 → 0.1.94

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.
@@ -1,11 +1,5 @@
1
- import { Bye, GetSession, JoinSpace, Session, SpaceJoined, Error as ErrorType, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMemberUpdated, SpaceDeleted, SpaceMembers, SpaceRooms, NewRole, RoomDeleted, RoomJoined, RoomLeft, RoomMemberLeft, RoomMemberJoined, RoomMembers, NewRoom, NewTopic, TopicDeleted, NewMessage, GetPermissionOverwrites, GetComputedPermissions, LeaveSpace, CreateSpace, DeleteSpace, GetSpaceMembers, GetSpaceRooms, CreateRole, DeleteRole, AssignRole, DeassignRole, SetPermissionOverwrites, JoinRoom, LeaveRoom, CreateRoom, DeleteRoom, GetRoomMembers, CreateTopic, DeleteTopic, CreateMessage, Envelope, PermissionOverwrites, PermissionOverwritesUpdated, RoomMemberUpdated, UpdateRole, RoleUpdated, Ack, UserUpdated, UpdateRoom, RoomUpdated, UpdateSpace, SpaceUpdated, PermissionOverwriteTargets, GetPermissionOverwriteTargets, Owners, Ok, GetOwners, CreateOwner, RoleDeleted } from "./types/src/index";
1
+ import { Bye, GetSession, JoinSpace, Session, SpaceJoined, Error as ErrorType, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMemberUpdated, SpaceDeleted, SpaceMembers, SpaceRooms, NewRole, RoomDeleted, RoomJoined, RoomLeft, RoomMemberLeft, RoomMemberJoined, RoomMembers, NewRoom, NewTopic, TopicDeleted, NewMessage, GetPermissionOverwrites, GetComputedPermissions, LeaveSpace, CreateSpace, DeleteSpace, GetSpaceMembers, GetSpaceRooms, CreateRole, DeleteRole, AssignRole, DeassignRole, SetPermissionOverwrites, JoinRoom, LeaveRoom, CreateRoom, DeleteRoom, GetRoomMembers, CreateTopic, DeleteTopic, CreateMessage, Envelope, PermissionOverwrites, PermissionOverwritesUpdated, RoomMemberUpdated, UpdateRole, RoleUpdated, Ack, UserUpdated, UpdateRoom, RoomUpdated, UpdateSpace, SpaceUpdated, PermissionOverwriteTargets, GetPermissionOverwriteTargets, Owners, Ok, GetOwners, CreateOwner, RoleDeleted, FollowedTopicUpdated, TopicFollowed, TopicUnfollowed, FollowedTopics, FollowTopic, UnfollowTopic, GetFollowedTopics } from "./types/src/index";
2
2
  import { EventTarget } from "./EventTarget";
3
- import { TopicFollowed } from "./types/src/schemes/events/TopicFollowed";
4
- import { TopicUnfollowed } from "./types/src/schemes/events/TopicUnfollowed";
5
- import { FollowedTopics } from "./types/src/schemes/events/FollowedTopics";
6
- import { FollowTopic } from "./types/src/schemes/commands/FollowTopic";
7
- import { UnfollowTopic } from "./types/src/schemes/commands/UnfollowTopic";
8
- import { GetFollowedTopics } from "./types/src/schemes/commands/GetFollowedTopics";
9
3
  type ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];
10
4
  export declare abstract class AbstractChatClient extends EventTarget {
11
5
  protected awaitingResponse: Map<string, ArrayOfPromiseResolvers>;
@@ -63,6 +57,7 @@ export type EventsMap = {
63
57
  TopicFollowed: TopicFollowed;
64
58
  TopicUnfollowed: TopicUnfollowed;
65
59
  FollowedTopics: FollowedTopics;
60
+ FollowedTopicUpdated: FollowedTopicUpdated;
66
61
  };
67
62
  /**
68
63
  * Map of commands and their corresponding events.
@@ -97,7 +92,7 @@ export type CommandsMap = {
97
92
  CreateTopic: [CreateTopic, EventsMap['NewTopic']];
98
93
  DeleteTopic: [DeleteTopic, EventsMap['TopicDeleted']];
99
94
  CreateMessage: [CreateMessage, EventsMap['NewMessage']];
100
- Ack: [Ack, EventsMap['FollowedTopics'] | EventsMap['Ok']];
95
+ Ack: [Ack, EventsMap['FollowedTopicUpdated'] | EventsMap['Ok']];
101
96
  FollowTopic: [FollowTopic, EventsMap['TopicFollowed']];
102
97
  UnfollowTopic: [UnfollowTopic, EventsMap['TopicUnfollowed']];
103
98
  GetFollowedTopics: [GetFollowedTopics, EventsMap['FollowedTopics']];
@@ -1,5 +1,5 @@
1
1
  import { ChatStateTracker } from "./ChatStateTracker";
2
- import { ChatLocation, Message, Topic, FollowedTopic } from "../types/src";
2
+ import { ChatLocation, Message, FollowedTopic } from "../types/src";
3
3
  import { ObservableIndexedObjectCollection } from "../IndexedObjectCollection";
4
4
  export declare const getCombinedId: (location: ChatLocation) => string;
5
5
  export declare class MessagesManager {
@@ -27,19 +27,17 @@ export declare class MessagesManager {
27
27
  * @internal
28
28
  */
29
29
  _deleteByTopicIds(roomId: string, ...topicIds: string[]): void;
30
- /**
31
- * For internal use. If you want to add new topic, execute a proper command on client object.
32
- * @internal
33
- */
34
- _handleNewTopics(roomId: string, ...newTopics: Topic[]): void;
30
+ private handleNewTopics;
35
31
  private handleNewMessage;
36
- private handleFollowedTopics;
37
- private createFollowedStructuresForNewTopics;
38
- private updateLocallyFollowedTopicOnNewMessage;
32
+ private handleFollowedTopicUpdated;
39
33
  private handleTopicFollowed;
40
34
  private handleTopicUnfollowed;
41
35
  private handleRoomDeleted;
36
+ private handleRoomJoin;
42
37
  private handleRoomLeft;
38
+ private handleNewTopic;
43
39
  private handleTopicDeleted;
40
+ private handleSession;
41
+ private updateLocallyFollowedTopicOnNewMessage;
44
42
  private setFollowedTopicsArray;
45
43
  }
@@ -0,0 +1 @@
1
+ export const __esModule: boolean;
@@ -84,4 +84,5 @@ import { UnfollowTopic } from "./schemes/commands/UnfollowTopic";
84
84
  import { TopicUnfollowed } from "./schemes/events/TopicUnfollowed";
85
85
  import { TopicFollowed } from "./schemes/events/TopicFollowed";
86
86
  import { GetFollowedTopics } from "./schemes/commands/GetFollowedTopics";
87
- export { Envelope, Message, Role, Room, RoomType, RoomMember, RoomSummary, Space, SpaceMember, Topic, FollowedTopic, User, UserState, PermissionOverwritesValue, ChatLocation, MessageReference, Bye, Error, NewMessage, NewRole, NewRoom, NewTopic, TopicFollowed, TopicUnfollowed, FollowedTopics, ComputedPermissions, PermissionOverwrites, PermissionOverwritesUpdated, RoleDeleted, RoleUpdated, RoomDeleted, RoomUpdated, RoomJoined, RoomLeft, RoomMemberJoined, RoomMemberLeft, RoomMembers, RoomMemberUpdated, UserUpdated, Session, SpaceDeleted, SpaceUpdated, SpaceJoined, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMembers, SpaceMemberUpdated, SpaceRooms, TopicDeleted, PermissionOverwriteTargets, Owners, Ok, AssignRole, CreateMessage, Ack, CreateRole, CreateRoom, CreateSpace, CreateTopic, FollowTopic, UnfollowTopic, GetFollowedTopics, DeassignRole, DeleteRole, DeleteRoom, DeleteSpace, DeleteTopic, SetPermissionOverwrites, GetPermissionOverwrites, GetComputedPermissions, GetRoomMembers, GetSession, GetSpaceMembers, GetSpaceRooms, JoinRoom, JoinSpace, LeaveRoom, LeaveSpace, UpdateRole, UpdateSpace, UpdateRoom, GetPermissionOverwriteTargets, CreateOwner, DeleteOwner, GetOwners, };
87
+ import { FollowedTopicUpdated } from "./schemes/events/FollowedTopicUpdated";
88
+ export { Envelope, Message, Role, Room, RoomType, RoomMember, RoomSummary, Space, SpaceMember, Topic, FollowedTopic, User, UserState, PermissionOverwritesValue, ChatLocation, MessageReference, Bye, Error, NewMessage, NewRole, NewRoom, NewTopic, TopicFollowed, TopicUnfollowed, FollowedTopics, FollowedTopicUpdated, ComputedPermissions, PermissionOverwrites, PermissionOverwritesUpdated, RoleDeleted, RoleUpdated, RoomDeleted, RoomUpdated, RoomJoined, RoomLeft, RoomMemberJoined, RoomMemberLeft, RoomMembers, RoomMemberUpdated, UserUpdated, Session, SpaceDeleted, SpaceUpdated, SpaceJoined, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMembers, SpaceMemberUpdated, SpaceRooms, TopicDeleted, PermissionOverwriteTargets, Owners, Ok, AssignRole, CreateMessage, Ack, CreateRole, CreateRoom, CreateSpace, CreateTopic, FollowTopic, UnfollowTopic, GetFollowedTopics, DeassignRole, DeleteRole, DeleteRoom, DeleteSpace, DeleteTopic, SetPermissionOverwrites, GetPermissionOverwrites, GetComputedPermissions, GetRoomMembers, GetSession, GetSpaceMembers, GetSpaceRooms, JoinRoom, JoinSpace, LeaveRoom, LeaveSpace, UpdateRole, UpdateSpace, UpdateRoom, GetPermissionOverwriteTargets, CreateOwner, DeleteOwner, GetOwners, };
@@ -0,0 +1,4 @@
1
+ import { FollowedTopic } from "../FollowedTopic";
2
+ export interface FollowedTopicUpdated {
3
+ followedTopic: FollowedTopic;
4
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polfan-server-js-client",
3
- "version": "0.1.92",
3
+ "version": "0.1.94",
4
4
  "description": "JavaScript client library for handling communication with Polfan chat server.",
5
5
  "author": "Jarosław Żak",
6
6
  "license": "MIT",
@@ -60,15 +60,17 @@ import {
60
60
  Owners,
61
61
  Ok,
62
62
  GetOwners,
63
- CreateOwner, RoleDeleted,
63
+ CreateOwner,
64
+ RoleDeleted,
65
+ FollowedTopicUpdated,
66
+ TopicFollowed,
67
+ TopicUnfollowed,
68
+ FollowedTopics,
69
+ FollowTopic,
70
+ UnfollowTopic,
71
+ GetFollowedTopics,
64
72
  } from "./types/src/index";
65
73
  import {EventTarget} from "./EventTarget";
66
- import {TopicFollowed} from "./types/src/schemes/events/TopicFollowed";
67
- import {TopicUnfollowed} from "./types/src/schemes/events/TopicUnfollowed";
68
- import {FollowedTopics} from "./types/src/schemes/events/FollowedTopics";
69
- import {FollowTopic} from "./types/src/schemes/commands/FollowTopic";
70
- import {UnfollowTopic} from "./types/src/schemes/commands/UnfollowTopic";
71
- import {GetFollowedTopics} from "./types/src/schemes/commands/GetFollowedTopics";
72
74
 
73
75
  type ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];
74
76
 
@@ -170,6 +172,7 @@ export type EventsMap = {
170
172
  TopicFollowed: TopicFollowed,
171
173
  TopicUnfollowed: TopicUnfollowed,
172
174
  FollowedTopics: FollowedTopics,
175
+ FollowedTopicUpdated: FollowedTopicUpdated,
173
176
  };
174
177
 
175
178
  /**
@@ -209,7 +212,7 @@ export type CommandsMap = {
209
212
  CreateTopic: [CreateTopic, EventsMap['NewTopic']],
210
213
  DeleteTopic: [DeleteTopic, EventsMap['TopicDeleted']],
211
214
  CreateMessage: [CreateMessage, EventsMap['NewMessage']],
212
- Ack: [Ack, EventsMap['FollowedTopics'] | EventsMap['Ok']],
215
+ Ack: [Ack, EventsMap['FollowedTopicUpdated'] | EventsMap['Ok']],
213
216
  FollowTopic: [FollowTopic, EventsMap['TopicFollowed']],
214
217
  UnfollowTopic: [UnfollowTopic, EventsMap['TopicUnfollowed']],
215
218
  GetFollowedTopics: [GetFollowedTopics, EventsMap['FollowedTopics']],
@@ -5,12 +5,12 @@ import {
5
5
  NewMessage,
6
6
  Topic,
7
7
  FollowedTopic,
8
- FollowedTopics,
9
8
  TopicFollowed,
10
9
  TopicUnfollowed,
11
10
  RoomDeleted,
12
11
  RoomLeft,
13
- TopicDeleted
12
+ TopicDeleted,
13
+ FollowedTopicUpdated, RoomJoined, NewTopic, Session,
14
14
  } from "../types/src";
15
15
  import {
16
16
  IndexedCollection,
@@ -26,12 +26,15 @@ export class MessagesManager {
26
26
 
27
27
  public constructor(private tracker: ChatStateTracker) {
28
28
  this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));
29
- this.tracker.client.on('FollowedTopics', ev => this.handleFollowedTopics(ev));
29
+ this.tracker.client.on('FollowedTopicUpdated', ev => this.handleFollowedTopicUpdated(ev));
30
30
  this.tracker.client.on('TopicFollowed', ev => this.handleTopicFollowed(ev));
31
31
  this.tracker.client.on('TopicUnfollowed', ev => this.handleTopicUnfollowed(ev));
32
32
  this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));
33
+ this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));
33
34
  this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));
35
+ this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));
34
36
  this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));
37
+ this.tracker.client.on('Session', ev => this.handleSession(ev));
35
38
  }
36
39
 
37
40
  /**
@@ -92,11 +95,7 @@ export class MessagesManager {
92
95
  this.followedTopics.get(roomId)?.delete(...topicIds);
93
96
  }
94
97
 
95
- /**
96
- * For internal use. If you want to add new topic, execute a proper command on client object.
97
- * @internal
98
- */
99
- public _handleNewTopics(roomId: string, ...newTopics: Topic[]):void {
98
+ private handleNewTopics(roomId: string, ...newTopics: Topic[]):void {
100
99
  for (const newTopic of newTopics) {
101
100
  const newTopicCombinedId = getCombinedId({roomId, topicId: newTopic.id});
102
101
 
@@ -114,32 +113,53 @@ export class MessagesManager {
114
113
  }
115
114
  }
116
115
  }
117
-
118
- this.createFollowedStructuresForNewTopics(roomId, newTopics);
119
116
  }
120
117
 
121
118
  private handleNewMessage(ev: NewMessage): void {
122
- this.list.get(getCombinedId(ev.location)).set(ev.message);
119
+ this.list.get(getCombinedId(ev.location))?.set(ev.message);
123
120
  this.updateLocallyFollowedTopicOnNewMessage(ev);
124
121
  }
125
122
 
126
- private handleFollowedTopics(ev: FollowedTopics): void {
127
- this.setFollowedTopicsArray(ev.followedTopics);
123
+ private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {
124
+ this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);
128
125
  }
129
126
 
130
- private createFollowedStructuresForNewTopics(roomId: string, topics: Topic[]): void {
131
- const followedTopic = this.followedTopics.get(roomId);
127
+ private handleTopicFollowed(ev: TopicFollowed): void {
128
+ this.setFollowedTopicsArray([ev.followedTopic]);
129
+ }
132
130
 
133
- if (! followedTopic) {
134
- // If we don't follow ack reports for this room, skip
135
- return;
131
+ private handleTopicUnfollowed(ev: TopicUnfollowed): void {
132
+ this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);
133
+ }
134
+
135
+ private handleRoomDeleted(ev: RoomDeleted): void {
136
+ this.followedTopics.delete(ev.id);
137
+ }
138
+
139
+ private handleRoomJoin(ev: RoomJoined): void {
140
+ if (ev.room.defaultTopic) {
141
+ this.handleNewTopics(ev.room.id, ev.room.defaultTopic)
136
142
  }
143
+ }
144
+
145
+ private handleRoomLeft(ev: RoomLeft): void {
146
+ this.followedTopics.delete(ev.id);
147
+ }
148
+
149
+ private handleNewTopic(ev: NewTopic): void {
150
+ this.handleNewTopics(ev.roomId, ev.topic);
151
+ }
137
152
 
138
- const followedTopics: FollowedTopic[] = topics.map(topic => ({
139
- location: {roomId, topicId: topic.id}, lastAckMessageId: null, missed: 0, missedMoreThan: null
140
- }));
153
+ private handleTopicDeleted(ev: TopicDeleted): void {
154
+ this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);
155
+ }
141
156
 
142
- followedTopic.set(...followedTopics);
157
+ private handleSession(ev: Session): void {
158
+ ev.state.rooms.forEach(room => {
159
+ if (room.defaultTopic) {
160
+ this.handleNewTopics(room.id, room.defaultTopic);
161
+ }
162
+ });
143
163
  }
144
164
 
145
165
  private updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): void {
@@ -168,26 +188,6 @@ export class MessagesManager {
168
188
  followedTopic.set({...currentFollowedTopic, ...update});
169
189
  }
170
190
 
171
- private handleTopicFollowed(ev: TopicFollowed): void {
172
- this.setFollowedTopicsArray([ev.followedTopic]);
173
- }
174
-
175
- private handleTopicUnfollowed(ev: TopicUnfollowed): void {
176
- this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);
177
- }
178
-
179
- private handleRoomDeleted(ev: RoomDeleted): void {
180
- this.followedTopics.delete(ev.id);
181
- }
182
-
183
- private handleRoomLeft(ev: RoomLeft): void {
184
- this.followedTopics.delete(ev.id);
185
- }
186
-
187
- private handleTopicDeleted(ev: TopicDeleted): void {
188
- this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);
189
- }
190
-
191
191
  private setFollowedTopicsArray(followedTopics: FollowedTopic[]): void {
192
192
  const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};
193
193
 
@@ -184,8 +184,6 @@ export class RoomsManager {
184
184
  } else {
185
185
  this.topics.set([roomId, new ObservableIndexedObjectCollection<Topic>('id', topics)]);
186
186
  }
187
-
188
- this.messages._handleNewTopics(roomId, ...topics);
189
187
  }
190
188
 
191
189
  private handleRoomJoined(ev: RoomJoined): void {
@@ -84,4 +84,5 @@ import { UnfollowTopic } from "./schemes/commands/UnfollowTopic";
84
84
  import { TopicUnfollowed } from "./schemes/events/TopicUnfollowed";
85
85
  import { TopicFollowed } from "./schemes/events/TopicFollowed";
86
86
  import { GetFollowedTopics } from "./schemes/commands/GetFollowedTopics";
87
- export { Envelope, Message, Role, Room, RoomType, RoomMember, RoomSummary, Space, SpaceMember, Topic, FollowedTopic, User, UserState, PermissionOverwritesValue, ChatLocation, MessageReference, Bye, Error, NewMessage, NewRole, NewRoom, NewTopic, TopicFollowed, TopicUnfollowed, FollowedTopics, ComputedPermissions, PermissionOverwrites, PermissionOverwritesUpdated, RoleDeleted, RoleUpdated, RoomDeleted, RoomUpdated, RoomJoined, RoomLeft, RoomMemberJoined, RoomMemberLeft, RoomMembers, RoomMemberUpdated, UserUpdated, Session, SpaceDeleted, SpaceUpdated, SpaceJoined, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMembers, SpaceMemberUpdated, SpaceRooms, TopicDeleted, PermissionOverwriteTargets, Owners, Ok, AssignRole, CreateMessage, Ack, CreateRole, CreateRoom, CreateSpace, CreateTopic, FollowTopic, UnfollowTopic, GetFollowedTopics, DeassignRole, DeleteRole, DeleteRoom, DeleteSpace, DeleteTopic, SetPermissionOverwrites, GetPermissionOverwrites, GetComputedPermissions, GetRoomMembers, GetSession, GetSpaceMembers, GetSpaceRooms, JoinRoom, JoinSpace, LeaveRoom, LeaveSpace, UpdateRole, UpdateSpace, UpdateRoom, GetPermissionOverwriteTargets, CreateOwner, DeleteOwner, GetOwners, };
87
+ import { FollowedTopicUpdated } from "./schemes/events/FollowedTopicUpdated";
88
+ export { Envelope, Message, Role, Room, RoomType, RoomMember, RoomSummary, Space, SpaceMember, Topic, FollowedTopic, User, UserState, PermissionOverwritesValue, ChatLocation, MessageReference, Bye, Error, NewMessage, NewRole, NewRoom, NewTopic, TopicFollowed, TopicUnfollowed, FollowedTopics, FollowedTopicUpdated, ComputedPermissions, PermissionOverwrites, PermissionOverwritesUpdated, RoleDeleted, RoleUpdated, RoomDeleted, RoomUpdated, RoomJoined, RoomLeft, RoomMemberJoined, RoomMemberLeft, RoomMembers, RoomMemberUpdated, UserUpdated, Session, SpaceDeleted, SpaceUpdated, SpaceJoined, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMembers, SpaceMemberUpdated, SpaceRooms, TopicDeleted, PermissionOverwriteTargets, Owners, Ok, AssignRole, CreateMessage, Ack, CreateRole, CreateRoom, CreateSpace, CreateTopic, FollowTopic, UnfollowTopic, GetFollowedTopics, DeassignRole, DeleteRole, DeleteRoom, DeleteSpace, DeleteTopic, SetPermissionOverwrites, GetPermissionOverwrites, GetComputedPermissions, GetRoomMembers, GetSession, GetSpaceMembers, GetSpaceRooms, JoinRoom, JoinSpace, LeaveRoom, LeaveSpace, UpdateRole, UpdateSpace, UpdateRoom, GetPermissionOverwriteTargets, CreateOwner, DeleteOwner, GetOwners, };
@@ -0,0 +1,4 @@
1
+ import { FollowedTopic } from "../FollowedTopic";
2
+ export interface FollowedTopicUpdated {
3
+ followedTopic: FollowedTopic;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -84,6 +84,7 @@ import {UnfollowTopic} from "./schemes/commands/UnfollowTopic";
84
84
  import {TopicUnfollowed} from "./schemes/events/TopicUnfollowed";
85
85
  import {TopicFollowed} from "./schemes/events/TopicFollowed";
86
86
  import {GetFollowedTopics} from "./schemes/commands/GetFollowedTopics";
87
+ import {FollowedTopicUpdated} from "./schemes/events/FollowedTopicUpdated";
87
88
 
88
89
  export {
89
90
  // objects
@@ -113,6 +114,7 @@ export {
113
114
  TopicFollowed,
114
115
  TopicUnfollowed,
115
116
  FollowedTopics,
117
+ FollowedTopicUpdated,
116
118
  ComputedPermissions,
117
119
  PermissionOverwrites,
118
120
  PermissionOverwritesUpdated,
@@ -0,0 +1,5 @@
1
+ import {FollowedTopic} from "../FollowedTopic";
2
+
3
+ export interface FollowedTopicUpdated {
4
+ followedTopic: FollowedTopic;
5
+ }