/** * Polyfill global para BlobBuilder * Deve ser executado ANTES de qualquer import de lib-jitsi-meet * * BlobBuilder é uma API antiga dos navegadores que foi substituída pelo construtor Blob * A biblioteca lib-jitsi-meet pode tentar usar BlobBuilder em navegadores modernos */ export function adicionarBlobBuilderPolyfill(): void { if (typeof window === 'undefined') return; // Verificar se já foi adicionado (evitar múltiplas execuções) // eslint-disable-next-line @typescript-eslint/no-explicit-any if ((window as any).__blobBuilderPolyfillAdded) { return; } // Implementar BlobBuilder usando Blob moderno // eslint-disable-next-line @typescript-eslint/no-explicit-any const BlobBuilderClass = class BlobBuilder { private parts: BlobPart[] = []; append(data: BlobPart): void { this.parts.push(data); } getBlob(contentType?: string): Blob { return new Blob(this.parts, contentType ? { type: contentType } : undefined); } }; // Adicionar em todos os possíveis locais onde a biblioteca pode procurar // eslint-disable-next-line @typescript-eslint/no-explicit-any const win = window as any; // Definir BlobBuilder se não existir if (typeof win.BlobBuilder === 'undefined') { win.BlobBuilder = BlobBuilderClass; } // Variantes de navegadores antigos if (typeof win.WebKitBlobBuilder === 'undefined') { win.WebKitBlobBuilder = BlobBuilderClass; } if (typeof win.MozBlobBuilder === 'undefined') { win.MozBlobBuilder = BlobBuilderClass; } if (typeof win.MSBlobBuilder === 'undefined') { win.MSBlobBuilder = BlobBuilderClass; } // Adicionar no global scope if (typeof globalThis !== 'undefined') { if (typeof (globalThis as any).BlobBuilder === 'undefined') { (globalThis as any).BlobBuilder = BlobBuilderClass; } if (typeof (globalThis as any).WebKitBlobBuilder === 'undefined') { (globalThis as any).WebKitBlobBuilder = BlobBuilderClass; } if (typeof (globalThis as any).MozBlobBuilder === 'undefined') { (globalThis as any).MozBlobBuilder = BlobBuilderClass; } } // Marcar que o polyfill foi adicionado win.__blobBuilderPolyfillAdded = true; console.log('✅ Polyfill BlobBuilder adicionado globalmente'); } // Executar imediatamente se estiver no browser if (typeof window !== 'undefined') { adicionarBlobBuilderPolyfill(); }