polfan-server-js-client 0.2.90 → 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.
- package/.idea/workspace.xml +21 -23
- package/build/index.cjs.js +165 -138
- package/build/index.cjs.js.map +1 -1
- package/build/index.umd.js +1 -1
- package/build/index.umd.js.map +1 -1
- package/build/types/state-tracker/TopicHistoryWindow.d.ts +3 -2
- package/package.json +1 -1
- package/src/state-tracker/RoomsManager.ts +8 -8
- package/src/state-tracker/TopicHistoryWindow.ts +51 -38
package/build/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","mappings":"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","sources":["webpack://polfan-server-js-client/webpack/bootstrap","webpack://polfan-server-js-client/webpack/runtime/define property getters","webpack://polfan-server-js-client/webpack/runtime/hasOwnProperty shorthand","webpack://polfan-server-js-client/webpack/runtime/make namespace object","webpack://polfan-server-js-client/./src/EventTarget.ts","webpack://polfan-server-js-client/./src/AbstractChatClient.ts","webpack://polfan-server-js-client/./src/IndexedObjectCollection.ts","webpack://polfan-server-js-client/./src/state-tracker/AsyncUtils.ts","webpack://polfan-server-js-client/./src/state-tracker/TopicHistoryWindow.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomMessagesHistory.ts","webpack://polfan-server-js-client/./src/state-tracker/MessagesManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/functions.ts","webpack://polfan-server-js-client/./src/state-tracker/SpacesManager.ts","webpack://polfan-server-js-client/./src/Permissions.ts","webpack://polfan-server-js-client/./src/state-tracker/PermissionsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/EmoticonsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/UsersManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RelationshipsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/ChatStateTracker.ts","webpack://polfan-server-js-client/./src/WebSocketChatClient.ts","webpack://polfan-server-js-client/./src/WebApiChatClient.ts","webpack://polfan-server-js-client/./src/AbstractRestClient.ts","webpack://polfan-server-js-client/./src/FilesClient.ts","webpack://polfan-server-js-client/./src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export type EventHandler<EventT> = (ev?: EventT) => void;\ntype HandlersMap = Map<string, EventHandler<any>[]>;\ntype EventMapLike = Record<string, any>;\ntype KnownEventNames<EventT> = EventT extends EventMapLike ? keyof EventT & string : string;\ntype EventPayload<EventT, EventName extends string = never> = EventT extends EventMapLike\n ? [EventName] extends [never]\n ? EventT[keyof EventT]\n : EventName extends keyof EventT\n ? EventT[EventName]\n : EventT[keyof EventT]\n : EventT;\n\nexport type ChangeEventMap<Payload = void> = { change: Payload };\n\nexport interface ObservableInterface<EventT = any> {\n on<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n on(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n once<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n once(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n off<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n off(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n}\n\nexport class EventTarget<EventMapT extends Record<string, any> = Record<string, any>> implements ObservableInterface<EventMapT> {\n protected events: HandlersMap = new Map<string, EventHandler<any>[]>();\n protected onceEvents: HandlersMap = new Map<string, EventHandler<any>[]>();\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public on(eventName: string, handler: EventHandler<unknown>): this;\n public on(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.events, eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public once(eventName: string, handler: EventHandler<unknown>): this;\n public once(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.onceEvents, eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public off(eventName: string, handler: EventHandler<unknown>): this;\n public off(eventName: string, handler: EventHandler<any>): this {\n const index = this.events.get(eventName)?.indexOf(handler);\n if (index === undefined || index < 0) {\n return this;\n }\n this.events.get(eventName)?.splice(index, 1);\n return this;\n }\n\n public emit<K extends keyof EventMapT & string>(eventName: K, event: EventMapT[K]): this;\n public emit(eventName: string, event?: unknown): this;\n public emit(eventName: string, event?: any): this {\n this.callHandlers(this.events, eventName, event);\n this.callHandlers(this.onceEvents, eventName, event);\n this.onceEvents.delete(eventName);\n return this;\n }\n\n private addHandler(map: HandlersMap, eventName: string, handler: EventHandler<any>): void {\n const handlers = map.get(eventName) ?? [];\n handlers.push(handler);\n map.set(eventName, handlers);\n }\n\n private callHandlers(map: HandlersMap, eventName: string, event: unknown): void {\n map.get(eventName)?.forEach(callback => callback(event));\n }\n}","import {\n Bye,\n GetSession,\n JoinSpace,\n Session,\n SpaceJoined,\n Error as ErrorType,\n SpaceLeft,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMemberUpdated,\n SpaceDeleted,\n SpaceMembers,\n SpaceRooms,\n NewRole,\n RoomDeleted,\n RoomJoined,\n RoomLeft,\n RoomMemberLeft,\n RoomMemberJoined,\n RoomMembers,\n NewRoom,\n NewTopic,\n TopicDeleted,\n NewMessage,\n GetPermissionOverwrites,\n GetComputedPermissions,\n LeaveSpace,\n CreateSpace,\n DeleteSpace,\n GetSpaceMembers,\n GetSpaceRooms,\n CreateRole,\n DeleteRole,\n AssignRole,\n DeassignRole,\n SetPermissionOverwrites,\n JoinRoom,\n LeaveRoom,\n CreateRoom,\n DeleteRoom,\n GetRoomMembers,\n CreateTopic,\n DeleteTopic,\n CreateMessage,\n Envelope,\n PermissionOverwrites,\n PermissionOverwritesUpdated,\n RoomMemberUpdated,\n UpdateRole,\n RoleUpdated,\n Ack,\n UserUpdated,\n UpdateRoom,\n RoomUpdated,\n UpdateSpace,\n SpaceUpdated,\n PermissionOverwriteTargets,\n GetPermissionOverwriteTargets,\n Owners,\n Ok,\n GetOwners,\n CreateOwner,\n RoleDeleted,\n FollowedTopicUpdated,\n TopicFollowed,\n 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 this.internalState.ongoing = WindowState.LATEST;\n\n let result;\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 }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.ongoing || this.hasOldest) {\n return;\n }\n\n this.internalState.ongoing = WindowState.PAST;\n\n let result;\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 return;\n }\n\n this.addItems(result, 'head');\n await this.refreshFetchedState();\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.ongoing || this.hasLatest) {\n return;\n }\n\n this.internalState.ongoing = WindowState.PAST;\n\n let result;\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 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 this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.set(...result);\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 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 this.addItems([ev.message], 'tail');\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n if (ev.location.topicId !== this.topicId || ev.location.roomId !== this.roomId) {\n return;\n }\n\n const refTopicIds = this.items\n .filter(msg => msg.topicRef && ev.ids.includes(msg.id))\n .map(msg => msg.topicRef as string);\n\n this.delete(...ev.ids);\n\n if (this.length === 0) {\n await this.resetToLatest();\n }\n\n if (refTopicIds.length > 0) {\n this.eventTarget.emit('reftopicsdeleted', refTopicIds);\n }\n }\n\n 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}","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}","import {WebSocketChatClient} from \"./WebSocketChatClient\";\nimport {WebApiChatClient} from \"./WebApiChatClient\";\nimport {\n IndexedCollection,\n IndexedObjectCollection,\n ObservableIndexedCollection,\n ObservableIndexedObjectCollection\n} from \"./IndexedObjectCollection\";\nimport {FilesClient, File} from \"./FilesClient\";\nimport { Permissions, PermissionDefinition, Layer } from \"./Permissions\";\nimport * as ChatTypes from './types/src';\nimport {extractUserFromMember} from \"./state-tracker/functions\";\nimport {AbstractRestClient} from \"./AbstractRestClient\";\n\nexport {\n IndexedCollection, ObservableIndexedCollection,\n IndexedObjectCollection, ObservableIndexedObjectCollection,\n Permissions, PermissionDefinition, Layer,\n WebSocketChatClient, WebApiChatClient,\n FilesClient,\n AbstractRestClient,\n extractUserFromMember,\n};\n\nexport type {\n ChatTypes,\n File,\n};"],"names":["EventTarget","_classCallCheck","_defineProperty","Map","_createClass","key","value","on","eventName","handler","addHandler","events","once","onceEvents","off","_this$events$get","_this$events$get2","index","get","indexOf","undefined","splice","emit","event","callHandlers","map","_map$get","handlers","push","set","_map$get2","forEach","callback","AbstractChatClient","_EventTarget","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","_inherits","createEnvelope","type","data","ref","sentCounter","toString","createPromiseFromCommandEnvelope","envelope","_this2","Promise","_len2","_key2","awaitingResponse","handleIncomingEnvelope","has","isError","error","handleEnvelopeSendError","IndexedCollection","items","apply","_toConsumableArray","_items","size","_i","item","id","delete","ids","_i2","_ids","deleteAll","clear","findBy","field","valueToFind","limit","result","entries","next","done","createMirror","copy","IndexedObjectCollection","from","values","_this$_items","_len3","_key3","getId","getAt","_this$_items2","_iterator","_createForOfIteratorHelper","_step","s","n","err","e","f","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","_superPropGet","setItems","_len5","_key5","deletedItems","keys","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","_this7","DeferredTask","promise","resolve","PromiseRegistry","register","promises","registerByFunction","fn","notExist","forget","_this$promises","forgetAll","t","r","Symbol","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","call","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","_typeof","_assertThisInitialized","ReferenceError","Boolean","valueOf","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","WindowState","TraversableRemoteCollection","_ObservableIndexedObj","current","LIVE","ongoing","retainRatio","fetchLimit","lastFetchCount","oldestId","internalState","LATEST","includes","state","OLDEST","_resetToLatest","_callee","_context","fetchLatestItems","addItems","resetToLatest","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","fetchPrevious","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","fetchNext","_refreshFetchedState","_callee4","_t","_context4","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","highWatermark","lowWatermark","Math","floor","slice","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","traverseLock","client","ev","handleNewMessage","handleMessagesRedacted","_setTraverseLock","_callee5","lock","_context5","setTraverseLock","_x","_resetToLatest2","_callee6","_context6","_fetchNext2","_callee7","_context7","_fetchPrevious2","_callee8","_context8","_updateMessageReference","refTopic","refMessage","_objectSpread","topicRef","_handleNewMessage","_callee9","_context9","message","location","_x2","_handleMessagesRedacted","_callee0","refTopicIds","_context0","filter","msg","_x3","_fetchItemsAfter","_callee1","_this$getAt","afterId","_context1","send","after","Error","messages","_fetchItemsBefore","_callee10","_this$getAt2","beforeId","_context10","before","_fetchLatestItems","_callee11","_context11","_getTopic","_callee12","_context12","rooms","getTopics","getTopic","_getLatestMessageId","_callee13","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context13","lastMessage","getLatestMessageId","_isLatestItemLoaded","_callee14","lastMessageId","_context14","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","peek","topic","_args","historyWindows","getMessagesWindow","_handleRoomUpdated","_Array$from","_Array$from$_i","window","_slicedToArray","historyWindow","deletedTopicIds","_this2$tracker$rooms","_deleteTopicsFromRoom","refHistoryWindow","history","mode","MessagesManager","handleSession","handleRoomJoin","handleFollowedTopicUpdated","handleTopicFollowed","handleTopicUnfollowed","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","getRoomHistory","_cacheSpaceFollowedTopics","spaceId","roomIds","resultPromise","spaces","followedTopicsPromises","setFollowedTopicsArray","followedTopics","cacheSpaceFollowedTopics","_getRoomFollowedTopics","getRoomFollowedTopics","_ackRoomFollowedTopics","collection","followedTopic","missed","ackRoomFollowedTopics","_x4","_calculateRoomMissedMessages","reduce","previousValue","currentValue","_currentValue$missed","calculateRoomMissedMessages","_x5","_deleteByTopicIds","_this$followedTopics$","topicIds","_resolveLastMessage2","_result$data","roomHistory","_resolveLastMessage","_x6","createHistoryForNewRoom","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","_this$followedTopics$3","clearRoomFollowedTopicsStructures","_handleNewTopic","_x7","_this$followedTopics$4","_this$tracker$me","roomFollowedTopics","isMe","author","user","me","update","lastAckMessageId","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_this5$followedTopics","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMemberJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","getMembers","_getMe","userId","getMe","list","find","member","_member$user$id","_member$user","spaceMember","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","_this3$topics$get2","_this$topics$get","deleteRoom","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get2","_this$messages","deleteRoomsBySpaceId","_iterator2","_step2","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","_member$spaceMember","newMember","_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","reorderRolesOnPriorityUpdate","allRoles","oldRole","updatedRole","increased","priority","decreased","changedRoles","role","extractUserFromMember","_spaceMember","SpacesManager","handleNewRoom","handleSpaceUpdated","handleSpaceJoined","handleSpaceMemberJoined","handleSpaceMembers","handleSpaceRooms","handleRoomSummaryUpdated","handleNewRole","handleRoleDeleted","handleRoleUpdated","_getRoles","getRoles","_getRooms","roomsPromises","getRooms","_this$rooms$get","summary","roomIdToSpaceId","name","description","_handleRoomDeleted","_this$rooms$get2","space","spaceChanged","systemRoom","defaultRooms","_this$rooms$get$items","_this$rooms$get3","_this$roomIdToSpaceId","addJoinedSpaces","_this$roles","summaries","_handleRoomSummaryUpdated","summariesPromise","oldSummary","newSummary","_this$roles$get","newRole","rolesToUpdate","Layer","PermissionDefinition","Permissions","getNames","getByName","canBeDefinedOnLayer","permissionName","layer","def","maxLayer","Root","Room","CreateSpaces","Global","ManageSpace","Space","ManageRoles","CreateTopics","ManageTopic","Topic","ManageMemberProfiles","ManageMemberRoles","CreateMessages","ManagePermissions","CreateRooms","ManageRoom","CreateEmoticons","ManageEmoticons","ManageBans","Kick","ChangeOwnNick","ChangeOwnColor","RedactMessages","getOvId","target","roleId","join","getOvIdByObject","overwrites","PermissionsManager","handlePermissionOverwrites","_getOverwrites","validateLocation","overwritesPromises","getOverwrites","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","check","_calculatePermissions","_location$spaceId","_spaceMember$roles","_roomMember$roles","_yield$this$tracker$s","_yield$this$tracker$r","_yield$this$fetchMemb","_yield$this$fetchMemb2","userRoles","filterLocation","_filterLocation","_t6","_t7","_t8","_t9","_t0","fetchMembersOrFail","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me2","prefix","startsWith","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_x8","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","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","_fetchMembersOrFail","results","spaceFail","roomFail","_x1","GLOBAL_KEY","EmoticonsManager","handleEmoticons","handleNewEmoticon","handleEmoticonDeleted","emoticonsPromises","_event$location$space","emoticons","_ev$emoticon$spaceId","emoticon","_ev$spaceId","emoticonId","UsersManager","handleUsers","handleMembers","_getAvailable","users","getAvailable","session","_this$users","newUser","oldUser","online","onlineStatus","refUserId","getIdFromRelationship","relationship","refUser","RelationshipsManager","handleRelationships","handleNewRelationship","handleRelationshipDeleted","relationships","_exists","exists","ChatStateTracker","permissions","_me","WebSocketChatClientEvent","WebSocketChatClient","_AbstractChatClient","options","_this$options$stateTr","_options$ping","_options$ping2","_options$ping2$enable","_options$ping3","_options$ping3$noActi","_options$ping4","_options$ping4$pongBa","stateTracking","ping","enabled","noActivityTimeoutMs","pongBackTimeoutMs","_connect","_this$options$queryPa","_this$options$connect","params","isOpenWsState","isConnectingWsState","URLSearchParams","queryParams","token","ws","WebSocket","url","onclose","onClose","onmessage","onMessage","connectingTimeoutId","setTimeout","triggerConnectionTimeout","connectingTimeoutMs","authenticated","authenticatedResolvers","connect","disconnect","_this$ws","sendQueue","close","_send","commandType","commandData","sendEnvelope","_this$ws$readyState","_this$ws2","isReady","JSON","stringify","readyState","lastReceivedMessageAt","Date","now","parse","Event","isAuthenticated","startConnectionMonitor","sendFromQueue","stopConnectionMonitor","clearTimeout","reconnect","code","lastDelay","_loop","_this3$options$awaitQ","dataIndex","awaitQueueSendDelayMs","CONNECTING","OPEN","pingMonitorInterval","setInterval","inFlightPingTimeout","clearInterval","WebApiChatClientEvent","WebApiChatClient","sendStack","attempts","lastTimeoutId","makeApiCall","destroy","_onMessage","reqId","response","json","onError","body","_this$options$attempt","_this$options$attempt2","attemptsToSend","attemptDelayMs","bodyJson","headers","Accept","Authorization","fetch","method","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","AbstractRestClient","uri","additionalHeaders","getUrl","getAuthHeaders","convertFetchResponse","_this$options$url","removeEndingSlash","defaultUrl","removeStartingSlash","_convertFetchResponse","_result$headers$get","status","text","replace","FilesClient","_AbstractRestClient","_uploadFile","file","_name","encodeURIComponent","uploadFile","_getFileMeta","getFileMeta","_getFileMetaBulk","searchParams","append","getFileMetaBulk"],"ignoreList":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","mappings":"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","sources":["webpack://polfan-server-js-client/webpack/bootstrap","webpack://polfan-server-js-client/webpack/runtime/define property getters","webpack://polfan-server-js-client/webpack/runtime/hasOwnProperty shorthand","webpack://polfan-server-js-client/webpack/runtime/make namespace object","webpack://polfan-server-js-client/./src/EventTarget.ts","webpack://polfan-server-js-client/./src/AbstractChatClient.ts","webpack://polfan-server-js-client/./src/IndexedObjectCollection.ts","webpack://polfan-server-js-client/./src/state-tracker/AsyncUtils.ts","webpack://polfan-server-js-client/./src/state-tracker/TopicHistoryWindow.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomMessagesHistory.ts","webpack://polfan-server-js-client/./src/state-tracker/MessagesManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/functions.ts","webpack://polfan-server-js-client/./src/state-tracker/SpacesManager.ts","webpack://polfan-server-js-client/./src/Permissions.ts","webpack://polfan-server-js-client/./src/state-tracker/PermissionsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/EmoticonsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/UsersManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RelationshipsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/ChatStateTracker.ts","webpack://polfan-server-js-client/./src/WebSocketChatClient.ts","webpack://polfan-server-js-client/./src/WebApiChatClient.ts","webpack://polfan-server-js-client/./src/AbstractRestClient.ts","webpack://polfan-server-js-client/./src/FilesClient.ts","webpack://polfan-server-js-client/./src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export type EventHandler<EventT> = (ev?: EventT) => void;\ntype HandlersMap = Map<string, EventHandler<any>[]>;\ntype EventMapLike = Record<string, any>;\ntype KnownEventNames<EventT> = EventT extends EventMapLike ? keyof EventT & string : string;\ntype EventPayload<EventT, EventName extends string = never> = EventT extends EventMapLike\n ? [EventName] extends [never]\n ? EventT[keyof EventT]\n : EventName extends keyof EventT\n ? EventT[EventName]\n : EventT[keyof EventT]\n : EventT;\n\nexport type ChangeEventMap<Payload = void> = { change: Payload };\n\nexport interface ObservableInterface<EventT = any> {\n on<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n on(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n once<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n once(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n off<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n off(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n}\n\nexport class EventTarget<EventMapT extends Record<string, any> = Record<string, any>> implements ObservableInterface<EventMapT> {\n protected events: HandlersMap = new Map<string, EventHandler<any>[]>();\n protected onceEvents: HandlersMap = new Map<string, EventHandler<any>[]>();\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public on(eventName: string, handler: EventHandler<unknown>): this;\n public on(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.events, eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public once(eventName: string, handler: EventHandler<unknown>): this;\n public once(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.onceEvents, eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public off(eventName: string, handler: EventHandler<unknown>): this;\n public off(eventName: string, handler: EventHandler<any>): this {\n const index = this.events.get(eventName)?.indexOf(handler);\n if (index === undefined || index < 0) {\n return this;\n }\n this.events.get(eventName)?.splice(index, 1);\n return this;\n }\n\n public emit<K extends keyof EventMapT & string>(eventName: K, event: EventMapT[K]): this;\n public emit(eventName: string, event?: unknown): this;\n public emit(eventName: string, event?: any): this {\n this.callHandlers(this.events, eventName, event);\n this.callHandlers(this.onceEvents, eventName, event);\n this.onceEvents.delete(eventName);\n return this;\n }\n\n private addHandler(map: HandlersMap, eventName: string, handler: EventHandler<any>): void {\n const handlers = map.get(eventName) ?? [];\n handlers.push(handler);\n map.set(eventName, handlers);\n }\n\n private callHandlers(map: HandlersMap, eventName: string, event: unknown): void {\n map.get(eventName)?.forEach(callback => callback(event));\n }\n}","import {\n Bye,\n GetSession,\n JoinSpace,\n Session,\n SpaceJoined,\n Error as ErrorType,\n SpaceLeft,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMemberUpdated,\n SpaceDeleted,\n SpaceMembers,\n SpaceRooms,\n NewRole,\n RoomDeleted,\n RoomJoined,\n RoomLeft,\n RoomMemberLeft,\n RoomMemberJoined,\n RoomMembers,\n NewRoom,\n NewTopic,\n TopicDeleted,\n NewMessage,\n GetPermissionOverwrites,\n GetComputedPermissions,\n LeaveSpace,\n CreateSpace,\n DeleteSpace,\n GetSpaceMembers,\n GetSpaceRooms,\n CreateRole,\n DeleteRole,\n AssignRole,\n DeassignRole,\n SetPermissionOverwrites,\n JoinRoom,\n LeaveRoom,\n CreateRoom,\n DeleteRoom,\n GetRoomMembers,\n CreateTopic,\n DeleteTopic,\n CreateMessage,\n Envelope,\n PermissionOverwrites,\n PermissionOverwritesUpdated,\n RoomMemberUpdated,\n UpdateRole,\n RoleUpdated,\n Ack,\n UserUpdated,\n UpdateRoom,\n RoomUpdated,\n UpdateSpace,\n SpaceUpdated,\n PermissionOverwriteTargets,\n GetPermissionOverwriteTargets,\n Owners,\n Ok,\n GetOwners,\n CreateOwner,\n RoleDeleted,\n FollowedTopicUpdated,\n TopicFollowed,\n 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}","import {WebSocketChatClient} from \"./WebSocketChatClient\";\nimport {WebApiChatClient} from \"./WebApiChatClient\";\nimport {\n IndexedCollection,\n IndexedObjectCollection,\n ObservableIndexedCollection,\n ObservableIndexedObjectCollection\n} from \"./IndexedObjectCollection\";\nimport {FilesClient, File} from \"./FilesClient\";\nimport { Permissions, PermissionDefinition, Layer } from \"./Permissions\";\nimport * as ChatTypes from './types/src';\nimport {extractUserFromMember} from \"./state-tracker/functions\";\nimport {AbstractRestClient} from \"./AbstractRestClient\";\n\nexport {\n IndexedCollection, ObservableIndexedCollection,\n IndexedObjectCollection, ObservableIndexedObjectCollection,\n Permissions, PermissionDefinition, Layer,\n WebSocketChatClient, WebApiChatClient,\n FilesClient,\n AbstractRestClient,\n extractUserFromMember,\n};\n\nexport type {\n ChatTypes,\n File,\n};"],"names":["EventTarget","_classCallCheck","_defineProperty","Map","_createClass","key","value","on","eventName","handler","addHandler","events","once","onceEvents","off","_this$events$get","_this$events$get2","index","get","indexOf","undefined","splice","emit","event","callHandlers","map","_map$get","handlers","push","set","_map$get2","forEach","callback","AbstractChatClient","_EventTarget","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","_inherits","createEnvelope","type","data","ref","sentCounter","toString","createPromiseFromCommandEnvelope","envelope","_this2","Promise","_len2","_key2","awaitingResponse","handleIncomingEnvelope","has","isError","error","handleEnvelopeSendError","IndexedCollection","items","apply","_toConsumableArray","_items","size","_i","item","id","delete","ids","_i2","_ids","deleteAll","clear","findBy","field","valueToFind","limit","result","entries","next","done","createMirror","copy","IndexedObjectCollection","from","values","_this$_items","_len3","_key3","getId","getAt","_this$_items2","_iterator","_createForOfIteratorHelper","_step","s","n","err","e","f","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","_superPropGet","setItems","_len5","_key5","deletedItems","keys","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","_this7","DeferredTask","promise","resolve","PromiseRegistry","register","promises","registerByFunction","fn","notExist","forget","_this$promises","forgetAll","t","r","Symbol","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","call","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","_typeof","_assertThisInitialized","ReferenceError","Boolean","valueOf","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","WindowState","TraversableRemoteCollection","_ObservableIndexedObj","current","LIVE","ongoing","retainRatio","fetchLimit","lastFetchCount","oldestId","internalState","LATEST","includes","state","OLDEST","_resetToLatest","_callee","originalState","_context","fetchLatestItems","addItems","emitChangeWithDiff","resetToLatest","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","fetchPrevious","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","fetchNext","_refreshFetchedState","_callee4","_t","_context4","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","itemChanged","highWatermark","lowWatermark","Math","floor","slice","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","traverseLock","client","ev","handleNewMessage","handleMessagesRedacted","_setTraverseLock","_callee5","lock","_context5","setTraverseLock","_x","_resetToLatest2","_callee6","_context6","_fetchNext2","_callee7","_context7","_fetchPrevious2","_callee8","_context8","_updateMessageReference","refTopic","refMessage","_objectSpread","topicRef","_fetchItemsAfter","_callee9","_this$getAt","afterId","_context9","send","location","after","Error","message","messages","_fetchItemsBefore","_callee0","_this$getAt2","beforeId","_context0","before","_fetchLatestItems","_callee1","_context1","_getTopic","_callee10","_context10","rooms","getTopics","getTopic","_getLatestMessageId","_callee11","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context11","lastMessage","getLatestMessageId","_isLatestItemLoaded","_callee12","lastMessageId","_context12","_handleNewMessage","_callee13","_context13","_x2","_handleMessagesRedacted","_callee14","refTopicIds","_context14","filter","msg","_x3","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","peek","topic","_args","historyWindows","getMessagesWindow","_handleRoomUpdated","_Array$from","_Array$from$_i","window","_slicedToArray","historyWindow","deletedTopicIds","_this2$tracker$rooms","_deleteTopicsFromRoom","refHistoryWindow","history","mode","MessagesManager","handleSession","handleRoomJoin","handleFollowedTopicUpdated","handleTopicFollowed","handleTopicUnfollowed","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","getRoomHistory","_cacheSpaceFollowedTopics","spaceId","roomIds","resultPromise","spaces","followedTopicsPromises","setFollowedTopicsArray","followedTopics","cacheSpaceFollowedTopics","_getRoomFollowedTopics","getRoomFollowedTopics","_ackRoomFollowedTopics","collection","followedTopic","missed","ackRoomFollowedTopics","_x4","_calculateRoomMissedMessages","reduce","previousValue","currentValue","_currentValue$missed","calculateRoomMissedMessages","_x5","_deleteByTopicIds","_this$followedTopics$","topicIds","_resolveLastMessage2","_result$data","roomHistory","_resolveLastMessage","_x6","createHistoryForNewRoom","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","_this$followedTopics$3","clearRoomFollowedTopicsStructures","_handleNewTopic","_x7","_this$followedTopics$4","_this$tracker$me","roomFollowedTopics","isMe","author","user","me","update","lastAckMessageId","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_this5$followedTopics","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMemberJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","getMembers","_getMe","userId","getMe","list","find","member","_member$user$id","_member$user","spaceMember","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","_this3$topics$get2","_this$topics$get","deleteRoom","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get2","_this$messages","deleteRoomsBySpaceId","_iterator2","_step2","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","_member$spaceMember","newMember","_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","reorderRolesOnPriorityUpdate","allRoles","oldRole","updatedRole","increased","priority","decreased","changedRoles","role","extractUserFromMember","_spaceMember","SpacesManager","handleNewRoom","handleSpaceUpdated","handleSpaceJoined","handleSpaceMemberJoined","handleSpaceMembers","handleSpaceRooms","handleRoomSummaryUpdated","handleNewRole","handleRoleDeleted","handleRoleUpdated","_getRoles","getRoles","_getRooms","roomsPromises","getRooms","_this$rooms$get","summary","roomIdToSpaceId","name","description","_handleRoomDeleted","_this$rooms$get2","space","spaceChanged","systemRoom","defaultRooms","_this$rooms$get$items","_this$rooms$get3","_this$roomIdToSpaceId","addJoinedSpaces","_this$roles","summaries","_handleRoomSummaryUpdated","summariesPromise","oldSummary","newSummary","_this$roles$get","newRole","rolesToUpdate","Layer","PermissionDefinition","Permissions","getNames","getByName","canBeDefinedOnLayer","permissionName","layer","def","maxLayer","Root","Room","CreateSpaces","Global","ManageSpace","Space","ManageRoles","CreateTopics","ManageTopic","Topic","ManageMemberProfiles","ManageMemberRoles","CreateMessages","ManagePermissions","CreateRooms","ManageRoom","CreateEmoticons","ManageEmoticons","ManageBans","Kick","ChangeOwnNick","ChangeOwnColor","RedactMessages","getOvId","target","roleId","join","getOvIdByObject","overwrites","PermissionsManager","handlePermissionOverwrites","_getOverwrites","validateLocation","overwritesPromises","getOverwrites","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","check","_calculatePermissions","_location$spaceId","_spaceMember$roles","_roomMember$roles","_yield$this$tracker$s","_yield$this$tracker$r","_yield$this$fetchMemb","_yield$this$fetchMemb2","userRoles","filterLocation","_filterLocation","_t6","_t7","_t8","_t9","_t0","fetchMembersOrFail","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me2","prefix","startsWith","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_x8","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","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","_fetchMembersOrFail","results","spaceFail","roomFail","_x1","GLOBAL_KEY","EmoticonsManager","handleEmoticons","handleNewEmoticon","handleEmoticonDeleted","emoticonsPromises","_event$location$space","emoticons","_ev$emoticon$spaceId","emoticon","_ev$spaceId","emoticonId","UsersManager","handleUsers","handleMembers","_getAvailable","users","getAvailable","session","_this$users","newUser","oldUser","online","onlineStatus","refUserId","getIdFromRelationship","relationship","refUser","RelationshipsManager","handleRelationships","handleNewRelationship","handleRelationshipDeleted","relationships","_exists","exists","ChatStateTracker","permissions","_me","WebSocketChatClientEvent","WebSocketChatClient","_AbstractChatClient","options","_this$options$stateTr","_options$ping","_options$ping2","_options$ping2$enable","_options$ping3","_options$ping3$noActi","_options$ping4","_options$ping4$pongBa","stateTracking","ping","enabled","noActivityTimeoutMs","pongBackTimeoutMs","_connect","_this$options$queryPa","_this$options$connect","params","isOpenWsState","isConnectingWsState","URLSearchParams","queryParams","token","ws","WebSocket","url","onclose","onClose","onmessage","onMessage","connectingTimeoutId","setTimeout","triggerConnectionTimeout","connectingTimeoutMs","authenticated","authenticatedResolvers","connect","disconnect","_this$ws","sendQueue","close","_send","commandType","commandData","sendEnvelope","_this$ws$readyState","_this$ws2","isReady","JSON","stringify","readyState","lastReceivedMessageAt","Date","now","parse","Event","isAuthenticated","startConnectionMonitor","sendFromQueue","stopConnectionMonitor","clearTimeout","reconnect","code","lastDelay","_loop","_this3$options$awaitQ","dataIndex","awaitQueueSendDelayMs","CONNECTING","OPEN","pingMonitorInterval","setInterval","inFlightPingTimeout","clearInterval","WebApiChatClientEvent","WebApiChatClient","sendStack","attempts","lastTimeoutId","makeApiCall","destroy","_onMessage","reqId","response","json","onError","body","_this$options$attempt","_this$options$attempt2","attemptsToSend","attemptDelayMs","bodyJson","headers","Accept","Authorization","fetch","method","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","AbstractRestClient","uri","additionalHeaders","getUrl","getAuthHeaders","convertFetchResponse","_this$options$url","removeEndingSlash","defaultUrl","removeStartingSlash","_convertFetchResponse","_result$headers$get","status","text","replace","FilesClient","_AbstractRestClient","_uploadFile","file","_name","encodeURIComponent","uploadFile","_getFileMeta","getFileMeta","_getFileMetaBulk","searchParams","append","getFileMetaBulk"],"ignoreList":[],"sourceRoot":""}
|