Files
quasar/plans/integrar-archive-entries-plan-phase-3-complete.md
Benito Rodríguez 7ca465fb73 feat: stream hashing and archive-entry import support
- Añade `computeHashesFromStream` para hashing desde streams
- Adapta `importDirectory` para procesar entradas internas usando `streamArchiveEntry`
- Añade tests unitarios para hashing por stream e import de entradas de archive
2026-02-09 19:36:18 +01:00

1.8 KiB

Phase 3 Complete: Hashing por stream y soporte en importService

TL;DR: Implementado computeHashesFromStream y adaptado importDirectory para procesar entradas internas de archivos usando archiveReader.streamArchiveEntry. Añadidos tests unitarios TDD que validan hashing desde streams y el flujo de import para entradas internas.

Files created/changed:

  • backend/src/services/checksumService.ts (añade computeHashesFromStream)
  • backend/src/services/importService.ts (usa streamArchiveEntry y computeHashesFromStream para isArchiveEntry)
  • backend/tests/services/checksumService.stream.spec.ts (nuevo)
  • backend/tests/services/importService.archiveEntry.spec.ts (nuevo)

Functions created/changed:

  • computeHashesFromStream(rs) — calcula md5, sha1, crc32 y size desde un Readable.
  • importDirectory — para objetos con isArchiveEntry obtiene un stream con streamArchiveEntry(containerPath, entryPath) y calcula hashes en streaming.

Tests creados/ejecutados:

  • backend/tests/services/checksumService.stream.spec.ts — pasa (1 test).
  • backend/tests/services/importService.archiveEntry.spec.ts — pasa (1 test).

Review Status: APPROVED with minor recommendations

Notas / Recomendaciones:

  • Se sugiere limpiar listeners en computeHashesFromStream (evitar fugas con streams inusuales).
  • Algunos specs usan casts as unknown as vi.Mock; si TypeScript da errores, convertir esos casts a import type { Mock } from 'vitest' y usar Mock o usar any.

Git Commit Message: feat: stream hashing and archive-entry import support

  • Añade computeHashesFromStream para hashing desde streams
  • Adapta importDirectory para procesar entradas internas usando streamArchiveEntry
  • Añade tests unitarios para hashing por stream e import de entradas de archive