Skip to content

v2.2.0

Choose a tag to compare

@MrRefactoring MrRefactoring released this 27 Oct 20:27
· 1 commit to master since this release

Upgrade to Snowball 3.2.0 with Ukrainian and Early Modern English support. The package now provides 36 algorithms: 35 languages and historical English.

New algorithms

import { ukrainian, earlyModernEnglish, createStemmer, Languages } from 'multilingual-stemmer';

ukrainian('книгами');
earlyModernEnglish('bringeth');
createStemmer('uk')('акварельний');
createStemmer('earlymodernenglish')('bringeth');
createStemmer(Languages.EarlyModernEnglish)('bringeth');

Results: книг, bring, акварел, bring, bring.

Changes and compatibility

  • Regenerate all algorithms and synchronize the Rust runtime with Snowball 3.2.0.
  • French now removes the colloquial elision z'. Rebuild affected French search indexes so documents and queries use the same algorithm version.
  • Use Languages.X members or string identifiers. Specific numeric enum values are not part of the API contract.
  • The published library supports Node.js ≥22 and browsers. Development and builds require Node.js ≥24.14.
  • Update dependencies to TypeScript 7, Vitest 5, pnpm 12, wasm-opt 2 / Binaryen 132, and wasm-bindgen 0.2.129; update GitHub Actions.
  • Clear dist before builds and include full third-party license notices in the npm package.

Verification

  • 63 tests covering all 36 algorithms.
  • Install the npm tarball in a clean project and verify all 2,471,881 corpus words on Node.js 22.0.0.
  • Validate the TypeScript consumer and a Vite production build in Chrome with 1,264 browser checks.

Full changelog