polfan-server-js-client 0.2.111 → 0.3.1
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/.idea/workspace.xml +44 -27
- package/build/index.cjs.js +80 -52
- package/build/index.cjs.js.map +1 -1
- package/build/index.js +62 -62
- package/build/index.umd.js +1 -1
- package/build/index.umd.js.map +1 -1
- package/build/types/AbstractChatClient.d.ts +9 -2
- package/build/types/Permissions.d.ts +4 -0
- package/build/types/state-tracker/RoomsManager.d.ts +1 -1
- package/build/types/state-tracker/SpacesManager.d.ts +6 -0
- package/build/types/types/src/index.d.ts +9 -2
- package/build/types/types/src/schemes/Message.d.ts +1 -1
- package/build/types/types/src/schemes/RoomSummary.d.ts +1 -0
- package/build/types/types/src/schemes/UserData.d.ts +4 -0
- package/build/types/types/src/schemes/commands/GetInvited.d.ts +3 -0
- package/build/types/types/src/schemes/commands/GetUserData.d.ts +2 -0
- package/build/types/types/src/schemes/commands/Invite.d.ts +5 -0
- package/build/types/types/src/schemes/commands/JoinRoom.d.ts +10 -0
- package/build/types/types/src/schemes/commands/SetUserData.d.ts +4 -0
- package/build/types/types/src/schemes/commands/Uninvite.d.ts +5 -0
- package/build/types/types/src/schemes/events/Invited.d.ts +10 -0
- package/build/types/types/src/schemes/events/RoomMembersJoined.d.ts +9 -0
- package/build/types/types/src/schemes/events/RoomSummaryUpdated.d.ts +2 -1
- package/package.json +1 -1
- package/src/AbstractChatClient.ts +16 -2
- package/src/Permissions.ts +1 -0
- package/src/state-tracker/RoomsManager.ts +4 -4
- package/src/state-tracker/SpacesManager.ts +10 -0
- package/src/state-tracker/UsersManager.ts +1 -1
- package/src/types/src/index.ts +17 -2
- package/src/types/src/schemes/Message.ts +1 -1
- package/src/types/src/schemes/RoomSummary.ts +2 -1
- package/src/types/src/schemes/UserData.ts +5 -0
- package/src/types/src/schemes/commands/GetInvited.ts +3 -0
- package/src/types/src/schemes/commands/GetUserData.ts +3 -0
- package/src/types/src/schemes/commands/Invite.ts +5 -0
- package/src/types/src/schemes/commands/JoinRoom.ts +12 -0
- package/src/types/src/schemes/commands/SetUserData.ts +5 -0
- package/src/types/src/schemes/commands/Uninvite.ts +5 -0
- package/src/types/src/schemes/events/Invited.ts +13 -0
- package/src/types/src/schemes/events/RoomMembersJoined.ts +11 -0
- package/src/types/src/schemes/events/RoomSummaryUpdated.ts +3 -2
- package/src/types/src/schemes/events/RoomMemberJoined.ts +0 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bye, GetSession, JoinSpace, Session, SpaceJoined, Error as ErrorType, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMemberUpdated, SpaceDeleted, SpaceMembers, SpaceRooms, NewRole, RoomDeleted, RoomJoined, RoomLeft, RoomMemberLeft,
|
|
1
|
+
import { Bye, GetSession, JoinSpace, Session, SpaceJoined, Error as ErrorType, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMemberUpdated, SpaceDeleted, SpaceMembers, SpaceRooms, NewRole, RoomDeleted, RoomJoined, RoomLeft, RoomMemberLeft, RoomMembersJoined, 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, FollowedTopics, FollowTopic, UpdateFollowedTopic, GetFollowedTopics, Messages, GetMessages, Topics, GetTopics, TopicUpdated, UpdateTopic, GetDiscoverableSpaces, DiscoverableSpaces, CreateEmoticon, DeleteEmoticon, GetEmoticons, Emoticons, EmoticonDeleted, NewEmoticon, Bans, GetBans, Ban, Unban, Kick, ClientData, GetClientData, SetClientData, GetRoomSummary, GetSpaceSummary, RoomSummaryEvent, SpaceSummaryEvent, UpdateSpaceMember, Relationships, RelationshipDeleted, NewRelationship, DeleteRelationship, CreateRelationship, RoomSummaryUpdated, Pong, Ping, RedactMessages, MessagesRedacted, ReportAbuse, UpdateRoomMember, GetRelationships, GetUserInfo, UserInfo, SetSessionData, SessionData, GetSessionData, SetUserData, UserData, GetUserData, UnfollowTopic, TopicUnfollowed, Invite, Uninvite, GetInvited, Invited } from "./types/src";
|
|
2
2
|
import { EventTarget } from "./EventTarget";
|
|
3
3
|
type ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];
|
|
4
4
|
type ExtraEventMap = Record<string, any>;
|
|
@@ -46,6 +46,7 @@ export type EventsMap = {
|
|
|
46
46
|
Bans: Bans;
|
|
47
47
|
ClientData: ClientData;
|
|
48
48
|
SessionData: SessionData;
|
|
49
|
+
UserData: UserData;
|
|
49
50
|
NewRelationship: NewRelationship;
|
|
50
51
|
RelationshipDeleted: RelationshipDeleted;
|
|
51
52
|
Relationships: Relationships;
|
|
@@ -67,7 +68,7 @@ export type EventsMap = {
|
|
|
67
68
|
SpaceSummaryEvent: SpaceSummaryEvent;
|
|
68
69
|
RoomJoined: RoomJoined;
|
|
69
70
|
RoomLeft: RoomLeft;
|
|
70
|
-
|
|
71
|
+
RoomMembersJoined: RoomMembersJoined;
|
|
71
72
|
RoomMemberLeft: RoomMemberLeft;
|
|
72
73
|
RoomMemberUpdated: RoomMemberUpdated;
|
|
73
74
|
RoomMembers: RoomMembers;
|
|
@@ -76,6 +77,7 @@ export type EventsMap = {
|
|
|
76
77
|
RoomUpdated: RoomUpdated;
|
|
77
78
|
RoomSummaryEvent: RoomSummaryEvent;
|
|
78
79
|
RoomSummaryUpdated: RoomSummaryUpdated;
|
|
80
|
+
Invited: Invited;
|
|
79
81
|
NewTopic: NewTopic;
|
|
80
82
|
TopicDeleted: TopicDeleted;
|
|
81
83
|
NewMessage: NewMessage;
|
|
@@ -118,6 +120,8 @@ export type CommandsMap = {
|
|
|
118
120
|
GetUserInfo: CommandDefinition<GetUserInfo, EventsMap['UserInfo']>;
|
|
119
121
|
GetSessionData: CommandDefinition<GetSessionData, EventsMap['SessionData']>;
|
|
120
122
|
SetSessionData: CommandDefinition<SetSessionData, EventsMap['Ok']>;
|
|
123
|
+
GetUserData: CommandDefinition<GetUserData, EventsMap['UserData']>;
|
|
124
|
+
SetUserData: CommandDefinition<SetUserData, EventsMap['Ok']>;
|
|
121
125
|
GetDiscoverableSpaces: CommandDefinition<GetDiscoverableSpaces, EventsMap['DiscoverableSpaces']>;
|
|
122
126
|
JoinSpace: CommandDefinition<JoinSpace, EventsMap['SpaceJoined']>;
|
|
123
127
|
LeaveSpace: CommandDefinition<LeaveSpace, EventsMap['SpaceLeft']>;
|
|
@@ -141,6 +145,9 @@ export type CommandsMap = {
|
|
|
141
145
|
GetRoomMembers: CommandDefinition<GetRoomMembers, EventsMap['RoomMembers']>;
|
|
142
146
|
GetRoomSummary: CommandDefinition<GetRoomSummary, EventsMap['RoomSummaryEvent']>;
|
|
143
147
|
UpdateRoomMember: CommandDefinition<UpdateRoomMember, EventsMap['RoomMemberUpdated']>;
|
|
148
|
+
Invite: CommandDefinition<Invite, EventsMap['Invited']>;
|
|
149
|
+
Uninvite: CommandDefinition<Uninvite, EventsMap['Invited']>;
|
|
150
|
+
GetInvited: CommandDefinition<GetInvited, EventsMap['Invited']>;
|
|
144
151
|
CreateTopic: CommandDefinition<CreateTopic, EventsMap['NewTopic']>;
|
|
145
152
|
DeleteTopic: CommandDefinition<DeleteTopic, EventsMap['TopicDeleted']>;
|
|
146
153
|
CreateMessage: CommandDefinition<CreateMessage, EventsMap['NewMessage']>;
|
|
@@ -86,6 +86,10 @@ export declare class Permissions {
|
|
|
86
86
|
value: number;
|
|
87
87
|
maxLayer: Layer;
|
|
88
88
|
};
|
|
89
|
+
AddMembers: {
|
|
90
|
+
value: number;
|
|
91
|
+
maxLayer: Layer;
|
|
92
|
+
};
|
|
89
93
|
};
|
|
90
94
|
static getNames(): (keyof typeof this.list)[];
|
|
91
95
|
static getByName(name: keyof typeof this.list): PermissionDefinition | undefined;
|
|
@@ -51,7 +51,7 @@ export declare class RoomsManager {
|
|
|
51
51
|
private handleTopicUpdated;
|
|
52
52
|
private addJoinedRooms;
|
|
53
53
|
private handleRoomLeft;
|
|
54
|
-
private
|
|
54
|
+
private handleRoomMembersJoined;
|
|
55
55
|
private handleRoomMemberLeft;
|
|
56
56
|
private handleRoomMembers;
|
|
57
57
|
private handleSession;
|
|
@@ -24,6 +24,12 @@ export declare class SpacesManager {
|
|
|
24
24
|
* Get collection of the all available rooms inside given space.
|
|
25
25
|
*/
|
|
26
26
|
getRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined>;
|
|
27
|
+
/**
|
|
28
|
+
* Drop the cached room listing of the space and fetch it again from the server.
|
|
29
|
+
* Room visibility depends on things this client is not notified about (invitations,
|
|
30
|
+
* permission changes), so the listing needs a way to be pulled anew on demand.
|
|
31
|
+
*/
|
|
32
|
+
refreshRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined>;
|
|
27
33
|
/**
|
|
28
34
|
* Get collection of space members.
|
|
29
35
|
*/
|
|
@@ -26,7 +26,7 @@ import { NewRole } from "./schemes/events/NewRole";
|
|
|
26
26
|
import { RoleDeleted } from "./schemes/events/RoleDeleted";
|
|
27
27
|
import { RoomJoined } from "./schemes/events/RoomJoined";
|
|
28
28
|
import { RoomLeft } from "./schemes/events/RoomLeft";
|
|
29
|
-
import {
|
|
29
|
+
import { RoomMembersJoined } from "./schemes/events/RoomMembersJoined";
|
|
30
30
|
import { RoomMemberLeft } from "./schemes/events/RoomMemberLeft";
|
|
31
31
|
import { RoomMembers } from "./schemes/events/RoomMembers";
|
|
32
32
|
import { RoomMemberUpdated } from "./schemes/events/RoomMemberUpdated";
|
|
@@ -136,6 +136,13 @@ import { UserInformation } from "./schemes/UserInformation";
|
|
|
136
136
|
import { SetSessionData, SessionPush } from "./schemes/commands/SetSessionData";
|
|
137
137
|
import { SessionData } from "./schemes/SessionData";
|
|
138
138
|
import { GetSessionData } from "./schemes/commands/GetSessionData";
|
|
139
|
+
import { UserData, PrivateMessagePolicy } from "./schemes/UserData";
|
|
140
|
+
import { SetUserData } from "./schemes/commands/SetUserData";
|
|
141
|
+
import { GetUserData } from "./schemes/commands/GetUserData";
|
|
139
142
|
import { UnfollowTopic } from "./schemes/commands/UnfollowTopic";
|
|
143
|
+
import { Invite } from "./schemes/commands/Invite";
|
|
144
|
+
import { Uninvite } from "./schemes/commands/Uninvite";
|
|
145
|
+
import { GetInvited } from "./schemes/commands/GetInvited";
|
|
146
|
+
import { Invited } from "./schemes/events/Invited";
|
|
140
147
|
import { TopicUnfollowed } from "./schemes/events/TopicUnfollowed";
|
|
141
|
-
export { Envelope, Message, MessageType, MessageAuthor, Role, Room, RoomType, RoomStream, RoomStreamType, RoomHistory, RoomHistoryMode, RoomMember, RoomSummary, RoomSummaryExtras, Space, SpaceMember, Topic, FollowedTopic, NotificationLevel, User, UserState, PermissionOverwritesValue, ChatLocation, SpaceSummary, SpaceDiscoverable, Emoticon, PermissionOverwritesTarget, BanObject, LeaveReason, UserRelationship, UserRelationshipType, CreateTopicInitialMessage, UserInformation, SessionPush, SessionData, Bye, Error, Messages, NewMessage, NewRole, NewRoom, NewTopic, TopicFollowed, TopicUnfollowed, FollowedTopics, FollowedTopicUpdated, ComputedPermissions, PermissionOverwrites, PermissionOverwritesUpdated, RoleDeleted, RoleUpdated, RoomDeleted, RoomUpdated, RoomJoined, RoomLeft,
|
|
148
|
+
export { Envelope, Message, MessageType, MessageAuthor, Role, Room, RoomType, RoomStream, RoomStreamType, RoomHistory, RoomHistoryMode, RoomMember, RoomSummary, RoomSummaryExtras, Space, SpaceMember, Topic, FollowedTopic, NotificationLevel, User, UserState, PermissionOverwritesValue, ChatLocation, SpaceSummary, SpaceDiscoverable, Emoticon, PermissionOverwritesTarget, BanObject, LeaveReason, UserRelationship, UserRelationshipType, CreateTopicInitialMessage, UserInformation, SessionPush, SessionData, UserData, PrivateMessagePolicy, Bye, Error, Messages, NewMessage, NewRole, NewRoom, NewTopic, TopicFollowed, TopicUnfollowed, FollowedTopics, FollowedTopicUpdated, ComputedPermissions, PermissionOverwrites, PermissionOverwritesUpdated, RoleDeleted, RoleUpdated, RoomDeleted, RoomUpdated, RoomJoined, RoomLeft, RoomMembersJoined, RoomMemberLeft, RoomMembers, RoomMemberUpdated, UserUpdated, Session, SpaceDeleted, SpaceUpdated, SpaceJoined, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMembers, SpaceMemberUpdated, SpaceRooms, TopicDeleted, TopicUpdated, PermissionOverwriteTargets, Owners, Ok, DiscoverableSpaces, Emoticons, EmoticonDeleted, NewEmoticon, Bans, ClientData, SpaceSummaryEvent, RoomSummaryEvent, NewRelationship, RelationshipDeleted, Relationships, RoomSummaryUpdated, Pong, MessagesRedacted, UserInfo, Invited, AssignRole, GetMessages, CreateMessage, Ack, CreateRole, CreateRoom, CreateSpace, CreateTopic, FollowTopic, UnfollowTopic, UpdateFollowedTopic, GetFollowedTopics, DeassignRole, DeleteRole, DeleteRoom, DeleteSpace, DeleteTopic, SetPermissionOverwrites, GetPermissionOverwrites, GetComputedPermissions, GetRoomMembers, GetSession, GetSpaceMembers, GetSpaceRooms, JoinRoom, JoinSpace, LeaveRoom, LeaveSpace, UpdateRole, UpdateSpace, UpdateRoom, UpdateTopic, GetPermissionOverwriteTargets, CreateOwner, DeleteOwner, GetOwners, Topics, GetTopics, GetDiscoverableSpaces, GetEmoticons, CreateEmoticon, DeleteEmoticon, Ban, Unban, GetBans, Kick, GetClientData, SetClientData, GetSpaceSummary, GetRoomSummary, UpdateSpaceMember, CreateRelationship, DeleteRelationship, GetRelationships, UpdateRoomMember, Ping, ReportAbuse, RedactMessages, GetUserInfo, SetSessionData, GetSessionData, SetUserData, GetUserData, Invite, Uninvite, GetInvited, };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { User } from "./User";
|
|
2
2
|
import { ChatLocation } from "./ChatLocation";
|
|
3
|
-
export type MessageType = 'Text' | 'RoomJoin' | 'RoomLeave' | 'SpaceJoin' | 'SpaceLeave' | 'TopicChange' | 'CustomNickChange' | 'Ephemeral';
|
|
3
|
+
export type MessageType = 'Text' | 'RoomJoin' | 'RoomMemberAdd' | 'RoomLeave' | 'SpaceJoin' | 'SpaceLeave' | 'TopicChange' | 'CustomNickChange' | 'Ephemeral';
|
|
4
4
|
export interface MessageAuthor {
|
|
5
5
|
user: User;
|
|
6
6
|
customNick?: string;
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
export interface JoinRoom {
|
|
2
2
|
id: string;
|
|
3
|
+
/**
|
|
4
|
+
* Ids of the users to add to the room instead of joining it yourself.
|
|
5
|
+
* Requires the `AddMembers` permission.
|
|
6
|
+
*/
|
|
7
|
+
userIds?: string[];
|
|
8
|
+
/**
|
|
9
|
+
* Ids of the roles whose members should be added to the room. The space default
|
|
10
|
+
* ("everyone") role is not supported. Requires the `AddMembers` permission.
|
|
11
|
+
*/
|
|
12
|
+
roleIds?: string[];
|
|
3
13
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ChatLocation } from "../ChatLocation";
|
|
2
|
+
import { Role } from "../Role";
|
|
3
|
+
export interface Invited {
|
|
4
|
+
location: ChatLocation;
|
|
5
|
+
/**
|
|
6
|
+
* Ids of the invited users. Join them with the space member collection to display them.
|
|
7
|
+
*/
|
|
8
|
+
userIds: string[];
|
|
9
|
+
roles: Role[];
|
|
10
|
+
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { RoomSummary } from "../RoomSummary";
|
|
2
2
|
export interface RoomSummaryUpdated {
|
|
3
3
|
/**
|
|
4
|
-
* Partial summary
|
|
4
|
+
* Partial summary - the client merges it into the cached one.
|
|
5
|
+
* Private rooms do not emit this event at all.
|
|
5
6
|
*/
|
|
6
7
|
summary: RoomSummary;
|
|
7
8
|
}
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
RoomJoined,
|
|
18
18
|
RoomLeft,
|
|
19
19
|
RoomMemberLeft,
|
|
20
|
-
|
|
20
|
+
RoomMembersJoined,
|
|
21
21
|
RoomMembers,
|
|
22
22
|
NewRoom,
|
|
23
23
|
NewTopic,
|
|
@@ -113,8 +113,15 @@ import {
|
|
|
113
113
|
SetSessionData,
|
|
114
114
|
SessionData,
|
|
115
115
|
GetSessionData,
|
|
116
|
+
SetUserData,
|
|
117
|
+
UserData,
|
|
118
|
+
GetUserData,
|
|
116
119
|
UnfollowTopic,
|
|
117
120
|
TopicUnfollowed,
|
|
121
|
+
Invite,
|
|
122
|
+
Uninvite,
|
|
123
|
+
GetInvited,
|
|
124
|
+
Invited,
|
|
118
125
|
} from "./types/src";
|
|
119
126
|
import {EventTarget} from "./EventTarget";
|
|
120
127
|
|
|
@@ -209,6 +216,7 @@ export type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap
|
|
|
209
216
|
Bans: Bans,
|
|
210
217
|
ClientData: ClientData,
|
|
211
218
|
SessionData: SessionData,
|
|
219
|
+
UserData: UserData,
|
|
212
220
|
NewRelationship: NewRelationship,
|
|
213
221
|
RelationshipDeleted: RelationshipDeleted,
|
|
214
222
|
Relationships: Relationships,
|
|
@@ -232,7 +240,7 @@ export type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap
|
|
|
232
240
|
// Room events
|
|
233
241
|
RoomJoined: RoomJoined,
|
|
234
242
|
RoomLeft: RoomLeft,
|
|
235
|
-
|
|
243
|
+
RoomMembersJoined: RoomMembersJoined,
|
|
236
244
|
RoomMemberLeft: RoomMemberLeft,
|
|
237
245
|
RoomMemberUpdated: RoomMemberUpdated,
|
|
238
246
|
RoomMembers: RoomMembers,
|
|
@@ -241,6 +249,7 @@ export type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap
|
|
|
241
249
|
RoomUpdated: RoomUpdated,
|
|
242
250
|
RoomSummaryEvent: RoomSummaryEvent,
|
|
243
251
|
RoomSummaryUpdated: RoomSummaryUpdated,
|
|
252
|
+
Invited: Invited,
|
|
244
253
|
// Topic events
|
|
245
254
|
NewTopic: NewTopic,
|
|
246
255
|
TopicDeleted: TopicDeleted,
|
|
@@ -286,6 +295,8 @@ export type CommandsMap = {
|
|
|
286
295
|
GetUserInfo: CommandDefinition<GetUserInfo, EventsMap['UserInfo']>,
|
|
287
296
|
GetSessionData: CommandDefinition<GetSessionData, EventsMap['SessionData']>,
|
|
288
297
|
SetSessionData: CommandDefinition<SetSessionData, EventsMap['Ok']>,
|
|
298
|
+
GetUserData: CommandDefinition<GetUserData, EventsMap['UserData']>,
|
|
299
|
+
SetUserData: CommandDefinition<SetUserData, EventsMap['Ok']>,
|
|
289
300
|
// Space commands
|
|
290
301
|
GetDiscoverableSpaces: CommandDefinition<GetDiscoverableSpaces, EventsMap['DiscoverableSpaces']>,
|
|
291
302
|
JoinSpace: CommandDefinition<JoinSpace, EventsMap['SpaceJoined']>,
|
|
@@ -311,6 +322,9 @@ export type CommandsMap = {
|
|
|
311
322
|
GetRoomMembers: CommandDefinition<GetRoomMembers, EventsMap['RoomMembers']>,
|
|
312
323
|
GetRoomSummary: CommandDefinition<GetRoomSummary, EventsMap['RoomSummaryEvent']>,
|
|
313
324
|
UpdateRoomMember: CommandDefinition<UpdateRoomMember, EventsMap['RoomMemberUpdated']>,
|
|
325
|
+
Invite: CommandDefinition<Invite, EventsMap['Invited']>,
|
|
326
|
+
Uninvite: CommandDefinition<Uninvite, EventsMap['Invited']>,
|
|
327
|
+
GetInvited: CommandDefinition<GetInvited, EventsMap['Invited']>,
|
|
314
328
|
// Topic commands
|
|
315
329
|
CreateTopic: CommandDefinition<CreateTopic, EventsMap['NewTopic']>,
|
|
316
330
|
DeleteTopic: CommandDefinition<DeleteTopic, EventsMap['TopicDeleted']>,
|
package/src/Permissions.ts
CHANGED
|
@@ -32,6 +32,7 @@ export class Permissions {
|
|
|
32
32
|
ChangeOwnNick: {value: 1 << 17, maxLayer: Layer.Space},
|
|
33
33
|
ChangeOwnColor: {value: 1 << 18, maxLayer: Layer.Room},
|
|
34
34
|
RedactMessages: {value: 1 << 19, maxLayer: Layer.Topic},
|
|
35
|
+
AddMembers: {value: 1 << 20, maxLayer: Layer.Space},
|
|
35
36
|
};
|
|
36
37
|
|
|
37
38
|
public static getNames(): (keyof typeof this.list)[] {
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
NewTopic,
|
|
7
7
|
Room, RoomDeleted,
|
|
8
8
|
RoomJoined, RoomLeft,
|
|
9
|
-
RoomMember,
|
|
9
|
+
RoomMember, RoomMemberLeft, RoomMembers, RoomMembersJoined,
|
|
10
10
|
RoomMemberUpdated, RoomUpdated, Session, SpaceDeleted, SpaceLeft, SpaceMemberLeft,
|
|
11
11
|
SpaceMemberUpdated,
|
|
12
12
|
Topic,
|
|
@@ -42,7 +42,7 @@ export class RoomsManager {
|
|
|
42
42
|
this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));
|
|
43
43
|
this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));
|
|
44
44
|
this.tracker.client.on('TopicUpdated', ev => this.handleTopicUpdated(ev));
|
|
45
|
-
this.tracker.client.on('
|
|
45
|
+
this.tracker.client.on('RoomMembersJoined', ev => this.handleRoomMembersJoined(ev));
|
|
46
46
|
this.tracker.client.on('RoomMemberLeft', ev => this.handleRoomMemberLeft(ev));
|
|
47
47
|
this.tracker.client.on('RoomMembers', ev => this.handleRoomMembers(ev));
|
|
48
48
|
this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));
|
|
@@ -282,9 +282,9 @@ export class RoomsManager {
|
|
|
282
282
|
this.deleteRoom(ev.id);
|
|
283
283
|
}
|
|
284
284
|
|
|
285
|
-
private
|
|
285
|
+
private handleRoomMembersJoined(ev: RoomMembersJoined): void {
|
|
286
286
|
if (this.members.has(ev.roomId)) {
|
|
287
|
-
this.members.get(ev.roomId).set(ev.
|
|
287
|
+
this.members.get(ev.roomId).set(...ev.members);
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
290
|
|
|
@@ -92,6 +92,16 @@ export class SpacesManager {
|
|
|
92
92
|
return this.rooms.get(spaceId);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
+
/**
|
|
96
|
+
* Drop the cached room listing of the space and fetch it again from the server.
|
|
97
|
+
* Room visibility depends on things this client is not notified about (invitations,
|
|
98
|
+
* permission changes), so the listing needs a way to be pulled anew on demand.
|
|
99
|
+
*/
|
|
100
|
+
public async refreshRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined> {
|
|
101
|
+
this.roomsPromises.forget(spaceId);
|
|
102
|
+
return this.getRooms(spaceId);
|
|
103
|
+
}
|
|
104
|
+
|
|
95
105
|
/**
|
|
96
106
|
* Get collection of space members.
|
|
97
107
|
*/
|
|
@@ -12,7 +12,7 @@ export class UsersManager {
|
|
|
12
12
|
public constructor(private tracker: ChatStateTracker) {
|
|
13
13
|
// RoomMemberUpdated & SpaceMemberUpdated events are not contains user object
|
|
14
14
|
tracker.client.on('UserUpdated', event => this.handleUsers([event.user]));
|
|
15
|
-
tracker.client.on('
|
|
15
|
+
tracker.client.on('RoomMembersJoined', event => this.handleMembers(event.members));
|
|
16
16
|
tracker.client.on('SpaceMemberJoined', event => this.handleMembers([event.member]));
|
|
17
17
|
tracker.client.on('SpaceMembers', event => this.handleMembers(event.members));
|
|
18
18
|
tracker.client.on('RoomMembers', event => this.handleMembers(event.members));
|
package/src/types/src/index.ts
CHANGED
|
@@ -26,7 +26,7 @@ import {NewRole} from "./schemes/events/NewRole";
|
|
|
26
26
|
import {RoleDeleted} from "./schemes/events/RoleDeleted";
|
|
27
27
|
import {RoomJoined} from "./schemes/events/RoomJoined";
|
|
28
28
|
import {RoomLeft} from "./schemes/events/RoomLeft";
|
|
29
|
-
import {
|
|
29
|
+
import {RoomMembersJoined} from "./schemes/events/RoomMembersJoined";
|
|
30
30
|
import {RoomMemberLeft} from "./schemes/events/RoomMemberLeft";
|
|
31
31
|
import {RoomMembers} from "./schemes/events/RoomMembers";
|
|
32
32
|
import {RoomMemberUpdated} from "./schemes/events/RoomMemberUpdated";
|
|
@@ -136,7 +136,14 @@ import {UserInformation} from "./schemes/UserInformation";
|
|
|
136
136
|
import {SetSessionData, SessionPush} from "./schemes/commands/SetSessionData";
|
|
137
137
|
import {SessionData} from "./schemes/SessionData";
|
|
138
138
|
import {GetSessionData} from "./schemes/commands/GetSessionData";
|
|
139
|
+
import {UserData, PrivateMessagePolicy} from "./schemes/UserData";
|
|
140
|
+
import {SetUserData} from "./schemes/commands/SetUserData";
|
|
141
|
+
import {GetUserData} from "./schemes/commands/GetUserData";
|
|
139
142
|
import {UnfollowTopic} from "./schemes/commands/UnfollowTopic";
|
|
143
|
+
import {Invite} from "./schemes/commands/Invite";
|
|
144
|
+
import {Uninvite} from "./schemes/commands/Uninvite";
|
|
145
|
+
import {GetInvited} from "./schemes/commands/GetInvited";
|
|
146
|
+
import {Invited} from "./schemes/events/Invited";
|
|
140
147
|
import {TopicUnfollowed} from "./schemes/events/TopicUnfollowed";
|
|
141
148
|
|
|
142
149
|
export {
|
|
@@ -176,6 +183,8 @@ export {
|
|
|
176
183
|
UserInformation,
|
|
177
184
|
SessionPush,
|
|
178
185
|
SessionData,
|
|
186
|
+
UserData,
|
|
187
|
+
PrivateMessagePolicy,
|
|
179
188
|
// events
|
|
180
189
|
Bye,
|
|
181
190
|
Error,
|
|
@@ -197,7 +206,7 @@ export {
|
|
|
197
206
|
RoomUpdated,
|
|
198
207
|
RoomJoined,
|
|
199
208
|
RoomLeft,
|
|
200
|
-
|
|
209
|
+
RoomMembersJoined,
|
|
201
210
|
RoomMemberLeft,
|
|
202
211
|
RoomMembers,
|
|
203
212
|
RoomMemberUpdated,
|
|
@@ -232,6 +241,7 @@ export {
|
|
|
232
241
|
Pong,
|
|
233
242
|
MessagesRedacted,
|
|
234
243
|
UserInfo,
|
|
244
|
+
Invited,
|
|
235
245
|
// commands
|
|
236
246
|
AssignRole,
|
|
237
247
|
GetMessages,
|
|
@@ -294,4 +304,9 @@ export {
|
|
|
294
304
|
GetUserInfo,
|
|
295
305
|
SetSessionData,
|
|
296
306
|
GetSessionData,
|
|
307
|
+
SetUserData,
|
|
308
|
+
GetUserData,
|
|
309
|
+
Invite,
|
|
310
|
+
Uninvite,
|
|
311
|
+
GetInvited,
|
|
297
312
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {User} from "./User";
|
|
2
2
|
import {ChatLocation} from "./ChatLocation";
|
|
3
3
|
|
|
4
|
-
export type MessageType = 'Text'|'RoomJoin'|'RoomLeave'|'SpaceJoin'|'SpaceLeave'|'TopicChange'|'CustomNickChange'|'Ephemeral';
|
|
4
|
+
export type MessageType = 'Text'|'RoomJoin'|'RoomMemberAdd'|'RoomLeave'|'SpaceJoin'|'SpaceLeave'|'TopicChange'|'CustomNickChange'|'Ephemeral';
|
|
5
5
|
|
|
6
6
|
export interface MessageAuthor {
|
|
7
7
|
user: User;
|
|
@@ -2,6 +2,7 @@ import {RoomType} from "./Room";
|
|
|
2
2
|
|
|
3
3
|
export interface RoomSummaryExtras {
|
|
4
4
|
isPrivate: boolean;
|
|
5
|
+
isInvitationOnly: boolean;
|
|
5
6
|
}
|
|
6
7
|
|
|
7
8
|
export interface RoomSummary {
|
|
@@ -12,4 +13,4 @@ export interface RoomSummary {
|
|
|
12
13
|
memberCount: number;
|
|
13
14
|
type: RoomType;
|
|
14
15
|
extras?: RoomSummaryExtras;
|
|
15
|
-
}
|
|
16
|
+
}
|
|
@@ -1,3 +1,15 @@
|
|
|
1
1
|
export interface JoinRoom {
|
|
2
2
|
id: string;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Ids of the users to add to the room instead of joining it yourself.
|
|
6
|
+
* Requires the `AddMembers` permission.
|
|
7
|
+
*/
|
|
8
|
+
userIds?: string[];
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Ids of the roles whose members should be added to the room. The space default
|
|
12
|
+
* ("everyone") role is not supported. Requires the `AddMembers` permission.
|
|
13
|
+
*/
|
|
14
|
+
roleIds?: string[];
|
|
3
15
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {ChatLocation} from "../ChatLocation";
|
|
2
|
+
import {Role} from "../Role";
|
|
3
|
+
|
|
4
|
+
export interface Invited {
|
|
5
|
+
location: ChatLocation;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Ids of the invited users. Join them with the space member collection to display them.
|
|
9
|
+
*/
|
|
10
|
+
userIds: string[];
|
|
11
|
+
|
|
12
|
+
roles: Role[];
|
|
13
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {RoomMember} from "../RoomMember";
|
|
2
|
+
|
|
3
|
+
export interface RoomMembersJoined {
|
|
4
|
+
roomId: string;
|
|
5
|
+
members: RoomMember[];
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Id of the user who added the members to the room, null when they joined on their own.
|
|
9
|
+
*/
|
|
10
|
+
addedByUserId: string | null;
|
|
11
|
+
}
|
|
@@ -2,7 +2,8 @@ import {RoomSummary} from "../RoomSummary";
|
|
|
2
2
|
|
|
3
3
|
export interface RoomSummaryUpdated {
|
|
4
4
|
/**
|
|
5
|
-
* Partial summary
|
|
5
|
+
* Partial summary - the client merges it into the cached one.
|
|
6
|
+
* Private rooms do not emit this event at all.
|
|
6
7
|
*/
|
|
7
8
|
summary: RoomSummary;
|
|
8
|
-
}
|
|
9
|
+
}
|