All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
7.4.0-beta.4 (2026-04-28)
7.4.0-beta.3 (2026-04-26)
- match: explicitly reject useTokenSearch in Fuse.match (3959d91)
- workers: match Fuse ordering and reject non-cloneable options (d571390)
- workers: reject useTokenSearch in FuseWorker (8c6183d)
7.4.0-beta.2 (2026-04-17)
- core: invalidate searcher cache on collection mutation (fcf4228)
- correct fieldCount accounting and add reverse lookup in inverted index (54e702c)
- guard against empty-string crash in fieldNorm (e550ab1)
- skip consecutive spaces in fieldNorm word counting (5929af6)
- token-search: renumber inverted index after doc removal (ea9356d)
- types: resolve typecheck errors and align KeyStore types (dbc115d)
- typo in parseQuery comments ("once" → "ones") (be2a8dc)
- use latest stable version in docs CDN links (763e533)
- workers: preserve global refIndex across shards (e4217f9)
7.4.0-beta.1 (2026-04-04)
- add FuseWorker for parallel search via Web Workers (9ba192c)
7.3.0 (2026-04-04)
- add BigInt support for indexing and search (0ae662c), closes #814
- add static Fuse.match() for single string matching (460eb5b)
- add token search — per-term fuzzy matching with IDF scoring (68c1dcf)
- getFn null return, escaped pipe in extended search, empty query returns all (d33b735), closes #800 #765 #728
- removeAt() now returns the removed item (8cec7e2), closes #675
- search: support keyless string entries in logical queries (8695556), closes #736
- index: coerce non-string array values to strings during indexing (db0e181), closes #738
- index: strip getFn from keys in toJSON() for safe serialization (0f2a69b), closes #798
- lint: suppress unused var in toJSON destructure (d63c0e8)
- merge overlapping match indices in extended search (06c5e97)
- search: handle non-decomposable diacritics in stripDiacritics (5a01f29), closes home-assistant/frontend#30399 #816
- search: handle quoted tokens with inner spaces and quotes in extended search (c226523), closes #810
- search: inverse patterns now work correctly across multiple keys (9351882), closes #712
7.2.0 (2026-04-02)
- add
Fuse.use()for runtime plugin registration (8546a9b)
- inline Bitap score computation to reduce object allocation in hot loops (8546a9b)
- batch
removeAllfor O(n) bulk removes instead of O(n*k) (8546a9b) - heap-based top-k selection when
limitis set (8546a9b) - cache compiled searcher for repeated queries (8546a9b)
- search: deduplicate and merge overlapping match indices (60c393a), closes #735
- search: preserve original array indices in nested path traversal (a1451be), closes #786
- types: correct key type in FuseSortFunctionMatch (fecee16), closes #811
- types: correct keys type in parseIndex parameter (58c7c73), closes #794
7.1.0 (2025-02-03)
- remove console.log (1c749a3)
- typescript: clarify input to
parseIndex(72b6e25), closes #524 #624 - typescript: clarify input to
parseIndex(78c628e), closes #524 #624
7.0.0 (2023-10-24)
- Extension changed
- finish all but state handling of live demo (9b5421a)
- implementing reacting to option changes (46c561c)
- improve fuse keys (c47f3d4)
- proper ESM exports (eebcf2c)
- properly configure monaco editors (fe0d33e)
- add favicon on public root (bc155a3)
- add proper ESM exports in package.json (98366b1)
- build fixes (5969ca7)
- double totalWeight (5c0ab46)
- fixed browserconfig xml file (ca0cbbb)
- fixed config, packages, and twitter social button (bd7555c)
- fixed navbar (29b2599)
- fixed version display and active search plugin (6e2a592)
- imports (ec4e3bc)
- re-implement sidebar advertisements (67a10cf)
- support -> donate for clarity of what it is (ef99f56)
- vite SSR build fixes (3ae8299)
6.6.2 (2022-05-11)
6.6.1 (2022-05-06)
- getFn to FuseOptionKeyObject (80b87a9), closes #655
- typescript: type definition for `FuseOptionKeyObject, fixes #655 (4acabb6)
- typescript: type definition for FuseOptionKeyObject (0a790b5), closes #655 #656
6.6.0 (2022-05-03)
6.5.3 (2021-12-23)
6.5.2 (2021-12-23)
6.5.1 (2021-12-23)
- rollback min node version (9918f67)
6.5.0 (2021-12-22)
- scoring: field length norm weight (a9e0080)
- typescript: add config declaration to types (2f4de0c)
6.4.6 (2021-01-05)
6.4.5 (2021-01-01)
6.4.4 (2020-12-29)
6.4.3 (2020-10-30)
6.4.2 (2020-10-20)
- if null in array (740a500)
6.4.1 (2020-07-26)
6.4.0 (2020-06-28)
- extended: add ability to search actual exact string (350283f)
6.3.1 (2020-06-24)
6.3.0 (2020-06-23)
- typescript: add types for string and object together for the key property (85fb211)
- typescript: add typing for nested paths with array notation (dfa4823)
- Added logical query expressions (#411)
- Added ability to dynamically add/remove items (#412)
- Mix different
options:keytypes during initialization (#413) - Improved indexing performances, as well storage savings (#405, #407)
- Addresses #390, #376, #382, #385
- Removed ngram search and extended bitap to search long patterns
- Fixed Fuse global name. Erroneously set as 'Fuse.js'
- Changed bundler to Rollup.
- Added ES6 modules for bundlers and browsers (
fuse.esm.js) (fixed #262) - Added CommonJS builds (
fuse.common.js)
- The minimified version is finally actually called
fuse.min.js
- Fixed (#363)
- Fixed (#357)
- A couple of fixes, courtesy of Daniel Dickinson:
- Generate multiple targets with webpack (#359)
- Fixed TypeError (#360)
- Added indexing for increased performance over large lists
- Added
Fuse.createIndex, which created and returns an index. This function can be used to pre-generate the index, which you can then save, and ultimately pass to theFuseinstance.
- Added
- Removed
idoption - Changed format of the search results
- Updated TypeScript definitions
- Removed
matchAllTokensoption.
- Added ability to search patterns longer > 32 characters
- Removed
maxPatternLengthoption
- Perf optimization on nested array search
- Re-added license information
- Increased Node version
- Added missing tests
- Removed unused codepath
- Fixed case sensitivity check
- Upgraded dev dependencies
- Added extended search Discussion
- Removed tokenization Discussion
- Improved error handling for keys
- Fixed #341, adjusting weights into the calculation
- Improved performance by ~10% (really can only be seen when you have 10k+ items)
- Fixed #261
- Rewrote tests to Jest framework
- Wrote tests for TypeScript typings
- Cleanup build
- Fixed #288
- Ensured
dist/content is production ready (both full and min versions) #283
- Upgraded build tool to Webpack 4. New
dist/output.
- Fixed the circular JSON TypeError (#197). Thanks ThinkTankShark!
- Fixed issue in which more fuzzy matches would weaken a score instead of strengthening it (#233)
- Give better result for exact match when using weighted keys (#192)
- Added match index location for array key (#183)
- Allow searching deep nested numbers (#189)
- Escape special characters in search pattern (#168)
- Random bug fixes (#162)
- Removed Bower support
- Modified library into a more more palatable architecture, where the Bitap portion is now its own separate module.
- Removed
includeoption in favor of more explicit booleans:includeScoreandincludeMatches. Both arefalseby default. - Removed
searchFnoption, as this (for now) will remain a Bitap based solution
- Reverted to previous version, thus fixing breaking changes (a little bit of a version match here)
- Revert back to previous version
- Fix typings based on TypeScript guidelines (#129)
- Added Typescript definition
- Added ability to set min/max matched character lengths when returning the matched indices (#122)
- Added option to search by matching all tokens (in every record) when
matchAllTokens:true(#95)
- Added token separator to options, when
tokenize:true(#93) - General code clean up (#88)
- Bunch of other bug fixes
- Added option to include matched indices (#6)
- Added ability to search with weighted keys (#62)
- Added ability to search with weighted keys (#62)
- Modified search algorithm to search individual words AND the full string, computing the final score as a function of both. This yields better scoring accuracy (#41)
- Changed exact substrings to not have a score of zero. That is searching for "hell" in "hello" will not yield a score of zero, while searching for "hello" will (#63)
- Added
verboseoption, which will print to the console useful information, mostly for debugging - Improved code structure.
- Added version information within Fuse itself
- Added this Changelog (#64)
- Added fallback when pattern length is greater than machine word length (i.e, > 32 characters) (#38)
- Allowed results with a value of 0 to be returned (#73)