polfan-server-js-client 0.3.0 → 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 +27 -17
- 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 +6 -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 +6 -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/commands/GetInvited.d.ts +3 -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/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 +10 -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 +10 -2
- package/src/types/src/schemes/Message.ts +1 -1
- package/src/types/src/schemes/RoomSummary.ts +2 -1
- package/src/types/src/schemes/commands/GetInvited.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/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>;
|
|
@@ -68,7 +68,7 @@ export type EventsMap = {
|
|
|
68
68
|
SpaceSummaryEvent: SpaceSummaryEvent;
|
|
69
69
|
RoomJoined: RoomJoined;
|
|
70
70
|
RoomLeft: RoomLeft;
|
|
71
|
-
|
|
71
|
+
RoomMembersJoined: RoomMembersJoined;
|
|
72
72
|
RoomMemberLeft: RoomMemberLeft;
|
|
73
73
|
RoomMemberUpdated: RoomMemberUpdated;
|
|
74
74
|
RoomMembers: RoomMembers;
|
|
@@ -77,6 +77,7 @@ export type EventsMap = {
|
|
|
77
77
|
RoomUpdated: RoomUpdated;
|
|
78
78
|
RoomSummaryEvent: RoomSummaryEvent;
|
|
79
79
|
RoomSummaryUpdated: RoomSummaryUpdated;
|
|
80
|
+
Invited: Invited;
|
|
80
81
|
NewTopic: NewTopic;
|
|
81
82
|
TopicDeleted: TopicDeleted;
|
|
82
83
|
NewMessage: NewMessage;
|
|
@@ -144,6 +145,9 @@ export type CommandsMap = {
|
|
|
144
145
|
GetRoomMembers: CommandDefinition<GetRoomMembers, EventsMap['RoomMembers']>;
|
|
145
146
|
GetRoomSummary: CommandDefinition<GetRoomSummary, EventsMap['RoomSummaryEvent']>;
|
|
146
147
|
UpdateRoomMember: CommandDefinition<UpdateRoomMember, EventsMap['RoomMemberUpdated']>;
|
|
148
|
+
Invite: CommandDefinition<Invite, EventsMap['Invited']>;
|
|
149
|
+
Uninvite: CommandDefinition<Uninvite, EventsMap['Invited']>;
|
|
150
|
+
GetInvited: CommandDefinition<GetInvited, EventsMap['Invited']>;
|
|
147
151
|
CreateTopic: CommandDefinition<CreateTopic, EventsMap['NewTopic']>;
|
|
148
152
|
DeleteTopic: CommandDefinition<DeleteTopic, EventsMap['TopicDeleted']>;
|
|
149
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";
|
|
@@ -140,5 +140,9 @@ import { UserData, PrivateMessagePolicy } from "./schemes/UserData";
|
|
|
140
140
|
import { SetUserData } from "./schemes/commands/SetUserData";
|
|
141
141
|
import { GetUserData } from "./schemes/commands/GetUserData";
|
|
142
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";
|
|
143
147
|
import { TopicUnfollowed } from "./schemes/events/TopicUnfollowed";
|
|
144
|
-
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,
|
|
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,
|
|
@@ -118,6 +118,10 @@ import {
|
|
|
118
118
|
GetUserData,
|
|
119
119
|
UnfollowTopic,
|
|
120
120
|
TopicUnfollowed,
|
|
121
|
+
Invite,
|
|
122
|
+
Uninvite,
|
|
123
|
+
GetInvited,
|
|
124
|
+
Invited,
|
|
121
125
|
} from "./types/src";
|
|
122
126
|
import {EventTarget} from "./EventTarget";
|
|
123
127
|
|
|
@@ -236,7 +240,7 @@ export type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap
|
|
|
236
240
|
// Room events
|
|
237
241
|
RoomJoined: RoomJoined,
|
|
238
242
|
RoomLeft: RoomLeft,
|
|
239
|
-
|
|
243
|
+
RoomMembersJoined: RoomMembersJoined,
|
|
240
244
|
RoomMemberLeft: RoomMemberLeft,
|
|
241
245
|
RoomMemberUpdated: RoomMemberUpdated,
|
|
242
246
|
RoomMembers: RoomMembers,
|
|
@@ -245,6 +249,7 @@ export type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap
|
|
|
245
249
|
RoomUpdated: RoomUpdated,
|
|
246
250
|
RoomSummaryEvent: RoomSummaryEvent,
|
|
247
251
|
RoomSummaryUpdated: RoomSummaryUpdated,
|
|
252
|
+
Invited: Invited,
|
|
248
253
|
// Topic events
|
|
249
254
|
NewTopic: NewTopic,
|
|
250
255
|
TopicDeleted: TopicDeleted,
|
|
@@ -317,6 +322,9 @@ export type CommandsMap = {
|
|
|
317
322
|
GetRoomMembers: CommandDefinition<GetRoomMembers, EventsMap['RoomMembers']>,
|
|
318
323
|
GetRoomSummary: CommandDefinition<GetRoomSummary, EventsMap['RoomSummaryEvent']>,
|
|
319
324
|
UpdateRoomMember: CommandDefinition<UpdateRoomMember, EventsMap['RoomMemberUpdated']>,
|
|
325
|
+
Invite: CommandDefinition<Invite, EventsMap['Invited']>,
|
|
326
|
+
Uninvite: CommandDefinition<Uninvite, EventsMap['Invited']>,
|
|
327
|
+
GetInvited: CommandDefinition<GetInvited, EventsMap['Invited']>,
|
|
320
328
|
// Topic commands
|
|
321
329
|
CreateTopic: CommandDefinition<CreateTopic, EventsMap['NewTopic']>,
|
|
322
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";
|
|
@@ -140,6 +140,10 @@ import {UserData, PrivateMessagePolicy} from "./schemes/UserData";
|
|
|
140
140
|
import {SetUserData} from "./schemes/commands/SetUserData";
|
|
141
141
|
import {GetUserData} from "./schemes/commands/GetUserData";
|
|
142
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";
|
|
143
147
|
import {TopicUnfollowed} from "./schemes/events/TopicUnfollowed";
|
|
144
148
|
|
|
145
149
|
export {
|
|
@@ -202,7 +206,7 @@ export {
|
|
|
202
206
|
RoomUpdated,
|
|
203
207
|
RoomJoined,
|
|
204
208
|
RoomLeft,
|
|
205
|
-
|
|
209
|
+
RoomMembersJoined,
|
|
206
210
|
RoomMemberLeft,
|
|
207
211
|
RoomMembers,
|
|
208
212
|
RoomMemberUpdated,
|
|
@@ -237,6 +241,7 @@ export {
|
|
|
237
241
|
Pong,
|
|
238
242
|
MessagesRedacted,
|
|
239
243
|
UserInfo,
|
|
244
|
+
Invited,
|
|
240
245
|
// commands
|
|
241
246
|
AssignRole,
|
|
242
247
|
GetMessages,
|
|
@@ -301,4 +306,7 @@ export {
|
|
|
301
306
|
GetSessionData,
|
|
302
307
|
SetUserData,
|
|
303
308
|
GetUserData,
|
|
309
|
+
Invite,
|
|
310
|
+
Uninvite,
|
|
311
|
+
GetInvited,
|
|
304
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
|
+
}
|