polfan-server-js-client 0.2.71 → 0.2.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","mappings":"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","sources":["webpack://polfan-server-js-client/webpack/bootstrap","webpack://polfan-server-js-client/webpack/runtime/define property getters","webpack://polfan-server-js-client/webpack/runtime/hasOwnProperty shorthand","webpack://polfan-server-js-client/webpack/runtime/make namespace object","webpack://polfan-server-js-client/./src/EventTarget.ts","webpack://polfan-server-js-client/./src/AbstractChatClient.ts","webpack://polfan-server-js-client/./src/IndexedObjectCollection.ts","webpack://polfan-server-js-client/./src/state-tracker/AsyncUtils.ts","webpack://polfan-server-js-client/./src/state-tracker/TopicHistoryWindow.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomMessagesHistory.ts","webpack://polfan-server-js-client/./src/state-tracker/MessagesManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/functions.ts","webpack://polfan-server-js-client/./src/state-tracker/SpacesManager.ts","webpack://polfan-server-js-client/./src/Permissions.ts","webpack://polfan-server-js-client/./src/state-tracker/PermissionsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/EmoticonsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/UsersManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RelationshipsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/ChatStateTracker.ts","webpack://polfan-server-js-client/./src/WebSocketChatClient.ts","webpack://polfan-server-js-client/./src/WebApiChatClient.ts","webpack://polfan-server-js-client/./src/AbstractRestClient.ts","webpack://polfan-server-js-client/./src/AuthClient.ts","webpack://polfan-server-js-client/./src/FilesClient.ts","webpack://polfan-server-js-client/./src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export type EventHandler<EventT> = (ev?: EventT) => void;\r\ntype HandlersMap<EventT> = Map<string, EventHandler<EventT>[]>;\r\n\r\nexport interface ObservableInterface<EventT = any> {\r\n on(eventName: string, handler: EventHandler<EventT>): this;\r\n once(eventName: string, handler: EventHandler<EventT>): this;\r\n off(eventName: string, handler: EventHandler<EventT>): this;\r\n}\r\n\r\nexport class EventTarget<EventT = any> implements ObservableInterface<EventT> {\r\n protected events: HandlersMap<EventT> = new Map<string, EventHandler<EventT>[]>();\r\n protected onceEvents: HandlersMap<EventT> = new Map<string, EventHandler<EventT>[]>();\r\n\r\n public on(eventName: string, handler: EventHandler<EventT>): this {\r\n this.addHandler(this.events, eventName, handler);\r\n return this;\r\n }\r\n\r\n public once(eventName: string, handler: EventHandler<EventT>): this {\r\n this.addHandler(this.onceEvents, eventName, handler);\r\n return this;\r\n }\r\n\r\n public off(eventName: string, handler: EventHandler<EventT>): this {\r\n const index = this.events.get(eventName)?.indexOf(handler);\r\n if (!index || index < 0) {\r\n return this;\r\n }\r\n this.events.get(eventName).splice(index, 1);\r\n return this;\r\n }\r\n\r\n public emit(eventName: string, event?: EventT): this {\r\n this.callHandlers(this.events, eventName, event);\r\n this.callHandlers(this.onceEvents, eventName, event);\r\n this.onceEvents.delete(eventName);\r\n return this;\r\n }\r\n\r\n private addHandler(map: HandlersMap<EventT>, eventName: string, handler: EventHandler<EventT>): void {\r\n const handlers = map.get(eventName) ?? [];\r\n handlers.push(handler);\r\n map.set(eventName, handlers);\r\n }\r\n\r\n private callHandlers(map: HandlersMap<EventT>, eventName: string, event: EventT): void {\r\n map.get(eventName)?.forEach(callback => callback(event));\r\n }\r\n}","import {\r\n Bye,\r\n GetSession,\r\n JoinSpace,\r\n Session,\r\n SpaceJoined,\r\n Error as ErrorType,\r\n SpaceLeft,\r\n SpaceMemberJoined,\r\n SpaceMemberLeft,\r\n SpaceMemberUpdated,\r\n SpaceDeleted,\r\n SpaceMembers,\r\n SpaceRooms,\r\n NewRole,\r\n RoomDeleted,\r\n RoomJoined,\r\n RoomLeft,\r\n RoomMemberLeft,\r\n RoomMemberJoined,\r\n RoomMembers,\r\n NewRoom,\r\n NewTopic,\r\n TopicDeleted,\r\n NewMessage,\r\n GetPermissionOverwrites,\r\n GetComputedPermissions,\r\n LeaveSpace,\r\n CreateSpace,\r\n DeleteSpace,\r\n GetSpaceMembers,\r\n GetSpaceRooms,\r\n CreateRole,\r\n DeleteRole,\r\n AssignRole,\r\n DeassignRole,\r\n SetPermissionOverwrites,\r\n JoinRoom,\r\n LeaveRoom,\r\n CreateRoom,\r\n DeleteRoom,\r\n GetRoomMembers,\r\n CreateTopic,\r\n DeleteTopic,\r\n CreateMessage,\r\n Envelope,\r\n PermissionOverwrites,\r\n PermissionOverwritesUpdated,\r\n RoomMemberUpdated,\r\n UpdateRole,\r\n RoleUpdated,\r\n Ack,\r\n UserUpdated,\r\n UpdateRoom,\r\n RoomUpdated,\r\n UpdateSpace,\r\n SpaceUpdated,\r\n PermissionOverwriteTargets,\r\n GetPermissionOverwriteTargets,\r\n Owners,\r\n Ok,\r\n GetOwners,\r\n CreateOwner,\r\n RoleDeleted,\r\n FollowedTopicUpdated,\r\n TopicFollowed,\r\n TopicUnfollowed,\r\n FollowedTopics,\r\n FollowTopic,\r\n UnfollowTopic,\r\n GetFollowedTopics,\r\n Messages,\r\n GetMessages,\r\n Topics,\r\n GetTopics,\r\n TopicUpdated,\r\n UpdateTopic,\r\n GetDiscoverableSpaces,\r\n DiscoverableSpaces,\r\n CreateEmoticon,\r\n DeleteEmoticon,\r\n GetEmoticons,\r\n Emoticons,\r\n EmoticonDeleted,\r\n NewEmoticon,\r\n Bans,\r\n GetBans,\r\n Ban,\r\n Unban,\r\n Kick,\r\n ClientData,\r\n GetClientData,\r\n SetClientData,\r\n GetRoomSummary,\r\n GetSpaceSummary,\r\n RoomSummaryEvent,\r\n SpaceSummaryEvent,\r\n UpdateSpaceMember,\r\n Relationships,\r\n RelationshipDeleted,\r\n NewRelationship,\r\n DeleteRelationship,\r\n CreateRelationship,\r\n RoomSummaryUpdated, Pong, Ping,\r\n} from \"./types/src/index\";\r\nimport {EventTarget} from \"./EventTarget\";\r\nimport {GetRelationships} from \"./types/src/schemes/commands/GetRelationships\";\r\nimport {UpdateRoomMember} from \"./types/src/schemes/commands/UpdateRoomMember\";\r\n\r\ntype ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];\r\n\r\nexport abstract class AbstractChatClient extends EventTarget {\r\n protected awaitingResponse: Map<string, ArrayOfPromiseResolvers> = new Map<string, ArrayOfPromiseResolvers>();\r\n protected sentCounter: number = 0;\r\n\r\n public abstract send<CommandType extends keyof CommandsMap>\r\n (commandType: CommandType, commandData: CommandsMap[CommandType][0]): Promise<CommandResult<CommandsMap[CommandType][1]>>;\r\n\r\n public on<EventName extends keyof EventsMap>\r\n (eventName: EventName | string, handler: (event: EventsMap[EventName]) => void): this {\r\n return super.on(eventName, handler);\r\n }\r\n\r\n public once<EventName extends keyof EventsMap>\r\n (eventName: EventName, handler: (event: EventsMap[EventName]) => void): this {\r\n return super.once(eventName, handler);\r\n }\r\n\r\n protected createEnvelope<CommandT>(type: string, data: CommandT): Envelope<CommandT> {\r\n return {\r\n type, data, ref: (++this.sentCounter).toString()\r\n };\r\n }\r\n\r\n protected createPromiseFromCommandEnvelope\r\n <CommandT extends keyof CommandsMap>(envelope: Envelope<CommandsMap[CommandT][0]>):\r\n Promise<CommandResult<CommandsMap[CommandT][1]>> {\r\n return new Promise((...args) =>\r\n this.awaitingResponse.set(envelope.ref as string, args));\r\n }\r\n\r\n protected handleIncomingEnvelope(envelope: Envelope): void {\r\n if (!this.awaitingResponse.has(envelope.ref)) {\r\n return;\r\n }\r\n const isError = envelope.type === 'Error';\r\n this.awaitingResponse.get(envelope.ref)[0]({\r\n data: isError ? null : envelope.data,\r\n error: isError ? envelope.data : null,\r\n } as CommandResult<any>);\r\n this.awaitingResponse.delete(envelope.ref);\r\n }\r\n\r\n protected handleEnvelopeSendError(envelope: Envelope, error: any): void {\r\n if (!this.awaitingResponse.has(envelope.ref)) {\r\n return;\r\n }\r\n this.awaitingResponse.get(envelope.ref)[1](error);\r\n this.awaitingResponse.delete(envelope.ref);\r\n }\r\n}\r\n\r\nexport type CommandResult<ResultT> = {data?: ResultT, error?: ErrorType};\r\n\r\n/**\r\n * Map of incoming events.\r\n */\r\nexport type EventsMap = {\r\n // General Events\r\n Bye: Bye,\r\n Ok: Ok,\r\n Error: ErrorType,\r\n Session: Session,\r\n Permissions: Permissions,\r\n PermissionOverwrites: PermissionOverwrites,\r\n PermissionOverwritesUpdated: PermissionOverwritesUpdated,\r\n PermissionOverwriteTargets: PermissionOverwriteTargets,\r\n Owners: Owners,\r\n NewEmoticon: NewEmoticon,\r\n EmoticonDeleted: EmoticonDeleted,\r\n Emoticons: Emoticons,\r\n Bans: Bans,\r\n ClientData: ClientData,\r\n NewRelationship: NewRelationship,\r\n RelationshipDeleted: RelationshipDeleted,\r\n Relationships: Relationships,\r\n Pong: Pong,\r\n // Space events\r\n DiscoverableSpaces: DiscoverableSpaces,\r\n SpaceJoined: SpaceJoined,\r\n SpaceLeft: SpaceLeft,\r\n SpaceMemberJoined: SpaceMemberJoined,\r\n SpaceMemberLeft: SpaceMemberLeft,\r\n SpaceMemberUpdated: SpaceMemberUpdated,\r\n SpaceUpdated: SpaceUpdated,\r\n SpaceDeleted: SpaceDeleted,\r\n SpaceMembers: SpaceMembers,\r\n SpaceRooms: SpaceRooms,\r\n NewRole: NewRole,\r\n RoleDeleted: RoleDeleted,\r\n RoleUpdated: RoleUpdated,\r\n SpaceSummaryEvent: SpaceSummaryEvent,\r\n // Room events\r\n RoomJoined: RoomJoined,\r\n RoomLeft: RoomLeft,\r\n RoomMemberJoined: RoomMemberJoined,\r\n RoomMemberLeft: RoomMemberLeft,\r\n RoomMemberUpdated: RoomMemberUpdated,\r\n RoomMembers: RoomMembers,\r\n NewRoom: NewRoom,\r\n RoomDeleted: RoomDeleted,\r\n RoomUpdated: RoomUpdated,\r\n RoomSummaryEvent: RoomSummaryEvent,\r\n RoomSummaryUpdated: RoomSummaryUpdated,\r\n // Topic events\r\n NewTopic: NewTopic,\r\n TopicDeleted: TopicDeleted,\r\n NewMessage: NewMessage,\r\n UserUpdated: UserUpdated,\r\n TopicFollowed: TopicFollowed,\r\n TopicUnfollowed: TopicUnfollowed,\r\n FollowedTopics: FollowedTopics,\r\n FollowedTopicUpdated: FollowedTopicUpdated,\r\n Messages: Messages,\r\n Topics: Topics,\r\n TopicUpdated: TopicUpdated,\r\n};\r\n\r\n/**\r\n * Map of commands and their corresponding events.\r\n */\r\nexport type CommandsMap = {\r\n // General commands\r\n GetSession: [GetSession, EventsMap['Session']],\r\n SetPermissionOverwrites: [SetPermissionOverwrites, EventsMap['PermissionOverwritesUpdated']],\r\n GetPermissionOverwrites: [GetPermissionOverwrites, EventsMap['PermissionOverwrites']],\r\n GetComputedPermissions: [GetComputedPermissions, EventsMap['Permissions']],\r\n GetPermissionOverwriteTargets: [GetPermissionOverwriteTargets, EventsMap['PermissionOverwriteTargets']],\r\n GetOwners: [GetOwners, EventsMap['Owners']],\r\n CreateOwner: [CreateOwner, EventsMap['Owners']],\r\n DeleteOwner: [CreateOwner, EventsMap['Owners']],\r\n CreateEmoticon: [CreateEmoticon, EventsMap['NewEmoticon']],\r\n DeleteEmoticon: [DeleteEmoticon, EventsMap['EmoticonDeleted']],\r\n GetEmoticons: [GetEmoticons, EventsMap['Emoticons']],\r\n GetBans: [GetBans, EventsMap['Bans']],\r\n Ban: [Ban, EventsMap['Ok']],\r\n Unban: [Unban, EventsMap['Ok']],\r\n Kick: [Kick, EventsMap['Ok']],\r\n GetClientData: [GetClientData, EventsMap['ClientData']],\r\n SetClientData: [SetClientData, EventsMap['Ok']],\r\n DeleteRelationship: [DeleteRelationship, EventsMap['RelationshipDeleted']],\r\n CreateRelationship: [CreateRelationship, EventsMap['NewRelationship']],\r\n GetRelationships: [GetRelationships, EventsMap['Relationships']],\r\n Ping: [Ping, EventsMap['Pong']],\r\n // Space commands\r\n GetDiscoverableSpaces: [GetDiscoverableSpaces, EventsMap['DiscoverableSpaces']],\r\n JoinSpace: [JoinSpace, EventsMap['SpaceJoined']],\r\n LeaveSpace: [LeaveSpace, EventsMap['SpaceLeft']],\r\n CreateSpace: [CreateSpace, EventsMap['SpaceJoined']],\r\n UpdateSpace: [UpdateSpace, EventsMap['SpaceUpdated']],\r\n DeleteSpace: [DeleteSpace, EventsMap['SpaceDeleted']],\r\n GetSpaceMembers: [GetSpaceMembers, EventsMap['SpaceMembers']],\r\n GetSpaceRooms: [GetSpaceRooms, EventsMap['SpaceRooms']],\r\n CreateRole: [CreateRole, EventsMap['NewRole']],\r\n DeleteRole: [DeleteRole, EventsMap['RoleDeleted']],\r\n UpdateRole: [UpdateRole, EventsMap['RoleUpdated']],\r\n AssignRole: [AssignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']],\r\n DeassignRole: [DeassignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']],\r\n GetSpaceSummary: [GetSpaceSummary, EventsMap['SpaceSummaryEvent']],\r\n UpdateSpaceMember: [UpdateSpaceMember, EventsMap['SpaceMemberUpdated']],\r\n // Room commands\r\n JoinRoom: [JoinRoom, EventsMap['RoomJoined']],\r\n LeaveRoom: [LeaveRoom, EventsMap['RoomLeft']],\r\n CreateRoom: [CreateRoom, EventsMap['RoomJoined']],\r\n DeleteRoom: [DeleteRoom, EventsMap['RoomDeleted']],\r\n UpdateRoom: [UpdateRoom, EventsMap['RoomUpdated']],\r\n GetRoomMembers: [GetRoomMembers, EventsMap['RoomMembers']],\r\n GetRoomSummary: [GetRoomSummary, EventsMap['RoomSummaryEvent']],\r\n UpdateRoomMember: [UpdateRoomMember, EventsMap['RoomMemberUpdated']],\r\n // Topic commands\r\n CreateTopic: [CreateTopic, EventsMap['NewTopic']],\r\n DeleteTopic: [DeleteTopic, EventsMap['TopicDeleted']],\r\n CreateMessage: [CreateMessage, EventsMap['NewMessage']],\r\n Ack: [Ack, EventsMap['FollowedTopicUpdated'] | EventsMap['Ok']],\r\n FollowTopic: [FollowTopic, EventsMap['TopicFollowed']],\r\n UnfollowTopic: [UnfollowTopic, EventsMap['TopicUnfollowed']],\r\n GetFollowedTopics: [GetFollowedTopics, EventsMap['FollowedTopics']],\r\n GetMessages: [GetMessages, EventsMap['Messages']],\r\n GetTopics: [GetTopics, EventsMap['Topics']],\r\n UpdateTopic: [UpdateTopic, EventsMap['TopicUpdated']],\r\n}","import {EventTarget, ObservableInterface} from \"./EventTarget\";\r\n\r\nexport class IndexedCollection<KeyT, ValueT> {\r\n protected _items: Map<KeyT, ValueT> = new Map();\r\n\r\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\r\n this.set(...items);\r\n }\r\n\r\n public get items(): Map<KeyT, ValueT> {\r\n return this._items;\r\n }\r\n\r\n public get length(): number {\r\n return this._items.size;\r\n }\r\n\r\n public set(...items: [KeyT, ValueT][]): void {\r\n for (const item of items) {\r\n this._items.set(item[0], item[1]);\r\n }\r\n }\r\n\r\n public get(id: KeyT): ValueT | undefined {\r\n return this.items.get(id);\r\n }\r\n\r\n public has(id: KeyT): boolean {\r\n return this.items.has(id);\r\n }\r\n\r\n public delete(...ids: KeyT[]): void {\r\n for (const id of ids) {\r\n this.items.delete(id);\r\n }\r\n }\r\n\r\n public deleteAll(): void {\r\n this.items.clear();\r\n }\r\n\r\n public findBy(field: keyof ValueT, valueToFind: any, limit: number = null): IndexedCollection<KeyT, ValueT> {\r\n const result = new IndexedCollection<KeyT, ValueT>();\r\n let item;\r\n while (!(item = this.items.entries().next().value).done) {\r\n if (limit && result.length === limit) {\r\n break;\r\n }\r\n if (item[1][field] === valueToFind) {\r\n result.set(item);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n public createMirror(): IndexedCollection<KeyT, ValueT> {\r\n const copy = new IndexedCollection<KeyT, ValueT>();\r\n copy._items = this._items;\r\n return copy;\r\n }\r\n}\r\n\r\nexport class IndexedObjectCollection<T> {\r\n protected _items: IndexedCollection<string, T>;\r\n\r\n public constructor(\r\n public readonly id: keyof T | ((item: T) => any),\r\n items: T[] = [],\r\n ) {\r\n this._items = new IndexedCollection<string, T>();\r\n this.set(...items);\r\n }\r\n\r\n public get items(): T[] {\r\n return Array.from(this._items.items.values());\r\n }\r\n\r\n public get length(): number {\r\n return this._items.length;\r\n }\r\n\r\n public set(...items: T[]): void {\r\n this._items.set(...(items.map(item => [this.getId(item), item] as [string, T])));\r\n }\r\n\r\n public get(id: any): T | undefined {\r\n return this._items.get(id);\r\n }\r\n\r\n public getAt(index: number): T | undefined {\r\n return this.items[index];\r\n }\r\n\r\n public has(id: any): boolean {\r\n return this._items.has(id);\r\n }\r\n\r\n public delete(...ids: any[]): void {\r\n this._items.delete(...ids);\r\n }\r\n\r\n public deleteAll(): void {\r\n this._items.deleteAll();\r\n }\r\n\r\n public findBy(field: keyof T, valueToFind: any, limit: number = null): IndexedObjectCollection<T> {\r\n const result = new IndexedObjectCollection<T>(this.id);\r\n for (const value of this.items) {\r\n if (limit && result.length === limit) {\r\n break;\r\n }\r\n if (value[field] === valueToFind) {\r\n result.set(value);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n public createMirror(): IndexedObjectCollection<T> {\r\n const copy = new IndexedObjectCollection<T>(this.id);\r\n copy._items = this._items;\r\n return copy;\r\n }\r\n\r\n protected getId(item: T): any {\r\n return typeof this.id === 'function' ? this.id(item) : item[this.id];\r\n }\r\n}\r\n\r\ninterface ObservableCollectionEvent<KeyT> {\r\n setItems?: KeyT[],\r\n deletedItems?: KeyT[],\r\n}\r\n\r\nexport class ObservableIndexedCollection<KeyT, ValueT> extends IndexedCollection<KeyT, ValueT> implements ObservableInterface {\r\n protected eventTarget: EventTarget<ObservableCollectionEvent<KeyT>>;\r\n\r\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\r\n super();\r\n this.eventTarget = new EventTarget<ObservableCollectionEvent<KeyT>>();\r\n this.set(...items);\r\n }\r\n\r\n public set(...items: [KeyT, ValueT][]) {\r\n if (items.length) {\r\n super.set(...items);\r\n this.eventTarget.emit('change', {setItems: items.map(item => item[0])});\r\n }\r\n }\r\n\r\n public delete(...ids: KeyT[]) {\r\n if (ids.length) {\r\n super.delete(...ids);\r\n this.eventTarget.emit('change', {deletedItems: ids});\r\n }\r\n }\r\n\r\n public deleteAll() {\r\n if (this.length) {\r\n const ids = this._items.keys();\r\n super.deleteAll();\r\n this.eventTarget.emit('change', {deletedItems: Array.from(ids)});\r\n }\r\n }\r\n\r\n public createMirror(): ObservableIndexedCollection<KeyT, ValueT> {\r\n const copy = new ObservableIndexedCollection<KeyT, ValueT>();\r\n copy.eventTarget = this.eventTarget;\r\n copy._items = this._items;\r\n return copy;\r\n }\r\n\r\n public on(eventName: 'change', handler: (ev?: ObservableCollectionEvent<KeyT>) => void): this {\r\n this.eventTarget.on(eventName, handler);\r\n return this;\r\n }\r\n\r\n public once(eventName: 'change', handler: (ev?: ObservableCollectionEvent<KeyT>) => void): this {\r\n this.eventTarget.once(eventName, handler);\r\n return this;\r\n }\r\n\r\n public off(eventName: string, handler: (ev?: ObservableCollectionEvent<KeyT>) => void): this {\r\n this.eventTarget.off(eventName, handler);\r\n return this;\r\n }\r\n}\r\n\r\nexport class ObservableIndexedObjectCollection<T> extends IndexedObjectCollection<T> implements ObservableInterface {\r\n protected eventTarget: EventTarget<ObservableCollectionEvent<string>>;\r\n\r\n public constructor(\r\n public readonly id: keyof T | ((item: T) => string),\r\n items: T[] = [],\r\n ) {\r\n super(id);\r\n this.eventTarget = new EventTarget();\r\n this.set(...items);\r\n }\r\n\r\n public set(...items: T[]) {\r\n if (items.length) {\r\n super.set(...items);\r\n this.eventTarget.emit('change', {setItems: items.map(item => this.getId(item))});\r\n }\r\n }\r\n\r\n public delete(...ids: string[]) {\r\n if (ids.length) {\r\n super.delete(...ids);\r\n this.eventTarget.emit('change', {deletedItems: ids});\r\n }\r\n }\r\n\r\n public deleteAll() {\r\n if (this.length) {\r\n const ids = this._items.items.keys();\r\n super.deleteAll();\r\n this.eventTarget.emit('change', {deletedItems: Array.from(ids)});\r\n }\r\n }\r\n\r\n public createMirror(): IndexedObjectCollection<T> {\r\n const copy = new ObservableIndexedObjectCollection<T>(this.id);\r\n copy.eventTarget = this.eventTarget;\r\n copy._items = this._items;\r\n return copy;\r\n }\r\n\r\n public on(eventName: 'change', handler: (ev?: ObservableCollectionEvent<string>) => void): this {\r\n this.eventTarget.on(eventName, handler);\r\n return this;\r\n }\r\n\r\n public once(eventName: 'change', handler: (ev?: ObservableCollectionEvent<string>) => void): this {\r\n this.eventTarget.once(eventName, handler);\r\n return this;\r\n }\r\n\r\n public off(eventName: string, handler: (ev?: ObservableCollectionEvent<string>) => void): this {\r\n this.eventTarget.off(eventName, handler);\r\n return this;\r\n }\r\n}","import {IndexedCollection} from \"../IndexedObjectCollection\";\r\n\r\nexport class DeferredTask {\r\n public readonly promise: Promise<void>;\r\n public resolve: () => void;\r\n\r\n public constructor() {\r\n this.promise = new Promise<void>((resolve) => this.resolve = resolve);\r\n }\r\n}\r\n\r\nexport class PromiseRegistry {\r\n private promises = new IndexedCollection<string, Promise<any>>();\r\n\r\n public register<T = any>(promise: Promise<T>, key: string): void {\r\n this.promises.set([key, promise]);\r\n }\r\n\r\n public registerByFunction(fn: () => Promise<any>, key: string): void {\r\n this.register(fn(), key);\r\n }\r\n\r\n public get<T = any>(key: string): Promise<T> | undefined {\r\n return this.promises.get(key);\r\n }\r\n\r\n public has(key: string): boolean {\r\n return this.promises.has(key);\r\n }\r\n\r\n public notExist(key: string): boolean {\r\n return ! this.has(key);\r\n }\r\n\r\n public forget(...keys: string[]): void {\r\n this.promises.delete(...keys);\r\n }\r\n\r\n public forgetAll(): void {\r\n this.promises.deleteAll();\r\n }\r\n}","import {Message, NewMessage, Session, Topic} from \"../types/src\";\r\nimport {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\r\n\r\nexport enum WindowState {\r\n /**\r\n * The latest messages (those received live) are available in the history window, history has not been fetched.\r\n */\r\n LIVE,\r\n\r\n /**\r\n * The latest messages has been fetched and are available in the history window.\r\n */\r\n LATEST,\r\n\r\n /**\r\n * The historical messages have been fetched and are available in the history window.\r\n * Latest messages are not available and will not be available.\r\n */\r\n PAST,\r\n\r\n /**\r\n * The oldest messages have been fetched and are available in the history window.\r\n * Next attempts to fetch previous messages will result with no-op.\r\n */\r\n OLDEST,\r\n}\r\n\r\nexport abstract class TraversableRemoteCollection<T> extends ObservableIndexedObjectCollection<T> {\r\n /**\r\n * Current mode od collection window. To change mode, call one of available fetch methods.\r\n */\r\n public get state(): WindowState {\r\n return this.internalState.current;\r\n }\r\n\r\n protected internalState: {\r\n current: WindowState,\r\n ongoing?: WindowState,\r\n limit: number | null,\r\n oldestId: string | null,\r\n } = {\r\n current: WindowState.LIVE,\r\n ongoing: undefined,\r\n limit: 50,\r\n oldestId: null,\r\n };\r\n\r\n /**\r\n * Maximum numer of items stored in window.\r\n * Null for unlimited.\r\n */\r\n public get limit(): number | null {\r\n return this.internalState.limit;\r\n }\r\n\r\n /**\r\n * Maximum numer of items stored in window.\r\n * Null for unlimited.\r\n */\r\n public set limit(value: number | null) {\r\n this.internalState.limit = value;\r\n }\r\n\r\n public get hasLatest(): boolean {\r\n return [WindowState.LATEST, WindowState.LIVE].includes(this.state);\r\n }\r\n\r\n public get hasOldest(): boolean {\r\n return this.state === WindowState.OLDEST || this.internalState.oldestId !== null && this.has(this.internalState.oldestId);\r\n }\r\n\r\n public abstract createMirror(): TraversableRemoteCollection<T>;\r\n\r\n public async resetToLatest(): Promise<void> {\r\n if (this.internalState.ongoing || this.internalState.current === WindowState.LATEST) {\r\n return;\r\n }\r\n\r\n this.internalState.ongoing = WindowState.LATEST;\r\n\r\n let result;\r\n\r\n try {\r\n result = await this.fetchLatestItems();\r\n } finally {\r\n this.internalState.ongoing = undefined;\r\n }\r\n\r\n this.deleteAll();\r\n this.addItems(result, 'tail');\r\n this.internalState.current = WindowState.LATEST;\r\n }\r\n\r\n public async fetchPrevious(): Promise<void> {\r\n if (this.internalState.ongoing || this.hasOldest) {\r\n return;\r\n }\r\n\r\n this.internalState.ongoing = WindowState.PAST;\r\n\r\n let result;\r\n\r\n try {\r\n result = await this.fetchItemsBefore();\r\n } finally {\r\n this.internalState.ongoing = undefined;\r\n }\r\n\r\n if (! result) {\r\n return this.resetToLatest();\r\n }\r\n\r\n if (! result.length) {\r\n const firstItem = this.getAt(0);\r\n this.internalState.oldestId = firstItem ? this.getId(firstItem) : null;\r\n\r\n await this.refreshFetchedState();\r\n\r\n // LATEST state has priority over OLDEST\r\n if (this.internalState.current === WindowState.PAST) {\r\n this.internalState.current = WindowState.OLDEST;\r\n }\r\n\r\n return;\r\n }\r\n\r\n this.addItems(result, 'head');\r\n await this.refreshFetchedState();\r\n }\r\n\r\n public async fetchNext(): Promise<void> {\r\n if (this.internalState.ongoing || this.hasLatest) {\r\n return;\r\n }\r\n\r\n this.internalState.ongoing = WindowState.PAST;\r\n\r\n let result;\r\n\r\n try {\r\n result = await this.fetchItemsAfter();\r\n } finally {\r\n this.internalState.ongoing = undefined;\r\n }\r\n\r\n if (! result) {\r\n await this.resetToLatest();\r\n return;\r\n }\r\n\r\n if (result.length) {\r\n this.addItems(result, 'tail');\r\n await this.refreshFetchedState();\r\n return;\r\n }\r\n }\r\n\r\n protected abstract fetchLatestItems(): Promise<T[]>;\r\n\r\n protected abstract fetchItemsBefore(): Promise<T[] | null>;\r\n\r\n protected abstract fetchItemsAfter(): Promise<T[] | null>;\r\n\r\n protected abstract isLatestItemLoaded(): Promise<boolean>;\r\n\r\n protected async refreshFetchedState(): Promise<void> {\r\n this.internalState.current = (await this.isLatestItemLoaded()) ? WindowState.LATEST : WindowState.PAST;\r\n }\r\n\r\n protected addItems(newItems: T[], to: 'head' | 'tail'): void {\r\n let result;\r\n\r\n if (to === 'head') {\r\n result = this.trimItemsArrayToLimit([...newItems, ...this.items], 'tail');\r\n }\r\n\r\n if (to === 'tail') {\r\n result = this.trimItemsArrayToLimit([...this.items, ...newItems], 'head');\r\n }\r\n\r\n this.deleteAll();\r\n this.set(...result);\r\n }\r\n\r\n /**\r\n * Return array with messages of count that matching limit.\r\n */\r\n private trimItemsArrayToLimit(items: T[], from: 'head' | 'tail'): T[] {\r\n if (this.limit === null) {\r\n return items;\r\n }\r\n\r\n if (from === 'head') {\r\n return items.slice(-this.limit);\r\n }\r\n\r\n if (from === 'tail') {\r\n return items.slice(0, this.limit);\r\n }\r\n }\r\n}\r\n\r\nexport class TopicHistoryWindow extends TraversableRemoteCollection<Message> {\r\n /**\r\n * Reexported available window modes enum.\r\n */\r\n public readonly WindowState: typeof WindowState = WindowState;\r\n\r\n declare protected internalState: typeof TraversableRemoteCollection<Message>['prototype']['internalState'] & {\r\n traverseLock: boolean,\r\n };\r\n\r\n public constructor(\r\n private roomId: string,\r\n private topicId: string,\r\n private tracker: ChatStateTracker,\r\n bindEvents: boolean = true,\r\n ) {\r\n super('id');\r\n\r\n this.internalState.traverseLock = false;\r\n\r\n if (bindEvents) {\r\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\r\n }\r\n }\r\n\r\n public createMirror(): TopicHistoryWindow {\r\n const copy = new TopicHistoryWindow(this.roomId, this.topicId, this.tracker, false);\r\n copy.eventTarget = this.eventTarget;\r\n copy._items = this._items;\r\n copy.internalState = this.internalState;\r\n return copy;\r\n }\r\n\r\n public get isTraverseLocked(): boolean {\r\n return this.internalState.traverseLock;\r\n }\r\n\r\n public async setTraverseLock(lock: boolean): Promise<void> {\r\n this.internalState.traverseLock = lock;\r\n\r\n if (lock && (this.state !== WindowState.LIVE && this.state !== WindowState.LATEST)) {\r\n await super.resetToLatest();\r\n }\r\n }\r\n\r\n public async resetToLatest(): Promise<void> {\r\n if (this.internalState.traverseLock) {\r\n return;\r\n }\r\n return super.resetToLatest();\r\n }\r\n\r\n public async fetchNext(): Promise<void> {\r\n if (this.internalState.traverseLock) {\r\n return;\r\n }\r\n return super.fetchNext();\r\n }\r\n\r\n public async fetchPrevious(): Promise<void> {\r\n if (this.internalState.traverseLock) {\r\n return;\r\n }\r\n return super.fetchPrevious();\r\n }\r\n\r\n /**\r\n * For internal use.\r\n * @internal\r\n */\r\n public _updateMessageReference(refTopic: Topic): void {\r\n const refMessage = this.get(refTopic.refMessage.id);\r\n\r\n if (refMessage) {\r\n // Update referenced topic ID in message\r\n this.set({...refMessage, topicRef: refTopic.id});\r\n }\r\n }\r\n\r\n private async handleNewMessage(ev: NewMessage): Promise<void> {\r\n if (\r\n [WindowState.LATEST, WindowState.LIVE].includes(this.state)\r\n && ev.message.location.roomId === this.roomId\r\n && ev.message.location.topicId === this.topicId\r\n ) {\r\n this.addItems([ev.message], 'tail');\r\n }\r\n }\r\n\r\n protected async fetchItemsAfter(): Promise<Message[] | null> {\r\n const afterId = this.getAt(this.length - 1)?.id;\r\n\r\n if (! afterId) {\r\n // If there is no message to refer, fetch latest\r\n return null;\r\n }\r\n\r\n const result = await this.tracker.client.send('GetMessages', {\r\n location: {roomId: this.roomId, topicId: this.topicId},\r\n after: afterId,\r\n });\r\n\r\n if (result.error) {\r\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\r\n }\r\n\r\n return result.data.messages;\r\n }\r\n\r\n protected async fetchItemsBefore(): Promise<Message[] | null> {\r\n const beforeId = this.getAt(0)?.id;\r\n\r\n if (! beforeId) {\r\n // If there is no message to refer, fetch latest\r\n return null;\r\n }\r\n\r\n const result = await this.tracker.client.send('GetMessages', {\r\n location: {roomId: this.roomId, topicId: this.topicId},\r\n before: beforeId,\r\n });\r\n\r\n if (result.error) {\r\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\r\n }\r\n\r\n return result.data.messages;\r\n }\r\n\r\n protected async fetchLatestItems(): Promise<Message[]> {\r\n const result = await this.tracker.client.send('GetMessages', {\r\n location: {roomId: this.roomId, topicId: this.topicId},\r\n });\r\n\r\n if (result.error) {\r\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\r\n }\r\n\r\n return result.data.messages;\r\n }\r\n\r\n private async getTopic(): Promise<Topic | undefined> {\r\n return (await this.tracker.rooms.getTopics(this.roomId, [this.topicId])).get(this.topicId);\r\n }\r\n\r\n private async getLatestMessageId(): Promise<string | undefined> {\r\n return (await this.getTopic())?.lastMessage?.id;\r\n }\r\n\r\n protected async isLatestItemLoaded(): Promise<boolean> {\r\n const lastMessageId = await this.getLatestMessageId();\r\n return lastMessageId ? this.has(lastMessageId) : true;\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {NewTopic, Room, RoomUpdated, Topic, TopicDeleted} from \"../types/src\";\r\nimport {IndexedCollection,} from \"../IndexedObjectCollection\";\r\nimport {TopicHistoryWindow} from \"./TopicHistoryWindow\";\r\n\r\nexport class RoomMessagesHistory {\r\n private historyWindows = new IndexedCollection<string, TopicHistoryWindow>();\r\n private traverseLock: boolean = false;\r\n\r\n public constructor(\r\n private room: Room,\r\n private tracker: ChatStateTracker,\r\n ) {\r\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\r\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\r\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\r\n\r\n this.updateTraverseLock(this.room);\r\n\r\n if (this.room.defaultTopic) {\r\n this.createHistoryWindowForTopic(this.room.defaultTopic);\r\n }\r\n }\r\n\r\n /**\r\n * Returns a history window object for the given topic ID, allowing you to view message history.\r\n */\r\n public async getMessagesWindow(topicId: string): Promise<TopicHistoryWindow | undefined> {\r\n let historyWindow = this.historyWindows.get(topicId);\r\n\r\n if (!historyWindow) {\r\n const topic = (await this.tracker.rooms.getTopics(this.room.id, [topicId])).get(topicId);\r\n\r\n if (topic) {\r\n this.createHistoryWindowForTopic(topic);\r\n }\r\n }\r\n\r\n return this.historyWindows.get(topicId);\r\n }\r\n\r\n private async handleRoomUpdated(ev: RoomUpdated): Promise<void> {\r\n if (this.room.id === ev.room.id) {\r\n this.room = ev.room;\r\n\r\n this.updateTraverseLock(ev.room);\r\n\r\n if (ev.room.defaultTopic) {\r\n this.createHistoryWindowForTopic(ev.room.defaultTopic);\r\n }\r\n\r\n for (const [, window] of Array.from(this.historyWindows.items)) {\r\n await window.setTraverseLock(this.traverseLock);\r\n }\r\n }\r\n }\r\n\r\n private handleNewTopic(ev: NewTopic): void {\r\n if (this.room.id === ev.roomId) {\r\n this.createHistoryWindowForTopic(ev.topic);\r\n }\r\n }\r\n\r\n private handleTopicDeleted(ev: TopicDeleted): void {\r\n if (this.room.id === ev.location.roomId) {\r\n this.historyWindows.delete(ev.location.topicId);\r\n }\r\n }\r\n\r\n private createHistoryWindowForTopic(topic: Topic): void {\r\n if (this.historyWindows.has(topic.id)) {\r\n return;\r\n }\r\n\r\n const historyWindow = new TopicHistoryWindow(this.room.id, topic.id, this.tracker);\r\n\r\n void historyWindow.setTraverseLock(this.traverseLock);\r\n\r\n this.historyWindows.set([topic.id, historyWindow]);\r\n\r\n // If new topic refers to some message from this room, update other structures\r\n if (topic.refMessage) {\r\n const refHistoryWindow = this.historyWindows.get(topic.refMessage.location.topicId);\r\n refHistoryWindow?._updateMessageReference(topic);\r\n }\r\n }\r\n\r\n private updateTraverseLock(room: Room): void {\r\n this.traverseLock = room.history.mode === 'Ephemeral';\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {\r\n NewMessage,\r\n FollowedTopic,\r\n TopicFollowed,\r\n TopicUnfollowed,\r\n RoomDeleted,\r\n RoomLeft,\r\n TopicDeleted,\r\n FollowedTopicUpdated, RoomJoined, NewTopic, Session, Room, MessageType,\r\n} from \"../types/src\";\r\nimport {\r\n IndexedCollection,\r\n ObservableIndexedObjectCollection\r\n} from \"../IndexedObjectCollection\";\r\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\r\nimport {RoomMessagesHistory} from \"./RoomMessagesHistory\";\r\n\r\nexport class MessagesManager {\r\n private readonly roomHistories = new IndexedCollection<string, RoomMessagesHistory>();\r\n private readonly followedTopics = new IndexedCollection<string, ObservableIndexedObjectCollection<FollowedTopic>>();\r\n private readonly followedTopicsPromises = new PromiseRegistry();\r\n private readonly deferredSession = new DeferredTask();\r\n\r\n public constructor(private tracker: ChatStateTracker) {\r\n this.tracker.client.on('Session', ev => this.handleSession(ev));\r\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\r\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\r\n this.tracker.client.on('FollowedTopicUpdated', ev => this.handleFollowedTopicUpdated(ev));\r\n this.tracker.client.on('TopicFollowed', ev => this.handleTopicFollowed(ev));\r\n this.tracker.client.on('TopicUnfollowed', ev => this.handleTopicUnfollowed(ev));\r\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\r\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\r\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\r\n }\r\n\r\n /**\r\n * Get history manager for given room ID.\r\n */\r\n public async getRoomHistory(roomId: string): Promise<RoomMessagesHistory | undefined> {\r\n await this.deferredSession.promise;\r\n return this.roomHistories.get(roomId);\r\n }\r\n\r\n /**\r\n * Cache followed topics for all joined rooms in a space and fetch them in bulk if necessary.\r\n * Then you can get them using getRoomFollowedTopics().\r\n * @see getRoomFollowedTopics\r\n */\r\n public async cacheSpaceFollowedTopics(spaceId: string | null): Promise<void> {\r\n if (spaceId && ! (await this.tracker.spaces.get()).has(spaceId)) {\r\n throw new Error(`You are not in space ${spaceId}`);\r\n }\r\n\r\n const roomIds = (await this.tracker.rooms.get()).findBy('spaceId', spaceId).items.map(room => room.id);\r\n\r\n if (! roomIds.length) {\r\n // We don't need to ping server for followed topics for this space, if user has no joined rooms\r\n return;\r\n }\r\n\r\n const resultPromise = this.tracker.client.send('GetFollowedTopics', {location: {spaceId}});\r\n\r\n roomIds.forEach(roomId => this.followedTopicsPromises.register(resultPromise, roomId));\r\n\r\n const result = await resultPromise;\r\n\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n\r\n this.setFollowedTopicsArray(roomIds, result.data.followedTopics);\r\n }\r\n\r\n /**\r\n * Get followed topics for the given room.\r\n * @return Undefined if you are not in the room, collection otherwise.\r\n */\r\n public async getRoomFollowedTopics(roomId: string): Promise<ObservableIndexedObjectCollection<FollowedTopic> | undefined> {\r\n if (! (await this.tracker.rooms.get()).has(roomId)) {\r\n return undefined;\r\n }\r\n\r\n if (! this.followedTopics.has(roomId)) {\r\n if (this.followedTopicsPromises.notExist(roomId)) {\r\n this.followedTopicsPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {roomId}});\r\n\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n\r\n this.setFollowedTopicsArray([roomId], result.data.followedTopics);\r\n }, roomId);\r\n }\r\n\r\n await this.followedTopicsPromises.get(roomId);\r\n }\r\n\r\n return this.followedTopics.get(roomId);\r\n }\r\n\r\n /**\r\n * Batch acknowledge all missed messages from any topics in given room.\r\n */\r\n public async ackRoomFollowedTopics(roomId: string): Promise<void> {\r\n const collection = await this.getRoomFollowedTopics(roomId);\r\n\r\n if (! collection) {\r\n return;\r\n }\r\n\r\n for (const followedTopic of collection.items) {\r\n if (followedTopic.missed) {\r\n await this.tracker.client.send('Ack', {location: followedTopic.location});\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Calculate missed messages from any topic in given room.\r\n * @return Undefined if you are not in room.\r\n */\r\n public async calculateRoomMissedMessages(roomId: string): Promise<number | undefined> {\r\n const collection = await this.getRoomFollowedTopics(roomId);\r\n\r\n if (collection) {\r\n return collection.items.reduce(\r\n (previousValue, currentValue) => previousValue + (currentValue.missed ?? 0),\r\n 0,\r\n );\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * For internal use. If you want to delete the message, execute a proper command on client object.\r\n * @internal\r\n */\r\n public _deleteByTopicIds(roomId: string, ...topicIds: string[]): void {\r\n this.followedTopics.get(roomId)?.delete(...topicIds);\r\n }\r\n\r\n private createHistoryForNewRoom(room: Room): void {\r\n this.roomHistories.set([room.id, new RoomMessagesHistory(room, this.tracker)]);\r\n }\r\n\r\n private handleNewMessage(ev: NewMessage): void {\r\n this.updateLocallyFollowedTopicOnNewMessage(ev);\r\n }\r\n\r\n private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {\r\n this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);\r\n }\r\n\r\n private handleTopicFollowed(ev: TopicFollowed): void {\r\n this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);\r\n }\r\n\r\n private handleTopicUnfollowed(ev: TopicUnfollowed): void {\r\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\r\n }\r\n\r\n private handleRoomDeleted(ev: RoomDeleted): void {\r\n this.roomHistories.delete(ev.id);\r\n this.clearRoomFollowedTopicsStructures(ev.id);\r\n }\r\n\r\n private handleRoomJoin(ev: RoomJoined): void {\r\n this.createHistoryForNewRoom(ev.room)\r\n this.clearRoomFollowedTopicsStructures(ev.room.id);\r\n }\r\n\r\n private handleRoomLeft(ev: RoomLeft): void {\r\n this.roomHistories.delete(ev.id);\r\n this.clearRoomFollowedTopicsStructures(ev.id);\r\n }\r\n\r\n private async handleNewTopic(ev: NewTopic): Promise<void> {\r\n if (this.followedTopics.has(ev.roomId)) {\r\n // Check if the new topic is followed by user\r\n // only if client asked for followed topics list before for this room\r\n const result = await this.tracker.client.send(\r\n 'GetFollowedTopics',\r\n {location: {roomId: ev.roomId, topicId: ev.topic.id}},\r\n );\r\n const followedTopic = result.data.followedTopics[0];\r\n if (followedTopic) {\r\n this.followedTopics.get(ev.roomId).set(followedTopic);\r\n }\r\n }\r\n }\r\n\r\n private handleTopicDeleted(ev: TopicDeleted): void {\r\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this.followedTopics.deleteAll();\r\n this.followedTopicsPromises.forgetAll();\r\n this.roomHistories.deleteAll();\r\n ev.state.rooms.forEach(room => this.createHistoryForNewRoom(room));\r\n this.deferredSession.resolve();\r\n }\r\n\r\n private updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): void {\r\n const roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);\r\n const followedTopic = roomFollowedTopics?.get(ev.message.location.topicId);\r\n\r\n if (!roomFollowedTopics || !followedTopic || ev.message.type === 'Ephemeral') {\r\n // Skip if we don't follow this room or targeted topic or the message is ephemeral\r\n return;\r\n }\r\n\r\n const isMe = ev.message.author.user.id === this.tracker.me?.id;\r\n\r\n let update: Partial<FollowedTopic>;\r\n\r\n if (isMe) {\r\n // Reset missed messages count if new message is authored by me\r\n update = {missed: 0, lastAckMessageId: ev.message.id};\r\n } else {\r\n // ...add 1 otherwise\r\n update = {missed: followedTopic.missed === null ? null : followedTopic.missed + 1};\r\n }\r\n\r\n roomFollowedTopics.set({...followedTopic, ...update});\r\n }\r\n\r\n private setFollowedTopicsArray(roomIds: string[], followedTopics: FollowedTopic[]): void {\r\n const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};\r\n\r\n // Reassign followed topics to limit collection change event emit\r\n followedTopics.forEach(followedTopic => {\r\n roomToTopics[followedTopic.location.roomId] ??= [];\r\n roomToTopics[followedTopic.location.roomId].push(followedTopic);\r\n });\r\n\r\n roomIds.forEach(roomId => {\r\n if (! this.followedTopics.has(roomId)) {\r\n this.followedTopics.set([roomId, new ObservableIndexedObjectCollection<FollowedTopic>(\r\n followedTopic => followedTopic.location.topicId\r\n )]);\r\n }\r\n\r\n if (roomToTopics[roomId]) {\r\n this.followedTopics.get(roomId).set(...roomToTopics[roomId]);\r\n }\r\n });\r\n }\r\n\r\n private clearRoomFollowedTopicsStructures(roomId: string): void {\r\n this.followedTopics.delete(roomId);\r\n this.followedTopicsPromises.forget(roomId);\r\n }\r\n}","import {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\r\nimport {\r\n NewMessage,\r\n NewTopic,\r\n Room, RoomDeleted,\r\n RoomJoined, RoomLeft,\r\n RoomMember, RoomMemberJoined, RoomMemberLeft, RoomMembers,\r\n RoomMemberUpdated, RoomUpdated, Session, SpaceDeleted, SpaceLeft, SpaceMemberLeft,\r\n SpaceMemberUpdated,\r\n Topic,\r\n TopicDeleted, TopicUpdated,\r\n UserUpdated,\r\n} from \"../types/src\";\r\nimport {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\r\nimport {MessagesManager} from \"./MessagesManager\";\r\n\r\nexport class RoomsManager {\r\n public readonly messages: MessagesManager;\r\n\r\n private readonly list = new ObservableIndexedObjectCollection<Room>('id');\r\n private readonly topics = new IndexedCollection<string, ObservableIndexedObjectCollection<Topic>>();\r\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomMember>>();\r\n private readonly deferredSession = new DeferredTask();\r\n private readonly membersPromises = new PromiseRegistry();\r\n private readonly topicsPromises = new PromiseRegistry();\r\n\r\n public constructor(private tracker: ChatStateTracker) {\r\n this.messages = new MessagesManager(tracker);\r\n\r\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\r\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\r\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\r\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoined(ev));\r\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\r\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\r\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('TopicUpdated', ev => this.handleTopicUpdated(ev));\r\n this.tracker.client.on('RoomMemberJoined', ev => this.handleRoomMemberJoined(ev));\r\n this.tracker.client.on('RoomMemberLeft', ev => this.handleRoomMemberLeft(ev));\r\n this.tracker.client.on('RoomMembers', ev => this.handleRoomMembers(ev));\r\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\r\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\r\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\r\n this.tracker.client.on('Session', ev => this.handleSession(ev));\r\n }\r\n\r\n /**\r\n * Get collection of room members.\r\n */\r\n public async getMembers(roomId: string): Promise<ObservableIndexedObjectCollection<RoomMember> | undefined> {\r\n if (this.membersPromises.notExist(roomId)) {\r\n this.membersPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetRoomMembers', {id: roomId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleRoomMembers(result.data);\r\n }, roomId);\r\n }\r\n\r\n await this.membersPromises.get(roomId);\r\n return this.members.get(roomId);\r\n }\r\n\r\n /**\r\n * Get a room member representing the current user.\r\n */\r\n public async getMe(roomId: string): Promise<RoomMember | undefined> {\r\n const userId = (await this.tracker.getMe()).id;\r\n\r\n if (! this.list.has(roomId)) {\r\n // User is not in passed room.\r\n return undefined;\r\n }\r\n\r\n const members = await this.getMembers(roomId);\r\n return members?.items.find(member => (member.user?.id ?? member.spaceMember.user.id) === userId);\r\n }\r\n\r\n /**\r\n * Get collection of all the rooms you are in.\r\n */\r\n public async get(): Promise<ObservableIndexedObjectCollection<Room>> {\r\n await this.deferredSession.promise;\r\n return this.list;\r\n }\r\n\r\n /**\r\n * Get a collection of locally cached Topic objects for given room.\r\n * You can pass topic ids as second argument, to try to fetch them from the server.\r\n */\r\n public async getTopics(roomId: string, tryToFetchTopicIds?: string[]): Promise<ObservableIndexedObjectCollection<Topic> | undefined> {\r\n await this.deferredSession.promise;\r\n\r\n if (tryToFetchTopicIds?.length) {\r\n // Topic can be fetched if it isn't already cached and fetch is not already in progress\r\n const canFetch = (topicId: string) => ! this.topics.get(roomId)?.has(topicId) && ! this.topicsPromises.has(roomId + topicId);\r\n const idsToFetch = tryToFetchTopicIds.filter(canFetch);\r\n\r\n if (idsToFetch.length) {\r\n const promise = this.tracker\r\n .client\r\n .send('GetTopics', {roomId, topicIds: idsToFetch})\r\n .then(result => this.topics.get(result.data.location.roomId)?.set(...result.data.topics));\r\n\r\n idsToFetch.forEach(topicId => this.topicsPromises.register(promise, roomId + topicId));\r\n }\r\n\r\n for (const topicId of tryToFetchTopicIds) {\r\n await this.topicsPromises.get(roomId + topicId);\r\n }\r\n }\r\n\r\n return this.topics.get(roomId);\r\n }\r\n\r\n private deleteRoom(...roomIds: string[]): void {\r\n this.list.delete(...roomIds);\r\n this.members.delete(...roomIds);\r\n this.membersPromises.forget(...roomIds);\r\n\r\n for (const roomId of roomIds) {\r\n const topicIds: string[] = this.topics.get(roomId)?.items.map(topic => topic.id) ?? [];\r\n this.messages._deleteByTopicIds(roomId, ...topicIds);\r\n }\r\n\r\n this.topics.delete(...roomIds);\r\n }\r\n\r\n private deleteRoomsBySpaceId(spaceId: string): void {\r\n this.deleteRoom(\r\n ...this.list.findBy('spaceId', spaceId).items.map(room => room.id)\r\n );\r\n }\r\n\r\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\r\n // Update members of rooms related to this space\r\n for (const room of this.list.findBy('spaceId', ev.spaceId).items) {\r\n const roomMembers = this.members.get(room.id);\r\n\r\n if (! roomMembers || ! roomMembers.has(ev.userId)) {\r\n // Skip update if member list for this room is not loaded\r\n // or user is not in room\r\n continue;\r\n }\r\n\r\n const roomMember = roomMembers.get(ev.userId);\r\n const user = roomMember.spaceMember.user;\r\n\r\n // Update space member but first fill user object (it's null in event object)\r\n roomMember.spaceMember = {...ev.member, user};\r\n roomMembers.set(roomMember);\r\n }\r\n }\r\n\r\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\r\n this.list\r\n .findBy('spaceId', ev.spaceId).items\r\n .forEach(room => this.members.get(room.id)?.delete(ev.userId));\r\n }\r\n\r\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\r\n if (! this.members.has(ev.roomId)) {\r\n // We do not track member list for this room.\r\n return;\r\n }\r\n\r\n const members = this.members.get(ev.roomId);\r\n const member = members.get(ev.userId);\r\n const newMember = ev.member;\r\n const user = member.spaceMember?.user ?? member.user;\r\n\r\n // Preserving user object, because it's not included in event\r\n if (newMember.spaceMember) {\r\n newMember.spaceMember.user = user;\r\n } else {\r\n newMember.user = user;\r\n }\r\n\r\n members.set(newMember);\r\n }\r\n\r\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\r\n this.deleteRoomsBySpaceId(ev.id);\r\n }\r\n\r\n private handleTopicDeleted(ev: TopicDeleted): void {\r\n const collection = this.topics.get(ev.location.roomId);\r\n collection.delete(ev.location.topicId);\r\n\r\n const room = this.list.get(ev.location.roomId);\r\n if (room.defaultTopic?.id === ev.location.topicId) {\r\n this.list.set({...room, defaultTopic: null});\r\n }\r\n }\r\n\r\n private handleNewTopic(ev: NewTopic): void {\r\n this.addJoinedRoomTopics(ev.roomId, ev.topic);\r\n }\r\n\r\n private addJoinedRoomTopics(roomId: string, ...topics: Topic[]): void {\r\n if (this.topics.has(roomId)) {\r\n this.topics.get(roomId).set(...topics);\r\n } else {\r\n this.topics.set([roomId, new ObservableIndexedObjectCollection<Topic>('id', topics)]);\r\n }\r\n }\r\n\r\n private handleRoomJoined(ev: RoomJoined): void {\r\n this.addJoinedRooms(ev.room);\r\n }\r\n\r\n private handleRoomUpdated(ev: RoomUpdated): void {\r\n if (this.list.has(ev.room.id)) {\r\n this.list.set(ev.room);\r\n }\r\n }\r\n\r\n private handleRoomDeleted(ev: RoomDeleted): void {\r\n this.deleteRoom(ev.id);\r\n }\r\n\r\n private handleTopicUpdated(ev: TopicUpdated): void {\r\n const room = this.list.get(ev.location.roomId);\r\n\r\n if (this.topics.get(ev.location.roomId)?.has(ev.topic.id)) {\r\n this.topics.get(ev.location.roomId).set(ev.topic);\r\n }\r\n\r\n if (room.defaultTopic.id === ev.topic.id) {\r\n room.defaultTopic = ev.topic;\r\n this.list.set(room);\r\n }\r\n }\r\n\r\n private addJoinedRooms(...rooms: Room[]): void {\r\n for (const room of rooms) {\r\n if (room.defaultTopic) {\r\n this.addJoinedRoomTopics(room.id, room.defaultTopic);\r\n }\r\n\r\n if (room.type === 'Pm' && room.recipients) {\r\n // Treat PM recipients as normal room members.\r\n // We are registering fake promise in `memberPromises`\r\n // because GetMembers are not supported for PM rooms.\r\n this.handleRoomMembers({\r\n id: room.id,\r\n members: room.recipients.map(user => ({\r\n user,\r\n spaceMember: null,\r\n roles: null,\r\n customColor: null,\r\n customNick: null,\r\n extras: '',\r\n })),\r\n });\r\n this.membersPromises.register(Promise.resolve(), room.id);\r\n }\r\n }\r\n this.list.set(...rooms);\r\n }\r\n\r\n private handleRoomLeft(ev: RoomLeft): void {\r\n this.deleteRoom(ev.id);\r\n }\r\n\r\n private handleRoomMemberJoined(ev: RoomMemberJoined): void {\r\n if (this.members.has(ev.roomId)) {\r\n this.members.get(ev.roomId).set(ev.member);\r\n }\r\n }\r\n\r\n private handleRoomMemberLeft(ev: RoomMemberLeft): void {\r\n if (this.members.has(ev.roomId)) {\r\n this.members.get(ev.roomId).delete(ev.userId);\r\n }\r\n }\r\n\r\n private handleRoomMembers(ev: RoomMembers): void {\r\n if (! this.members.has(ev.id)) {\r\n this.members.set([\r\n ev.id,\r\n new ObservableIndexedObjectCollection(\r\n member => member.user?.id ?? member.spaceMember.user.id,\r\n ev.members,\r\n )\r\n ]);\r\n }\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this.list.deleteAll();\r\n this.topics.deleteAll();\r\n this.topicsPromises.forgetAll();\r\n this.members.deleteAll();\r\n this.membersPromises.forgetAll();\r\n\r\n this.addJoinedRooms(...ev.state.rooms);\r\n\r\n this.deferredSession.resolve();\r\n }\r\n\r\n private handleUserUpdated(ev: UserUpdated): void {\r\n // Update room members users\r\n this.members.items.forEach((members) => {\r\n const member = members.get(ev.user.id);\r\n\r\n if (! member) {\r\n // Skip room; updated user is not here\r\n return;\r\n }\r\n\r\n const newMember: RoomMember = {...member};\r\n\r\n if (member.user) {\r\n newMember.user = ev.user;\r\n } else {\r\n newMember.spaceMember.user = ev.user;\r\n }\r\n\r\n members.set(newMember);\r\n });\r\n\r\n // Update recipients users\r\n const newRooms: Room[] = [];\r\n this.list.items.forEach(room => {\r\n if (room.recipients?.some(user => user.id === ev.user.id)) {\r\n room.recipients = room.recipients.map(user => user.id === ev.user.id ? ev.user : user);\r\n newRooms.push({...room});\r\n }\r\n });\r\n this.list.set(...newRooms);\r\n }\r\n\r\n private handleNewMessage(ev: NewMessage): void {\r\n const topics = this.topics.get(ev.message.location.roomId);\r\n const topic = topics?.get(ev.message.location.topicId);\r\n\r\n if (!topic) {\r\n return; // No topic found, nothing to update\r\n }\r\n\r\n const newTopic = {\r\n ...topic,\r\n messageCount: topic.messageCount + 1,\r\n lastMessage: ev.message,\r\n };\r\n\r\n topics.set(newTopic);\r\n const room = this.list.get(ev.message.location.roomId);\r\n\r\n if (room.defaultTopic?.id === ev.message.location.topicId) {\r\n this.list.set({ ...room, defaultTopic: newTopic });\r\n }\r\n }\r\n}","import {Role, RoomMember, SpaceMember, User} from \"../types/src\";\r\n\r\nexport function reorderRolesOnPriorityUpdate(allRoles: Role[], oldRole: Role, updatedRole: Role): Role[] {\r\n // If the priority has changed, adjust the rest of roles\r\n const increased = (updatedRole.priority - oldRole.priority) > 0;\r\n const decreased = ! increased;\r\n const changedRoles: Role[] = [];\r\n\r\n allRoles.forEach(role => {\r\n if (role.id === updatedRole.id) {\r\n // Skip the updated role\r\n return;\r\n }\r\n if (increased && oldRole.priority <= role.priority) {\r\n role.priority--;\r\n changedRoles.push(role);\r\n }\r\n if (decreased && updatedRole.priority <= role.priority) {\r\n role.priority++;\r\n changedRoles.push(role);\r\n }\r\n });\r\n\r\n return changedRoles;\r\n}\r\n\r\nexport function extractUserFromMember(member: RoomMember | SpaceMember): User | null {\r\n return member.user ?? (member as RoomMember).spaceMember?.user;\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\r\nimport {\r\n NewRole,\r\n NewRoom,\r\n Role,\r\n RoleDeleted,\r\n RoleUpdated,\r\n RoomDeleted,\r\n RoomSummary,\r\n RoomSummaryUpdated,\r\n RoomUpdated,\r\n Session,\r\n Space,\r\n SpaceDeleted,\r\n SpaceJoined,\r\n SpaceLeft,\r\n SpaceMember,\r\n SpaceMemberJoined,\r\n SpaceMemberLeft,\r\n SpaceMembers,\r\n SpaceMemberUpdated,\r\n SpaceRooms,\r\n SpaceUpdated,\r\n UserUpdated\r\n} from \"../types/src\";\r\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\r\nimport {reorderRolesOnPriorityUpdate} from \"./functions\";\r\n\r\nexport class SpacesManager {\r\n private readonly list = new ObservableIndexedObjectCollection<Space>('id');\r\n private readonly roles = new IndexedCollection<string, ObservableIndexedObjectCollection<Role>>();\r\n private readonly rooms = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomSummary>>();\r\n private readonly roomIdToSpaceId = new IndexedCollection<string, string>();\r\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<SpaceMember>>();\r\n private readonly deferredSession = new DeferredTask();\r\n private readonly roomsPromises = new PromiseRegistry();\r\n private readonly membersPromises = new PromiseRegistry();\r\n\r\n public constructor(private tracker: ChatStateTracker) {\r\n this.tracker.client.on('NewRoom', ev => this.handleNewRoom(ev));\r\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceUpdated', ev => this.handleSpaceUpdated(ev));\r\n this.tracker.client.on('SpaceJoined', ev => this.handleSpaceJoined(ev));\r\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceMemberJoined', ev => this.handleSpaceMemberJoined(ev));\r\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\r\n this.tracker.client.on('SpaceMembers', ev => this.handleSpaceMembers(ev));\r\n this.tracker.client.on('SpaceRooms', ev => this.handleSpaceRooms(ev));\r\n this.tracker.client.on('RoomSummaryUpdated', ev => this.handleRoomSummaryUpdated(ev));\r\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\r\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\r\n this.tracker.client.on('NewRole', ev => this.handleNewRole(ev));\r\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\r\n this.tracker.client.on('RoleUpdated', ev => this.handleRoleUpdated(ev));\r\n this.tracker.client.on('Session', ev => this.handleSession(ev));\r\n }\r\n\r\n /**\r\n * Get collection of all the spaces you are in.\r\n */\r\n public async get(): Promise<ObservableIndexedObjectCollection<Space>> {\r\n await this.deferredSession.promise;\r\n return this.list;\r\n }\r\n\r\n /**\r\n * Get collection of space roles.\r\n */\r\n public async getRoles(spaceId: string): Promise<ObservableIndexedObjectCollection<Role> | undefined> {\r\n await this.deferredSession.promise;\r\n return this.roles.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get collection of the all available rooms inside given space.\r\n */\r\n public async getRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined> {\r\n if (this.roomsPromises.notExist(spaceId)) {\r\n this.roomsPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetSpaceRooms', {id: spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleSpaceRooms(result.data);\r\n }, spaceId);\r\n }\r\n\r\n await this.roomsPromises.get(spaceId);\r\n return this.rooms.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get collection of space members.\r\n */\r\n public async getMembers(spaceId: string): Promise<ObservableIndexedObjectCollection<SpaceMember> | undefined> {\r\n if (this.membersPromises.notExist(spaceId)) {\r\n this.membersPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetSpaceMembers', {id: spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleSpaceMembers(result.data);\r\n }, spaceId);\r\n }\r\n\r\n await this.membersPromises.get(spaceId);\r\n return this.members.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get a space member representing the current user.\r\n */\r\n public async getMe(spaceId: string): Promise<SpaceMember | undefined> {\r\n const userId = (await this.tracker.getMe()).id;\r\n\r\n if (! this.list.has(spaceId)) {\r\n // User is not in passed space.\r\n return undefined;\r\n }\r\n\r\n const members = await this.getMembers(spaceId);\r\n return members?.items.find(member => member.user.id === userId);\r\n }\r\n\r\n private handleNewRole(ev: NewRole): void {\r\n const collection = this.roles.get(ev.spaceId);\r\n collection.set(ev.role);\r\n this.list.get(ev.spaceId).roles = collection.items;\r\n }\r\n\r\n private handleNewRoom(ev: NewRoom): void {\r\n this.rooms.get(ev.spaceId)?.set(ev.summary);\r\n this.roomIdToSpaceId.set([ev.summary.id, ev.spaceId]);\r\n }\r\n\r\n private handleRoomUpdated(ev: RoomUpdated): void {\r\n if (ev.room.spaceId && this.rooms.has(ev.room.spaceId)) {\r\n const rooms = this.rooms.get(ev.room.spaceId);\r\n rooms.set({\r\n ...rooms.get(ev.room.id),\r\n name: ev.room.name,\r\n description: ev.room.description,\r\n } as RoomSummary);\r\n }\r\n }\r\n\r\n private async handleRoomDeleted(ev: RoomDeleted): Promise<void> {\r\n const spaceId = this.roomIdToSpaceId.get(ev.id);\r\n this.roomIdToSpaceId.delete(ev.id);\r\n\r\n if (! spaceId) {\r\n return;\r\n }\r\n\r\n const space = this.list.get(spaceId);\r\n let spaceChanged = false;\r\n\r\n this.rooms.get(spaceId)?.delete(ev.id);\r\n\r\n if (space.systemRoom === ev.id) {\r\n space.systemRoom = null;\r\n spaceChanged = true;\r\n }\r\n\r\n if (space.defaultRooms.includes(ev.id)) {\r\n space.defaultRooms = space.defaultRooms.filter(roomId => roomId !== ev.id);\r\n spaceChanged = true;\r\n }\r\n\r\n if (spaceChanged) {\r\n this.list.set(space);\r\n }\r\n }\r\n\r\n private handleRoleDeleted(ev: RoleDeleted): void {\r\n const collection = this.roles.get(ev.spaceId);\r\n collection.delete(ev.id);\r\n this.list.get(ev.spaceId).roles = collection.items;\r\n }\r\n\r\n private handleSpaceUpdated(ev: SpaceUpdated): void {\r\n this.list.set(ev.space);\r\n }\r\n\r\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\r\n const roomIds = this.rooms.get(ev.id)?.items.map(item => item.id) ?? [];\r\n this.roomIdToSpaceId.delete(...roomIds);\r\n\r\n this.roles.delete(ev.id);\r\n this.members.delete(ev.id);\r\n this.membersPromises.forget(ev.id);\r\n this.rooms.delete(ev.id);\r\n this.roomsPromises.forget(ev.id);\r\n this.list.delete(ev.id);\r\n }\r\n\r\n private handleSpaceJoined(ev: SpaceJoined): void {\r\n this.addJoinedSpaces(ev.space);\r\n }\r\n\r\n private addJoinedSpaces(...spaces: Space[]): void {\r\n this.roles.set(...(spaces.map(space => [\r\n space.id,\r\n new ObservableIndexedObjectCollection<Role>('id', space.roles)\r\n ]) as [string, ObservableIndexedObjectCollection<Role>][]));\r\n this.list.set(...spaces);\r\n }\r\n\r\n private handleSpaceMemberJoined(ev: SpaceMemberJoined): void {\r\n if (this.members.has(ev.spaceId)) {\r\n this.members.get(ev.spaceId).set(ev.member);\r\n }\r\n }\r\n\r\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\r\n if (this.members.has(ev.spaceId)) {\r\n this.members.get(ev.spaceId).delete(ev.userId);\r\n }\r\n }\r\n\r\n private handleSpaceMembers(ev: SpaceMembers): void {\r\n if (! this.members.has(ev.id)) {\r\n this.members.set([\r\n ev.id,\r\n new ObservableIndexedObjectCollection(member => member?.user.id, ev.members)\r\n ]);\r\n }\r\n }\r\n\r\n private handleSpaceRooms(ev: SpaceRooms): void {\r\n if (!this.rooms.has(ev.id)) {\r\n this.rooms.set([ev.id, new ObservableIndexedObjectCollection('id', ev.summaries)]);\r\n ev.summaries.forEach(summary => this.roomIdToSpaceId.set([summary.id, ev.id]));\r\n }\r\n }\r\n\r\n private async handleRoomSummaryUpdated(ev: RoomSummaryUpdated): Promise<void> {\r\n const spaceId = this.roomIdToSpaceId.get(ev.summary.id);\r\n const summariesPromise = this.roomsPromises.get(spaceId);\r\n\r\n /**\r\n * Update summary only if the list was already loaded.\r\n * RoomSummaryUpdated event has a partial summary, so we need to update the existing summary by merging it.\r\n */\r\n if (spaceId && summariesPromise) {\r\n await summariesPromise;\r\n\r\n const summaries = this.rooms.get(spaceId);\r\n const oldSummary = summaries.get(ev.summary.id);\r\n let newSummary: RoomSummary;\r\n\r\n if (oldSummary) {\r\n newSummary = {...oldSummary, ...ev.summary};\r\n } else {\r\n newSummary = ev.summary;\r\n }\r\n\r\n summaries.set(newSummary);\r\n }\r\n }\r\n\r\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\r\n if (this.members.has(ev.spaceId)) {\r\n const members = this.members.get(ev.spaceId);\r\n const member = members.get(ev.userId);\r\n members.set({...ev.member, user: member.user});\r\n }\r\n }\r\n\r\n private handleRoleUpdated(ev: RoleUpdated): void {\r\n const roles = this.roles.get(ev.spaceId);\r\n const oldRole = roles.get(ev.role.id);\r\n const newRole = ev.role;\r\n const rolesToUpdate = [newRole];\r\n\r\n if (oldRole.priority !== newRole.priority) {\r\n rolesToUpdate.push(\r\n ...reorderRolesOnPriorityUpdate(roles.items, oldRole, newRole)\r\n );\r\n }\r\n\r\n this.roles.get(ev.spaceId).set(...rolesToUpdate);\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this.list.deleteAll();\r\n this.roles.deleteAll();\r\n this.rooms.deleteAll();\r\n this.roomsPromises.forgetAll();\r\n this.members.deleteAll();\r\n this.membersPromises.forgetAll();\r\n this.roomIdToSpaceId.deleteAll();\r\n\r\n this.addJoinedSpaces(...ev.state.spaces);\r\n\r\n this.deferredSession.resolve();\r\n }\r\n\r\n private handleUserUpdated(ev: UserUpdated): void {\r\n this.members.items.forEach((members) => {\r\n const member = members.get(ev.user.id);\r\n\r\n if (! member) {\r\n // Skip space; updated user is not here\r\n return;\r\n }\r\n\r\n members.set({...member, user: ev.user});\r\n });\r\n }\r\n}","export enum Layer {\r\n Global,\r\n Space,\r\n Room,\r\n Topic,\r\n}\r\n\r\nexport class PermissionDefinition {\r\n value: number;\r\n maxLayer: Layer;\r\n}\r\n\r\nexport class Permissions {\r\n public static readonly list = {\r\n Root: {value: 1 << 0, maxLayer: Layer.Room},\r\n CreateSpaces: {value: 1 << 1, maxLayer: Layer.Global},\r\n ManageSpace: {value: 1 << 2, maxLayer: Layer.Space},\r\n ManageSpaceRoles: {value: 1 << 3, maxLayer: Layer.Space},\r\n ManageRoom: {value: 1 << 4, maxLayer: Layer.Room},\r\n CreateTopics: {value: 1 << 5, maxLayer: Layer.Room},\r\n ManageTopic: {value: 1 << 6, maxLayer: Layer.Topic},\r\n ManageSpaceMembers: {value: 1 << 7, maxLayer: Layer.Space},\r\n ManageRoomMembers: {value: 1 << 8, maxLayer: Layer.Room},\r\n CreateMessages: {value: 1 << 9, maxLayer: Layer.Topic},\r\n ManagePermissions: {value: 1 << 10, maxLayer: Layer.Topic},\r\n CreateSpaceRooms: {value: 1 << 11, maxLayer: Layer.Space},\r\n ManageSpaceRooms: {value: 1 << 12, maxLayer: Layer.Space},\r\n CreateEmoticons: {value: 1 << 13, maxLayer: Layer.Space},\r\n ManageEmoticon: {value: 1 << 14, maxLayer: Layer.Space},\r\n ManageBan: {value: 1 << 15, maxLayer: Layer.Room},\r\n Kick: {value: 1 << 16, maxLayer: Layer.Room},\r\n ChangeOwnNick: {value: 1 << 17, maxLayer: Layer.Space},\r\n ChangeOwnColor: {value: 1 << 18, maxLayer: Layer.Room},\r\n };\r\n\r\n public static getNames(): (keyof typeof this.list)[] {\r\n return Object.keys(this.list) as any;\r\n }\r\n\r\n public static getByName(name: keyof typeof this.list): PermissionDefinition | undefined {\r\n return this.list[name];\r\n }\r\n\r\n public static canBeDefinedOnLayer(permissionName: keyof typeof this.list, layer: Layer): boolean {\r\n const def = this.getByName(permissionName);\r\n\r\n if (! def) {\r\n throw new Error(`Invalid permission name: ${permissionName}`);\r\n }\r\n\r\n return layer <= this.getByName(permissionName).maxLayer;\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {\r\n ChatLocation,\r\n PermissionOverwrites, PermissionOverwritesTarget,\r\n PermissionOverwritesUpdated,\r\n PermissionOverwritesValue,\r\n RoleDeleted,\r\n RoomDeleted,\r\n RoomLeft, RoomMember, RoomMemberUpdated, Session,\r\n SpaceDeleted,\r\n SpaceLeft, SpaceMember,\r\n SpaceMemberUpdated,\r\n TopicDeleted,\r\n} from \"../types/src\";\r\nimport {EventHandler, EventTarget} from \"../EventTarget\";\r\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\r\nimport {Permissions} from \"../Permissions\";\r\nimport {PromiseRegistry} from \"./AsyncUtils\";\r\n\r\nconst getOvId = (\r\n location: ChatLocation,\r\n target?: PermissionOverwritesTarget,\r\n) => [location.spaceId, location.roomId, location.topicId, target?.type, target?.userId, target?.roleId].filter(Boolean).join('/');\r\n\r\nconst getOvIdByObject\r\n = (overwrites: PermissionOverwrites | PermissionOverwritesUpdated): string => getOvId(overwrites.location, overwrites.target);\r\n\r\ninterface CheckPermissionsResult {\r\n /**\r\n * @deprecated Use `hasAll` instead.\r\n */\r\n ok: boolean;\r\n hasAll: boolean;\r\n hasAny: boolean;\r\n missing: string[];\r\n}\r\n\r\nexport class PermissionsManager extends EventTarget {\r\n private readonly overwrites = new IndexedCollection<string, PermissionOverwrites>();\r\n private readonly overwritesPromises = new PromiseRegistry();\r\n\r\n public constructor(private tracker: ChatStateTracker) {\r\n super();\r\n this.tracker.client.on('PermissionOverwrites', ev => this.handlePermissionOverwrites(ev));\r\n this.tracker.client.on('PermissionOverwritesUpdated', ev => this.handlePermissionOverwrites(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('RoomLeft', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\r\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\r\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\r\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\r\n this.tracker.client.on('Session', ev => this.handleSession(ev));\r\n }\r\n\r\n public async getOverwrites(\r\n location: ChatLocation,\r\n target: PermissionOverwritesTarget,\r\n ): Promise<PermissionOverwrites | undefined> {\r\n this.validateLocation(location);\r\n\r\n const id = getOvId(location, target);\r\n\r\n if (this.overwritesPromises.notExist(id)) {\r\n this.overwritesPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send(\r\n 'GetPermissionOverwrites',\r\n {location, target},\r\n );\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handlePermissionOverwrites(result.data);\r\n }, id);\r\n }\r\n\r\n await this.overwritesPromises.get(id);\r\n return this.overwrites.get(id);\r\n }\r\n\r\n public on(eventName: 'change', handler: EventHandler<any>): this {\r\n return super.on(eventName, handler);\r\n }\r\n\r\n public async check(\r\n permissionNames: (keyof typeof Permissions.list)[],\r\n location: ChatLocation,\r\n ): Promise<CheckPermissionsResult> {\r\n if (! permissionNames.length) {\r\n throw new Error('Permission names array cannot be empty');\r\n }\r\n\r\n const ownedPermissions = await this.calculatePermissions(location);\r\n const missing: string[] = [];\r\n\r\n permissionNames.forEach(name => {\r\n if (~ ownedPermissions & Permissions.getByName(name).value) {\r\n missing.push(name as string);\r\n }\r\n });\r\n\r\n return {\r\n ok: missing.length === 0,\r\n hasAll: missing.length === 0,\r\n hasAny: missing.length < permissionNames.length,\r\n missing,\r\n };\r\n }\r\n\r\n public async calculatePermissions(location: ChatLocation): Promise<number> {\r\n this.validateLocation(location);\r\n\r\n const userId = (await this.tracker.getMe()).id;\r\n const [spaceMember, roomMember] = await this.fetchMembersOrFail(location);\r\n const userRoles: string[] = [...(spaceMember?.roles ?? []), ...(roomMember?.roles ?? [])];\r\n const promises: Promise<PermissionOverwritesValue>[] = [\r\n // Global user overwrites\r\n this.getOverwrites({}, { type: 'User', userId }).then(v => v.overwrites),\r\n ];\r\n\r\n if (location.spaceId && (await this.tracker.spaces.get())?.has(location.spaceId)) {\r\n const filterLocation: ChatLocation = {spaceId: location.spaceId};\r\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\r\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\r\n }\r\n\r\n if (location.roomId && (await this.tracker.rooms.get())?.has(location.roomId)) {\r\n const filterLocation: ChatLocation = {spaceId: location.spaceId, roomId: location.roomId};\r\n if (userRoles.length) {\r\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\r\n }\r\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\r\n }\r\n\r\n if (location.topicId && (await this.tracker.rooms.getTopics(location.roomId))?.has(location.topicId)) {\r\n if (userRoles.length) {\r\n promises.push(this.collectRoleOverwrites(location, userRoles));\r\n }\r\n promises.push(this.getOverwrites(location, { type: 'User', userId }).then(v => v.overwrites));\r\n }\r\n\r\n return this.resolveOverwritesHierarchy(await Promise.all(promises));\r\n }\r\n\r\n private handlePermissionOverwrites(ev: PermissionOverwritesUpdated | PermissionOverwrites): void {\r\n this.overwrites.set([getOvIdByObject(ev), ev]);\r\n this.emit('change');\r\n }\r\n\r\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\r\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.id}));\r\n this.overwritesPromises.forget(...ids);\r\n }\r\n\r\n private async handleRoomDeleted(ev: RoomDeleted | RoomLeft): Promise<void> {\r\n const room = (await this.tracker.rooms.get()).get(ev.id);\r\n if (room) {\r\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: room.spaceId, roomId: room.id}));\r\n this.overwritesPromises.forget(...ids);\r\n }\r\n }\r\n\r\n private handleTopicDeleted(ev: TopicDeleted): void {\r\n const ids = this.deleteOverwritesByIdPrefix(getOvId(ev.location));\r\n this.overwritesPromises.forget(...ids);\r\n }\r\n\r\n private handleRoleDeleted(ev: RoleDeleted): void {\r\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.spaceId}, { type: 'Role', roleId: ev.id }));\r\n this.overwritesPromises.forget(...ids);\r\n }\r\n\r\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\r\n if (ev.userId === this.tracker.me?.id) {\r\n // User roles in space could potentially have changed\r\n this.emit('change');\r\n }\r\n }\r\n\r\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\r\n if (ev.userId === this.tracker.me?.id) {\r\n // User roles in room could potentially have changed\r\n this.emit('change');\r\n }\r\n }\r\n\r\n /**\r\n * @return Matched and deleted ids\r\n */\r\n private deleteOverwritesByIdPrefix(prefix: string): string[] {\r\n const ids: string[] = [];\r\n this.overwrites.items.forEach((overwrites) => {\r\n const id = getOvIdByObject(overwrites);\r\n if (id.startsWith(prefix)) {\r\n ids.push(id);\r\n this.overwrites.delete(id);\r\n }\r\n });\r\n return ids;\r\n }\r\n\r\n private async collectRoleOverwrites(\r\n location: ChatLocation,\r\n userRoles: string[],\r\n ): Promise<PermissionOverwritesValue> {\r\n const roleOverwrites = await Promise.all(userRoles.map(\r\n roleId => this.getOverwrites(location, { type: 'Role', roleId }),\r\n ));\r\n\r\n return this.resolveOverwritesFromRolesByOrder(location.spaceId, roleOverwrites);\r\n }\r\n\r\n private async resolveOverwritesFromRolesByOrder(\r\n spaceId: string,\r\n overwrites: PermissionOverwrites[],\r\n ): Promise<PermissionOverwritesValue> {\r\n let allows = 0, denies = 0;\r\n const roles = await this.tracker.spaces.getRoles(spaceId);\r\n const sortedOverwrites = overwrites.sort(\r\n (a, b) =>\r\n roles.get(a.target.roleId).priority - roles.get(b.target.roleId).priority\r\n );\r\n\r\n // Max length of bit word\r\n const permissionsLength = overwrites.reduce(\r\n (previousValue: number, currentValue: PermissionOverwrites) =>\r\n Math.max(\r\n previousValue,\r\n currentValue.overwrites.allow?.toString(2).length ?? 0,\r\n currentValue.overwrites.deny?.toString(2).length ?? 0,\r\n ),\r\n 0,\r\n );\r\n\r\n sortedOverwrites.forEach(overwriteEvent => {\r\n const overwrites = overwriteEvent.overwrites;\r\n const revDecDenies = overwrites.deny?.toString(2).split('').reverse().join('') ?? '';\r\n const revDecAllows = overwrites.allow?.toString(2).split('').reverse().join('') ?? '';\r\n\r\n for (let i = 0; i < permissionsLength; i++) {\r\n const deny = parseInt(revDecDenies[i] ?? '0');\r\n const allow = parseInt(revDecAllows[i] ?? '0');\r\n\r\n if (deny) {\r\n denies |= 1 << i;\r\n }\r\n\r\n if (allow) {\r\n allows |= 1 << i;\r\n }\r\n }\r\n });\r\n\r\n return {allow: allows, deny: denies};\r\n }\r\n\r\n private resolveOverwritesHierarchy(permissionOverwritesValues: PermissionOverwritesValue[]): number {\r\n let result = 0;\r\n\r\n for (const value of permissionOverwritesValues) {\r\n if (value.allow & Permissions.getByName('Root').value) {\r\n return this.getRootAccessValue();\r\n }\r\n\r\n result = (result & ~value.deny) | value.allow;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getRootAccessValue(): number {\r\n let result = 0;\r\n\r\n for (const name of Permissions.getNames()) {\r\n result |= Permissions.getByName(name).value;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private async fetchMembersOrFail(location: ChatLocation): Promise<[SpaceMember | null, RoomMember | null]> {\r\n const results = await Promise.all([\r\n location.spaceId ? this.tracker.spaces.getMe(location.spaceId) : null,\r\n location.roomId ? this.tracker.rooms.getMe(location.roomId) : null,\r\n ]);\r\n\r\n const spaceFail = location.spaceId && ! results[0];\r\n const roomFail = location.roomId && ! results[1];\r\n\r\n if (spaceFail || roomFail) {\r\n const layer = spaceFail ? `space (${location.spaceId})` : `room (${location.roomId})`;\r\n throw new Error(`Attempting to calculate permissions for a ${layer} that the user does not belong to`);\r\n }\r\n\r\n return results;\r\n }\r\n\r\n private validateLocation(location: ChatLocation): void {\r\n if (location.topicId && ! location.roomId) {\r\n throw new Error('Corrupted arguments hierarchy');\r\n }\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this.overwrites.deleteAll();\r\n this.overwritesPromises.forgetAll();\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {\r\n IndexedCollection,\r\n ObservableIndexedObjectCollection\r\n} from \"../IndexedObjectCollection\";\r\nimport {Emoticon, EmoticonDeleted, Emoticons, NewEmoticon, SpaceDeleted} from \"../types/src\";\r\nimport {PromiseRegistry} from \"./AsyncUtils\";\r\n\r\nconst GLOBAL_KEY = 'global';\r\n\r\nexport class EmoticonsManager {\r\n private list: IndexedCollection<string, ObservableIndexedObjectCollection<Emoticon>> = new IndexedCollection();\r\n private emoticonsPromises = new PromiseRegistry();\r\n \r\n public constructor(private tracker: ChatStateTracker) {\r\n this.tracker.client.on('Emoticons', ev => this.handleEmoticons(ev));\r\n this.tracker.client.on('NewEmoticon', ev => this.handleNewEmoticon(ev));\r\n this.tracker.client.on('EmoticonDeleted', ev => this.handleEmoticonDeleted(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('Session', () => this.handleSession());\r\n }\r\n\r\n public async get(spaceId?: string): Promise<ObservableIndexedObjectCollection<Emoticon>> {\r\n const key = spaceId ?? GLOBAL_KEY;\r\n\r\n if (this.emoticonsPromises.notExist(key)) {\r\n this.emoticonsPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetEmoticons', {spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleEmoticons(result.data);\r\n }, key);\r\n }\r\n\r\n await this.emoticonsPromises.get(key);\r\n return this.list.get(key);\r\n }\r\n\r\n private handleEmoticons(event: Emoticons): void {\r\n const spaceId = event.location.spaceId ?? GLOBAL_KEY;\r\n\r\n if (!this.list.has(spaceId)) {\r\n this.list.set([spaceId, new ObservableIndexedObjectCollection<Emoticon>('id')]);\r\n }\r\n\r\n const collection = this.list.get(spaceId);\r\n collection.set(...event.emoticons);\r\n }\r\n\r\n private handleNewEmoticon(ev: NewEmoticon): void {\r\n const collection = this.list.get(ev.emoticon.spaceId ?? GLOBAL_KEY);\r\n collection?.set(ev.emoticon);\r\n }\r\n\r\n private handleEmoticonDeleted(ev: EmoticonDeleted): void {\r\n const collection = this.list.get(ev.spaceId ?? GLOBAL_KEY);\r\n collection?.delete(ev.emoticonId);\r\n }\r\n\r\n private handleSpaceDeleted(event: SpaceDeleted): void {\r\n this.list.delete(event.id);\r\n }\r\n\r\n private handleSession(): void {\r\n this.list.deleteAll();\r\n this.emoticonsPromises.forgetAll();\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {RoomMember, Session, SpaceMember, User} from \"../types/src\";\nimport {extractUserFromMember} from \"./functions\";\nimport {EventTarget} from \"../EventTarget\";\n\nexport class UsersManager {\n public readonly onlineStatus = new EventTarget();\n\n private readonly users: ObservableIndexedObjectCollection<User> = new ObservableIndexedObjectCollection('id');\n\n public constructor(private tracker: ChatStateTracker) {\n // RoomMemberUpdated & SpaceMemberUpdated events are not contains user object\n tracker.client.on('UserUpdated', event => this.handleUsers([event.user]));\n tracker.client.on('RoomMemberJoined', event => this.handleMembers([event.member]));\n tracker.client.on('SpaceMemberJoined', event => this.handleMembers([event.member]));\n tracker.client.on('SpaceMembers', event => this.handleMembers(event.members));\n tracker.client.on('RoomMembers', event => this.handleMembers(event.members));\n tracker.client.on('Messages', event => this.handleUsers(event.messages.map(message => message.author.user)));\n tracker.client.on('NewMessage', event => this.handleUsers([event.message.author.user]));\n tracker.client.on('Session', event => this.handleSession(event));\n }\n\n /**\n * Get all available (cached) user objects at once.\n */\n public async getAvailable(): Promise<ObservableIndexedObjectCollection<User>> {\n return this.users;\n }\n\n private handleMembers(members: (RoomMember | SpaceMember)[]): void {\n this.handleUsers(members.map(extractUserFromMember));\n }\n\n private handleSession(session: Session): void {\n this.users.deleteAll();\n this.handleUsers([session.user]);\n }\n\n private handleUsers(users: User[]): void {\n users.forEach(newUser => {\n const oldUser = this.users.get(newUser.id);\n if (oldUser && oldUser.online !== newUser.online) {\n this.onlineStatus.emit('change', newUser);\n }\n });\n\n this.users.set(...users);\n }\n}","import {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n NewRelationship,\n RelationshipDeleted,\n Relationships,\n UserRelationship,\n UserRelationshipType\n} from \"../types/src\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\n\nconst getId = (refUserId: string, type: UserRelationshipType): string => `${refUserId}-${type}`;\nconst getIdFromRelationship = (relationship: UserRelationship): string => getId(relationship.refUser.id, relationship.type);\n\nexport class RelationshipsManager {\n private relationships: ObservableIndexedObjectCollection<UserRelationship> = new ObservableIndexedObjectCollection<UserRelationship>(getIdFromRelationship);\n private promises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Relationships', ev => this.handleRelationships(ev));\n this.tracker.client.on('NewRelationship', ev => this.handleNewRelationship(ev));\n this.tracker.client.on('RelationshipDeleted', ev => this.handleRelationshipDeleted(ev));\n this.tracker.client.on('Session', () => this.handleSession());\n }\n\n public async get(): Promise<ObservableIndexedObjectCollection<UserRelationship>> {\n if (this.promises.notExist('all')) {\n this.promises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRelationships', {});\n if (result.error) {\n throw result.error;\n }\n }, 'all');\n }\n\n await this.promises.get('all');\n return this.relationships;\n }\n\n public async exists(refUserId: string, type: UserRelationshipType): Promise<boolean> {\n await this.get();\n return this.relationships.has(getId(refUserId, type));\n }\n\n private handleRelationships(ev: Relationships): void {\n this.relationships.deleteAll();\n ev.relationships.forEach(relationship => {\n this.relationships.set(relationship);\n });\n }\n\n private handleNewRelationship(ev: NewRelationship): void {\n if (this.promises.has('all')) {\n this.relationships.set(ev.relationship);\n }\n }\n\n private handleRelationshipDeleted(ev: RelationshipDeleted): void {\n if (this.promises.has('all')) {\n this.relationships.delete(getIdFromRelationship(ev.relationship));\n }\n }\n\n private handleSession(): void {\n this.promises.forgetAll();\n this.relationships.deleteAll();\n }\n}","import {WebSocketChatClient} from \"../WebSocketChatClient\";\r\nimport {Session, User} from \"../types/src\";\r\nimport {RoomsManager} from \"./RoomsManager\";\r\nimport {SpacesManager} from \"./SpacesManager\";\r\nimport {PermissionsManager} from \"./PermissionsManager\";\r\nimport {DeferredTask} from \"./AsyncUtils\";\r\nimport {EmoticonsManager} from \"./EmoticonsManager\";\r\nimport {UsersManager} from \"./UsersManager\";\r\nimport {RelationshipsManager} from \"./RelationshipsManager\";\r\n\r\nexport class ChatStateTracker {\r\n public readonly client: WebSocketChatClient;\r\n\r\n /**\r\n * State of your permissions.\r\n */\r\n public readonly permissions: PermissionsManager;\r\n\r\n /**\r\n * State of the rooms you are in.\r\n */\r\n public readonly rooms: RoomsManager;\r\n\r\n /**\r\n * State of the spaces you are in.\r\n */\r\n public readonly spaces: SpacesManager;\r\n\r\n /**\r\n * State of the emoticons (global and space-related).\r\n */\r\n public readonly emoticons: EmoticonsManager;\r\n\r\n /**\r\n * Users related state.\r\n */\r\n public readonly users: UsersManager;\r\n\r\n /**\r\n * State of relationships with other users.\r\n */\r\n public readonly relationships: RelationshipsManager;\r\n\r\n private _me: User = null;\r\n private readonly deferredSession = new DeferredTask();\r\n\r\n public constructor(client: WebSocketChatClient) {\r\n this.client = client;\r\n this.client.on('Session', ev => this.handleSession(ev));\r\n\r\n this.permissions = new PermissionsManager(this);\r\n this.rooms = new RoomsManager(this);\r\n this.spaces = new SpacesManager(this);\r\n this.emoticons = new EmoticonsManager(this);\r\n this.users = new UsersManager(this);\r\n this.relationships = new RelationshipsManager(this);\r\n }\r\n\r\n public get me(): User | null {\r\n return this._me;\r\n }\r\n\r\n public async getMe(): Promise<User> {\r\n await this.deferredSession.promise;\r\n return this._me;\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this._me = ev.user;\r\n this.deferredSession.resolve();\r\n }\r\n}","import {ObservableInterface} from \"./EventTarget\";\r\nimport {AbstractChatClient, CommandResult, CommandsMap, EventsMap} from \"./AbstractChatClient\";\r\nimport {ChatStateTracker} from \"./state-tracker/ChatStateTracker\";\r\nimport {Envelope} from \"./types/src\";\r\n\r\nexport interface WebSocketClientOptions {\r\n url: string;\r\n token: string;\r\n connectingTimeoutMs?: number;\r\n awaitQueueSendDelayMs?: number;\r\n stateTracking?: boolean;\r\n queryParams?: Record<string, string>;\r\n /**\r\n * Ping/pong configuration, enabled by default.\r\n */\r\n ping?: {\r\n enabled?: boolean;\r\n /**\r\n * Time without activity after which a ping will be sent. Default is 10 seconds.\r\n */\r\n noActivityTimeoutMs?: number;\r\n /**\r\n * Time to wait for a pong response before considering the connection dead. Default is 2 seconds.\r\n */\r\n pongBackTimeoutMs?: number;\r\n },\r\n}\r\n\r\nenum WebSocketChatClientEvent {\r\n connect = 'connect',\r\n disconnect = 'disconnect',\r\n message = 'message',\r\n error = 'error',\r\n}\r\n\r\nexport class WebSocketChatClient extends AbstractChatClient implements ObservableInterface {\r\n public readonly Event = WebSocketChatClientEvent;\r\n public readonly state?: ChatStateTracker;\r\n\r\n protected ws: WebSocket|null = null;\r\n protected sendQueue: Envelope[] = [];\r\n protected connectingTimeoutId: any;\r\n protected authenticated: boolean;\r\n protected authenticatedResolvers: [() => void, (error: Error) => void];\r\n protected pingMonitorInterval?: NodeJS.Timeout;\r\n protected inFlightPingTimeout: NodeJS.Timeout;\r\n protected lastReceivedMessageAt?: number;\r\n\r\n public constructor(private readonly options: WebSocketClientOptions) {\r\n super();\r\n if (this.options.stateTracking ?? true) {\r\n this.state = new ChatStateTracker(this);\r\n }\r\n\r\n options.ping ??= {};\r\n options.ping.enabled ??= true;\r\n options.ping.noActivityTimeoutMs ??= 15000;\r\n options.ping.pongBackTimeoutMs ??= 5000;\r\n }\r\n\r\n public async connect(): Promise<void> {\r\n if (this.isOpenWsState() || this.isConnectingWsState()) {\r\n return;\r\n }\r\n\r\n const params = new URLSearchParams(this.options.queryParams ?? {});\r\n params.set('token', this.options.token);\r\n\r\n this.ws = new WebSocket(`${this.options.url}?${params}`);\r\n this.ws.onclose = ev => this.onClose(ev);\r\n this.ws.onmessage = ev => this.onMessage(ev);\r\n this.connectingTimeoutId = setTimeout(\r\n () => this.triggerConnectionTimeout(),\r\n this.options.connectingTimeoutMs ?? 10000\r\n );\r\n this.authenticated = false;\r\n return new Promise((...args) => this.authenticatedResolvers = args);\r\n }\r\n\r\n public disconnect(): void {\r\n this.sendQueue = [];\r\n this.ws?.close(1000); // Normal closure\r\n this.ws = null;\r\n }\r\n\r\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandsMap[CommandType][0]):\r\n Promise<CommandResult<CommandsMap[CommandType][1]>> {\r\n const envelope = this.createEnvelope<CommandsMap[CommandType][0]>(commandType, commandData);\r\n const promise = this.createPromiseFromCommandEnvelope<CommandType>(envelope);\r\n\r\n if (this.isConnectingWsState() || !this.authenticated && this.isOpenWsState()) {\r\n this.sendQueue.push(envelope);\r\n return promise;\r\n }\r\n\r\n this.sendEnvelope(envelope);\r\n return promise;\r\n }\r\n\r\n public get isReady(): boolean {\r\n return this.isOpenWsState() && this.authenticated;\r\n }\r\n\r\n private sendEnvelope(envelope: Envelope): void {\r\n if (this.isReady) {\r\n this.ws.send(JSON.stringify(envelope));\r\n return;\r\n }\r\n\r\n this.handleEnvelopeSendError(\r\n envelope,\r\n new Error(`Cannot send - client is not ready (state=${this.ws?.readyState ?? '[no connection]'}; authenticated=${this.authenticated})`)\r\n );\r\n }\r\n\r\n private onMessage(event: MessageEvent): void {\r\n this.lastReceivedMessageAt = Date.now();\r\n const envelope: Envelope = JSON.parse(event.data);\r\n this.handleIncomingEnvelope(envelope);\r\n this.emit(envelope.type, envelope.data);\r\n this.emit(this.Event.message, envelope);\r\n\r\n // Login successfully\r\n if (!this.authenticated) {\r\n const isAuthenticated = envelope.type !== 'Bye';\r\n this.authenticated = isAuthenticated;\r\n if (isAuthenticated) {\r\n this.startConnectionMonitor();\r\n this.authenticatedResolvers[0]();\r\n this.emit(this.Event.connect);\r\n this.sendFromQueue();\r\n } else {\r\n this.authenticatedResolvers[1](envelope.data);\r\n }\r\n }\r\n }\r\n\r\n private onClose(event: CloseEvent): void {\r\n this.stopConnectionMonitor();\r\n clearTimeout(this.connectingTimeoutId);\r\n const reconnect = event.code !== 1000; // Connection was closed because of error\r\n if (reconnect) {\r\n void this.connect();\r\n }\r\n this.emit(this.Event.disconnect, reconnect);\r\n }\r\n\r\n private sendFromQueue(): void {\r\n // Send awaiting data to server\r\n let lastDelay = 0;\r\n for (const dataIndex in this.sendQueue) {\r\n const envelope = this.sendQueue[dataIndex];\r\n setTimeout(() => this.sendEnvelope(envelope), lastDelay);\r\n lastDelay += this.options.awaitQueueSendDelayMs ?? 500;\r\n }\r\n this.sendQueue = [];\r\n clearTimeout(this.connectingTimeoutId);\r\n }\r\n\r\n private triggerConnectionTimeout(): void {\r\n this.disconnect();\r\n this.emit(this.Event.error, new Error('Connection timeout'));\r\n }\r\n\r\n private isConnectingWsState(): boolean {\r\n return this.ws && this.ws.readyState === this.ws.CONNECTING;\r\n }\r\n\r\n private isOpenWsState(): boolean {\r\n return this.ws && this.ws.readyState === this.ws.OPEN;\r\n }\r\n\r\n private startConnectionMonitor(): void {\r\n if (!this.options.ping!.enabled) {\r\n return;\r\n }\r\n\r\n this.lastReceivedMessageAt = Date.now();\r\n\r\n this.pingMonitorInterval = setInterval(async () => {\r\n if (!this.isReady || this.inFlightPingTimeout) {\r\n return;\r\n }\r\n\r\n if ((Date.now() - this.lastReceivedMessageAt) < this.options.ping!.noActivityTimeoutMs) {\r\n return;\r\n }\r\n\r\n this.inFlightPingTimeout = setTimeout(() => {\r\n this.inFlightPingTimeout = undefined;\r\n this.ws.close(3000); // Service Restart (reconnect)\r\n }, this.options.ping.pongBackTimeoutMs);\r\n\r\n this.send('Ping', {}).then(() => {\r\n this.inFlightPingTimeout = undefined;\r\n clearTimeout(this.inFlightPingTimeout);\r\n });\r\n }, 1000);\r\n }\r\n\r\n private stopConnectionMonitor(): void {\r\n if (this.inFlightPingTimeout) {\r\n clearTimeout(this.inFlightPingTimeout);\r\n this.inFlightPingTimeout = undefined;\r\n }\r\n if (this.pingMonitorInterval) {\r\n clearInterval(this.pingMonitorInterval);\r\n this.pingMonitorInterval = undefined;\r\n }\r\n }\r\n}","import {AbstractChatClient, CommandResult, CommandsMap} from \"./AbstractChatClient\";\r\nimport {ObservableInterface} from \"./EventTarget\";\r\nimport {Envelope} from \"./types/src\";\r\n\r\nexport interface WebApiChatClientOptions {\r\n url: string;\r\n token: string;\r\n attemptsToSend?: number;\r\n attemptDelayMs?: number;\r\n queryParams?: Record<string, string>;\r\n}\r\n\r\nenum WebApiChatClientEvent {\r\n message = 'message',\r\n error = 'error',\r\n destroy = 'destroy',\r\n}\r\n\r\nexport class WebApiChatClient extends AbstractChatClient implements ObservableInterface {\r\n public readonly Event = WebApiChatClientEvent;\r\n\r\n protected sendStack: {data: any, attempts: number, lastTimeoutId: any}[];\r\n\r\n public constructor(private readonly options: WebApiChatClientOptions) {\r\n super();\r\n }\r\n\r\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandsMap[CommandType][0]):\r\n Promise<CommandResult<CommandsMap[CommandType][1]>> {\r\n const envelope = this.createEnvelope(commandType, commandData);\r\n this.sendStack.push({data: envelope, attempts: 0, lastTimeoutId: null});\r\n this.makeApiCall(this.sendStack.length - 1);\r\n return this.createPromiseFromCommandEnvelope(envelope);\r\n }\r\n\r\n public destroy(): void {\r\n // Cancel all awaiting requests\r\n this.sendStack.forEach(item => {\r\n if (item.lastTimeoutId) {\r\n clearTimeout(item.lastTimeoutId);\r\n }\r\n this.awaitingResponse.delete(item.data.ref);\r\n });\r\n this.sendStack = [];\r\n this.emit(this.Event.destroy, false);\r\n }\r\n\r\n protected async onMessage(reqId: number, response: Response): Promise<void> {\r\n this.sendStack.splice(reqId, 1);\r\n const envelope: Envelope = await response.json();\r\n this.handleIncomingEnvelope(envelope);\r\n this.emit(envelope.type, envelope.data);\r\n this.emit(this.Event.message, envelope);\r\n }\r\n\r\n protected onError(reqId: number, body: string): void {\r\n if (this.sendStack[reqId].attempts >= (this.options.attemptsToSend ?? 10)) {\r\n this.sendStack.splice(reqId, 1);\r\n this.handleEnvelopeSendError(this.sendStack[reqId].data, new Error(\r\n `Cannot send ${body}; aborting after reaching the maximum connection errors`\r\n ));\r\n return;\r\n }\r\n this.sendStack[reqId].lastTimeoutId = setTimeout(\r\n () => this.makeApiCall(reqId),\r\n this.options.attemptDelayMs ?? 3000\r\n );\r\n }\r\n\r\n protected makeApiCall(reqId: number): void {\r\n this.sendStack[reqId].attempts++;\r\n const bodyJson = JSON.stringify(this.sendStack[reqId].data);\r\n const headers: any = {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json'\r\n };\r\n\r\n headers.Authorization = `Bearer ${this.options.token}`;\r\n\r\n const params = new URLSearchParams(this.options.queryParams ?? {});\r\n const url = `${this.options.url}${params ? '?' + params : ''}`;\r\n\r\n fetch(url, {\r\n headers,\r\n body: bodyJson,\r\n method: 'POST',\r\n })\r\n .then(response => this.onMessage(reqId, response))\r\n .catch(() => this.onError(reqId, bodyJson));\r\n }\r\n}","export interface RestClientOptions {\r\n url?: string;\r\n token: string;\r\n}\r\n\r\nexport interface RestClientResponse<T> {\r\n ok: boolean;\r\n status: number;\r\n data: T;\r\n}\r\n\r\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\r\n\r\nexport abstract class AbstractRestClient {\r\n protected abstract defaultUrl: string;\r\n\r\n public constructor(\r\n private readonly options: RestClientOptions,\r\n ) {}\r\n\r\n protected async send<ResponseT = any>(\r\n method: HttpMethod,\r\n uri: string,\r\n data: any = undefined\r\n ): Promise<RestClientResponse<ResponseT>> {\r\n let url = this.getUrl(uri);\r\n let body = undefined;\r\n\r\n if (data) {\r\n if (['GET', 'DELETE'].includes(method)) {\r\n url += new URLSearchParams(data).toString()\r\n } else {\r\n body = JSON.stringify(data);\r\n }\r\n }\r\n\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n ...this.getAuthHeaders(),\r\n };\r\n\r\n const result = await fetch(url, {method, body, headers});\r\n\r\n return this.convertFetchResponse(result);\r\n }\r\n\r\n protected getAuthHeaders(): any {\r\n const headers = {} as any;\r\n\r\n if (this.options.token) {\r\n headers.Authorization = `Bearer ${this.options.token}`;\r\n }\r\n\r\n return headers;\r\n }\r\n\r\n protected getUrl(uri: string): string {\r\n return this.removeEndingSlash(this.options.url ?? this.defaultUrl) + '/' + this.removeStartingSlash(uri);\r\n }\r\n\r\n protected async convertFetchResponse<T>(result: Response): Promise<RestClientResponse<T>> {\r\n return {\r\n ok: result.ok,\r\n status: result.status,\r\n data: result.headers.get('content-type')?.includes('json') ? await result.json() : await result.text(),\r\n };\r\n }\r\n\r\n private removeStartingSlash(text: string): string {\r\n return text.replace(/^\\/+/, '');\r\n }\r\n\r\n private removeEndingSlash(text: string): string {\r\n return text.replace(/\\/+$/, '');\r\n }\r\n}","import {AbstractRestClient} from \"./AbstractRestClient\";\r\n\r\nexport interface TokenInterface {\r\n token: string,\r\n expiration: string\r\n}\r\n\r\nexport interface MyAccountInterface {\r\n id: string;\r\n nick: string;\r\n avatar: string;\r\n}\r\n\r\nexport class AuthClient extends AbstractRestClient {\r\n protected defaultUrl: string = 'https://polfan.pl/webservice/api';\r\n\r\n public static async createToken(\r\n login: string,\r\n password: string,\r\n clientName: string = 'pserv-js-client'\r\n ): Promise<TokenInterface> {\r\n const response = await new AuthClient({token: null}).send('POST', 'auth/tokens', {\r\n login, password, client_name: clientName\r\n });\r\n if (response.ok) {\r\n return response.data;\r\n }\r\n throw new Error(`Cannot create user token: ${response.data.errors[0]}`);\r\n }\r\n\r\n public async deleteToken(token: string): Promise<void> {\r\n const response = await this.send('DELETE', `auth/tokens/${token}`);\r\n if (!response.ok) {\r\n throw new Error(`Cannot delete access token: ${response.data.errors[0]}`);\r\n }\r\n }\r\n\r\n public async getMe(): Promise<MyAccountInterface> {\r\n const response = await this.send('GET', 'auth/me');\r\n if (response.ok) {\r\n response.data.id = response.data.id.toString();\r\n return response.data;\r\n }\r\n throw new Error(`Cannot get current user account: ${response.data.errors[0]}`);\r\n }\r\n}","import {AbstractRestClient, RestClientResponse} from \"./AbstractRestClient\";\r\n\r\nexport interface File {\r\n id: string;\r\n url: string;\r\n name: string;\r\n mime: string;\r\n size: number;\r\n width?: number;\r\n height?: number;\r\n}\r\n\r\nexport class FilesClient extends AbstractRestClient {\r\n protected defaultUrl: string = 'https://files.devana.pl';\r\n\r\n public async uploadFile(file: globalThis.File | Blob): Promise<RestClientResponse<File>> {\r\n const name = encodeURIComponent((file as globalThis.File).name ?? '');\r\n let headers = {\r\n ...this.getAuthHeaders(),\r\n Accept: 'application/json',\r\n 'Content-Disposition': `attachment; filename=\"${name}\"`,\r\n 'Content-Length': file.size\r\n };\r\n\r\n const response = await fetch(this.getUrl('files'), {\r\n method: 'POST',\r\n body: file,\r\n headers\r\n });\r\n\r\n return this.convertFetchResponse<File>(response);\r\n }\r\n\r\n public async getFileMeta(id: string): Promise<RestClientResponse<File>> {\r\n return this.send('GET', 'files/' + id);\r\n }\r\n\r\n public async getFileMetaBulk(ids: string[]): Promise<RestClientResponse<File[]>> {\r\n const searchParams = new URLSearchParams();\r\n ids.forEach(id => searchParams.append('id[]', id));\r\n return this.send('GET', 'files?' + searchParams);\r\n }\r\n}","import {WebSocketChatClient} from \"./WebSocketChatClient\";\r\nimport {WebApiChatClient} from \"./WebApiChatClient\";\r\nimport {\r\n IndexedCollection,\r\n IndexedObjectCollection,\r\n ObservableIndexedCollection,\r\n ObservableIndexedObjectCollection\r\n} from \"./IndexedObjectCollection\";\r\nimport { AuthClient, MyAccountInterface, TokenInterface } from \"./AuthClient\";\r\nimport {FilesClient, File} from \"./FilesClient\";\r\nimport { Permissions, PermissionDefinition, Layer } from \"./Permissions\";\r\nimport * as ChatTypes from './types/src';\r\nimport {extractUserFromMember} from \"./state-tracker/functions\";\r\n\r\nexport {\r\n IndexedCollection, ObservableIndexedCollection,\r\n IndexedObjectCollection, ObservableIndexedObjectCollection,\r\n Permissions, PermissionDefinition, Layer,\r\n WebSocketChatClient, WebApiChatClient,\r\n AuthClient,\r\n FilesClient,\r\n extractUserFromMember,\r\n};\r\n\r\nexport type {\r\n ChatTypes,\r\n MyAccountInterface, TokenInterface, File,\r\n};"],"names":["EventTarget","_classCallCheck","_defineProperty","Map","_createClass","key","value","on","eventName","handler","addHandler","events","once","onceEvents","off","_this$events$get","index","get","indexOf","splice","emit","event","callHandlers","map","_map$get","handlers","push","set","_map$get2","forEach","callback","AbstractChatClient","_EventTarget","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","_inherits","_superPropGet","createEnvelope","type","data","ref","sentCounter","toString","createPromiseFromCommandEnvelope","envelope","_this2","Promise","_len2","_key2","awaitingResponse","handleIncomingEnvelope","has","isError","error","handleEnvelopeSendError","IndexedCollection","items","undefined","apply","_toConsumableArray","_items","size","_i","item","id","delete","ids","_i2","_ids","deleteAll","clear","findBy","field","valueToFind","limit","result","entries","next","done","createMirror","copy","IndexedObjectCollection","from","values","_this$_items","_len3","_key3","getId","getAt","_this$_items2","_iterator","_createForOfIteratorHelper","_step","s","n","err","e","f","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","setItems","_len5","_key5","deletedItems","keys","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","DeferredTask","promise","resolve","PromiseRegistry","register","promises","registerByFunction","fn","notExist","forget","_this$promises","forgetAll","t","r","Symbol","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","call","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","_typeof","_assertThisInitialized","ReferenceError","Boolean","valueOf","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","WindowState","TraversableRemoteCollection","_ObservableIndexedObj","current","LIVE","ongoing","oldestId","internalState","LATEST","includes","state","OLDEST","_resetToLatest","_callee","_context","fetchLatestItems","addItems","resetToLatest","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","fetchPrevious","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","fetchNext","_refreshFetchedState","_callee4","_t","_context4","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","slice","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","traverseLock","client","ev","handleNewMessage","_setTraverseLock","_callee5","lock","_context5","setTraverseLock","_x","_resetToLatest2","_callee6","_context6","_fetchNext2","_callee7","_context7","_fetchPrevious2","_callee8","_context8","_updateMessageReference","refTopic","refMessage","_objectSpread","topicRef","_handleNewMessage","_callee9","_context9","message","location","_x2","_fetchItemsAfter","_callee0","_this$getAt","afterId","_context0","send","after","Error","messages","_fetchItemsBefore","_callee1","_this$getAt2","beforeId","_context1","before","_fetchLatestItems","_callee10","_context10","_getTopic","_callee11","_context11","rooms","getTopics","getTopic","_getLatestMessageId","_callee12","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context12","lastMessage","getLatestMessageId","_isLatestItemLoaded","_callee13","lastMessageId","_context13","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","historyWindow","topic","historyWindows","getMessagesWindow","_handleRoomUpdated","_Array$from","_Array$from$_i","window","_slicedToArray","refHistoryWindow","history","mode","MessagesManager","handleSession","handleRoomJoin","handleFollowedTopicUpdated","handleTopicFollowed","handleTopicUnfollowed","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","getRoomHistory","_cacheSpaceFollowedTopics","spaceId","roomIds","resultPromise","spaces","followedTopicsPromises","setFollowedTopicsArray","followedTopics","cacheSpaceFollowedTopics","_getRoomFollowedTopics","getRoomFollowedTopics","_x3","_ackRoomFollowedTopics","collection","followedTopic","missed","ackRoomFollowedTopics","_x4","_calculateRoomMissedMessages","reduce","previousValue","currentValue","_currentValue$missed","calculateRoomMissedMessages","_x5","_deleteByTopicIds","_this$followedTopics$","topicIds","createHistoryForNewRoom","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","_this$followedTopics$3","clearRoomFollowedTopicsStructures","_handleNewTopic","_x6","_this$followedTopics$4","_this$tracker$me","roomFollowedTopics","isMe","author","user","me","update","lastAckMessageId","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_this5$followedTopics","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMemberJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","getMembers","_getMe","userId","getMe","list","find","member","_member$user$id","_member$user","spaceMember","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","filter","_this3$topics$get2","deleteRoom","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get","_this$messages","deleteRoomsBySpaceId","_iterator2","_step2","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","_member$spaceMember","newMember","_room$defaultTopic","addJoinedRoomTopics","_this$topics$get2","addJoinedRooms","_this$topics$get3","_this$list2","_rooms","recipients","roles","customColor","customNick","extras","_member$user$id2","_member$user2","_this$list3","newRooms","_room$recipients","some","_room$defaultTopic2","newTopic","messageCount","reorderRolesOnPriorityUpdate","allRoles","oldRole","updatedRole","increased","priority","decreased","changedRoles","role","extractUserFromMember","_spaceMember","SpacesManager","handleNewRoom","handleSpaceUpdated","handleSpaceJoined","handleSpaceMemberJoined","handleSpaceMembers","handleSpaceRooms","handleRoomSummaryUpdated","handleNewRole","handleRoleDeleted","handleRoleUpdated","_getRoles","getRoles","_getRooms","roomsPromises","getRooms","_this$rooms$get","summary","roomIdToSpaceId","name","description","_handleRoomDeleted","_this$rooms$get2","space","spaceChanged","systemRoom","defaultRooms","_this$rooms$get$items","_this$rooms$get3","_this$roomIdToSpaceId","addJoinedSpaces","_this$roles","summaries","_handleRoomSummaryUpdated","summariesPromise","oldSummary","newSummary","_this$roles$get","newRole","rolesToUpdate","Layer","PermissionDefinition","Permissions","getNames","getByName","canBeDefinedOnLayer","permissionName","layer","def","maxLayer","Root","Room","CreateSpaces","Global","ManageSpace","Space","ManageSpaceRoles","ManageRoom","CreateTopics","ManageTopic","Topic","ManageSpaceMembers","ManageRoomMembers","CreateMessages","ManagePermissions","CreateSpaceRooms","ManageSpaceRooms","CreateEmoticons","ManageEmoticon","ManageBan","Kick","ChangeOwnNick","ChangeOwnColor","_superPropBase","getOwnPropertyDescriptor","hasOwnProperty","getOvId","target","roleId","join","getOvIdByObject","overwrites","PermissionsManager","handlePermissionOverwrites","_getOverwrites","validateLocation","overwritesPromises","getOverwrites","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","check","_calculatePermissions","_spaceMember$roles","_roomMember$roles","_yield$this$tracker$s","_yield$this$tracker$r","_yield$this$tracker$r2","_yield$this$fetchMemb","_yield$this$fetchMemb2","userRoles","filterLocation","_filterLocation","_t6","_t7","_t8","_t9","_t0","_t1","_t10","_t11","fetchMembersOrFail","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me2","prefix","startsWith","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_x7","_x8","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","sort","b","_currentValue$overwri","_currentValue$overwri2","_currentValue$overwri3","_currentValue$overwri4","Math","max","allow","deny","overwriteEvent","_overwrites$deny$toSt","_overwrites$deny","_overwrites$allow$toS","_overwrites$allow","revDecDenies","split","reverse","revDecAllows","_revDecDenies$i","_revDecAllows$i","parseInt","_x9","_x0","permissionOverwritesValues","getRootAccessValue","_fetchMembersOrFail","results","spaceFail","roomFail","_x1","GLOBAL_KEY","EmoticonsManager","handleEmoticons","handleNewEmoticon","handleEmoticonDeleted","emoticonsPromises","_event$location$space","emoticons","_ev$emoticon$spaceId","emoticon","_ev$spaceId","emoticonId","UsersManager","handleUsers","handleMembers","_getAvailable","users","getAvailable","session","_this$users","newUser","oldUser","online","onlineStatus","refUserId","getIdFromRelationship","relationship","refUser","RelationshipsManager","handleRelationships","handleNewRelationship","handleRelationshipDeleted","relationships","_exists","exists","ChatStateTracker","permissions","_me","WebSocketChatClientEvent","WebSocketChatClient","_AbstractChatClient","options","_this$options$stateTr","_options$ping","_options$ping2","_options$ping2$enable","_options$ping3","_options$ping3$noActi","_options$ping4","_options$ping4$pongBa","stateTracking","ping","enabled","noActivityTimeoutMs","pongBackTimeoutMs","_connect","_this$options$queryPa","_this$options$connect","params","isOpenWsState","isConnectingWsState","URLSearchParams","queryParams","token","ws","WebSocket","url","onclose","onClose","onmessage","onMessage","connectingTimeoutId","setTimeout","triggerConnectionTimeout","connectingTimeoutMs","authenticated","authenticatedResolvers","connect","disconnect","_this$ws","sendQueue","close","_send","commandType","commandData","sendEnvelope","_this$ws$readyState","_this$ws2","isReady","JSON","stringify","readyState","lastReceivedMessageAt","Date","now","parse","Event","isAuthenticated","startConnectionMonitor","sendFromQueue","stopConnectionMonitor","clearTimeout","reconnect","code","lastDelay","_loop","_this3$options$awaitQ","dataIndex","awaitQueueSendDelayMs","CONNECTING","OPEN","pingMonitorInterval","setInterval","inFlightPingTimeout","clearInterval","WebApiChatClientEvent","WebApiChatClient","sendStack","attempts","lastTimeoutId","makeApiCall","destroy","_onMessage","reqId","response","json","onError","body","_this$options$attempt","_this$options$attempt2","attemptsToSend","attemptDelayMs","bodyJson","headers","Accept","Authorization","fetch","method","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptors","defineProperties","AbstractRestClient","uri","_args","getUrl","getAuthHeaders","convertFetchResponse","_this$options$url","removeEndingSlash","defaultUrl","removeStartingSlash","_convertFetchResponse","_result$headers$get","status","text","replace","AuthClient","_AbstractRestClient","_deleteToken","errors","deleteToken","_createToken","login","password","clientName","_args3","client_name","createToken","FilesClient","_uploadFile","file","_name","encodeURIComponent","uploadFile","_getFileMeta","getFileMeta","_getFileMetaBulk","searchParams","append","getFileMetaBulk"],"ignoreList":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","mappings":"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","sources":["webpack://polfan-server-js-client/webpack/bootstrap","webpack://polfan-server-js-client/webpack/runtime/define property getters","webpack://polfan-server-js-client/webpack/runtime/hasOwnProperty shorthand","webpack://polfan-server-js-client/webpack/runtime/make namespace object","webpack://polfan-server-js-client/./src/EventTarget.ts","webpack://polfan-server-js-client/./src/AbstractChatClient.ts","webpack://polfan-server-js-client/./src/IndexedObjectCollection.ts","webpack://polfan-server-js-client/./src/state-tracker/AsyncUtils.ts","webpack://polfan-server-js-client/./src/state-tracker/TopicHistoryWindow.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomMessagesHistory.ts","webpack://polfan-server-js-client/./src/state-tracker/MessagesManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/functions.ts","webpack://polfan-server-js-client/./src/state-tracker/SpacesManager.ts","webpack://polfan-server-js-client/./src/Permissions.ts","webpack://polfan-server-js-client/./src/state-tracker/PermissionsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/EmoticonsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/UsersManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RelationshipsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/ChatStateTracker.ts","webpack://polfan-server-js-client/./src/WebSocketChatClient.ts","webpack://polfan-server-js-client/./src/WebApiChatClient.ts","webpack://polfan-server-js-client/./src/AbstractRestClient.ts","webpack://polfan-server-js-client/./src/AuthClient.ts","webpack://polfan-server-js-client/./src/FilesClient.ts","webpack://polfan-server-js-client/./src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export type EventHandler<EventT> = (ev?: EventT) => void;\r\ntype HandlersMap<EventT> = Map<string, EventHandler<EventT>[]>;\r\n\r\nexport interface ObservableInterface<EventT = any> {\r\n on(eventName: string, handler: EventHandler<EventT>): this;\r\n once(eventName: string, handler: EventHandler<EventT>): this;\r\n off(eventName: string, handler: EventHandler<EventT>): this;\r\n}\r\n\r\nexport class EventTarget<EventT = any> implements ObservableInterface<EventT> {\r\n protected events: HandlersMap<EventT> = new Map<string, EventHandler<EventT>[]>();\r\n protected onceEvents: HandlersMap<EventT> = new Map<string, EventHandler<EventT>[]>();\r\n\r\n public on(eventName: string, handler: EventHandler<EventT>): this {\r\n this.addHandler(this.events, eventName, handler);\r\n return this;\r\n }\r\n\r\n public once(eventName: string, handler: EventHandler<EventT>): this {\r\n this.addHandler(this.onceEvents, eventName, handler);\r\n return this;\r\n }\r\n\r\n public off(eventName: string, handler: EventHandler<EventT>): this {\r\n const index = this.events.get(eventName)?.indexOf(handler);\r\n if (!index || index < 0) {\r\n return this;\r\n }\r\n this.events.get(eventName).splice(index, 1);\r\n return this;\r\n }\r\n\r\n public emit(eventName: string, event?: EventT): this {\r\n this.callHandlers(this.events, eventName, event);\r\n this.callHandlers(this.onceEvents, eventName, event);\r\n this.onceEvents.delete(eventName);\r\n return this;\r\n }\r\n\r\n private addHandler(map: HandlersMap<EventT>, eventName: string, handler: EventHandler<EventT>): void {\r\n const handlers = map.get(eventName) ?? [];\r\n handlers.push(handler);\r\n map.set(eventName, handlers);\r\n }\r\n\r\n private callHandlers(map: HandlersMap<EventT>, eventName: string, event: EventT): void {\r\n map.get(eventName)?.forEach(callback => callback(event));\r\n }\r\n}","import {\r\n Bye,\r\n GetSession,\r\n JoinSpace,\r\n Session,\r\n SpaceJoined,\r\n Error as ErrorType,\r\n SpaceLeft,\r\n SpaceMemberJoined,\r\n SpaceMemberLeft,\r\n SpaceMemberUpdated,\r\n SpaceDeleted,\r\n SpaceMembers,\r\n SpaceRooms,\r\n NewRole,\r\n RoomDeleted,\r\n RoomJoined,\r\n RoomLeft,\r\n RoomMemberLeft,\r\n RoomMemberJoined,\r\n RoomMembers,\r\n NewRoom,\r\n NewTopic,\r\n TopicDeleted,\r\n NewMessage,\r\n GetPermissionOverwrites,\r\n GetComputedPermissions,\r\n LeaveSpace,\r\n CreateSpace,\r\n DeleteSpace,\r\n GetSpaceMembers,\r\n GetSpaceRooms,\r\n CreateRole,\r\n DeleteRole,\r\n AssignRole,\r\n DeassignRole,\r\n SetPermissionOverwrites,\r\n JoinRoom,\r\n LeaveRoom,\r\n CreateRoom,\r\n DeleteRoom,\r\n GetRoomMembers,\r\n CreateTopic,\r\n DeleteTopic,\r\n CreateMessage,\r\n Envelope,\r\n PermissionOverwrites,\r\n PermissionOverwritesUpdated,\r\n RoomMemberUpdated,\r\n UpdateRole,\r\n RoleUpdated,\r\n Ack,\r\n UserUpdated,\r\n UpdateRoom,\r\n RoomUpdated,\r\n UpdateSpace,\r\n SpaceUpdated,\r\n PermissionOverwriteTargets,\r\n GetPermissionOverwriteTargets,\r\n Owners,\r\n Ok,\r\n GetOwners,\r\n CreateOwner,\r\n RoleDeleted,\r\n FollowedTopicUpdated,\r\n TopicFollowed,\r\n TopicUnfollowed,\r\n FollowedTopics,\r\n FollowTopic,\r\n UnfollowTopic,\r\n GetFollowedTopics,\r\n Messages,\r\n GetMessages,\r\n Topics,\r\n GetTopics,\r\n TopicUpdated,\r\n UpdateTopic,\r\n GetDiscoverableSpaces,\r\n DiscoverableSpaces,\r\n CreateEmoticon,\r\n DeleteEmoticon,\r\n GetEmoticons,\r\n Emoticons,\r\n EmoticonDeleted,\r\n NewEmoticon,\r\n Bans,\r\n GetBans,\r\n Ban,\r\n Unban,\r\n Kick,\r\n ClientData,\r\n GetClientData,\r\n SetClientData,\r\n GetRoomSummary,\r\n GetSpaceSummary,\r\n RoomSummaryEvent,\r\n SpaceSummaryEvent,\r\n UpdateSpaceMember,\r\n Relationships,\r\n RelationshipDeleted,\r\n NewRelationship,\r\n DeleteRelationship,\r\n CreateRelationship,\r\n RoomSummaryUpdated, Pong, Ping,\r\n} from \"./types/src/index\";\r\nimport {EventTarget} from \"./EventTarget\";\r\nimport {GetRelationships} from \"./types/src/schemes/commands/GetRelationships\";\r\nimport {UpdateRoomMember} from \"./types/src/schemes/commands/UpdateRoomMember\";\r\n\r\ntype ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];\r\n\r\nexport abstract class AbstractChatClient extends EventTarget {\r\n protected awaitingResponse: Map<string, ArrayOfPromiseResolvers> = new Map<string, ArrayOfPromiseResolvers>();\r\n protected sentCounter: number = 0;\r\n\r\n public abstract send<CommandType extends keyof CommandsMap>\r\n (commandType: CommandType, commandData: CommandsMap[CommandType][0]): Promise<CommandResult<CommandsMap[CommandType][1]>>;\r\n\r\n public on<EventName extends keyof EventsMap>\r\n (eventName: EventName | string, handler: (event: EventsMap[EventName]) => void): this {\r\n return super.on(eventName, handler);\r\n }\r\n\r\n public once<EventName extends keyof EventsMap>\r\n (eventName: EventName, handler: (event: EventsMap[EventName]) => void): this {\r\n return super.once(eventName, handler);\r\n }\r\n\r\n protected createEnvelope<CommandT>(type: string, data: CommandT): Envelope<CommandT> {\r\n return {\r\n type, data, ref: (++this.sentCounter).toString()\r\n };\r\n }\r\n\r\n protected createPromiseFromCommandEnvelope\r\n <CommandT extends keyof CommandsMap>(envelope: Envelope<CommandsMap[CommandT][0]>):\r\n Promise<CommandResult<CommandsMap[CommandT][1]>> {\r\n return new Promise((...args) =>\r\n this.awaitingResponse.set(envelope.ref as string, args));\r\n }\r\n\r\n protected handleIncomingEnvelope(envelope: Envelope): void {\r\n if (!this.awaitingResponse.has(envelope.ref)) {\r\n return;\r\n }\r\n const isError = envelope.type === 'Error';\r\n this.awaitingResponse.get(envelope.ref)[0]({\r\n data: isError ? null : envelope.data,\r\n error: isError ? envelope.data : null,\r\n } as CommandResult<any>);\r\n this.awaitingResponse.delete(envelope.ref);\r\n }\r\n\r\n protected handleEnvelopeSendError(envelope: Envelope, error: any): void {\r\n if (!this.awaitingResponse.has(envelope.ref)) {\r\n return;\r\n }\r\n this.awaitingResponse.get(envelope.ref)[1](error);\r\n this.awaitingResponse.delete(envelope.ref);\r\n }\r\n}\r\n\r\nexport type CommandResult<ResultT> = {data?: ResultT, error?: ErrorType};\r\n\r\n/**\r\n * Map of incoming events.\r\n */\r\nexport type EventsMap = {\r\n // General Events\r\n Bye: Bye,\r\n Ok: Ok,\r\n Error: ErrorType,\r\n Session: Session,\r\n Permissions: Permissions,\r\n PermissionOverwrites: PermissionOverwrites,\r\n PermissionOverwritesUpdated: PermissionOverwritesUpdated,\r\n PermissionOverwriteTargets: PermissionOverwriteTargets,\r\n Owners: Owners,\r\n NewEmoticon: NewEmoticon,\r\n EmoticonDeleted: EmoticonDeleted,\r\n Emoticons: Emoticons,\r\n Bans: Bans,\r\n ClientData: ClientData,\r\n NewRelationship: NewRelationship,\r\n RelationshipDeleted: RelationshipDeleted,\r\n Relationships: Relationships,\r\n Pong: Pong,\r\n // Space events\r\n DiscoverableSpaces: DiscoverableSpaces,\r\n SpaceJoined: SpaceJoined,\r\n SpaceLeft: SpaceLeft,\r\n SpaceMemberJoined: SpaceMemberJoined,\r\n SpaceMemberLeft: SpaceMemberLeft,\r\n SpaceMemberUpdated: SpaceMemberUpdated,\r\n SpaceUpdated: SpaceUpdated,\r\n SpaceDeleted: SpaceDeleted,\r\n SpaceMembers: SpaceMembers,\r\n SpaceRooms: SpaceRooms,\r\n NewRole: NewRole,\r\n RoleDeleted: RoleDeleted,\r\n RoleUpdated: RoleUpdated,\r\n SpaceSummaryEvent: SpaceSummaryEvent,\r\n // Room events\r\n RoomJoined: RoomJoined,\r\n RoomLeft: RoomLeft,\r\n RoomMemberJoined: RoomMemberJoined,\r\n RoomMemberLeft: RoomMemberLeft,\r\n RoomMemberUpdated: RoomMemberUpdated,\r\n RoomMembers: RoomMembers,\r\n NewRoom: NewRoom,\r\n RoomDeleted: RoomDeleted,\r\n RoomUpdated: RoomUpdated,\r\n RoomSummaryEvent: RoomSummaryEvent,\r\n RoomSummaryUpdated: RoomSummaryUpdated,\r\n // Topic events\r\n NewTopic: NewTopic,\r\n TopicDeleted: TopicDeleted,\r\n NewMessage: NewMessage,\r\n UserUpdated: UserUpdated,\r\n TopicFollowed: TopicFollowed,\r\n TopicUnfollowed: TopicUnfollowed,\r\n FollowedTopics: FollowedTopics,\r\n FollowedTopicUpdated: FollowedTopicUpdated,\r\n Messages: Messages,\r\n Topics: Topics,\r\n TopicUpdated: TopicUpdated,\r\n};\r\n\r\n/**\r\n * Map of commands and their corresponding events.\r\n */\r\nexport type CommandsMap = {\r\n // General commands\r\n GetSession: [GetSession, EventsMap['Session']],\r\n SetPermissionOverwrites: [SetPermissionOverwrites, EventsMap['PermissionOverwritesUpdated']],\r\n GetPermissionOverwrites: [GetPermissionOverwrites, EventsMap['PermissionOverwrites']],\r\n GetComputedPermissions: [GetComputedPermissions, EventsMap['Permissions']],\r\n GetPermissionOverwriteTargets: [GetPermissionOverwriteTargets, EventsMap['PermissionOverwriteTargets']],\r\n GetOwners: [GetOwners, EventsMap['Owners']],\r\n CreateOwner: [CreateOwner, EventsMap['Owners']],\r\n DeleteOwner: [CreateOwner, EventsMap['Owners']],\r\n CreateEmoticon: [CreateEmoticon, EventsMap['NewEmoticon']],\r\n DeleteEmoticon: [DeleteEmoticon, EventsMap['EmoticonDeleted']],\r\n GetEmoticons: [GetEmoticons, EventsMap['Emoticons']],\r\n GetBans: [GetBans, EventsMap['Bans']],\r\n Ban: [Ban, EventsMap['Ok']],\r\n Unban: [Unban, EventsMap['Ok']],\r\n Kick: [Kick, EventsMap['Ok']],\r\n GetClientData: [GetClientData, EventsMap['ClientData']],\r\n SetClientData: [SetClientData, EventsMap['Ok']],\r\n DeleteRelationship: [DeleteRelationship, EventsMap['RelationshipDeleted']],\r\n CreateRelationship: [CreateRelationship, EventsMap['NewRelationship']],\r\n GetRelationships: [GetRelationships, EventsMap['Relationships']],\r\n Ping: [Ping, EventsMap['Pong']],\r\n // Space commands\r\n GetDiscoverableSpaces: [GetDiscoverableSpaces, EventsMap['DiscoverableSpaces']],\r\n JoinSpace: [JoinSpace, EventsMap['SpaceJoined']],\r\n LeaveSpace: [LeaveSpace, EventsMap['SpaceLeft']],\r\n CreateSpace: [CreateSpace, EventsMap['SpaceJoined']],\r\n UpdateSpace: [UpdateSpace, EventsMap['SpaceUpdated']],\r\n DeleteSpace: [DeleteSpace, EventsMap['SpaceDeleted']],\r\n GetSpaceMembers: [GetSpaceMembers, EventsMap['SpaceMembers']],\r\n GetSpaceRooms: [GetSpaceRooms, EventsMap['SpaceRooms']],\r\n CreateRole: [CreateRole, EventsMap['NewRole']],\r\n DeleteRole: [DeleteRole, EventsMap['RoleDeleted']],\r\n UpdateRole: [UpdateRole, EventsMap['RoleUpdated']],\r\n AssignRole: [AssignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']],\r\n DeassignRole: [DeassignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']],\r\n GetSpaceSummary: [GetSpaceSummary, EventsMap['SpaceSummaryEvent']],\r\n UpdateSpaceMember: [UpdateSpaceMember, EventsMap['SpaceMemberUpdated']],\r\n // Room commands\r\n JoinRoom: [JoinRoom, EventsMap['RoomJoined']],\r\n LeaveRoom: [LeaveRoom, EventsMap['RoomLeft']],\r\n CreateRoom: [CreateRoom, EventsMap['RoomJoined']],\r\n DeleteRoom: [DeleteRoom, EventsMap['RoomDeleted']],\r\n UpdateRoom: [UpdateRoom, EventsMap['RoomUpdated']],\r\n GetRoomMembers: [GetRoomMembers, EventsMap['RoomMembers']],\r\n GetRoomSummary: [GetRoomSummary, EventsMap['RoomSummaryEvent']],\r\n UpdateRoomMember: [UpdateRoomMember, EventsMap['RoomMemberUpdated']],\r\n // Topic commands\r\n CreateTopic: [CreateTopic, EventsMap['NewTopic']],\r\n DeleteTopic: [DeleteTopic, EventsMap['TopicDeleted']],\r\n CreateMessage: [CreateMessage, EventsMap['NewMessage']],\r\n Ack: [Ack, EventsMap['FollowedTopicUpdated'] | EventsMap['Ok']],\r\n FollowTopic: [FollowTopic, EventsMap['TopicFollowed']],\r\n UnfollowTopic: [UnfollowTopic, EventsMap['TopicUnfollowed']],\r\n GetFollowedTopics: [GetFollowedTopics, EventsMap['FollowedTopics']],\r\n GetMessages: [GetMessages, EventsMap['Messages']],\r\n GetTopics: [GetTopics, EventsMap['Topics']],\r\n UpdateTopic: [UpdateTopic, EventsMap['TopicUpdated']],\r\n}","import {EventTarget, ObservableInterface} from \"./EventTarget\";\r\n\r\nexport class IndexedCollection<KeyT, ValueT> {\r\n protected _items: Map<KeyT, ValueT> = new Map();\r\n\r\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\r\n this.set(...items);\r\n }\r\n\r\n public get items(): Map<KeyT, ValueT> {\r\n return this._items;\r\n }\r\n\r\n public get length(): number {\r\n return this._items.size;\r\n }\r\n\r\n public set(...items: [KeyT, ValueT][]): void {\r\n for (const item of items) {\r\n this._items.set(item[0], item[1]);\r\n }\r\n }\r\n\r\n public get(id: KeyT): ValueT | undefined {\r\n return this.items.get(id);\r\n }\r\n\r\n public has(id: KeyT): boolean {\r\n return this.items.has(id);\r\n }\r\n\r\n public delete(...ids: KeyT[]): void {\r\n for (const id of ids) {\r\n this.items.delete(id);\r\n }\r\n }\r\n\r\n public deleteAll(): void {\r\n this.items.clear();\r\n }\r\n\r\n public findBy(field: keyof ValueT, valueToFind: any, limit: number = null): IndexedCollection<KeyT, ValueT> {\r\n const result = new IndexedCollection<KeyT, ValueT>();\r\n let item;\r\n while (!(item = this.items.entries().next().value).done) {\r\n if (limit && result.length === limit) {\r\n break;\r\n }\r\n if (item[1][field] === valueToFind) {\r\n result.set(item);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n public createMirror(): IndexedCollection<KeyT, ValueT> {\r\n const copy = new IndexedCollection<KeyT, ValueT>();\r\n copy._items = this._items;\r\n return copy;\r\n }\r\n}\r\n\r\nexport class IndexedObjectCollection<T> {\r\n protected _items: IndexedCollection<string, T>;\r\n\r\n public constructor(\r\n public readonly id: keyof T | ((item: T) => any),\r\n items: T[] = [],\r\n ) {\r\n this._items = new IndexedCollection<string, T>();\r\n this.set(...items);\r\n }\r\n\r\n public get items(): T[] {\r\n return Array.from(this._items.items.values());\r\n }\r\n\r\n public get length(): number {\r\n return this._items.length;\r\n }\r\n\r\n public set(...items: T[]): void {\r\n this._items.set(...(items.map(item => [this.getId(item), item] as [string, T])));\r\n }\r\n\r\n public get(id: any): T | undefined {\r\n return this._items.get(id);\r\n }\r\n\r\n public getAt(index: number): T | undefined {\r\n return this.items[index];\r\n }\r\n\r\n public has(id: any): boolean {\r\n return this._items.has(id);\r\n }\r\n\r\n public delete(...ids: any[]): void {\r\n this._items.delete(...ids);\r\n }\r\n\r\n public deleteAll(): void {\r\n this._items.deleteAll();\r\n }\r\n\r\n public findBy(field: keyof T, valueToFind: any, limit: number = null): IndexedObjectCollection<T> {\r\n const result = new IndexedObjectCollection<T>(this.id);\r\n for (const value of this.items) {\r\n if (limit && result.length === limit) {\r\n break;\r\n }\r\n if (value[field] === valueToFind) {\r\n result.set(value);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n public createMirror(): IndexedObjectCollection<T> {\r\n const copy = new IndexedObjectCollection<T>(this.id);\r\n copy._items = this._items;\r\n return copy;\r\n }\r\n\r\n protected getId(item: T): any {\r\n return typeof this.id === 'function' ? this.id(item) : item[this.id];\r\n }\r\n}\r\n\r\ninterface ObservableCollectionEvent<KeyT> {\r\n setItems?: KeyT[],\r\n deletedItems?: KeyT[],\r\n}\r\n\r\nexport class ObservableIndexedCollection<KeyT, ValueT> extends IndexedCollection<KeyT, ValueT> implements ObservableInterface {\r\n protected eventTarget: EventTarget<ObservableCollectionEvent<KeyT>>;\r\n\r\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\r\n super();\r\n this.eventTarget = new EventTarget<ObservableCollectionEvent<KeyT>>();\r\n this.set(...items);\r\n }\r\n\r\n public set(...items: [KeyT, ValueT][]) {\r\n if (items.length) {\r\n super.set(...items);\r\n this.eventTarget.emit('change', {setItems: items.map(item => item[0])});\r\n }\r\n }\r\n\r\n public delete(...ids: KeyT[]) {\r\n if (ids.length) {\r\n super.delete(...ids);\r\n this.eventTarget.emit('change', {deletedItems: ids});\r\n }\r\n }\r\n\r\n public deleteAll() {\r\n if (this.length) {\r\n const ids = this._items.keys();\r\n super.deleteAll();\r\n this.eventTarget.emit('change', {deletedItems: Array.from(ids)});\r\n }\r\n }\r\n\r\n public createMirror(): ObservableIndexedCollection<KeyT, ValueT> {\r\n const copy = new ObservableIndexedCollection<KeyT, ValueT>();\r\n copy.eventTarget = this.eventTarget;\r\n copy._items = this._items;\r\n return copy;\r\n }\r\n\r\n public on(eventName: 'change', handler: (ev?: ObservableCollectionEvent<KeyT>) => void): this {\r\n this.eventTarget.on(eventName, handler);\r\n return this;\r\n }\r\n\r\n public once(eventName: 'change', handler: (ev?: ObservableCollectionEvent<KeyT>) => void): this {\r\n this.eventTarget.once(eventName, handler);\r\n return this;\r\n }\r\n\r\n public off(eventName: string, handler: (ev?: ObservableCollectionEvent<KeyT>) => void): this {\r\n this.eventTarget.off(eventName, handler);\r\n return this;\r\n }\r\n}\r\n\r\nexport class ObservableIndexedObjectCollection<T> extends IndexedObjectCollection<T> implements ObservableInterface {\r\n protected eventTarget: EventTarget<ObservableCollectionEvent<string>>;\r\n\r\n public constructor(\r\n public readonly id: keyof T | ((item: T) => string),\r\n items: T[] = [],\r\n ) {\r\n super(id);\r\n this.eventTarget = new EventTarget();\r\n this.set(...items);\r\n }\r\n\r\n public set(...items: T[]) {\r\n if (items.length) {\r\n super.set(...items);\r\n this.eventTarget.emit('change', {setItems: items.map(item => this.getId(item))});\r\n }\r\n }\r\n\r\n public delete(...ids: string[]) {\r\n if (ids.length) {\r\n super.delete(...ids);\r\n this.eventTarget.emit('change', {deletedItems: ids});\r\n }\r\n }\r\n\r\n public deleteAll() {\r\n if (this.length) {\r\n const ids = this._items.items.keys();\r\n super.deleteAll();\r\n this.eventTarget.emit('change', {deletedItems: Array.from(ids)});\r\n }\r\n }\r\n\r\n public createMirror(): IndexedObjectCollection<T> {\r\n const copy = new ObservableIndexedObjectCollection<T>(this.id);\r\n copy.eventTarget = this.eventTarget;\r\n copy._items = this._items;\r\n return copy;\r\n }\r\n\r\n public on(eventName: 'change', handler: (ev?: ObservableCollectionEvent<string>) => void): this {\r\n this.eventTarget.on(eventName, handler);\r\n return this;\r\n }\r\n\r\n public once(eventName: 'change', handler: (ev?: ObservableCollectionEvent<string>) => void): this {\r\n this.eventTarget.once(eventName, handler);\r\n return this;\r\n }\r\n\r\n public off(eventName: string, handler: (ev?: ObservableCollectionEvent<string>) => void): this {\r\n this.eventTarget.off(eventName, handler);\r\n return this;\r\n }\r\n}","import {IndexedCollection} from \"../IndexedObjectCollection\";\r\n\r\nexport class DeferredTask {\r\n public readonly promise: Promise<void>;\r\n public resolve: () => void;\r\n\r\n public constructor() {\r\n this.promise = new Promise<void>((resolve) => this.resolve = resolve);\r\n }\r\n}\r\n\r\nexport class PromiseRegistry {\r\n private promises = new IndexedCollection<string, Promise<any>>();\r\n\r\n public register<T = any>(promise: Promise<T>, key: string): void {\r\n this.promises.set([key, promise]);\r\n }\r\n\r\n public registerByFunction(fn: () => Promise<any>, key: string): void {\r\n this.register(fn(), key);\r\n }\r\n\r\n public get<T = any>(key: string): Promise<T> | undefined {\r\n return this.promises.get(key);\r\n }\r\n\r\n public has(key: string): boolean {\r\n return this.promises.has(key);\r\n }\r\n\r\n public notExist(key: string): boolean {\r\n return ! this.has(key);\r\n }\r\n\r\n public forget(...keys: string[]): void {\r\n this.promises.delete(...keys);\r\n }\r\n\r\n public forgetAll(): void {\r\n this.promises.deleteAll();\r\n }\r\n}","import {Message, NewMessage, Session, Topic} from \"../types/src\";\r\nimport {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\r\n\r\nexport enum WindowState {\r\n /**\r\n * The latest messages (those received live) are available in the history window, history has not been fetched.\r\n */\r\n LIVE,\r\n\r\n /**\r\n * The latest messages has been fetched and are available in the history window.\r\n */\r\n LATEST,\r\n\r\n /**\r\n * The historical messages have been fetched and are available in the history window.\r\n * Latest messages are not available and will not be available.\r\n */\r\n PAST,\r\n\r\n /**\r\n * The oldest messages have been fetched and are available in the history window.\r\n * Next attempts to fetch previous messages will result with no-op.\r\n */\r\n OLDEST,\r\n}\r\n\r\nexport abstract class TraversableRemoteCollection<T> extends ObservableIndexedObjectCollection<T> {\r\n /**\r\n * Current mode od collection window. To change mode, call one of available fetch methods.\r\n */\r\n public get state(): WindowState {\r\n return this.internalState.current;\r\n }\r\n\r\n protected internalState: {\r\n current: WindowState,\r\n ongoing?: WindowState,\r\n limit: number | null,\r\n oldestId: string | null,\r\n } = {\r\n current: WindowState.LIVE,\r\n ongoing: undefined,\r\n limit: 50,\r\n oldestId: null,\r\n };\r\n\r\n /**\r\n * Maximum numer of items stored in window.\r\n * Null for unlimited.\r\n */\r\n public get limit(): number | null {\r\n return this.internalState.limit;\r\n }\r\n\r\n /**\r\n * Maximum numer of items stored in window.\r\n * Null for unlimited.\r\n */\r\n public set limit(value: number | null) {\r\n this.internalState.limit = value;\r\n }\r\n\r\n public get hasLatest(): boolean {\r\n return [WindowState.LATEST, WindowState.LIVE].includes(this.state);\r\n }\r\n\r\n public get hasOldest(): boolean {\r\n return this.state === WindowState.OLDEST || this.internalState.oldestId !== null && this.has(this.internalState.oldestId);\r\n }\r\n\r\n public abstract createMirror(): TraversableRemoteCollection<T>;\r\n\r\n public async resetToLatest(): Promise<void> {\r\n if (this.internalState.ongoing || this.internalState.current === WindowState.LATEST) {\r\n return;\r\n }\r\n\r\n this.internalState.ongoing = WindowState.LATEST;\r\n\r\n let result;\r\n\r\n try {\r\n result = await this.fetchLatestItems();\r\n } finally {\r\n this.internalState.ongoing = undefined;\r\n }\r\n\r\n this.deleteAll();\r\n this.addItems(result, 'tail');\r\n this.internalState.current = WindowState.LATEST;\r\n }\r\n\r\n public async fetchPrevious(): Promise<void> {\r\n if (this.internalState.ongoing || this.hasOldest) {\r\n return;\r\n }\r\n\r\n this.internalState.ongoing = WindowState.PAST;\r\n\r\n let result;\r\n\r\n try {\r\n result = await this.fetchItemsBefore();\r\n } finally {\r\n this.internalState.ongoing = undefined;\r\n }\r\n\r\n if (! result) {\r\n return this.resetToLatest();\r\n }\r\n\r\n if (! result.length) {\r\n const firstItem = this.getAt(0);\r\n this.internalState.oldestId = firstItem ? this.getId(firstItem) : null;\r\n\r\n await this.refreshFetchedState();\r\n\r\n // LATEST state has priority over OLDEST\r\n if (this.internalState.current === WindowState.PAST) {\r\n this.internalState.current = WindowState.OLDEST;\r\n }\r\n\r\n return;\r\n }\r\n\r\n this.addItems(result, 'head');\r\n await this.refreshFetchedState();\r\n }\r\n\r\n public async fetchNext(): Promise<void> {\r\n if (this.internalState.ongoing || this.hasLatest) {\r\n return;\r\n }\r\n\r\n this.internalState.ongoing = WindowState.PAST;\r\n\r\n let result;\r\n\r\n try {\r\n result = await this.fetchItemsAfter();\r\n } finally {\r\n this.internalState.ongoing = undefined;\r\n }\r\n\r\n if (! result) {\r\n await this.resetToLatest();\r\n return;\r\n }\r\n\r\n if (result.length) {\r\n this.addItems(result, 'tail');\r\n await this.refreshFetchedState();\r\n return;\r\n }\r\n }\r\n\r\n protected abstract fetchLatestItems(): Promise<T[]>;\r\n\r\n protected abstract fetchItemsBefore(): Promise<T[] | null>;\r\n\r\n protected abstract fetchItemsAfter(): Promise<T[] | null>;\r\n\r\n protected abstract isLatestItemLoaded(): Promise<boolean>;\r\n\r\n protected async refreshFetchedState(): Promise<void> {\r\n this.internalState.current = (await this.isLatestItemLoaded()) ? WindowState.LATEST : WindowState.PAST;\r\n }\r\n\r\n protected addItems(newItems: T[], to: 'head' | 'tail'): void {\r\n let result;\r\n\r\n if (to === 'head') {\r\n result = this.trimItemsArrayToLimit([...newItems, ...this.items], 'tail');\r\n }\r\n\r\n if (to === 'tail') {\r\n result = this.trimItemsArrayToLimit([...this.items, ...newItems], 'head');\r\n }\r\n\r\n this.deleteAll();\r\n this.set(...result);\r\n }\r\n\r\n /**\r\n * Return array with messages of count that matching limit.\r\n */\r\n private trimItemsArrayToLimit(items: T[], from: 'head' | 'tail'): T[] {\r\n if (this.limit === null) {\r\n return items;\r\n }\r\n\r\n if (from === 'head') {\r\n return items.slice(-this.limit);\r\n }\r\n\r\n if (from === 'tail') {\r\n return items.slice(0, this.limit);\r\n }\r\n }\r\n}\r\n\r\nexport class TopicHistoryWindow extends TraversableRemoteCollection<Message> {\r\n /**\r\n * Reexported available window modes enum.\r\n */\r\n public readonly WindowState: typeof WindowState = WindowState;\r\n\r\n declare protected internalState: typeof TraversableRemoteCollection<Message>['prototype']['internalState'] & {\r\n traverseLock: boolean,\r\n };\r\n\r\n public constructor(\r\n private roomId: string,\r\n private topicId: string,\r\n private tracker: ChatStateTracker,\r\n bindEvents: boolean = true,\r\n ) {\r\n super('id');\r\n\r\n this.internalState.traverseLock = false;\r\n\r\n if (bindEvents) {\r\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\r\n }\r\n }\r\n\r\n public createMirror(): TopicHistoryWindow {\r\n const copy = new TopicHistoryWindow(this.roomId, this.topicId, this.tracker, false);\r\n copy.eventTarget = this.eventTarget;\r\n copy._items = this._items;\r\n copy.internalState = this.internalState;\r\n return copy;\r\n }\r\n\r\n public get isTraverseLocked(): boolean {\r\n return this.internalState.traverseLock;\r\n }\r\n\r\n public async setTraverseLock(lock: boolean): Promise<void> {\r\n this.internalState.traverseLock = lock;\r\n\r\n if (lock && (this.state !== WindowState.LIVE && this.state !== WindowState.LATEST)) {\r\n await super.resetToLatest();\r\n }\r\n }\r\n\r\n public async resetToLatest(): Promise<void> {\r\n if (this.internalState.traverseLock) {\r\n return;\r\n }\r\n return super.resetToLatest();\r\n }\r\n\r\n public async fetchNext(): Promise<void> {\r\n if (this.internalState.traverseLock) {\r\n return;\r\n }\r\n return super.fetchNext();\r\n }\r\n\r\n public async fetchPrevious(): Promise<void> {\r\n if (this.internalState.traverseLock) {\r\n return;\r\n }\r\n return super.fetchPrevious();\r\n }\r\n\r\n /**\r\n * For internal use.\r\n * @internal\r\n */\r\n public _updateMessageReference(refTopic: Topic): void {\r\n const refMessage = this.get(refTopic.refMessage.id);\r\n\r\n if (refMessage) {\r\n // Update referenced topic ID in message\r\n this.set({...refMessage, topicRef: refTopic.id});\r\n }\r\n }\r\n\r\n private async handleNewMessage(ev: NewMessage): Promise<void> {\r\n if (\r\n [WindowState.LATEST, WindowState.LIVE].includes(this.state)\r\n && ev.message.location.roomId === this.roomId\r\n && ev.message.location.topicId === this.topicId\r\n ) {\r\n this.addItems([ev.message], 'tail');\r\n }\r\n }\r\n\r\n protected async fetchItemsAfter(): Promise<Message[] | null> {\r\n const afterId = this.getAt(this.length - 1)?.id;\r\n\r\n if (! afterId) {\r\n // If there is no message to refer, fetch latest\r\n return null;\r\n }\r\n\r\n const result = await this.tracker.client.send('GetMessages', {\r\n location: {roomId: this.roomId, topicId: this.topicId},\r\n after: afterId,\r\n });\r\n\r\n if (result.error) {\r\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\r\n }\r\n\r\n return result.data.messages;\r\n }\r\n\r\n protected async fetchItemsBefore(): Promise<Message[] | null> {\r\n const beforeId = this.getAt(0)?.id;\r\n\r\n if (! beforeId) {\r\n // If there is no message to refer, fetch latest\r\n return null;\r\n }\r\n\r\n const result = await this.tracker.client.send('GetMessages', {\r\n location: {roomId: this.roomId, topicId: this.topicId},\r\n before: beforeId,\r\n });\r\n\r\n if (result.error) {\r\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\r\n }\r\n\r\n return result.data.messages;\r\n }\r\n\r\n protected async fetchLatestItems(): Promise<Message[]> {\r\n const result = await this.tracker.client.send('GetMessages', {\r\n location: {roomId: this.roomId, topicId: this.topicId},\r\n });\r\n\r\n if (result.error) {\r\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\r\n }\r\n\r\n return result.data.messages;\r\n }\r\n\r\n private async getTopic(): Promise<Topic | undefined> {\r\n return (await this.tracker.rooms.getTopics(this.roomId, [this.topicId])).get(this.topicId);\r\n }\r\n\r\n private async getLatestMessageId(): Promise<string | undefined> {\r\n return (await this.getTopic())?.lastMessage?.id;\r\n }\r\n\r\n protected async isLatestItemLoaded(): Promise<boolean> {\r\n const lastMessageId = await this.getLatestMessageId();\r\n return lastMessageId ? this.has(lastMessageId) : true;\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {NewTopic, Room, RoomUpdated, Topic, TopicDeleted} from \"../types/src\";\r\nimport {IndexedCollection,} from \"../IndexedObjectCollection\";\r\nimport {TopicHistoryWindow} from \"./TopicHistoryWindow\";\r\n\r\nexport class RoomMessagesHistory {\r\n private historyWindows = new IndexedCollection<string, TopicHistoryWindow>();\r\n private traverseLock: boolean = false;\r\n\r\n public constructor(\r\n private room: Room,\r\n private tracker: ChatStateTracker,\r\n ) {\r\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\r\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\r\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\r\n\r\n this.updateTraverseLock(this.room);\r\n\r\n if (this.room.defaultTopic) {\r\n this.createHistoryWindowForTopic(this.room.defaultTopic);\r\n }\r\n }\r\n\r\n /**\r\n * Returns a history window object for the given topic ID, allowing you to view message history.\r\n */\r\n public async getMessagesWindow(topicId: string): Promise<TopicHistoryWindow | undefined> {\r\n let historyWindow = this.historyWindows.get(topicId);\r\n\r\n if (!historyWindow) {\r\n const topic = (await this.tracker.rooms.getTopics(this.room.id, [topicId])).get(topicId);\r\n\r\n if (topic) {\r\n this.createHistoryWindowForTopic(topic);\r\n }\r\n }\r\n\r\n return this.historyWindows.get(topicId);\r\n }\r\n\r\n private async handleRoomUpdated(ev: RoomUpdated): Promise<void> {\r\n if (this.room.id === ev.room.id) {\r\n this.room = ev.room;\r\n\r\n this.updateTraverseLock(ev.room);\r\n\r\n if (ev.room.defaultTopic) {\r\n this.createHistoryWindowForTopic(ev.room.defaultTopic);\r\n }\r\n\r\n for (const [, window] of Array.from(this.historyWindows.items)) {\r\n await window.setTraverseLock(this.traverseLock);\r\n }\r\n }\r\n }\r\n\r\n private handleNewTopic(ev: NewTopic): void {\r\n if (this.room.id === ev.roomId) {\r\n this.createHistoryWindowForTopic(ev.topic);\r\n }\r\n }\r\n\r\n private handleTopicDeleted(ev: TopicDeleted): void {\r\n if (this.room.id === ev.location.roomId) {\r\n this.historyWindows.delete(ev.location.topicId);\r\n }\r\n }\r\n\r\n private createHistoryWindowForTopic(topic: Topic): void {\r\n if (this.historyWindows.has(topic.id)) {\r\n return;\r\n }\r\n\r\n const historyWindow = new TopicHistoryWindow(this.room.id, topic.id, this.tracker);\r\n\r\n void historyWindow.setTraverseLock(this.traverseLock);\r\n\r\n this.historyWindows.set([topic.id, historyWindow]);\r\n\r\n // If new topic refers to some message from this room, update other structures\r\n if (topic.refMessage) {\r\n const refHistoryWindow = this.historyWindows.get(topic.refMessage.location.topicId);\r\n refHistoryWindow?._updateMessageReference(topic);\r\n }\r\n }\r\n\r\n private updateTraverseLock(room: Room): void {\r\n this.traverseLock = room.history.mode === 'Ephemeral';\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {\r\n NewMessage,\r\n FollowedTopic,\r\n TopicFollowed,\r\n TopicUnfollowed,\r\n RoomDeleted,\r\n RoomLeft,\r\n TopicDeleted,\r\n FollowedTopicUpdated, RoomJoined, NewTopic, Session, Room, MessageType,\r\n} from \"../types/src\";\r\nimport {\r\n IndexedCollection,\r\n ObservableIndexedObjectCollection\r\n} from \"../IndexedObjectCollection\";\r\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\r\nimport {RoomMessagesHistory} from \"./RoomMessagesHistory\";\r\n\r\nexport class MessagesManager {\r\n private readonly roomHistories = new IndexedCollection<string, RoomMessagesHistory>();\r\n private readonly followedTopics = new IndexedCollection<string, ObservableIndexedObjectCollection<FollowedTopic>>();\r\n private readonly followedTopicsPromises = new PromiseRegistry();\r\n private readonly deferredSession = new DeferredTask();\r\n\r\n public constructor(private tracker: ChatStateTracker) {\r\n this.tracker.client.on('Session', ev => this.handleSession(ev));\r\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\r\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\r\n this.tracker.client.on('FollowedTopicUpdated', ev => this.handleFollowedTopicUpdated(ev));\r\n this.tracker.client.on('TopicFollowed', ev => this.handleTopicFollowed(ev));\r\n this.tracker.client.on('TopicUnfollowed', ev => this.handleTopicUnfollowed(ev));\r\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\r\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\r\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\r\n }\r\n\r\n /**\r\n * Get history manager for given room ID.\r\n */\r\n public async getRoomHistory(roomId: string): Promise<RoomMessagesHistory | undefined> {\r\n await this.deferredSession.promise;\r\n return this.roomHistories.get(roomId);\r\n }\r\n\r\n /**\r\n * Cache followed topics for all joined rooms in a space and fetch them in bulk if necessary.\r\n * Then you can get them using getRoomFollowedTopics().\r\n * @see getRoomFollowedTopics\r\n */\r\n public async cacheSpaceFollowedTopics(spaceId: string | null): Promise<void> {\r\n if (spaceId && ! (await this.tracker.spaces.get()).has(spaceId)) {\r\n throw new Error(`You are not in space ${spaceId}`);\r\n }\r\n\r\n const roomIds = (await this.tracker.rooms.get()).findBy('spaceId', spaceId).items.map(room => room.id);\r\n\r\n if (! roomIds.length) {\r\n // We don't need to ping server for followed topics for this space, if user has no joined rooms\r\n return;\r\n }\r\n\r\n const resultPromise = this.tracker.client.send('GetFollowedTopics', {location: {spaceId}});\r\n\r\n roomIds.forEach(roomId => this.followedTopicsPromises.register(resultPromise, roomId));\r\n\r\n const result = await resultPromise;\r\n\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n\r\n this.setFollowedTopicsArray(roomIds, result.data.followedTopics);\r\n }\r\n\r\n /**\r\n * Get followed topics for the given room.\r\n * @return Undefined if you are not in the room, collection otherwise.\r\n */\r\n public async getRoomFollowedTopics(roomId: string): Promise<ObservableIndexedObjectCollection<FollowedTopic> | undefined> {\r\n if (! (await this.tracker.rooms.get()).has(roomId)) {\r\n return undefined;\r\n }\r\n\r\n if (! this.followedTopics.has(roomId)) {\r\n if (this.followedTopicsPromises.notExist(roomId)) {\r\n this.followedTopicsPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {roomId}});\r\n\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n\r\n this.setFollowedTopicsArray([roomId], result.data.followedTopics);\r\n }, roomId);\r\n }\r\n\r\n await this.followedTopicsPromises.get(roomId);\r\n }\r\n\r\n return this.followedTopics.get(roomId);\r\n }\r\n\r\n /**\r\n * Batch acknowledge all missed messages from any topics in given room.\r\n */\r\n public async ackRoomFollowedTopics(roomId: string): Promise<void> {\r\n const collection = await this.getRoomFollowedTopics(roomId);\r\n\r\n if (! collection) {\r\n return;\r\n }\r\n\r\n for (const followedTopic of collection.items) {\r\n if (followedTopic.missed) {\r\n await this.tracker.client.send('Ack', {location: followedTopic.location});\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Calculate missed messages from any topic in given room.\r\n * @return Undefined if you are not in room.\r\n */\r\n public async calculateRoomMissedMessages(roomId: string): Promise<number | undefined> {\r\n const collection = await this.getRoomFollowedTopics(roomId);\r\n\r\n if (collection) {\r\n return collection.items.reduce(\r\n (previousValue, currentValue) => previousValue + (currentValue.missed ?? 0),\r\n 0,\r\n );\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * For internal use. If you want to delete the message, execute a proper command on client object.\r\n * @internal\r\n */\r\n public _deleteByTopicIds(roomId: string, ...topicIds: string[]): void {\r\n this.followedTopics.get(roomId)?.delete(...topicIds);\r\n }\r\n\r\n private createHistoryForNewRoom(room: Room): void {\r\n this.roomHistories.set([room.id, new RoomMessagesHistory(room, this.tracker)]);\r\n }\r\n\r\n private handleNewMessage(ev: NewMessage): void {\r\n this.updateLocallyFollowedTopicOnNewMessage(ev);\r\n }\r\n\r\n private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {\r\n this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);\r\n }\r\n\r\n private handleTopicFollowed(ev: TopicFollowed): void {\r\n this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);\r\n }\r\n\r\n private handleTopicUnfollowed(ev: TopicUnfollowed): void {\r\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\r\n }\r\n\r\n private handleRoomDeleted(ev: RoomDeleted): void {\r\n this.roomHistories.delete(ev.id);\r\n this.clearRoomFollowedTopicsStructures(ev.id);\r\n }\r\n\r\n private handleRoomJoin(ev: RoomJoined): void {\r\n this.createHistoryForNewRoom(ev.room)\r\n this.clearRoomFollowedTopicsStructures(ev.room.id);\r\n }\r\n\r\n private handleRoomLeft(ev: RoomLeft): void {\r\n this.roomHistories.delete(ev.id);\r\n this.clearRoomFollowedTopicsStructures(ev.id);\r\n }\r\n\r\n private async handleNewTopic(ev: NewTopic): Promise<void> {\r\n if (this.followedTopics.has(ev.roomId)) {\r\n // Check if the new topic is followed by user\r\n // only if client asked for followed topics list before for this room\r\n const result = await this.tracker.client.send(\r\n 'GetFollowedTopics',\r\n {location: {roomId: ev.roomId, topicId: ev.topic.id}},\r\n );\r\n const followedTopic = result.data.followedTopics[0];\r\n if (followedTopic) {\r\n this.followedTopics.get(ev.roomId).set(followedTopic);\r\n }\r\n }\r\n }\r\n\r\n private handleTopicDeleted(ev: TopicDeleted): void {\r\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this.followedTopics.deleteAll();\r\n this.followedTopicsPromises.forgetAll();\r\n this.roomHistories.deleteAll();\r\n ev.state.rooms.forEach(room => this.createHistoryForNewRoom(room));\r\n this.deferredSession.resolve();\r\n }\r\n\r\n private updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): void {\r\n const roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);\r\n const followedTopic = roomFollowedTopics?.get(ev.message.location.topicId);\r\n\r\n if (!roomFollowedTopics || !followedTopic || ev.message.type === 'Ephemeral') {\r\n // Skip if we don't follow this room or targeted topic or the message is ephemeral\r\n return;\r\n }\r\n\r\n const isMe = ev.message.author.user.id === this.tracker.me?.id;\r\n\r\n let update: Partial<FollowedTopic>;\r\n\r\n if (isMe) {\r\n // Reset missed messages count if new message is authored by me\r\n update = {missed: 0, lastAckMessageId: ev.message.id};\r\n } else {\r\n // ...add 1 otherwise\r\n update = {missed: followedTopic.missed === null ? null : followedTopic.missed + 1};\r\n }\r\n\r\n roomFollowedTopics.set({...followedTopic, ...update});\r\n }\r\n\r\n private setFollowedTopicsArray(roomIds: string[], followedTopics: FollowedTopic[]): void {\r\n const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};\r\n\r\n // Reassign followed topics to limit collection change event emit\r\n followedTopics.forEach(followedTopic => {\r\n roomToTopics[followedTopic.location.roomId] ??= [];\r\n roomToTopics[followedTopic.location.roomId].push(followedTopic);\r\n });\r\n\r\n roomIds.forEach(roomId => {\r\n if (! this.followedTopics.has(roomId)) {\r\n this.followedTopics.set([roomId, new ObservableIndexedObjectCollection<FollowedTopic>(\r\n followedTopic => followedTopic.location.topicId\r\n )]);\r\n }\r\n\r\n if (roomToTopics[roomId]) {\r\n this.followedTopics.get(roomId).set(...roomToTopics[roomId]);\r\n }\r\n });\r\n }\r\n\r\n private clearRoomFollowedTopicsStructures(roomId: string): void {\r\n this.followedTopics.delete(roomId);\r\n this.followedTopicsPromises.forget(roomId);\r\n }\r\n}","import {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\r\nimport {\r\n NewMessage,\r\n NewTopic,\r\n Room, RoomDeleted,\r\n RoomJoined, RoomLeft,\r\n RoomMember, RoomMemberJoined, RoomMemberLeft, RoomMembers,\r\n RoomMemberUpdated, RoomUpdated, Session, SpaceDeleted, SpaceLeft, SpaceMemberLeft,\r\n SpaceMemberUpdated,\r\n Topic,\r\n TopicDeleted, TopicUpdated,\r\n UserUpdated,\r\n} from \"../types/src\";\r\nimport {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\r\nimport {MessagesManager} from \"./MessagesManager\";\r\n\r\nexport class RoomsManager {\r\n public readonly messages: MessagesManager;\r\n\r\n private readonly list = new ObservableIndexedObjectCollection<Room>('id');\r\n private readonly topics = new IndexedCollection<string, ObservableIndexedObjectCollection<Topic>>();\r\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomMember>>();\r\n private readonly deferredSession = new DeferredTask();\r\n private readonly membersPromises = new PromiseRegistry();\r\n private readonly topicsPromises = new PromiseRegistry();\r\n\r\n public constructor(private tracker: ChatStateTracker) {\r\n this.messages = new MessagesManager(tracker);\r\n\r\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\r\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\r\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\r\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoined(ev));\r\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\r\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\r\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('TopicUpdated', ev => this.handleTopicUpdated(ev));\r\n this.tracker.client.on('RoomMemberJoined', ev => this.handleRoomMemberJoined(ev));\r\n this.tracker.client.on('RoomMemberLeft', ev => this.handleRoomMemberLeft(ev));\r\n this.tracker.client.on('RoomMembers', ev => this.handleRoomMembers(ev));\r\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\r\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\r\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\r\n this.tracker.client.on('Session', ev => this.handleSession(ev));\r\n }\r\n\r\n /**\r\n * Get collection of room members.\r\n */\r\n public async getMembers(roomId: string): Promise<ObservableIndexedObjectCollection<RoomMember> | undefined> {\r\n if (this.membersPromises.notExist(roomId)) {\r\n this.membersPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetRoomMembers', {id: roomId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleRoomMembers(result.data);\r\n }, roomId);\r\n }\r\n\r\n await this.membersPromises.get(roomId);\r\n return this.members.get(roomId);\r\n }\r\n\r\n /**\r\n * Get a room member representing the current user.\r\n */\r\n public async getMe(roomId: string): Promise<RoomMember | undefined> {\r\n const userId = (await this.tracker.getMe()).id;\r\n\r\n if (! this.list.has(roomId)) {\r\n // User is not in passed room.\r\n return undefined;\r\n }\r\n\r\n const members = await this.getMembers(roomId);\r\n return members?.items.find(member => (member.user?.id ?? member.spaceMember.user.id) === userId);\r\n }\r\n\r\n /**\r\n * Get collection of all the rooms you are in.\r\n */\r\n public async get(): Promise<ObservableIndexedObjectCollection<Room>> {\r\n await this.deferredSession.promise;\r\n return this.list;\r\n }\r\n\r\n /**\r\n * Get a collection of locally cached Topic objects for given room.\r\n * You can pass topic ids as second argument, to try to fetch them from the server.\r\n */\r\n public async getTopics(roomId: string, tryToFetchTopicIds?: string[]): Promise<ObservableIndexedObjectCollection<Topic> | undefined> {\r\n await this.deferredSession.promise;\r\n\r\n if (tryToFetchTopicIds?.length) {\r\n // Topic can be fetched if it isn't already cached and fetch is not already in progress\r\n const canFetch = (topicId: string) => ! this.topics.get(roomId)?.has(topicId) && ! this.topicsPromises.has(roomId + topicId);\r\n const idsToFetch = tryToFetchTopicIds.filter(canFetch);\r\n\r\n if (idsToFetch.length) {\r\n const promise = this.tracker\r\n .client\r\n .send('GetTopics', {roomId, topicIds: idsToFetch})\r\n .then(result => this.topics.get(result.data.location.roomId)?.set(...result.data.topics));\r\n\r\n idsToFetch.forEach(topicId => this.topicsPromises.register(promise, roomId + topicId));\r\n }\r\n\r\n for (const topicId of tryToFetchTopicIds) {\r\n await this.topicsPromises.get(roomId + topicId);\r\n }\r\n }\r\n\r\n return this.topics.get(roomId);\r\n }\r\n\r\n private deleteRoom(...roomIds: string[]): void {\r\n this.list.delete(...roomIds);\r\n this.members.delete(...roomIds);\r\n this.membersPromises.forget(...roomIds);\r\n\r\n for (const roomId of roomIds) {\r\n const topicIds: string[] = this.topics.get(roomId)?.items.map(topic => topic.id) ?? [];\r\n this.messages._deleteByTopicIds(roomId, ...topicIds);\r\n }\r\n\r\n this.topics.delete(...roomIds);\r\n }\r\n\r\n private deleteRoomsBySpaceId(spaceId: string): void {\r\n this.deleteRoom(\r\n ...this.list.findBy('spaceId', spaceId).items.map(room => room.id)\r\n );\r\n }\r\n\r\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\r\n // Update members of rooms related to this space\r\n for (const room of this.list.findBy('spaceId', ev.spaceId).items) {\r\n const roomMembers = this.members.get(room.id);\r\n\r\n if (! roomMembers || ! roomMembers.has(ev.userId)) {\r\n // Skip update if member list for this room is not loaded\r\n // or user is not in room\r\n continue;\r\n }\r\n\r\n const roomMember = roomMembers.get(ev.userId);\r\n const user = roomMember.spaceMember.user;\r\n\r\n // Update space member but first fill user object (it's null in event object)\r\n roomMember.spaceMember = {...ev.member, user};\r\n roomMembers.set(roomMember);\r\n }\r\n }\r\n\r\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\r\n this.list\r\n .findBy('spaceId', ev.spaceId).items\r\n .forEach(room => this.members.get(room.id)?.delete(ev.userId));\r\n }\r\n\r\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\r\n if (! this.members.has(ev.roomId)) {\r\n // We do not track member list for this room.\r\n return;\r\n }\r\n\r\n const members = this.members.get(ev.roomId);\r\n const member = members.get(ev.userId);\r\n const newMember = ev.member;\r\n const user = member.spaceMember?.user ?? member.user;\r\n\r\n // Preserving user object, because it's not included in event\r\n if (newMember.spaceMember) {\r\n newMember.spaceMember.user = user;\r\n } else {\r\n newMember.user = user;\r\n }\r\n\r\n members.set(newMember);\r\n }\r\n\r\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\r\n this.deleteRoomsBySpaceId(ev.id);\r\n }\r\n\r\n private handleTopicDeleted(ev: TopicDeleted): void {\r\n const collection = this.topics.get(ev.location.roomId);\r\n collection.delete(ev.location.topicId);\r\n\r\n const room = this.list.get(ev.location.roomId);\r\n if (room.defaultTopic?.id === ev.location.topicId) {\r\n this.list.set({...room, defaultTopic: null});\r\n }\r\n }\r\n\r\n private handleNewTopic(ev: NewTopic): void {\r\n this.addJoinedRoomTopics(ev.roomId, ev.topic);\r\n }\r\n\r\n private addJoinedRoomTopics(roomId: string, ...topics: Topic[]): void {\r\n if (this.topics.has(roomId)) {\r\n this.topics.get(roomId).set(...topics);\r\n } else {\r\n this.topics.set([roomId, new ObservableIndexedObjectCollection<Topic>('id', topics)]);\r\n }\r\n }\r\n\r\n private handleRoomJoined(ev: RoomJoined): void {\r\n this.addJoinedRooms(ev.room);\r\n }\r\n\r\n private handleRoomUpdated(ev: RoomUpdated): void {\r\n if (this.list.has(ev.room.id)) {\r\n this.list.set(ev.room);\r\n }\r\n }\r\n\r\n private handleRoomDeleted(ev: RoomDeleted): void {\r\n this.deleteRoom(ev.id);\r\n }\r\n\r\n private handleTopicUpdated(ev: TopicUpdated): void {\r\n const room = this.list.get(ev.location.roomId);\r\n\r\n if (this.topics.get(ev.location.roomId)?.has(ev.topic.id)) {\r\n this.topics.get(ev.location.roomId).set(ev.topic);\r\n }\r\n\r\n if (room.defaultTopic.id === ev.topic.id) {\r\n room.defaultTopic = ev.topic;\r\n this.list.set(room);\r\n }\r\n }\r\n\r\n private addJoinedRooms(...rooms: Room[]): void {\r\n for (const room of rooms) {\r\n if (room.defaultTopic) {\r\n this.addJoinedRoomTopics(room.id, room.defaultTopic);\r\n }\r\n\r\n if (room.type === 'Pm' && room.recipients) {\r\n // Treat PM recipients as normal room members.\r\n // We are registering fake promise in `memberPromises`\r\n // because GetMembers are not supported for PM rooms.\r\n this.handleRoomMembers({\r\n id: room.id,\r\n members: room.recipients.map(user => ({\r\n user,\r\n spaceMember: null,\r\n roles: null,\r\n customColor: null,\r\n customNick: null,\r\n extras: '',\r\n })),\r\n });\r\n this.membersPromises.register(Promise.resolve(), room.id);\r\n }\r\n }\r\n this.list.set(...rooms);\r\n }\r\n\r\n private handleRoomLeft(ev: RoomLeft): void {\r\n this.deleteRoom(ev.id);\r\n }\r\n\r\n private handleRoomMemberJoined(ev: RoomMemberJoined): void {\r\n if (this.members.has(ev.roomId)) {\r\n this.members.get(ev.roomId).set(ev.member);\r\n }\r\n }\r\n\r\n private handleRoomMemberLeft(ev: RoomMemberLeft): void {\r\n if (this.members.has(ev.roomId)) {\r\n this.members.get(ev.roomId).delete(ev.userId);\r\n }\r\n }\r\n\r\n private handleRoomMembers(ev: RoomMembers): void {\r\n if (! this.members.has(ev.id)) {\r\n this.members.set([\r\n ev.id,\r\n new ObservableIndexedObjectCollection(\r\n member => member.user?.id ?? member.spaceMember.user.id,\r\n ev.members,\r\n )\r\n ]);\r\n }\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this.list.deleteAll();\r\n this.topics.deleteAll();\r\n this.topicsPromises.forgetAll();\r\n this.members.deleteAll();\r\n this.membersPromises.forgetAll();\r\n\r\n this.addJoinedRooms(...ev.state.rooms);\r\n\r\n this.deferredSession.resolve();\r\n }\r\n\r\n private handleUserUpdated(ev: UserUpdated): void {\r\n // Update room members users\r\n this.members.items.forEach((members) => {\r\n const member = members.get(ev.user.id);\r\n\r\n if (! member) {\r\n // Skip room; updated user is not here\r\n return;\r\n }\r\n\r\n const newMember: RoomMember = {...member};\r\n\r\n if (member.user) {\r\n newMember.user = ev.user;\r\n } else {\r\n newMember.spaceMember.user = ev.user;\r\n }\r\n\r\n members.set(newMember);\r\n });\r\n\r\n // Update recipients users\r\n const newRooms: Room[] = [];\r\n this.list.items.forEach(room => {\r\n if (room.recipients?.some(user => user.id === ev.user.id)) {\r\n room.recipients = room.recipients.map(user => user.id === ev.user.id ? ev.user : user);\r\n newRooms.push({...room});\r\n }\r\n });\r\n this.list.set(...newRooms);\r\n }\r\n\r\n private handleNewMessage(ev: NewMessage): void {\r\n const topics = this.topics.get(ev.message.location.roomId);\r\n const topic = topics?.get(ev.message.location.topicId);\r\n\r\n if (!topic) {\r\n return; // No topic found, nothing to update\r\n }\r\n\r\n const newTopic = {\r\n ...topic,\r\n messageCount: topic.messageCount + 1,\r\n lastMessage: ev.message,\r\n };\r\n\r\n topics.set(newTopic);\r\n const room = this.list.get(ev.message.location.roomId);\r\n\r\n if (room.defaultTopic?.id === ev.message.location.topicId) {\r\n this.list.set({ ...room, defaultTopic: newTopic });\r\n }\r\n }\r\n}","import {Role, RoomMember, SpaceMember, User} from \"../types/src\";\r\n\r\nexport function reorderRolesOnPriorityUpdate(allRoles: Role[], oldRole: Role, updatedRole: Role): Role[] {\r\n // If the priority has changed, adjust the rest of roles\r\n const increased = (updatedRole.priority - oldRole.priority) > 0;\r\n const decreased = ! increased;\r\n const changedRoles: Role[] = [];\r\n\r\n allRoles.forEach(role => {\r\n if (role.id === updatedRole.id) {\r\n // Skip the updated role\r\n return;\r\n }\r\n if (increased && oldRole.priority <= role.priority) {\r\n role.priority--;\r\n changedRoles.push(role);\r\n }\r\n if (decreased && updatedRole.priority <= role.priority) {\r\n role.priority++;\r\n changedRoles.push(role);\r\n }\r\n });\r\n\r\n return changedRoles;\r\n}\r\n\r\nexport function extractUserFromMember(member: RoomMember | SpaceMember): User | null {\r\n return member.user ?? (member as RoomMember).spaceMember?.user;\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\r\nimport {\r\n NewRole,\r\n NewRoom,\r\n Role,\r\n RoleDeleted,\r\n RoleUpdated,\r\n RoomDeleted,\r\n RoomSummary,\r\n RoomSummaryUpdated,\r\n RoomUpdated,\r\n Session,\r\n Space,\r\n SpaceDeleted,\r\n SpaceJoined,\r\n SpaceLeft,\r\n SpaceMember,\r\n SpaceMemberJoined,\r\n SpaceMemberLeft,\r\n SpaceMembers,\r\n SpaceMemberUpdated,\r\n SpaceRooms,\r\n SpaceUpdated,\r\n UserUpdated\r\n} from \"../types/src\";\r\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\r\nimport {reorderRolesOnPriorityUpdate} from \"./functions\";\r\n\r\nexport class SpacesManager {\r\n private readonly list = new ObservableIndexedObjectCollection<Space>('id');\r\n private readonly roles = new IndexedCollection<string, ObservableIndexedObjectCollection<Role>>();\r\n private readonly rooms = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomSummary>>();\r\n private readonly roomIdToSpaceId = new IndexedCollection<string, string>();\r\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<SpaceMember>>();\r\n private readonly deferredSession = new DeferredTask();\r\n private readonly roomsPromises = new PromiseRegistry();\r\n private readonly membersPromises = new PromiseRegistry();\r\n\r\n public constructor(private tracker: ChatStateTracker) {\r\n this.tracker.client.on('NewRoom', ev => this.handleNewRoom(ev));\r\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceUpdated', ev => this.handleSpaceUpdated(ev));\r\n this.tracker.client.on('SpaceJoined', ev => this.handleSpaceJoined(ev));\r\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceMemberJoined', ev => this.handleSpaceMemberJoined(ev));\r\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\r\n this.tracker.client.on('SpaceMembers', ev => this.handleSpaceMembers(ev));\r\n this.tracker.client.on('SpaceRooms', ev => this.handleSpaceRooms(ev));\r\n this.tracker.client.on('RoomSummaryUpdated', ev => this.handleRoomSummaryUpdated(ev));\r\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\r\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\r\n this.tracker.client.on('NewRole', ev => this.handleNewRole(ev));\r\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\r\n this.tracker.client.on('RoleUpdated', ev => this.handleRoleUpdated(ev));\r\n this.tracker.client.on('Session', ev => this.handleSession(ev));\r\n }\r\n\r\n /**\r\n * Get collection of all the spaces you are in.\r\n */\r\n public async get(): Promise<ObservableIndexedObjectCollection<Space>> {\r\n await this.deferredSession.promise;\r\n return this.list;\r\n }\r\n\r\n /**\r\n * Get collection of space roles.\r\n */\r\n public async getRoles(spaceId: string): Promise<ObservableIndexedObjectCollection<Role> | undefined> {\r\n await this.deferredSession.promise;\r\n return this.roles.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get collection of the all available rooms inside given space.\r\n */\r\n public async getRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined> {\r\n if (this.roomsPromises.notExist(spaceId)) {\r\n this.roomsPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetSpaceRooms', {id: spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleSpaceRooms(result.data);\r\n }, spaceId);\r\n }\r\n\r\n await this.roomsPromises.get(spaceId);\r\n return this.rooms.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get collection of space members.\r\n */\r\n public async getMembers(spaceId: string): Promise<ObservableIndexedObjectCollection<SpaceMember> | undefined> {\r\n if (this.membersPromises.notExist(spaceId)) {\r\n this.membersPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetSpaceMembers', {id: spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleSpaceMembers(result.data);\r\n }, spaceId);\r\n }\r\n\r\n await this.membersPromises.get(spaceId);\r\n return this.members.get(spaceId);\r\n }\r\n\r\n /**\r\n * Get a space member representing the current user.\r\n */\r\n public async getMe(spaceId: string): Promise<SpaceMember | undefined> {\r\n const userId = (await this.tracker.getMe()).id;\r\n\r\n if (! this.list.has(spaceId)) {\r\n // User is not in passed space.\r\n return undefined;\r\n }\r\n\r\n const members = await this.getMembers(spaceId);\r\n return members?.items.find(member => member.user.id === userId);\r\n }\r\n\r\n private handleNewRole(ev: NewRole): void {\r\n const collection = this.roles.get(ev.spaceId);\r\n collection.set(ev.role);\r\n this.list.get(ev.spaceId).roles = collection.items;\r\n }\r\n\r\n private handleNewRoom(ev: NewRoom): void {\r\n this.rooms.get(ev.spaceId)?.set(ev.summary);\r\n this.roomIdToSpaceId.set([ev.summary.id, ev.spaceId]);\r\n }\r\n\r\n private handleRoomUpdated(ev: RoomUpdated): void {\r\n if (ev.room.spaceId && this.rooms.has(ev.room.spaceId)) {\r\n const rooms = this.rooms.get(ev.room.spaceId);\r\n rooms.set({\r\n ...rooms.get(ev.room.id),\r\n name: ev.room.name,\r\n description: ev.room.description,\r\n } as RoomSummary);\r\n }\r\n }\r\n\r\n private async handleRoomDeleted(ev: RoomDeleted): Promise<void> {\r\n const spaceId = this.roomIdToSpaceId.get(ev.id);\r\n this.roomIdToSpaceId.delete(ev.id);\r\n\r\n if (! spaceId) {\r\n return;\r\n }\r\n\r\n const space = this.list.get(spaceId);\r\n let spaceChanged = false;\r\n\r\n this.rooms.get(spaceId)?.delete(ev.id);\r\n\r\n if (space.systemRoom === ev.id) {\r\n space.systemRoom = null;\r\n spaceChanged = true;\r\n }\r\n\r\n if (space.defaultRooms.includes(ev.id)) {\r\n space.defaultRooms = space.defaultRooms.filter(roomId => roomId !== ev.id);\r\n spaceChanged = true;\r\n }\r\n\r\n if (spaceChanged) {\r\n this.list.set(space);\r\n }\r\n }\r\n\r\n private handleRoleDeleted(ev: RoleDeleted): void {\r\n const collection = this.roles.get(ev.spaceId);\r\n collection.delete(ev.id);\r\n this.list.get(ev.spaceId).roles = collection.items;\r\n }\r\n\r\n private handleSpaceUpdated(ev: SpaceUpdated): void {\r\n this.list.set(ev.space);\r\n }\r\n\r\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\r\n const roomIds = this.rooms.get(ev.id)?.items.map(item => item.id) ?? [];\r\n this.roomIdToSpaceId.delete(...roomIds);\r\n\r\n this.roles.delete(ev.id);\r\n this.members.delete(ev.id);\r\n this.membersPromises.forget(ev.id);\r\n this.rooms.delete(ev.id);\r\n this.roomsPromises.forget(ev.id);\r\n this.list.delete(ev.id);\r\n }\r\n\r\n private handleSpaceJoined(ev: SpaceJoined): void {\r\n this.addJoinedSpaces(ev.space);\r\n }\r\n\r\n private addJoinedSpaces(...spaces: Space[]): void {\r\n this.roles.set(...(spaces.map(space => [\r\n space.id,\r\n new ObservableIndexedObjectCollection<Role>('id', space.roles)\r\n ]) as [string, ObservableIndexedObjectCollection<Role>][]));\r\n this.list.set(...spaces);\r\n }\r\n\r\n private handleSpaceMemberJoined(ev: SpaceMemberJoined): void {\r\n if (this.members.has(ev.spaceId)) {\r\n this.members.get(ev.spaceId).set(ev.member);\r\n }\r\n }\r\n\r\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\r\n if (this.members.has(ev.spaceId)) {\r\n this.members.get(ev.spaceId).delete(ev.userId);\r\n }\r\n }\r\n\r\n private handleSpaceMembers(ev: SpaceMembers): void {\r\n if (! this.members.has(ev.id)) {\r\n this.members.set([\r\n ev.id,\r\n new ObservableIndexedObjectCollection(member => member?.user.id, ev.members)\r\n ]);\r\n }\r\n }\r\n\r\n private handleSpaceRooms(ev: SpaceRooms): void {\r\n if (!this.rooms.has(ev.id)) {\r\n this.rooms.set([ev.id, new ObservableIndexedObjectCollection('id', ev.summaries)]);\r\n ev.summaries.forEach(summary => this.roomIdToSpaceId.set([summary.id, ev.id]));\r\n }\r\n }\r\n\r\n private async handleRoomSummaryUpdated(ev: RoomSummaryUpdated): Promise<void> {\r\n const spaceId = this.roomIdToSpaceId.get(ev.summary.id);\r\n const summariesPromise = this.roomsPromises.get(spaceId);\r\n\r\n /**\r\n * Update summary only if the list was already loaded.\r\n * RoomSummaryUpdated event has a partial summary, so we need to update the existing summary by merging it.\r\n */\r\n if (spaceId && summariesPromise) {\r\n await summariesPromise;\r\n\r\n const summaries = this.rooms.get(spaceId);\r\n const oldSummary = summaries.get(ev.summary.id);\r\n let newSummary: RoomSummary;\r\n\r\n if (oldSummary) {\r\n newSummary = {...oldSummary, ...ev.summary};\r\n } else {\r\n newSummary = ev.summary;\r\n }\r\n\r\n summaries.set(newSummary);\r\n }\r\n }\r\n\r\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\r\n if (this.members.has(ev.spaceId)) {\r\n const members = this.members.get(ev.spaceId);\r\n const member = members.get(ev.userId);\r\n members.set({...ev.member, user: member.user});\r\n }\r\n }\r\n\r\n private handleRoleUpdated(ev: RoleUpdated): void {\r\n const roles = this.roles.get(ev.spaceId);\r\n const oldRole = roles.get(ev.role.id);\r\n const newRole = ev.role;\r\n const rolesToUpdate = [newRole];\r\n\r\n if (oldRole.priority !== newRole.priority) {\r\n rolesToUpdate.push(\r\n ...reorderRolesOnPriorityUpdate(roles.items, oldRole, newRole)\r\n );\r\n }\r\n\r\n this.roles.get(ev.spaceId).set(...rolesToUpdate);\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this.list.deleteAll();\r\n this.roles.deleteAll();\r\n this.rooms.deleteAll();\r\n this.roomsPromises.forgetAll();\r\n this.members.deleteAll();\r\n this.membersPromises.forgetAll();\r\n this.roomIdToSpaceId.deleteAll();\r\n\r\n this.addJoinedSpaces(...ev.state.spaces);\r\n\r\n this.deferredSession.resolve();\r\n }\r\n\r\n private handleUserUpdated(ev: UserUpdated): void {\r\n this.members.items.forEach((members) => {\r\n const member = members.get(ev.user.id);\r\n\r\n if (! member) {\r\n // Skip space; updated user is not here\r\n return;\r\n }\r\n\r\n members.set({...member, user: ev.user});\r\n });\r\n }\r\n}","export enum Layer {\r\n Global,\r\n Space,\r\n Room,\r\n Topic,\r\n}\r\n\r\nexport class PermissionDefinition {\r\n value: number;\r\n maxLayer: Layer;\r\n}\r\n\r\nexport class Permissions {\r\n public static readonly list = {\r\n Root: {value: 1 << 0, maxLayer: Layer.Room},\r\n CreateSpaces: {value: 1 << 1, maxLayer: Layer.Global},\r\n ManageSpace: {value: 1 << 2, maxLayer: Layer.Space},\r\n ManageSpaceRoles: {value: 1 << 3, maxLayer: Layer.Space},\r\n ManageRoom: {value: 1 << 4, maxLayer: Layer.Room},\r\n CreateTopics: {value: 1 << 5, maxLayer: Layer.Room},\r\n ManageTopic: {value: 1 << 6, maxLayer: Layer.Topic},\r\n ManageSpaceMembers: {value: 1 << 7, maxLayer: Layer.Space},\r\n ManageRoomMembers: {value: 1 << 8, maxLayer: Layer.Room},\r\n CreateMessages: {value: 1 << 9, maxLayer: Layer.Topic},\r\n ManagePermissions: {value: 1 << 10, maxLayer: Layer.Topic},\r\n CreateSpaceRooms: {value: 1 << 11, maxLayer: Layer.Space},\r\n ManageSpaceRooms: {value: 1 << 12, maxLayer: Layer.Space},\r\n CreateEmoticons: {value: 1 << 13, maxLayer: Layer.Space},\r\n ManageEmoticon: {value: 1 << 14, maxLayer: Layer.Space},\r\n ManageBan: {value: 1 << 15, maxLayer: Layer.Room},\r\n Kick: {value: 1 << 16, maxLayer: Layer.Room},\r\n ChangeOwnNick: {value: 1 << 17, maxLayer: Layer.Space},\r\n ChangeOwnColor: {value: 1 << 18, maxLayer: Layer.Room},\r\n };\r\n\r\n public static getNames(): (keyof typeof this.list)[] {\r\n return Object.keys(this.list) as any;\r\n }\r\n\r\n public static getByName(name: keyof typeof this.list): PermissionDefinition | undefined {\r\n return this.list[name];\r\n }\r\n\r\n public static canBeDefinedOnLayer(permissionName: keyof typeof this.list, layer: Layer): boolean {\r\n const def = this.getByName(permissionName);\r\n\r\n if (! def) {\r\n throw new Error(`Invalid permission name: ${permissionName}`);\r\n }\r\n\r\n return layer <= this.getByName(permissionName).maxLayer;\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {\r\n ChatLocation,\r\n PermissionOverwrites, PermissionOverwritesTarget,\r\n PermissionOverwritesUpdated,\r\n PermissionOverwritesValue,\r\n RoleDeleted,\r\n RoomDeleted,\r\n RoomLeft, RoomMember, RoomMemberUpdated, Session,\r\n SpaceDeleted,\r\n SpaceLeft, SpaceMember,\r\n SpaceMemberUpdated,\r\n TopicDeleted,\r\n} from \"../types/src\";\r\nimport {EventHandler, EventTarget} from \"../EventTarget\";\r\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\r\nimport {Permissions} from \"../Permissions\";\r\nimport {PromiseRegistry} from \"./AsyncUtils\";\r\n\r\nconst getOvId = (\r\n location: ChatLocation,\r\n target?: PermissionOverwritesTarget,\r\n) => [location.roomId, location.topicId, target?.type, target?.userId, target?.roleId].filter(Boolean).join('/');\r\n\r\nconst getOvIdByObject\r\n = (overwrites: PermissionOverwrites | PermissionOverwritesUpdated): string => getOvId(overwrites.location, overwrites.target);\r\n\r\ninterface CheckPermissionsResult {\r\n /**\r\n * @deprecated Use `hasAll` instead.\r\n */\r\n ok: boolean;\r\n hasAll: boolean;\r\n hasAny: boolean;\r\n missing: string[];\r\n}\r\n\r\nexport class PermissionsManager extends EventTarget {\r\n private readonly overwrites = new IndexedCollection<string, PermissionOverwrites>();\r\n private readonly overwritesPromises = new PromiseRegistry();\r\n\r\n public constructor(private tracker: ChatStateTracker) {\r\n super();\r\n this.tracker.client.on('PermissionOverwrites', ev => this.handlePermissionOverwrites(ev));\r\n this.tracker.client.on('PermissionOverwritesUpdated', ev => this.handlePermissionOverwrites(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('RoomLeft', ev => this.handleRoomDeleted(ev));\r\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\r\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\r\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\r\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\r\n this.tracker.client.on('Session', ev => this.handleSession(ev));\r\n }\r\n\r\n public async getOverwrites(\r\n location: ChatLocation,\r\n target: PermissionOverwritesTarget,\r\n ): Promise<PermissionOverwrites | undefined> {\r\n this.validateLocation(location);\r\n\r\n const id = getOvId(location, target);\r\n\r\n if (this.overwritesPromises.notExist(id)) {\r\n this.overwritesPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send(\r\n 'GetPermissionOverwrites',\r\n {location, target},\r\n );\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handlePermissionOverwrites(result.data);\r\n }, id);\r\n }\r\n\r\n await this.overwritesPromises.get(id);\r\n return this.overwrites.get(id);\r\n }\r\n\r\n public on(eventName: 'change', handler: EventHandler<any>): this {\r\n return super.on(eventName, handler);\r\n }\r\n\r\n public async check(\r\n permissionNames: (keyof typeof Permissions.list)[],\r\n location: ChatLocation,\r\n ): Promise<CheckPermissionsResult> {\r\n if (! permissionNames.length) {\r\n throw new Error('Permission names array cannot be empty');\r\n }\r\n\r\n const ownedPermissions = await this.calculatePermissions(location);\r\n const missing: string[] = [];\r\n\r\n permissionNames.forEach(name => {\r\n if (~ ownedPermissions & Permissions.getByName(name).value) {\r\n missing.push(name as string);\r\n }\r\n });\r\n\r\n return {\r\n ok: missing.length === 0,\r\n hasAll: missing.length === 0,\r\n hasAny: missing.length < permissionNames.length,\r\n missing,\r\n };\r\n }\r\n\r\n public async calculatePermissions(location: ChatLocation): Promise<number> {\r\n this.validateLocation(location);\r\n\r\n const userId = (await this.tracker.getMe()).id;\r\n const [spaceMember, roomMember] = await this.fetchMembersOrFail(location);\r\n const userRoles: string[] = [...(spaceMember?.roles ?? []), ...(roomMember?.roles ?? [])];\r\n const promises: Promise<PermissionOverwritesValue>[] = [\r\n // Global user overwrites\r\n this.getOverwrites({}, { type: 'User', userId }).then(v => v.overwrites),\r\n ];\r\n\r\n if (location.spaceId && (await this.tracker.spaces.get())?.has(location.spaceId)) {\r\n const filterLocation: ChatLocation = {spaceId: location.spaceId};\r\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\r\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\r\n }\r\n\r\n if (location.roomId && (await this.tracker.rooms.get())?.has(location.roomId)) {\r\n const filterLocation: ChatLocation = {spaceId: location.spaceId, roomId: location.roomId};\r\n if (userRoles.length) {\r\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\r\n }\r\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\r\n }\r\n\r\n if (location.topicId && (await this.tracker.rooms.getTopics(location.roomId))?.has(location.topicId)) {\r\n if (userRoles.length) {\r\n promises.push(this.collectRoleOverwrites(location, userRoles));\r\n }\r\n promises.push(this.getOverwrites(location, { type: 'User', userId }).then(v => v.overwrites));\r\n }\r\n\r\n return this.resolveOverwritesHierarchy(await Promise.all(promises));\r\n }\r\n\r\n private handlePermissionOverwrites(ev: PermissionOverwritesUpdated | PermissionOverwrites): void {\r\n this.overwrites.set([getOvIdByObject(ev), ev]);\r\n this.emit('change');\r\n }\r\n\r\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\r\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.id}));\r\n this.overwritesPromises.forget(...ids);\r\n }\r\n\r\n private async handleRoomDeleted(ev: RoomDeleted | RoomLeft): Promise<void> {\r\n const room = (await this.tracker.rooms.get()).get(ev.id);\r\n if (room) {\r\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: room.spaceId, roomId: room.id}));\r\n this.overwritesPromises.forget(...ids);\r\n }\r\n }\r\n\r\n private handleTopicDeleted(ev: TopicDeleted): void {\r\n const ids = this.deleteOverwritesByIdPrefix(getOvId(ev.location));\r\n this.overwritesPromises.forget(...ids);\r\n }\r\n\r\n private handleRoleDeleted(ev: RoleDeleted): void {\r\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.spaceId}, { type: 'Role', roleId: ev.id }));\r\n this.overwritesPromises.forget(...ids);\r\n }\r\n\r\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\r\n if (ev.userId === this.tracker.me?.id) {\r\n // User roles in space could potentially have changed\r\n this.emit('change');\r\n }\r\n }\r\n\r\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\r\n if (ev.userId === this.tracker.me?.id) {\r\n // User roles in room could potentially have changed\r\n this.emit('change');\r\n }\r\n }\r\n\r\n /**\r\n * @return Matched and deleted ids\r\n */\r\n private deleteOverwritesByIdPrefix(prefix: string): string[] {\r\n const ids: string[] = [];\r\n this.overwrites.items.forEach((overwrites) => {\r\n const id = getOvIdByObject(overwrites);\r\n if (id.startsWith(prefix)) {\r\n ids.push(id);\r\n this.overwrites.delete(id);\r\n }\r\n });\r\n return ids;\r\n }\r\n\r\n private async collectRoleOverwrites(\r\n location: ChatLocation,\r\n userRoles: string[],\r\n ): Promise<PermissionOverwritesValue> {\r\n const roleOverwrites = await Promise.all(userRoles.map(\r\n roleId => this.getOverwrites(location, { type: 'Role', roleId }),\r\n ));\r\n\r\n return this.resolveOverwritesFromRolesByOrder(location.spaceId, roleOverwrites);\r\n }\r\n\r\n private async resolveOverwritesFromRolesByOrder(\r\n spaceId: string,\r\n overwrites: PermissionOverwrites[],\r\n ): Promise<PermissionOverwritesValue> {\r\n let allows = 0, denies = 0;\r\n const roles = await this.tracker.spaces.getRoles(spaceId);\r\n const sortedOverwrites = overwrites.sort(\r\n (a, b) =>\r\n roles.get(a.target.roleId).priority - roles.get(b.target.roleId).priority\r\n );\r\n\r\n // Max length of bit word\r\n const permissionsLength = overwrites.reduce(\r\n (previousValue: number, currentValue: PermissionOverwrites) =>\r\n Math.max(\r\n previousValue,\r\n currentValue.overwrites.allow?.toString(2).length ?? 0,\r\n currentValue.overwrites.deny?.toString(2).length ?? 0,\r\n ),\r\n 0,\r\n );\r\n\r\n sortedOverwrites.forEach(overwriteEvent => {\r\n const overwrites = overwriteEvent.overwrites;\r\n const revDecDenies = overwrites.deny?.toString(2).split('').reverse().join('') ?? '';\r\n const revDecAllows = overwrites.allow?.toString(2).split('').reverse().join('') ?? '';\r\n\r\n for (let i = 0; i < permissionsLength; i++) {\r\n const deny = parseInt(revDecDenies[i] ?? '0');\r\n const allow = parseInt(revDecAllows[i] ?? '0');\r\n\r\n if (deny) {\r\n denies |= 1 << i;\r\n }\r\n\r\n if (allow) {\r\n allows |= 1 << i;\r\n }\r\n }\r\n });\r\n\r\n return {allow: allows, deny: denies};\r\n }\r\n\r\n private resolveOverwritesHierarchy(permissionOverwritesValues: PermissionOverwritesValue[]): number {\r\n let result = 0;\r\n\r\n for (const value of permissionOverwritesValues) {\r\n if (value.allow & Permissions.getByName('Root').value) {\r\n return this.getRootAccessValue();\r\n }\r\n\r\n result = (result & ~value.deny) | value.allow;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getRootAccessValue(): number {\r\n let result = 0;\r\n\r\n for (const name of Permissions.getNames()) {\r\n result |= Permissions.getByName(name).value;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private async fetchMembersOrFail(location: ChatLocation): Promise<[SpaceMember | null, RoomMember | null]> {\r\n const results = await Promise.all([\r\n location.spaceId ? this.tracker.spaces.getMe(location.spaceId) : null,\r\n location.roomId ? this.tracker.rooms.getMe(location.roomId) : null,\r\n ]);\r\n\r\n const spaceFail = location.spaceId && ! results[0];\r\n const roomFail = location.roomId && ! results[1];\r\n\r\n if (spaceFail || roomFail) {\r\n const layer = spaceFail ? `space (${location.spaceId})` : `room (${location.roomId})`;\r\n throw new Error(`Attempting to calculate permissions for a ${layer} that the user does not belong to`);\r\n }\r\n\r\n return results;\r\n }\r\n\r\n private validateLocation(location: ChatLocation): void {\r\n if (location.topicId && ! location.roomId) {\r\n throw new Error('Corrupted arguments hierarchy');\r\n }\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this.overwrites.deleteAll();\r\n this.overwritesPromises.forgetAll();\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\r\nimport {\r\n IndexedCollection,\r\n ObservableIndexedObjectCollection\r\n} from \"../IndexedObjectCollection\";\r\nimport {Emoticon, EmoticonDeleted, Emoticons, NewEmoticon, SpaceDeleted} from \"../types/src\";\r\nimport {PromiseRegistry} from \"./AsyncUtils\";\r\n\r\nconst GLOBAL_KEY = 'global';\r\n\r\nexport class EmoticonsManager {\r\n private list: IndexedCollection<string, ObservableIndexedObjectCollection<Emoticon>> = new IndexedCollection();\r\n private emoticonsPromises = new PromiseRegistry();\r\n \r\n public constructor(private tracker: ChatStateTracker) {\r\n this.tracker.client.on('Emoticons', ev => this.handleEmoticons(ev));\r\n this.tracker.client.on('NewEmoticon', ev => this.handleNewEmoticon(ev));\r\n this.tracker.client.on('EmoticonDeleted', ev => this.handleEmoticonDeleted(ev));\r\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\r\n this.tracker.client.on('Session', () => this.handleSession());\r\n }\r\n\r\n public async get(spaceId?: string): Promise<ObservableIndexedObjectCollection<Emoticon>> {\r\n const key = spaceId ?? GLOBAL_KEY;\r\n\r\n if (this.emoticonsPromises.notExist(key)) {\r\n this.emoticonsPromises.registerByFunction(async () => {\r\n const result = await this.tracker.client.send('GetEmoticons', {spaceId});\r\n if (result.error) {\r\n throw result.error;\r\n }\r\n this.handleEmoticons(result.data);\r\n }, key);\r\n }\r\n\r\n await this.emoticonsPromises.get(key);\r\n return this.list.get(key);\r\n }\r\n\r\n private handleEmoticons(event: Emoticons): void {\r\n const spaceId = event.location.spaceId ?? GLOBAL_KEY;\r\n\r\n if (!this.list.has(spaceId)) {\r\n this.list.set([spaceId, new ObservableIndexedObjectCollection<Emoticon>('id')]);\r\n }\r\n\r\n const collection = this.list.get(spaceId);\r\n collection.set(...event.emoticons);\r\n }\r\n\r\n private handleNewEmoticon(ev: NewEmoticon): void {\r\n const collection = this.list.get(ev.emoticon.spaceId ?? GLOBAL_KEY);\r\n collection?.set(ev.emoticon);\r\n }\r\n\r\n private handleEmoticonDeleted(ev: EmoticonDeleted): void {\r\n const collection = this.list.get(ev.spaceId ?? GLOBAL_KEY);\r\n collection?.delete(ev.emoticonId);\r\n }\r\n\r\n private handleSpaceDeleted(event: SpaceDeleted): void {\r\n this.list.delete(event.id);\r\n }\r\n\r\n private handleSession(): void {\r\n this.list.deleteAll();\r\n this.emoticonsPromises.forgetAll();\r\n }\r\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {RoomMember, Session, SpaceMember, User} from \"../types/src\";\nimport {extractUserFromMember} from \"./functions\";\nimport {EventTarget} from \"../EventTarget\";\n\nexport class UsersManager {\n public readonly onlineStatus = new EventTarget();\n\n private readonly users: ObservableIndexedObjectCollection<User> = new ObservableIndexedObjectCollection('id');\n\n public constructor(private tracker: ChatStateTracker) {\n // RoomMemberUpdated & SpaceMemberUpdated events are not contains user object\n tracker.client.on('UserUpdated', event => this.handleUsers([event.user]));\n tracker.client.on('RoomMemberJoined', event => this.handleMembers([event.member]));\n tracker.client.on('SpaceMemberJoined', event => this.handleMembers([event.member]));\n tracker.client.on('SpaceMembers', event => this.handleMembers(event.members));\n tracker.client.on('RoomMembers', event => this.handleMembers(event.members));\n tracker.client.on('Messages', event => this.handleUsers(event.messages.map(message => message.author.user)));\n tracker.client.on('NewMessage', event => this.handleUsers([event.message.author.user]));\n tracker.client.on('Session', event => this.handleSession(event));\n }\n\n /**\n * Get all available (cached) user objects at once.\n */\n public async getAvailable(): Promise<ObservableIndexedObjectCollection<User>> {\n return this.users;\n }\n\n private handleMembers(members: (RoomMember | SpaceMember)[]): void {\n this.handleUsers(members.map(extractUserFromMember));\n }\n\n private handleSession(session: Session): void {\n this.users.deleteAll();\n this.handleUsers([session.user]);\n }\n\n private handleUsers(users: User[]): void {\n users.forEach(newUser => {\n const oldUser = this.users.get(newUser.id);\n if (oldUser && oldUser.online !== newUser.online) {\n this.onlineStatus.emit('change', newUser);\n }\n });\n\n this.users.set(...users);\n }\n}","import {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n NewRelationship,\n RelationshipDeleted,\n Relationships,\n UserRelationship,\n UserRelationshipType\n} from \"../types/src\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\n\nconst getId = (refUserId: string, type: UserRelationshipType): string => `${refUserId}-${type}`;\nconst getIdFromRelationship = (relationship: UserRelationship): string => getId(relationship.refUser.id, relationship.type);\n\nexport class RelationshipsManager {\n private relationships: ObservableIndexedObjectCollection<UserRelationship> = new ObservableIndexedObjectCollection<UserRelationship>(getIdFromRelationship);\n private promises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Relationships', ev => this.handleRelationships(ev));\n this.tracker.client.on('NewRelationship', ev => this.handleNewRelationship(ev));\n this.tracker.client.on('RelationshipDeleted', ev => this.handleRelationshipDeleted(ev));\n this.tracker.client.on('Session', () => this.handleSession());\n }\n\n public async get(): Promise<ObservableIndexedObjectCollection<UserRelationship>> {\n if (this.promises.notExist('all')) {\n this.promises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRelationships', {});\n if (result.error) {\n throw result.error;\n }\n }, 'all');\n }\n\n await this.promises.get('all');\n return this.relationships;\n }\n\n public async exists(refUserId: string, type: UserRelationshipType): Promise<boolean> {\n await this.get();\n return this.relationships.has(getId(refUserId, type));\n }\n\n private handleRelationships(ev: Relationships): void {\n this.relationships.deleteAll();\n ev.relationships.forEach(relationship => {\n this.relationships.set(relationship);\n });\n }\n\n private handleNewRelationship(ev: NewRelationship): void {\n if (this.promises.has('all')) {\n this.relationships.set(ev.relationship);\n }\n }\n\n private handleRelationshipDeleted(ev: RelationshipDeleted): void {\n if (this.promises.has('all')) {\n this.relationships.delete(getIdFromRelationship(ev.relationship));\n }\n }\n\n private handleSession(): void {\n this.promises.forgetAll();\n this.relationships.deleteAll();\n }\n}","import {WebSocketChatClient} from \"../WebSocketChatClient\";\r\nimport {Session, User} from \"../types/src\";\r\nimport {RoomsManager} from \"./RoomsManager\";\r\nimport {SpacesManager} from \"./SpacesManager\";\r\nimport {PermissionsManager} from \"./PermissionsManager\";\r\nimport {DeferredTask} from \"./AsyncUtils\";\r\nimport {EmoticonsManager} from \"./EmoticonsManager\";\r\nimport {UsersManager} from \"./UsersManager\";\r\nimport {RelationshipsManager} from \"./RelationshipsManager\";\r\n\r\nexport class ChatStateTracker {\r\n public readonly client: WebSocketChatClient;\r\n\r\n /**\r\n * State of your permissions.\r\n */\r\n public readonly permissions: PermissionsManager;\r\n\r\n /**\r\n * State of the rooms you are in.\r\n */\r\n public readonly rooms: RoomsManager;\r\n\r\n /**\r\n * State of the spaces you are in.\r\n */\r\n public readonly spaces: SpacesManager;\r\n\r\n /**\r\n * State of the emoticons (global and space-related).\r\n */\r\n public readonly emoticons: EmoticonsManager;\r\n\r\n /**\r\n * Users related state.\r\n */\r\n public readonly users: UsersManager;\r\n\r\n /**\r\n * State of relationships with other users.\r\n */\r\n public readonly relationships: RelationshipsManager;\r\n\r\n private _me: User = null;\r\n private readonly deferredSession = new DeferredTask();\r\n\r\n public constructor(client: WebSocketChatClient) {\r\n this.client = client;\r\n this.client.on('Session', ev => this.handleSession(ev));\r\n\r\n this.permissions = new PermissionsManager(this);\r\n this.rooms = new RoomsManager(this);\r\n this.spaces = new SpacesManager(this);\r\n this.emoticons = new EmoticonsManager(this);\r\n this.users = new UsersManager(this);\r\n this.relationships = new RelationshipsManager(this);\r\n }\r\n\r\n public get me(): User | null {\r\n return this._me;\r\n }\r\n\r\n public async getMe(): Promise<User> {\r\n await this.deferredSession.promise;\r\n return this._me;\r\n }\r\n\r\n private handleSession(ev: Session): void {\r\n this._me = ev.user;\r\n this.deferredSession.resolve();\r\n }\r\n}","import {ObservableInterface} from \"./EventTarget\";\r\nimport {AbstractChatClient, CommandResult, CommandsMap, EventsMap} from \"./AbstractChatClient\";\r\nimport {ChatStateTracker} from \"./state-tracker/ChatStateTracker\";\r\nimport {Envelope} from \"./types/src\";\r\n\r\nexport interface WebSocketClientOptions {\r\n url: string;\r\n token: string;\r\n connectingTimeoutMs?: number;\r\n awaitQueueSendDelayMs?: number;\r\n stateTracking?: boolean;\r\n queryParams?: Record<string, string>;\r\n /**\r\n * Ping/pong configuration, enabled by default.\r\n */\r\n ping?: {\r\n enabled?: boolean;\r\n /**\r\n * Time without activity after which a ping will be sent. Default is 10 seconds.\r\n */\r\n noActivityTimeoutMs?: number;\r\n /**\r\n * Time to wait for a pong response before considering the connection dead. Default is 2 seconds.\r\n */\r\n pongBackTimeoutMs?: number;\r\n },\r\n}\r\n\r\nenum WebSocketChatClientEvent {\r\n connect = 'connect',\r\n disconnect = 'disconnect',\r\n message = 'message',\r\n error = 'error',\r\n}\r\n\r\nexport class WebSocketChatClient extends AbstractChatClient implements ObservableInterface {\r\n public readonly Event = WebSocketChatClientEvent;\r\n public readonly state?: ChatStateTracker;\r\n\r\n protected ws: WebSocket|null = null;\r\n protected sendQueue: Envelope[] = [];\r\n protected connectingTimeoutId: any;\r\n protected authenticated: boolean;\r\n protected authenticatedResolvers: [() => void, (error: Error) => void];\r\n protected pingMonitorInterval?: NodeJS.Timeout;\r\n protected inFlightPingTimeout: NodeJS.Timeout;\r\n protected lastReceivedMessageAt?: number;\r\n\r\n public constructor(private readonly options: WebSocketClientOptions) {\r\n super();\r\n if (this.options.stateTracking ?? true) {\r\n this.state = new ChatStateTracker(this);\r\n }\r\n\r\n options.ping ??= {};\r\n options.ping.enabled ??= true;\r\n options.ping.noActivityTimeoutMs ??= 15000;\r\n options.ping.pongBackTimeoutMs ??= 5000;\r\n }\r\n\r\n public async connect(): Promise<void> {\r\n if (this.isOpenWsState() || this.isConnectingWsState()) {\r\n return;\r\n }\r\n\r\n const params = new URLSearchParams(this.options.queryParams ?? {});\r\n params.set('token', this.options.token);\r\n\r\n this.ws = new WebSocket(`${this.options.url}?${params}`);\r\n this.ws.onclose = ev => this.onClose(ev);\r\n this.ws.onmessage = ev => this.onMessage(ev);\r\n this.connectingTimeoutId = setTimeout(\r\n () => this.triggerConnectionTimeout(),\r\n this.options.connectingTimeoutMs ?? 10000\r\n );\r\n this.authenticated = false;\r\n return new Promise((...args) => this.authenticatedResolvers = args);\r\n }\r\n\r\n public disconnect(): void {\r\n this.sendQueue = [];\r\n this.ws?.close(1000); // Normal closure\r\n this.ws = null;\r\n }\r\n\r\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandsMap[CommandType][0]):\r\n Promise<CommandResult<CommandsMap[CommandType][1]>> {\r\n const envelope = this.createEnvelope<CommandsMap[CommandType][0]>(commandType, commandData);\r\n const promise = this.createPromiseFromCommandEnvelope<CommandType>(envelope);\r\n\r\n if (this.isConnectingWsState() || !this.authenticated && this.isOpenWsState()) {\r\n this.sendQueue.push(envelope);\r\n return promise;\r\n }\r\n\r\n this.sendEnvelope(envelope);\r\n return promise;\r\n }\r\n\r\n public get isReady(): boolean {\r\n return this.isOpenWsState() && this.authenticated;\r\n }\r\n\r\n private sendEnvelope(envelope: Envelope): void {\r\n if (this.isReady) {\r\n this.ws.send(JSON.stringify(envelope));\r\n return;\r\n }\r\n\r\n this.handleEnvelopeSendError(\r\n envelope,\r\n new Error(`Cannot send - client is not ready (state=${this.ws?.readyState ?? '[no connection]'}; authenticated=${this.authenticated})`)\r\n );\r\n }\r\n\r\n private onMessage(event: MessageEvent): void {\r\n this.lastReceivedMessageAt = Date.now();\r\n const envelope: Envelope = JSON.parse(event.data);\r\n this.handleIncomingEnvelope(envelope);\r\n this.emit(envelope.type, envelope.data);\r\n this.emit(this.Event.message, envelope);\r\n\r\n // Login successfully\r\n if (!this.authenticated) {\r\n const isAuthenticated = envelope.type !== 'Bye';\r\n this.authenticated = isAuthenticated;\r\n if (isAuthenticated) {\r\n this.startConnectionMonitor();\r\n this.authenticatedResolvers[0]();\r\n this.emit(this.Event.connect);\r\n this.sendFromQueue();\r\n } else {\r\n this.authenticatedResolvers[1](envelope.data);\r\n }\r\n }\r\n }\r\n\r\n private onClose(event: CloseEvent): void {\r\n this.stopConnectionMonitor();\r\n clearTimeout(this.connectingTimeoutId);\r\n const reconnect = event.code !== 1000; // Connection was closed because of error\r\n if (reconnect) {\r\n void this.connect();\r\n }\r\n this.emit(this.Event.disconnect, reconnect);\r\n }\r\n\r\n private sendFromQueue(): void {\r\n // Send awaiting data to server\r\n let lastDelay = 0;\r\n for (const dataIndex in this.sendQueue) {\r\n const envelope = this.sendQueue[dataIndex];\r\n setTimeout(() => this.sendEnvelope(envelope), lastDelay);\r\n lastDelay += this.options.awaitQueueSendDelayMs ?? 500;\r\n }\r\n this.sendQueue = [];\r\n clearTimeout(this.connectingTimeoutId);\r\n }\r\n\r\n private triggerConnectionTimeout(): void {\r\n this.disconnect();\r\n this.emit(this.Event.error, new Error('Connection timeout'));\r\n }\r\n\r\n private isConnectingWsState(): boolean {\r\n return this.ws && this.ws.readyState === this.ws.CONNECTING;\r\n }\r\n\r\n private isOpenWsState(): boolean {\r\n return this.ws && this.ws.readyState === this.ws.OPEN;\r\n }\r\n\r\n private startConnectionMonitor(): void {\r\n if (!this.options.ping!.enabled) {\r\n return;\r\n }\r\n\r\n this.lastReceivedMessageAt = Date.now();\r\n\r\n this.pingMonitorInterval = setInterval(async () => {\r\n if (!this.isReady || this.inFlightPingTimeout) {\r\n return;\r\n }\r\n\r\n if ((Date.now() - this.lastReceivedMessageAt) < this.options.ping!.noActivityTimeoutMs) {\r\n return;\r\n }\r\n\r\n this.inFlightPingTimeout = setTimeout(() => {\r\n this.inFlightPingTimeout = undefined;\r\n this.ws.close(3000); // Service Restart (reconnect)\r\n }, this.options.ping.pongBackTimeoutMs);\r\n\r\n this.send('Ping', {}).then(() => {\r\n clearTimeout(this.inFlightPingTimeout);\r\n this.inFlightPingTimeout = undefined;\r\n });\r\n }, 1000);\r\n }\r\n\r\n private stopConnectionMonitor(): void {\r\n if (this.inFlightPingTimeout) {\r\n clearTimeout(this.inFlightPingTimeout);\r\n this.inFlightPingTimeout = undefined;\r\n }\r\n if (this.pingMonitorInterval) {\r\n clearInterval(this.pingMonitorInterval);\r\n this.pingMonitorInterval = undefined;\r\n }\r\n }\r\n}","import {AbstractChatClient, CommandResult, CommandsMap} from \"./AbstractChatClient\";\r\nimport {ObservableInterface} from \"./EventTarget\";\r\nimport {Envelope} from \"./types/src\";\r\n\r\nexport interface WebApiChatClientOptions {\r\n url: string;\r\n token: string;\r\n attemptsToSend?: number;\r\n attemptDelayMs?: number;\r\n queryParams?: Record<string, string>;\r\n}\r\n\r\nenum WebApiChatClientEvent {\r\n message = 'message',\r\n error = 'error',\r\n destroy = 'destroy',\r\n}\r\n\r\nexport class WebApiChatClient extends AbstractChatClient implements ObservableInterface {\r\n public readonly Event = WebApiChatClientEvent;\r\n\r\n protected sendStack: {data: any, attempts: number, lastTimeoutId: any}[];\r\n\r\n public constructor(private readonly options: WebApiChatClientOptions) {\r\n super();\r\n }\r\n\r\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandsMap[CommandType][0]):\r\n Promise<CommandResult<CommandsMap[CommandType][1]>> {\r\n const envelope = this.createEnvelope(commandType, commandData);\r\n this.sendStack.push({data: envelope, attempts: 0, lastTimeoutId: null});\r\n this.makeApiCall(this.sendStack.length - 1);\r\n return this.createPromiseFromCommandEnvelope(envelope);\r\n }\r\n\r\n public destroy(): void {\r\n // Cancel all awaiting requests\r\n this.sendStack.forEach(item => {\r\n if (item.lastTimeoutId) {\r\n clearTimeout(item.lastTimeoutId);\r\n }\r\n this.awaitingResponse.delete(item.data.ref);\r\n });\r\n this.sendStack = [];\r\n this.emit(this.Event.destroy, false);\r\n }\r\n\r\n protected async onMessage(reqId: number, response: Response): Promise<void> {\r\n this.sendStack.splice(reqId, 1);\r\n const envelope: Envelope = await response.json();\r\n this.handleIncomingEnvelope(envelope);\r\n this.emit(envelope.type, envelope.data);\r\n this.emit(this.Event.message, envelope);\r\n }\r\n\r\n protected onError(reqId: number, body: string): void {\r\n if (this.sendStack[reqId].attempts >= (this.options.attemptsToSend ?? 10)) {\r\n this.sendStack.splice(reqId, 1);\r\n this.handleEnvelopeSendError(this.sendStack[reqId].data, new Error(\r\n `Cannot send ${body}; aborting after reaching the maximum connection errors`\r\n ));\r\n return;\r\n }\r\n this.sendStack[reqId].lastTimeoutId = setTimeout(\r\n () => this.makeApiCall(reqId),\r\n this.options.attemptDelayMs ?? 3000\r\n );\r\n }\r\n\r\n protected makeApiCall(reqId: number): void {\r\n this.sendStack[reqId].attempts++;\r\n const bodyJson = JSON.stringify(this.sendStack[reqId].data);\r\n const headers: any = {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json'\r\n };\r\n\r\n headers.Authorization = `Bearer ${this.options.token}`;\r\n\r\n const params = new URLSearchParams(this.options.queryParams ?? {});\r\n const url = `${this.options.url}${params ? '?' + params : ''}`;\r\n\r\n fetch(url, {\r\n headers,\r\n body: bodyJson,\r\n method: 'POST',\r\n })\r\n .then(response => this.onMessage(reqId, response))\r\n .catch(() => this.onError(reqId, bodyJson));\r\n }\r\n}","export interface RestClientOptions {\r\n url?: string;\r\n token: string;\r\n}\r\n\r\nexport interface RestClientResponse<T> {\r\n ok: boolean;\r\n status: number;\r\n data: T;\r\n}\r\n\r\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\r\n\r\nexport abstract class AbstractRestClient {\r\n protected abstract defaultUrl: string;\r\n\r\n public constructor(\r\n private readonly options: RestClientOptions,\r\n ) {}\r\n\r\n protected async send<ResponseT = any>(\r\n method: HttpMethod,\r\n uri: string,\r\n data: any = undefined\r\n ): Promise<RestClientResponse<ResponseT>> {\r\n let url = this.getUrl(uri);\r\n let body = undefined;\r\n\r\n if (data) {\r\n if (['GET', 'DELETE'].includes(method)) {\r\n url += new URLSearchParams(data).toString()\r\n } else {\r\n body = JSON.stringify(data);\r\n }\r\n }\r\n\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n ...this.getAuthHeaders(),\r\n };\r\n\r\n const result = await fetch(url, {method, body, headers});\r\n\r\n return this.convertFetchResponse(result);\r\n }\r\n\r\n protected getAuthHeaders(): any {\r\n const headers = {} as any;\r\n\r\n if (this.options.token) {\r\n headers.Authorization = `Bearer ${this.options.token}`;\r\n }\r\n\r\n return headers;\r\n }\r\n\r\n protected getUrl(uri: string): string {\r\n return this.removeEndingSlash(this.options.url ?? this.defaultUrl) + '/' + this.removeStartingSlash(uri);\r\n }\r\n\r\n protected async convertFetchResponse<T>(result: Response): Promise<RestClientResponse<T>> {\r\n return {\r\n ok: result.ok,\r\n status: result.status,\r\n data: result.headers.get('content-type')?.includes('json') ? await result.json() : await result.text(),\r\n };\r\n }\r\n\r\n private removeStartingSlash(text: string): string {\r\n return text.replace(/^\\/+/, '');\r\n }\r\n\r\n private removeEndingSlash(text: string): string {\r\n return text.replace(/\\/+$/, '');\r\n }\r\n}","import {AbstractRestClient} from \"./AbstractRestClient\";\r\n\r\nexport interface TokenInterface {\r\n token: string,\r\n expiration: string\r\n}\r\n\r\nexport interface MyAccountInterface {\r\n id: string;\r\n nick: string;\r\n avatar: string;\r\n}\r\n\r\nexport class AuthClient extends AbstractRestClient {\r\n protected defaultUrl: string = 'https://polfan.pl/webservice/api';\r\n\r\n public static async createToken(\r\n login: string,\r\n password: string,\r\n clientName: string = 'pserv-js-client'\r\n ): Promise<TokenInterface> {\r\n const response = await new AuthClient({token: null}).send('POST', 'auth/tokens', {\r\n login, password, client_name: clientName\r\n });\r\n if (response.ok) {\r\n return response.data;\r\n }\r\n throw new Error(`Cannot create user token: ${response.data.errors[0]}`);\r\n }\r\n\r\n public async deleteToken(token: string): Promise<void> {\r\n const response = await this.send('DELETE', `auth/tokens/${token}`);\r\n if (!response.ok) {\r\n throw new Error(`Cannot delete access token: ${response.data.errors[0]}`);\r\n }\r\n }\r\n\r\n public async getMe(): Promise<MyAccountInterface> {\r\n const response = await this.send('GET', 'auth/me');\r\n if (response.ok) {\r\n response.data.id = response.data.id.toString();\r\n return response.data;\r\n }\r\n throw new Error(`Cannot get current user account: ${response.data.errors[0]}`);\r\n }\r\n}","import {AbstractRestClient, RestClientResponse} from \"./AbstractRestClient\";\r\n\r\nexport interface File {\r\n id: string;\r\n url: string;\r\n name: string;\r\n mime: string;\r\n size: number;\r\n width?: number;\r\n height?: number;\r\n}\r\n\r\nexport class FilesClient extends AbstractRestClient {\r\n protected defaultUrl: string = 'https://files.devana.pl';\r\n\r\n public async uploadFile(file: globalThis.File | Blob): Promise<RestClientResponse<File>> {\r\n const name = encodeURIComponent((file as globalThis.File).name ?? '');\r\n let headers = {\r\n ...this.getAuthHeaders(),\r\n Accept: 'application/json',\r\n 'Content-Disposition': `attachment; filename=\"${name}\"`,\r\n 'Content-Length': file.size\r\n };\r\n\r\n const response = await fetch(this.getUrl('files'), {\r\n method: 'POST',\r\n body: file,\r\n headers\r\n });\r\n\r\n return this.convertFetchResponse<File>(response);\r\n }\r\n\r\n public async getFileMeta(id: string): Promise<RestClientResponse<File>> {\r\n return this.send('GET', 'files/' + id);\r\n }\r\n\r\n public async getFileMetaBulk(ids: string[]): Promise<RestClientResponse<File[]>> {\r\n const searchParams = new URLSearchParams();\r\n ids.forEach(id => searchParams.append('id[]', id));\r\n return this.send('GET', 'files?' + searchParams);\r\n }\r\n}","import {WebSocketChatClient} from \"./WebSocketChatClient\";\r\nimport {WebApiChatClient} from \"./WebApiChatClient\";\r\nimport {\r\n IndexedCollection,\r\n IndexedObjectCollection,\r\n ObservableIndexedCollection,\r\n ObservableIndexedObjectCollection\r\n} from \"./IndexedObjectCollection\";\r\nimport { AuthClient, MyAccountInterface, TokenInterface } from \"./AuthClient\";\r\nimport {FilesClient, File} from \"./FilesClient\";\r\nimport { Permissions, PermissionDefinition, Layer } from \"./Permissions\";\r\nimport * as ChatTypes from './types/src';\r\nimport {extractUserFromMember} from \"./state-tracker/functions\";\r\n\r\nexport {\r\n IndexedCollection, ObservableIndexedCollection,\r\n IndexedObjectCollection, ObservableIndexedObjectCollection,\r\n Permissions, PermissionDefinition, Layer,\r\n WebSocketChatClient, WebApiChatClient,\r\n AuthClient,\r\n FilesClient,\r\n extractUserFromMember,\r\n};\r\n\r\nexport type {\r\n ChatTypes,\r\n MyAccountInterface, TokenInterface, File,\r\n};"],"names":["EventTarget","_classCallCheck","_defineProperty","Map","_createClass","key","value","on","eventName","handler","addHandler","events","once","onceEvents","off","_this$events$get","index","get","indexOf","splice","emit","event","callHandlers","map","_map$get","handlers","push","set","_map$get2","forEach","callback","AbstractChatClient","_EventTarget","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","_inherits","_superPropGet","createEnvelope","type","data","ref","sentCounter","toString","createPromiseFromCommandEnvelope","envelope","_this2","Promise","_len2","_key2","awaitingResponse","handleIncomingEnvelope","has","isError","error","handleEnvelopeSendError","IndexedCollection","items","undefined","apply","_toConsumableArray","_items","size","_i","item","id","delete","ids","_i2","_ids","deleteAll","clear","findBy","field","valueToFind","limit","result","entries","next","done","createMirror","copy","IndexedObjectCollection","from","values","_this$_items","_len3","_key3","getId","getAt","_this$_items2","_iterator","_createForOfIteratorHelper","_step","s","n","err","e","f","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","setItems","_len5","_key5","deletedItems","keys","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","DeferredTask","promise","resolve","PromiseRegistry","register","promises","registerByFunction","fn","notExist","forget","_this$promises","forgetAll","t","r","Symbol","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","call","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","_typeof","_assertThisInitialized","ReferenceError","Boolean","valueOf","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","WindowState","TraversableRemoteCollection","_ObservableIndexedObj","current","LIVE","ongoing","oldestId","internalState","LATEST","includes","state","OLDEST","_resetToLatest","_callee","_context","fetchLatestItems","addItems","resetToLatest","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","fetchPrevious","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","fetchNext","_refreshFetchedState","_callee4","_t","_context4","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","slice","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","traverseLock","client","ev","handleNewMessage","_setTraverseLock","_callee5","lock","_context5","setTraverseLock","_x","_resetToLatest2","_callee6","_context6","_fetchNext2","_callee7","_context7","_fetchPrevious2","_callee8","_context8","_updateMessageReference","refTopic","refMessage","_objectSpread","topicRef","_handleNewMessage","_callee9","_context9","message","location","_x2","_fetchItemsAfter","_callee0","_this$getAt","afterId","_context0","send","after","Error","messages","_fetchItemsBefore","_callee1","_this$getAt2","beforeId","_context1","before","_fetchLatestItems","_callee10","_context10","_getTopic","_callee11","_context11","rooms","getTopics","getTopic","_getLatestMessageId","_callee12","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context12","lastMessage","getLatestMessageId","_isLatestItemLoaded","_callee13","lastMessageId","_context13","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","historyWindow","topic","historyWindows","getMessagesWindow","_handleRoomUpdated","_Array$from","_Array$from$_i","window","_slicedToArray","refHistoryWindow","history","mode","MessagesManager","handleSession","handleRoomJoin","handleFollowedTopicUpdated","handleTopicFollowed","handleTopicUnfollowed","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","getRoomHistory","_cacheSpaceFollowedTopics","spaceId","roomIds","resultPromise","spaces","followedTopicsPromises","setFollowedTopicsArray","followedTopics","cacheSpaceFollowedTopics","_getRoomFollowedTopics","getRoomFollowedTopics","_x3","_ackRoomFollowedTopics","collection","followedTopic","missed","ackRoomFollowedTopics","_x4","_calculateRoomMissedMessages","reduce","previousValue","currentValue","_currentValue$missed","calculateRoomMissedMessages","_x5","_deleteByTopicIds","_this$followedTopics$","topicIds","createHistoryForNewRoom","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","_this$followedTopics$3","clearRoomFollowedTopicsStructures","_handleNewTopic","_x6","_this$followedTopics$4","_this$tracker$me","roomFollowedTopics","isMe","author","user","me","update","lastAckMessageId","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_this5$followedTopics","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMemberJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","getMembers","_getMe","userId","getMe","list","find","member","_member$user$id","_member$user","spaceMember","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","filter","_this3$topics$get2","deleteRoom","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get","_this$messages","deleteRoomsBySpaceId","_iterator2","_step2","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","_member$spaceMember","newMember","_room$defaultTopic","addJoinedRoomTopics","_this$topics$get2","addJoinedRooms","_this$topics$get3","_this$list2","_rooms","recipients","roles","customColor","customNick","extras","_member$user$id2","_member$user2","_this$list3","newRooms","_room$recipients","some","_room$defaultTopic2","newTopic","messageCount","reorderRolesOnPriorityUpdate","allRoles","oldRole","updatedRole","increased","priority","decreased","changedRoles","role","extractUserFromMember","_spaceMember","SpacesManager","handleNewRoom","handleSpaceUpdated","handleSpaceJoined","handleSpaceMemberJoined","handleSpaceMembers","handleSpaceRooms","handleRoomSummaryUpdated","handleNewRole","handleRoleDeleted","handleRoleUpdated","_getRoles","getRoles","_getRooms","roomsPromises","getRooms","_this$rooms$get","summary","roomIdToSpaceId","name","description","_handleRoomDeleted","_this$rooms$get2","space","spaceChanged","systemRoom","defaultRooms","_this$rooms$get$items","_this$rooms$get3","_this$roomIdToSpaceId","addJoinedSpaces","_this$roles","summaries","_handleRoomSummaryUpdated","summariesPromise","oldSummary","newSummary","_this$roles$get","newRole","rolesToUpdate","Layer","PermissionDefinition","Permissions","getNames","getByName","canBeDefinedOnLayer","permissionName","layer","def","maxLayer","Root","Room","CreateSpaces","Global","ManageSpace","Space","ManageSpaceRoles","ManageRoom","CreateTopics","ManageTopic","Topic","ManageSpaceMembers","ManageRoomMembers","CreateMessages","ManagePermissions","CreateSpaceRooms","ManageSpaceRooms","CreateEmoticons","ManageEmoticon","ManageBan","Kick","ChangeOwnNick","ChangeOwnColor","_superPropBase","getOwnPropertyDescriptor","hasOwnProperty","getOvId","target","roleId","join","getOvIdByObject","overwrites","PermissionsManager","handlePermissionOverwrites","_getOverwrites","validateLocation","overwritesPromises","getOverwrites","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","check","_calculatePermissions","_spaceMember$roles","_roomMember$roles","_yield$this$tracker$s","_yield$this$tracker$r","_yield$this$tracker$r2","_yield$this$fetchMemb","_yield$this$fetchMemb2","userRoles","filterLocation","_filterLocation","_t6","_t7","_t8","_t9","_t0","_t1","_t10","_t11","fetchMembersOrFail","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me2","prefix","startsWith","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_x7","_x8","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","sort","b","_currentValue$overwri","_currentValue$overwri2","_currentValue$overwri3","_currentValue$overwri4","Math","max","allow","deny","overwriteEvent","_overwrites$deny$toSt","_overwrites$deny","_overwrites$allow$toS","_overwrites$allow","revDecDenies","split","reverse","revDecAllows","_revDecDenies$i","_revDecAllows$i","parseInt","_x9","_x0","permissionOverwritesValues","getRootAccessValue","_fetchMembersOrFail","results","spaceFail","roomFail","_x1","GLOBAL_KEY","EmoticonsManager","handleEmoticons","handleNewEmoticon","handleEmoticonDeleted","emoticonsPromises","_event$location$space","emoticons","_ev$emoticon$spaceId","emoticon","_ev$spaceId","emoticonId","UsersManager","handleUsers","handleMembers","_getAvailable","users","getAvailable","session","_this$users","newUser","oldUser","online","onlineStatus","refUserId","getIdFromRelationship","relationship","refUser","RelationshipsManager","handleRelationships","handleNewRelationship","handleRelationshipDeleted","relationships","_exists","exists","ChatStateTracker","permissions","_me","WebSocketChatClientEvent","WebSocketChatClient","_AbstractChatClient","options","_this$options$stateTr","_options$ping","_options$ping2","_options$ping2$enable","_options$ping3","_options$ping3$noActi","_options$ping4","_options$ping4$pongBa","stateTracking","ping","enabled","noActivityTimeoutMs","pongBackTimeoutMs","_connect","_this$options$queryPa","_this$options$connect","params","isOpenWsState","isConnectingWsState","URLSearchParams","queryParams","token","ws","WebSocket","url","onclose","onClose","onmessage","onMessage","connectingTimeoutId","setTimeout","triggerConnectionTimeout","connectingTimeoutMs","authenticated","authenticatedResolvers","connect","disconnect","_this$ws","sendQueue","close","_send","commandType","commandData","sendEnvelope","_this$ws$readyState","_this$ws2","isReady","JSON","stringify","readyState","lastReceivedMessageAt","Date","now","parse","Event","isAuthenticated","startConnectionMonitor","sendFromQueue","stopConnectionMonitor","clearTimeout","reconnect","code","lastDelay","_loop","_this3$options$awaitQ","dataIndex","awaitQueueSendDelayMs","CONNECTING","OPEN","pingMonitorInterval","setInterval","inFlightPingTimeout","clearInterval","WebApiChatClientEvent","WebApiChatClient","sendStack","attempts","lastTimeoutId","makeApiCall","destroy","_onMessage","reqId","response","json","onError","body","_this$options$attempt","_this$options$attempt2","attemptsToSend","attemptDelayMs","bodyJson","headers","Accept","Authorization","fetch","method","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptors","defineProperties","AbstractRestClient","uri","_args","getUrl","getAuthHeaders","convertFetchResponse","_this$options$url","removeEndingSlash","defaultUrl","removeStartingSlash","_convertFetchResponse","_result$headers$get","status","text","replace","AuthClient","_AbstractRestClient","_deleteToken","errors","deleteToken","_createToken","login","password","clientName","_args3","client_name","createToken","FilesClient","_uploadFile","file","_name","encodeURIComponent","uploadFile","_getFileMeta","getFileMeta","_getFileMetaBulk","searchParams","append","getFileMetaBulk"],"ignoreList":[],"sourceRoot":""}
|