polfan-server-js-client 0.2.91 → 0.2.92

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.umd.js","mappings":"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","sources":["webpack://PservClient/webpack/universalModuleDefinition","webpack://PservClient/webpack/bootstrap","webpack://PservClient/webpack/runtime/define property getters","webpack://PservClient/webpack/runtime/hasOwnProperty shorthand","webpack://PservClient/webpack/runtime/make namespace object","webpack://PservClient/./src/EventTarget.ts","webpack://PservClient/./src/AbstractChatClient.ts","webpack://PservClient/./src/IndexedObjectCollection.ts","webpack://PservClient/./src/state-tracker/AsyncUtils.ts","webpack://PservClient/./src/state-tracker/TopicHistoryWindow.ts","webpack://PservClient/./src/state-tracker/RoomMessagesHistory.ts","webpack://PservClient/./src/state-tracker/MessagesManager.ts","webpack://PservClient/./src/state-tracker/RoomsManager.ts","webpack://PservClient/./src/state-tracker/functions.ts","webpack://PservClient/./src/state-tracker/SpacesManager.ts","webpack://PservClient/./src/Permissions.ts","webpack://PservClient/./src/state-tracker/PermissionsManager.ts","webpack://PservClient/./src/state-tracker/EmoticonsManager.ts","webpack://PservClient/./src/state-tracker/UsersManager.ts","webpack://PservClient/./src/state-tracker/RelationshipsManager.ts","webpack://PservClient/./src/state-tracker/ChatStateTracker.ts","webpack://PservClient/./src/WebSocketChatClient.ts","webpack://PservClient/./src/WebApiChatClient.ts","webpack://PservClient/./src/AbstractRestClient.ts","webpack://PservClient/./src/FilesClient.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PservClient\"] = factory();\n\telse\n\t\troot[\"PservClient\"] = factory();\n})(this, () => {\nreturn ","// 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 TopicUnfollowed,\n FollowedTopics,\n FollowTopic,\n UnfollowTopic,\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} 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 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 // 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 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 = null): IndexedCollection<KeyT, ValueT> {\n const result = new IndexedCollection<KeyT, ValueT>();\n let item;\n while (!(item = this.items.entries().next().value).done) {\n if (limit && result.length === limit) {\n break;\n }\n if (item[1][field] === valueToFind) {\n result.set(item);\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 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 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 /**\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 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}","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 NewMessage,\n FollowedTopic,\n TopicFollowed,\n TopicUnfollowed,\n RoomDeleted,\n RoomLeft,\n TopicDeleted,\n FollowedTopicUpdated,\n RoomJoined,\n NewTopic,\n Session,\n Room,\n Message, ChatLocation,\n} from \"../types/src\";\nimport {\n IndexedCollection,\n ObservableIndexedObjectCollection\n} from \"../IndexedObjectCollection\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {RoomMessagesHistory} from \"./RoomMessagesHistory\";\n\nexport class MessagesManager {\n private readonly roomHistories = new IndexedCollection<string, RoomMessagesHistory>();\n private readonly followedTopics = new IndexedCollection<string, ObservableIndexedObjectCollection<FollowedTopic>>();\n private readonly followedTopicsPromises = new PromiseRegistry();\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('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 * 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 * 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 getRoomFollowedTopics\n */\n public async cacheSpaceFollowedTopics(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 roomIds = (await this.tracker.rooms.get()).findBy('spaceId', spaceId).items.map(room => room.id);\n\n if (! roomIds.length) {\n // We don't need to ping server for followed topics for this space, if user has no joined rooms\n return;\n }\n\n const resultPromise = this.tracker.client.send('GetFollowedTopics', {location: {spaceId}});\n\n roomIds.forEach(roomId => this.followedTopicsPromises.register(resultPromise, roomId));\n\n const result = await resultPromise;\n\n if (result.error) {\n throw result.error;\n }\n\n this.setFollowedTopicsArray(roomIds, result.data.followedTopics);\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 getRoomFollowedTopics(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 missed messages from any topics in given room.\n */\n public async ackRoomFollowedTopics(roomId: string): Promise<void> {\n const collection = await this.getRoomFollowedTopics(roomId);\n\n if (! collection) {\n return;\n }\n\n for (const followedTopic of collection.items) {\n if (followedTopic.missed) {\n await this.tracker.client.send('Ack', {location: followedTopic.location});\n }\n }\n }\n\n /**\n * Calculate missed messages from any topic in given room.\n * @return Undefined if you are not in room.\n */\n public async calculateRoomMissedMessages(roomId: string): Promise<number | undefined> {\n const collection = await this.getRoomFollowedTopics(roomId);\n\n if (collection) {\n return collection.items.reduce(\n (previousValue: number, currentValue) => previousValue + (currentValue.missed ?? 0),\n 0,\n ) as number;\n }\n\n return undefined;\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 }\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 handleNewMessage(ev: NewMessage): void {\n this.updateLocallyFollowedTopicOnNewMessage(ev);\n }\n\n private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {\n this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);\n }\n\n private handleTopicFollowed(ev: TopicFollowed): void {\n this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);\n }\n\n private handleTopicUnfollowed(ev: TopicUnfollowed): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.roomHistories.delete(ev.id);\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.createHistoryForNewRoom(ev.room)\n this.clearRoomFollowedTopicsStructures(ev.room.id);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.roomHistories.delete(ev.id);\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 }\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n }\n\n private handleSession(ev: Session): void {\n this.followedTopics.deleteAll();\n this.followedTopicsPromises.forgetAll();\n this.roomHistories.deleteAll();\n ev.state.rooms.forEach(room => this.createHistoryForNewRoom(room));\n this.deferredSession.resolve();\n }\n\n private updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): 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 targeted topic or the message is ephemeral\n return;\n }\n\n const isMe = ev.message.author.user.id === this.tracker.me?.id;\n\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 {\n // ...add 1 otherwise\n update = {missed: followedTopic.missed === null ? null : followedTopic.missed + 1};\n }\n\n roomFollowedTopics.set({...followedTopic, ...update});\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\n private clearRoomFollowedTopicsStructures(roomId: string): void {\n this.followedTopics.delete(roomId);\n this.followedTopicsPromises.forget(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\";\n\nexport class RoomsManager {\n public readonly messages: MessagesManager;\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\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.messages._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 const roomMember = roomMembers.get(ev.userId);\n const user = roomMember.spaceMember.user;\n\n // Update space member but first fill user object (it's null in event object)\n roomMember.spaceMember = {...ev.member, user};\n roomMembers.set(roomMember);\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 room.defaultTopic = ev.topic;\n this.list.set(room);\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}"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","EventTarget","_classCallCheck","_defineProperty","Map","eventName","handler","addHandler","events","onceEvents","_this$events$get","_this$events$get2","index","indexOf","undefined","splice","event","callHandlers","map","_map$get","handlers","push","set","_map$get2","forEach","callback","AbstractChatClient","_EventTarget","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","_inherits","type","data","ref","sentCounter","toString","envelope","_this2","Promise","_len2","_key2","awaitingResponse","has","isError","error","IndexedCollection","items","apply","_toConsumableArray","_createClass","_items","size","_i","item","id","ids","_i2","_ids","clear","field","valueToFind","limit","result","entries","next","done","copy","IndexedObjectCollection","from","values","_this$_items","_len3","_key3","getId","_this$_items2","deleteAll","_step","_iterator","_createForOfIteratorHelper","s","n","err","e","f","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","_superPropGet","emit","setItems","_len5","_key5","deletedItems","keys","on","once","off","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","_this7","DeferredTask","promise","resolve","PromiseRegistry","promises","fn","register","_this$promises","t","r","iterator","i","c","Generator","u","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","_invoke","configurable","writable","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","_typeof","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","valueOf","_setPrototypeOf","toPrimitive","String","Number","_toPrimitive","WindowState","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","internalState","traverseLock","client","ev","handleNewMessage","handleMessagesRedacted","_setTraverseLock","_callee5","lock","_context5","state","LIVE","LATEST","_x","_resetToLatest2","_callee6","_context6","_fetchNext2","_callee7","_context7","_fetchPrevious2","_callee8","_context8","refTopic","refMessage","_objectSpread","topicRef","_fetchItemsAfter","_callee9","_this$getAt","afterId","_context9","getAt","send","location","after","fetchLimit","Error","message","messages","_fetchItemsBefore","_callee0","_this$getAt2","beforeId","_context0","before","_fetchLatestItems","_callee1","_context1","_getTopic","_callee10","_context10","rooms","getTopics","_getLatestMessageId","_callee11","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context11","getTopic","lastMessage","_isLatestItemLoaded","_callee12","lastMessageId","_context12","getLatestMessageId","_handleNewMessage","_callee13","originalState","_context13","includes","addItems","emitChangeWithDiff","_x2","_handleMessagesRedacted","_callee14","refTopicIds","_context14","filter","msg","resetToLatest","_x3","_ObservableIndexedObj","TraversableRemoteCollection","current","ongoing","retainRatio","lastFetchCount","oldestId","OLDEST","_resetToLatest","_callee","_context","fetchLatestItems","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","_refreshFetchedState","_callee4","_t","_context4","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","itemChanged","highWatermark","lowWatermark","Math","floor","slice","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","peek","topic","_args","historyWindows","_handleRoomUpdated","_Array$from","_Array$from$_i","window","_slicedToArray","setTraverseLock","historyWindow","deletedTopicIds","_this2$tracker$rooms","_deleteTopicsFromRoom","refHistoryWindow","_updateMessageReference","history","mode","MessagesManager","handleSession","handleRoomJoin","handleFollowedTopicUpdated","handleTopicFollowed","handleTopicUnfollowed","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","_cacheSpaceFollowedTopics","spaceId","roomIds","resultPromise","spaces","findBy","followedTopicsPromises","setFollowedTopicsArray","followedTopics","_getRoomFollowedTopics","notExist","registerByFunction","_ackRoomFollowedTopics","collection","followedTopic","getRoomFollowedTopics","missed","_x4","_calculateRoomMissedMessages","reduce","previousValue","currentValue","_currentValue$missed","_x5","_this$followedTopics$","topicIds","_resolveLastMessage2","_result$data","getRoomHistory","roomHistory","getMessagesWindow","_x6","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","_this$followedTopics$3","clearRoomFollowedTopicsStructures","createHistoryForNewRoom","_handleNewTopic","_x7","_this$followedTopics$4","forgetAll","_this$tracker$me","update","roomFollowedTopics","author","user","me","lastAckMessageId","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_this5$followedTopics","forget","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMemberJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","_getMe","userId","getMe","list","getMembers","find","member","_member$user$id","_member$user","spaceMember","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","_this3$topics$get2","_this$topics$get","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get2","_this$messages","_deleteByTopicIds","deleteRoom","_step2","_iterator2","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","_member$spaceMember","newMember","deleteRoomsBySpaceId","_room$defaultTopic","addJoinedRoomTopics","_this$topics$get3","addJoinedRooms","_this$topics$get4","_this$list2","_rooms","recipients","roles","customColor","customNick","extras","_member$user$id2","_member$user2","_this$list3","newRooms","_room$recipients","some","_room$defaultTopic2","newTopic","messageCount","max","_resolveLastMessage","extractUserFromMember","_spaceMember","SpacesManager","handleNewRoom","handleSpaceUpdated","handleSpaceJoined","handleSpaceMemberJoined","handleSpaceMembers","handleSpaceRooms","handleRoomSummaryUpdated","handleNewRole","handleRoleDeleted","handleRoleUpdated","_getRoles","_getRooms","roomsPromises","role","_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","oldRole","newRole","rolesToUpdate","priority","allRoles","updatedRole","increased","decreased","changedRoles","reorderRolesOnPriorityUpdate","Layer","PermissionDefinition","Permissions","permissionName","layer","getByName","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","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","_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","getOverwrites","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me2","prefix","startsWith","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_x8","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","getRoles","sort","b","_currentValue$overwri","_currentValue$overwri2","_currentValue$overwri3","_currentValue$overwri4","allow","deny","overwriteEvent","_overwrites$deny$toSt","_overwrites$deny","_overwrites$allow$toS","_overwrites$allow","revDecDenies","split","reverse","revDecAllows","_revDecDenies$i","_revDecAllows$i","parseInt","_x9","_x0","permissionOverwritesValues","getRootAccessValue","getNames","_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","users","_getAvailable","session","_this$users","newUser","oldUser","online","onlineStatus","refUserId","getIdFromRelationship","relationship","refUser","RelationshipsManager","handleRelationships","handleNewRelationship","handleRelationshipDeleted","relationships","_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","_this$ws","sendQueue","close","_send","commandType","commandData","createEnvelope","createPromiseFromCommandEnvelope","sendEnvelope","_this$ws$readyState","_this$ws2","isReady","JSON","stringify","handleEnvelopeSendError","readyState","lastReceivedMessageAt","Date","now","parse","handleIncomingEnvelope","Event","isAuthenticated","startConnectionMonitor","connect","sendFromQueue","stopConnectionMonitor","clearTimeout","reconnect","code","disconnect","lastDelay","_loop","_this3$options$awaitQ","dataIndex","awaitQueueSendDelayMs","CONNECTING","OPEN","pingMonitorInterval","setInterval","inFlightPingTimeout","clearInterval","WebApiChatClientEvent","WebApiChatClient","sendStack","attempts","lastTimeoutId","makeApiCall","destroy","_onMessage","reqId","response","json","body","_this$options$attempt","_this$options$attempt2","attemptsToSend","attemptDelayMs","bodyJson","headers","Accept","Authorization","fetch","method","onError","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","_getFileMeta","_getFileMetaBulk","searchParams","append"],"ignoreList":[],"sourceRoot":""}
1
+ {"version":3,"file":"index.umd.js","mappings":"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","sources":["webpack://PservClient/webpack/universalModuleDefinition","webpack://PservClient/webpack/bootstrap","webpack://PservClient/webpack/runtime/define property getters","webpack://PservClient/webpack/runtime/hasOwnProperty shorthand","webpack://PservClient/webpack/runtime/make namespace object","webpack://PservClient/./src/EventTarget.ts","webpack://PservClient/./src/AbstractChatClient.ts","webpack://PservClient/./src/IndexedObjectCollection.ts","webpack://PservClient/./src/state-tracker/AsyncUtils.ts","webpack://PservClient/./src/state-tracker/TopicHistoryWindow.ts","webpack://PservClient/./src/state-tracker/RoomMessagesHistory.ts","webpack://PservClient/./src/state-tracker/MessagesManager.ts","webpack://PservClient/./src/state-tracker/RoomsManager.ts","webpack://PservClient/./src/state-tracker/functions.ts","webpack://PservClient/./src/state-tracker/SpacesManager.ts","webpack://PservClient/./src/Permissions.ts","webpack://PservClient/./src/state-tracker/PermissionsManager.ts","webpack://PservClient/./src/state-tracker/EmoticonsManager.ts","webpack://PservClient/./src/state-tracker/UsersManager.ts","webpack://PservClient/./src/state-tracker/RelationshipsManager.ts","webpack://PservClient/./src/state-tracker/ChatStateTracker.ts","webpack://PservClient/./src/WebSocketChatClient.ts","webpack://PservClient/./src/WebApiChatClient.ts","webpack://PservClient/./src/AbstractRestClient.ts","webpack://PservClient/./src/FilesClient.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PservClient\"] = factory();\n\telse\n\t\troot[\"PservClient\"] = factory();\n})(this, () => {\nreturn ","// 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 TopicUnfollowed,\n FollowedTopics,\n FollowTopic,\n UnfollowTopic,\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} 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 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 // 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 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 = null): IndexedCollection<KeyT, ValueT> {\n const result = new IndexedCollection<KeyT, ValueT>();\n let item;\n while (!(item = this.items.entries().next().value).done) {\n if (limit && result.length === limit) {\n break;\n }\n if (item[1][field] === valueToFind) {\n result.set(item);\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 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 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 /**\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 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}","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 NewMessage,\n FollowedTopic,\n TopicFollowed,\n TopicUnfollowed,\n RoomDeleted,\n RoomLeft,\n TopicDeleted,\n FollowedTopicUpdated,\n RoomJoined,\n NewTopic,\n Session,\n Room,\n Message, ChatLocation,\n} from \"../types/src\";\nimport {\n IndexedCollection,\n ObservableIndexedObjectCollection\n} from \"../IndexedObjectCollection\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {RoomMessagesHistory} from \"./RoomMessagesHistory\";\n\nexport class MessagesManager {\n private readonly roomHistories = new IndexedCollection<string, RoomMessagesHistory>();\n private readonly followedTopics = new IndexedCollection<string, ObservableIndexedObjectCollection<FollowedTopic>>();\n private readonly followedTopicsPromises = new PromiseRegistry();\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('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 * 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 * 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 getRoomFollowedTopics\n */\n public async cacheSpaceFollowedTopics(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 roomIds = (await this.tracker.rooms.get()).findBy('spaceId', spaceId).items.map(room => room.id);\n\n if (! roomIds.length) {\n // We don't need to ping server for followed topics for this space, if user has no joined rooms\n return;\n }\n\n const resultPromise = this.tracker.client.send('GetFollowedTopics', {location: {spaceId}});\n\n roomIds.forEach(roomId => this.followedTopicsPromises.register(resultPromise, roomId));\n\n const result = await resultPromise;\n\n if (result.error) {\n throw result.error;\n }\n\n this.setFollowedTopicsArray(roomIds, result.data.followedTopics);\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 getRoomFollowedTopics(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 missed messages from any topics in given room.\n */\n public async ackRoomFollowedTopics(roomId: string): Promise<void> {\n const collection = await this.getRoomFollowedTopics(roomId);\n\n if (! collection) {\n return;\n }\n\n for (const followedTopic of collection.items) {\n if (followedTopic.missed) {\n await this.tracker.client.send('Ack', {location: followedTopic.location});\n }\n }\n }\n\n /**\n * Calculate missed messages from any topic in given room.\n * @return Undefined if you are not in room.\n */\n public async calculateRoomMissedMessages(roomId: string): Promise<number | undefined> {\n const collection = await this.getRoomFollowedTopics(roomId);\n\n if (collection) {\n return collection.items.reduce(\n (previousValue: number, currentValue) => previousValue + (currentValue.missed ?? 0),\n 0,\n ) as number;\n }\n\n return undefined;\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 }\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 handleNewMessage(ev: NewMessage): void {\n this.updateLocallyFollowedTopicOnNewMessage(ev);\n }\n\n private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {\n this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);\n }\n\n private handleTopicFollowed(ev: TopicFollowed): void {\n this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);\n }\n\n private handleTopicUnfollowed(ev: TopicUnfollowed): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.roomHistories.delete(ev.id);\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.createHistoryForNewRoom(ev.room)\n this.clearRoomFollowedTopicsStructures(ev.room.id);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.roomHistories.delete(ev.id);\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 }\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n }\n\n private handleSession(ev: Session): void {\n this.followedTopics.deleteAll();\n this.followedTopicsPromises.forgetAll();\n this.roomHistories.deleteAll();\n ev.state.rooms.forEach(room => this.createHistoryForNewRoom(room));\n this.deferredSession.resolve();\n }\n\n private updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): 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 targeted topic or the message is ephemeral\n return;\n }\n\n const isMe = ev.message.author.user.id === this.tracker.me?.id;\n\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 {\n // ...add 1 otherwise\n update = {missed: followedTopic.missed === null ? null : followedTopic.missed + 1};\n }\n\n roomFollowedTopics.set({...followedTopic, ...update});\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\n private clearRoomFollowedTopicsStructures(roomId: string): void {\n this.followedTopics.delete(roomId);\n this.followedTopicsPromises.forget(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\";\n\nexport class RoomsManager {\n public readonly messages: MessagesManager;\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\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.messages._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}"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","EventTarget","_classCallCheck","_defineProperty","Map","eventName","handler","addHandler","events","onceEvents","_this$events$get","_this$events$get2","index","indexOf","undefined","splice","event","callHandlers","map","_map$get","handlers","push","set","_map$get2","forEach","callback","AbstractChatClient","_EventTarget","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","_inherits","type","data","ref","sentCounter","toString","envelope","_this2","Promise","_len2","_key2","awaitingResponse","has","isError","error","IndexedCollection","items","apply","_toConsumableArray","_createClass","_items","size","_i","item","id","ids","_i2","_ids","clear","field","valueToFind","limit","result","entries","next","done","copy","IndexedObjectCollection","from","values","_this$_items","_len3","_key3","getId","_this$_items2","deleteAll","_step","_iterator","_createForOfIteratorHelper","s","n","err","e","f","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","_superPropGet","emit","setItems","_len5","_key5","deletedItems","keys","on","once","off","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","_this7","DeferredTask","promise","resolve","PromiseRegistry","promises","fn","register","_this$promises","t","r","iterator","i","c","Generator","u","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","_invoke","configurable","writable","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","_typeof","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","valueOf","_setPrototypeOf","toPrimitive","String","Number","_toPrimitive","WindowState","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","internalState","traverseLock","client","ev","handleNewMessage","handleMessagesRedacted","_setTraverseLock","_callee5","lock","_context5","state","LIVE","LATEST","_x","_resetToLatest2","_callee6","_context6","_fetchNext2","_callee7","_context7","_fetchPrevious2","_callee8","_context8","refTopic","refMessage","_objectSpread","topicRef","_fetchItemsAfter","_callee9","_this$getAt","afterId","_context9","getAt","send","location","after","fetchLimit","Error","message","messages","_fetchItemsBefore","_callee0","_this$getAt2","beforeId","_context0","before","_fetchLatestItems","_callee1","_context1","_getTopic","_callee10","_context10","rooms","getTopics","_getLatestMessageId","_callee11","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context11","getTopic","lastMessage","_isLatestItemLoaded","_callee12","lastMessageId","_context12","getLatestMessageId","_handleNewMessage","_callee13","originalState","_context13","includes","addItems","emitChangeWithDiff","_x2","_handleMessagesRedacted","_callee14","refTopicIds","_context14","filter","msg","resetToLatest","_x3","_ObservableIndexedObj","TraversableRemoteCollection","current","ongoing","retainRatio","lastFetchCount","oldestId","OLDEST","_resetToLatest","_callee","_context","fetchLatestItems","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","_refreshFetchedState","_callee4","_t","_context4","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","itemChanged","highWatermark","lowWatermark","Math","floor","slice","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","peek","topic","_args","historyWindows","_handleRoomUpdated","_Array$from","_Array$from$_i","window","_slicedToArray","setTraverseLock","historyWindow","deletedTopicIds","_this2$tracker$rooms","_deleteTopicsFromRoom","refHistoryWindow","_updateMessageReference","history","mode","MessagesManager","handleSession","handleRoomJoin","handleFollowedTopicUpdated","handleTopicFollowed","handleTopicUnfollowed","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","_cacheSpaceFollowedTopics","spaceId","roomIds","resultPromise","spaces","findBy","followedTopicsPromises","setFollowedTopicsArray","followedTopics","_getRoomFollowedTopics","notExist","registerByFunction","_ackRoomFollowedTopics","collection","followedTopic","getRoomFollowedTopics","missed","_x4","_calculateRoomMissedMessages","reduce","previousValue","currentValue","_currentValue$missed","_x5","_this$followedTopics$","topicIds","_resolveLastMessage2","_result$data","getRoomHistory","roomHistory","getMessagesWindow","_x6","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","_this$followedTopics$3","clearRoomFollowedTopicsStructures","createHistoryForNewRoom","_handleNewTopic","_x7","_this$followedTopics$4","forgetAll","_this$tracker$me","update","roomFollowedTopics","author","user","me","lastAckMessageId","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_this5$followedTopics","forget","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMemberJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","_getMe","userId","getMe","list","getMembers","find","member","_member$user$id","_member$user","spaceMember","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","_this3$topics$get2","_this$topics$get","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get2","_this$messages","_deleteByTopicIds","deleteRoom","_step2","_iterator2","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","_member$spaceMember","newMember","deleteRoomsBySpaceId","_room$defaultTopic","addJoinedRoomTopics","_this$topics$get3","addJoinedRooms","_this$topics$get4","newRoom","_this$list2","_rooms","recipients","roles","customColor","customNick","extras","_member$user$id2","_member$user2","_this$list3","newRooms","_room$recipients","some","_room$defaultTopic2","newTopic","messageCount","max","_resolveLastMessage","extractUserFromMember","_spaceMember","SpacesManager","handleNewRoom","handleSpaceUpdated","handleSpaceJoined","handleSpaceMemberJoined","handleSpaceMembers","handleSpaceRooms","handleRoomSummaryUpdated","handleNewRole","handleRoleDeleted","handleRoleUpdated","_getRoles","_getRooms","roomsPromises","role","_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","oldRole","newRole","rolesToUpdate","priority","allRoles","updatedRole","increased","decreased","changedRoles","reorderRolesOnPriorityUpdate","Layer","PermissionDefinition","Permissions","permissionName","layer","getByName","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","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","_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","getOverwrites","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me2","prefix","startsWith","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_x8","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","getRoles","sort","b","_currentValue$overwri","_currentValue$overwri2","_currentValue$overwri3","_currentValue$overwri4","allow","deny","overwriteEvent","_overwrites$deny$toSt","_overwrites$deny","_overwrites$allow$toS","_overwrites$allow","revDecDenies","split","reverse","revDecAllows","_revDecDenies$i","_revDecAllows$i","parseInt","_x9","_x0","permissionOverwritesValues","getRootAccessValue","getNames","_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","users","_getAvailable","session","_this$users","newUser","oldUser","online","onlineStatus","refUserId","getIdFromRelationship","relationship","refUser","RelationshipsManager","handleRelationships","handleNewRelationship","handleRelationshipDeleted","relationships","_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","_this$ws","sendQueue","close","_send","commandType","commandData","createEnvelope","createPromiseFromCommandEnvelope","sendEnvelope","_this$ws$readyState","_this$ws2","isReady","JSON","stringify","handleEnvelopeSendError","readyState","lastReceivedMessageAt","Date","now","parse","handleIncomingEnvelope","Event","isAuthenticated","startConnectionMonitor","connect","sendFromQueue","stopConnectionMonitor","clearTimeout","reconnect","code","disconnect","lastDelay","_loop","_this3$options$awaitQ","dataIndex","awaitQueueSendDelayMs","CONNECTING","OPEN","pingMonitorInterval","setInterval","inFlightPingTimeout","clearInterval","WebApiChatClientEvent","WebApiChatClient","sendStack","attempts","lastTimeoutId","makeApiCall","destroy","_onMessage","reqId","response","json","body","_this$options$attempt","_this$options$attempt2","attemptsToSend","attemptDelayMs","bodyJson","headers","Accept","Authorization","fetch","method","onError","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","_getFileMeta","_getFileMetaBulk","searchParams","append"],"ignoreList":[],"sourceRoot":""}