polfan-server-js-client 0.2.101 → 0.2.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +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/FollowedTopicsManager.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/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;\ntype HandlersMap = Map<string, EventHandler<any>[]>;\ntype EventMapLike = Record<string, any>;\ntype KnownEventNames<EventT> = EventT extends EventMapLike ? keyof EventT & string : string;\ntype EventPayload<EventT, EventName extends string = never> = EventT extends EventMapLike\n ? [EventName] extends [never]\n ? EventT[keyof EventT]\n : EventName extends keyof EventT\n ? EventT[EventName]\n : EventT[keyof EventT]\n : EventT;\n\nexport type ChangeEventMap<Payload = void> = { change: Payload };\n\nexport interface ObservableInterface<EventT = any> {\n on<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n on(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n once<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n once(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n off<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n off(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n}\n\nexport class EventTarget<EventMapT extends Record<string, any> = Record<string, any>> implements ObservableInterface<EventMapT> {\n protected events: HandlersMap = new Map<string, EventHandler<any>[]>();\n protected onceEvents: HandlersMap = new Map<string, EventHandler<any>[]>();\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public on(eventName: string, handler: EventHandler<unknown>): this;\n public on(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.events, eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public once(eventName: string, handler: EventHandler<unknown>): this;\n public once(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.onceEvents, eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public off(eventName: string, handler: EventHandler<unknown>): this;\n public off(eventName: string, handler: EventHandler<any>): this {\n const index = this.events.get(eventName)?.indexOf(handler);\n if (index === undefined || index < 0) {\n return this;\n }\n this.events.get(eventName)?.splice(index, 1);\n return this;\n }\n\n public emit<K extends keyof EventMapT & string>(eventName: K, event: EventMapT[K]): this;\n public emit(eventName: string, event?: unknown): this;\n public emit(eventName: string, event?: any): this {\n this.callHandlers(this.events, eventName, event);\n this.callHandlers(this.onceEvents, eventName, event);\n this.onceEvents.delete(eventName);\n return this;\n }\n\n private addHandler(map: HandlersMap, eventName: string, handler: EventHandler<any>): void {\n const handlers = map.get(eventName) ?? [];\n handlers.push(handler);\n map.set(eventName, handlers);\n }\n\n private callHandlers(map: HandlersMap, eventName: string, event: unknown): void {\n map.get(eventName)?.forEach(callback => callback(event));\n }\n}","import {\n Bye,\n GetSession,\n JoinSpace,\n Session,\n SpaceJoined,\n Error as ErrorType,\n SpaceLeft,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMemberUpdated,\n SpaceDeleted,\n SpaceMembers,\n SpaceRooms,\n NewRole,\n RoomDeleted,\n RoomJoined,\n RoomLeft,\n RoomMemberLeft,\n RoomMemberJoined,\n RoomMembers,\n NewRoom,\n NewTopic,\n TopicDeleted,\n NewMessage,\n GetPermissionOverwrites,\n GetComputedPermissions,\n LeaveSpace,\n CreateSpace,\n DeleteSpace,\n GetSpaceMembers,\n GetSpaceRooms,\n CreateRole,\n DeleteRole,\n AssignRole,\n DeassignRole,\n SetPermissionOverwrites,\n JoinRoom,\n LeaveRoom,\n CreateRoom,\n DeleteRoom,\n GetRoomMembers,\n CreateTopic,\n DeleteTopic,\n CreateMessage,\n Envelope,\n PermissionOverwrites,\n PermissionOverwritesUpdated,\n RoomMemberUpdated,\n UpdateRole,\n RoleUpdated,\n Ack,\n UserUpdated,\n UpdateRoom,\n RoomUpdated,\n UpdateSpace,\n SpaceUpdated,\n PermissionOverwriteTargets,\n GetPermissionOverwriteTargets,\n Owners,\n Ok,\n GetOwners,\n CreateOwner,\n RoleDeleted,\n FollowedTopicUpdated,\n TopicFollowed,\n FollowedTopics,\n FollowTopic,\n UpdateFollowedTopic,\n GetFollowedTopics,\n Messages,\n GetMessages,\n Topics,\n GetTopics,\n TopicUpdated,\n UpdateTopic,\n GetDiscoverableSpaces,\n DiscoverableSpaces,\n CreateEmoticon,\n DeleteEmoticon,\n GetEmoticons,\n Emoticons,\n EmoticonDeleted,\n NewEmoticon,\n Bans,\n GetBans,\n Ban,\n Unban,\n Kick,\n ClientData,\n GetClientData,\n SetClientData,\n GetRoomSummary,\n GetSpaceSummary,\n RoomSummaryEvent,\n SpaceSummaryEvent,\n UpdateSpaceMember,\n Relationships,\n RelationshipDeleted,\n NewRelationship,\n DeleteRelationship,\n CreateRelationship,\n RoomSummaryUpdated,\n Pong,\n Ping,\n RedactMessages,\n MessagesRedacted,\n ReportAbuse,\n UpdateRoomMember,\n GetRelationships,\n GetUserInfo,\n UserInfo,\n SetSessionData,\n SessionData,\n GetSessionData,\n UnfollowTopic,\n TopicUnfollowed,\n} from \"./types/src\";\nimport {EventTarget} from \"./EventTarget\";\n\ntype ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];\ntype ExtraEventMap = Record<string, any>;\n\ntype CommandDefinition<RequestT, ResponseT> = {\n request: RequestT;\n response: ResponseT;\n};\n\nexport abstract class AbstractChatClient<AdditionalEvents extends ExtraEventMap = {}> extends EventTarget<EventsMap & AdditionalEvents> {\n protected awaitingResponse: Map<string, ArrayOfPromiseResolvers> = new Map<string, ArrayOfPromiseResolvers>();\n protected sentCounter: number = 0;\n\n public abstract send<CommandType extends keyof CommandsMap>\n (commandType: CommandType, commandData: CommandRequest<CommandType>): Promise<CommandResult<CommandResponse<CommandType>>>;\n\n protected createEnvelope<CommandT>(type: string, data: CommandT): Envelope<CommandT> {\n return {\n type, data, ref: (++this.sentCounter).toString()\n };\n }\n\n protected createPromiseFromCommandEnvelope\n <CommandT extends keyof CommandsMap>(envelope: Envelope<CommandRequest<CommandT>>):\n Promise<CommandResult<CommandResponse<CommandT>>> {\n return new Promise((...args) =>\n this.awaitingResponse.set(envelope.ref as string, args));\n }\n\n protected handleIncomingEnvelope(envelope: Envelope): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n const isError = envelope.type === 'Error';\n this.awaitingResponse.get(envelope.ref)[0]({\n data: isError ? null : envelope.data,\n error: isError ? envelope.data : null,\n } as CommandResult<any>);\n this.awaitingResponse.delete(envelope.ref);\n }\n\n protected handleEnvelopeSendError(envelope: Envelope, error: any): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n this.awaitingResponse.get(envelope.ref)[1](error);\n this.awaitingResponse.delete(envelope.ref);\n }\n}\n\nexport type CommandResult<ResultT> = {data?: ResultT, error?: ErrorType};\nexport type CommandRequest<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['request'];\nexport type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['response'];\n\n /**\n * Map of incoming events.\n */\n export type EventsMap = {\n // General Events\n Bye: Bye,\n Ok: Ok,\n Error: ErrorType,\n Session: Session,\n Permissions: Permissions,\n PermissionOverwrites: PermissionOverwrites,\n PermissionOverwritesUpdated: PermissionOverwritesUpdated,\n PermissionOverwriteTargets: PermissionOverwriteTargets,\n Owners: Owners,\n NewEmoticon: NewEmoticon,\n EmoticonDeleted: EmoticonDeleted,\n Emoticons: Emoticons,\n Bans: Bans,\n ClientData: ClientData,\n SessionData: SessionData,\n NewRelationship: NewRelationship,\n RelationshipDeleted: RelationshipDeleted,\n Relationships: Relationships,\n Pong: Pong,\n UserInfo: UserInfo,\n // Space events\n DiscoverableSpaces: DiscoverableSpaces,\n SpaceJoined: SpaceJoined,\n SpaceLeft: SpaceLeft,\n SpaceMemberJoined: SpaceMemberJoined,\n SpaceMemberLeft: SpaceMemberLeft,\n SpaceMemberUpdated: SpaceMemberUpdated,\n SpaceUpdated: SpaceUpdated,\n SpaceDeleted: SpaceDeleted,\n SpaceMembers: SpaceMembers,\n SpaceRooms: SpaceRooms,\n NewRole: NewRole,\n RoleDeleted: RoleDeleted,\n RoleUpdated: RoleUpdated,\n SpaceSummaryEvent: SpaceSummaryEvent,\n // Room events\n RoomJoined: RoomJoined,\n RoomLeft: RoomLeft,\n RoomMemberJoined: RoomMemberJoined,\n RoomMemberLeft: RoomMemberLeft,\n RoomMemberUpdated: RoomMemberUpdated,\n RoomMembers: RoomMembers,\n NewRoom: NewRoom,\n RoomDeleted: RoomDeleted,\n RoomUpdated: RoomUpdated,\n RoomSummaryEvent: RoomSummaryEvent,\n RoomSummaryUpdated: RoomSummaryUpdated,\n // Topic events\n NewTopic: NewTopic,\n TopicDeleted: TopicDeleted,\n NewMessage: NewMessage,\n UserUpdated: UserUpdated,\n TopicFollowed: TopicFollowed,\n TopicUnfollowed: TopicUnfollowed,\n FollowedTopics: FollowedTopics,\n FollowedTopicUpdated: FollowedTopicUpdated,\n Messages: Messages,\n Topics: Topics,\n TopicUpdated: TopicUpdated,\n MessagesRedacted: MessagesRedacted,\n};\n\n/**\n * Map of commands and their corresponding events.\n */\nexport type CommandsMap = {\n // General commands\n GetSession: CommandDefinition<GetSession, EventsMap['Session']>,\n SetPermissionOverwrites: CommandDefinition<SetPermissionOverwrites, EventsMap['PermissionOverwritesUpdated']>,\n GetPermissionOverwrites: CommandDefinition<GetPermissionOverwrites, EventsMap['PermissionOverwrites']>,\n GetComputedPermissions: CommandDefinition<GetComputedPermissions, EventsMap['Permissions']>,\n GetPermissionOverwriteTargets: CommandDefinition<GetPermissionOverwriteTargets, EventsMap['PermissionOverwriteTargets']>,\n GetOwners: CommandDefinition<GetOwners, EventsMap['Owners']>,\n CreateOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n DeleteOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n CreateEmoticon: CommandDefinition<CreateEmoticon, EventsMap['NewEmoticon']>,\n DeleteEmoticon: CommandDefinition<DeleteEmoticon, EventsMap['EmoticonDeleted']>,\n GetEmoticons: CommandDefinition<GetEmoticons, EventsMap['Emoticons']>,\n GetBans: CommandDefinition<GetBans, EventsMap['Bans']>,\n Ban: CommandDefinition<Ban, EventsMap['Ok']>,\n Unban: CommandDefinition<Unban, EventsMap['Ok']>,\n Kick: CommandDefinition<Kick, EventsMap['Ok']>,\n GetClientData: CommandDefinition<GetClientData, EventsMap['ClientData']>,\n SetClientData: CommandDefinition<SetClientData, EventsMap['Ok']>,\n DeleteRelationship: CommandDefinition<DeleteRelationship, EventsMap['RelationshipDeleted']>,\n CreateRelationship: CommandDefinition<CreateRelationship, EventsMap['NewRelationship']>,\n GetRelationships: CommandDefinition<GetRelationships, EventsMap['Relationships']>,\n Ping: CommandDefinition<Ping, EventsMap['Pong']>,\n ReportAbuse: CommandDefinition<ReportAbuse, EventsMap['Ok']>,\n GetUserInfo: CommandDefinition<GetUserInfo, EventsMap['UserInfo']>,\n GetSessionData: CommandDefinition<GetSessionData, EventsMap['SessionData']>,\n SetSessionData: CommandDefinition<SetSessionData, EventsMap['Ok']>,\n // Space commands\n GetDiscoverableSpaces: CommandDefinition<GetDiscoverableSpaces, EventsMap['DiscoverableSpaces']>,\n JoinSpace: CommandDefinition<JoinSpace, EventsMap['SpaceJoined']>,\n LeaveSpace: CommandDefinition<LeaveSpace, EventsMap['SpaceLeft']>,\n CreateSpace: CommandDefinition<CreateSpace, EventsMap['SpaceJoined']>,\n UpdateSpace: CommandDefinition<UpdateSpace, EventsMap['SpaceUpdated']>,\n DeleteSpace: CommandDefinition<DeleteSpace, EventsMap['SpaceDeleted']>,\n GetSpaceMembers: CommandDefinition<GetSpaceMembers, EventsMap['SpaceMembers']>,\n GetSpaceRooms: CommandDefinition<GetSpaceRooms, EventsMap['SpaceRooms']>,\n CreateRole: CommandDefinition<CreateRole, EventsMap['NewRole']>,\n DeleteRole: CommandDefinition<DeleteRole, EventsMap['RoleDeleted']>,\n UpdateRole: CommandDefinition<UpdateRole, EventsMap['RoleUpdated']>,\n AssignRole: CommandDefinition<AssignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n DeassignRole: CommandDefinition<DeassignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n GetSpaceSummary: CommandDefinition<GetSpaceSummary, EventsMap['SpaceSummaryEvent']>,\n UpdateSpaceMember: CommandDefinition<UpdateSpaceMember, EventsMap['SpaceMemberUpdated']>,\n // Room commands\n JoinRoom: CommandDefinition<JoinRoom, EventsMap['RoomJoined']>,\n LeaveRoom: CommandDefinition<LeaveRoom, EventsMap['RoomLeft']>,\n CreateRoom: CommandDefinition<CreateRoom, EventsMap['RoomJoined']>,\n DeleteRoom: CommandDefinition<DeleteRoom, EventsMap['RoomDeleted']>,\n UpdateRoom: CommandDefinition<UpdateRoom, EventsMap['RoomUpdated']>,\n GetRoomMembers: CommandDefinition<GetRoomMembers, EventsMap['RoomMembers']>,\n GetRoomSummary: CommandDefinition<GetRoomSummary, EventsMap['RoomSummaryEvent']>,\n UpdateRoomMember: CommandDefinition<UpdateRoomMember, EventsMap['RoomMemberUpdated']>,\n // Topic commands\n CreateTopic: CommandDefinition<CreateTopic, EventsMap['NewTopic']>,\n DeleteTopic: CommandDefinition<DeleteTopic, EventsMap['TopicDeleted']>,\n CreateMessage: CommandDefinition<CreateMessage, EventsMap['NewMessage']>,\n Ack: CommandDefinition<Ack, EventsMap['FollowedTopicUpdated'] | EventsMap['Ok']>,\n FollowTopic: CommandDefinition<FollowTopic, EventsMap['TopicFollowed']>,\n UnfollowTopic: CommandDefinition<UnfollowTopic, EventsMap['TopicUnfollowed']>,\n UpdateFollowedTopic: CommandDefinition<UpdateFollowedTopic, EventsMap['FollowedTopicUpdated']>,\n GetFollowedTopics: CommandDefinition<GetFollowedTopics, EventsMap['FollowedTopics']>,\n GetMessages: CommandDefinition<GetMessages, EventsMap['Messages']>,\n GetTopics: CommandDefinition<GetTopics, EventsMap['Topics']>,\n UpdateTopic: CommandDefinition<UpdateTopic, EventsMap['TopicUpdated']>,\n RedactMessages: CommandDefinition<RedactMessages, EventsMap['MessagesRedacted']>,\n }\n","import {EventHandler, EventTarget, ObservableInterface} from \"./EventTarget\";\n\nexport class IndexedCollection<KeyT, ValueT> {\n protected _items: Map<KeyT, ValueT> = new Map();\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n this.set(...items);\n }\n\n public get items(): Map<KeyT, ValueT> {\n return this._items;\n }\n\n public get length(): number {\n return this._items.size;\n }\n\n public set(...items: [KeyT, ValueT][]): void {\n for (const item of items) {\n this._items.set(item[0], item[1]);\n }\n }\n\n public get(id: KeyT): ValueT | undefined {\n return this.items.get(id);\n }\n\n public has(id: KeyT): boolean {\n return this.items.has(id);\n }\n\n public delete(...ids: KeyT[]): void {\n for (const id of ids) {\n this.items.delete(id);\n }\n }\n\n public deleteAll(): void {\n this.items.clear();\n }\n\n public findBy(field: keyof ValueT, valueToFind: any, limit: number = Infinity): IndexedCollection<KeyT, ValueT> {\n const result = new IndexedCollection<KeyT, ValueT>();\n for (const [key, value] of this.items.entries()) {\n if (result.length >= limit) {\n break;\n }\n if (value[field] === valueToFind) {\n result.set([key, value]);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedCollection<KeyT, ValueT> {\n const copy = new IndexedCollection<KeyT, ValueT>();\n copy._items = this._items;\n return copy;\n }\n}\n\nexport class IndexedObjectCollection<T> {\n protected _items: IndexedCollection<string, T>;\n\n public constructor(\n public readonly id: keyof T | ((item: T) => any),\n items: T[] = [],\n ) {\n this._items = new IndexedCollection<string, T>();\n this.set(...items);\n }\n\n public get items(): T[] {\n return Array.from(this._items.items.values());\n }\n\n public get length(): number {\n return this._items.length;\n }\n\n public set(...items: T[]): void {\n this._items.set(...(items.map(item => [this.getId(item), item] as [string, T])));\n }\n\n public get(id: any): T | undefined {\n return this._items.get(id);\n }\n\n public getAt(index: number): T | undefined {\n return this.items[index];\n }\n\n public has(id: any): boolean {\n return this._items.has(id);\n }\n\n public delete(...ids: any[]): void {\n this._items.delete(...ids);\n }\n\n public deleteAll(): void {\n this._items.deleteAll();\n }\n\n public findBy(field: keyof T, valueToFind: any, limit: number = null): IndexedObjectCollection<T> {\n const result = new IndexedObjectCollection<T>(this.id);\n for (const value of this.items) {\n if (limit && result.length === limit) {\n break;\n }\n if (value[field] === valueToFind) {\n result.set(value);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedObjectCollection<T> {\n const copy = new IndexedObjectCollection<T>(this.id);\n copy._items = this._items;\n return copy;\n }\n\n protected getId(item: T): any {\n return typeof this.id === 'function' ? this.id(item) : item[this.id];\n }\n}\n\nexport type CollectionEventMap<IdType = string> = {\n change: { setItems?: IdType[]; deletedItems?: IdType[] };\n};\n\nexport class ObservableIndexedCollection<\n KeyT,\n ValueT,\n EventMapT extends CollectionEventMap<KeyT> = CollectionEventMap<KeyT>\n> extends IndexedCollection<KeyT, ValueT> implements ObservableInterface<EventMapT> {\n\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n super();\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: [KeyT, ValueT][]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => item[0]) });\n }\n }\n\n public delete(...ids: KeyT[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = Array.from(this._items.keys());\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: Array.from(ids) });\n }\n }\n\n public createMirror(): ObservableIndexedCollection<KeyT, ValueT, EventMapT> {\n const copy = new ObservableIndexedCollection<KeyT, ValueT, EventMapT>();\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\n}\n\nexport class ObservableIndexedObjectCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends IndexedObjectCollection<ItemT> implements ObservableInterface<EventMapT> {\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(\n id: keyof ItemT | ((item: ItemT) => string),\n items: ItemT[] = [],\n ) {\n super(id);\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: ItemT[]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => this.getId(item)) });\n }\n }\n\n public delete(...ids: string[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = this.items.map(item => this.getId(item));\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public createMirror(): ObservableIndexedObjectCollection<ItemT, EventMapT> {\n const copy = new ObservableIndexedObjectCollection<ItemT, EventMapT>(this.id);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\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, MessagesRedacted, NewMessage, Topic} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {CollectionEventMap, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\n\nexport enum WindowState {\n /**\n * The latest messages (those received live) are available in the history window, history has not been fetched.\n */\n LIVE,\n\n /**\n * The latest messages has been fetched and are available in the history window.\n */\n LATEST,\n\n /**\n * The historical messages have been fetched and are available in the history window.\n * Latest messages are not available and will not be available.\n */\n PAST,\n\n /**\n * The oldest messages have been fetched and are available in the history window.\n * Next attempts to fetch previous messages will result with no-op.\n */\n OLDEST,\n}\n\nexport abstract class TraversableRemoteCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends ObservableIndexedObjectCollection<ItemT, EventMapT> {\n /**\n * Current mode od collection window. To change mode, call one of available fetch methods.\n */\n public get state(): WindowState {\n return this.internalState.current;\n }\n\n protected internalState: {\n current: WindowState,\n ongoing?: WindowState,\n limit: number | null, // Acts as High Watermark\n retainRatio: number, // Percentage of limit to keep when trimming\n fetchLimit: number,\n lastFetchCount: number,\n oldestId: string | null,\n } = {\n current: WindowState.LIVE,\n ongoing: undefined,\n limit: 1000,\n retainRatio: 1,\n fetchLimit: 50,\n lastFetchCount: 0,\n oldestId: null,\n };\n\n /**\n * Number of items to fetch per request.\n */\n public get fetchLimit(): number {\n return this.internalState.fetchLimit;\n }\n\n /**\n * Sets number of items to fetch per request.\n */\n public set fetchLimit(value: number) {\n this.internalState.fetchLimit = value;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public get limit(): number | null {\n return this.internalState.limit;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public set limit(value: number | null) {\n this.internalState.limit = value;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public get retainRatio(): number {\n return this.internalState.retainRatio;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public set retainRatio(value: number) {\n this.internalState.retainRatio = value;\n }\n\n public get hasLatest(): boolean {\n return [WindowState.LATEST, WindowState.LIVE].includes(this.state);\n }\n\n public get hasOldest(): boolean {\n return this.state === WindowState.OLDEST\n || this.state === WindowState.LATEST && this.length < this.fetchLimit\n || this.internalState.oldestId !== null && this.has(this.internalState.oldestId);\n }\n\n public abstract createMirror(): TraversableRemoteCollection<ItemT, EventMapT>;\n\n public async resetToLatest(): Promise<void> {\n if (this.internalState.ongoing || this.internalState.current === WindowState.LATEST) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.LATEST;\n\n try {\n result = await this.fetchLatestItems();\n this.internalState.lastFetchCount = result.length;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n this.internalState.current = WindowState.LATEST;\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.ongoing || this.hasOldest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsBefore();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n return this.resetToLatest();\n }\n\n if (! result.length) {\n const firstItem = this.getAt(0);\n this.internalState.oldestId = firstItem ? this.getId(firstItem) : null;\n\n await this.refreshFetchedState();\n\n // LATEST state has priority over OLDEST\n if (this.internalState.current === WindowState.PAST) {\n this.internalState.current = WindowState.OLDEST;\n }\n\n this.emitChangeWithDiff(false, originalState);\n return;\n }\n\n this.addItems(result, 'head');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.ongoing || this.hasLatest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAfter();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n await this.resetToLatest();\n return;\n }\n\n if (result.length) {\n this.addItems(result, 'tail');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n return;\n }\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.ongoing || this._items.has(id)) {\n return;\n }\n\n let result: ItemT[] | null;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAround(id);\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (!result) {\n return;\n }\n\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n this.internalState.current = WindowState.PAST;\n this.emitChangeWithDiff(true, originalState);\n }\n\n protected abstract fetchLatestItems(): Promise<ItemT[]>;\n\n protected abstract fetchItemsBefore(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAfter(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAround(id: string): Promise<ItemT[] | null>;\n\n protected abstract isLatestItemLoaded(): Promise<boolean>;\n\n protected async refreshFetchedState(): Promise<void> {\n this.internalState.current = (await this.isLatestItemLoaded()) ? WindowState.LATEST : WindowState.PAST;\n }\n\n protected addItems(newItems: ItemT[], to: 'head' | 'tail'): void {\n let result;\n\n if (to === 'head') {\n result = this.trimItemsArrayToLimit([...newItems, ...this.items], 'tail');\n }\n\n if (to === 'tail') {\n result = this.trimItemsArrayToLimit([...this.items, ...newItems], 'head');\n }\n\n // Directly calls to prevent event emit.\n this._items.deleteAll();\n this._items.set(...(result.map(item => [this.getId(item), item] as [string, ItemT])));\n }\n\n protected emitChangeWithDiff(itemChanged: boolean, originalState: WindowState): void {\n if (itemChanged || originalState !== this.state) {\n this.eventTarget.emit('change', { setItems: Array.from(this._items.items.keys()) })\n }\n }\n\n /**\n * Return array with messages trimmed using High/Low Watermark strategy.\n */\n private trimItemsArrayToLimit(items: ItemT[], from: 'head' | 'tail'): ItemT[] {\n const highWatermark = this.limit;\n\n if (highWatermark === null || items.length <= highWatermark) {\n return items;\n }\n\n const lowWatermark = Math.floor(highWatermark * this.internalState.retainRatio);\n\n if (from === 'head') {\n return items.slice(-lowWatermark);\n }\n\n if (from === 'tail') {\n return items.slice(0, lowWatermark);\n }\n\n return items;\n }\n}\n\nexport type TopicHistoryWindowEventMap = CollectionEventMap & {\n reftopicsdeleted: string[];\n};\n\nexport class TopicHistoryWindow extends TraversableRemoteCollection<\n Message,\n TopicHistoryWindowEventMap\n> {\n /**\n * Reexported available window modes enum.\n */\n public readonly WindowState: typeof WindowState = WindowState;\n\n declare protected internalState: typeof TraversableRemoteCollection<Message>['prototype']['internalState'] & {\n traverseLock: boolean,\n };\n\n public constructor(\n private roomId: string,\n private topicId: string,\n private tracker: ChatStateTracker,\n bindEvents: boolean = true,\n ) {\n super('id');\n\n this.internalState.traverseLock = false;\n\n if (bindEvents) {\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n }\n }\n\n public createMirror(): TopicHistoryWindow {\n const copy = new TopicHistoryWindow(this.roomId, this.topicId, this.tracker, false);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n copy.internalState = this.internalState;\n return copy;\n }\n\n public get isTraverseLocked(): boolean {\n return this.internalState.traverseLock;\n }\n\n public async setTraverseLock(lock: boolean): Promise<void> {\n this.internalState.traverseLock = lock;\n\n if (lock && (this.state !== WindowState.LIVE && this.state !== WindowState.LATEST)) {\n await super.resetToLatest();\n }\n }\n\n public async resetToLatest(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.resetToLatest();\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchNext();\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchPrevious();\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.jumpTo(id);\n }\n\n /**\n * For internal use.\n * @internal\n */\n public _updateMessageReference(refTopic: Topic): void {\n const refMessage = this.get(refTopic.refMessage.id);\n\n if (refMessage) {\n // Update referenced topic ID in message\n this.set({...refMessage, topicRef: refTopic.id});\n }\n }\n\n protected async fetchItemsAfter(): Promise<Message[] | null> {\n const afterId = this.getAt(this.length - 1)?.id;\n\n if (! afterId) {\n // If there is no message to refer, fetch latest\n return null;\n }\n\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n after: afterId,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchItemsAround(id: string): Promise<Message[] | null> {\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n around: id,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchItemsBefore(): Promise<Message[] | null> {\n const beforeId = this.getAt(0)?.id;\n\n if (! beforeId) {\n // If there is no message to refer, fetch latest\n return null;\n }\n\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n before: beforeId,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchLatestItems(): Promise<Message[]> {\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n private async getTopic(): Promise<Topic | undefined> {\n return (await this.tracker.rooms.getTopics(this.roomId, [this.topicId])).get(this.topicId);\n }\n\n private async getLatestMessageId(): Promise<string | undefined> {\n return (await this.getTopic())?.lastMessage?.id;\n }\n\n protected async isLatestItemLoaded(): Promise<boolean> {\n const lastMessageId = await this.getLatestMessageId();\n return lastMessageId ? this.has(lastMessageId) : true;\n }\n\n private async handleNewMessage(ev: NewMessage): Promise<void> {\n if (\n [WindowState.LATEST, WindowState.LIVE].includes(this.state)\n && ev.message.location.roomId === this.roomId\n && ev.message.location.topicId === this.topicId\n ) {\n const originalState = this.state;\n this.addItems([ev.message], 'tail');\n this.emitChangeWithDiff(true, originalState);\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n if (ev.location.topicId !== this.topicId || ev.location.roomId !== this.roomId) {\n return;\n }\n\n const refTopicIds = this.items\n .filter(msg => msg.topicRef && ev.ids.includes(msg.id))\n .map(msg => msg.topicRef as string);\n\n this.delete(...ev.ids);\n\n if (this.length === 0) {\n await this.resetToLatest();\n }\n\n if (refTopicIds.length > 0) {\n this.eventTarget.emit('reftopicsdeleted', refTopicIds);\n }\n }\n}\n","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {NewTopic, Room, RoomUpdated, Topic, TopicDeleted} from \"../types/src\";\nimport {IndexedCollection,} from \"../IndexedObjectCollection\";\nimport {TopicHistoryWindow} from \"./TopicHistoryWindow\";\n\nexport class RoomMessagesHistory {\n private historyWindows = new IndexedCollection<string, TopicHistoryWindow>();\n private traverseLock: boolean = false;\n\n public constructor(\n private room: Room,\n private tracker: ChatStateTracker,\n ) {\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n\n this.updateTraverseLock(this.room);\n\n if (this.room.defaultTopic) {\n this.createHistoryWindowForTopic(this.room.defaultTopic);\n }\n }\n\n /**\n * Returns a history window object for the given topic ID, allowing you to view message history.\n * @param topicId\n * @param peek If true, do not create a cache for this topic and do not allow it to collect new messages.\n */\n public async getMessagesWindow(topicId: string, peek: boolean = false): Promise<TopicHistoryWindow | undefined> {\n if (!this.historyWindows.has(topicId) && !peek) {\n const topic = (await this.tracker.rooms.getTopics(this.room.id, [topicId])).get(topicId);\n\n if (topic) {\n this.createHistoryWindowForTopic(topic);\n }\n }\n\n return this.historyWindows.get(topicId);\n }\n\n private async handleRoomUpdated(ev: RoomUpdated): Promise<void> {\n if (this.room.id === ev.room.id) {\n this.room = ev.room;\n\n this.updateTraverseLock(ev.room);\n\n if (ev.room.defaultTopic) {\n this.createHistoryWindowForTopic(ev.room.defaultTopic);\n }\n\n for (const [, window] of Array.from(this.historyWindows.items)) {\n await window.setTraverseLock(this.traverseLock);\n }\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n if (this.room.id === ev.roomId) {\n this.createHistoryWindowForTopic(ev.topic);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n if (this.room.id === ev.location.roomId) {\n this.historyWindows.delete(ev.location.topicId);\n }\n }\n\n private createHistoryWindowForTopic(topic: Topic): void {\n if (this.historyWindows.has(topic.id)) {\n return;\n }\n\n const historyWindow = new TopicHistoryWindow(this.room.id, topic.id, this.tracker);\n\n void historyWindow.setTraverseLock(this.traverseLock);\n\n this.historyWindows.set([topic.id, historyWindow]);\n\n // Current behavior of deletion a message with referenced topic is to delete the whole side topic\n // So we need to listen for topic deletions here\n historyWindow.on('reftopicsdeleted', (deletedTopicIds: string[]) => {\n for (const topicId of deletedTopicIds) {\n this.historyWindows.delete(topicId);\n }\n this.tracker.rooms._deleteTopicsFromRoom(this.room.id, ...deletedTopicIds);\n });\n\n // If new topic refers to some message from this room, update other structures\n if (topic.refMessage) {\n const refHistoryWindow = this.historyWindows.get(topic.refMessage.location.topicId);\n refHistoryWindow?._updateMessageReference(topic);\n }\n }\n\n private updateTraverseLock(room: Room): void {\n this.traverseLock = room.history.mode === 'Ephemeral';\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n RoomDeleted,\n RoomLeft,\n RoomJoined,\n Session,\n Room,\n Message, ChatLocation,\n} from \"../types/src\";\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\nimport {DeferredTask} from \"./AsyncUtils\";\nimport {RoomMessagesHistory} from \"./RoomMessagesHistory\";\n\nexport class MessagesManager {\n private readonly roomHistories = new IndexedCollection<string, RoomMessagesHistory>();\n private readonly deferredSession = new DeferredTask();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n }\n\n /**\n * Get history manager for given room ID.\n */\n public async getRoomHistory(roomId: string): Promise<RoomMessagesHistory | undefined> {\n await this.deferredSession.promise;\n return this.roomHistories.get(roomId);\n }\n\n /**\n * For internal use.\n * @internal\n */\n public async _resolveLastMessage(location: ChatLocation): Promise<Message|null> {\n // Try to get last message from history window (if cached)\n let message: Message = await this.getRoomHistory(location.roomId)\n .then(roomHistory => roomHistory?.getMessagesWindow(location.topicId, true))\n .then(\n historyWindow =>\n historyWindow?.hasLatest && historyWindow.getAt(historyWindow.length - 1)\n );\n\n if (!message) {\n const result = await this.tracker.client.send('GetMessages', {\n location,\n limit: 1,\n });\n message = result.data?.messages[0];\n }\n\n return message || null;\n }\n\n private createHistoryForNewRoom(room: Room): void {\n this.roomHistories.set([room.id, new RoomMessagesHistory(room, this.tracker)]);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.roomHistories.delete(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.createHistoryForNewRoom(ev.room);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.roomHistories.delete(ev.id);\n }\n\n private handleSession(ev: Session): void {\n this.roomHistories.deleteAll();\n ev.state.rooms.forEach(room => this.createHistoryForNewRoom(room));\n this.deferredSession.resolve();\n }\n}","import {EventTarget} from \"../EventTarget\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n ChatLocation,\n FollowedTopic,\n FollowedTopicUpdated,\n NewMessage, NewTopic,\n RoomDeleted,\n RoomJoined, RoomLeft,\n Session, TopicDeleted,\n TopicFollowed\n} from \"../types/src\";\n\ninterface EventMap {\n change: {};\n}\n\nexport class FollowedTopicsManager extends EventTarget<EventMap> {\n private readonly followedTopics = new IndexedCollection<string, ObservableIndexedObjectCollection<FollowedTopic>>();\n private readonly followedTopicsPromises = new PromiseRegistry();\n private readonly deferredSession = new DeferredTask();\n private readonly summariesCache = new Map<string, { mentionCount: number, isUnread: boolean }>();\n\n public constructor(private tracker: ChatStateTracker) {\n super();\n\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('FollowedTopicUpdated', ev => this.handleFollowedTopicUpdated(ev));\n this.tracker.client.on('TopicFollowed', ev => this.handleTopicFollowed(ev));\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n }\n\n /**\n * Cache followed topics for all joined rooms in a space and fetch them in bulk if necessary.\n * Then you can get them using getRoomFollowedTopics().\n * @see getForRoom\n */\n public async cacheForSpace(spaceId: string | null): Promise<void> {\n if (spaceId && ! (await this.tracker.spaces.get()).has(spaceId)) {\n throw new Error(`You are not in space ${spaceId}`);\n }\n\n const rooms = await this.tracker.rooms.get();\n const roomIds = spaceId\n ? rooms.findBy('spaceId', spaceId).items.map(r => r.id)\n : rooms.items.filter(r => !r.spaceId).map(r => r.id);\n\n if (!roomIds.length) {\n return;\n }\n\n const isAlreadyCached = roomIds.every(roomId => this.followedTopics.has(roomId));\n if (isAlreadyCached) {\n return;\n }\n\n const spaceRegistryKey = `space_fetch_${spaceId || 'spaceless'}`;\n\n if (this.followedTopicsPromises.notExist(spaceRegistryKey)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {spaceId}});\n if (result.error) throw result.error;\n\n this.setFollowedTopicsArray(roomIds, result.data.followedTopics);\n }, spaceRegistryKey);\n }\n\n await this.followedTopicsPromises.get(spaceRegistryKey);\n }\n\n /**\n * Get followed topics for the given room.\n * @return Undefined if you are not in the room, collection otherwise.\n */\n public async getForRoom(roomId: string): Promise<ObservableIndexedObjectCollection<FollowedTopic> | undefined> {\n if (! (await this.tracker.rooms.get()).has(roomId)) {\n return undefined;\n }\n\n if (! this.followedTopics.has(roomId)) {\n if (this.followedTopicsPromises.notExist(roomId)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {roomId}});\n\n if (result.error) {\n throw result.error;\n }\n\n this.setFollowedTopicsArray([roomId], result.data.followedTopics);\n }, roomId);\n }\n\n await this.followedTopicsPromises.get(roomId);\n }\n\n return this.followedTopics.get(roomId);\n }\n\n /**\n * Batch acknowledge all messages for given room.\n */\n public async ackRoom(roomId: string): Promise<void> {\n const collection = await this.getForRoom(roomId);\n\n if (! collection) {\n return;\n }\n\n for (const followedTopic of collection.items) {\n if (followedTopic.isUnread) {\n await this.tracker.client.send('Ack', {location: followedTopic.location});\n }\n }\n }\n\n /**\n * Summarize all unread messages or mentions from any topic in given location.\n * This method uses an internal cache, so it's ok to call it multiple times.\n * Capture the 'change' event to determine when it's worth calling this method again due to data changes.\n * @return Undefined if you are not in room.\n */\n public async summarize(location: ChatLocation): Promise<{ mentionCount: number, isUnread: boolean }> {\n const cacheKey = location.topicId\n ? `topic:${location.roomId}:${location.topicId}`\n : location.roomId\n ? `room:${location.roomId}`\n : location.spaceId\n ? `space:${location.spaceId}`\n : 'spaceless';\n\n if (this.summariesCache.has(cacheKey)) {\n return this.summariesCache.get(cacheKey)!;\n }\n\n let roomIds: string[] = [];\n let targetTopicId: string | undefined;\n const rooms = await this.tracker.rooms.get();\n\n if (location.topicId) {\n if (!location.roomId) {\n throw new Error(\"roomId is required when querying by topicId\");\n }\n roomIds = [location.roomId];\n targetTopicId = location.topicId;\n } else if (location.roomId) {\n roomIds = [location.roomId];\n } else if (location.spaceId) {\n await this.cacheForSpace(location.spaceId);\n roomIds = rooms.findBy('spaceId', location.spaceId).items.map(r => r.id);\n } else {\n await this.cacheForSpace(null);\n roomIds = rooms.items.filter(r => !r.spaceId).map(r => r.id);\n }\n\n let mentionCount = 0;\n let isUnread = false;\n\n for (const roomId of roomIds) {\n const collection = await this.getForRoom(roomId);\n\n if (!collection) {\n continue;\n }\n\n for (const topic of collection.items) {\n if (targetTopicId && topic.location.topicId !== targetTopicId) {\n continue;\n }\n\n if (topic.isUnread) {\n isUnread = true;\n }\n\n mentionCount += (topic.mentionCount ?? 0);\n }\n }\n\n const result = { mentionCount, isUnread };\n this.summariesCache.set(cacheKey, result);\n\n return result;\n }\n\n /**\n * For internal use. If you want to delete the message, execute a proper command on client object.\n * @internal\n */\n public _deleteByTopicIds(roomId: string, ...topicIds: string[]): void {\n this.followedTopics.get(roomId)?.delete(...topicIds);\n topicIds.forEach(topicId => this.invalidateUnreadSummaries(roomId, topicId));\n }\n\n private handleSession(ev: Session): void {\n this.followedTopics.deleteAll();\n this.followedTopicsPromises.forgetAll();\n this.invalidateUnreadSummaries();\n this.deferredSession.resolve();\n }\n\n private handleNewMessage(ev: NewMessage): void {\n void this.updateLocallyFollowedTopicOnNewMessage(ev);\n }\n\n private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {\n this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleTopicFollowed(ev: TopicFollowed): void {\n this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.clearRoomFollowedTopicsStructures(ev.room.id);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private async handleNewTopic(ev: NewTopic): Promise<void> {\n if (this.followedTopics.has(ev.roomId)) {\n // Check if the new topic is followed by user\n // only if client asked for followed topics list before for this room\n const result = await this.tracker.client.send(\n 'GetFollowedTopics',\n {location: {roomId: ev.roomId, topicId: ev.topic.id}},\n );\n const followedTopic = result.data.followedTopics[0];\n if (followedTopic) {\n this.followedTopics.get(ev.roomId).set(followedTopic);\n this.invalidateUnreadSummaries(ev.roomId, ev.topic.id);\n }\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);\n }\n\n /**\n * Invalidate the summaries cache intentionally, only for the locations affected by the change.\n */\n private invalidateUnreadSummaries(roomId?: string, topicId?: string): void {\n if (roomId) {\n this.summariesCache.delete(`room:${roomId}`);\n\n if (topicId) {\n this.summariesCache.delete(`topic:${roomId}:${topicId}`);\n } else {\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith(`topic:${roomId}:`)) {\n this.summariesCache.delete(key);\n }\n }\n }\n\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.summariesCache.delete(key);\n }\n }\n } else {\n this.summariesCache.clear();\n }\n\n this.emit('change');\n }\n\n private invalidateUnreadSummariesForRooms(roomIds: string[]): void {\n const roomIdsSet = new Set(roomIds);\n roomIds.forEach(roomId => {\n this.summariesCache.delete(`room:${roomId}`);\n });\n\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.summariesCache.delete(key);\n continue;\n }\n if (key.startsWith('topic:')) {\n const parts = key.split(':');\n if (parts.length >= 2 && roomIdsSet.has(parts[1])) {\n this.summariesCache.delete(key);\n }\n }\n }\n\n this.emit('change');\n }\n\n private async updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): Promise<void> {\n const roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);\n const followedTopic = roomFollowedTopics?.get(ev.message.location.topicId);\n\n if (!roomFollowedTopics || !followedTopic || ev.message.type === 'Ephemeral') {\n // Skip if we don't follow this room or message is ephemeral\n return;\n }\n\n const me = await this.tracker.getMe();\n const isMe = ev.message.author.user.id === me.id;\n let update: Partial<FollowedTopic>;\n\n if (isMe) {\n // Reset missed messages count if new message is authored by me\n update = {missed: 0, lastAckMessageId: ev.message.id};\n } else if (ev.message.type === 'Text') {\n // ...check for mentions if it's text message...\n const member = await this.tracker.rooms.getMe(ev.message.location.roomId);\n const roleIds = [...(member.spaceMember?.roles ?? []), ...(member.roles ?? [])];\n const mentionHandlers = [\n ...roleIds.map(id => `<@&${id}>`),\n `<@${me.id}>`,\n ];\n const mentionExists = mentionHandlers.some(handler => ev.message.content.includes(handler));\n\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n mentionCount: followedTopic.mentionCount + (mentionExists ? 1 : 0),\n };\n } else {\n // ...or just mark as unread.\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n };\n }\n\n roomFollowedTopics.set({...followedTopic, ...update});\n this.invalidateUnreadSummaries(ev.message.location.roomId, ev.message.location.topicId);\n }\n\n private setFollowedTopicsArray(roomIds: string[], followedTopics: FollowedTopic[]): void {\n const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};\n\n // Reassign followed topics to limit collection change event emit\n followedTopics.forEach(followedTopic => {\n roomToTopics[followedTopic.location.roomId] ??= [];\n roomToTopics[followedTopic.location.roomId].push(followedTopic);\n });\n\n roomIds.forEach(roomId => {\n if (! this.followedTopics.has(roomId)) {\n this.followedTopics.set([roomId, new ObservableIndexedObjectCollection<FollowedTopic>(\n followedTopic => followedTopic.location.topicId\n )]);\n }\n\n if (roomToTopics[roomId]) {\n this.followedTopics.get(roomId).set(...roomToTopics[roomId]);\n }\n });\n\n this.invalidateUnreadSummariesForRooms(roomIds);\n }\n\n private clearRoomFollowedTopicsStructures(roomId: string): void {\n this.followedTopics.delete(roomId);\n this.followedTopicsPromises.forget(roomId);\n this.invalidateUnreadSummaries(roomId);\n }\n}","import {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n Message,\n MessagesRedacted,\n NewMessage,\n NewTopic,\n Room, RoomDeleted,\n RoomJoined, RoomLeft,\n RoomMember, RoomMemberJoined, RoomMemberLeft, RoomMembers,\n RoomMemberUpdated, RoomUpdated, Session, SpaceDeleted, SpaceLeft, SpaceMemberLeft,\n SpaceMemberUpdated,\n Topic,\n TopicDeleted, TopicUpdated,\n UserUpdated,\n} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {MessagesManager} from \"./MessagesManager\";\nimport {FollowedTopicsManager} from \"./FollowedTopicsManager\";\n\nexport class RoomsManager {\n public readonly messages: MessagesManager;\n public readonly followedTopics: FollowedTopicsManager;\n\n private readonly list = new ObservableIndexedObjectCollection<Room>('id');\n private readonly topics = new IndexedCollection<string, ObservableIndexedObjectCollection<Topic>>();\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomMember>>();\n private readonly deferredSession = new DeferredTask();\n private readonly membersPromises = new PromiseRegistry();\n private readonly topicsPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.messages = new MessagesManager(tracker);\n this.followedTopics = new FollowedTopicsManager(tracker);\n\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoined(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicUpdated', ev => this.handleTopicUpdated(ev));\n this.tracker.client.on('RoomMemberJoined', ev => this.handleRoomMemberJoined(ev));\n this.tracker.client.on('RoomMemberLeft', ev => this.handleRoomMemberLeft(ev));\n this.tracker.client.on('RoomMembers', ev => this.handleRoomMembers(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n /**\n * Get collection of room members.\n */\n public async getMembers(roomId: string): Promise<ObservableIndexedObjectCollection<RoomMember> | undefined> {\n if (this.membersPromises.notExist(roomId)) {\n this.membersPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRoomMembers', {id: roomId});\n if (result.error) {\n throw result.error;\n }\n this.handleRoomMembers(result.data);\n }, roomId);\n }\n\n await this.membersPromises.get(roomId);\n return this.members.get(roomId);\n }\n\n /**\n * Get a room member representing the current user.\n */\n public async getMe(roomId: string): Promise<RoomMember | undefined> {\n const userId = (await this.tracker.getMe()).id;\n\n if (! this.list.has(roomId)) {\n // User is not in passed room.\n return undefined;\n }\n\n const members = await this.getMembers(roomId);\n return members?.items.find(member => (member.user?.id ?? member.spaceMember.user.id) === userId);\n }\n\n /**\n * Get collection of all the rooms you are in.\n */\n public async get(): Promise<ObservableIndexedObjectCollection<Room>> {\n await this.deferredSession.promise;\n return this.list;\n }\n\n /**\n * Get a collection of locally cached Topic objects for given room.\n * You can pass topic ids as second argument, to try to fetch them from the server.\n */\n public async getTopics(roomId: string, tryToFetchTopicIds?: string[]): Promise<ObservableIndexedObjectCollection<Topic> | undefined> {\n await this.deferredSession.promise;\n\n if (tryToFetchTopicIds?.length) {\n // Topic can be fetched if it isn't already cached and fetch is not already in progress\n const canFetch = (topicId: string) => ! this.topics.get(roomId)?.has(topicId) && ! this.topicsPromises.has(roomId + topicId);\n const idsToFetch = tryToFetchTopicIds.filter(canFetch);\n\n if (idsToFetch.length) {\n const promise = this.tracker\n .client\n .send('GetTopics', {roomId, topicIds: idsToFetch})\n .then(result => this.topics.get(result.data.location.roomId)?.set(...result.data.topics));\n\n idsToFetch.forEach(topicId => this.topicsPromises.register(promise, roomId + topicId));\n }\n\n for (const topicId of tryToFetchTopicIds) {\n await this.topicsPromises.get(roomId + topicId);\n }\n }\n\n return this.topics.get(roomId);\n }\n\n /**\n * For internal use. If you want to delete topic, execute a proper command on client object.\n * @internal\n */\n public _deleteTopicsFromRoom(roomId: string, ...topicIds: string[]): void {\n this.topics.get(roomId)?.delete(...topicIds);\n }\n\n private deleteRoom(...roomIds: string[]): void {\n this.list.delete(...roomIds);\n this.members.delete(...roomIds);\n this.membersPromises.forget(...roomIds);\n\n for (const roomId of roomIds) {\n const topicIds: string[] = this.topics.get(roomId)?.items.map(topic => topic.id) ?? [];\n this.followedTopics._deleteByTopicIds(roomId, ...topicIds);\n }\n\n this.topics.delete(...roomIds);\n }\n\n private deleteRoomsBySpaceId(spaceId: string): void {\n this.deleteRoom(\n ...this.list.findBy('spaceId', spaceId).items.map(room => room.id)\n );\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n // Update members of rooms related to this space\n for (const room of this.list.findBy('spaceId', ev.spaceId).items) {\n const roomMembers = this.members.get(room.id);\n\n if (!roomMembers || !roomMembers.has(ev.userId)) {\n // Skip update if member list for this room is not loaded\n // or user is not in room\n continue;\n }\n\n // Update space member in roomMember, but first fill the user object (it's null in event)\n const roomMember = roomMembers.get(ev.userId);\n const spaceMember = ev.member;\n spaceMember.user = roomMember.spaceMember.user;\n roomMembers.set({ ...roomMember, spaceMember });\n }\n }\n\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\n this.list\n .findBy('spaceId', ev.spaceId).items\n .forEach(room => this.members.get(room.id)?.delete(ev.userId));\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (! this.members.has(ev.roomId)) {\n // We do not track member list for this room.\n return;\n }\n\n const members = this.members.get(ev.roomId);\n const member = members.get(ev.userId);\n const newMember = ev.member;\n const user = member.spaceMember?.user ?? member.user;\n\n // Preserving user object, because it's not included in event\n if (newMember.spaceMember) {\n newMember.spaceMember.user = user;\n } else {\n newMember.user = user;\n }\n\n members.set(newMember);\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n this.deleteRoomsBySpaceId(ev.id);\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const collection = this.topics.get(ev.location.roomId);\n collection.delete(ev.location.topicId);\n\n const room = this.list.get(ev.location.roomId);\n if (room.defaultTopic?.id === ev.location.topicId) {\n this.list.set({...room, defaultTopic: null});\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n this.addJoinedRoomTopics(ev.roomId, ev.topic);\n }\n\n private addJoinedRoomTopics(roomId: string, ...topics: Topic[]): void {\n if (this.topics.has(roomId)) {\n this.topics.get(roomId).set(...topics);\n } else {\n this.topics.set([roomId, new ObservableIndexedObjectCollection<Topic>('id', topics)]);\n }\n }\n\n private handleRoomJoined(ev: RoomJoined): void {\n this.addJoinedRooms(ev.room);\n }\n\n private handleRoomUpdated(ev: RoomUpdated): void {\n if (this.list.has(ev.room.id)) {\n this.list.set(ev.room);\n }\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.deleteRoom(ev.id);\n }\n\n private handleTopicUpdated(ev: TopicUpdated): void {\n const room = this.list.get(ev.location.roomId);\n\n if (this.topics.get(ev.location.roomId)?.has(ev.topic.id)) {\n this.topics.get(ev.location.roomId).set(ev.topic);\n }\n\n if (room.defaultTopic.id === ev.topic.id) {\n const newRoom = { ...room };\n newRoom.defaultTopic = ev.topic;\n this.list.set(newRoom);\n }\n }\n\n private addJoinedRooms(...rooms: Room[]): void {\n for (const room of rooms) {\n if (room.defaultTopic) {\n this.addJoinedRoomTopics(room.id, room.defaultTopic);\n }\n\n if (room.type === 'Pm' && room.recipients) {\n // Treat PM recipients as normal room members.\n // We are registering fake promise in `memberPromises`\n // because GetMembers are not supported for PM rooms.\n this.handleRoomMembers({\n id: room.id,\n members: room.recipients.map(user => ({\n user,\n spaceMember: null,\n roles: null,\n customColor: null,\n customNick: null,\n extras: '',\n })),\n });\n this.membersPromises.register(Promise.resolve(), room.id);\n }\n }\n this.list.set(...rooms);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.deleteRoom(ev.id);\n }\n\n private handleRoomMemberJoined(ev: RoomMemberJoined): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).set(ev.member);\n }\n }\n\n private handleRoomMemberLeft(ev: RoomMemberLeft): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).delete(ev.userId);\n }\n }\n\n private handleRoomMembers(ev: RoomMembers): void {\n if (! this.members.has(ev.id)) {\n this.members.set([\n ev.id,\n new ObservableIndexedObjectCollection(\n member => member.user?.id ?? member.spaceMember.user.id,\n ev.members,\n )\n ]);\n }\n }\n\n private handleSession(ev: Session): void {\n this.list.deleteAll();\n this.topics.deleteAll();\n this.topicsPromises.forgetAll();\n this.members.deleteAll();\n this.membersPromises.forgetAll();\n\n this.addJoinedRooms(...ev.state.rooms);\n\n this.deferredSession.resolve();\n }\n\n private handleUserUpdated(ev: UserUpdated): void {\n // Update room members users\n this.members.items.forEach((members) => {\n const member = members.get(ev.user.id);\n\n if (! member) {\n // Skip room; updated user is not here\n return;\n }\n\n const newMember: RoomMember = {...member};\n\n if (member.user) {\n newMember.user = ev.user;\n } else {\n newMember.spaceMember.user = ev.user;\n }\n\n members.set(newMember);\n });\n\n // Update recipients users\n const newRooms: Room[] = [];\n this.list.items.forEach(room => {\n if (room.recipients?.some(user => user.id === ev.user.id)) {\n room.recipients = room.recipients.map(user => user.id === ev.user.id ? ev.user : user);\n newRooms.push({...room});\n }\n });\n this.list.set(...newRooms);\n }\n\n private handleNewMessage(ev: NewMessage): void {\n const topics = this.topics.get(ev.message.location.roomId);\n const topic = topics?.get(ev.message.location.topicId);\n\n if (!topic) {\n return; // No topic found, nothing to update\n }\n\n const newTopic = {\n ...topic,\n messageCount: topic.messageCount + 1,\n lastMessage: ev.message,\n };\n\n topics.set(newTopic);\n const room = this.list.get(ev.message.location.roomId);\n\n if (room.defaultTopic?.id === ev.message.location.topicId) {\n this.list.set({ ...room, defaultTopic: newTopic });\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n // Remove redacted messages from topic and update metadata\n const topics = this.topics.get(ev.location.roomId);\n const topic = topics?.get(ev.location.topicId);\n if (topic) {\n const messageCount = Math.max(topic.messageCount - ev.ids.length, 0);\n const lastMessage: Message = messageCount > 0 ? await this.messages._resolveLastMessage(ev.location) : null;\n topics.set({ ...topic, messageCount, lastMessage } as Topic);\n }\n }\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 {\n Global,\n Space,\n Room,\n Topic,\n}\n\nexport class PermissionDefinition {\n value: number;\n maxLayer: Layer;\n}\n\nexport class Permissions {\n public static readonly list = {\n Root: {value: 1 << 0, maxLayer: Layer.Room},\n CreateSpaces: {value: 1 << 1, maxLayer: Layer.Global},\n ManageSpace: {value: 1 << 2, maxLayer: Layer.Space},\n ManageRoles: {value: 1 << 3, maxLayer: Layer.Space},\n //ManageRoom: {value: 1 << 4, maxLayer: Layer.Room},\n CreateTopics: {value: 1 << 5, maxLayer: Layer.Room},\n ManageTopic: {value: 1 << 6, maxLayer: Layer.Topic},\n ManageMemberProfiles: {value: 1 << 7, maxLayer: Layer.Space},\n ManageMemberRoles: {value: 1 << 8, maxLayer: Layer.Room},\n CreateMessages: {value: 1 << 9, maxLayer: Layer.Topic},\n ManagePermissions: {value: 1 << 10, maxLayer: Layer.Topic},\n CreateRooms: {value: 1 << 11, maxLayer: Layer.Space},\n ManageRoom: {value: 1 << 12, maxLayer: Layer.Room},\n CreateEmoticons: {value: 1 << 13, maxLayer: Layer.Space},\n ManageEmoticons: {value: 1 << 14, maxLayer: Layer.Space},\n ManageBans: {value: 1 << 15, maxLayer: Layer.Room},\n Kick: {value: 1 << 16, maxLayer: Layer.Room},\n ChangeOwnNick: {value: 1 << 17, maxLayer: Layer.Space},\n ChangeOwnColor: {value: 1 << 18, maxLayer: Layer.Room},\n RedactMessages: {value: 1 << 19, maxLayer: Layer.Topic},\n };\n\n public static getNames(): (keyof typeof this.list)[] {\n return Object.keys(this.list) as any;\n }\n\n public static getByName(name: keyof typeof this.list): PermissionDefinition | undefined {\n return this.list[name];\n }\n\n public static canBeDefinedOnLayer(permissionName: keyof typeof this.list, layer: Layer): boolean {\n const def = this.getByName(permissionName);\n\n if (! def) {\n throw new Error(`Invalid permission name: ${permissionName}`);\n }\n\n return layer <= this.getByName(permissionName).maxLayer;\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n ChatLocation,\n PermissionOverwrites, PermissionOverwritesTarget,\n PermissionOverwritesUpdated,\n PermissionOverwritesValue,\n RoleDeleted,\n RoomDeleted,\n RoomLeft, RoomMember, RoomMemberUpdated, Session,\n SpaceDeleted,\n SpaceLeft, SpaceMember,\n SpaceMemberUpdated,\n TopicDeleted,\n} from \"../types/src\";\nimport {ChangeEventMap, EventTarget} from \"../EventTarget\";\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\nimport {Permissions} from \"../Permissions\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\n\nconst getOvId = (\n location: ChatLocation,\n target?: PermissionOverwritesTarget,\n) => [location.spaceId, location.roomId, location.topicId, target?.type, target?.userId, target?.roleId].filter(Boolean).join('/');\n\nconst getOvIdByObject\n = (overwrites: PermissionOverwrites | PermissionOverwritesUpdated): string => getOvId(overwrites.location, overwrites.target);\n\ninterface CheckPermissionsResult {\n /**\n * @deprecated Use `hasAll` instead.\n */\n ok: boolean;\n hasAll: boolean;\n hasAny: boolean;\n missing: string[];\n}\n\ntype PermissionsManagerEventMap = ChangeEventMap<void>;\n\nexport class PermissionsManager extends EventTarget<PermissionsManagerEventMap> {\n private readonly overwrites = new IndexedCollection<string, PermissionOverwrites>();\n private readonly overwritesPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n super();\n this.tracker.client.on('PermissionOverwrites', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('PermissionOverwritesUpdated', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n public async getOverwrites(\n location: ChatLocation,\n target: PermissionOverwritesTarget,\n ): Promise<PermissionOverwrites | undefined> {\n this.validateLocation(location);\n\n const id = getOvId(location, target);\n\n if (this.overwritesPromises.notExist(id)) {\n this.overwritesPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send(\n 'GetPermissionOverwrites',\n {location, target},\n );\n if (result.error) {\n throw result.error;\n }\n this.handlePermissionOverwrites(result.data);\n }, id);\n }\n\n await this.overwritesPromises.get(id);\n return this.overwrites.get(id);\n }\n\n public async check(\n permissionNames: (keyof typeof Permissions.list)[],\n location: ChatLocation,\n ): Promise<CheckPermissionsResult> {\n if (! permissionNames.length) {\n throw new Error('Permission names array cannot be empty');\n }\n\n const ownedPermissions = await this.calculatePermissions(location);\n const missing: string[] = [];\n\n permissionNames.forEach(name => {\n if (~ ownedPermissions & Permissions.getByName(name).value) {\n missing.push(name as string);\n }\n });\n\n return {\n ok: missing.length === 0,\n hasAll: missing.length === 0,\n hasAny: missing.length < permissionNames.length,\n missing,\n };\n }\n\n public async calculatePermissions(location: ChatLocation): Promise<number> {\n const room = location.roomId ? (await this.tracker.rooms.get()).get(location.roomId) : null;\n location = {\n spaceId: location.spaceId ?? room?.spaceId,\n roomId: location.roomId,\n topicId: location.topicId,\n };\n\n this.validateLocation(location);\n\n const userId = (await this.tracker.getMe()).id;\n const [spaceMember, roomMember] = await this.fetchMembersOrFail(location);\n const userRoles: string[] = [...(spaceMember?.roles ?? []), ...(roomMember?.roles ?? [])];\n const promises: Promise<PermissionOverwritesValue>[] = [\n // Global user overwrites\n this.getOverwrites({}, { type: 'User', userId }).then(v => v.overwrites),\n ];\n\n if (location.spaceId && (await this.tracker.spaces.get())?.has(location.spaceId)) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId};\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (room) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId, roomId: location.roomId};\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n }\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (location.topicId && (await this.tracker.rooms.getTopics(location.roomId))?.has(location.topicId)) {\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(location, userRoles));\n }\n promises.push(this.getOverwrites(location, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n return this.resolveOverwritesHierarchy(await Promise.all(promises));\n }\n\n private handlePermissionOverwrites(ev: PermissionOverwritesUpdated | PermissionOverwrites): void {\n this.overwrites.set([getOvIdByObject(ev), ev]);\n this.emit('change');\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.id}));\n this.overwritesPromises.forget(...ids);\n }\n\n private async handleRoomDeleted(ev: RoomDeleted | RoomLeft): Promise<void> {\n const room = (await this.tracker.rooms.get()).get(ev.id);\n if (room) {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: room.spaceId, roomId: room.id}));\n this.overwritesPromises.forget(...ids);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId(ev.location));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleRoleDeleted(ev: RoleDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.spaceId}, { type: 'Role', roleId: ev.id }));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in space could potentially have changed\n this.emit('change');\n }\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in room could potentially have changed\n this.emit('change');\n }\n }\n\n /**\n * @return Matched and deleted ids\n */\n private deleteOverwritesByIdPrefix(prefix: string): string[] {\n const ids: string[] = [];\n this.overwrites.items.forEach((overwrites) => {\n const id = getOvIdByObject(overwrites);\n if (id.startsWith(prefix)) {\n ids.push(id);\n this.overwrites.delete(id);\n }\n });\n return ids;\n }\n\n private async collectRoleOverwrites(\n location: ChatLocation,\n userRoles: string[],\n ): Promise<PermissionOverwritesValue> {\n const roleOverwrites = await Promise.all(userRoles.map(\n roleId => this.getOverwrites(location, { type: 'Role', roleId }),\n ));\n\n return this.resolveOverwritesFromRolesByOrder(location.spaceId, roleOverwrites);\n }\n\n private async resolveOverwritesFromRolesByOrder(\n spaceId: string,\n overwrites: PermissionOverwrites[],\n ): Promise<PermissionOverwritesValue> {\n let allows = 0, denies = 0;\n const roles = await this.tracker.spaces.getRoles(spaceId);\n const sortedOverwrites = overwrites.sort(\n (a, b) =>\n roles.get(a.target.roleId).priority - roles.get(b.target.roleId).priority\n );\n\n // Max length of bit word\n const permissionsLength = overwrites.reduce(\n (previousValue: number, currentValue: PermissionOverwrites) =>\n Math.max(\n previousValue,\n currentValue.overwrites.allow?.toString(2).length ?? 0,\n currentValue.overwrites.deny?.toString(2).length ?? 0,\n ),\n 0,\n );\n\n sortedOverwrites.forEach(overwriteEvent => {\n const overwrites = overwriteEvent.overwrites;\n const revDecDenies = overwrites.deny?.toString(2).split('').reverse().join('') ?? '';\n const revDecAllows = overwrites.allow?.toString(2).split('').reverse().join('') ?? '';\n\n for (let i = 0; i < permissionsLength; i++) {\n const deny = parseInt(revDecDenies[i] ?? '0');\n const allow = parseInt(revDecAllows[i] ?? '0');\n\n if (deny) {\n denies |= 1 << i;\n }\n\n if (allow) {\n allows |= 1 << i;\n }\n }\n });\n\n return {allow: allows, deny: denies};\n }\n\n private resolveOverwritesHierarchy(permissionOverwritesValues: PermissionOverwritesValue[]): number {\n let result = 0;\n\n for (const value of permissionOverwritesValues) {\n if (value.allow & Permissions.getByName('Root').value) {\n return this.getRootAccessValue();\n }\n\n result = (result & ~value.deny) | value.allow;\n }\n\n return result;\n }\n\n private getRootAccessValue(): number {\n let result = 0;\n\n for (const name of Permissions.getNames()) {\n result |= Permissions.getByName(name).value;\n }\n\n return result;\n }\n\n private async fetchMembersOrFail(location: ChatLocation): Promise<[SpaceMember | null, RoomMember | null]> {\n const results = await Promise.all([\n location.spaceId ? this.tracker.spaces.getMe(location.spaceId) : null,\n location.roomId ? this.tracker.rooms.getMe(location.roomId) : null,\n ]);\n\n const spaceFail = location.spaceId && ! results[0];\n const roomFail = location.roomId && ! results[1];\n\n if (spaceFail || roomFail) {\n const layer = spaceFail ? `space (${location.spaceId})` : `room (${location.roomId})`;\n throw new Error(`Attempting to calculate permissions for a ${layer} that the user does not belong to`);\n }\n\n return results;\n }\n\n private validateLocation(location: ChatLocation): void {\n if (location.topicId && ! location.roomId) {\n throw new Error('Corrupted arguments hierarchy');\n }\n }\n\n private handleSession(ev: Session): void {\n this.overwrites.deleteAll();\n this.overwritesPromises.forgetAll();\n }\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<{ change: User }>();\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\";\nimport {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ChatStateTracker} from \"./state-tracker/ChatStateTracker\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebSocketClientOptions {\n url: string;\n token: string;\n connectingTimeoutMs?: number;\n awaitQueueSendDelayMs?: number;\n stateTracking?: boolean;\n queryParams?: Record<string, string>;\n /**\n * Ping/pong configuration, enabled by default.\n */\n ping?: {\n enabled?: boolean;\n /**\n * Time without activity after which a ping will be sent. Default is 10 seconds.\n */\n noActivityTimeoutMs?: number;\n /**\n * Time to wait for a pong response before considering the connection dead. Default is 2 seconds.\n */\n pongBackTimeoutMs?: number;\n },\n}\n\nenum WebSocketChatClientEvent {\n connect = 'connect',\n disconnect = 'disconnect',\n message = 'message',\n error = 'error',\n}\n\ntype WebSocketEventMap = EventsMap & {\n [WebSocketChatClientEvent.connect]: void;\n [WebSocketChatClientEvent.disconnect]: boolean;\n [WebSocketChatClientEvent.message]: Envelope;\n [WebSocketChatClientEvent.error]: Error;\n};\n\nexport class WebSocketChatClient extends AbstractChatClient<Pick<WebSocketEventMap, keyof WebSocketEventMap>> implements ObservableInterface {\n public readonly Event = WebSocketChatClientEvent;\n public readonly state?: ChatStateTracker;\n\n protected ws: WebSocket|null = null;\n protected sendQueue: Envelope[] = [];\n protected connectingTimeoutId: any;\n protected authenticated: boolean;\n protected authenticatedResolvers: [() => void, (error: Error) => void];\n protected pingMonitorInterval?: NodeJS.Timeout;\n protected inFlightPingTimeout: NodeJS.Timeout;\n protected lastReceivedMessageAt?: number;\n\n public constructor(private readonly options: WebSocketClientOptions) {\n super();\n if (this.options.stateTracking ?? true) {\n this.state = new ChatStateTracker(this);\n }\n\n options.ping ??= {};\n options.ping.enabled ??= true;\n options.ping.noActivityTimeoutMs ??= 15000;\n options.ping.pongBackTimeoutMs ??= 5000;\n }\n\n public async connect(): Promise<void> {\n if (this.isOpenWsState() || this.isConnectingWsState()) {\n return;\n }\n\n const params = new URLSearchParams(this.options.queryParams ?? {});\n params.set('token', this.options.token);\n\n this.ws = new WebSocket(`${this.options.url}?${params}`);\n this.ws.onclose = ev => this.onClose(ev);\n this.ws.onmessage = ev => this.onMessage(ev);\n this.connectingTimeoutId = setTimeout(\n () => this.triggerConnectionTimeout(),\n this.options.connectingTimeoutMs ?? 10000\n );\n this.authenticated = false;\n return new Promise((...args) => this.authenticatedResolvers = args);\n }\n\n public disconnect(): void {\n this.sendQueue = [];\n this.ws?.close(1000); // Normal closure\n this.ws = null;\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope<CommandRequest<CommandType>>(commandType, commandData);\n const promise = this.createPromiseFromCommandEnvelope<CommandType>(envelope);\n\n if (this.isConnectingWsState() || !this.authenticated && this.isOpenWsState()) {\n this.sendQueue.push(envelope);\n return promise;\n }\n\n this.sendEnvelope(envelope);\n return promise;\n }\n\n public get isReady(): boolean {\n return this.isOpenWsState() && this.authenticated;\n }\n\n private sendEnvelope(envelope: Envelope): void {\n if (this.isReady) {\n this.ws.send(JSON.stringify(envelope));\n return;\n }\n\n this.handleEnvelopeSendError(\n envelope,\n new Error(`Cannot send - client is not ready (state=${this.ws?.readyState ?? '[no connection]'}; authenticated=${this.authenticated})`)\n );\n }\n\n private onMessage(event: MessageEvent): void {\n this.lastReceivedMessageAt = Date.now();\n const envelope: Envelope = JSON.parse(event.data);\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n\n // Login successfully\n if (!this.authenticated) {\n const isAuthenticated = envelope.type !== 'Bye';\n this.authenticated = isAuthenticated;\n if (isAuthenticated) {\n this.startConnectionMonitor();\n this.authenticatedResolvers[0]();\n this.emit(this.Event.connect);\n this.sendFromQueue();\n } else {\n this.authenticatedResolvers[1](envelope.data);\n }\n }\n }\n\n private onClose(event: CloseEvent): void {\n this.stopConnectionMonitor();\n clearTimeout(this.connectingTimeoutId);\n const reconnect = event.code !== 1000; // Connection was closed because of error\n if (reconnect) {\n void this.connect();\n }\n this.emit(this.Event.disconnect, reconnect);\n }\n\n private sendFromQueue(): void {\n // Send awaiting data to server\n let lastDelay = 0;\n for (const dataIndex in this.sendQueue) {\n const envelope = this.sendQueue[dataIndex];\n setTimeout(() => this.sendEnvelope(envelope), lastDelay);\n lastDelay += this.options.awaitQueueSendDelayMs ?? 500;\n }\n this.sendQueue = [];\n clearTimeout(this.connectingTimeoutId);\n }\n\n private triggerConnectionTimeout(): void {\n this.disconnect();\n this.emit(this.Event.error, new Error('Connection timeout'));\n }\n\n private isConnectingWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.CONNECTING;\n }\n\n private isOpenWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.OPEN;\n }\n\n private startConnectionMonitor(): void {\n if (!this.options.ping!.enabled) {\n return;\n }\n\n this.lastReceivedMessageAt = Date.now();\n\n this.pingMonitorInterval = setInterval(async () => {\n if (!this.isReady || this.inFlightPingTimeout) {\n return;\n }\n\n if ((Date.now() - this.lastReceivedMessageAt) < this.options.ping!.noActivityTimeoutMs) {\n return;\n }\n\n this.inFlightPingTimeout = setTimeout(() => {\n this.inFlightPingTimeout = undefined;\n this.ws.close(3000); // Service Restart (reconnect)\n }, this.options.ping.pongBackTimeoutMs);\n\n this.send('Ping', {}).then(() => {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n });\n }, 1000);\n }\n\n private stopConnectionMonitor(): void {\n if (this.inFlightPingTimeout) {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n }\n if (this.pingMonitorInterval) {\n clearInterval(this.pingMonitorInterval);\n this.pingMonitorInterval = undefined;\n }\n }\n}","import {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ObservableInterface} from \"./EventTarget\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebApiChatClientOptions {\n url: string;\n token: string;\n attemptsToSend?: number;\n attemptDelayMs?: number;\n queryParams?: Record<string, string>;\n}\n\nenum WebApiChatClientEvent {\n message = 'message',\n error = 'error',\n destroy = 'destroy',\n}\n\ntype WebApiEventMap = EventsMap & {\n [WebApiChatClientEvent.message]: Envelope;\n [WebApiChatClientEvent.error]: Error;\n [WebApiChatClientEvent.destroy]: boolean;\n};\n\nexport class WebApiChatClient extends AbstractChatClient<Pick<WebApiEventMap, keyof WebApiEventMap>> implements ObservableInterface {\n public readonly Event = WebApiChatClientEvent;\n\n protected sendStack: {data: any, attempts: number, lastTimeoutId: any}[];\n\n public constructor(private readonly options: WebApiChatClientOptions) {\n super();\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope(commandType, commandData);\n this.sendStack.push({data: envelope, attempts: 0, lastTimeoutId: null});\n this.makeApiCall(this.sendStack.length - 1);\n return this.createPromiseFromCommandEnvelope(envelope);\n }\n\n public destroy(): void {\n // Cancel all awaiting requests\n this.sendStack.forEach(item => {\n if (item.lastTimeoutId) {\n clearTimeout(item.lastTimeoutId);\n }\n this.awaitingResponse.delete(item.data.ref);\n });\n this.sendStack = [];\n this.emit(this.Event.destroy, false);\n }\n\n protected async onMessage(reqId: number, response: Response): Promise<void> {\n this.sendStack.splice(reqId, 1);\n const envelope: Envelope = await response.json();\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n }\n\n protected onError(reqId: number, body: string): void {\n if (this.sendStack[reqId].attempts >= (this.options.attemptsToSend ?? 10)) {\n this.sendStack.splice(reqId, 1);\n this.handleEnvelopeSendError(this.sendStack[reqId].data, new Error(\n `Cannot send ${body}; aborting after reaching the maximum connection errors`\n ));\n return;\n }\n this.sendStack[reqId].lastTimeoutId = setTimeout(\n () => this.makeApiCall(reqId),\n this.options.attemptDelayMs ?? 3000\n );\n }\n\n protected makeApiCall(reqId: number): void {\n this.sendStack[reqId].attempts++;\n const bodyJson = JSON.stringify(this.sendStack[reqId].data);\n const headers: any = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n };\n\n headers.Authorization = `Bearer ${this.options.token}`;\n\n const params = new URLSearchParams(this.options.queryParams ?? {});\n const url = `${this.options.url}${params ? '?' + params : ''}`;\n\n fetch(url, {\n headers,\n body: bodyJson,\n method: 'POST',\n })\n .then(response => this.onMessage(reqId, response))\n .catch(() => this.onError(reqId, bodyJson));\n }\n}","export interface RestClientOptions {\n url?: string;\n token: string;\n}\n\nexport interface RestClientResponse<T> {\n ok: boolean;\n status: number;\n data: T;\n}\n\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n\nexport abstract class AbstractRestClient {\n protected abstract defaultUrl: string;\n\n public constructor(\n private readonly options: RestClientOptions,\n ) {}\n\n protected async send<ResponseT = any>(\n method: HttpMethod,\n uri: string,\n data: any = undefined,\n additionalHeaders: Record<string, string> = {},\n ): Promise<RestClientResponse<ResponseT>> {\n let url = this.getUrl(uri);\n let body = undefined;\n\n if (data) {\n if (['GET', 'DELETE'].includes(method)) {\n url += '?' + new URLSearchParams(data).toString()\n } else {\n body = JSON.stringify(data);\n }\n }\n\n const headers = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...additionalHeaders,\n ...this.getAuthHeaders(),\n };\n\n const result = await fetch(url, {method, body, headers});\n\n return this.convertFetchResponse(result);\n }\n\n protected getAuthHeaders(): any {\n const headers = {} as any;\n\n if (this.options.token) {\n headers.Authorization = `Bearer ${this.options.token}`;\n }\n\n return headers;\n }\n\n protected getUrl(uri: string): string {\n return this.removeEndingSlash(this.options.url ?? this.defaultUrl) + '/' + this.removeStartingSlash(uri);\n }\n\n protected async convertFetchResponse<T>(result: Response): Promise<RestClientResponse<T>> {\n return {\n ok: result.ok,\n status: result.status,\n data: result.headers.get('content-type')?.includes('json') ? await result.json() : await result.text(),\n };\n }\n\n private removeStartingSlash(text: string): string {\n return text.replace(/^\\/+/, '');\n }\n\n private removeEndingSlash(text: string): string {\n return text.replace(/\\/+$/, '');\n }\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\";\nimport {WebApiChatClient} from \"./WebApiChatClient\";\nimport {\n IndexedCollection,\n IndexedObjectCollection,\n ObservableIndexedCollection,\n ObservableIndexedObjectCollection\n} from \"./IndexedObjectCollection\";\nimport {FilesClient, File} from \"./FilesClient\";\nimport { Permissions, PermissionDefinition, Layer } from \"./Permissions\";\nimport * as ChatTypes from './types/src';\nimport {extractUserFromMember} from \"./state-tracker/functions\";\nimport {AbstractRestClient} from \"./AbstractRestClient\";\n\nexport {\n IndexedCollection, ObservableIndexedCollection,\n IndexedObjectCollection, ObservableIndexedObjectCollection,\n Permissions, PermissionDefinition, Layer,\n WebSocketChatClient, WebApiChatClient,\n FilesClient,\n AbstractRestClient,\n extractUserFromMember,\n};\n\nexport type {\n ChatTypes,\n File,\n};"],"names":["EventTarget","_classCallCheck","_defineProperty","Map","_createClass","key","value","on","eventName","handler","addHandler","events","once","onceEvents","off","_this$events$get","_this$events$get2","index","get","indexOf","undefined","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","createEnvelope","type","data","ref","sentCounter","toString","createPromiseFromCommandEnvelope","envelope","_this2","Promise","_len2","_key2","awaitingResponse","handleIncomingEnvelope","has","isError","error","handleEnvelopeSendError","IndexedCollection","items","apply","_toConsumableArray","_items","size","_i","item","id","delete","ids","_i2","_ids","deleteAll","clear","findBy","field","valueToFind","limit","Infinity","result","_iterator","_createForOfIteratorHelper","entries","_step","s","n","done","_step$value","_slicedToArray","err","e","f","createMirror","copy","IndexedObjectCollection","from","values","_this$_items","_len3","_key3","getId","getAt","_this$_items2","_iterator2","_step2","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","_superPropGet","setItems","_len5","_key5","deletedItems","keys","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","_this7","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","retainRatio","fetchLimit","lastFetchCount","oldestId","internalState","LATEST","includes","state","OLDEST","_resetToLatest","_callee","originalState","_context","fetchLatestItems","addItems","emitChangeWithDiff","resetToLatest","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","fetchPrevious","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","fetchNext","_jumpTo","_callee4","_context4","fetchItemsAround","jumpTo","_x","_refreshFetchedState","_callee5","_t","_context5","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","itemChanged","highWatermark","lowWatermark","Math","floor","slice","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","traverseLock","client","ev","handleNewMessage","handleMessagesRedacted","_setTraverseLock","_callee6","lock","_context6","setTraverseLock","_x2","_resetToLatest2","_callee7","_context7","_fetchNext2","_callee8","_context8","_fetchPrevious2","_callee9","_context9","_jumpTo2","_callee0","_context0","_x3","_updateMessageReference","refTopic","refMessage","_objectSpread","topicRef","_fetchItemsAfter","_callee1","_this$getAt","afterId","_context1","send","location","after","Error","message","messages","_fetchItemsAround","_callee10","_context10","around","_x4","_fetchItemsBefore","_callee11","_this$getAt2","beforeId","_context11","before","_fetchLatestItems","_callee12","_context12","_getTopic","_callee13","_context13","rooms","getTopics","getTopic","_getLatestMessageId","_callee14","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context14","lastMessage","getLatestMessageId","_isLatestItemLoaded","_callee15","lastMessageId","_context15","_handleNewMessage","_callee16","_context16","_x5","_handleMessagesRedacted","_callee17","refTopicIds","_context17","filter","msg","_x6","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","peek","topic","_args","historyWindows","getMessagesWindow","_handleRoomUpdated","_Array$from","_Array$from$_i","window","historyWindow","deletedTopicIds","_this2$tracker$rooms","_deleteTopicsFromRoom","refHistoryWindow","history","mode","MessagesManager","handleSession","handleRoomJoin","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","getRoomHistory","_resolveLastMessage2","_result$data","roomHistory","_resolveLastMessage","createHistoryForNewRoom","FollowedTopicsManager","handleFollowedTopicUpdated","handleTopicFollowed","_cacheForSpace","spaceId","roomIds","isAlreadyCached","spaceRegistryKey","spaces","every","followedTopics","followedTopicsPromises","setFollowedTopicsArray","cacheForSpace","_getForRoom","getForRoom","_ackRoom","collection","followedTopic","isUnread","ackRoom","_summarize","cacheKey","targetTopicId","mentionCount","_iterator3","_step3","_topic$mentionCount","summariesCache","summarize","_deleteByTopicIds","_this$followedTopics$","topicIds","invalidateUnreadSummaries","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","clearRoomFollowedTopicsStructures","_handleNewTopic","_this$followedTopics$3","_iterator4","_step4","startsWith","_iterator5","_step5","invalidateUnreadSummariesForRooms","roomIdsSet","Set","_iterator6","_step6","parts","split","_updateLocallyFollowedTopicOnNewMessage","roomFollowedTopics","me","isMe","update","_member$spaceMember$r","_member$spaceMember","_member$roles","member","roleIds","mentionHandlers","mentionExists","getMe","author","user","missed","lastAckMessageId","spaceMember","roles","some","content","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_this6$followedTopics","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMemberJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","getMembers","_getMe","userId","list","find","_member$user$id","_member$user","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","_this3$topics$get2","_this$topics$get","deleteRoom","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get2","_this$followedTopics","deleteRoomsBySpaceId","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","newMember","_room$defaultTopic","addJoinedRoomTopics","_this$topics$get3","addJoinedRooms","_this$topics$get4","newRoom","_this$list2","_rooms","recipients","customColor","customNick","extras","_member$user$id2","_member$user2","_this$list3","newRooms","_room$recipients","_room$defaultTopic2","newTopic","messageCount","max","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","ManageRoles","CreateTopics","ManageTopic","Topic","ManageMemberProfiles","ManageMemberRoles","CreateMessages","ManagePermissions","CreateRooms","ManageRoom","CreateEmoticons","ManageEmoticons","ManageBans","Kick","ChangeOwnNick","ChangeOwnColor","RedactMessages","getOvId","target","roleId","join","getOvIdByObject","overwrites","PermissionsManager","handlePermissionOverwrites","_getOverwrites","validateLocation","overwritesPromises","getOverwrites","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","check","_calculatePermissions","_location$spaceId","_spaceMember$roles","_roomMember$roles","_yield$this$tracker$s","_yield$this$tracker$r","_yield$this$fetchMemb","_yield$this$fetchMemb2","userRoles","filterLocation","_filterLocation","_t6","_t7","_t8","_t9","_t0","fetchMembersOrFail","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me","_this$tracker$me2","prefix","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_x7","_x8","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","sort","b","reduce","previousValue","currentValue","_currentValue$overwri","_currentValue$overwri2","_currentValue$overwri3","_currentValue$overwri4","allow","deny","overwriteEvent","_overwrites$deny$toSt","_overwrites$deny","_overwrites$allow$toS","_overwrites$allow","revDecDenies","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","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","AbstractRestClient","uri","additionalHeaders","getUrl","getAuthHeaders","convertFetchResponse","_this$options$url","removeEndingSlash","defaultUrl","removeStartingSlash","_convertFetchResponse","_result$headers$get","status","text","replace","FilesClient","_AbstractRestClient","_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/FollowedTopicsManager.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/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;\ntype HandlersMap = Map<string, EventHandler<any>[]>;\ntype EventMapLike = Record<string, any>;\ntype KnownEventNames<EventT> = EventT extends EventMapLike ? keyof EventT & string : string;\ntype EventPayload<EventT, EventName extends string = never> = EventT extends EventMapLike\n ? [EventName] extends [never]\n ? EventT[keyof EventT]\n : EventName extends keyof EventT\n ? EventT[EventName]\n : EventT[keyof EventT]\n : EventT;\n\nexport type ChangeEventMap<Payload = void> = { change: Payload };\n\nexport interface ObservableInterface<EventT = any> {\n on<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n on(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n once<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n once(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n off<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n off(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n}\n\nexport class EventTarget<EventMapT extends Record<string, any> = Record<string, any>> implements ObservableInterface<EventMapT> {\n protected events: HandlersMap = new Map<string, EventHandler<any>[]>();\n protected onceEvents: HandlersMap = new Map<string, EventHandler<any>[]>();\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public on(eventName: string, handler: EventHandler<unknown>): this;\n public on(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.events, eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public once(eventName: string, handler: EventHandler<unknown>): this;\n public once(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.onceEvents, eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public off(eventName: string, handler: EventHandler<unknown>): this;\n public off(eventName: string, handler: EventHandler<any>): this {\n const index = this.events.get(eventName)?.indexOf(handler);\n if (index === undefined || index < 0) {\n return this;\n }\n this.events.get(eventName)?.splice(index, 1);\n return this;\n }\n\n public emit<K extends keyof EventMapT & string>(eventName: K, event: EventMapT[K]): this;\n public emit(eventName: string, event?: unknown): this;\n public emit(eventName: string, event?: any): this {\n this.callHandlers(this.events, eventName, event);\n this.callHandlers(this.onceEvents, eventName, event);\n this.onceEvents.delete(eventName);\n return this;\n }\n\n private addHandler(map: HandlersMap, eventName: string, handler: EventHandler<any>): void {\n const handlers = map.get(eventName) ?? [];\n handlers.push(handler);\n map.set(eventName, handlers);\n }\n\n private callHandlers(map: HandlersMap, eventName: string, event: unknown): void {\n map.get(eventName)?.forEach(callback => callback(event));\n }\n}","import {\n Bye,\n GetSession,\n JoinSpace,\n Session,\n SpaceJoined,\n Error as ErrorType,\n SpaceLeft,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMemberUpdated,\n SpaceDeleted,\n SpaceMembers,\n SpaceRooms,\n NewRole,\n RoomDeleted,\n RoomJoined,\n RoomLeft,\n RoomMemberLeft,\n RoomMemberJoined,\n RoomMembers,\n NewRoom,\n NewTopic,\n TopicDeleted,\n NewMessage,\n GetPermissionOverwrites,\n GetComputedPermissions,\n LeaveSpace,\n CreateSpace,\n DeleteSpace,\n GetSpaceMembers,\n GetSpaceRooms,\n CreateRole,\n DeleteRole,\n AssignRole,\n DeassignRole,\n SetPermissionOverwrites,\n JoinRoom,\n LeaveRoom,\n CreateRoom,\n DeleteRoom,\n GetRoomMembers,\n CreateTopic,\n DeleteTopic,\n CreateMessage,\n Envelope,\n PermissionOverwrites,\n PermissionOverwritesUpdated,\n RoomMemberUpdated,\n UpdateRole,\n RoleUpdated,\n Ack,\n UserUpdated,\n UpdateRoom,\n RoomUpdated,\n UpdateSpace,\n SpaceUpdated,\n PermissionOverwriteTargets,\n GetPermissionOverwriteTargets,\n Owners,\n Ok,\n GetOwners,\n CreateOwner,\n RoleDeleted,\n FollowedTopicUpdated,\n TopicFollowed,\n FollowedTopics,\n FollowTopic,\n UpdateFollowedTopic,\n GetFollowedTopics,\n Messages,\n GetMessages,\n Topics,\n GetTopics,\n TopicUpdated,\n UpdateTopic,\n GetDiscoverableSpaces,\n DiscoverableSpaces,\n CreateEmoticon,\n DeleteEmoticon,\n GetEmoticons,\n Emoticons,\n EmoticonDeleted,\n NewEmoticon,\n Bans,\n GetBans,\n Ban,\n Unban,\n Kick,\n ClientData,\n GetClientData,\n SetClientData,\n GetRoomSummary,\n GetSpaceSummary,\n RoomSummaryEvent,\n SpaceSummaryEvent,\n UpdateSpaceMember,\n Relationships,\n RelationshipDeleted,\n NewRelationship,\n DeleteRelationship,\n CreateRelationship,\n RoomSummaryUpdated,\n Pong,\n Ping,\n RedactMessages,\n MessagesRedacted,\n ReportAbuse,\n UpdateRoomMember,\n GetRelationships,\n GetUserInfo,\n UserInfo,\n SetSessionData,\n SessionData,\n GetSessionData,\n UnfollowTopic,\n TopicUnfollowed,\n} from \"./types/src\";\nimport {EventTarget} from \"./EventTarget\";\n\ntype ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];\ntype ExtraEventMap = Record<string, any>;\n\ntype CommandDefinition<RequestT, ResponseT> = {\n request: RequestT;\n response: ResponseT;\n};\n\nexport abstract class AbstractChatClient<AdditionalEvents extends ExtraEventMap = {}> extends EventTarget<EventsMap & AdditionalEvents> {\n protected awaitingResponse: Map<string, ArrayOfPromiseResolvers> = new Map<string, ArrayOfPromiseResolvers>();\n protected sentCounter: number = 0;\n\n public abstract send<CommandType extends keyof CommandsMap>\n (commandType: CommandType, commandData: CommandRequest<CommandType>): Promise<CommandResult<CommandResponse<CommandType>>>;\n\n protected createEnvelope<CommandT>(type: string, data: CommandT): Envelope<CommandT> {\n return {\n type, data, ref: (++this.sentCounter).toString()\n };\n }\n\n protected createPromiseFromCommandEnvelope\n <CommandT extends keyof CommandsMap>(envelope: Envelope<CommandRequest<CommandT>>):\n Promise<CommandResult<CommandResponse<CommandT>>> {\n return new Promise((...args) =>\n this.awaitingResponse.set(envelope.ref as string, args));\n }\n\n protected handleIncomingEnvelope(envelope: Envelope): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n const isError = envelope.type === 'Error';\n this.awaitingResponse.get(envelope.ref)[0]({\n data: isError ? null : envelope.data,\n error: isError ? envelope.data : null,\n } as CommandResult<any>);\n this.awaitingResponse.delete(envelope.ref);\n }\n\n protected handleEnvelopeSendError(envelope: Envelope, error: any): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n this.awaitingResponse.get(envelope.ref)[1](error);\n this.awaitingResponse.delete(envelope.ref);\n }\n}\n\nexport type CommandResult<ResultT> = {data?: ResultT, error?: ErrorType};\nexport type CommandRequest<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['request'];\nexport type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['response'];\n\n /**\n * Map of incoming events.\n */\n export type EventsMap = {\n // General Events\n Bye: Bye,\n Ok: Ok,\n Error: ErrorType,\n Session: Session,\n Permissions: Permissions,\n PermissionOverwrites: PermissionOverwrites,\n PermissionOverwritesUpdated: PermissionOverwritesUpdated,\n PermissionOverwriteTargets: PermissionOverwriteTargets,\n Owners: Owners,\n NewEmoticon: NewEmoticon,\n EmoticonDeleted: EmoticonDeleted,\n Emoticons: Emoticons,\n Bans: Bans,\n ClientData: ClientData,\n SessionData: SessionData,\n NewRelationship: NewRelationship,\n RelationshipDeleted: RelationshipDeleted,\n Relationships: Relationships,\n Pong: Pong,\n UserInfo: UserInfo,\n // Space events\n DiscoverableSpaces: DiscoverableSpaces,\n SpaceJoined: SpaceJoined,\n SpaceLeft: SpaceLeft,\n SpaceMemberJoined: SpaceMemberJoined,\n SpaceMemberLeft: SpaceMemberLeft,\n SpaceMemberUpdated: SpaceMemberUpdated,\n SpaceUpdated: SpaceUpdated,\n SpaceDeleted: SpaceDeleted,\n SpaceMembers: SpaceMembers,\n SpaceRooms: SpaceRooms,\n NewRole: NewRole,\n RoleDeleted: RoleDeleted,\n RoleUpdated: RoleUpdated,\n SpaceSummaryEvent: SpaceSummaryEvent,\n // Room events\n RoomJoined: RoomJoined,\n RoomLeft: RoomLeft,\n RoomMemberJoined: RoomMemberJoined,\n RoomMemberLeft: RoomMemberLeft,\n RoomMemberUpdated: RoomMemberUpdated,\n RoomMembers: RoomMembers,\n NewRoom: NewRoom,\n RoomDeleted: RoomDeleted,\n RoomUpdated: RoomUpdated,\n RoomSummaryEvent: RoomSummaryEvent,\n RoomSummaryUpdated: RoomSummaryUpdated,\n // Topic events\n NewTopic: NewTopic,\n TopicDeleted: TopicDeleted,\n NewMessage: NewMessage,\n UserUpdated: UserUpdated,\n TopicFollowed: TopicFollowed,\n TopicUnfollowed: TopicUnfollowed,\n FollowedTopics: FollowedTopics,\n FollowedTopicUpdated: FollowedTopicUpdated,\n Messages: Messages,\n Topics: Topics,\n TopicUpdated: TopicUpdated,\n MessagesRedacted: MessagesRedacted,\n};\n\n/**\n * Map of commands and their corresponding events.\n */\nexport type CommandsMap = {\n // General commands\n GetSession: CommandDefinition<GetSession, EventsMap['Session']>,\n SetPermissionOverwrites: CommandDefinition<SetPermissionOverwrites, EventsMap['PermissionOverwritesUpdated']>,\n GetPermissionOverwrites: CommandDefinition<GetPermissionOverwrites, EventsMap['PermissionOverwrites']>,\n GetComputedPermissions: CommandDefinition<GetComputedPermissions, EventsMap['Permissions']>,\n GetPermissionOverwriteTargets: CommandDefinition<GetPermissionOverwriteTargets, EventsMap['PermissionOverwriteTargets']>,\n GetOwners: CommandDefinition<GetOwners, EventsMap['Owners']>,\n CreateOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n DeleteOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n CreateEmoticon: CommandDefinition<CreateEmoticon, EventsMap['NewEmoticon']>,\n DeleteEmoticon: CommandDefinition<DeleteEmoticon, EventsMap['EmoticonDeleted']>,\n GetEmoticons: CommandDefinition<GetEmoticons, EventsMap['Emoticons']>,\n GetBans: CommandDefinition<GetBans, EventsMap['Bans']>,\n Ban: CommandDefinition<Ban, EventsMap['Ok']>,\n Unban: CommandDefinition<Unban, EventsMap['Ok']>,\n Kick: CommandDefinition<Kick, EventsMap['Ok']>,\n GetClientData: CommandDefinition<GetClientData, EventsMap['ClientData']>,\n SetClientData: CommandDefinition<SetClientData, EventsMap['Ok']>,\n DeleteRelationship: CommandDefinition<DeleteRelationship, EventsMap['RelationshipDeleted']>,\n CreateRelationship: CommandDefinition<CreateRelationship, EventsMap['NewRelationship']>,\n GetRelationships: CommandDefinition<GetRelationships, EventsMap['Relationships']>,\n Ping: CommandDefinition<Ping, EventsMap['Pong']>,\n ReportAbuse: CommandDefinition<ReportAbuse, EventsMap['Ok']>,\n GetUserInfo: CommandDefinition<GetUserInfo, EventsMap['UserInfo']>,\n GetSessionData: CommandDefinition<GetSessionData, EventsMap['SessionData']>,\n SetSessionData: CommandDefinition<SetSessionData, EventsMap['Ok']>,\n // Space commands\n GetDiscoverableSpaces: CommandDefinition<GetDiscoverableSpaces, EventsMap['DiscoverableSpaces']>,\n JoinSpace: CommandDefinition<JoinSpace, EventsMap['SpaceJoined']>,\n LeaveSpace: CommandDefinition<LeaveSpace, EventsMap['SpaceLeft']>,\n CreateSpace: CommandDefinition<CreateSpace, EventsMap['SpaceJoined']>,\n UpdateSpace: CommandDefinition<UpdateSpace, EventsMap['SpaceUpdated']>,\n DeleteSpace: CommandDefinition<DeleteSpace, EventsMap['SpaceDeleted']>,\n GetSpaceMembers: CommandDefinition<GetSpaceMembers, EventsMap['SpaceMembers']>,\n GetSpaceRooms: CommandDefinition<GetSpaceRooms, EventsMap['SpaceRooms']>,\n CreateRole: CommandDefinition<CreateRole, EventsMap['NewRole']>,\n DeleteRole: CommandDefinition<DeleteRole, EventsMap['RoleDeleted']>,\n UpdateRole: CommandDefinition<UpdateRole, EventsMap['RoleUpdated']>,\n AssignRole: CommandDefinition<AssignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n DeassignRole: CommandDefinition<DeassignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n GetSpaceSummary: CommandDefinition<GetSpaceSummary, EventsMap['SpaceSummaryEvent']>,\n UpdateSpaceMember: CommandDefinition<UpdateSpaceMember, EventsMap['SpaceMemberUpdated']>,\n // Room commands\n JoinRoom: CommandDefinition<JoinRoom, EventsMap['RoomJoined']>,\n LeaveRoom: CommandDefinition<LeaveRoom, EventsMap['RoomLeft']>,\n CreateRoom: CommandDefinition<CreateRoom, EventsMap['RoomJoined']>,\n DeleteRoom: CommandDefinition<DeleteRoom, EventsMap['RoomDeleted']>,\n UpdateRoom: CommandDefinition<UpdateRoom, EventsMap['RoomUpdated']>,\n GetRoomMembers: CommandDefinition<GetRoomMembers, EventsMap['RoomMembers']>,\n GetRoomSummary: CommandDefinition<GetRoomSummary, EventsMap['RoomSummaryEvent']>,\n UpdateRoomMember: CommandDefinition<UpdateRoomMember, EventsMap['RoomMemberUpdated']>,\n // Topic commands\n CreateTopic: CommandDefinition<CreateTopic, EventsMap['NewTopic']>,\n DeleteTopic: CommandDefinition<DeleteTopic, EventsMap['TopicDeleted']>,\n CreateMessage: CommandDefinition<CreateMessage, EventsMap['NewMessage']>,\n Ack: CommandDefinition<Ack, EventsMap['FollowedTopicUpdated'] | EventsMap['Ok']>,\n FollowTopic: CommandDefinition<FollowTopic, EventsMap['TopicFollowed']>,\n UnfollowTopic: CommandDefinition<UnfollowTopic, EventsMap['TopicUnfollowed']>,\n UpdateFollowedTopic: CommandDefinition<UpdateFollowedTopic, EventsMap['FollowedTopicUpdated']>,\n GetFollowedTopics: CommandDefinition<GetFollowedTopics, EventsMap['FollowedTopics']>,\n GetMessages: CommandDefinition<GetMessages, EventsMap['Messages']>,\n GetTopics: CommandDefinition<GetTopics, EventsMap['Topics']>,\n UpdateTopic: CommandDefinition<UpdateTopic, EventsMap['TopicUpdated']>,\n RedactMessages: CommandDefinition<RedactMessages, EventsMap['MessagesRedacted']>,\n }\n","import {EventHandler, EventTarget, ObservableInterface} from \"./EventTarget\";\n\nexport class IndexedCollection<KeyT, ValueT> {\n protected _items: Map<KeyT, ValueT> = new Map();\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n this.set(...items);\n }\n\n public get items(): Map<KeyT, ValueT> {\n return this._items;\n }\n\n public get length(): number {\n return this._items.size;\n }\n\n public set(...items: [KeyT, ValueT][]): void {\n for (const item of items) {\n this._items.set(item[0], item[1]);\n }\n }\n\n public get(id: KeyT): ValueT | undefined {\n return this.items.get(id);\n }\n\n public has(id: KeyT): boolean {\n return this.items.has(id);\n }\n\n public delete(...ids: KeyT[]): void {\n for (const id of ids) {\n this.items.delete(id);\n }\n }\n\n public deleteAll(): void {\n this.items.clear();\n }\n\n public findBy(field: keyof ValueT, valueToFind: any, limit: number = Infinity): IndexedCollection<KeyT, ValueT> {\n const result = new IndexedCollection<KeyT, ValueT>();\n for (const [key, value] of this.items.entries()) {\n if (result.length >= limit) {\n break;\n }\n if (value[field] === valueToFind) {\n result.set([key, value]);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedCollection<KeyT, ValueT> {\n const copy = new IndexedCollection<KeyT, ValueT>();\n copy._items = this._items;\n return copy;\n }\n}\n\nexport class IndexedObjectCollection<T> {\n protected _items: IndexedCollection<string, T>;\n\n public constructor(\n public readonly id: keyof T | ((item: T) => any),\n items: T[] = [],\n ) {\n this._items = new IndexedCollection<string, T>();\n this.set(...items);\n }\n\n public get items(): T[] {\n return Array.from(this._items.items.values());\n }\n\n public get length(): number {\n return this._items.length;\n }\n\n public set(...items: T[]): void {\n this._items.set(...(items.map(item => [this.getId(item), item] as [string, T])));\n }\n\n public get(id: any): T | undefined {\n return this._items.get(id);\n }\n\n public getAt(index: number): T | undefined {\n return this.items[index];\n }\n\n public has(id: any): boolean {\n return this._items.has(id);\n }\n\n public delete(...ids: any[]): void {\n this._items.delete(...ids);\n }\n\n public deleteAll(): void {\n this._items.deleteAll();\n }\n\n public findBy(field: keyof T, valueToFind: any, limit: number = null): IndexedObjectCollection<T> {\n const result = new IndexedObjectCollection<T>(this.id);\n for (const value of this.items) {\n if (limit && result.length === limit) {\n break;\n }\n if (value[field] === valueToFind) {\n result.set(value);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedObjectCollection<T> {\n const copy = new IndexedObjectCollection<T>(this.id);\n copy._items = this._items;\n return copy;\n }\n\n protected getId(item: T): any {\n return typeof this.id === 'function' ? this.id(item) : item[this.id];\n }\n}\n\nexport type CollectionEventMap<IdType = string> = {\n change: { setItems?: IdType[]; deletedItems?: IdType[] };\n};\n\nexport class ObservableIndexedCollection<\n KeyT,\n ValueT,\n EventMapT extends CollectionEventMap<KeyT> = CollectionEventMap<KeyT>\n> extends IndexedCollection<KeyT, ValueT> implements ObservableInterface<EventMapT> {\n\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n super();\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: [KeyT, ValueT][]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => item[0]) });\n }\n }\n\n public delete(...ids: KeyT[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = Array.from(this._items.keys());\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: Array.from(ids) });\n }\n }\n\n public createMirror(): ObservableIndexedCollection<KeyT, ValueT, EventMapT> {\n const copy = new ObservableIndexedCollection<KeyT, ValueT, EventMapT>();\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\n}\n\nexport class ObservableIndexedObjectCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends IndexedObjectCollection<ItemT> implements ObservableInterface<EventMapT> {\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(\n id: keyof ItemT | ((item: ItemT) => string),\n items: ItemT[] = [],\n ) {\n super(id);\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: ItemT[]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => this.getId(item)) });\n }\n }\n\n public delete(...ids: string[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = this.items.map(item => this.getId(item));\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public createMirror(): ObservableIndexedObjectCollection<ItemT, EventMapT> {\n const copy = new ObservableIndexedObjectCollection<ItemT, EventMapT>(this.id);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\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, MessagesRedacted, NewMessage, Topic} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {CollectionEventMap, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\n\nexport enum WindowState {\n /**\n * The latest messages (those received live) are available in the history window, history has not been fetched.\n */\n LIVE,\n\n /**\n * The latest messages has been fetched and are available in the history window.\n */\n LATEST,\n\n /**\n * The historical messages have been fetched and are available in the history window.\n * Latest messages are not available and will not be available.\n */\n PAST,\n\n /**\n * The oldest messages have been fetched and are available in the history window.\n * Next attempts to fetch previous messages will result with no-op.\n */\n OLDEST,\n}\n\nexport abstract class TraversableRemoteCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends ObservableIndexedObjectCollection<ItemT, EventMapT> {\n /**\n * Current mode od collection window. To change mode, call one of available fetch methods.\n */\n public get state(): WindowState {\n return this.internalState.current;\n }\n\n protected internalState: {\n current: WindowState,\n ongoing?: WindowState,\n limit: number | null, // Acts as High Watermark\n retainRatio: number, // Percentage of limit to keep when trimming\n fetchLimit: number,\n lastFetchCount: number,\n oldestId: string | null,\n } = {\n current: WindowState.LIVE,\n ongoing: undefined,\n limit: 1000,\n retainRatio: 1,\n fetchLimit: 50,\n lastFetchCount: 0,\n oldestId: null,\n };\n\n /**\n * Number of items to fetch per request.\n */\n public get fetchLimit(): number {\n return this.internalState.fetchLimit;\n }\n\n /**\n * Sets number of items to fetch per request.\n */\n public set fetchLimit(value: number) {\n this.internalState.fetchLimit = value;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public get limit(): number | null {\n return this.internalState.limit;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public set limit(value: number | null) {\n this.internalState.limit = value;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public get retainRatio(): number {\n return this.internalState.retainRatio;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public set retainRatio(value: number) {\n this.internalState.retainRatio = value;\n }\n\n public get hasLatest(): boolean {\n return [WindowState.LATEST, WindowState.LIVE].includes(this.state);\n }\n\n public get hasOldest(): boolean {\n return this.state === WindowState.OLDEST\n || this.state === WindowState.LATEST && this.length < this.fetchLimit\n || this.internalState.oldestId !== null && this.has(this.internalState.oldestId);\n }\n\n public abstract createMirror(): TraversableRemoteCollection<ItemT, EventMapT>;\n\n public async resetToLatest(): Promise<void> {\n if (this.internalState.ongoing || this.internalState.current === WindowState.LATEST) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.LATEST;\n\n try {\n result = await this.fetchLatestItems();\n this.internalState.lastFetchCount = result.length;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n this.internalState.current = WindowState.LATEST;\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.ongoing || this.hasOldest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsBefore();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n return this.resetToLatest();\n }\n\n if (! result.length) {\n const firstItem = this.getAt(0);\n this.internalState.oldestId = firstItem ? this.getId(firstItem) : null;\n\n await this.refreshFetchedState();\n\n // LATEST state has priority over OLDEST\n if (this.internalState.current === WindowState.PAST) {\n this.internalState.current = WindowState.OLDEST;\n }\n\n this.emitChangeWithDiff(false, originalState);\n return;\n }\n\n this.addItems(result, 'head');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.ongoing || this.hasLatest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAfter();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n await this.resetToLatest();\n return;\n }\n\n if (result.length) {\n this.addItems(result, 'tail');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n return;\n }\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.ongoing || this._items.has(id)) {\n return;\n }\n\n let result: ItemT[] | null;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAround(id);\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (!result) {\n return;\n }\n\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n this.internalState.current = WindowState.PAST;\n this.emitChangeWithDiff(true, originalState);\n }\n\n protected abstract fetchLatestItems(): Promise<ItemT[]>;\n\n protected abstract fetchItemsBefore(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAfter(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAround(id: string): Promise<ItemT[] | null>;\n\n protected abstract isLatestItemLoaded(): Promise<boolean>;\n\n protected async refreshFetchedState(): Promise<void> {\n this.internalState.current = (await this.isLatestItemLoaded()) ? WindowState.LATEST : WindowState.PAST;\n }\n\n protected addItems(newItems: ItemT[], to: 'head' | 'tail'): void {\n let result;\n\n if (to === 'head') {\n result = this.trimItemsArrayToLimit([...newItems, ...this.items], 'tail');\n }\n\n if (to === 'tail') {\n result = this.trimItemsArrayToLimit([...this.items, ...newItems], 'head');\n }\n\n // Directly calls to prevent event emit.\n this._items.deleteAll();\n this._items.set(...(result.map(item => [this.getId(item), item] as [string, ItemT])));\n }\n\n protected emitChangeWithDiff(itemChanged: boolean, originalState: WindowState): void {\n if (itemChanged || originalState !== this.state) {\n this.eventTarget.emit('change', { setItems: Array.from(this._items.items.keys()) })\n }\n }\n\n /**\n * Return array with messages trimmed using High/Low Watermark strategy.\n */\n private trimItemsArrayToLimit(items: ItemT[], from: 'head' | 'tail'): ItemT[] {\n const highWatermark = this.limit;\n\n if (highWatermark === null || items.length <= highWatermark) {\n return items;\n }\n\n const lowWatermark = Math.floor(highWatermark * this.internalState.retainRatio);\n\n if (from === 'head') {\n return items.slice(-lowWatermark);\n }\n\n if (from === 'tail') {\n return items.slice(0, lowWatermark);\n }\n\n return items;\n }\n}\n\nexport type TopicHistoryWindowEventMap = CollectionEventMap & {\n reftopicsdeleted: string[];\n};\n\nexport class TopicHistoryWindow extends TraversableRemoteCollection<\n Message,\n TopicHistoryWindowEventMap\n> {\n /**\n * Reexported available window modes enum.\n */\n public readonly WindowState: typeof WindowState = WindowState;\n\n declare protected internalState: typeof TraversableRemoteCollection<Message>['prototype']['internalState'] & {\n traverseLock: boolean,\n };\n\n public constructor(\n private roomId: string,\n private topicId: string,\n private tracker: ChatStateTracker,\n bindEvents: boolean = true,\n ) {\n super('id');\n\n this.internalState.traverseLock = false;\n\n if (bindEvents) {\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n }\n }\n\n public createMirror(): TopicHistoryWindow {\n const copy = new TopicHistoryWindow(this.roomId, this.topicId, this.tracker, false);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n copy.internalState = this.internalState;\n return copy;\n }\n\n public get isTraverseLocked(): boolean {\n return this.internalState.traverseLock;\n }\n\n public async setTraverseLock(lock: boolean): Promise<void> {\n this.internalState.traverseLock = lock;\n\n if (lock && (this.state !== WindowState.LIVE && this.state !== WindowState.LATEST)) {\n await super.resetToLatest();\n }\n }\n\n public async resetToLatest(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.resetToLatest();\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchNext();\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchPrevious();\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.jumpTo(id);\n }\n\n /**\n * For internal use.\n * @internal\n */\n public _updateMessageReference(refTopic: Topic): void {\n const refMessage = this.get(refTopic.refMessage.id);\n\n if (refMessage) {\n // Update referenced topic ID in message\n this.set({...refMessage, topicRef: refTopic.id});\n }\n }\n\n protected async fetchItemsAfter(): Promise<Message[] | null> {\n const afterId = this.getAt(this.length - 1)?.id;\n\n if (! afterId) {\n // If there is no message to refer, fetch latest\n return null;\n }\n\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n after: afterId,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchItemsAround(id: string): Promise<Message[] | null> {\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n around: id,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchItemsBefore(): Promise<Message[] | null> {\n const beforeId = this.getAt(0)?.id;\n\n if (! beforeId) {\n // If there is no message to refer, fetch latest\n return null;\n }\n\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n before: beforeId,\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n protected async fetchLatestItems(): Promise<Message[]> {\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n limit: this.internalState.fetchLimit,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n return result.data.messages;\n }\n\n private async getTopic(): Promise<Topic | undefined> {\n return (await this.tracker.rooms.getTopics(this.roomId, [this.topicId])).get(this.topicId);\n }\n\n private async getLatestMessageId(): Promise<string | undefined> {\n return (await this.getTopic())?.lastMessage?.id;\n }\n\n protected async isLatestItemLoaded(): Promise<boolean> {\n const lastMessageId = await this.getLatestMessageId();\n return lastMessageId ? this.has(lastMessageId) : true;\n }\n\n private async handleNewMessage(ev: NewMessage): Promise<void> {\n if (\n [WindowState.LATEST, WindowState.LIVE].includes(this.state)\n && ev.message.location.roomId === this.roomId\n && ev.message.location.topicId === this.topicId\n ) {\n const originalState = this.state;\n this.addItems([ev.message], 'tail');\n this.emitChangeWithDiff(true, originalState);\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n if (ev.location.topicId !== this.topicId || ev.location.roomId !== this.roomId) {\n return;\n }\n\n const refTopicIds = this.items\n .filter(msg => msg.topicRef && ev.ids.includes(msg.id))\n .map(msg => msg.topicRef as string);\n\n this.delete(...ev.ids);\n\n if (this.length === 0) {\n await this.resetToLatest();\n }\n\n if (refTopicIds.length > 0) {\n this.eventTarget.emit('reftopicsdeleted', refTopicIds);\n }\n }\n}\n","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {NewTopic, Room, RoomUpdated, Topic, TopicDeleted} from \"../types/src\";\nimport {IndexedCollection,} from \"../IndexedObjectCollection\";\nimport {TopicHistoryWindow} from \"./TopicHistoryWindow\";\n\nexport class RoomMessagesHistory {\n private historyWindows = new IndexedCollection<string, TopicHistoryWindow>();\n private traverseLock: boolean = false;\n\n public constructor(\n private room: Room,\n private tracker: ChatStateTracker,\n ) {\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n\n this.updateTraverseLock(this.room);\n\n if (this.room.defaultTopic) {\n this.createHistoryWindowForTopic(this.room.defaultTopic);\n }\n }\n\n /**\n * Returns a history window object for the given topic ID, allowing you to view message history.\n * @param topicId\n * @param peek If true, do not create a cache for this topic and do not allow it to collect new messages.\n */\n public async getMessagesWindow(topicId: string, peek: boolean = false): Promise<TopicHistoryWindow | undefined> {\n if (!this.historyWindows.has(topicId) && !peek) {\n const topic = (await this.tracker.rooms.getTopics(this.room.id, [topicId])).get(topicId);\n\n if (topic) {\n this.createHistoryWindowForTopic(topic);\n }\n }\n\n return this.historyWindows.get(topicId);\n }\n\n private async handleRoomUpdated(ev: RoomUpdated): Promise<void> {\n if (this.room.id === ev.room.id) {\n this.room = ev.room;\n\n this.updateTraverseLock(ev.room);\n\n if (ev.room.defaultTopic) {\n this.createHistoryWindowForTopic(ev.room.defaultTopic);\n }\n\n for (const [, window] of Array.from(this.historyWindows.items)) {\n await window.setTraverseLock(this.traverseLock);\n }\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n if (this.room.id === ev.roomId) {\n this.createHistoryWindowForTopic(ev.topic);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n if (this.room.id === ev.location.roomId) {\n this.historyWindows.delete(ev.location.topicId);\n }\n }\n\n private createHistoryWindowForTopic(topic: Topic): void {\n if (this.historyWindows.has(topic.id)) {\n return;\n }\n\n const historyWindow = new TopicHistoryWindow(this.room.id, topic.id, this.tracker);\n\n void historyWindow.setTraverseLock(this.traverseLock);\n\n this.historyWindows.set([topic.id, historyWindow]);\n\n // Current behavior of deletion a message with referenced topic is to delete the whole side topic\n // So we need to listen for topic deletions here\n historyWindow.on('reftopicsdeleted', (deletedTopicIds: string[]) => {\n for (const topicId of deletedTopicIds) {\n this.historyWindows.delete(topicId);\n }\n this.tracker.rooms._deleteTopicsFromRoom(this.room.id, ...deletedTopicIds);\n });\n\n // If new topic refers to some message from this room, update other structures\n if (topic.refMessage) {\n const refHistoryWindow = this.historyWindows.get(topic.refMessage.location.topicId);\n refHistoryWindow?._updateMessageReference(topic);\n }\n }\n\n private updateTraverseLock(room: Room): void {\n this.traverseLock = room.history.mode === 'Ephemeral';\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n RoomDeleted,\n RoomLeft,\n RoomJoined,\n Session,\n Room,\n Message, ChatLocation,\n} from \"../types/src\";\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\nimport {DeferredTask} from \"./AsyncUtils\";\nimport {RoomMessagesHistory} from \"./RoomMessagesHistory\";\n\nexport class MessagesManager {\n private readonly roomHistories = new IndexedCollection<string, RoomMessagesHistory>();\n private readonly deferredSession = new DeferredTask();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n }\n\n /**\n * Get history manager for given room ID.\n */\n public async getRoomHistory(roomId: string): Promise<RoomMessagesHistory | undefined> {\n await this.deferredSession.promise;\n return this.roomHistories.get(roomId);\n }\n\n /**\n * For internal use.\n * @internal\n */\n public async _resolveLastMessage(location: ChatLocation): Promise<Message|null> {\n // Try to get last message from history window (if cached)\n let message: Message = await this.getRoomHistory(location.roomId)\n .then(roomHistory => roomHistory?.getMessagesWindow(location.topicId, true))\n .then(\n historyWindow =>\n historyWindow?.hasLatest && historyWindow.getAt(historyWindow.length - 1)\n );\n\n if (!message) {\n const result = await this.tracker.client.send('GetMessages', {\n location,\n limit: 1,\n });\n message = result.data?.messages[0];\n }\n\n return message || null;\n }\n\n private createHistoryForNewRoom(room: Room): void {\n this.roomHistories.set([room.id, new RoomMessagesHistory(room, this.tracker)]);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.roomHistories.delete(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.createHistoryForNewRoom(ev.room);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.roomHistories.delete(ev.id);\n }\n\n private handleSession(ev: Session): void {\n this.roomHistories.deleteAll();\n ev.state.rooms.forEach(room => this.createHistoryForNewRoom(room));\n this.deferredSession.resolve();\n }\n}","import {EventTarget} from \"../EventTarget\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n ChatLocation,\n FollowedTopic,\n FollowedTopicUpdated,\n NewMessage, NewTopic,\n RoomDeleted,\n RoomJoined, RoomLeft,\n Session, TopicDeleted,\n TopicFollowed, TopicUnfollowed\n} from \"../types/src\";\n\ninterface EventMap {\n change: {};\n}\n\nexport class FollowedTopicsManager extends EventTarget<EventMap> {\n private readonly followedTopics = new IndexedCollection<string, ObservableIndexedObjectCollection<FollowedTopic>>();\n private readonly followedTopicsPromises = new PromiseRegistry();\n private readonly deferredSession = new DeferredTask();\n private readonly summariesCache = new Map<string, { mentionCount: number, isUnread: boolean }>();\n\n public constructor(private tracker: ChatStateTracker) {\n super();\n\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('FollowedTopicUpdated', ev => this.handleFollowedTopicUpdated(ev));\n this.tracker.client.on('TopicFollowed', ev => this.handleTopicFollowed(ev));\n this.tracker.client.on('TopicUnfollowed', ev => this.handleTopicUnfollowed(ev));\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n }\n\n /**\n * Cache followed topics for all joined rooms in a space and fetch them in bulk if necessary.\n * Then you can get them using getRoomFollowedTopics().\n * @see getForRoom\n */\n public async cacheForSpace(spaceId: string | null): Promise<void> {\n if (spaceId && ! (await this.tracker.spaces.get()).has(spaceId)) {\n throw new Error(`You are not in space ${spaceId}`);\n }\n\n const rooms = await this.tracker.rooms.get();\n const roomIds = spaceId\n ? rooms.findBy('spaceId', spaceId).items.map(r => r.id)\n : rooms.items.filter(r => !r.spaceId).map(r => r.id);\n\n if (!roomIds.length) {\n return;\n }\n\n const isAlreadyCached = roomIds.every(roomId => this.followedTopics.has(roomId));\n if (isAlreadyCached) {\n return;\n }\n\n const spaceRegistryKey = `space_fetch_${spaceId || 'spaceless'}`;\n\n if (this.followedTopicsPromises.notExist(spaceRegistryKey)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {spaceId}});\n if (result.error) throw result.error;\n\n this.setFollowedTopicsArray(roomIds, result.data.followedTopics);\n }, spaceRegistryKey);\n }\n\n await this.followedTopicsPromises.get(spaceRegistryKey);\n }\n\n /**\n * Get followed topics for the given room.\n * @return Undefined if you are not in the room, collection otherwise.\n */\n public async getForRoom(roomId: string): Promise<ObservableIndexedObjectCollection<FollowedTopic> | undefined> {\n if (! (await this.tracker.rooms.get()).has(roomId)) {\n return undefined;\n }\n\n if (! this.followedTopics.has(roomId)) {\n if (this.followedTopicsPromises.notExist(roomId)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {roomId}});\n\n if (result.error) {\n throw result.error;\n }\n\n this.setFollowedTopicsArray([roomId], result.data.followedTopics);\n }, roomId);\n }\n\n await this.followedTopicsPromises.get(roomId);\n }\n\n return this.followedTopics.get(roomId);\n }\n\n /**\n * Batch acknowledge all messages for given room.\n */\n public async ackRoom(roomId: string): Promise<void> {\n const collection = await this.getForRoom(roomId);\n\n if (! collection) {\n return;\n }\n\n for (const followedTopic of collection.items) {\n if (followedTopic.isUnread) {\n await this.tracker.client.send('Ack', {location: followedTopic.location});\n }\n }\n }\n\n /**\n * Summarize all unread messages or mentions from any topic in given location.\n * This method uses an internal cache, so it's ok to call it multiple times.\n * Capture the 'change' event to determine when it's worth calling this method again due to data changes.\n * @return Undefined if you are not in room.\n */\n public async summarize(location: ChatLocation): Promise<{ mentionCount: number, isUnread: boolean }> {\n const cacheKey = location.topicId\n ? `topic:${location.roomId}:${location.topicId}`\n : location.roomId\n ? `room:${location.roomId}`\n : location.spaceId\n ? `space:${location.spaceId}`\n : 'spaceless';\n\n if (this.summariesCache.has(cacheKey)) {\n return this.summariesCache.get(cacheKey)!;\n }\n\n let roomIds: string[] = [];\n let targetTopicId: string | undefined;\n const rooms = await this.tracker.rooms.get();\n\n if (location.topicId) {\n if (!location.roomId) {\n throw new Error(\"roomId is required when querying by topicId\");\n }\n roomIds = [location.roomId];\n targetTopicId = location.topicId;\n } else if (location.roomId) {\n roomIds = [location.roomId];\n } else if (location.spaceId) {\n await this.cacheForSpace(location.spaceId);\n roomIds = rooms.findBy('spaceId', location.spaceId).items.map(r => r.id);\n } else {\n await this.cacheForSpace(null);\n roomIds = rooms.items.filter(r => !r.spaceId).map(r => r.id);\n }\n\n let mentionCount = 0;\n let isUnread = false;\n\n for (const roomId of roomIds) {\n const collection = await this.getForRoom(roomId);\n\n if (!collection) {\n continue;\n }\n\n for (const topic of collection.items) {\n if (targetTopicId && topic.location.topicId !== targetTopicId) {\n continue;\n }\n\n if (topic.isUnread) {\n isUnread = true;\n }\n\n mentionCount += (topic.mentionCount ?? 0);\n }\n }\n\n const result = { mentionCount, isUnread };\n this.summariesCache.set(cacheKey, result);\n\n return result;\n }\n\n /**\n * For internal use. If you want to delete the message, execute a proper command on client object.\n * @internal\n */\n public _deleteByTopicIds(roomId: string, ...topicIds: string[]): void {\n this.followedTopics.get(roomId)?.delete(...topicIds);\n topicIds.forEach(topicId => this.invalidateUnreadSummaries(roomId, topicId));\n }\n\n private handleSession(ev: Session): void {\n this.followedTopics.deleteAll();\n this.followedTopicsPromises.forgetAll();\n this.invalidateUnreadSummaries();\n this.deferredSession.resolve();\n }\n\n private handleNewMessage(ev: NewMessage): void {\n void this.updateLocallyFollowedTopicOnNewMessage(ev);\n }\n\n private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {\n this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleTopicFollowed(ev: TopicFollowed): void {\n this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleTopicUnfollowed(ev: TopicUnfollowed): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.clearRoomFollowedTopicsStructures(ev.room.id);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private async handleNewTopic(ev: NewTopic): Promise<void> {\n if (this.followedTopics.has(ev.roomId)) {\n // Check if the new topic is followed by user\n // only if client asked for followed topics list before for this room\n const result = await this.tracker.client.send(\n 'GetFollowedTopics',\n {location: {roomId: ev.roomId, topicId: ev.topic.id}},\n );\n const followedTopic = result.data.followedTopics[0];\n if (followedTopic) {\n this.followedTopics.get(ev.roomId).set(followedTopic);\n this.invalidateUnreadSummaries(ev.roomId, ev.topic.id);\n }\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);\n }\n\n /**\n * Invalidate the summaries cache intentionally, only for the locations affected by the change.\n */\n private invalidateUnreadSummaries(roomId?: string, topicId?: string): void {\n if (roomId) {\n this.summariesCache.delete(`room:${roomId}`);\n\n if (topicId) {\n this.summariesCache.delete(`topic:${roomId}:${topicId}`);\n } else {\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith(`topic:${roomId}:`)) {\n this.summariesCache.delete(key);\n }\n }\n }\n\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.summariesCache.delete(key);\n }\n }\n } else {\n this.summariesCache.clear();\n }\n\n this.emit('change');\n }\n\n private invalidateUnreadSummariesForRooms(roomIds: string[]): void {\n const roomIdsSet = new Set(roomIds);\n roomIds.forEach(roomId => {\n this.summariesCache.delete(`room:${roomId}`);\n });\n\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.summariesCache.delete(key);\n continue;\n }\n if (key.startsWith('topic:')) {\n const parts = key.split(':');\n if (parts.length >= 2 && roomIdsSet.has(parts[1])) {\n this.summariesCache.delete(key);\n }\n }\n }\n\n this.emit('change');\n }\n\n private async updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): Promise<void> {\n const roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);\n const followedTopic = roomFollowedTopics?.get(ev.message.location.topicId);\n\n if (!roomFollowedTopics || !followedTopic || ev.message.type === 'Ephemeral') {\n // Skip if we don't follow this room or message is ephemeral\n return;\n }\n\n const me = await this.tracker.getMe();\n const isMe = ev.message.author.user.id === me.id;\n let update: Partial<FollowedTopic>;\n\n if (isMe) {\n // Reset missed messages count if new message is authored by me\n update = {missed: 0, lastAckMessageId: ev.message.id};\n } else if (ev.message.type === 'Text') {\n // ...check for mentions if it's text message...\n const member = await this.tracker.rooms.getMe(ev.message.location.roomId);\n const roleIds = [...(member.spaceMember?.roles ?? []), ...(member.roles ?? [])];\n const mentionHandlers = [\n ...roleIds.map(id => `<@&${id}>`),\n `<@${me.id}>`,\n ];\n const mentionExists = mentionHandlers.some(handler => ev.message.content.includes(handler));\n\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n mentionCount: followedTopic.mentionCount + (mentionExists ? 1 : 0),\n };\n } else {\n // ...or just mark as unread.\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n };\n }\n\n roomFollowedTopics.set({...followedTopic, ...update});\n this.invalidateUnreadSummaries(ev.message.location.roomId, ev.message.location.topicId);\n }\n\n private setFollowedTopicsArray(roomIds: string[], followedTopics: FollowedTopic[]): void {\n const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};\n\n // Reassign followed topics to limit collection change event emit\n followedTopics.forEach(followedTopic => {\n roomToTopics[followedTopic.location.roomId] ??= [];\n roomToTopics[followedTopic.location.roomId].push(followedTopic);\n });\n\n roomIds.forEach(roomId => {\n if (! this.followedTopics.has(roomId)) {\n this.followedTopics.set([roomId, new ObservableIndexedObjectCollection<FollowedTopic>(\n followedTopic => followedTopic.location.topicId\n )]);\n }\n\n if (roomToTopics[roomId]) {\n this.followedTopics.get(roomId).set(...roomToTopics[roomId]);\n }\n });\n\n this.invalidateUnreadSummariesForRooms(roomIds);\n }\n\n private clearRoomFollowedTopicsStructures(roomId: string): void {\n this.followedTopics.delete(roomId);\n this.followedTopicsPromises.forget(roomId);\n this.invalidateUnreadSummaries(roomId);\n }\n}","import {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n Message,\n MessagesRedacted,\n NewMessage,\n NewTopic,\n Room, RoomDeleted,\n RoomJoined, RoomLeft,\n RoomMember, RoomMemberJoined, RoomMemberLeft, RoomMembers,\n RoomMemberUpdated, RoomUpdated, Session, SpaceDeleted, SpaceLeft, SpaceMemberLeft,\n SpaceMemberUpdated,\n Topic,\n TopicDeleted, TopicUpdated,\n UserUpdated,\n} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {MessagesManager} from \"./MessagesManager\";\nimport {FollowedTopicsManager} from \"./FollowedTopicsManager\";\n\nexport class RoomsManager {\n public readonly messages: MessagesManager;\n public readonly followedTopics: FollowedTopicsManager;\n\n private readonly list = new ObservableIndexedObjectCollection<Room>('id');\n private readonly topics = new IndexedCollection<string, ObservableIndexedObjectCollection<Topic>>();\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomMember>>();\n private readonly deferredSession = new DeferredTask();\n private readonly membersPromises = new PromiseRegistry();\n private readonly topicsPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.messages = new MessagesManager(tracker);\n this.followedTopics = new FollowedTopicsManager(tracker);\n\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoined(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicUpdated', ev => this.handleTopicUpdated(ev));\n this.tracker.client.on('RoomMemberJoined', ev => this.handleRoomMemberJoined(ev));\n this.tracker.client.on('RoomMemberLeft', ev => this.handleRoomMemberLeft(ev));\n this.tracker.client.on('RoomMembers', ev => this.handleRoomMembers(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n /**\n * Get collection of room members.\n */\n public async getMembers(roomId: string): Promise<ObservableIndexedObjectCollection<RoomMember> | undefined> {\n if (this.membersPromises.notExist(roomId)) {\n this.membersPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRoomMembers', {id: roomId});\n if (result.error) {\n throw result.error;\n }\n this.handleRoomMembers(result.data);\n }, roomId);\n }\n\n await this.membersPromises.get(roomId);\n return this.members.get(roomId);\n }\n\n /**\n * Get a room member representing the current user.\n */\n public async getMe(roomId: string): Promise<RoomMember | undefined> {\n const userId = (await this.tracker.getMe()).id;\n\n if (! this.list.has(roomId)) {\n // User is not in passed room.\n return undefined;\n }\n\n const members = await this.getMembers(roomId);\n return members?.items.find(member => (member.user?.id ?? member.spaceMember.user.id) === userId);\n }\n\n /**\n * Get collection of all the rooms you are in.\n */\n public async get(): Promise<ObservableIndexedObjectCollection<Room>> {\n await this.deferredSession.promise;\n return this.list;\n }\n\n /**\n * Get a collection of locally cached Topic objects for given room.\n * You can pass topic ids as second argument, to try to fetch them from the server.\n */\n public async getTopics(roomId: string, tryToFetchTopicIds?: string[]): Promise<ObservableIndexedObjectCollection<Topic> | undefined> {\n await this.deferredSession.promise;\n\n if (tryToFetchTopicIds?.length) {\n // Topic can be fetched if it isn't already cached and fetch is not already in progress\n const canFetch = (topicId: string) => ! this.topics.get(roomId)?.has(topicId) && ! this.topicsPromises.has(roomId + topicId);\n const idsToFetch = tryToFetchTopicIds.filter(canFetch);\n\n if (idsToFetch.length) {\n const promise = this.tracker\n .client\n .send('GetTopics', {roomId, topicIds: idsToFetch})\n .then(result => this.topics.get(result.data.location.roomId)?.set(...result.data.topics));\n\n idsToFetch.forEach(topicId => this.topicsPromises.register(promise, roomId + topicId));\n }\n\n for (const topicId of tryToFetchTopicIds) {\n await this.topicsPromises.get(roomId + topicId);\n }\n }\n\n return this.topics.get(roomId);\n }\n\n /**\n * For internal use. If you want to delete topic, execute a proper command on client object.\n * @internal\n */\n public _deleteTopicsFromRoom(roomId: string, ...topicIds: string[]): void {\n this.topics.get(roomId)?.delete(...topicIds);\n }\n\n private deleteRoom(...roomIds: string[]): void {\n this.list.delete(...roomIds);\n this.members.delete(...roomIds);\n this.membersPromises.forget(...roomIds);\n\n for (const roomId of roomIds) {\n const topicIds: string[] = this.topics.get(roomId)?.items.map(topic => topic.id) ?? [];\n this.followedTopics._deleteByTopicIds(roomId, ...topicIds);\n }\n\n this.topics.delete(...roomIds);\n }\n\n private deleteRoomsBySpaceId(spaceId: string): void {\n this.deleteRoom(\n ...this.list.findBy('spaceId', spaceId).items.map(room => room.id)\n );\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n // Update members of rooms related to this space\n for (const room of this.list.findBy('spaceId', ev.spaceId).items) {\n const roomMembers = this.members.get(room.id);\n\n if (!roomMembers || !roomMembers.has(ev.userId)) {\n // Skip update if member list for this room is not loaded\n // or user is not in room\n continue;\n }\n\n // Update space member in roomMember, but first fill the user object (it's null in event)\n const roomMember = roomMembers.get(ev.userId);\n const spaceMember = ev.member;\n spaceMember.user = roomMember.spaceMember.user;\n roomMembers.set({ ...roomMember, spaceMember });\n }\n }\n\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\n this.list\n .findBy('spaceId', ev.spaceId).items\n .forEach(room => this.members.get(room.id)?.delete(ev.userId));\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (! this.members.has(ev.roomId)) {\n // We do not track member list for this room.\n return;\n }\n\n const members = this.members.get(ev.roomId);\n const member = members.get(ev.userId);\n const newMember = ev.member;\n const user = member.spaceMember?.user ?? member.user;\n\n // Preserving user object, because it's not included in event\n if (newMember.spaceMember) {\n newMember.spaceMember.user = user;\n } else {\n newMember.user = user;\n }\n\n members.set(newMember);\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n this.deleteRoomsBySpaceId(ev.id);\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const collection = this.topics.get(ev.location.roomId);\n collection.delete(ev.location.topicId);\n\n const room = this.list.get(ev.location.roomId);\n if (room.defaultTopic?.id === ev.location.topicId) {\n this.list.set({...room, defaultTopic: null});\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n this.addJoinedRoomTopics(ev.roomId, ev.topic);\n }\n\n private addJoinedRoomTopics(roomId: string, ...topics: Topic[]): void {\n if (this.topics.has(roomId)) {\n this.topics.get(roomId).set(...topics);\n } else {\n this.topics.set([roomId, new ObservableIndexedObjectCollection<Topic>('id', topics)]);\n }\n }\n\n private handleRoomJoined(ev: RoomJoined): void {\n this.addJoinedRooms(ev.room);\n }\n\n private handleRoomUpdated(ev: RoomUpdated): void {\n if (this.list.has(ev.room.id)) {\n this.list.set(ev.room);\n }\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.deleteRoom(ev.id);\n }\n\n private handleTopicUpdated(ev: TopicUpdated): void {\n const room = this.list.get(ev.location.roomId);\n\n if (this.topics.get(ev.location.roomId)?.has(ev.topic.id)) {\n this.topics.get(ev.location.roomId).set(ev.topic);\n }\n\n if (room.defaultTopic.id === ev.topic.id) {\n const newRoom = { ...room };\n newRoom.defaultTopic = ev.topic;\n this.list.set(newRoom);\n }\n }\n\n private addJoinedRooms(...rooms: Room[]): void {\n for (const room of rooms) {\n if (room.defaultTopic) {\n this.addJoinedRoomTopics(room.id, room.defaultTopic);\n }\n\n if (room.type === 'Pm' && room.recipients) {\n // Treat PM recipients as normal room members.\n // We are registering fake promise in `memberPromises`\n // because GetMembers are not supported for PM rooms.\n this.handleRoomMembers({\n id: room.id,\n members: room.recipients.map(user => ({\n user,\n spaceMember: null,\n roles: null,\n customColor: null,\n customNick: null,\n extras: '',\n })),\n });\n this.membersPromises.register(Promise.resolve(), room.id);\n }\n }\n this.list.set(...rooms);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.deleteRoom(ev.id);\n }\n\n private handleRoomMemberJoined(ev: RoomMemberJoined): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).set(ev.member);\n }\n }\n\n private handleRoomMemberLeft(ev: RoomMemberLeft): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).delete(ev.userId);\n }\n }\n\n private handleRoomMembers(ev: RoomMembers): void {\n if (! this.members.has(ev.id)) {\n this.members.set([\n ev.id,\n new ObservableIndexedObjectCollection(\n member => member.user?.id ?? member.spaceMember.user.id,\n ev.members,\n )\n ]);\n }\n }\n\n private handleSession(ev: Session): void {\n this.list.deleteAll();\n this.topics.deleteAll();\n this.topicsPromises.forgetAll();\n this.members.deleteAll();\n this.membersPromises.forgetAll();\n\n this.addJoinedRooms(...ev.state.rooms);\n\n this.deferredSession.resolve();\n }\n\n private handleUserUpdated(ev: UserUpdated): void {\n // Update room members users\n this.members.items.forEach((members) => {\n const member = members.get(ev.user.id);\n\n if (! member) {\n // Skip room; updated user is not here\n return;\n }\n\n const newMember: RoomMember = {...member};\n\n if (member.user) {\n newMember.user = ev.user;\n } else {\n newMember.spaceMember.user = ev.user;\n }\n\n members.set(newMember);\n });\n\n // Update recipients users\n const newRooms: Room[] = [];\n this.list.items.forEach(room => {\n if (room.recipients?.some(user => user.id === ev.user.id)) {\n room.recipients = room.recipients.map(user => user.id === ev.user.id ? ev.user : user);\n newRooms.push({...room});\n }\n });\n this.list.set(...newRooms);\n }\n\n private handleNewMessage(ev: NewMessage): void {\n const topics = this.topics.get(ev.message.location.roomId);\n const topic = topics?.get(ev.message.location.topicId);\n\n if (!topic) {\n return; // No topic found, nothing to update\n }\n\n const newTopic = {\n ...topic,\n messageCount: topic.messageCount + 1,\n lastMessage: ev.message,\n };\n\n topics.set(newTopic);\n const room = this.list.get(ev.message.location.roomId);\n\n if (room.defaultTopic?.id === ev.message.location.topicId) {\n this.list.set({ ...room, defaultTopic: newTopic });\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n // Remove redacted messages from topic and update metadata\n const topics = this.topics.get(ev.location.roomId);\n const topic = topics?.get(ev.location.topicId);\n if (topic) {\n const messageCount = Math.max(topic.messageCount - ev.ids.length, 0);\n const lastMessage: Message = messageCount > 0 ? await this.messages._resolveLastMessage(ev.location) : null;\n topics.set({ ...topic, messageCount, lastMessage } as Topic);\n }\n }\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 {\n Global,\n Space,\n Room,\n Topic,\n}\n\nexport class PermissionDefinition {\n value: number;\n maxLayer: Layer;\n}\n\nexport class Permissions {\n public static readonly list = {\n Root: {value: 1 << 0, maxLayer: Layer.Room},\n CreateSpaces: {value: 1 << 1, maxLayer: Layer.Global},\n ManageSpace: {value: 1 << 2, maxLayer: Layer.Space},\n ManageRoles: {value: 1 << 3, maxLayer: Layer.Space},\n //ManageRoom: {value: 1 << 4, maxLayer: Layer.Room},\n CreateTopics: {value: 1 << 5, maxLayer: Layer.Room},\n ManageTopic: {value: 1 << 6, maxLayer: Layer.Topic},\n ManageMemberProfiles: {value: 1 << 7, maxLayer: Layer.Space},\n ManageMemberRoles: {value: 1 << 8, maxLayer: Layer.Room},\n CreateMessages: {value: 1 << 9, maxLayer: Layer.Topic},\n ManagePermissions: {value: 1 << 10, maxLayer: Layer.Topic},\n CreateRooms: {value: 1 << 11, maxLayer: Layer.Space},\n ManageRoom: {value: 1 << 12, maxLayer: Layer.Room},\n CreateEmoticons: {value: 1 << 13, maxLayer: Layer.Space},\n ManageEmoticons: {value: 1 << 14, maxLayer: Layer.Space},\n ManageBans: {value: 1 << 15, maxLayer: Layer.Room},\n Kick: {value: 1 << 16, maxLayer: Layer.Room},\n ChangeOwnNick: {value: 1 << 17, maxLayer: Layer.Space},\n ChangeOwnColor: {value: 1 << 18, maxLayer: Layer.Room},\n RedactMessages: {value: 1 << 19, maxLayer: Layer.Topic},\n };\n\n public static getNames(): (keyof typeof this.list)[] {\n return Object.keys(this.list) as any;\n }\n\n public static getByName(name: keyof typeof this.list): PermissionDefinition | undefined {\n return this.list[name];\n }\n\n public static canBeDefinedOnLayer(permissionName: keyof typeof this.list, layer: Layer): boolean {\n const def = this.getByName(permissionName);\n\n if (! def) {\n throw new Error(`Invalid permission name: ${permissionName}`);\n }\n\n return layer <= this.getByName(permissionName).maxLayer;\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n ChatLocation,\n PermissionOverwrites, PermissionOverwritesTarget,\n PermissionOverwritesUpdated,\n PermissionOverwritesValue,\n RoleDeleted,\n RoomDeleted,\n RoomLeft, RoomMember, RoomMemberUpdated, Session,\n SpaceDeleted,\n SpaceLeft, SpaceMember,\n SpaceMemberUpdated,\n TopicDeleted,\n} from \"../types/src\";\nimport {ChangeEventMap, EventTarget} from \"../EventTarget\";\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\nimport {Permissions} from \"../Permissions\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\n\nconst getOvId = (\n location: ChatLocation,\n target?: PermissionOverwritesTarget,\n) => [location.spaceId, location.roomId, location.topicId, target?.type, target?.userId, target?.roleId].filter(Boolean).join('/');\n\nconst getOvIdByObject\n = (overwrites: PermissionOverwrites | PermissionOverwritesUpdated): string => getOvId(overwrites.location, overwrites.target);\n\ninterface CheckPermissionsResult {\n /**\n * @deprecated Use `hasAll` instead.\n */\n ok: boolean;\n hasAll: boolean;\n hasAny: boolean;\n missing: string[];\n}\n\ntype PermissionsManagerEventMap = ChangeEventMap<void>;\n\nexport class PermissionsManager extends EventTarget<PermissionsManagerEventMap> {\n private readonly overwrites = new IndexedCollection<string, PermissionOverwrites>();\n private readonly overwritesPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n super();\n this.tracker.client.on('PermissionOverwrites', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('PermissionOverwritesUpdated', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n public async getOverwrites(\n location: ChatLocation,\n target: PermissionOverwritesTarget,\n ): Promise<PermissionOverwrites | undefined> {\n this.validateLocation(location);\n\n const id = getOvId(location, target);\n\n if (this.overwritesPromises.notExist(id)) {\n this.overwritesPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send(\n 'GetPermissionOverwrites',\n {location, target},\n );\n if (result.error) {\n throw result.error;\n }\n this.handlePermissionOverwrites(result.data);\n }, id);\n }\n\n await this.overwritesPromises.get(id);\n return this.overwrites.get(id);\n }\n\n public async check(\n permissionNames: (keyof typeof Permissions.list)[],\n location: ChatLocation,\n ): Promise<CheckPermissionsResult> {\n if (! permissionNames.length) {\n throw new Error('Permission names array cannot be empty');\n }\n\n const ownedPermissions = await this.calculatePermissions(location);\n const missing: string[] = [];\n\n permissionNames.forEach(name => {\n if (~ ownedPermissions & Permissions.getByName(name).value) {\n missing.push(name as string);\n }\n });\n\n return {\n ok: missing.length === 0,\n hasAll: missing.length === 0,\n hasAny: missing.length < permissionNames.length,\n missing,\n };\n }\n\n public async calculatePermissions(location: ChatLocation): Promise<number> {\n const room = location.roomId ? (await this.tracker.rooms.get()).get(location.roomId) : null;\n location = {\n spaceId: location.spaceId ?? room?.spaceId,\n roomId: location.roomId,\n topicId: location.topicId,\n };\n\n this.validateLocation(location);\n\n const userId = (await this.tracker.getMe()).id;\n const [spaceMember, roomMember] = await this.fetchMembersOrFail(location);\n const userRoles: string[] = [...(spaceMember?.roles ?? []), ...(roomMember?.roles ?? [])];\n const promises: Promise<PermissionOverwritesValue>[] = [\n // Global user overwrites\n this.getOverwrites({}, { type: 'User', userId }).then(v => v.overwrites),\n ];\n\n if (location.spaceId && (await this.tracker.spaces.get())?.has(location.spaceId)) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId};\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (room) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId, roomId: location.roomId};\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n }\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (location.topicId && (await this.tracker.rooms.getTopics(location.roomId))?.has(location.topicId)) {\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(location, userRoles));\n }\n promises.push(this.getOverwrites(location, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n return this.resolveOverwritesHierarchy(await Promise.all(promises));\n }\n\n private handlePermissionOverwrites(ev: PermissionOverwritesUpdated | PermissionOverwrites): void {\n this.overwrites.set([getOvIdByObject(ev), ev]);\n this.emit('change');\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.id}));\n this.overwritesPromises.forget(...ids);\n }\n\n private async handleRoomDeleted(ev: RoomDeleted | RoomLeft): Promise<void> {\n const room = (await this.tracker.rooms.get()).get(ev.id);\n if (room) {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: room.spaceId, roomId: room.id}));\n this.overwritesPromises.forget(...ids);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId(ev.location));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleRoleDeleted(ev: RoleDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.spaceId}, { type: 'Role', roleId: ev.id }));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in space could potentially have changed\n this.emit('change');\n }\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in room could potentially have changed\n this.emit('change');\n }\n }\n\n /**\n * @return Matched and deleted ids\n */\n private deleteOverwritesByIdPrefix(prefix: string): string[] {\n const ids: string[] = [];\n this.overwrites.items.forEach((overwrites) => {\n const id = getOvIdByObject(overwrites);\n if (id.startsWith(prefix)) {\n ids.push(id);\n this.overwrites.delete(id);\n }\n });\n return ids;\n }\n\n private async collectRoleOverwrites(\n location: ChatLocation,\n userRoles: string[],\n ): Promise<PermissionOverwritesValue> {\n const roleOverwrites = await Promise.all(userRoles.map(\n roleId => this.getOverwrites(location, { type: 'Role', roleId }),\n ));\n\n return this.resolveOverwritesFromRolesByOrder(location.spaceId, roleOverwrites);\n }\n\n private async resolveOverwritesFromRolesByOrder(\n spaceId: string,\n overwrites: PermissionOverwrites[],\n ): Promise<PermissionOverwritesValue> {\n let allows = 0, denies = 0;\n const roles = await this.tracker.spaces.getRoles(spaceId);\n const sortedOverwrites = overwrites.sort(\n (a, b) =>\n roles.get(a.target.roleId).priority - roles.get(b.target.roleId).priority\n );\n\n // Max length of bit word\n const permissionsLength = overwrites.reduce(\n (previousValue: number, currentValue: PermissionOverwrites) =>\n Math.max(\n previousValue,\n currentValue.overwrites.allow?.toString(2).length ?? 0,\n currentValue.overwrites.deny?.toString(2).length ?? 0,\n ),\n 0,\n );\n\n sortedOverwrites.forEach(overwriteEvent => {\n const overwrites = overwriteEvent.overwrites;\n const revDecDenies = overwrites.deny?.toString(2).split('').reverse().join('') ?? '';\n const revDecAllows = overwrites.allow?.toString(2).split('').reverse().join('') ?? '';\n\n for (let i = 0; i < permissionsLength; i++) {\n const deny = parseInt(revDecDenies[i] ?? '0');\n const allow = parseInt(revDecAllows[i] ?? '0');\n\n if (deny) {\n denies |= 1 << i;\n }\n\n if (allow) {\n allows |= 1 << i;\n }\n }\n });\n\n return {allow: allows, deny: denies};\n }\n\n private resolveOverwritesHierarchy(permissionOverwritesValues: PermissionOverwritesValue[]): number {\n let result = 0;\n\n for (const value of permissionOverwritesValues) {\n if (value.allow & Permissions.getByName('Root').value) {\n return this.getRootAccessValue();\n }\n\n result = (result & ~value.deny) | value.allow;\n }\n\n return result;\n }\n\n private getRootAccessValue(): number {\n let result = 0;\n\n for (const name of Permissions.getNames()) {\n result |= Permissions.getByName(name).value;\n }\n\n return result;\n }\n\n private async fetchMembersOrFail(location: ChatLocation): Promise<[SpaceMember | null, RoomMember | null]> {\n const results = await Promise.all([\n location.spaceId ? this.tracker.spaces.getMe(location.spaceId) : null,\n location.roomId ? this.tracker.rooms.getMe(location.roomId) : null,\n ]);\n\n const spaceFail = location.spaceId && ! results[0];\n const roomFail = location.roomId && ! results[1];\n\n if (spaceFail || roomFail) {\n const layer = spaceFail ? `space (${location.spaceId})` : `room (${location.roomId})`;\n throw new Error(`Attempting to calculate permissions for a ${layer} that the user does not belong to`);\n }\n\n return results;\n }\n\n private validateLocation(location: ChatLocation): void {\n if (location.topicId && ! location.roomId) {\n throw new Error('Corrupted arguments hierarchy');\n }\n }\n\n private handleSession(ev: Session): void {\n this.overwrites.deleteAll();\n this.overwritesPromises.forgetAll();\n }\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<{ change: User }>();\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\";\nimport {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ChatStateTracker} from \"./state-tracker/ChatStateTracker\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebSocketClientOptions {\n url: string;\n token: string;\n connectingTimeoutMs?: number;\n awaitQueueSendDelayMs?: number;\n stateTracking?: boolean;\n queryParams?: Record<string, string>;\n /**\n * Ping/pong configuration, enabled by default.\n */\n ping?: {\n enabled?: boolean;\n /**\n * Time without activity after which a ping will be sent. Default is 10 seconds.\n */\n noActivityTimeoutMs?: number;\n /**\n * Time to wait for a pong response before considering the connection dead. Default is 2 seconds.\n */\n pongBackTimeoutMs?: number;\n },\n}\n\nenum WebSocketChatClientEvent {\n connect = 'connect',\n disconnect = 'disconnect',\n message = 'message',\n error = 'error',\n}\n\ntype WebSocketEventMap = EventsMap & {\n [WebSocketChatClientEvent.connect]: void;\n [WebSocketChatClientEvent.disconnect]: boolean;\n [WebSocketChatClientEvent.message]: Envelope;\n [WebSocketChatClientEvent.error]: Error;\n};\n\nexport class WebSocketChatClient extends AbstractChatClient<Pick<WebSocketEventMap, keyof WebSocketEventMap>> implements ObservableInterface {\n public readonly Event = WebSocketChatClientEvent;\n public readonly state?: ChatStateTracker;\n\n protected ws: WebSocket|null = null;\n protected sendQueue: Envelope[] = [];\n protected connectingTimeoutId: any;\n protected authenticated: boolean;\n protected authenticatedResolvers: [() => void, (error: Error) => void];\n protected pingMonitorInterval?: NodeJS.Timeout;\n protected inFlightPingTimeout: NodeJS.Timeout;\n protected lastReceivedMessageAt?: number;\n\n public constructor(private readonly options: WebSocketClientOptions) {\n super();\n if (this.options.stateTracking ?? true) {\n this.state = new ChatStateTracker(this);\n }\n\n options.ping ??= {};\n options.ping.enabled ??= true;\n options.ping.noActivityTimeoutMs ??= 15000;\n options.ping.pongBackTimeoutMs ??= 5000;\n }\n\n public async connect(): Promise<void> {\n if (this.isOpenWsState() || this.isConnectingWsState()) {\n return;\n }\n\n const params = new URLSearchParams(this.options.queryParams ?? {});\n params.set('token', this.options.token);\n\n this.ws = new WebSocket(`${this.options.url}?${params}`);\n this.ws.onclose = ev => this.onClose(ev);\n this.ws.onmessage = ev => this.onMessage(ev);\n this.connectingTimeoutId = setTimeout(\n () => this.triggerConnectionTimeout(),\n this.options.connectingTimeoutMs ?? 10000\n );\n this.authenticated = false;\n return new Promise((...args) => this.authenticatedResolvers = args);\n }\n\n public disconnect(): void {\n this.sendQueue = [];\n this.ws?.close(1000); // Normal closure\n this.ws = null;\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope<CommandRequest<CommandType>>(commandType, commandData);\n const promise = this.createPromiseFromCommandEnvelope<CommandType>(envelope);\n\n if (this.isConnectingWsState() || !this.authenticated && this.isOpenWsState()) {\n this.sendQueue.push(envelope);\n return promise;\n }\n\n this.sendEnvelope(envelope);\n return promise;\n }\n\n public get isReady(): boolean {\n return this.isOpenWsState() && this.authenticated;\n }\n\n private sendEnvelope(envelope: Envelope): void {\n if (this.isReady) {\n this.ws.send(JSON.stringify(envelope));\n return;\n }\n\n this.handleEnvelopeSendError(\n envelope,\n new Error(`Cannot send - client is not ready (state=${this.ws?.readyState ?? '[no connection]'}; authenticated=${this.authenticated})`)\n );\n }\n\n private onMessage(event: MessageEvent): void {\n this.lastReceivedMessageAt = Date.now();\n const envelope: Envelope = JSON.parse(event.data);\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n\n // Login successfully\n if (!this.authenticated) {\n const isAuthenticated = envelope.type !== 'Bye';\n this.authenticated = isAuthenticated;\n if (isAuthenticated) {\n this.startConnectionMonitor();\n this.authenticatedResolvers[0]();\n this.emit(this.Event.connect);\n this.sendFromQueue();\n } else {\n this.authenticatedResolvers[1](envelope.data);\n }\n }\n }\n\n private onClose(event: CloseEvent): void {\n this.stopConnectionMonitor();\n clearTimeout(this.connectingTimeoutId);\n const reconnect = event.code !== 1000; // Connection was closed because of error\n if (reconnect) {\n void this.connect();\n }\n this.emit(this.Event.disconnect, reconnect);\n }\n\n private sendFromQueue(): void {\n // Send awaiting data to server\n let lastDelay = 0;\n for (const dataIndex in this.sendQueue) {\n const envelope = this.sendQueue[dataIndex];\n setTimeout(() => this.sendEnvelope(envelope), lastDelay);\n lastDelay += this.options.awaitQueueSendDelayMs ?? 500;\n }\n this.sendQueue = [];\n clearTimeout(this.connectingTimeoutId);\n }\n\n private triggerConnectionTimeout(): void {\n this.disconnect();\n this.emit(this.Event.error, new Error('Connection timeout'));\n }\n\n private isConnectingWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.CONNECTING;\n }\n\n private isOpenWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.OPEN;\n }\n\n private startConnectionMonitor(): void {\n if (!this.options.ping!.enabled) {\n return;\n }\n\n this.lastReceivedMessageAt = Date.now();\n\n this.pingMonitorInterval = setInterval(async () => {\n if (!this.isReady || this.inFlightPingTimeout) {\n return;\n }\n\n if ((Date.now() - this.lastReceivedMessageAt) < this.options.ping!.noActivityTimeoutMs) {\n return;\n }\n\n this.inFlightPingTimeout = setTimeout(() => {\n this.inFlightPingTimeout = undefined;\n this.ws.close(3000); // Service Restart (reconnect)\n }, this.options.ping.pongBackTimeoutMs);\n\n this.send('Ping', {}).then(() => {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n });\n }, 1000);\n }\n\n private stopConnectionMonitor(): void {\n if (this.inFlightPingTimeout) {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n }\n if (this.pingMonitorInterval) {\n clearInterval(this.pingMonitorInterval);\n this.pingMonitorInterval = undefined;\n }\n }\n}","import {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ObservableInterface} from \"./EventTarget\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebApiChatClientOptions {\n url: string;\n token: string;\n attemptsToSend?: number;\n attemptDelayMs?: number;\n queryParams?: Record<string, string>;\n}\n\nenum WebApiChatClientEvent {\n message = 'message',\n error = 'error',\n destroy = 'destroy',\n}\n\ntype WebApiEventMap = EventsMap & {\n [WebApiChatClientEvent.message]: Envelope;\n [WebApiChatClientEvent.error]: Error;\n [WebApiChatClientEvent.destroy]: boolean;\n};\n\nexport class WebApiChatClient extends AbstractChatClient<Pick<WebApiEventMap, keyof WebApiEventMap>> implements ObservableInterface {\n public readonly Event = WebApiChatClientEvent;\n\n protected sendStack: {data: any, attempts: number, lastTimeoutId: any}[];\n\n public constructor(private readonly options: WebApiChatClientOptions) {\n super();\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope(commandType, commandData);\n this.sendStack.push({data: envelope, attempts: 0, lastTimeoutId: null});\n this.makeApiCall(this.sendStack.length - 1);\n return this.createPromiseFromCommandEnvelope(envelope);\n }\n\n public destroy(): void {\n // Cancel all awaiting requests\n this.sendStack.forEach(item => {\n if (item.lastTimeoutId) {\n clearTimeout(item.lastTimeoutId);\n }\n this.awaitingResponse.delete(item.data.ref);\n });\n this.sendStack = [];\n this.emit(this.Event.destroy, false);\n }\n\n protected async onMessage(reqId: number, response: Response): Promise<void> {\n this.sendStack.splice(reqId, 1);\n const envelope: Envelope = await response.json();\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n }\n\n protected onError(reqId: number, body: string): void {\n if (this.sendStack[reqId].attempts >= (this.options.attemptsToSend ?? 10)) {\n this.sendStack.splice(reqId, 1);\n this.handleEnvelopeSendError(this.sendStack[reqId].data, new Error(\n `Cannot send ${body}; aborting after reaching the maximum connection errors`\n ));\n return;\n }\n this.sendStack[reqId].lastTimeoutId = setTimeout(\n () => this.makeApiCall(reqId),\n this.options.attemptDelayMs ?? 3000\n );\n }\n\n protected makeApiCall(reqId: number): void {\n this.sendStack[reqId].attempts++;\n const bodyJson = JSON.stringify(this.sendStack[reqId].data);\n const headers: any = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n };\n\n headers.Authorization = `Bearer ${this.options.token}`;\n\n const params = new URLSearchParams(this.options.queryParams ?? {});\n const url = `${this.options.url}${params ? '?' + params : ''}`;\n\n fetch(url, {\n headers,\n body: bodyJson,\n method: 'POST',\n })\n .then(response => this.onMessage(reqId, response))\n .catch(() => this.onError(reqId, bodyJson));\n }\n}","export interface RestClientOptions {\n url?: string;\n token: string;\n}\n\nexport interface RestClientResponse<T> {\n ok: boolean;\n status: number;\n data: T;\n}\n\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n\nexport abstract class AbstractRestClient {\n protected abstract defaultUrl: string;\n\n public constructor(\n private readonly options: RestClientOptions,\n ) {}\n\n protected async send<ResponseT = any>(\n method: HttpMethod,\n uri: string,\n data: any = undefined,\n additionalHeaders: Record<string, string> = {},\n ): Promise<RestClientResponse<ResponseT>> {\n let url = this.getUrl(uri);\n let body = undefined;\n\n if (data) {\n if (['GET', 'DELETE'].includes(method)) {\n url += '?' + new URLSearchParams(data).toString()\n } else {\n body = JSON.stringify(data);\n }\n }\n\n const headers = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...additionalHeaders,\n ...this.getAuthHeaders(),\n };\n\n const result = await fetch(url, {method, body, headers});\n\n return this.convertFetchResponse(result);\n }\n\n protected getAuthHeaders(): any {\n const headers = {} as any;\n\n if (this.options.token) {\n headers.Authorization = `Bearer ${this.options.token}`;\n }\n\n return headers;\n }\n\n protected getUrl(uri: string): string {\n return this.removeEndingSlash(this.options.url ?? this.defaultUrl) + '/' + this.removeStartingSlash(uri);\n }\n\n protected async convertFetchResponse<T>(result: Response): Promise<RestClientResponse<T>> {\n return {\n ok: result.ok,\n status: result.status,\n data: result.headers.get('content-type')?.includes('json') ? await result.json() : await result.text(),\n };\n }\n\n private removeStartingSlash(text: string): string {\n return text.replace(/^\\/+/, '');\n }\n\n private removeEndingSlash(text: string): string {\n return text.replace(/\\/+$/, '');\n }\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\";\nimport {WebApiChatClient} from \"./WebApiChatClient\";\nimport {\n IndexedCollection,\n IndexedObjectCollection,\n ObservableIndexedCollection,\n ObservableIndexedObjectCollection\n} from \"./IndexedObjectCollection\";\nimport {FilesClient, File} from \"./FilesClient\";\nimport { Permissions, PermissionDefinition, Layer } from \"./Permissions\";\nimport * as ChatTypes from './types/src';\nimport {extractUserFromMember} from \"./state-tracker/functions\";\nimport {AbstractRestClient} from \"./AbstractRestClient\";\n\nexport {\n IndexedCollection, ObservableIndexedCollection,\n IndexedObjectCollection, ObservableIndexedObjectCollection,\n Permissions, PermissionDefinition, Layer,\n WebSocketChatClient, WebApiChatClient,\n FilesClient,\n AbstractRestClient,\n extractUserFromMember,\n};\n\nexport type {\n ChatTypes,\n File,\n};"],"names":["EventTarget","_classCallCheck","_defineProperty","Map","_createClass","key","value","on","eventName","handler","addHandler","events","once","onceEvents","off","_this$events$get","_this$events$get2","index","get","indexOf","undefined","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","createEnvelope","type","data","ref","sentCounter","toString","createPromiseFromCommandEnvelope","envelope","_this2","Promise","_len2","_key2","awaitingResponse","handleIncomingEnvelope","has","isError","error","handleEnvelopeSendError","IndexedCollection","items","apply","_toConsumableArray","_items","size","_i","item","id","delete","ids","_i2","_ids","deleteAll","clear","findBy","field","valueToFind","limit","Infinity","result","_iterator","_createForOfIteratorHelper","entries","_step","s","n","done","_step$value","_slicedToArray","err","e","f","createMirror","copy","IndexedObjectCollection","from","values","_this$_items","_len3","_key3","getId","getAt","_this$_items2","_iterator2","_step2","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","_superPropGet","setItems","_len5","_key5","deletedItems","keys","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","_this7","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","retainRatio","fetchLimit","lastFetchCount","oldestId","internalState","LATEST","includes","state","OLDEST","_resetToLatest","_callee","originalState","_context","fetchLatestItems","addItems","emitChangeWithDiff","resetToLatest","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","fetchPrevious","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","fetchNext","_jumpTo","_callee4","_context4","fetchItemsAround","jumpTo","_x","_refreshFetchedState","_callee5","_t","_context5","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","itemChanged","highWatermark","lowWatermark","Math","floor","slice","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","traverseLock","client","ev","handleNewMessage","handleMessagesRedacted","_setTraverseLock","_callee6","lock","_context6","setTraverseLock","_x2","_resetToLatest2","_callee7","_context7","_fetchNext2","_callee8","_context8","_fetchPrevious2","_callee9","_context9","_jumpTo2","_callee0","_context0","_x3","_updateMessageReference","refTopic","refMessage","_objectSpread","topicRef","_fetchItemsAfter","_callee1","_this$getAt","afterId","_context1","send","location","after","Error","message","messages","_fetchItemsAround","_callee10","_context10","around","_x4","_fetchItemsBefore","_callee11","_this$getAt2","beforeId","_context11","before","_fetchLatestItems","_callee12","_context12","_getTopic","_callee13","_context13","rooms","getTopics","getTopic","_getLatestMessageId","_callee14","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context14","lastMessage","getLatestMessageId","_isLatestItemLoaded","_callee15","lastMessageId","_context15","_handleNewMessage","_callee16","_context16","_x5","_handleMessagesRedacted","_callee17","refTopicIds","_context17","filter","msg","_x6","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","peek","topic","_args","historyWindows","getMessagesWindow","_handleRoomUpdated","_Array$from","_Array$from$_i","window","historyWindow","deletedTopicIds","_this2$tracker$rooms","_deleteTopicsFromRoom","refHistoryWindow","history","mode","MessagesManager","handleSession","handleRoomJoin","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","getRoomHistory","_resolveLastMessage2","_result$data","roomHistory","_resolveLastMessage","createHistoryForNewRoom","FollowedTopicsManager","handleFollowedTopicUpdated","handleTopicFollowed","handleTopicUnfollowed","_cacheForSpace","spaceId","roomIds","isAlreadyCached","spaceRegistryKey","spaces","every","followedTopics","followedTopicsPromises","setFollowedTopicsArray","cacheForSpace","_getForRoom","getForRoom","_ackRoom","collection","followedTopic","isUnread","ackRoom","_summarize","cacheKey","targetTopicId","mentionCount","_iterator3","_step3","_topic$mentionCount","summariesCache","summarize","_deleteByTopicIds","_this$followedTopics$","topicIds","invalidateUnreadSummaries","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","_this$followedTopics$3","clearRoomFollowedTopicsStructures","_handleNewTopic","_this$followedTopics$4","_iterator4","_step4","startsWith","_iterator5","_step5","invalidateUnreadSummariesForRooms","roomIdsSet","Set","_iterator6","_step6","parts","split","_updateLocallyFollowedTopicOnNewMessage","roomFollowedTopics","me","isMe","update","_member$spaceMember$r","_member$spaceMember","_member$roles","member","roleIds","mentionHandlers","mentionExists","getMe","author","user","missed","lastAckMessageId","spaceMember","roles","some","content","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_this6$followedTopics","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMemberJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","getMembers","_getMe","userId","list","find","_member$user$id","_member$user","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","_this3$topics$get2","_this$topics$get","deleteRoom","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get2","_this$followedTopics","deleteRoomsBySpaceId","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","newMember","_room$defaultTopic","addJoinedRoomTopics","_this$topics$get3","addJoinedRooms","_this$topics$get4","newRoom","_this$list2","_rooms","recipients","customColor","customNick","extras","_member$user$id2","_member$user2","_this$list3","newRooms","_room$recipients","_room$defaultTopic2","newTopic","messageCount","max","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","ManageRoles","CreateTopics","ManageTopic","Topic","ManageMemberProfiles","ManageMemberRoles","CreateMessages","ManagePermissions","CreateRooms","ManageRoom","CreateEmoticons","ManageEmoticons","ManageBans","Kick","ChangeOwnNick","ChangeOwnColor","RedactMessages","getOvId","target","roleId","join","getOvIdByObject","overwrites","PermissionsManager","handlePermissionOverwrites","_getOverwrites","validateLocation","overwritesPromises","getOverwrites","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","check","_calculatePermissions","_location$spaceId","_spaceMember$roles","_roomMember$roles","_yield$this$tracker$s","_yield$this$tracker$r","_yield$this$fetchMemb","_yield$this$fetchMemb2","userRoles","filterLocation","_filterLocation","_t6","_t7","_t8","_t9","_t0","fetchMembersOrFail","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me","_this$tracker$me2","prefix","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_x7","_x8","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","sort","b","reduce","previousValue","currentValue","_currentValue$overwri","_currentValue$overwri2","_currentValue$overwri3","_currentValue$overwri4","allow","deny","overwriteEvent","_overwrites$deny$toSt","_overwrites$deny","_overwrites$allow$toS","_overwrites$allow","revDecDenies","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","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","AbstractRestClient","uri","additionalHeaders","getUrl","getAuthHeaders","convertFetchResponse","_this$options$url","removeEndingSlash","defaultUrl","removeStartingSlash","_convertFetchResponse","_result$headers$get","status","text","replace","FilesClient","_AbstractRestClient","_uploadFile","file","_name","encodeURIComponent","uploadFile","_getFileMeta","getFileMeta","_getFileMetaBulk","searchParams","append","getFileMetaBulk"],"ignoreList":[],"sourceRoot":""}