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