/** * Varre o diretório temporário do sistema e remove o que os testes e scripts * do Izanagi criaram e não limparam. * * POR QUE ISSO EXISTE * ------------------- * Quase toda suíte do runtime cria seu próprio `fs.mkdtempSync(path.join( * os.tmpdir(), 'izanagi--'))` e nenhuma remove no fim. Medido nesta * máquina: **3.517 diretórios** `izanagi-*` acumulados no TEMP do usuário * (`izanagi-mem` 384, `izanagi-tools` 264, `izanagi-dash` 240, * `izanagi-artifacts` 240, `izanagi-approvals` 216...). Cada `npm test` soma * mais uma rodada, e nada nunca subtrai. * * A alternativa "certa" seria um helper de cleanup em cada um dos ~40 arquivos * de teste. Isso é muito mais código para mudar, e um arquivo novo que esqueça * o helper volta a vazar em silêncio: a varredura por prefixo cobre o passado * e o futuro de uma vez, e roda como `posttest`. * * SEGURANÇA DA REMOÇÃO * -------------------- * Só entra o que satisfaz TODAS as condições: * 1. está DIRETAMENTE dentro de `os.tmpdir()` (nunca recursivo, nunca fora); * 2. o nome começa com um dos prefixos que o próprio framework usa; * 3. é diretório (ou arquivo com o mesmo prefixo, caso de relatório solto). * * Nada de glob, nada de `rm -rf` com variável interpolada, nada de seguir * symlink: `fs.rmSync(dir, { recursive: true, force: true })` sobre um caminho * montado por `path.join` a partir de uma entrada de `readdirSync`. * * `--dry-run` lista sem remover. `--max-age-hours=N` preserva o que é recente * (default 0: remove tudo, que é o que um `posttest` quer). */ /** * Prefixos usados pelos testes/scripts do framework. Deliberadamente * específicos: `izanagi` sozinho pegaria um diretório de usuário chamado * `izanagi-notas`, e um limpador que apaga o que não criou é pior que o * vazamento que ele conserta. */ export declare const TEMP_PREFIXES: string[]; export interface CleanTempResult { scanned: number; removed: string[]; kept: number; failed: Array<{ entry: string; reason: string; }>; } /** `true` quando o nome casa com um prefixo do framework. */ export declare function isFrameworkTempEntry(name: string): boolean; export declare function cleanTemp(opts?: { dryRun?: boolean; maxAgeHours?: number; tmpDir?: string; }): CleanTempResult; //# sourceMappingURL=clean-temp.d.ts.map