Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Client

Hierarchy

  • EventEmitter
    • Client

Index

Constructors

constructor

Properties

api

api: API

bots

bots: default

channels

channels: default

Optional configuration

configuration: { app: string; features: { autumn: { enabled: boolean; url: string }; captcha: { enabled: boolean; key: string }; email: boolean; invite_only: boolean; january: { enabled: boolean; url: string }; voso: { enabled: boolean; url: string; ws: string } }; revolt: string; vapid: string; ws: string }

Type declaration

  • app: string
    description

    URL pointing to the client serving this node

  • features: { autumn: { enabled: boolean; url: string }; captcha: { enabled: boolean; key: string }; email: boolean; invite_only: boolean; january: { enabled: boolean; url: string }; voso: { enabled: boolean; url: string; ws: string } }
    description

    Features enabled on this Revolt node

    • autumn: { enabled: boolean; url: string }
      description

      File server service configuration

      • enabled: boolean
        description

        Whether the service is enabled

      • url: string
        description

        URL pointing to the service

    • captcha: { enabled: boolean; key: string }
      description

      hCaptcha configuration

      • enabled: boolean
        description

        Whether captcha is enabled

      • key: string
        description

        Client key used for solving captcha

    • email: boolean
      description

      Whether email verification is enabled

    • invite_only: boolean
      description

      Whether this server is invite only

    • january: { enabled: boolean; url: string }
      description

      Proxy service configuration

      • enabled: boolean
        description

        Whether the service is enabled

      • url: string
        description

        URL pointing to the service

    • voso: { enabled: boolean; url: string; ws: string }
      description

      Voice server configuration

      • enabled: boolean
        description

        Whether voice is enabled

      • url: string
        description

        URL pointing to the voice API

      • ws: string
        description

        URL pointing to the voice WebSocket server

  • revolt: string
    description

    Revolt API Version

  • vapid: string
    description

    Web Push VAPID public key

  • ws: string
    description

    WebSocket URL

emojis

emojis: default

heartbeat

heartbeat: number

members

members: default

messages

messages: default

options

options: ClientOptions

servers

servers: default

Optional session

session: string | Session

Optional unreads

unreads: default

user

user: Nullable<User> = null

users

users: default

websocket

websocket: WebSocketClient

Static prefixed

prefixed: string | boolean

Accessors

apiURL

  • get apiURL(): string

autoReconnect

  • get autoReconnect(): boolean
  • Whether revolt.js should auto-reconnect

    Returns boolean

debug

  • get debug(): boolean

Methods

Private $connect

  • $connect(): Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>
  • Check onboarding status and connect to notifications service.

    Returns Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>

Private $updateHeaders

  • $updateHeaders(): void

addListener

  • addListener<T>(event: T, fn: (...args: any[]) => void, context?: any): Client
  • Type parameters

    • T: string | symbol

    Parameters

    • event: T
    • fn: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • Optional context: any

    Returns Client

completeOnboarding

  • completeOnboarding(data: { username: string }, loginAfterSuccess?: boolean): Promise<void>
  • Finish onboarding for a user, for example by providing a username.

    Parameters

    • data: { username: string }

      Onboarding data object

      • username: string
        description

        New username which will be used to identify the user on the platform

    • Optional loginAfterSuccess: boolean

      Defines whether to automatically log in and connect after onboarding finishes

    Returns Promise<void>

connect

  • connect(): Promise<void>
  • Fetches the configuration of the server.

    remarks

    Unlike fetchConfiguration, this function also fetches the configuration if it has already been fetched before.

    Returns Promise<void>

deleteInvite

  • deleteInvite(code: string): Promise<void>
  • Delete an invite.

    Parameters

    • code: string

      The invite code.

    Returns Promise<void>

emit

  • emit<T>(event: T, ...args: any[]): boolean
  • Calls each of the listeners registered for a given event.

    Type parameters

    • T: string | symbol

    Parameters

    • event: T
    • Rest ...args: any[]

    Returns boolean

eventNames

  • eventNames(): (string | symbol)[]
  • Return an array listing the events for which the emitter has registered listeners.

    Returns (string | symbol)[]

fetchConfiguration

  • fetchConfiguration(): Promise<void>
  • Fetches the configuration of the server if it has not been already fetched.

    Returns Promise<void>

fetchInvite

  • fetchInvite(code: string): Promise<{ channel_description?: null | string; channel_id: string; channel_name: string; code: string; member_count: number; server_banner?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; server_icon?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; server_id: string; server_name: string; type: "Server"; user_avatar?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; user_name: string } | { channel_description?: null | string; channel_id: string; channel_name: string; code: string; type: "Group"; user_avatar?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; user_name: string }>
  • Fetch information about a given invite code.

    Parameters

    • code: string

      The invite code.

    Returns Promise<{ channel_description?: null | string; channel_id: string; channel_name: string; code: string; member_count: number; server_banner?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; server_icon?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; server_id: string; server_name: string; type: "Server"; user_avatar?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; user_name: string } | { channel_description?: null | string; channel_id: string; channel_name: string; code: string; type: "Group"; user_avatar?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; user_name: string }>

    Invite information.

generateFileURL

  • generateFileURL(attachment?: { _id: string; content_type?: string; metadata?: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; tag: string }, ...args: FileArgs): undefined | string
  • Generates a URL to a given file with given options.

    Parameters

    • Optional attachment: { _id: string; content_type?: string; metadata?: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; tag: string }

      Partial of attachment object

      • _id: string
      • Optional content_type?: string
      • Optional metadata?: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }
      • tag: string
    • Rest ...args: FileArgs

    Returns undefined | string

    Generated URL or nothing

joinInvite

  • joinInvite(code: string): Promise<Server>
  • joinInvite(invite: { channel_description?: null | string; channel_id: string; channel_name: string; code: string; member_count: number; server_banner?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; server_icon?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; server_id: string; server_name: string; type: "Server"; user_avatar?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; user_name: string } | { channel_description?: null | string; channel_id: string; channel_name: string; code: string; type: "Group"; user_avatar?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; user_name: string }): Promise<Server>
  • Parameters

    • code: string

    Returns Promise<Server>

  • Parameters

    • invite: { channel_description?: null | string; channel_id: string; channel_name: string; code: string; member_count: number; server_banner?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; server_icon?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; server_id: string; server_name: string; type: "Server"; user_avatar?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; user_name: string } | { channel_description?: null | string; channel_id: string; channel_name: string; code: string; type: "Group"; user_avatar?: null | { _id: string; content_type: string; deleted?: null | boolean; filename: string; message_id?: null | string; metadata: { type: "File" } | { type: "Text" } | { height: number; type: "Image"; width: number } | { height: number; type: "Video"; width: number } | { type: "Audio" }; object_id?: null | string; reported?: null | boolean; server_id?: null | string; size: number; tag: string; user_id?: null | string }; user_name: string }

    Returns Promise<Server>

listenerCount

  • listenerCount(event: string | symbol): number
  • Return the number of listeners listening to a given event.

    Parameters

    • event: string | symbol

    Returns number

listeners

  • listeners<T>(event: T): ((...args: any[]) => void)[]
  • Return the listeners registered for a given event.

    Type parameters

    • T: string | symbol

    Parameters

    • event: T

    Returns ((...args: any[]) => void)[]

login

  • login(details: { captcha?: null | string; email: string; friendly_name?: null | string; password: string } | { friendly_name?: null | string; mfa_response: { password: string } | { recovery_code: string } | { totp_code: string }; mfa_ticket: string }): Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>
  • Log in with auth data, creating a new session in the process.

    Parameters

    • details: { captcha?: null | string; email: string; friendly_name?: null | string; password: string } | { friendly_name?: null | string; mfa_response: { password: string } | { recovery_code: string } | { totp_code: string }; mfa_ticket: string }

      Login data object

    Returns Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>

    An onboarding function if onboarding is required, undefined otherwise

loginBot

  • loginBot(token: string): Promise<void>
  • Log in as a bot.

    Parameters

    • token: string

      Bot token

    Returns Promise<void>

logout

  • logout(avoidRequest?: boolean): Promise<void>
  • Log out of Revolt. Disconnect the WebSocket, request a session invalidation and reset the client.

    Parameters

    • Optional avoidRequest: boolean

    Returns Promise<void>

markdownToText

  • markdownToText(source: string): string
  • Prepare a markdown-based message to be displayed to the user as plain text.

    Parameters

    • source: string

      Source markdown text

    Returns string

    Modified plain text

off

  • off<T>(event: T, fn?: (...args: any[]) => void, context?: any, once?: boolean): Client
  • Type parameters

    • T: string | symbol

    Parameters

    • event: T
    • Optional fn: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • Optional context: any
    • Optional once: boolean

    Returns Client

on

  • on(event: "connected", listener: () => void): Client
  • on(event: "connecting", listener: () => void): Client
  • on(event: "dropped", listener: () => void): Client
  • on(event: "ready", listener: () => void): Client
  • on(event: "logout", listener: () => void): Client
  • on(event: "packet", listener: (packet: ClientboundNotification) => void): Client
  • on(event: "message", listener: (message: Message) => void): Client
  • on(event: "message/update", listener: (message: Message) => void): Client
  • on(event: "message/delete", listener: (id: string, message?: Message) => void): Client
  • on(event: "message/updated", listener: (message: Message, packet: ClientboundNotification) => void): Client
  • on(event: "channel/create", listener: (channel: Channel) => void): Client
  • on(event: "channel/update", listener: (channel: Channel) => void): Client
  • on(event: "channel/delete", listener: (id: string, channel?: Channel) => void): Client
  • on(event: "server/update", listener: (server: Server) => void): Client
  • on(event: "server/delete", listener: (id: string, server?: Server) => void): Client
  • on(event: "role/update", listener: (roleId: string, role: { colour?: null | string; hoist?: boolean; name: string; permissions: { a: number; d: number }; rank?: number }, serverId: string) => void): Client
  • on(event: "role/delete", listener: (id: string, serverId: string) => void): Client
  • on(event: "member/join", listener: (member: Member) => void): Client
  • on(event: "member/update", listener: (member: Member) => void): Client
  • on(event: "member/leave", listener: (id: { server: string; user: string }) => void): Client
  • on(event: "user/relationship", listener: (user: User) => void): Client
  • on(event: "emoji/create", listener: (emoji: Emoji) => void): Client
  • on(event: "emoji/delete", listener: (id: string, emoji?: Emoji) => void): Client
  • Parameters

    • event: "connected"
    • listener: () => void
        • (): void
        • Returns void

    Returns Client

  • Parameters

    • event: "connecting"
    • listener: () => void
        • (): void
        • Returns void

    Returns Client

  • Parameters

    • event: "dropped"
    • listener: () => void
        • (): void
        • Returns void

    Returns Client

  • Parameters

    • event: "ready"
    • listener: () => void
        • (): void
        • Returns void

    Returns Client

  • Parameters

    • event: "logout"
    • listener: () => void
        • (): void
        • Returns void

    Returns Client

  • Parameters

    Returns Client

  • Parameters

    • event: "message"
    • listener: (message: Message) => void

    Returns Client

  • Parameters

    • event: "message/update"
    • listener: (message: Message) => void

    Returns Client

  • Parameters

    • event: "message/delete"
    • listener: (id: string, message?: Message) => void
        • (id: string, message?: Message): void
        • Parameters

          • id: string
          • Optional message: Message

          Returns void

    Returns Client

  • Parameters

    Returns Client

  • Parameters

    • event: "channel/create"
    • listener: (channel: Channel) => void

    Returns Client

  • Parameters

    • event: "channel/update"
    • listener: (channel: Channel) => void

    Returns Client

  • Parameters

    • event: "channel/delete"
    • listener: (id: string, channel?: Channel) => void
        • (id: string, channel?: Channel): void
        • Parameters

          • id: string
          • Optional channel: Channel

          Returns void

    Returns Client

  • Parameters

    • event: "server/update"
    • listener: (server: Server) => void
        • Parameters

          Returns void

    Returns Client

  • Parameters

    • event: "server/delete"
    • listener: (id: string, server?: Server) => void
        • (id: string, server?: Server): void
        • Parameters

          • id: string
          • Optional server: Server

          Returns void

    Returns Client

  • Parameters

    • event: "role/update"
    • listener: (roleId: string, role: { colour?: null | string; hoist?: boolean; name: string; permissions: { a: number; d: number }; rank?: number }, serverId: string) => void
        • (roleId: string, role: { colour?: null | string; hoist?: boolean; name: string; permissions: { a: number; d: number }; rank?: number }, serverId: string): void
        • Parameters

          • roleId: string
          • role: { colour?: null | string; hoist?: boolean; name: string; permissions: { a: number; d: number }; rank?: number }
            • Optional colour?: null | string
              description

              Colour used for this role

              This can be any valid CSS colour

            • Optional hoist?: boolean
              description

              Whether this role should be shown separately on the member sidebar

            • name: string
              description

              Role name

            • permissions: { a: number; d: number }
              description

              Permissions available to this role

              • a: number

                Format: int64

                description

                Allow bit flags

              • d: number

                Format: int64

                description

                Disallow bit flags

            • Optional rank?: number

              Format: int64

              description

              Ranking of this role

          • serverId: string

          Returns void

    Returns Client

  • Parameters

    • event: "role/delete"
    • listener: (id: string, serverId: string) => void
        • (id: string, serverId: string): void
        • Parameters

          • id: string
          • serverId: string

          Returns void

    Returns Client

  • Parameters

    • event: "member/join"
    • listener: (member: Member) => void
        • Parameters

          Returns void

    Returns Client

  • Parameters

    • event: "member/update"
    • listener: (member: Member) => void
        • Parameters

          Returns void

    Returns Client

  • Parameters

    • event: "member/leave"
    • listener: (id: { server: string; user: string }) => void
        • (id: { server: string; user: string }): void
        • Parameters

          • id: { server: string; user: string }
            • server: string
              description

              Server Id

            • user: string
              description

              User Id

          Returns void

    Returns Client

  • Parameters

    • event: "user/relationship"
    • listener: (user: User) => void
        • (user: User): void
        • Parameters

          Returns void

    Returns Client

  • Parameters

    • event: "emoji/create"
    • listener: (emoji: Emoji) => void
        • Parameters

          Returns void

    Returns Client

  • Parameters

    • event: "emoji/delete"
    • listener: (id: string, emoji?: Emoji) => void
        • (id: string, emoji?: Emoji): void
        • Parameters

          • id: string
          • Optional emoji: Emoji

          Returns void

    Returns Client

once

  • once<T>(event: T, fn: (...args: any[]) => void, context?: any): Client
  • Add a one-time listener for a given event.

    Type parameters

    • T: string | symbol

    Parameters

    • event: T
    • fn: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • Optional context: any

    Returns Client

proxyFile

  • proxyFile(url: string): undefined | string
  • Proxy a file through January.

    Parameters

    • url: string

      URL to proxy

    Returns undefined | string

    Proxied media URL

register

  • register(data: { captcha?: null | string; email: string; invite?: null | string; password: string }): Promise<undefined>
  • Register for a new account.

    Parameters

    • data: { captcha?: null | string; email: string; invite?: null | string; password: string }

      Registration data object

      • Optional captcha?: null | string
        description

        Captcha verification code

      • email: string
        description

        Valid email address

      • Optional invite?: null | string
        description

        Invite code

      • password: string
        description

        Password

    Returns Promise<undefined>

    A promise containing a registration response object

removeAllListeners

  • removeAllListeners(event?: string | symbol): Client
  • Remove all listeners, or those of the specified event.

    Parameters

    • Optional event: string | symbol

    Returns Client

removeListener

  • removeListener<T>(event: T, fn?: (...args: any[]) => void, context?: any, once?: boolean): Client
  • Remove the listeners of a given event.

    Type parameters

    • T: string | symbol

    Parameters

    • event: T
    • Optional fn: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • Optional context: any
    • Optional once: boolean

    Returns Client

reset

  • reset(): void
  • Reset the client by setting properties to their original value or deleting them entirely. Disconnects the current WebSocket.

    Returns void

syncFetchSettings

  • syncFetchSettings(keys: string[]): Promise<{}>
  • Fetch user settings for current user.

    Parameters

    • keys: string[]

      Settings keys to fetch, leave blank to fetch full object.

    Returns Promise<{}>

    Key-value object of settings.

syncFetchUnreads

  • syncFetchUnreads(): Promise<{ _id: { channel: string; user: string }; last_id?: null | string; mentions?: null | string[] }[]>
  • Fetch user unreads for current user.

    Returns Promise<{ _id: { channel: string; user: string }; last_id?: null | string; mentions?: null | string[] }[]>

    Array of channel unreads.

syncSetSettings

  • syncSetSettings(data: {}, timestamp?: number): Promise<void>
  • Set user settings for current user.

    Parameters

    • data: {}

      Data to set as an object. Any non-string values will be automatically serialised.

      • [key: string]: object | string
    • Optional timestamp: number

      Timestamp to use for the current revision.

    Returns Promise<void>

useExistingSession

  • useExistingSession(session: Session): Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>
  • Use an existing session to log into Revolt.

    Parameters

    • session: Session

      Session data object

    Returns Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>

    An onboarding function if onboarding is required, undefined otherwise

Generated using TypeDoc