mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
@react-pdf/hyphenate@0.1.0 é ESM puro e só definia a condição `import` no exports map. O worker roda via tsx (CommonJS por padrão neste repo), então qualquer import estático de @react-pdf/renderer (usado pela exportação de dados LGPD) derrubava carregarDeps() do drain loop com ERR_PACKAGE_PATH_NOT_EXPORTED — e como register-handlers.ts registra os 12 handlers do event_log num só import chain, um pacote quebrado tirava o laço rápido de TODOS eles, não só do LGPD, caindo pro cron de 1x/min como única rede de segurança. - patches/@react-pdf__hyphenate.patch (via pnpm.patchedDependencies) acrescenta a condição `require` ao exports map: Node 22.12+/24 já sabe carregar ESM via require() quando o mapa permite. - Dockerfile e Dockerfile.worker: copia patches/ antes do `pnpm install --frozen-lockfile` (a otimização de cache de camada copiava só package.json+lockfile primeiro, e o install falhava sem encontrar o patch referenciado). - tests/unit/react-pdf-resolve-sob-tsx.test.ts: regressão via processo filho tsx real (mesma técnica de import-puro-sem-env.test.ts) usando require() — import() dinâmico não serve de aparato aqui porque sempre passa pelo loader ESM nativo do Node, que já honrava a condição `import` e nunca detectaria a quebra. Confirmado nos dois sentidos (aparato falha sem o patch, passa com ele) e provado no worker real: o warning "event-log drain OFF" some do log de boot depois do rebuild. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>