@signalapp/mock-server
Version:
Mock Signal Server for writing tests
66 lines (65 loc) • 2.48 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { ProtocolAddress } from '@signalapp/libsignal-client';
import type { JsonValue } from 'type-fest';
import { type RegistrationId, ServiceIdKind } from './types';
import { ParsedUrlQuery } from 'node:querystring';
import { Device } from './data/device';
export type PromiseQueueConfig = Readonly<{
timeout?: number;
}>;
export declare function generateRandomE164(): string;
export type ParseAuthHeaderResult = {
username: string;
password: string;
error?: undefined;
} | {
username?: undefined;
password?: undefined;
error: string;
};
export declare function parseAuthHeader(header?: string, options?: {
allowEmptyPassword?: boolean;
}): ParseAuthHeaderResult;
export declare class PromiseQueue<T> {
private readonly defaultTimeout;
private readonly entries;
private readonly resolvers;
constructor(config?: PromiseQueueConfig);
get size(): number;
pushAndWait(value: T, timeout?: number | undefined): Promise<void>;
push(value: T): void;
shift(timeout?: number | undefined): Promise<T>;
}
export declare function addressToString(address: ProtocolAddress): string;
export declare function getTodayInSeconds(): number;
export declare function daysToSeconds(days: number): number;
export declare function generateRegistrationId(): RegistrationId;
export declare function generateDevicePassword(): string;
export declare function toBase64(buf: Uint8Array): string;
export declare function toURLSafeBase64(buf: Uint8Array): string;
export declare function fromBase64(base64: string): Buffer;
export declare function fromURLSafeBase64(base64: string): Buffer;
export declare function assertJsonValue(root: unknown): asserts root is JsonValue;
export declare function serviceIdKindFromQuery(query: Record<string, string> | ParsedUrlQuery | undefined): ServiceIdKind;
export declare function getDevicesKeysResult(serviceIdKind: ServiceIdKind, devices: ReadonlyArray<Device>): Promise<{
identityKey: string;
devices: {
deviceId: import("./types").DeviceId;
registrationId: number;
signedPreKey: {
keyId: number;
publicKey: string;
signature: string;
};
pqPreKey: {
keyId: number;
publicKey: string;
signature: string;
};
preKey: {
keyId: number;
publicKey: string;
} | null;
}[];
}>;