Skip to content

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 19 May 19:09

MifKit 1.1.0

First release under the new MifKit name. The Excel exporter you knew as MifMapXL is unchanged — it is now one of several converters in a pluggable registry, with a UI and CLI that adapt to whichever direction you pick.

Old MifMapXL.git URLs auto-redirect; settings from 1.0.x are migrated automatically on first launch.

What's new

KML/KMZ → MapInfo MIF/MID (kml-to-mif)

A full second conversion direction. Resolves each Placemark's styleUrl through StyleMap → Style chains so per-feature colors land in MapInfo as matching Pen / Brush / Symbol strings. Four attribute columns: Name, Description, resolved StyleId, full KML Folder path (so you can Select * where Folder like "%бугры%" once everything is in one table). Folder hierarchy preserved as nested directories on disk, or flattened into one directory with parent__child prefixes (--flat). KMZ archives unzipped in-process — no external tools needed. Charset: WindowsCyrillic (cp1251, default) for Russian/Kazakh data, or Neutral (UTF-8) for MapInfo Pro 15.2+.

Verified byte-identical to a reference Python implementation on a real 1854-feature dataset.

mifkit CLI

The desktop installers also drop a mifkit binary on PATH. Same engine, same options, terminal-first workflow:

mifkit list                                    # all registered converters
mifkit help kml-to-mif                         # show one converter's options
mifkit convert kml-to-mif input.kmz --output=./out --flat
mifkit convert mif-to-xlsx ./mif-folder --output=./out --no-paint-rows

Output paths go to stdout (one per line), logs go to stderr — pipe mifkit convert ... | xargs ... without parsing logs. Exit 0 on success, 1 on per-file errors, 2 on usage errors.

Schema-driven GUI

The renderer no longer hard-codes anything converter-specific. It reads the registry on startup and builds the dropdown + options form from each converter's declarative schema. Adding a new format = one folder under src/core/converters/ + one fixture + one registry entry; the app picks it up automatically with no UI changes.

Settings v2

Per-converter option storage: each direction remembers its own last values across launches. Legacy flat keys from 1.0.x users (paintRows, skipBlack, etc.) are migrated into converterOptions['mif-to-xlsx'] on first load. No setup needed.

Existing features still work as before

The MapInfo → Excel/CSV exporter (mif-to-xlsx) is unchanged: row painting from Brush foreground color, skip-black, combined workbook mode, CSV side-export, color column with custom name, freeze header, autofilter. The existing integration tests confirm byte-identical output to 1.0.4.

Downloads

Platform File
Windows — installer MifKit-win-x64-setup.exe
Windows — portable MifKit-win-x64-portable.exe
macOS — Apple Silicon MifKit-mac-arm64.dmg (or zip)
Linux — Debian/Ubuntu MifKit-linux-amd64.deb
Linux — AppImage MifKit-linux-x86_64.AppImage

First-run notes

macOS — unsigned. If you see "MifKit.app is damaged":

xattr -dr com.apple.quarantine /Applications/MifKit.app

Windows — SmartScreen may show "Windows protected your PC". Click More info → Run anyway.

Test suite

102 passing tests (registry, converters, CLI, settings migration). npm test ≈ 0.5s.

What's next (planned)

mif-to-kml · mif-to-geojson · geojson-to-mif · shp-to-mif · mif-to-shp — see the table in README.md.