Skip to content

Commit b05a1f8

Browse files
cinderblockclaude
andcommitted
Polish for merge to master
- Fix double-close in decode.ts: use try/finally per resource so cleanup doesn't run twice on partial failures. - Drop unused deps (implode-decoder, stream-buffers, @types/stream-buffers) and orphan BufferFirstDifference.ts left over from the old decoder path. - Set process.exitCode on error so failures actually fail. - Expand README with the container layout and CLI options. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 675f258 commit b05a1f8

6 files changed

Lines changed: 3640 additions & 407 deletions

File tree

README.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,24 @@
11
# Electronics Workbench Decoder (and Encoder?)
22

3+
Decompresses National Instruments Electronics Workbench / Multisim / Ultiboard
4+
project files (`.ewprj`, `.ms14`) into their underlying XML.
5+
6+
The container is a small header (`CompressedElectronicsWorkbenchXML` or
7+
`MSMCompressedElectronicsWorkbenchXML`) followed by a 64-bit total decompressed
8+
length, then a sequence of `(decompressed_length: u32, compressed_length: u32, pkware_implode_block)` sections. Compression is PKWare DCL Implode (ASCII,
9+
large dictionary).
10+
11+
For each input file, a `<filename>.xml` is written next to the input.
12+
313
## Development
414

515
```bash
616
npm i
7-
npm run dev -- --verbose ../path-to-file.ewprj ../path-to-file2.ewprj
17+
npm run dev -- --verbose ./samples/Temp.ewprj ./samples/Design1.ms14
818
```
19+
20+
CLI options:
21+
22+
- `-v`, `--verbose` — log per-section progress
23+
- `-c`, `--concurrent` — decode multiple files in parallel
24+
- positional args — files to decode

0 commit comments

Comments
 (0)