Libraries for working with Interslavic: its morphology, its alphabets, and how close its words are to the Slavic languages they were built from.
| Package | What it does |
|---|---|
@interslavic/morphology |
inflection, derivation, POS detection; get paradigms and derived forms as CoNLL-U tokens |
@interslavic/translit |
Latin ⇄ Cyrillic ⇄ Glagolitic ⇄ IPA, addressed by BCP 47 codes |
@interslavic/levenshtein |
how recognizable an Interslavic word is to a speaker of a given Slavic language |
@interslavic/conllu |
the token type and UD features the others speak |
@interslavic/stemmer |
stemming and full-text search: one index key per word, whatever alphabet it was typed in |
Each package README has installation and examples. ESM only, Node 20+.
yarn install, yarn build, yarn test. Development requires Node 22.18+
to run TypeScript sources directly through Node type stripping. Published
packages support Node 20+.
yarn test:coverage runs package tests under Node test runner coverage and
enforces coverage thresholds (100% for conllu, translit, levenshtein; 99%
for morphology).
Versions are per package and bumped manually, then published in dependency order:
# 1. bump the versions you are releasing, in packages/*/package.json
# 2. commit, then tag if the main package moved
git tag v4.0.0-next.1 # `v*` tags trigger the lexicon dump
git push --follow-tags
# 3. publish everything whose version is not on npm yet
yarn releaseyarn release skips packages whose versions are already published. It publishes
to the next tag; latest points to 3.4.4 until v4 leaves prerelease.
- CoNLL-U conventions — which dictionary tag becomes which UPOS tag, what lands in FEATS and MISC
- Levenshtein tuning — known issues in the normalization pipelines, with fixes
- Hunspell dictionaries — how the spellchecker files are built, what Hunspell actually does, and why they are built elsewhere