UNPKG

@getpassage/react-native

Version:

Passage React Native SDK for mobile authentication

90 lines (89 loc) 3.26 kB
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 };