polfan-server-js-client 0.1.2 → 0.1.6

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.
Files changed (207) hide show
  1. package/.gitmodules +3 -0
  2. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  3. package/.idea/polfan-server-js-client.iml +3 -1
  4. package/.idea/vcs.xml +1 -1
  5. package/README.md +17 -17
  6. package/build/index.js +1968 -462
  7. package/build/index.js.map +1 -1
  8. package/build/types/AbstractChatClient.d.ts +26 -9
  9. package/build/types/IndexedObjectCollection.d.ts +3 -3
  10. package/build/types/Permissions.d.ts +65 -0
  11. package/build/types/WebSocketChatClient.d.ts +1 -1
  12. package/build/types/index.d.ts +4 -1
  13. package/build/types/state-tracker/AsyncUtils.d.ts +14 -0
  14. package/build/types/state-tracker/ChatStateTracker.d.ts +26 -0
  15. package/build/types/state-tracker/MessagesManager.d.ts +39 -0
  16. package/build/types/state-tracker/PermissionsManager.d.ts +41 -0
  17. package/build/types/state-tracker/RoomsManager.d.ts +49 -0
  18. package/build/types/state-tracker/SpacesManager.d.ts +52 -0
  19. package/build/types/state-tracker/functions.d.ts +2 -0
  20. package/build/types/types/src/index.d.ts +82 -0
  21. package/build/types/types/src/schemes/AckReport.d.ts +7 -0
  22. package/build/types/types/src/schemes/ChatLocation.d.ts +5 -0
  23. package/build/types/types/src/schemes/Envelope.d.ts +5 -0
  24. package/build/types/types/src/schemes/Message.d.ts +7 -0
  25. package/build/types/types/src/schemes/PermissionOverwritesValue.d.ts +4 -0
  26. package/build/types/types/src/schemes/Role.d.ts +6 -0
  27. package/build/types/types/src/schemes/Room.d.ts +10 -0
  28. package/build/types/types/src/schemes/RoomMember.d.ts +7 -0
  29. package/build/types/types/src/schemes/RoomSummary.d.ts +5 -0
  30. package/build/types/types/src/schemes/Space.d.ts +6 -0
  31. package/build/types/types/src/schemes/SpaceMember.d.ts +5 -0
  32. package/build/types/types/src/schemes/Topic.d.ts +5 -0
  33. package/build/types/types/src/schemes/User.d.ts +8 -0
  34. package/build/types/types/src/schemes/UserState.d.ts +6 -0
  35. package/build/types/types/src/schemes/commands/Ack.d.ts +5 -0
  36. package/build/types/types/src/schemes/commands/AssignRole.d.ts +6 -0
  37. package/build/types/types/src/schemes/commands/CreateMessage.d.ts +5 -0
  38. package/build/types/types/src/schemes/commands/CreateOwner.d.ts +5 -0
  39. package/build/types/types/src/schemes/commands/CreateRole.d.ts +5 -0
  40. package/build/types/types/src/schemes/commands/CreateRoom.d.ts +7 -0
  41. package/build/types/types/src/schemes/commands/CreateSpace.d.ts +3 -0
  42. package/build/types/types/src/schemes/commands/CreateTopic.d.ts +12 -0
  43. package/build/types/types/src/schemes/commands/DeassignRole.d.ts +6 -0
  44. package/build/types/types/src/schemes/commands/DeleteOwner.d.ts +5 -0
  45. package/build/types/types/src/schemes/commands/DeleteRole.d.ts +4 -0
  46. package/build/types/types/src/schemes/commands/DeleteRoom.d.ts +3 -0
  47. package/build/types/types/src/schemes/commands/DeleteSpace.d.ts +3 -0
  48. package/build/types/types/src/schemes/commands/DeleteTopic.d.ts +4 -0
  49. package/build/types/types/src/schemes/commands/GetAckReports.d.ts +4 -0
  50. package/build/types/types/src/schemes/commands/GetComputedPermissions.d.ts +4 -0
  51. package/build/types/types/src/schemes/commands/GetOwners.d.ts +4 -0
  52. package/build/types/types/src/schemes/commands/GetPermissionOverwriteTargets.d.ts +4 -0
  53. package/build/types/types/src/schemes/commands/GetPermissionOverwrites.d.ts +6 -0
  54. package/build/types/types/src/schemes/commands/GetRoomMembers.d.ts +3 -0
  55. package/build/types/types/src/schemes/commands/GetSession.d.ts +2 -0
  56. package/build/types/types/src/schemes/commands/GetSpaceMembers.d.ts +3 -0
  57. package/build/types/types/src/schemes/commands/GetSpaceRooms.d.ts +3 -0
  58. package/build/types/types/src/schemes/commands/JoinRoom.d.ts +3 -0
  59. package/build/types/types/src/schemes/commands/JoinSpace.d.ts +3 -0
  60. package/build/types/types/src/schemes/commands/LeaveRoom.d.ts +3 -0
  61. package/build/types/types/src/schemes/commands/LeaveSpace.d.ts +3 -0
  62. package/build/types/types/src/schemes/commands/SetPermissionOverwrites.d.ts +8 -0
  63. package/build/types/types/src/schemes/commands/UpdateRole.d.ts +7 -0
  64. package/build/types/types/src/schemes/commands/UpdateRoom.d.ts +5 -0
  65. package/build/types/types/src/schemes/commands/UpdateSpace.d.ts +4 -0
  66. package/build/types/types/src/schemes/events/AckReports.d.ts +4 -0
  67. package/build/types/types/src/schemes/events/Bye.d.ts +3 -0
  68. package/build/types/types/src/schemes/events/ComputedPermissions.d.ts +5 -0
  69. package/build/types/types/src/schemes/events/Error.d.ts +4 -0
  70. package/build/types/types/src/schemes/events/NewMessage.d.ts +6 -0
  71. package/build/types/types/src/schemes/events/NewRole.d.ts +5 -0
  72. package/build/types/types/src/schemes/events/NewRoom.d.ts +5 -0
  73. package/build/types/types/src/schemes/events/NewTopic.d.ts +5 -0
  74. package/build/types/types/src/schemes/events/Ok.d.ts +2 -0
  75. package/build/types/types/src/schemes/events/Owners.d.ts +8 -0
  76. package/build/types/types/src/schemes/events/PermissionOverwriteTargets.d.ts +10 -0
  77. package/build/types/types/src/schemes/events/PermissionOverwrites.d.ts +8 -0
  78. package/build/types/types/src/schemes/events/PermissionOverwritesUpdated.d.ts +8 -0
  79. package/build/types/types/src/schemes/events/RoleDeleted.d.ts +4 -0
  80. package/build/types/types/src/schemes/events/RoleUpdated.d.ts +5 -0
  81. package/build/types/types/src/schemes/events/RoomDeleted.d.ts +3 -0
  82. package/build/types/types/src/schemes/events/RoomJoined.d.ts +4 -0
  83. package/build/types/types/src/schemes/events/RoomLeft.d.ts +3 -0
  84. package/build/types/types/src/schemes/events/RoomMemberJoined.d.ts +5 -0
  85. package/build/types/types/src/schemes/events/RoomMemberLeft.d.ts +4 -0
  86. package/build/types/types/src/schemes/events/RoomMemberUpdated.d.ts +6 -0
  87. package/build/types/types/src/schemes/events/RoomMembers.d.ts +5 -0
  88. package/build/types/types/src/schemes/events/RoomUpdated.d.ts +4 -0
  89. package/build/types/types/src/schemes/events/Session.d.ts +7 -0
  90. package/build/types/types/src/schemes/events/SpaceDeleted.d.ts +3 -0
  91. package/build/types/types/src/schemes/events/SpaceJoined.d.ts +4 -0
  92. package/build/types/types/src/schemes/events/SpaceLeft.d.ts +3 -0
  93. package/build/types/types/src/schemes/events/SpaceMemberJoined.d.ts +5 -0
  94. package/build/types/types/src/schemes/events/SpaceMemberLeft.d.ts +4 -0
  95. package/build/types/types/src/schemes/events/SpaceMemberUpdated.d.ts +6 -0
  96. package/build/types/types/src/schemes/events/SpaceMembers.d.ts +5 -0
  97. package/build/types/types/src/schemes/events/SpaceRooms.d.ts +5 -0
  98. package/build/types/types/src/schemes/events/SpaceUpdated.d.ts +4 -0
  99. package/build/types/types/src/schemes/events/TopicDeleted.d.ts +4 -0
  100. package/build/types/types/src/schemes/events/UserUpdated.d.ts +4 -0
  101. package/jest.config.ts +199 -0
  102. package/package.json +4 -22
  103. package/src/AbstractChatClient.ts +50 -16
  104. package/src/AbstractRestClient.ts +65 -65
  105. package/src/IndexedObjectCollection.ts +3 -3
  106. package/src/Permissions.ts +46 -0
  107. package/src/WebApiChatClient.ts +1 -1
  108. package/src/WebSocketChatClient.ts +2 -2
  109. package/src/index.ts +7 -2
  110. package/src/state-tracker/AsyncUtils.ts +38 -0
  111. package/src/state-tracker/ChatStateTracker.ts +42 -0
  112. package/src/state-tracker/MessagesManager.ts +154 -0
  113. package/src/state-tracker/PermissionsManager.ts +306 -0
  114. package/src/state-tracker/RoomsManager.ts +272 -0
  115. package/src/state-tracker/SpacesManager.ts +267 -0
  116. package/src/state-tracker/functions.ts +25 -0
  117. package/src/types/README.md +2 -0
  118. package/src/types/package-lock.json +31 -0
  119. package/src/types/package.json +16 -0
  120. package/src/types/src/index.ts +168 -0
  121. package/src/types/src/schemes/AckReport.ts +7 -0
  122. package/src/types/src/schemes/ChatLocation.ts +5 -0
  123. package/src/types/src/schemes/Envelope.ts +5 -0
  124. package/src/types/src/schemes/Message.ts +8 -0
  125. package/src/types/src/schemes/PermissionOverwritesValue.ts +4 -0
  126. package/src/types/src/schemes/Role.ts +6 -0
  127. package/src/types/src/schemes/Room.ts +12 -0
  128. package/src/types/src/schemes/RoomMember.ts +8 -0
  129. package/src/types/src/schemes/RoomSummary.ts +5 -0
  130. package/src/types/src/schemes/Space.ts +7 -0
  131. package/src/types/src/schemes/SpaceMember.ts +6 -0
  132. package/src/types/src/schemes/Topic.ts +5 -0
  133. package/src/types/src/schemes/User.ts +9 -0
  134. package/src/types/src/schemes/UserState.ts +7 -0
  135. package/src/types/src/schemes/commands/Ack.ts +6 -0
  136. package/src/types/src/schemes/commands/AssignRole.ts +7 -0
  137. package/src/types/src/schemes/commands/CreateMessage.ts +6 -0
  138. package/src/types/src/schemes/commands/CreateOwner.ts +6 -0
  139. package/src/types/src/schemes/commands/CreateRole.ts +5 -0
  140. package/src/types/src/schemes/commands/CreateRoom.ts +8 -0
  141. package/src/types/src/schemes/commands/CreateSpace.ts +3 -0
  142. package/src/types/src/schemes/commands/CreateTopic.ts +14 -0
  143. package/src/types/src/schemes/commands/DeassignRole.ts +7 -0
  144. package/src/types/src/schemes/commands/DeleteOwner.ts +6 -0
  145. package/src/types/src/schemes/commands/DeleteRole.ts +4 -0
  146. package/src/types/src/schemes/commands/DeleteRoom.ts +3 -0
  147. package/src/types/src/schemes/commands/DeleteSpace.ts +3 -0
  148. package/src/types/src/schemes/commands/DeleteTopic.ts +5 -0
  149. package/src/types/src/schemes/commands/GetAckReports.ts +5 -0
  150. package/src/types/src/schemes/commands/GetComputedPermissions.ts +5 -0
  151. package/src/types/src/schemes/commands/GetOwners.ts +5 -0
  152. package/src/types/src/schemes/commands/GetPermissionOverwriteTargets.ts +5 -0
  153. package/src/types/src/schemes/commands/GetPermissionOverwrites.ts +7 -0
  154. package/src/types/src/schemes/commands/GetRoomMembers.ts +3 -0
  155. package/src/types/src/schemes/commands/GetSession.ts +2 -0
  156. package/src/types/src/schemes/commands/GetSpaceMembers.ts +3 -0
  157. package/src/types/src/schemes/commands/GetSpaceRooms.ts +3 -0
  158. package/src/types/src/schemes/commands/JoinRoom.ts +3 -0
  159. package/src/types/src/schemes/commands/JoinSpace.ts +3 -0
  160. package/src/types/src/schemes/commands/LeaveRoom.ts +3 -0
  161. package/src/types/src/schemes/commands/LeaveSpace.ts +3 -0
  162. package/src/types/src/schemes/commands/SetPermissionOverwrites.ts +9 -0
  163. package/src/types/src/schemes/commands/UpdateRole.ts +7 -0
  164. package/src/types/src/schemes/commands/UpdateRoom.ts +5 -0
  165. package/src/types/src/schemes/commands/UpdateSpace.ts +4 -0
  166. package/src/types/src/schemes/events/AckReports.ts +5 -0
  167. package/src/types/src/schemes/events/Bye.ts +3 -0
  168. package/src/types/src/schemes/events/ComputedPermissions.ts +6 -0
  169. package/src/types/src/schemes/events/Error.ts +4 -0
  170. package/src/types/src/schemes/events/NewMessage.ts +7 -0
  171. package/src/types/src/schemes/events/NewRole.ts +6 -0
  172. package/src/types/src/schemes/events/NewRoom.ts +6 -0
  173. package/src/types/src/schemes/events/NewTopic.ts +6 -0
  174. package/src/types/src/schemes/events/Ok.ts +3 -0
  175. package/src/types/src/schemes/events/Owners.ts +9 -0
  176. package/src/types/src/schemes/events/PermissionOverwriteTargets.ts +11 -0
  177. package/src/types/src/schemes/events/PermissionOverwrites.ts +9 -0
  178. package/src/types/src/schemes/events/PermissionOverwritesUpdated.ts +9 -0
  179. package/src/types/src/schemes/events/RoleDeleted.ts +4 -0
  180. package/src/types/src/schemes/events/RoleUpdated.ts +6 -0
  181. package/src/types/src/schemes/events/RoomDeleted.ts +3 -0
  182. package/src/types/src/schemes/events/RoomJoined.ts +5 -0
  183. package/src/types/src/schemes/events/RoomLeft.ts +3 -0
  184. package/src/types/src/schemes/events/RoomMemberJoined.ts +6 -0
  185. package/src/types/src/schemes/events/RoomMemberLeft.ts +4 -0
  186. package/src/types/src/schemes/events/RoomMemberUpdated.ts +7 -0
  187. package/src/types/src/schemes/events/RoomMembers.ts +6 -0
  188. package/src/types/src/schemes/events/RoomUpdated.ts +5 -0
  189. package/src/types/src/schemes/events/Session.ts +8 -0
  190. package/src/types/src/schemes/events/SpaceDeleted.ts +3 -0
  191. package/src/types/src/schemes/events/SpaceJoined.ts +5 -0
  192. package/src/types/src/schemes/events/SpaceLeft.ts +3 -0
  193. package/src/types/src/schemes/events/SpaceMemberJoined.ts +6 -0
  194. package/src/types/src/schemes/events/SpaceMemberLeft.ts +4 -0
  195. package/src/types/src/schemes/events/SpaceMemberUpdated.ts +7 -0
  196. package/src/types/src/schemes/events/SpaceMembers.ts +6 -0
  197. package/src/types/src/schemes/events/SpaceRooms.ts +6 -0
  198. package/src/types/src/schemes/events/SpaceUpdated.ts +5 -0
  199. package/src/types/src/schemes/events/TopicDeleted.ts +5 -0
  200. package/src/types/src/schemes/events/UserUpdated.ts +5 -0
  201. package/src/types/tsconfig.json +75 -0
  202. package/tests/async-utils.test.ts +30 -0
  203. package/tests/permissions.test.ts +14 -0
  204. package/tests/space-roles.test.ts +43 -0
  205. package/build/types/ChatStateTracker.d.ts +0 -54
  206. package/index.html +0 -8
  207. package/src/ChatStateTracker.ts +0 -336
@@ -1,4 +1,4 @@
1
- import { Bye, GetSession, JoinSpace, Ok, Session, SpaceJoined, Error as ErrorType, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMemberUpdate, SpaceDeleted, SpaceMembers, SpaceRooms, NewRole, RoomDeleted, RoomJoined, RoomLeft, RoomMemberLeft, RoomMemberJoined, RoomMembers, NewRoom, NewTopic, TopicDeleted, NewMessage, GetUserPermissions, SetUserPermissions, GetComputedPermissions, LeaveSpace, CreateSpace, DeleteSpace, GetSpaceMembers, GetSpaceRooms, CreateRole, DeleteRole, AssignRole, DeassignRole, SetRolePermissions, GetRolePermissions, JoinRoom, LeaveRoom, CreateRoom, DeleteRoom, GetRoomMembers, CreateTopic, DeleteTopic, CreateMessage, Envelope } from "pserv-ts-types";
1
+ import { Bye, GetSession, JoinSpace, Session, SpaceJoined, Error as ErrorType, SpaceLeft, SpaceMemberJoined, SpaceMemberLeft, SpaceMemberUpdated, SpaceDeleted, SpaceMembers, SpaceRooms, NewRole, RoomDeleted, RoomJoined, RoomLeft, RoomMemberLeft, RoomMemberJoined, 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, AckReports, Ack, GetAckReports, UserUpdated, UpdateRoom, RoomUpdated, UpdateSpace, SpaceUpdated, PermissionOverwriteTargets, GetPermissionOverwriteTargets, Owners, Ok, GetOwners, CreateOwner, RoleDeleted } from "./types/src/index";
2
2
  import { EventTarget } from "./EventTarget";
3
3
  type ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];
4
4
  export declare abstract class AbstractChatClient extends EventTarget {
@@ -25,54 +25,71 @@ export type EventsMap = {
25
25
  Error: ErrorType;
26
26
  Session: Session;
27
27
  Permissions: Permissions;
28
+ PermissionOverwrites: PermissionOverwrites;
29
+ PermissionOverwritesUpdated: PermissionOverwritesUpdated;
30
+ PermissionOverwriteTargets: PermissionOverwriteTargets;
31
+ Owners: Owners;
28
32
  SpaceJoined: SpaceJoined;
29
33
  SpaceLeft: SpaceLeft;
30
34
  SpaceMemberJoined: SpaceMemberJoined;
31
35
  SpaceMemberLeft: SpaceMemberLeft;
32
- SpaceMemberUpdate: SpaceMemberUpdate;
36
+ SpaceMemberUpdated: SpaceMemberUpdated;
37
+ SpaceUpdated: SpaceUpdated;
33
38
  SpaceDeleted: SpaceDeleted;
34
39
  SpaceMembers: SpaceMembers;
35
40
  SpaceRooms: SpaceRooms;
36
41
  NewRole: NewRole;
37
- RoleDeleted: RoomDeleted;
42
+ RoleDeleted: RoleDeleted;
43
+ RoleUpdated: RoleUpdated;
38
44
  RoomJoined: RoomJoined;
39
45
  RoomLeft: RoomLeft;
40
46
  RoomMemberJoined: RoomMemberJoined;
41
47
  RoomMemberLeft: RoomMemberLeft;
48
+ RoomMemberUpdated: RoomMemberUpdated;
42
49
  RoomMembers: RoomMembers;
43
50
  NewRoom: NewRoom;
44
51
  RoomDeleted: RoomDeleted;
52
+ RoomUpdated: RoomUpdated;
45
53
  NewTopic: NewTopic;
46
54
  TopicDeleted: TopicDeleted;
47
55
  NewMessage: NewMessage;
56
+ AckReports: AckReports;
57
+ UserUpdated: UserUpdated;
48
58
  };
49
59
  /**
50
60
  * Map of commands and their corresponding events.
51
61
  */
52
62
  export type CommandsMap = {
53
63
  GetSession: [GetSession, EventsMap['Session']];
54
- SetUserPermissions: [SetUserPermissions, EventsMap['Permissions']];
55
- GetUserPermissions: [GetUserPermissions, EventsMap['Permissions']];
64
+ SetPermissionOverwrites: [SetPermissionOverwrites, EventsMap['PermissionOverwritesUpdated']];
65
+ GetPermissionOverwrites: [GetPermissionOverwrites, EventsMap['PermissionOverwrites']];
56
66
  GetComputedPermissions: [GetComputedPermissions, EventsMap['Permissions']];
67
+ GetPermissionOverwriteTargets: [GetPermissionOverwriteTargets, EventsMap['PermissionOverwriteTargets']];
68
+ GetOwners: [GetOwners, EventsMap['Owners']];
69
+ CreateOwner: [CreateOwner, EventsMap['Owners']];
70
+ DeleteOwner: [CreateOwner, EventsMap['Owners']];
57
71
  JoinSpace: [JoinSpace, EventsMap['SpaceJoined']];
58
72
  LeaveSpace: [LeaveSpace, EventsMap['SpaceLeft']];
59
73
  CreateSpace: [CreateSpace, EventsMap['SpaceJoined']];
74
+ UpdateSpace: [UpdateSpace, EventsMap['SpaceUpdated']];
60
75
  DeleteSpace: [DeleteSpace, EventsMap['SpaceDeleted']];
61
76
  GetSpaceMembers: [GetSpaceMembers, EventsMap['SpaceMembers']];
62
77
  GetSpaceRooms: [GetSpaceRooms, EventsMap['SpaceRooms']];
63
78
  CreateRole: [CreateRole, EventsMap['NewRole']];
64
79
  DeleteRole: [DeleteRole, EventsMap['RoleDeleted']];
65
- AssignRole: [AssignRole, EventsMap['SpaceMemberUpdate']];
66
- DeassignRole: [DeassignRole, EventsMap['SpaceMemberUpdate']];
67
- SetRolePermissions: [SetRolePermissions, EventsMap['Permissions']];
68
- GetRolePermissions: [GetRolePermissions, EventsMap['Permissions']];
80
+ UpdateRole: [UpdateRole, EventsMap['RoleUpdated']];
81
+ AssignRole: [AssignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']];
82
+ DeassignRole: [DeassignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']];
69
83
  JoinRoom: [JoinRoom, EventsMap['RoomJoined']];
70
84
  LeaveRoom: [LeaveRoom, EventsMap['RoomLeft']];
71
85
  CreateRoom: [CreateRoom, EventsMap['NewRoom']];
72
86
  DeleteRoom: [DeleteRoom, EventsMap['RoomDeleted']];
87
+ UpdateRoom: [UpdateRoom, EventsMap['RoomUpdated']];
73
88
  GetRoomMembers: [GetRoomMembers, EventsMap['RoomMembers']];
74
89
  CreateTopic: [CreateTopic, EventsMap['NewTopic']];
75
90
  DeleteTopic: [DeleteTopic, EventsMap['TopicDeleted']];
76
91
  CreateMessage: [CreateMessage, EventsMap['NewMessage']];
92
+ Ack: [Ack, EventsMap['AckReports']];
93
+ GetAckReports: [GetAckReports, EventsMap['AckReports']];
77
94
  };
78
95
  export {};
@@ -5,7 +5,7 @@ export declare class IndexedCollection<KeyT, ValueT> {
5
5
  get items(): Map<KeyT, ValueT>;
6
6
  get length(): number;
7
7
  set(...items: [KeyT, ValueT][]): void;
8
- get(id: KeyT): ValueT | null;
8
+ get(id: KeyT): ValueT | undefined;
9
9
  has(id: KeyT): boolean;
10
10
  delete(...ids: KeyT[]): void;
11
11
  deleteAll(): void;
@@ -19,8 +19,8 @@ export declare class IndexedObjectCollection<T> {
19
19
  get items(): T[];
20
20
  get length(): number;
21
21
  set(...items: T[]): void;
22
- get(id: any): T | null;
23
- getAt(index: number): T | null;
22
+ get(id: any): T | undefined;
23
+ getAt(index: number): T | undefined;
24
24
  has(id: any): boolean;
25
25
  delete(...ids: any[]): void;
26
26
  deleteAll(): void;
@@ -0,0 +1,65 @@
1
+ export declare enum Layer {
2
+ Global = 0,
3
+ Space = 1,
4
+ Room = 2,
5
+ Topic = 3
6
+ }
7
+ export declare class PermissionDefinition {
8
+ value: number;
9
+ maxLayer: Layer;
10
+ }
11
+ export declare class Permissions {
12
+ static readonly list: {
13
+ Root: {
14
+ value: number;
15
+ maxLayer: Layer;
16
+ };
17
+ CreateSpaces: {
18
+ value: number;
19
+ maxLayer: Layer;
20
+ };
21
+ ManageSpace: {
22
+ value: number;
23
+ maxLayer: Layer;
24
+ };
25
+ ManageSpaceRoles: {
26
+ value: number;
27
+ maxLayer: Layer;
28
+ };
29
+ ManageRoom: {
30
+ value: number;
31
+ maxLayer: Layer;
32
+ };
33
+ ManageTopic: {
34
+ value: number;
35
+ maxLayer: Layer;
36
+ };
37
+ ManageSpaceMembers: {
38
+ value: number;
39
+ maxLayer: Layer;
40
+ };
41
+ ManageRoomMembers: {
42
+ value: number;
43
+ maxLayer: Layer;
44
+ };
45
+ CreateMessages: {
46
+ value: number;
47
+ maxLayer: Layer;
48
+ };
49
+ ManagePermissions: {
50
+ value: number;
51
+ maxLayer: Layer;
52
+ };
53
+ CreateSpaceRooms: {
54
+ value: number;
55
+ maxLayer: Layer;
56
+ };
57
+ ManageSpaceRooms: {
58
+ value: number;
59
+ maxLayer: Layer;
60
+ };
61
+ };
62
+ static getNames(): (keyof typeof this.list)[];
63
+ static getByName(name: keyof typeof this.list): PermissionDefinition | undefined;
64
+ static canBeDefinedOnLayer(permissionName: keyof typeof this.list, layer: Layer): boolean;
65
+ }
@@ -1,6 +1,6 @@
1
1
  import { ObservableInterface } from "./EventTarget";
2
2
  import { AbstractChatClient, CommandResult, CommandsMap } from "./AbstractChatClient";
3
- import { ChatStateTracker } from "./ChatStateTracker";
3
+ import { ChatStateTracker } from "./state-tracker/ChatStateTracker";
4
4
  export interface WebSocketClientOptions {
5
5
  url: string;
6
6
  token?: string;
@@ -2,4 +2,7 @@ import { WebSocketChatClient } from "./WebSocketChatClient";
2
2
  import { WebApiChatClient } from "./WebApiChatClient";
3
3
  import { IndexedCollection, IndexedObjectCollection, ObservableIndexedCollection, ObservableIndexedObjectCollection } from "./IndexedObjectCollection";
4
4
  import { AuthClient } from "./AuthClient";
5
- export { IndexedCollection, ObservableIndexedCollection, IndexedObjectCollection, ObservableIndexedObjectCollection, WebSocketChatClient, WebApiChatClient, AuthClient };
5
+ import { Permissions, PermissionDefinition, Layer } from "./Permissions";
6
+ import * as ChatTypes from './types/src';
7
+ export { IndexedCollection, ObservableIndexedCollection, IndexedObjectCollection, ObservableIndexedObjectCollection, Permissions, PermissionDefinition, Layer, WebSocketChatClient, WebApiChatClient, AuthClient, };
8
+ export type { ChatTypes };
@@ -0,0 +1,14 @@
1
+ export declare class DeferredTask {
2
+ readonly promise: Promise<void>;
3
+ resolve: () => void;
4
+ constructor();
5
+ }
6
+ export declare class PromiseRegistry {
7
+ private promises;
8
+ register<T = any>(promise: Promise<T>, key: string): void;
9
+ registerByFunction(fn: () => Promise<any>, key: string): void;
10
+ get<T = any>(key: string): Promise<T> | undefined;
11
+ has(key: string): boolean;
12
+ notExist(key: string): boolean;
13
+ forget(...keys: string[]): void;
14
+ }
@@ -0,0 +1,26 @@
1
+ import { WebSocketChatClient } from "../WebSocketChatClient";
2
+ import { User } from "../types/src";
3
+ import { RoomsManager } from "./RoomsManager";
4
+ import { SpacesManager } from "./SpacesManager";
5
+ import { PermissionsManager } from "./PermissionsManager";
6
+ export declare class ChatStateTracker {
7
+ readonly client: WebSocketChatClient;
8
+ /**
9
+ * State of your permissions.
10
+ */
11
+ readonly permissions: PermissionsManager;
12
+ /**
13
+ * State of the rooms you are in.
14
+ */
15
+ readonly rooms: RoomsManager;
16
+ /**
17
+ * State of the spaces you are in.
18
+ */
19
+ readonly spaces: SpacesManager;
20
+ private _me;
21
+ private readonly deferredSession;
22
+ constructor(client: WebSocketChatClient);
23
+ get me(): User | null;
24
+ getMe(): Promise<User>;
25
+ private handleSession;
26
+ }
@@ -0,0 +1,39 @@
1
+ import { ChatStateTracker } from "./ChatStateTracker";
2
+ import { AckReport, ChatLocation, Message, Topic } from "../types/src";
3
+ import { ObservableIndexedObjectCollection } from "../IndexedObjectCollection";
4
+ export declare const getCombinedId: (location: ChatLocation) => string;
5
+ export declare class MessagesManager {
6
+ private tracker;
7
+ private readonly list;
8
+ private readonly acks;
9
+ constructor(tracker: ChatStateTracker);
10
+ /**
11
+ * Get collection of the messages written in topic.
12
+ */
13
+ get(location: ChatLocation): Promise<ObservableIndexedObjectCollection<Message> | undefined>;
14
+ /**
15
+ * Cache ack reports for all joined rooms in a space and fetch them in bulk if necessary.
16
+ * Then you can get the reports using getRoomAckReports().
17
+ * @see getRoomAckReports
18
+ */
19
+ cacheSpaceAckReports(spaceId: string): Promise<void>;
20
+ /**
21
+ * Get ack reports for the given room. Undefined if you are not in the room.
22
+ * @param roomId
23
+ */
24
+ getRoomAckReports(roomId: string): Promise<ObservableIndexedObjectCollection<AckReport> | undefined>;
25
+ /**
26
+ * For internal use. If you want to delete the message, execute a proper command on client object.
27
+ * @internal
28
+ */
29
+ _deleteByTopicIds(roomId: string, ...topicIds: string[]): void;
30
+ /**
31
+ * For internal use. If you want to add new topic, execute a proper command on client object.
32
+ * @internal
33
+ */
34
+ _handleNewTopics(roomId: string, ...topics: Topic[]): void;
35
+ private handleNewMessage;
36
+ private handleAckReports;
37
+ private createAckReportsForNewTopics;
38
+ private updateLocallyAckReportOnNewMessage;
39
+ }
@@ -0,0 +1,41 @@
1
+ import { ChatStateTracker } from "./ChatStateTracker";
2
+ import { ChatLocation, PermissionOverwrites } from "../types/src";
3
+ import { EventHandler, EventTarget } from "../EventTarget";
4
+ import { Permissions } from "../Permissions";
5
+ interface CheckPermissionsResult {
6
+ /**
7
+ * @deprecated Use `hasAll` instead.
8
+ */
9
+ ok: boolean;
10
+ hasAll: boolean;
11
+ hasAny: boolean;
12
+ missing: string[];
13
+ }
14
+ export declare class PermissionsManager extends EventTarget {
15
+ private tracker;
16
+ private readonly overwrites;
17
+ private readonly overwritesPromises;
18
+ constructor(tracker: ChatStateTracker);
19
+ getOverwrites(location: ChatLocation, target: PermissionOverwrites['target'], targetId: PermissionOverwrites['targetId']): Promise<PermissionOverwrites | undefined>;
20
+ on(eventName: 'change', handler: EventHandler<any>): this;
21
+ check(permissionNames: (keyof typeof Permissions.list)[], location: ChatLocation): Promise<CheckPermissionsResult>;
22
+ calculatePermissions(location: ChatLocation): Promise<number>;
23
+ private handlePermissionOverwrites;
24
+ private handleSpaceDeleted;
25
+ private handleRoomDeleted;
26
+ private handleTopicDeleted;
27
+ private handleRoleDeleted;
28
+ private handleSpaceMemberUpdated;
29
+ private handleRoomMemberUpdated;
30
+ /**
31
+ * @return Matched and deleted ids
32
+ */
33
+ private deleteOverwritesByIdPrefix;
34
+ private collectRoleOverwrites;
35
+ private resolveOverwritesFromRolesByOrder;
36
+ private resolveOverwritesHierarchy;
37
+ private getRootAccessValue;
38
+ private fetchMembersOrFail;
39
+ private validateLocation;
40
+ }
41
+ export {};
@@ -0,0 +1,49 @@
1
+ import { ObservableIndexedObjectCollection } from "../IndexedObjectCollection";
2
+ import { Room, RoomMember, Topic } from "../types/src";
3
+ import { ChatStateTracker } from "./ChatStateTracker";
4
+ import { MessagesManager } from "./MessagesManager";
5
+ export declare class RoomsManager {
6
+ private tracker;
7
+ readonly messages: MessagesManager;
8
+ private readonly list;
9
+ private readonly topics;
10
+ private readonly members;
11
+ private readonly deferredSession;
12
+ private readonly membersPromises;
13
+ constructor(tracker: ChatStateTracker);
14
+ /**
15
+ * Get collection of room members.
16
+ */
17
+ getMembers(roomId: string): Promise<ObservableIndexedObjectCollection<RoomMember> | undefined>;
18
+ /**
19
+ * Get a room member representing the current user.
20
+ */
21
+ getMe(roomId: string): Promise<RoomMember | undefined>;
22
+ /**
23
+ * Get collection of all the rooms you are in.
24
+ */
25
+ get(): Promise<ObservableIndexedObjectCollection<Room>>;
26
+ /**
27
+ * Get collection of room topics.
28
+ */
29
+ getTopics(roomId: string): Promise<ObservableIndexedObjectCollection<Topic> | undefined>;
30
+ private deleteRoom;
31
+ private deleteRoomsBySpaceId;
32
+ private handleSpaceMemberUpdated;
33
+ private handleSpaceMemberLeft;
34
+ private handleRoomMemberUpdated;
35
+ private handleSpaceDeleted;
36
+ private handleTopicDeleted;
37
+ private handleNewTopic;
38
+ private addJoinedRoomTopics;
39
+ private handleRoomJoined;
40
+ private handleRoomUpdated;
41
+ private handleRoomDeleted;
42
+ private addJoinedRooms;
43
+ private handleRoomLeft;
44
+ private handleRoomMemberJoined;
45
+ private handleRoomMemberLeft;
46
+ private handleRoomMembers;
47
+ private handleSession;
48
+ private handleUserUpdated;
49
+ }
@@ -0,0 +1,52 @@
1
+ import { ChatStateTracker } from "./ChatStateTracker";
2
+ import { ObservableIndexedObjectCollection } from "../IndexedObjectCollection";
3
+ import { Role, RoomSummary, Space, SpaceMember } from "../types/src";
4
+ export declare class SpacesManager {
5
+ private tracker;
6
+ private readonly list;
7
+ private readonly roles;
8
+ private readonly rooms;
9
+ private readonly roomIdToSpaceId;
10
+ private readonly members;
11
+ private readonly deferredSession;
12
+ private readonly roomsPromises;
13
+ private readonly membersPromises;
14
+ constructor(tracker: ChatStateTracker);
15
+ /**
16
+ * Get collection of all the spaces you are in.
17
+ */
18
+ get(): Promise<ObservableIndexedObjectCollection<Space>>;
19
+ /**
20
+ * Get collection of space roles.
21
+ */
22
+ getRoles(spaceId: string): Promise<ObservableIndexedObjectCollection<Role> | undefined>;
23
+ /**
24
+ * Get collection of the all available rooms inside given space.
25
+ */
26
+ getRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined>;
27
+ /**
28
+ * Get collection of space members.
29
+ */
30
+ getMembers(spaceId: string): Promise<ObservableIndexedObjectCollection<SpaceMember> | undefined>;
31
+ /**
32
+ * Get a space member representing the current user.
33
+ */
34
+ getMe(spaceId: string): Promise<SpaceMember | undefined>;
35
+ private handleNewRole;
36
+ private handleNewRoom;
37
+ private handleRoomUpdated;
38
+ private handleRoomDeleted;
39
+ private handleRoleDeleted;
40
+ private handleSpaceUpdated;
41
+ private handleSpaceDeleted;
42
+ private handleSpaceJoined;
43
+ private addJoinedSpaces;
44
+ private handleSpaceMemberJoined;
45
+ private handleSpaceMemberLeft;
46
+ private handleSpaceMembers;
47
+ private handleSpaceRooms;
48
+ private handleSpaceMemberUpdated;
49
+ private handleRoleUpdated;
50
+ private handleSession;
51
+ private handleUserUpdated;
52
+ }
@@ -0,0 +1,2 @@
1
+ import { Role } from "../types/src";
2
+ export declare function reorderRolesOnPriorityUpdate(allRoles: Role[], oldRole: Role, updatedRole: Role): Role[];
@@ -0,0 +1,82 @@
1
+ import { Envelope } from "./schemes/Envelope";
2
+ import { Message } from "./schemes/Message";
3
+ import { PermissionOverwritesValue } from "./schemes/PermissionOverwritesValue";
4
+ import { Role } from "./schemes/Role";
5
+ import { Room } from "./schemes/Room";
6
+ import { RoomMember } from "./schemes/RoomMember";
7
+ import { RoomSummary } from "./schemes/RoomSummary";
8
+ import { Space } from "./schemes/Space";
9
+ import { SpaceMember } from "./schemes/SpaceMember";
10
+ import { Topic } from "./schemes/Topic";
11
+ import { User } from "./schemes/User";
12
+ import { UserState } from "./schemes/UserState";
13
+ import { Bye } from "./schemes/events/Bye";
14
+ import { Error } from "./schemes/events/Error";
15
+ import { Session } from "./schemes/events/Session";
16
+ import { ComputedPermissions } from "./schemes/events/ComputedPermissions";
17
+ import { SpaceJoined } from "./schemes/events/SpaceJoined";
18
+ import { SpaceLeft } from "./schemes/events/SpaceLeft";
19
+ import { SpaceMemberJoined } from "./schemes/events/SpaceMemberJoined";
20
+ import { SpaceMemberLeft } from "./schemes/events/SpaceMemberLeft";
21
+ import { SpaceMemberUpdated } from "./schemes/events/SpaceMemberUpdated";
22
+ import { SpaceDeleted } from "./schemes/events/SpaceDeleted";
23
+ import { SpaceMembers } from "./schemes/events/SpaceMembers";
24
+ import { SpaceRooms } from "./schemes/events/SpaceRooms";
25
+ import { NewRole } from "./schemes/events/NewRole";
26
+ import { RoleDeleted } from "./schemes/events/RoleDeleted";
27
+ import { RoomJoined } from "./schemes/events/RoomJoined";
28
+ import { RoomLeft } from "./schemes/events/RoomLeft";
29
+ import { RoomMemberJoined } from "./schemes/events/RoomMemberJoined";
30
+ import { RoomMemberLeft } from "./schemes/events/RoomMemberLeft";
31
+ import { RoomMembers } from "./schemes/events/RoomMembers";
32
+ import { RoomMemberUpdated } from "./schemes/events/RoomMemberUpdated";
33
+ import { NewRoom } from "./schemes/events/NewRoom";
34
+ import { RoomDeleted } from "./schemes/events/RoomDeleted";
35
+ import { NewTopic } from "./schemes/events/NewTopic";
36
+ import { TopicDeleted } from "./schemes/events/TopicDeleted";
37
+ import { NewMessage } from "./schemes/events/NewMessage";
38
+ import { PermissionOverwritesUpdated } from "./schemes/events/PermissionOverwritesUpdated";
39
+ import { PermissionOverwrites } from "./schemes/events/PermissionOverwrites";
40
+ import { GetSession } from "./schemes/commands/GetSession";
41
+ import { GetComputedPermissions } from "./schemes/commands/GetComputedPermissions";
42
+ import { JoinSpace } from "./schemes/commands/JoinSpace";
43
+ import { LeaveSpace } from "./schemes/commands/LeaveSpace";
44
+ import { CreateSpace } from "./schemes/commands/CreateSpace";
45
+ import { DeleteSpace } from "./schemes/commands/DeleteSpace";
46
+ import { GetSpaceMembers } from "./schemes/commands/GetSpaceMembers";
47
+ import { GetSpaceRooms } from "./schemes/commands/GetSpaceRooms";
48
+ import { CreateRole } from "./schemes/commands/CreateRole";
49
+ import { DeleteRole } from "./schemes/commands/DeleteRole";
50
+ import { RoleUpdated } from "./schemes/events/RoleUpdated";
51
+ import { AssignRole } from "./schemes/commands/AssignRole";
52
+ import { DeassignRole } from "./schemes/commands/DeassignRole";
53
+ import { SetPermissionOverwrites } from "./schemes/commands/SetPermissionOverwrites";
54
+ import { GetPermissionOverwrites } from "./schemes/commands/GetPermissionOverwrites";
55
+ import { JoinRoom } from "./schemes/commands/JoinRoom";
56
+ import { LeaveRoom } from "./schemes/commands/LeaveRoom";
57
+ import { CreateRoom } from "./schemes/commands/CreateRoom";
58
+ import { DeleteRoom } from "./schemes/commands/DeleteRoom";
59
+ import { GetRoomMembers } from "./schemes/commands/GetRoomMembers";
60
+ import { CreateTopic } from "./schemes/commands/CreateTopic";
61
+ import { DeleteTopic } from "./schemes/commands/DeleteTopic";
62
+ import { CreateMessage } from "./schemes/commands/CreateMessage";
63
+ import { UpdateRole } from "./schemes/commands/UpdateRole";
64
+ import { GetAckReports } from "./schemes/commands/GetAckReports";
65
+ import { Ack } from "./schemes/commands/Ack";
66
+ import { AckReports } from "./schemes/events/AckReports";
67
+ import { AckReport } from "./schemes/AckReport";
68
+ import { UserUpdated } from "./schemes/events/UserUpdated";
69
+ import { UpdateRoom } from "./schemes/commands/UpdateRoom";
70
+ import { UpdateSpace } from "./schemes/commands/UpdateSpace";
71
+ import { RoomUpdated } from "./schemes/events/RoomUpdated";
72
+ import { SpaceUpdated } from "./schemes/events/SpaceUpdated";
73
+ import { ChatLocation } from "./schemes/ChatLocation";
74
+ import { GetPermissionOverwriteTargets } from "./schemes/commands/GetPermissionOverwriteTargets";
75
+ import { PermissionOverwriteTargets } from "./schemes/events/PermissionOverwriteTargets";
76
+ import { CreateOwner } from "./schemes/commands/CreateOwner";
77
+ import { DeleteOwner } from "./schemes/commands/DeleteOwner";
78
+ import { GetOwners } from "./schemes/commands/GetOwners";
79
+ import { Owners } from "./schemes/events/Owners";
80
+ import { Ok } from "./schemes/events/Ok";
81
+ import { RoomType } from "./schemes/Room";
82
+ export { Envelope, Message, AckReport, Role, Room, RoomType, RoomMember, RoomSummary, Space, SpaceMember, Topic, User, UserState, PermissionOverwritesValue, ChatLocation, Bye, Error, NewMessage, AckReports, NewRole, NewRoom, NewTopic, 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, CreateMessage, Ack, CreateRole, CreateRoom, CreateSpace, CreateTopic, DeassignRole, DeleteRole, DeleteRoom, DeleteSpace, DeleteTopic, SetPermissionOverwrites, GetPermissionOverwrites, GetComputedPermissions, GetRoomMembers, GetSession, GetSpaceMembers, GetSpaceRooms, GetAckReports, JoinRoom, JoinSpace, LeaveRoom, LeaveSpace, UpdateRole, UpdateSpace, UpdateRoom, GetPermissionOverwriteTargets, CreateOwner, DeleteOwner, GetOwners, };
@@ -0,0 +1,7 @@
1
+ export interface AckReport {
2
+ roomId: string;
3
+ topicId: string;
4
+ lastAckMessageId: string | null;
5
+ missed: number | null;
6
+ missedMoreThan: number | null;
7
+ }
@@ -0,0 +1,5 @@
1
+ export interface ChatLocation {
2
+ spaceId?: string;
3
+ roomId?: string;
4
+ topicId?: string;
5
+ }
@@ -0,0 +1,5 @@
1
+ export interface Envelope<T = any> {
2
+ type: string;
3
+ ref?: string;
4
+ data: T;
5
+ }
@@ -0,0 +1,7 @@
1
+ import { User } from "./User";
2
+ export interface Message {
3
+ id: string;
4
+ author: User;
5
+ content: string;
6
+ topicRef: string | null;
7
+ }
@@ -0,0 +1,4 @@
1
+ export interface PermissionOverwritesValue {
2
+ allow: number | null;
3
+ deny: number | null;
4
+ }
@@ -0,0 +1,6 @@
1
+ export interface Role {
2
+ id: string;
3
+ priority: number;
4
+ name: string;
5
+ color?: string;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { Topic } from "./Topic";
2
+ export type RoomType = 'Text';
3
+ export interface Room {
4
+ id: string;
5
+ spaceId: string | null;
6
+ name: string;
7
+ description: string;
8
+ type: RoomType;
9
+ defaultTopic: Topic | null;
10
+ }
@@ -0,0 +1,7 @@
1
+ import { User } from "./User";
2
+ import { SpaceMember } from "./SpaceMember";
3
+ export interface RoomMember {
4
+ user: User | null;
5
+ spaceMember: SpaceMember | null;
6
+ roles: string[] | null;
7
+ }
@@ -0,0 +1,5 @@
1
+ export interface RoomSummary {
2
+ id: string;
3
+ name: string;
4
+ description: string;
5
+ }
@@ -0,0 +1,6 @@
1
+ import { Role } from "./Role";
2
+ export interface Space {
3
+ id: string;
4
+ name: string;
5
+ roles: Role[];
6
+ }
@@ -0,0 +1,5 @@
1
+ import { User } from "./User";
2
+ export interface SpaceMember {
3
+ user: User | null;
4
+ roles: string[];
5
+ }
@@ -0,0 +1,5 @@
1
+ export interface Topic {
2
+ id: string;
3
+ name: string;
4
+ description: string;
5
+ }
@@ -0,0 +1,8 @@
1
+ export type UserFlag = 'bot' | 'temp';
2
+ export interface User {
3
+ id: string;
4
+ nick: string;
5
+ avatar: string;
6
+ flags: UserFlag[];
7
+ online: boolean;
8
+ }
@@ -0,0 +1,6 @@
1
+ import { Space } from "./Space";
2
+ import { Room } from "./Room";
3
+ export interface UserState {
4
+ spaces: Space[];
5
+ rooms: Room[];
6
+ }
@@ -0,0 +1,5 @@
1
+ import { ChatLocation } from "../ChatLocation";
2
+ export interface Ack {
3
+ location: ChatLocation;
4
+ messageId?: string;
5
+ }
@@ -0,0 +1,6 @@
1
+ import { ChatLocation } from "../ChatLocation";
2
+ export interface AssignRole {
3
+ roleId: string;
4
+ userId: string;
5
+ location: ChatLocation;
6
+ }
@@ -0,0 +1,5 @@
1
+ import { ChatLocation } from "../ChatLocation";
2
+ export interface CreateMessage {
3
+ location: ChatLocation;
4
+ content: string;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { ChatLocation } from "../ChatLocation";
2
+ export interface CreateOwner {
3
+ location: ChatLocation;
4
+ userId: string;
5
+ }