v1.1.0-beta.028 - refactor: replace node-unar wrapper with native unar CLI for CBR conversion
๐๏ธ Extraction Engine
- Replace buggy, unmaintained node-unar wrapper with direct execFile call to the OS unar binary
- Pass arguments as an array (no shell), so filenames with quotes/parens/backticks can never break extraction
- Add -q quiet flag and 10MB maxBuffer to keep large archives from overflowing process output
- Add -p '' so password-protected archives fail fast instead of hanging on a stdin prompt
๐จ Error Reporting
- Surface unar's real stderr in conversion failures instead of the dead-end An unknown error occurred
- Map ENOENT to a clear unar binary not found on PATH message for non-Docker environments
๐ฆ Metadata
- Preserve embedded ComicInfo.xml when converting CBR to CBZ, matching existing repackArchive behavior
๐งน Dependency Cleanup
- Remove node-unar from package.json and lockfile
- Remove node-unar from serverExternalPackages in next.config.mjs
- Delete obsolete node-unrar.d.ts type shim
- Remove stale node-unrar-js mock from converter tests
๐ณ Dockerfile
- Drop unar from the builder stage (only needed at runtime)
- Remove node-unar copy into the standalone output (no longer exists)
- Runner-stage unar install and dpkg-architecture mock unchanged โ still required by the binary