@bugspotter/sdk
Version:
Professional bug reporting SDK with screenshots, session replay, and automatic error capture for web applications
50 lines (49 loc) • 1.93 kB
TypeScript
export interface CompressionConfig {
gzipLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -1;
imageMaxWidth?: number;
imageMaxHeight?: number;
webpQuality?: number;
jpegQuality?: number;
verbose?: boolean;
}
/**
* Compress JSON or string data using gzip
* @param data - Data to compress (will be JSON stringified if object)
* @param config - Optional compression configuration
* @returns Compressed data as Uint8Array
*/
export declare function compressData(data: unknown, config?: CompressionConfig): Promise<Uint8Array>;
/**
* Decompress gzipped data back to original format
* Useful for testing and verification
* @param compressed - Compressed Uint8Array data
* @param config - Optional configuration
* @returns Decompressed and parsed data (or string if input was string)
*/
export declare function decompressData(compressed: Uint8Array, config?: Pick<CompressionConfig, 'verbose'>): unknown;
/**
* Optimize and compress screenshot image
* Converts to WebP if supported, resizes if too large, then compresses
* @param base64 - Base64 encoded image (PNG or other format)
* @param config - Optional compression configuration
* @returns Optimized base64 image string
*/
export declare function compressImage(base64: string, config?: CompressionConfig): Promise<string>;
/**
* Calculate compression ratio for analytics
* @param originalSize - Original data size in bytes
* @param compressedSize - Compressed data size in bytes
* @returns Compression ratio as percentage (0-100)
*/
export declare function getCompressionRatio(originalSize: number, compressedSize: number): number;
/**
* Estimate payload size before compression
* @param data - Data to estimate
* @returns Estimated size in bytes
*/
export declare function estimateSize(data: unknown): number;
/**
* Reset cached instances (useful for testing)
* @internal
*/
export declare function resetCompressionCache(): void;