Files
Downloader/.gitignore
T
Evandro Fonseca Junior b19c989c0e fix(server): conserta start de produção, entrega do arquivo e diretório de storage
Quatro defeitos verificados executando o servidor de produção:

1. `pnpm start` quebrava na primeira linha com ERR_MODULE_NOT_FOUND
   (`server/dist/lib/SessionManager`): os imports relativos não tinham extensão
   e o Node ESM não resolve `./lib/SessionManager`. Os imports agora terminam em
   `.js` (funciona no tsx em dev e no build do tsc).

2. `GET /api/download/:taskId` devolvia o index.html da SPA (450 bytes) em vez
   do arquivo baixado, porque o @fastify/static resolve o caminho a partir do
   `root` do plugin (web/dist). Agora o root do diretório da sessão é passado
   por requisição via `reply.sendFile(fileName, sessionPath)`.

3. O download podia sair truncado: o status virava "completed" logo depois de
   `fileStream.end()`, antes do flush em disco. A gravação passou a usar
   `stream/promises.pipeline` (respeita backpressure, espera o flush e propaga
   erro de escrita), com um Transform no meio mantendo o cálculo de
   progresso/velocidade.

4. A raiz de armazenamento era `resolve(process.cwd(), "server/storage")`; como
   `pnpm start` executa dentro de `server/`, os arquivos iam para
   `server/server/storage`. Agora a raiz é ancorada no diretório do módulo
   (`server/storage`), com override por `STORAGE_ROOT`, e o diretório entrou no
   .gitignore para os downloads não serem versionados.

Também usa `basename()` no nome de arquivo vindo do Content-Disposition e da
URL de origem, evitando escrever fora do diretório da sessão.
2026-09-14 06:04:15 -03:00

45 lines
523 B
Plaintext

# Node.js
node_modules/
dist/
build/
coverage/
.npm/
# Arquivos baixados pelas sessoes do Ephemeral Downloader
server/storage/
# Environment
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
# OS
.DS_Store
Thumbs.db
# Editor
.vscode/
.idea/
*.swp
*.swo
# Agent / AI
.agent/.shared/
.agent/logs/
.agent/temp/
.agent/**/__pycache__/
.agent/**/*.pyc
.agent/**/node_modules/
.agent/**/.DS_Store
.gemini/
.antigravity/
# Logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*