@getpassage/react-native
Version:
Passage React Native SDK for mobile authentication
90 lines (89 loc) • 3.26 kB
TypeScript
export type LogLevel = "debug" | "info" | "warn" | "error";
export interface LoggerTransport {
log(level: LogLevel, message: string, metadataOrContext?: string | Record<string, unknown> | Error | unknown): void;
}
interface LogEntry {
level: LogLevel;
message: string;
context?: string;
metadata?: Record<string, unknown>;
timestamp: string;
sessionId?: string;
}
interface SDKLogEntry extends LogEntry {
source: "sdk";
sdkName: string;
sdkVersion?: string;
appVersion?: string;
platform?: string;
deviceInfo?: Record<string, unknown>;
}
interface HttpTransportConfig {
endpoint: string;
sdkName: string;
sdkVersion?: string;
appVersion?: string;
platform?: string;
deviceInfo?: Record<string, unknown>;
intentToken?: string;
sessionId?: string;
batchSize?: number;
flushInterval?: number;
maxRetries?: number;
retryDelay?: number;
}
interface LoggerConfig {
enableHttpTransport?: boolean;
httpTransport?: Partial<HttpTransportConfig> & {
endpoint?: string;
sdkName?: string;
intentToken?: string;
};
}
declare class ConsoleTransport implements LoggerTransport {
log(level: LogLevel, message: string, metadataOrContext?: string | Record<string, unknown> | Error | unknown): void;
}
declare class HttpTransport implements LoggerTransport {
private config;
private queue;
private flushTimer?;
private isProcessing;
private sessionId;
constructor(config: HttpTransportConfig);
private extractSessionId;
private setupAppStateHandlers;
private scheduleFlush;
private createLogEntry;
log(level: LogLevel, message: string, metadataOrContext?: string | Record<string, unknown> | Error | unknown): void;
flush(): Promise<void>;
private sendLogs;
destroy(): void;
}
declare class Logger {
private transports;
private enabled;
private debugMode;
private config;
constructor(config?: LoggerConfig);
private setupDefaultHttpTransport;
addTransport(transport: LoggerTransport): void;
removeTransport(transport: LoggerTransport): void;
setEnabled(enabled: boolean): void;
setDebugMode(debug: boolean): void;
updateIntentToken(intentToken: string | null): void;
private logToTransports;
debug(message: string, metadataOrContext?: string | Record<string, unknown> | Error | unknown): void;
log(message: string, metadataOrContext?: string | Record<string, unknown> | Error | unknown): void;
info(message: string, metadataOrContext?: string | Record<string, unknown> | Error | unknown): void;
warn(message: string, metadataOrContext?: string | Record<string, unknown> | Error | unknown): void;
error(message: string, metadataOrContext?: string | Record<string, unknown> | Error | unknown): void;
addHttpTransport(config: Partial<HttpTransportConfig> & {
endpoint: string;
sdkName: string;
}): HttpTransport;
truncateData(data: any, maxLength?: number): string;
truncateUrl(url: string, maxLength?: number): string;
}
export declare const logger: Logger;
export { Logger, HttpTransport, ConsoleTransport };
export type { HttpTransportConfig, LogEntry, SDKLogEntry, LoggerConfig };