polfan-server-js-client 0.0.96 → 0.1.0

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 (154) hide show
  1. package/build/index.js +1 -1
  2. package/build/index.js.map +1 -1
  3. package/build/types/AbstractClient.d.ts +78 -0
  4. package/build/types/EventTarget.d.ts +16 -0
  5. package/build/types/IndexedObjectCollection.d.ts +53 -0
  6. package/build/types/WebApiClient.d.ts +30 -0
  7. package/build/types/WebSocketClient.d.ts +36 -0
  8. package/build/types/WebSocketStateTracker.d.ts +54 -0
  9. package/build/types/index.d.ts +4 -68
  10. package/package.json +65 -64
  11. package/src/AbstractClient.ts +174 -0
  12. package/src/EventTarget.ts +39 -0
  13. package/src/IndexedObjectCollection.ts +209 -0
  14. package/src/{connections/WebApiConnection.ts → WebApiClient.ts} +94 -81
  15. package/src/WebSocketClient.ts +125 -0
  16. package/src/WebSocketStateTracker.ts +326 -0
  17. package/src/index.ts +13 -123
  18. package/build/types/Client.d.ts +0 -107
  19. package/build/types/ObservableInterface.d.ts +0 -16
  20. package/build/types/connections/ConnectionAssets.d.ts +0 -17
  21. package/build/types/connections/RestApiConnection.d.ts +0 -14
  22. package/build/types/connections/WebApiConnection.d.ts +0 -21
  23. package/build/types/connections/WebSocketConnection.d.ts +0 -22
  24. package/build/types/dtos/Dto.d.ts +0 -16
  25. package/build/types/dtos/Message.d.ts +0 -9
  26. package/build/types/dtos/Permission.d.ts +0 -7
  27. package/build/types/dtos/Role.d.ts +0 -7
  28. package/build/types/dtos/Room.d.ts +0 -10
  29. package/build/types/dtos/RoomMember.d.ts +0 -6
  30. package/build/types/dtos/RoomSummary.d.ts +0 -7
  31. package/build/types/dtos/Space.d.ts +0 -8
  32. package/build/types/dtos/SpaceMember.d.ts +0 -7
  33. package/build/types/dtos/Topic.d.ts +0 -7
  34. package/build/types/dtos/User.d.ts +0 -9
  35. package/build/types/dtos/UserState.d.ts +0 -8
  36. package/build/types/dtos/protocol/Envelope.d.ts +0 -7
  37. package/build/types/dtos/protocol/commands/AssignRole.d.ts +0 -7
  38. package/build/types/dtos/protocol/commands/CreateMessage.d.ts +0 -7
  39. package/build/types/dtos/protocol/commands/CreateRole.d.ts +0 -7
  40. package/build/types/dtos/protocol/commands/CreateRoom.d.ts +0 -7
  41. package/build/types/dtos/protocol/commands/CreateSpace.d.ts +0 -5
  42. package/build/types/dtos/protocol/commands/CreateTopic.d.ts +0 -7
  43. package/build/types/dtos/protocol/commands/DeassignRole.d.ts +0 -7
  44. package/build/types/dtos/protocol/commands/DeleteRole.d.ts +0 -6
  45. package/build/types/dtos/protocol/commands/DeleteRoom.d.ts +0 -5
  46. package/build/types/dtos/protocol/commands/DeleteSpace.d.ts +0 -5
  47. package/build/types/dtos/protocol/commands/DeleteTopic.d.ts +0 -5
  48. package/build/types/dtos/protocol/commands/GetComputedPermissions.d.ts +0 -8
  49. package/build/types/dtos/protocol/commands/GetRolePermissions.d.ts +0 -8
  50. package/build/types/dtos/protocol/commands/GetRoomMembers.d.ts +0 -5
  51. package/build/types/dtos/protocol/commands/GetSession.d.ts +0 -4
  52. package/build/types/dtos/protocol/commands/GetSpaceMembers.d.ts +0 -5
  53. package/build/types/dtos/protocol/commands/GetSpaceRooms.d.ts +0 -5
  54. package/build/types/dtos/protocol/commands/GetUserPermissions.d.ts +0 -8
  55. package/build/types/dtos/protocol/commands/JoinRoom.d.ts +0 -5
  56. package/build/types/dtos/protocol/commands/JoinSpace.d.ts +0 -5
  57. package/build/types/dtos/protocol/commands/LeaveRoom.d.ts +0 -5
  58. package/build/types/dtos/protocol/commands/LeaveSpace.d.ts +0 -5
  59. package/build/types/dtos/protocol/commands/SetRolePermissions.d.ts +0 -9
  60. package/build/types/dtos/protocol/commands/SetUserPermissions.d.ts +0 -9
  61. package/build/types/dtos/protocol/events/Bye.d.ts +0 -5
  62. package/build/types/dtos/protocol/events/Error.d.ts +0 -6
  63. package/build/types/dtos/protocol/events/NewMessage.d.ts +0 -6
  64. package/build/types/dtos/protocol/events/NewRole.d.ts +0 -7
  65. package/build/types/dtos/protocol/events/NewRoom.d.ts +0 -7
  66. package/build/types/dtos/protocol/events/NewTopic.d.ts +0 -7
  67. package/build/types/dtos/protocol/events/Ok.d.ts +0 -4
  68. package/build/types/dtos/protocol/events/Permissions.d.ts +0 -6
  69. package/build/types/dtos/protocol/events/RoleDeleted.d.ts +0 -6
  70. package/build/types/dtos/protocol/events/RoomDeleted.d.ts +0 -5
  71. package/build/types/dtos/protocol/events/RoomJoined.d.ts +0 -6
  72. package/build/types/dtos/protocol/events/RoomLeft.d.ts +0 -5
  73. package/build/types/dtos/protocol/events/RoomMemberJoined.d.ts +0 -6
  74. package/build/types/dtos/protocol/events/RoomMemberLeft.d.ts +0 -5
  75. package/build/types/dtos/protocol/events/RoomMembers.d.ts +0 -6
  76. package/build/types/dtos/protocol/events/Session.d.ts +0 -9
  77. package/build/types/dtos/protocol/events/SpaceDeleted.d.ts +0 -5
  78. package/build/types/dtos/protocol/events/SpaceJoined.d.ts +0 -6
  79. package/build/types/dtos/protocol/events/SpaceLeft.d.ts +0 -5
  80. package/build/types/dtos/protocol/events/SpaceMemberJoined.d.ts +0 -6
  81. package/build/types/dtos/protocol/events/SpaceMemberLeft.d.ts +0 -5
  82. package/build/types/dtos/protocol/events/SpaceMemberUpdate.d.ts +0 -6
  83. package/build/types/dtos/protocol/events/SpaceMembers.d.ts +0 -6
  84. package/build/types/dtos/protocol/events/SpaceRooms.d.ts +0 -6
  85. package/build/types/dtos/protocol/events/TopicDeleted.d.ts +0 -5
  86. package/build/types/protocol.d.ts +0 -102
  87. package/src/Client.ts +0 -267
  88. package/src/ObservableInterface.ts +0 -39
  89. package/src/connections/ConnectionAssets.ts +0 -20
  90. package/src/connections/RestApiConnection.ts +0 -47
  91. package/src/connections/WebSocketConnection.ts +0 -103
  92. package/src/dtos/Dto.ts +0 -45
  93. package/src/dtos/Message.ts +0 -16
  94. package/src/dtos/Permission.ts +0 -12
  95. package/src/dtos/Role.ts +0 -12
  96. package/src/dtos/Room.ts +0 -17
  97. package/src/dtos/RoomMember.ts +0 -13
  98. package/src/dtos/RoomSummary.ts +0 -12
  99. package/src/dtos/Space.ts +0 -15
  100. package/src/dtos/SpaceMember.ts +0 -14
  101. package/src/dtos/Topic.ts +0 -12
  102. package/src/dtos/User.ts +0 -15
  103. package/src/dtos/UserState.ts +0 -16
  104. package/src/dtos/protocol/Envelope.ts +0 -12
  105. package/src/dtos/protocol/commands/AssignRole.ts +0 -12
  106. package/src/dtos/protocol/commands/CreateMessage.ts +0 -12
  107. package/src/dtos/protocol/commands/CreateRole.ts +0 -12
  108. package/src/dtos/protocol/commands/CreateRoom.ts +0 -12
  109. package/src/dtos/protocol/commands/CreateSpace.ts +0 -10
  110. package/src/dtos/protocol/commands/CreateTopic.ts +0 -12
  111. package/src/dtos/protocol/commands/DeassignRole.ts +0 -12
  112. package/src/dtos/protocol/commands/DeleteRole.ts +0 -11
  113. package/src/dtos/protocol/commands/DeleteRoom.ts +0 -10
  114. package/src/dtos/protocol/commands/DeleteSpace.ts +0 -10
  115. package/src/dtos/protocol/commands/DeleteTopic.ts +0 -10
  116. package/src/dtos/protocol/commands/GetComputedPermissions.ts +0 -13
  117. package/src/dtos/protocol/commands/GetRolePermissions.ts +0 -13
  118. package/src/dtos/protocol/commands/GetRoomMembers.ts +0 -10
  119. package/src/dtos/protocol/commands/GetSession.ts +0 -8
  120. package/src/dtos/protocol/commands/GetSpaceMembers.ts +0 -10
  121. package/src/dtos/protocol/commands/GetSpaceRooms.ts +0 -10
  122. package/src/dtos/protocol/commands/GetUserPermissions.ts +0 -13
  123. package/src/dtos/protocol/commands/JoinRoom.ts +0 -10
  124. package/src/dtos/protocol/commands/JoinSpace.ts +0 -10
  125. package/src/dtos/protocol/commands/LeaveRoom.ts +0 -10
  126. package/src/dtos/protocol/commands/LeaveSpace.ts +0 -10
  127. package/src/dtos/protocol/commands/SetRolePermissions.ts +0 -16
  128. package/src/dtos/protocol/commands/SetUserPermissions.ts +0 -16
  129. package/src/dtos/protocol/events/Bye.ts +0 -10
  130. package/src/dtos/protocol/events/Error.ts +0 -11
  131. package/src/dtos/protocol/events/NewMessage.ts +0 -13
  132. package/src/dtos/protocol/events/NewRole.ts +0 -14
  133. package/src/dtos/protocol/events/NewRoom.ts +0 -14
  134. package/src/dtos/protocol/events/NewTopic.ts +0 -14
  135. package/src/dtos/protocol/events/Ok.ts +0 -8
  136. package/src/dtos/protocol/events/Permissions.ts +0 -13
  137. package/src/dtos/protocol/events/RoleDeleted.ts +0 -11
  138. package/src/dtos/protocol/events/RoomDeleted.ts +0 -10
  139. package/src/dtos/protocol/events/RoomJoined.ts +0 -13
  140. package/src/dtos/protocol/events/RoomLeft.ts +0 -10
  141. package/src/dtos/protocol/events/RoomMemberJoined.ts +0 -13
  142. package/src/dtos/protocol/events/RoomMemberLeft.ts +0 -10
  143. package/src/dtos/protocol/events/RoomMembers.ts +0 -13
  144. package/src/dtos/protocol/events/Session.ts +0 -17
  145. package/src/dtos/protocol/events/SpaceDeleted.ts +0 -10
  146. package/src/dtos/protocol/events/SpaceJoined.ts +0 -13
  147. package/src/dtos/protocol/events/SpaceLeft.ts +0 -10
  148. package/src/dtos/protocol/events/SpaceMemberJoined.ts +0 -13
  149. package/src/dtos/protocol/events/SpaceMemberLeft.ts +0 -10
  150. package/src/dtos/protocol/events/SpaceMemberUpdate.ts +0 -13
  151. package/src/dtos/protocol/events/SpaceMembers.ts +0 -13
  152. package/src/dtos/protocol/events/SpaceRooms.ts +0 -13
  153. package/src/dtos/protocol/events/TopicDeleted.ts +0 -10
  154. package/src/protocol.ts +0 -113
@@ -1,5 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class LeaveRoom extends Dto {
3
- readonly id: string;
4
- constructor(data: DtoData<LeaveRoom>);
5
- }
@@ -1,5 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class LeaveSpace extends Dto {
3
- readonly id: string;
4
- constructor(data: DtoData<LeaveSpace>);
5
- }
@@ -1,9 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { Permission } from "../../Permission";
3
- export declare class SetRolePermissions extends Dto {
4
- readonly permissions: Permission[];
5
- readonly layer: 'Space' | 'Room' | 'Topic';
6
- readonly layerId: string;
7
- readonly roleId: string;
8
- constructor(data: DtoData<SetRolePermissions>);
9
- }
@@ -1,9 +0,0 @@
1
- import { Permission } from "../../Permission";
2
- import { Dto, DtoData } from "../../Dto";
3
- export declare class SetUserPermissions extends Dto {
4
- readonly permissions: Permission[];
5
- readonly layer: 'Global' | 'Space' | 'Room' | 'Topic';
6
- readonly layerId: string;
7
- readonly userId: string;
8
- constructor(data: DtoData<SetUserPermissions>);
9
- }
@@ -1,5 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class Bye extends Dto {
3
- readonly reason: string;
4
- constructor(data: DtoData<Bye>);
5
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class Error extends Dto {
3
- readonly code: string;
4
- readonly message: string;
5
- constructor(data: DtoData<Error>);
6
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { Message } from "../../Message";
3
- export declare class NewMessage extends Dto {
4
- readonly message: Message;
5
- constructor(data: DtoData<NewMessage>);
6
- }
@@ -1,7 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { Role } from "../../Role";
3
- export declare class NewRole extends Dto {
4
- readonly spaceId: string;
5
- readonly role: Role;
6
- constructor(data: DtoData<NewRole>);
7
- }
@@ -1,7 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { RoomSummary } from "../../RoomSummary";
3
- export declare class NewRoom extends Dto {
4
- readonly summary: RoomSummary;
5
- readonly spaceId: string;
6
- constructor(data: DtoData<NewRoom>);
7
- }
@@ -1,7 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { Topic } from "../../Topic";
3
- export declare class NewTopic extends Dto {
4
- readonly roomId: string;
5
- readonly topic: Topic;
6
- constructor(data: DtoData<NewTopic>);
7
- }
@@ -1,4 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class Ok extends Dto {
3
- constructor(data: DtoData<Ok>);
4
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { Permission } from "../../Permission";
3
- export declare class Permissions extends Dto {
4
- readonly permissions: Permission[];
5
- constructor(data: DtoData<Permissions>);
6
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class RoleDeleted extends Dto {
3
- readonly roleId: string;
4
- readonly spaceId: string;
5
- constructor(data: DtoData<RoleDeleted>);
6
- }
@@ -1,5 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class RoomDeleted extends Dto {
3
- readonly id: string;
4
- constructor(data: DtoData<RoomDeleted>);
5
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { Room } from "../../Room";
3
- export declare class RoomJoined extends Dto {
4
- readonly room: Room;
5
- constructor(data: DtoData<RoomJoined>);
6
- }
@@ -1,5 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class RoomLeft extends Dto {
3
- readonly id: string;
4
- constructor(data: DtoData<RoomLeft>);
5
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { RoomMember } from "../../RoomMember";
3
- export declare class RoomMemberJoined extends Dto {
4
- readonly member: RoomMember;
5
- constructor(data: DtoData<RoomMemberJoined>);
6
- }
@@ -1,5 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class RoomMemberLeft extends Dto {
3
- readonly userId: string;
4
- constructor(data: DtoData<RoomMemberLeft>);
5
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { RoomMember } from "../../RoomMember";
3
- export declare class RoomMembers extends Dto {
4
- readonly members: RoomMember[];
5
- constructor(data: DtoData<RoomMembers>);
6
- }
@@ -1,9 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { UserState } from "../../UserState";
3
- import { User } from "../../User";
4
- export declare class Session extends Dto {
5
- readonly serverVersion: string;
6
- readonly state: UserState;
7
- readonly user: User;
8
- constructor(data: DtoData<Session>);
9
- }
@@ -1,5 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class SpaceDeleted extends Dto {
3
- readonly id: string;
4
- constructor(data: DtoData<SpaceDeleted>);
5
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { Space } from "../../Space";
3
- export declare class SpaceJoined extends Dto {
4
- readonly space: Space;
5
- constructor(data: DtoData<SpaceJoined>);
6
- }
@@ -1,5 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class SpaceLeft extends Dto {
3
- readonly id: string;
4
- constructor(data: DtoData<SpaceLeft>);
5
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { SpaceMember } from "../../SpaceMember";
3
- export declare class SpaceMemberJoined extends Dto {
4
- readonly member: SpaceMember;
5
- constructor(data: DtoData<SpaceMemberJoined>);
6
- }
@@ -1,5 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class SpaceMemberLeft extends Dto {
3
- readonly userId: string;
4
- constructor(data: DtoData<SpaceMemberLeft>);
5
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { SpaceMember } from "../../SpaceMember";
3
- export declare class SpaceMemberUpdate extends Dto {
4
- readonly member: SpaceMember;
5
- constructor(data: DtoData<SpaceMemberUpdate>);
6
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { SpaceMember } from "../../SpaceMember";
3
- export declare class SpaceMembers extends Dto {
4
- readonly members: SpaceMember[];
5
- constructor(data: DtoData<SpaceMembers>);
6
- }
@@ -1,6 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- import { RoomSummary } from "../../RoomSummary";
3
- export declare class SpaceRooms extends Dto {
4
- readonly summaries: RoomSummary[];
5
- constructor(data: DtoData<SpaceRooms>);
6
- }
@@ -1,5 +0,0 @@
1
- import { Dto, DtoData } from "../../Dto";
2
- export declare class TopicDeleted extends Dto {
3
- readonly id: string;
4
- constructor(data: DtoData<TopicDeleted>);
5
- }
@@ -1,102 +0,0 @@
1
- import { Bye } from "./dtos/protocol/events/Bye";
2
- import { Ok } from "./dtos/protocol/events/Ok";
3
- import { Error } from "./dtos/protocol/events/Error";
4
- import { Session } from "./dtos/protocol/events/Session";
5
- import { Permissions } from "./dtos/protocol/events/Permissions";
6
- import { SpaceJoined } from "./dtos/protocol/events/SpaceJoined";
7
- import { SpaceLeft } from "./dtos/protocol/events/SpaceLeft";
8
- import { SpaceMemberJoined } from "./dtos/protocol/events/SpaceMemberJoined";
9
- import { SpaceMemberLeft } from "./dtos/protocol/events/SpaceMemberLeft";
10
- import { SpaceMemberUpdate } from "./dtos/protocol/events/SpaceMemberUpdate";
11
- import { SpaceDeleted } from "./dtos/protocol/events/SpaceDeleted";
12
- import { SpaceMembers } from "./dtos/protocol/events/SpaceMembers";
13
- import { SpaceRooms } from "./dtos/protocol/events/SpaceRooms";
14
- import { NewRole } from "./dtos/protocol/events/NewRole";
15
- import { RoleDeleted } from "./dtos/protocol/events/RoleDeleted";
16
- import { RoomJoined } from "./dtos/protocol/events/RoomJoined";
17
- import { RoomLeft } from "./dtos/protocol/events/RoomLeft";
18
- import { RoomMemberJoined } from "./dtos/protocol/events/RoomMemberJoined";
19
- import { RoomMemberLeft } from "./dtos/protocol/events/RoomMemberLeft";
20
- import { RoomMembers } from "./dtos/protocol/events/RoomMembers";
21
- import { NewRoom } from "./dtos/protocol/events/NewRoom";
22
- import { RoomDeleted } from "./dtos/protocol/events/RoomDeleted";
23
- import { NewTopic } from "./dtos/protocol/events/NewTopic";
24
- import { TopicDeleted } from "./dtos/protocol/events/TopicDeleted";
25
- import { NewMessage } from "./dtos/protocol/events/NewMessage";
26
- import { GetSession } from "./dtos/protocol/commands/GetSession";
27
- import { SetUserPermissions } from "./dtos/protocol/commands/SetUserPermissions";
28
- import { GetUserPermissions } from "./dtos/protocol/commands/GetUserPermissions";
29
- import { GetComputedPermissions } from "./dtos/protocol/commands/GetComputedPermissions";
30
- import { JoinSpace } from "./dtos/protocol/commands/JoinSpace";
31
- import { LeaveSpace } from "./dtos/protocol/commands/LeaveSpace";
32
- import { CreateSpace } from "./dtos/protocol/commands/CreateSpace";
33
- import { DeleteSpace } from "./dtos/protocol/commands/DeleteSpace";
34
- import { GetSpaceMembers } from "./dtos/protocol/commands/GetSpaceMembers";
35
- import { GetSpaceRooms } from "./dtos/protocol/commands/GetSpaceRooms";
36
- import { CreateRole } from "./dtos/protocol/commands/CreateRole";
37
- import { DeleteRole } from "./dtos/protocol/commands/DeleteRole";
38
- import { AssignRole } from "./dtos/protocol/commands/AssignRole";
39
- import { DeassignRole } from "./dtos/protocol/commands/DeassignRole";
40
- import { SetRolePermissions } from "./dtos/protocol/commands/SetRolePermissions";
41
- import { GetRolePermissions } from "./dtos/protocol/commands/GetRolePermissions";
42
- import { JoinRoom } from "./dtos/protocol/commands/JoinRoom";
43
- import { LeaveRoom } from "./dtos/protocol/commands/LeaveRoom";
44
- import { CreateRoom } from "./dtos/protocol/commands/CreateRoom";
45
- import { DeleteRoom } from "./dtos/protocol/commands/DeleteRoom";
46
- import { GetRoomMembers } from "./dtos/protocol/commands/GetRoomMembers";
47
- import { CreateTopic } from "./dtos/protocol/commands/CreateTopic";
48
- import { DeleteTopic } from "./dtos/protocol/commands/DeleteTopic";
49
- import { CreateMessage } from "./dtos/protocol/commands/CreateMessage";
50
- export declare const events: {
51
- Bye: typeof Bye;
52
- Ok: typeof Ok;
53
- Error: typeof Error;
54
- Session: typeof Session;
55
- Permissions: typeof Permissions;
56
- SpaceJoined: typeof SpaceJoined;
57
- SpaceLeft: typeof SpaceLeft;
58
- SpaceMemberJoined: typeof SpaceMemberJoined;
59
- SpaceMemberLeft: typeof SpaceMemberLeft;
60
- SpaceMemberUpdate: typeof SpaceMemberUpdate;
61
- SpaceDeleted: typeof SpaceDeleted;
62
- SpaceMembers: typeof SpaceMembers;
63
- SpaceRooms: typeof SpaceRooms;
64
- NewRole: typeof NewRole;
65
- RoleDeleted: typeof RoleDeleted;
66
- RoomJoined: typeof RoomJoined;
67
- RoomLeft: typeof RoomLeft;
68
- RoomMemberJoined: typeof RoomMemberJoined;
69
- RoomMemberLeft: typeof RoomMemberLeft;
70
- RoomMembers: typeof RoomMembers;
71
- NewRoom: typeof NewRoom;
72
- RoomDeleted: typeof RoomDeleted;
73
- NewTopic: typeof NewTopic;
74
- TopicDeleted: typeof TopicDeleted;
75
- NewMessage: typeof NewMessage;
76
- };
77
- export declare const commands: {
78
- GetSession: typeof GetSession;
79
- SetUserPermissions: typeof SetUserPermissions;
80
- GetUserPermissions: typeof GetUserPermissions;
81
- GetComputedPermissions: typeof GetComputedPermissions;
82
- JoinSpace: typeof JoinSpace;
83
- LeaveSpace: typeof LeaveSpace;
84
- CreateSpace: typeof CreateSpace;
85
- DeleteSpace: typeof DeleteSpace;
86
- GetSpaceMembers: typeof GetSpaceMembers;
87
- GetSpaceRooms: typeof GetSpaceRooms;
88
- CreateRole: typeof CreateRole;
89
- DeleteRole: typeof DeleteRole;
90
- AssignRole: typeof AssignRole;
91
- DeassignRole: typeof DeassignRole;
92
- SetRolePermissions: typeof SetRolePermissions;
93
- GetRolePermissions: typeof GetRolePermissions;
94
- JoinRoom: typeof JoinRoom;
95
- LeaveRoom: typeof LeaveRoom;
96
- CreateRoom: typeof CreateRoom;
97
- DeleteRoom: typeof DeleteRoom;
98
- GetRoomMembers: typeof GetRoomMembers;
99
- CreateTopic: typeof CreateTopic;
100
- DeleteTopic: typeof DeleteTopic;
101
- CreateMessage: typeof CreateMessage;
102
- };
package/src/Client.ts DELETED
@@ -1,267 +0,0 @@
1
- import {ChatConnectionEvent, ChatConnectionInterface} from "./connections/ConnectionAssets";
2
- import {EventTarget} from "./ObservableInterface";
3
- import {Envelope} from "./dtos/protocol/Envelope";
4
- import {JoinRoom} from "./dtos/protocol/commands/JoinRoom";
5
- import {Dto} from "./dtos/Dto";
6
- import {RoomJoined} from "./dtos/protocol/events/RoomJoined";
7
- import {LeaveRoom} from "./dtos/protocol/commands/LeaveRoom";
8
- import {RoomLeft} from "./dtos/protocol/events/RoomLeft";
9
- import {CreateRoom} from "./dtos/protocol/commands/CreateRoom";
10
- import {Error as ErrorEvent} from "./dtos/protocol/events/Error";
11
- import {SpaceRooms} from "./dtos/protocol/events/SpaceRooms";
12
- import {DeleteRoom} from "./dtos/protocol/commands/DeleteRoom";
13
- import {RoomDeleted} from "./dtos/protocol/events/RoomDeleted";
14
- import {GetRoomMembers} from "./dtos/protocol/commands/GetRoomMembers";
15
- import {RoomMembers} from "./dtos/protocol/events/RoomMembers";
16
- import {JoinSpace} from "./dtos/protocol/commands/JoinSpace";
17
- import {SpaceJoined} from "./dtos/protocol/events/SpaceJoined";
18
- import {LeaveSpace} from "./dtos/protocol/commands/LeaveSpace";
19
- import {SpaceLeft} from "./dtos/protocol/events/SpaceLeft";
20
- import {CreateSpace} from "./dtos/protocol/commands/CreateSpace";
21
- import {DeleteSpace} from "./dtos/protocol/commands/DeleteSpace";
22
- import {SpaceDeleted} from "./dtos/protocol/events/SpaceDeleted";
23
- import {GetSpaceMembers} from "./dtos/protocol/commands/GetSpaceMembers";
24
- import {SpaceMembers} from "./dtos/protocol/events/SpaceMembers";
25
- import {GetSpaceRooms} from "./dtos/protocol/commands/GetSpaceRooms";
26
- import {GetSession} from "./dtos/protocol/commands/GetSession";
27
- import {Session} from "./dtos/protocol/events/Session";
28
- import {AssignRole} from "./dtos/protocol/commands/AssignRole";
29
- import {SpaceMemberUpdate} from "./dtos/protocol/events/SpaceMemberUpdate";
30
- import {DeassignRole} from "./dtos/protocol/commands/DeassignRole";
31
- import {CreateRole} from "./dtos/protocol/commands/CreateRole";
32
- import {NewRole} from "./dtos/protocol/events/NewRole";
33
- import {DeleteRole} from "./dtos/protocol/commands/DeleteRole";
34
- import {RoleDeleted} from "./dtos/protocol/events/RoleDeleted";
35
- import {SetRolePermissions} from "./dtos/protocol/commands/SetRolePermissions";
36
- import {Permissions} from "./dtos/protocol/events/Permissions";
37
- import {SetUserPermissions} from "./dtos/protocol/commands/SetUserPermissions";
38
- import {CreateTopic} from "./dtos/protocol/commands/CreateTopic";
39
- import {NewTopic} from "./dtos/protocol/events/NewTopic";
40
- import {DeleteTopic} from "./dtos/protocol/commands/DeleteTopic";
41
- import {TopicDeleted} from "./dtos/protocol/events/TopicDeleted";
42
- import {CreateMessage} from "./dtos/protocol/commands/CreateMessage";
43
- import {NewMessage} from "./dtos/protocol/events/NewMessage";
44
- import {GetComputedPermissions} from "./dtos/protocol/commands/GetComputedPermissions";
45
- import {GetRolePermissions} from "./dtos/protocol/commands/GetRolePermissions";
46
- import {GetUserPermissions} from "./dtos/protocol/commands/GetUserPermissions";
47
- import {commands, events} from "./protocol";
48
- import {WebSocketConnection} from "./connections/WebSocketConnection";
49
- import {RestApiConnection} from "./connections/RestApiConnection";
50
-
51
- type ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];
52
- type CmdResult<EventDto> = EventDto | ErrorEvent;
53
- type CommandsToEventsType<CommandT> =
54
- // General commands
55
- CommandT extends GetSession ? CmdResult<Session> :
56
- CommandT extends SetUserPermissions ? CmdResult<Permissions> :
57
- CommandT extends GetUserPermissions ? CmdResult<Permissions> :
58
- CommandT extends GetComputedPermissions ? CmdResult<Permissions> :
59
- // Space commands
60
- CommandT extends JoinSpace ? CmdResult<SpaceJoined> :
61
- CommandT extends LeaveSpace ? CmdResult<SpaceLeft> :
62
- CommandT extends CreateSpace ? CmdResult<SpaceJoined> :
63
- CommandT extends DeleteSpace ? CmdResult<SpaceDeleted> :
64
- CommandT extends GetSpaceMembers ? CmdResult<SpaceMembers> :
65
- CommandT extends GetSpaceRooms ? CmdResult<SpaceRooms> :
66
- CommandT extends CreateRole ? CmdResult<NewRole> :
67
- CommandT extends DeleteRole ? CmdResult<RoleDeleted> :
68
- CommandT extends AssignRole ? CmdResult<SpaceMemberUpdate> :
69
- CommandT extends DeassignRole ? CmdResult<SpaceMemberUpdate> :
70
- CommandT extends SetRolePermissions ? CmdResult<Permissions> :
71
- CommandT extends GetRolePermissions ? CmdResult<Permissions> :
72
- // Room commands
73
- CommandT extends JoinRoom ? CmdResult<RoomJoined> :
74
- CommandT extends LeaveRoom ? CmdResult<RoomLeft> :
75
- CommandT extends CreateRoom ? CmdResult<RoomJoined> :
76
- CommandT extends DeleteRoom ? CmdResult<RoomDeleted> :
77
- CommandT extends GetRoomMembers ? CmdResult<RoomMembers> :
78
- // Topic commands
79
- CommandT extends CreateTopic ? CmdResult<NewTopic> :
80
- CommandT extends DeleteTopic ? CmdResult<TopicDeleted> :
81
- CommandT extends CreateMessage ? CmdResult<NewMessage> :
82
- any;
83
-
84
- function guessCommandType(obj: any): string {
85
- for (const type in commands) {
86
- if (obj instanceof commands[type]) {
87
- return type;
88
- }
89
- }
90
- return Object.getPrototypeOf(obj).constructor.name;
91
- }
92
-
93
- export enum ClientEvent {
94
- message = 'message',
95
- ready = 'ready',
96
- renewal = 'renewalStart',
97
- renewalSuccess = 'renewalSuccess',
98
- renewalError = 'renewalError',
99
- }
100
-
101
- export interface TokenInterface {
102
- token: string,
103
- expiration: string
104
- }
105
-
106
- export interface MyAccountInterface {
107
- id: string;
108
- nick: string;
109
- avatar: string;
110
- }
111
-
112
- export class Client extends EventTarget {
113
- public static readonly defaultClientName = 'polfan-server-js-client';
114
- public static readonly defaultWebSocketUrl = 'ws://pserv.shado.p5.tiktalik.io:1600/ws';
115
- public static readonly defaultWebApiUrl = 'http://pserv.shado.p5.tiktalik.io:1600/api';
116
- public static readonly defaultRestApiUrl = 'https://polfan.pl/webservice/api';
117
- public static readonly defaultAvatarUrlPrefix = 'https://polfan.pl/modules/users/avatars/';
118
-
119
- public static async getToken(
120
- login: string,
121
- password: string,
122
- clientName: string = Client.defaultClientName
123
- ): Promise<TokenInterface> {
124
- const connection = new RestApiConnection({url: Client.defaultRestApiUrl});
125
- const response = await connection.send('POST', 'auth/tokens', {
126
- login, password, client_name: clientName
127
- });
128
- if (response.ok) {
129
- return response.data;
130
- }
131
- throw new Error(`Cannot create user token: ${response.data.errors[0]}`);
132
- }
133
-
134
- public static createByToken(token: string): Client {
135
- return new Client(
136
- new WebSocketConnection({token, url: Client.defaultWebSocketUrl}),
137
- new RestApiConnection({token, url: Client.defaultRestApiUrl}),
138
- );
139
- }
140
-
141
- public static createByTemporaryNick(temporaryNick: string): Client {
142
- return new Client(
143
- new WebSocketConnection({temporaryNick, url: Client.defaultWebSocketUrl}),
144
- new RestApiConnection({url: Client.defaultRestApiUrl}),
145
- );
146
- }
147
-
148
- protected commandsCount = 0;
149
- protected awaitingResponse: Map<string, ArrayOfPromiseResolvers> = new Map<string, ArrayOfPromiseResolvers>();
150
- protected eventsMap: {[x: string]: typeof Dto};
151
- protected reconnecting: boolean;
152
-
153
- public constructor(
154
- public readonly chatConnection: ChatConnectionInterface,
155
- public readonly restConnection: RestApiConnection,
156
- ) {
157
- super();
158
- this.setCustomEventMap({}); // Set default event map.
159
- this.chatConnection.on(ChatConnectionEvent.message, (payload: any) => this.onMessage(payload));
160
- this.chatConnection.on(ChatConnectionEvent.destroy, (reconnect: boolean) => this.onDisconnect(reconnect));
161
- this.chatConnection.on(ChatConnectionEvent.ready, () => {
162
- if (this.reconnecting) {
163
- this.reconnecting = false;
164
- this.emit(ClientEvent.renewalSuccess);
165
- return;
166
- }
167
- this.emit(ClientEvent.ready);
168
- });
169
- this.chatConnection.on(ChatConnectionEvent.error, () => {
170
- if (this.reconnecting) {
171
- this.reconnecting = false;
172
- this.emit(ClientEvent.renewalError);
173
- }
174
- });
175
- }
176
-
177
- /**
178
- * Send command to chat server.
179
- * @param commandPayload Command payload object.
180
- * @param commandType Command type; if not specified, it will be guessed from the command payload class name.
181
- * @return Promise which resolves to the event returned by server (including `Error`)
182
- * in response to command and rejects with connection error.
183
- */
184
- public async sendCommand<CommandT extends Dto = any>(
185
- commandPayload: CommandT,
186
- commandType?: string
187
- ): Promise<CommandsToEventsType<CommandT>> {
188
- const message = this.createEnvelope(commandType ?? guessCommandType(commandPayload), commandPayload);
189
- this.chatConnection.send(message.toRaw());
190
- return new Promise(
191
- (...args) => this.awaitingResponse.set(message.ref as string, args)
192
- );
193
- }
194
-
195
- /**
196
- * Set custom DTO classes for events.
197
- */
198
- public setCustomEventMap(customMap: {[x: string]: typeof Dto}): this {
199
- this.eventsMap = {...events, ...customMap};
200
- return this;
201
- }
202
-
203
- public init(): this {
204
- this.chatConnection.init();
205
- return this;
206
- }
207
-
208
- public destroy(): this {
209
- this.chatConnection.destroy();
210
- return this;
211
- }
212
-
213
- public async getMe(): Promise<MyAccountInterface> {
214
- const response = await this.restConnection.send('GET', 'auth/me');
215
- if (response.ok) {
216
- response.data.id = response.data.id.toString();
217
- return response.data;
218
- }
219
- throw new Error(`Cannot get current user account: ${response.data.errors[0]}`);
220
- }
221
-
222
- public async deleteToken(token: string): Promise<void> {
223
- const response = await this.restConnection.send('DELETE', `auth/tokens/${token}`);
224
- if (!response.ok) {
225
- throw new Error(`Cannot delete access token: ${response.data.errors[0]}`);
226
- }
227
- }
228
-
229
- private onMessage(message: any) {
230
- const dto = this.createEvent(message);
231
-
232
- const [resolve] = this.awaitingResponse.get(message.ref ?? '') ?? [];
233
- if (resolve) {
234
- resolve(dto ?? message.data);
235
- this.awaitingResponse.delete(message.ref as string);
236
- }
237
-
238
- this.emit(ClientEvent.message, message);
239
- this.emit(message.type ?? 'unknown', dto, message);
240
- }
241
-
242
- private onDisconnect(reconnect: boolean): void {
243
- this.awaitingResponse.forEach(([resolve, reject], key: string) => {
244
- reject('Disconnected');
245
- this.awaitingResponse.delete(key);
246
- });
247
- if (reconnect) {
248
- this.reconnecting = true;
249
- this.emit(ClientEvent.renewal);
250
- }
251
- }
252
-
253
- private createEnvelope(commandType: string, dto: Dto): Envelope {
254
- return new Envelope({
255
- type: commandType,
256
- ref: (++this.commandsCount).toString(),
257
- data: dto
258
- });
259
- }
260
-
261
- private createEvent(message: Envelope): Dto | null {
262
- if ((message.type ?? false) && this.eventsMap.hasOwnProperty(message.type)) {
263
- return new (this.eventsMap[message.type] as any)(message.data);
264
- }
265
- return null;
266
- }
267
- }
@@ -1,39 +0,0 @@
1
- export type EventHandler<T = any> = (...args: T[]) => void;
2
- type HandlersMap = Map<string, EventHandler[]>;
3
-
4
- export interface ObservableInterface {
5
- on(eventName: string, handler: EventHandler): ObservableInterface;
6
- once(eventName: string, handler: EventHandler): ObservableInterface;
7
- }
8
-
9
- export abstract class EventTarget implements ObservableInterface {
10
- protected events: HandlersMap = new Map<string, EventHandler[]>();
11
- protected onceEvents: HandlersMap = new Map<string, EventHandler[]>();
12
-
13
- public on(eventName: string, handler: EventHandler): EventTarget {
14
- this.addHandler(this.events, eventName, handler);
15
- return this;
16
- }
17
-
18
- public once(eventName: string, handler: EventHandler): EventTarget {
19
- this.addHandler(this.onceEvents, eventName, handler);
20
- return this;
21
- }
22
-
23
- public emit(eventName: string, ...args: any): EventTarget {
24
- this.callHandlers(this.events, eventName, args);
25
- this.callHandlers(this.onceEvents, eventName, args);
26
- this.onceEvents.delete(eventName);
27
- return this;
28
- }
29
-
30
- private addHandler(map: HandlersMap, eventName: string, handler: EventHandler): void {
31
- const handlers = map.get(eventName) ?? [];
32
- handlers.push(handler);
33
- map.set(eventName, handlers);
34
- }
35
-
36
- private callHandlers(map: HandlersMap, eventName: string, args: any[]): void {
37
- map.get(eventName)?.forEach(callback => callback(...args));
38
- }
39
- }