polfan-server-js-client 0.1.99913 → 0.1.99914
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 +12 -16
- package/build/index.js.map +1 -1
- package/build/types/state-tracker/TopicHistoryWindow.d.ts +2 -2
- package/build/types/types/src/index.d.ts +1 -2
- package/build/types/types/src/schemes/Message.d.ts +3 -7
- package/build/types/types/src/schemes/Topic.d.ts +1 -2
- package/build/types/types/src/schemes/commands/CreateTopic.d.ts +1 -5
- package/build/types/types/src/schemes/events/NewMessage.d.ts +0 -2
- package/package.json +1 -1
- package/src/state-tracker/MessagesManager.ts +2 -2
- package/src/state-tracker/RoomMessagesHistory.ts +3 -7
- package/src/state-tracker/RoomsManager.ts +2 -2
- package/src/state-tracker/TopicHistoryWindow.ts +6 -6
- package/src/types/src/index.ts +0 -2
- package/src/types/src/schemes/Message.ts +3 -7
- package/src/types/src/schemes/Topic.ts +1 -2
- package/src/types/src/schemes/commands/CreateTopic.ts +1 -6
- package/src/types/src/schemes/events/NewMessage.ts +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Message,
|
|
1
|
+
import { Message, Topic } from "../types/src";
|
|
2
2
|
import { ChatStateTracker } from "./ChatStateTracker";
|
|
3
3
|
import { ObservableIndexedObjectCollection } from "../IndexedObjectCollection";
|
|
4
4
|
export declare enum WindowState {
|
|
@@ -63,7 +63,7 @@ export declare class TopicHistoryWindow extends TraversableRemoteCollection<Mess
|
|
|
63
63
|
* For internal use.
|
|
64
64
|
* @internal
|
|
65
65
|
*/
|
|
66
|
-
|
|
66
|
+
_updateMessageReference(refTopic: Topic): void;
|
|
67
67
|
private handleNewMessage;
|
|
68
68
|
private handleSession;
|
|
69
69
|
protected fetchItemsAfter(): Promise<Message[] | null>;
|
|
@@ -75,7 +75,6 @@ import { DeleteOwner } from "./schemes/commands/DeleteOwner";
|
|
|
75
75
|
import { GetOwners } from "./schemes/commands/GetOwners";
|
|
76
76
|
import { Owners } from "./schemes/events/Owners";
|
|
77
77
|
import { Ok } from "./schemes/events/Ok";
|
|
78
|
-
import { MessageReference } from "./schemes/commands/CreateTopic";
|
|
79
78
|
import { FollowTopic } from "./schemes/commands/FollowTopic";
|
|
80
79
|
import { FollowedTopics } from "./schemes/events/FollowedTopics";
|
|
81
80
|
import { FollowedTopic } from "./schemes/FollowedTopic";
|
|
@@ -88,4 +87,4 @@ import { GetMessages } from "./schemes/commands/GetMessages";
|
|
|
88
87
|
import { Messages } from "./schemes/events/Messages";
|
|
89
88
|
import { Topics } from "./schemes/events/Topics";
|
|
90
89
|
import { GetTopics } from "./schemes/commands/GetTopics";
|
|
91
|
-
export { Envelope, Message, MessageType, Role, Room, RoomFlag, RoomType, RoomMember, RoomSummary, Space, SpaceMember, Topic, FollowedTopic, User, UserState, PermissionOverwritesValue, ChatLocation,
|
|
90
|
+
export { Envelope, Message, MessageType, Role, Room, RoomFlag, RoomType, RoomMember, RoomSummary, Space, SpaceMember, Topic, FollowedTopic, User, UserState, PermissionOverwritesValue, ChatLocation, Bye, Error, Messages, 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, GetMessages, 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, Topics, GetTopics, };
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { User } from "./User";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
RoomJoin = "RoomJoin",
|
|
5
|
-
RoomLeave = "RoomLeave",
|
|
6
|
-
SpaceJoin = "SpaceJoin",
|
|
7
|
-
SpaceLeave = "SpaceLeave"
|
|
8
|
-
}
|
|
2
|
+
import { ChatLocation } from "./ChatLocation";
|
|
3
|
+
export type MessageType = 'Text' | 'RoomJoin' | 'RoomLeave' | 'SpaceJoin' | 'SpaceLeave';
|
|
9
4
|
export interface Message {
|
|
10
5
|
id: string;
|
|
6
|
+
location: ChatLocation;
|
|
11
7
|
createdAt: string;
|
|
12
8
|
type: MessageType;
|
|
13
9
|
user: User;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { MessageReference } from "./commands/CreateTopic";
|
|
2
1
|
import { Message } from "./Message";
|
|
3
2
|
export interface Topic {
|
|
4
3
|
id: string;
|
|
5
4
|
name: string;
|
|
6
5
|
messageCount: number;
|
|
7
|
-
|
|
6
|
+
refMessage?: Message;
|
|
8
7
|
lastMessage?: Message;
|
|
9
8
|
}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { ChatLocation } from "../ChatLocation";
|
|
2
2
|
import { CreateMessage } from "./CreateMessage";
|
|
3
|
-
export interface MessageReference {
|
|
4
|
-
topicId: string;
|
|
5
|
-
messageId: string;
|
|
6
|
-
}
|
|
7
3
|
export interface CreateTopic {
|
|
8
4
|
location: ChatLocation;
|
|
9
5
|
name: string;
|
|
10
|
-
|
|
6
|
+
refMessageId?: string;
|
|
11
7
|
initialMessage?: Omit<CreateMessage, 'location'>;
|
|
12
8
|
}
|
package/package.json
CHANGED
|
@@ -207,8 +207,8 @@ export class MessagesManager {
|
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
private updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): void {
|
|
210
|
-
const roomFollowedTopics = this.followedTopics.get(ev.location.roomId);
|
|
211
|
-
const followedTopic = roomFollowedTopics?.get(ev.location.topicId);
|
|
210
|
+
const roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);
|
|
211
|
+
const followedTopic = roomFollowedTopics?.get(ev.message.location.topicId);
|
|
212
212
|
|
|
213
213
|
if (! roomFollowedTopics || ! followedTopic) {
|
|
214
214
|
// Skip if we don't follow this room or targeted topic
|
|
@@ -66,13 +66,9 @@ export class RoomMessagesHistory {
|
|
|
66
66
|
this.historyWindows.set([topic.id, new TopicHistoryWindow(this.room.id, topic.id, this.tracker)]);
|
|
67
67
|
|
|
68
68
|
// If new topic refers to some message from this room, update other structures
|
|
69
|
-
if (topic.
|
|
70
|
-
const refHistoryWindow = this.historyWindows.get(topic.
|
|
71
|
-
|
|
72
|
-
refHistoryWindow._setTopicReference({
|
|
73
|
-
topicId: topic.id, // Reverse the reference
|
|
74
|
-
messageId: topic.messageRef.messageId,
|
|
75
|
-
});
|
|
69
|
+
if (topic.refMessage) {
|
|
70
|
+
const refHistoryWindow = this.historyWindows.get(topic.refMessage.location.topicId);
|
|
71
|
+
refHistoryWindow?._updateMessageReference(topic);
|
|
76
72
|
}
|
|
77
73
|
}
|
|
78
74
|
}
|
|
@@ -302,8 +302,8 @@ export class RoomsManager {
|
|
|
302
302
|
}
|
|
303
303
|
|
|
304
304
|
private handleNewMessage(ev: NewMessage): void {
|
|
305
|
-
const topics = this.topics.get(ev.location.roomId);
|
|
306
|
-
const topic = topics?.get(ev.location.topicId);
|
|
305
|
+
const topics = this.topics.get(ev.message.location.roomId);
|
|
306
|
+
const topic = topics?.get(ev.message.location.topicId);
|
|
307
307
|
|
|
308
308
|
if (topic) {
|
|
309
309
|
topics.set({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {Message,
|
|
1
|
+
import {Message, NewMessage, Session, Topic} from "../types/src";
|
|
2
2
|
import {ChatStateTracker} from "./ChatStateTracker";
|
|
3
3
|
import {ObservableIndexedObjectCollection} from "../IndexedObjectCollection";
|
|
4
4
|
|
|
@@ -201,20 +201,20 @@ export class TopicHistoryWindow extends TraversableRemoteCollection<Message> {
|
|
|
201
201
|
* For internal use.
|
|
202
202
|
* @internal
|
|
203
203
|
*/
|
|
204
|
-
public
|
|
205
|
-
const refMessage = this.get(
|
|
204
|
+
public _updateMessageReference(refTopic: Topic): void {
|
|
205
|
+
const refMessage = this.get(refTopic.refMessage.id);
|
|
206
206
|
|
|
207
207
|
if (refMessage) {
|
|
208
208
|
// Update referenced topic ID in message
|
|
209
|
-
this.set({...refMessage, topicRef:
|
|
209
|
+
this.set({...refMessage, topicRef: refTopic.id});
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
private async handleNewMessage(ev: NewMessage): Promise<void> {
|
|
214
214
|
if (
|
|
215
215
|
[WindowState.LATEST, WindowState.LIVE].includes(this.state)
|
|
216
|
-
&& ev.location.roomId === this.roomId
|
|
217
|
-
&& ev.location.topicId === this.topicId
|
|
216
|
+
&& ev.message.location.roomId === this.roomId
|
|
217
|
+
&& ev.message.location.topicId === this.topicId
|
|
218
218
|
) {
|
|
219
219
|
this.addItems([ev.message], 'tail');
|
|
220
220
|
}
|
package/src/types/src/index.ts
CHANGED
|
@@ -75,7 +75,6 @@ import { DeleteOwner } from "./schemes/commands/DeleteOwner";
|
|
|
75
75
|
import { GetOwners } from "./schemes/commands/GetOwners";
|
|
76
76
|
import { Owners } from "./schemes/events/Owners";
|
|
77
77
|
import { Ok } from "./schemes/events/Ok";
|
|
78
|
-
import {MessageReference} from "./schemes/commands/CreateTopic";
|
|
79
78
|
import {FollowTopic} from "./schemes/commands/FollowTopic";
|
|
80
79
|
import {FollowedTopics} from "./schemes/events/FollowedTopics";
|
|
81
80
|
import {FollowedTopic} from "./schemes/FollowedTopic";
|
|
@@ -108,7 +107,6 @@ export {
|
|
|
108
107
|
UserState,
|
|
109
108
|
PermissionOverwritesValue,
|
|
110
109
|
ChatLocation,
|
|
111
|
-
MessageReference,
|
|
112
110
|
// events
|
|
113
111
|
Bye,
|
|
114
112
|
Error,
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import {User} from "./User";
|
|
2
|
+
import {ChatLocation} from "./ChatLocation";
|
|
2
3
|
|
|
3
|
-
export
|
|
4
|
-
Text = 'Text',
|
|
5
|
-
RoomJoin = 'RoomJoin',
|
|
6
|
-
RoomLeave = 'RoomLeave',
|
|
7
|
-
SpaceJoin = 'SpaceJoin',
|
|
8
|
-
SpaceLeave = 'SpaceLeave',
|
|
9
|
-
}
|
|
4
|
+
export type MessageType = 'Text'|'RoomJoin'|'RoomLeave'|'SpaceJoin'|'SpaceLeave';
|
|
10
5
|
|
|
11
6
|
export interface Message {
|
|
12
7
|
id: string;
|
|
8
|
+
location: ChatLocation;
|
|
13
9
|
createdAt: string;
|
|
14
10
|
type: MessageType;
|
|
15
11
|
user: User;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {MessageReference} from "./commands/CreateTopic";
|
|
2
1
|
import {Message} from "./Message";
|
|
3
2
|
|
|
4
3
|
export interface Topic {
|
|
5
4
|
id: string;
|
|
6
5
|
name: string;
|
|
7
6
|
messageCount: number;
|
|
8
|
-
|
|
7
|
+
refMessage?: Message;
|
|
9
8
|
lastMessage?: Message;
|
|
10
9
|
}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import {ChatLocation} from "../ChatLocation";
|
|
2
2
|
import {CreateMessage} from "./CreateMessage";
|
|
3
3
|
|
|
4
|
-
export interface MessageReference {
|
|
5
|
-
topicId: string;
|
|
6
|
-
messageId: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
4
|
export interface CreateTopic {
|
|
10
5
|
location: ChatLocation;
|
|
11
6
|
name: string;
|
|
12
|
-
|
|
7
|
+
refMessageId?: string;
|
|
13
8
|
initialMessage?: Omit<CreateMessage, 'location'>;
|
|
14
9
|
}
|