Skip to content
Snippets Groups Projects
Select Git revision
  • aee4a535fc9200aea7d8b709acae697845f1a4db
  • release default protected
  • master protected
  • hotfix/GrpcParameters
  • XX-4441
  • tls-websockets
  • hotfix/allow-web-creds
  • hotfix/nilCert
  • XX-3566_const_time_token_compare
  • AceVentura/AccountBackup
  • dev
  • waitingRoundsRewrite
  • fullRateLimit
  • XX-3564/TlsCipherSuite
  • XX-3563/DisableTlsCheck
  • notls
  • url-repo-rename
  • perftuning
  • Anne/CI2
  • AddedGossipLogging
  • hotfix/connectionReduction
  • v0.0.6
  • v0.0.4
  • v0.0.5
  • v0.0.3
  • v0.0.2
  • v0.0.1
27 results

manager_test.go

Blame
  • types.ts 6.91 KiB
    export enum LogLevel {
      TRACE = 0,
      DEBUG = 1,
      INFO = 2,
      WARN = 3,
      ERROR = 4,
      CRITICAL = 5,
      FATAL = 6
    }
    
    export enum PrivacyLevel {
      Public = 0,
      Private = 1,
      Secret = 2
    }
    
    export type Cipher = {
      GetID: () => number;
      Decrypt: (plaintext: Uint8Array) => Uint8Array;
    }
    
    export type ChannelManager = {
      GetID: () => number;
      AreDMsEnabled: (channelId: Uint8Array) => boolean;
      DisableDirectMessages: (channelId: Uint8Array) => void;
      EnableDirectMessages: (channelId: Uint8Array) => void;
      JoinChannel: (channelId: string) => Promise<Uint8Array>;
      LeaveChannel: (channelId: Uint8Array) => Promise<void>;
      GetMutedUsers: (channelId: Uint8Array) => Uint8Array;
      Muted: (channelId: Uint8Array) => boolean;
      MuteUser: (
        channelId: Uint8Array,
        publicKey: Uint8Array,
        mute: boolean,
        messageValidityTimeoutMilliseconds: number,
        cmixParams?: Uint8Array
      ) => Promise<void>;
      SendMessage: (
        channelId: Uint8Array,
        message: string,
        messageValidityTimeoutMilliseconds: number,
        cmixParams: Uint8Array
      ) => Promise<Uint8Array>;
      PinMessage: (
        channelId: Uint8Array,
        messageId: Uint8Array,
        unpin: boolean,
        pinDurationInMilliseconds: number,
        cmixParams: Uint8Array,
      ) => Promise<Uint8Array>;
      DeleteMessage: (
        channelId: Uint8Array,
        messageId: Uint8Array,
        cmixParams: Uint8Array
      ) => Promise<void>;
      SendReaction: (
        channelId: Uint8Array,
        reaction: string,
        messageToReactTo: Uint8Array,
        messageValidityTimeoutMilliseconds: number,
        cmixParams: Uint8Array
      ) => Promise<Uint8Array>;
      SendReply: (
        channelId: Uint8Array,
        message: string,
        messageToReactTo: Uint8Array,
        messageValidityTimeoutMilliseconds: number,
        cmixParams: Uint8Array
      ) => Promise<Uint8Array>;
      IsChannelAdmin: (channelId: Uint8Array) => boolean;
      GenerateChannel: (channelname: string, description: string, privacyLevel: PrivacyLevel) => Promise<string>;
      GetStorageTag: () => string | undefined;
      SetNickname: (newNickname: string, channel: Uint8Array) => void;
      GetNickname: (channelId: Uint8Array) => string;
      GetIdentity: () => Uint8Array;
      GetShareURL: (cmixId: number, host: string, maxUses: number, channelId: Uint8Array) => Uint8Array;
      JoinChannelFromURL: (url: string, password: string) => Uint8Array;
      ExportPrivateIdentity: (password: string) => Uint8Array;
      ExportChannelAdminKey: (channelId: Uint8Array, encryptionPassword: string) => Uint8Array;
      ImportChannelAdminKey: (channelId: Uint8Array, encryptionPassword: string, privateKey: Uint8Array) => void;
    }
    
    type HealthCallback = { Callback: (healthy: boolean) => void }
    
    export type CMix = {
      AddHealthCallback: (callback: HealthCallback) => number;
      GetID: () => number;
      IsReady: (threshold: number) => Uint8Array;
      ReadyToSend: () => boolean;
      StartNetworkFollower: (timeoutMilliseconds: number) => void;
      StopNetworkFollower: () => void;
      WaitForNetwork: (timeoutMilliseconds: number) => Promise<void>;
    }
    
    export type DMClient = {
      SendText: (pubkey: Uint8Array, dmToken: number, message: string, leaseTimeMs: number, cmixParams: Uint8Array) => Promise<void>;
      SendReply: (pubkey: Uint8Array, dmToken: number, message: string, replyToId: Uint8Array, leaseTimeMs: number, cmixParams: Uint8Array) => Promise<void>;
      SendReaction: (pubkey: Uint8Array, dmToken: number, message: string, reactToId: Uint8Array, cmixParams: Uint8Array) => Promise<void>;
      GetIdentity: () => Uint8Array;
      SetNickname: (nickname: string) => void;
      GetNickname: () => string;
      GetDatabaseName: () => string;
    }
    
    export type DummyTraffic = {
      GetStatus: () => boolean;
      Pause: () => void;
      Start: () => void;
    }
    
    
    export type MessageReceivedCallback = (uuid: string, channelId: Uint8Array, update: boolean) => void;
    export type MessageDeletedCallback = (uuid: Uint8Array) => void;
    export type UserMutedCallback = (channelId: Uint8Array, pubkey: string, unmute: boolean) => void;
    export type DMReceivedCallback = (uuid: string, pubkey: Uint8Array, update: boolean, updateConversation: boolean) => void;
    
    export type XXDKUtils = {
      logger?: Logger;
      Crash: () => void;
      GetLogger: () => Logger;
      LogLevel: (level: LogLevel) => void;
      getCrashedLogFile: () => Promise<string>;
      NewCmix: (
        ndf: string,
        storageDir: string,
        password: Uint8Array,
        registrationCode: string
      ) => Promise<void>;
      LoadCmix: (
        storageDirectory: string,
        password: Uint8Array,
        cmixParams: Uint8Array
      ) => Promise<CMix>;
      GetDefaultCMixParams: () => Uint8Array;GetChannelInfo: (prettyPrint: string) => Uint8Array;
      Base64ToUint8Array: (base64: string) => Uint8Array;
      GenerateChannelIdentity: (cmixId: number) => Uint8Array;
      NewChannelsManagerWithIndexedDb: (
        cmixId: number,
        wasmJsPath: string,
        privateIdentity: Uint8Array,
        onMessage: MessageReceivedCallback,
        onDelete: MessageDeletedCallback,
        onMuted: UserMutedCallback,
        channelDbCipher: number
      ) => Promise<ChannelManager>;
      NewDMClientWithIndexedDb: (
        cmixId: number,
        wasmJsPath: string,
        privateIdentity: Uint8Array,
        messageCallback: DMReceivedCallback,
        cipherId: number
      ) => Promise<DMClient>;
      NewDMsDatabaseCipher: (cmixId: number, storagePassword: Uint8Array, payloadMaximumSize: number) => Cipher
      LoadChannelsManagerWithIndexedDb: (
        cmixId: number,
        wasmJsPath: string,
        storageTag: string,
        onMessage: MessageReceivedCallback,
        onDelete: MessageDeletedCallback,
        onMuted: UserMutedCallback,
        channelDbCipher: number
      ) => Promise<ChannelManager>;
      GetPublicChannelIdentityFromPrivate: (privateKey: Uint8Array) => Uint8Array;
      IsNicknameValid: (nickname: string) => null;
      GetShareUrlType: (url: string) => PrivacyLevel;
      GetVersion: () => string;
      GetClientVersion: () => string;
      GetOrInitPassword: (password: string) => Uint8Array;
      ImportPrivateIdentity: (password: string, privateIdentity: Uint8Array) => Uint8Array;
      ConstructIdentity: (publicKey: Uint8Array, codesetVersion: number) => Uint8Array;
      DecodePrivateURL: (url: string, password: string) => string;
      DecodePublicURL: (url: string) => string;
      GetChannelJSON: (prettyPrint: string) => Uint8Array;
      NewDummyTrafficManager: (
        cmixId: number,
        maximumOfMessagesPerCycle: number,
        durationToWaitBetweenSendsMilliseconds: number,
        upperBoundIntervalBetweenCyclesMilliseconds: number
      ) => DummyTraffic;
      GetWasmSemanticVersion: () => Uint8Array;
      NewChannelsDatabaseCipher: (cmixId: number, storagePassword: Uint8Array, payloadMaximumSize: number) => Cipher;
      Purge: (storageDirectory: string, userPassword: string) => void;
      ValidForever: () => number;
    }
    
    export type Logger = {
      LogToFile: (level: number, maxLogFileSizeBytes: number) => void,
      LogToFileWorker: (
        level: number,
        maxLogFileSizeBytes: number,
        wasmJsPath: string,
        workerName: string
      ) => Promise<void>,
      StopLogging: () => void,
      GetFile: () => Promise<string>,
      Threshold: () => number,
      MaxSize: () => number,
      Size: () => Promise<number>,
      Worker: () => Worker,
    };