From the over-engineering audit. node-7z, 7zip-bin and @types/node-7z exist for exactly one thing now: the launcher's own backup archives. Everything else moved on. Installer payloads go through the pure TypeScript Inno extractor, game archives through node-tar, mod archives through yauzl. The 95 line hand-parse of 7z's -slt listing text in archiveValidation is an unreachable else branch.
Cutting them removes three dependencies, a bundled binary per platform, the postinstall chmod script that exists to make those binaries executable, and the asarUnpack entry that ships them. That is the single biggest cut available in the repository.
The catch, and the reason this is an issue rather than a PR: backups are user data. Writing new backups as tar.gz with the tar dependency already present is straightforward, but every backup a player already made is a zip, and restoring those has to keep working. A yauzl read path covers it, which means the zip reader stays while the zip writer goes.
Worth deciding together before anyone writes it: whether new backups switch format at all, or whether the simpler cut is to keep zip and write it with yauzl's writing counterpart. Either way the 7z process spawn and its text parsing go.
From the over-engineering audit. node-7z, 7zip-bin and @types/node-7z exist for exactly one thing now: the launcher's own backup archives. Everything else moved on. Installer payloads go through the pure TypeScript Inno extractor, game archives through node-tar, mod archives through yauzl. The 95 line hand-parse of 7z's -slt listing text in archiveValidation is an unreachable else branch.
Cutting them removes three dependencies, a bundled binary per platform, the postinstall chmod script that exists to make those binaries executable, and the asarUnpack entry that ships them. That is the single biggest cut available in the repository.
The catch, and the reason this is an issue rather than a PR: backups are user data. Writing new backups as tar.gz with the tar dependency already present is straightforward, but every backup a player already made is a zip, and restoring those has to keep working. A yauzl read path covers it, which means the zip reader stays while the zip writer goes.
Worth deciding together before anyone writes it: whether new backups switch format at all, or whether the simpler cut is to keep zip and write it with yauzl's writing counterpart. Either way the 7z process spawn and its text parsing go.