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.
@@ -1,4 +1,4 @@
1
- import { Message, MessageReference } from "../types/src";
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
- _setTopicReference(ref: MessageReference): void;
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, MessageReference, 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, };
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
- export declare enum MessageType {
3
- Text = "Text",
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
- messageRef?: MessageReference;
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
- messageRef?: MessageReference;
6
+ refMessageId?: string;
11
7
  initialMessage?: Omit<CreateMessage, 'location'>;
12
8
  }
@@ -1,6 +1,4 @@
1
1
  import { Message } from "../Message";
2
- import { ChatLocation } from "../ChatLocation";
3
2
  export interface NewMessage {
4
- location: ChatLocation;
5
3
  message: Message;
6
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polfan-server-js-client",
3
- "version": "0.1.99913",
3
+ "version": "0.1.99914",
4
4
  "description": "JavaScript client library for handling communication with Polfan chat server.",
5
5
  "author": "Jarosław Żak",
6
6
  "license": "MIT",
@@ -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.messageRef) {
70
- const refHistoryWindow = this.historyWindows.get(topic.messageRef.topicId);
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, MessageReference, NewMessage, Session, Topic} from "../types/src";
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 _setTopicReference(ref: MessageReference): void {
205
- const refMessage = this.get(ref.messageId);
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: ref.topicId});
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
  }
@@ -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 enum MessageType {
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
- messageRef?: MessageReference;
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
- messageRef?: MessageReference;
7
+ refMessageId?: string;
13
8
  initialMessage?: Omit<CreateMessage, 'location'>;
14
9
  }
@@ -1,7 +1,5 @@
1
1
  import {Message} from "../Message";
2
- import {ChatLocation} from "../ChatLocation";
3
2
 
4
3
  export interface NewMessage {
5
- location: ChatLocation;
6
4
  message: Message;
7
5
  }