polfan-server-js-client 0.2.32 → 0.2.34

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.
@@ -4,7 +4,7 @@
4
4
  <option name="autoReloadType" value="SELECTIVE" />
5
5
  </component>
6
6
  <component name="ChangeListManager">
7
- <list default="true" id="831dae43-0da1-47fd-a5f7-33dd5eec2992" name="Changes" comment="Fix package.json type exports" />
7
+ <list default="true" id="831dae43-0da1-47fd-a5f7-33dd5eec2992" name="Changes" comment="New message type" />
8
8
  <option name="SHOW_DIALOG" value="false" />
9
9
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
10
  <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -98,6 +98,7 @@
98
98
  <workItem from="1750982834349" duration="24000" />
99
99
  <workItem from="1751050123708" duration="983000" />
100
100
  <workItem from="1751060147554" duration="143000" />
101
+ <workItem from="1751159757238" duration="782000" />
101
102
  </task>
102
103
  <task id="LOCAL-00001" summary="Emoticons objects">
103
104
  <option name="closed" value="true" />
@@ -363,7 +364,31 @@
363
364
  <option name="project" value="LOCAL" />
364
365
  <updated>1751060289270</updated>
365
366
  </task>
366
- <option name="localTasksCounter" value="34" />
367
+ <task id="LOCAL-00034" summary="New message type">
368
+ <option name="closed" value="true" />
369
+ <created>1751159817479</created>
370
+ <option name="number" value="00034" />
371
+ <option name="presentableId" value="LOCAL-00034" />
372
+ <option name="project" value="LOCAL" />
373
+ <updated>1751159817479</updated>
374
+ </task>
375
+ <task id="LOCAL-00035" summary="New message type">
376
+ <option name="closed" value="true" />
377
+ <created>1751159850812</created>
378
+ <option name="number" value="00035" />
379
+ <option name="presentableId" value="LOCAL-00035" />
380
+ <option name="project" value="LOCAL" />
381
+ <updated>1751159850812</updated>
382
+ </task>
383
+ <task id="LOCAL-00036" summary="New message type">
384
+ <option name="closed" value="true" />
385
+ <created>1751160521070</created>
386
+ <option name="number" value="00036" />
387
+ <option name="presentableId" value="LOCAL-00036" />
388
+ <option name="project" value="LOCAL" />
389
+ <updated>1751160521070</updated>
390
+ </task>
391
+ <option name="localTasksCounter" value="37" />
367
392
  <servers />
368
393
  </component>
369
394
  <component name="TypeScriptGeneratedFilesManager">
@@ -401,6 +426,7 @@
401
426
  <MESSAGE value="Fix JoinRoom command response type" />
402
427
  <MESSAGE value="Fix package.json exports" />
403
428
  <MESSAGE value="Fix package.json type exports" />
404
- <option name="LAST_COMMIT_MESSAGE" value="Fix package.json type exports" />
429
+ <MESSAGE value="New message type" />
430
+ <option name="LAST_COMMIT_MESSAGE" value="New message type" />
405
431
  </component>
406
432
  </project>
@@ -867,8 +867,9 @@ class MessagesManager {
867
867
  updateLocallyFollowedTopicOnNewMessage(ev) {
868
868
  const roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);
869
869
  const followedTopic = roomFollowedTopics?.get(ev.message.location.topicId);
870
- if (!roomFollowedTopics || !followedTopic) {
871
- // Skip if we don't follow this room or targeted topic
870
+ const ephemeralMessageTypes = ['System'];
871
+ if (!roomFollowedTopics || !followedTopic || ephemeralMessageTypes.includes(ev.message.type)) {
872
+ // Skip if we don't follow this room or targeted topic or message is ephemeral
872
873
  return;
873
874
  }
874
875
  const isMe = ev.message.author.user.id === this.tracker.me?.id;
@@ -1859,9 +1860,11 @@ function UsersManager_toPropertyKey(arg) { var key = UsersManager_toPrimitive(ar
1859
1860
  function UsersManager_toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
1860
1861
 
1861
1862
 
1863
+
1862
1864
  class UsersManager {
1863
1865
  constructor(tracker) {
1864
1866
  this.tracker = tracker;
1867
+ UsersManager_defineProperty(this, "onlineStatus", new EventTarget());
1865
1868
  UsersManager_defineProperty(this, "users", new ObservableIndexedObjectCollection('id'));
1866
1869
  // RoomMemberUpdated & SpaceMemberUpdated events are not contains user object
1867
1870
  tracker.client.on('UserUpdated', event => this.handleUsers([event.user]));
@@ -1881,14 +1884,20 @@ class UsersManager {
1881
1884
  return this.users;
1882
1885
  }
1883
1886
  handleMembers(members) {
1884
- this.users.set(...members.map(extractUserFromMember));
1885
- }
1886
- handleUsers(users) {
1887
- this.users.set(...users);
1887
+ this.handleUsers(members.map(extractUserFromMember));
1888
1888
  }
1889
1889
  handleSession(session) {
1890
1890
  this.users.deleteAll();
1891
- this.users.set(session.user);
1891
+ this.handleUsers([session.user]);
1892
+ }
1893
+ handleUsers(users) {
1894
+ users.forEach(newUser => {
1895
+ const oldUser = this.users.get(newUser.id);
1896
+ if (oldUser && oldUser.online !== newUser.online) {
1897
+ this.onlineStatus.emit('changed', newUser);
1898
+ }
1899
+ });
1900
+ this.users.set(...users);
1892
1901
  }
1893
1902
  }
1894
1903
  ;// CONCATENATED MODULE: ./src/state-tracker/ChatStateTracker.ts