Skip to content

Latest commit

 

History

History
585 lines (375 loc) · 24 KB

CHANGELOG.md

File metadata and controls

585 lines (375 loc) · 24 KB

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

Note: Unlisted patch versions only involve non-code or otherwise excluded changes and/or version bumps of transitive dependencies.

7.0.2 (2024-07-25)

🩹 Bug fixes

  • add explicit return type for first() (8a53ee0)

7.0.0 (2024-07-22)

🛑 Breaking changes

  • restructure & split-up package (#486) (8e59a63)
  • BREAKING CHANGE: restructure & split-up package, update readme
    • remove obsolete source files
    • update pkg exports
  • migrate/remove SortedMap/Set, sortedObject() (#486) (9f4143a)
  • BREAKING CHANGE: migrate/remove SortedMap/Set, sortedObject()
  • migrate/remove sparse set features (#486) (db2957c)
  • BREAKING CHANGE: migrate sparse set features to @thi.ng/sparse-set pkg
    • remove obsolete files
    • update pkg

6.3.61 (2024-06-21)

♻️ Refactoring

  • rename various rest args to be more semantically meaningful (8088a56)
  • dedupe BidirIndex deletion & iteration, update tests (3c11a44)
  • enforce uniform naming convention of internal functions (56992b2)

6.3.57 (2024-04-20)

♻️ Refactoring

6.3.55 (2024-04-08)

♻️ Refactoring

6.3.18 (2023-11-09)

♻️ Refactoring

  • update all tests (packages A-S) (e3085e4)

6.3.2 (2023-08-27)

♻️ Refactoring

  • update internal types (TS 5.2 update) (3f686d0)

6.3.0 (2023-08-22)

🚀 Features

🩹 Bug fixes

  • update arg types and generics for selectKeys()/withoutKeys() (4fa9ea1)

6.2.43 (2023-08-12)

♻️ Refactoring

  • update .probability() call sites in various pkgs (c8c8141)

6.2.25 (2023-02-10)

🩹 Bug fixes

  • #375 update .set() for existing keys (4c1da10)
    • when updating existing keys, add missing value propagation for intermediate nodes
    • add tests
  • #375 fix SortedMap.delete(), add fuzz test (ccbdfeb)
    • fix issue which caused lane corruption and detached heads
    • add fuzz test repeatedly setting/deleting keys

6.2.24 (2023-02-05)

🩹 Bug fixes

  • #375 major update/rewrite SortedMap impl (d5f793a)
    • update Node impl to use 4-way linkage
    • simplify .set()/.delete() impls
    • remove obsolete SortedMapOpts.capacity
    • add SortedMapOpts.rnd to customize IRandom impl (e.g. for reproducible behavior/branching)
    • update tests
    • update deps (add @thi.ng/random)

6.2.0 (2022-07-19)

🚀 Features

6.1.9 (2022-06-09)

♻️ Refactoring

  • various (minor) TS4.7 related updates/fixes (9d9ecae)

6.1.0 (2021-11-17)

🚀 Features

  • Using workspaces for local tools (bf7a404) Improving the overall build ergonomics
    • introduced a tools workspaces
    • imported it in all needed packages/examples
    • inclusive project root

♻️ Refactoring

  • testrunner to binary (4ebbbb2) this commit reverts (partly) changes made in: ef346d7a8753590dc9094108a3d861a8dbd5dd2c overall purpose is better testament ergonomics: instead of having to pass NODE_OPTIONS with every invocation having a binary to handle this for us.

6.0.9 (2021-11-10)

♻️ Refactoring

  • update all countdown loops (a5f374b)

6.0.1 (2021-10-13)

♻️ Refactoring

  • update imports in all pkgs (5fa2b6f)
    • add .js suffix for all relative imports
  • update imports in all tests/pkgs (effd591)

6.0.0 (2021-10-12)

🛑 Breaking changes

  • major update of ALL pkgs (export maps, ESM only) (0d1d6ea)
  • BREAKING CHANGE: discontinue CommonJS & UMD versions
    • only ESM modules will be published from now on
    • CJS obsolete due to ESM support in recent versions of node:
      • i.e. launch NodeJS via:
      • node --experimental-specifier-resolution=node --experimental-repl-await
      • in the node REPL use await import(...) instead of require()
    • UMD obsolete due to widespread browser support for ESM Also:
    • normalize/restructure/reorg all package.json files
    • cleanup all build scripts, remove obsolete
    • switch from mocha to @thi.ng/testament for all tests

🚀 Features

🩹 Bug fixes

  • update merge/meld fns (25cdc0a)
    • the object spread operator under ESNext compile target doesn't exclude the __proto__ property anymore, hence we add the copyObj() helper

♻️ Refactoring

  • update all tests in all pkgs (8b582bc)
  • update node inspect import (6786c35)
  • update imports (51f4867)
  • update imports (transducers) (3fcf9a9)
  • update deps & imports in various pkgs (e1cf29e)
    • largely related to recent updates/restructuring of these packages:
      • api
      • defmulti
      • errors
      • logger
  • restructure package/utils (966f5e4)
  • rename internals (e7818a7)

5.2.12 (2021-08-17)

♻️ Refactoring

  • update internal destructures (e847a27)
  • update ArraySet.get() (40383fa)
    • add explicit @thi.ng/array dep (already was a transient dep)
    • update destructuring

5.2.0 (2021-03-30)

🚀 Features

  • add selectDefinedKeys*() fns (e0977db)
  • add renameTransformedKeys() (3190537)

5.1.0 (2021-02-20)

🚀 Features

  • update meldApplyObj/meldObjWith() (97dda16)
    • improve protection against prototype poisoning using extended isIllegalKey() predicate from @thi.ng/checks

5.0.7 (2020-09-22)

♻️ Refactoring

  • remove obsolete string coercions (9919c56)

5.0.6 (2020-09-13)

♻️ Refactoring

  • update imports, use new function aliases (17a0be0)
  • update imports, use new Fn types in various pkgs (ced1e5d)

5.0.0 (2020-07-25)

🛑 Breaking changes

  • add TrieMap, rename MultiTrie (cc2d139)
    • add simplified TrieMap for string keys and Map-like semantics
    • add MultiTrie ctor opts to allow custom value sets
    • add defTrieMap()/defMultiTrie() factory fns
    • add/update tests
  • BREAKING CHANGE: rename Trie => MultiTrie

🚀 Features

  • update MultiTrie.suffixes() (ec110ae)
    • add opt separator arg for arraylike keys

4.5.0 (2020-07-17)

🚀 Features

4.4.1 (2020-07-08)

🩹 Bug fixes

  • set combinator arg types (1cbbf27)
    • unionR() / intersectionR() / differenceR()

4.4.0 (2020-07-08)

🚀 Features

  • disallow __proto__ in merge fns (d637996)
    • many thanks to @nkint for reporting! :)

4.3.0 (2020-07-04)

🚀 Features

  • add mutable merge fns (ec6abe4)
    • add meldApplyObj()
    • add meldDeepObj()
    • add meldObjWith()
    • update exisiting immutable versions
    • add doc strings
    • add/update tests

4.2.0 (2020-06-20)

🚀 Features

  • update Trie to allow custom value sets (777829c)
  • add null checks for merge* fns (7baa3ba)
    • update arg types to allow nullish args

♻️ Refactoring

  • update arg types for .forEach() (aafb0b7)
    • remove readonly flags due to built-in TS Set/Map interface defs

4.1.0 (2020-06-14)

🚀 Features

4.0.8 (2020-05-14)

♻️ Refactoring

  • update types/generics (TS3.9) (467d33e)

4.0.0 (2020-03-28)

🛑 Breaking changes

  • #210, add defXXX factory fns (48ae24a)
    • add defArraySet()
    • add defLLSet()
    • add defSortedSet()
    • add defSparseSet()
    • add defEquivMap()
    • add defHashMap()
    • add defSortedMap()
  • BREAKING CHANGE: remove static fromObject() map factories
    • merged with defHashMap(), defSortedMap()

🚀 Features

  • re-add support for nodejs REPL inspection (49024f7)
    • custom Set/Map impls were showing up as empty in the REPL in recent Node versions (13.x)
    • adding @inspectable decorator mixin for all impls to provide hook for Node's inspection mechanism
    • Ref: nodejs/node#32529

3.1.4 (2020-02-25)

♻️ Refactoring

3.1.2 (2020-01-24)

♻️ Refactoring

  • minor update IEquivSet (IClear) (8d4745e)

3.1.0 (2019-11-09)

🚀 Features

  • add reducer versions of difference, intersection, union (058b9d3)

🩹 Bug fixes

  • fix off-by-one error in sparseSet() factory, add tests (94ff308)

♻️ Refactoring

  • fix #169, update set op reducers (0e0a76f)
    • extract internal xformSetOp HOF reducer
    • update unionR/intersectionR/differenceR()

3.0.0 (2019-08-21)

🛑 Breaking changes

  • update XXXMap.dissoc() signature to unify API (632c57a)
  • BREAKING CHANGE: dissoc() method signature changed from varargs to Iterable<K> Example:
    • previously: HashMap.dissoc(1, 2, 3)
    • now: HashMap.dissoc([1, 2, 3]) This new signature is the same as used by dissoc() standalone fn and the disj() methods of the various Sets in this package.

♻️ Refactoring

  • minor update SortedMap.compare() (93d8e34)

2.4.0 (2019-07-07)

🚀 Features

  • enable TS strict compiler flags (refactor) (7931e14)

🩹 Bug fixes

  • update SortedMap.fromObject() - PropertyKey => string (48688da)
  • update generics (TS3.5.2) (75a4f72)

♻️ Refactoring

2.3.0 (2019-05-22)

🚀 Features

♻️ Refactoring

2.2.0 (2019-04-09)

🚀 Features

  • add withoutKeys*(), ensureSet/Map fns (5173fda)

2.1.2 (2019-04-06)

🩹 Bug fixes

  • fix mergeApplyMap, update other merge fns, add tests (a0f3941)

2.1.0 (2019-04-02)

🚀 Features

  • add HashMap w/ linear probing, update deps (e3b84ab)

2.0.1 (2019-04-02)

🩹 Bug fixes

  • add missing return type decls (1913bb4)

2.0.0 (2019-03-28)

🛑 Breaking changes

  • update set combinator ops (9e78d20)
    • add opt out arg
  • BREAKING CHANGE: make difference, intersection, union immutable ops
  • fix/update invertMap() / invertObj() (b57a1c0)
    • add opt dest arg
  • BREAKING CHANGE: changed result type handling in invertMap(), see docstring
  • update type sigs & args for various fns (7bf2504)
  • BREAKING CHANGE: improved/stricter type sigs & args for various fns
    • commonKeys*()
    • indexed()
    • join() / joinWith()
    • renameKeys*()
    • selectKeys*()
    • first()

🚀 Features

  • make .forEach() args readonly, add Symbol.toStringTag (3749d41)
  • add polymorphic into() (4577646)

♻️ Refactoring

  • update IEquivSet & EquivSetConstructor (75cc900)

1.0.12 (2019-03-21)

🚀 Features

  • update SortedSet, IEquivSet, add tests (e8234e8)
    • remove opts() from IEquivSet
    • add min/max key query opts for SortedSet.entries/keys/values()

1.0.11 (2019-03-18)

♻️ Refactoring

  • re-implement SortedMap / skiplist, update tests (5bb09d9)

1.0.9 (2019-03-10)

♻️ Refactoring

  • update Fn args in various packages (e453ac3)

1.0.0 (2019-01-21)

🛑 Breaking changes

  • update package build scripts & outputs, imports in ~50 packages (b54b703)
  • BREAKING CHANGE: enabled multi-outputs (ES6 modules, CJS, UMD)
    • build scripts now first build ES6 modules in package root, then call scripts/bundle-module to build minified CJS & UMD bundles in /lib
    • all imports MUST be updated to only refer to package level (not individual files anymore). tree shaking in user land will get rid of all unused imported symbols.

♻️ Refactoring

  • use arrow fns, update formatting (aaf2723)

0.6.0 (2018-08-24)

🚀 Features

  • add IReducible impls for SortedMap & SortedSet (f14f7ce)

♻️ Refactoring

0.5.11 (2018-08-01)

♻️ Refactoring

  • TS3.0 PropertyKey handling (2234313)

0.5.9 (2018-07-03)

🩹 Bug fixes

  • minor SortedSet fixes (33f0d19)
    • partial opts for SortedSet ctor
    • update first() return type

0.5.1 (2018-05-10)

♻️ Refactoring

0.5.0 (2018-05-09)

🚀 Features

  • add mapKeysObj() / mapKeysMap() (a9574a0)
  • add new functions, update arg & return types (5991be6)
    • add commonKeys*()
    • add mergeMapWith() / mergeObjWith()
    • add mergeDeepObj()
    • rename mapKeys*() => mergeApply*()
    • update renameKeys*() arg/return types
    • update indexed() arg types
    • update join() & joinWith() arg/return types
    • update re-exports

0.4.2 (2018-04-20)

🩹 Bug fixes

  • allow partial options arg for EquivMap ctor (bb11ddf)

0.4.0 (2018-04-13)

🚀 Features

⏱ Performance improvements

♻️ Refactoring

  • update EquivMap, update SortedSet, add docs (1f8af6c)
    • add IEquivSet interface
    • add EquivSetOpts & EquivMapOpts
    • rename ArrayMap => EquivMap
    • update EquivMap to support customizable key set impls
    • rename ArraySet => LLSet
    • add actual arraybased ArraySet
    • add into() & disj() impls for SortedSet
    • add various doc strings

0.3.0 (2018-04-13)

🚀 Features

  • add SortedMap & tests, minor refactor EquivMap (ae0eae8)
  • add SortedSet, update SortedMap (cb4976f)
    • add compare() & equiv() impls for SortedMap

♻️ Refactoring

  • add private impls for EquivMap/Set (a769856)
  • rename EquivMap/Set => ArrayMap/Set, export interfaces (8756027)

0.2.0 (2018-04-10)

🚀 Features