- Last updated: 2023-08-04T10:58:19Z
- Generator: thi.ng/monopub
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.
6.2.25 (2023-02-10)
- #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)
- #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)
- add BidirIndex & tests (26f749f)
6.1.9 (2022-06-09)
- various (minor) TS4.7 related updates/fixes (9d9ecae)
6.1.0 (2021-11-17)
- 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
- 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)
- update all countdown loops (a5f374b)
6.0.1 (2021-10-13)
- 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)
- 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 ofrequire()
- 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
- add sortedObject() (51ba06a)
- update merge/meld fns (25cdc0a)
- the object spread operator under ESNext compile target
doesn't exclude the
__proto__
property anymore, hence we add thecopyObj()
helper
- the object spread operator under ESNext compile target
doesn't exclude the
- update all tests in all pkgs (8b582bc)
- update all to use @thi.ng/testament
- 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
- largely related to recent updates/restructuring of these packages:
- restructure package/utils (966f5e4)
- rename internals (e7818a7)
5.2.12 (2021-08-17)
- 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)
5.1.0 (2021-02-20)
- update meldApplyObj/meldObjWith() (97dda16)
- improve protection against prototype poisoning using extended isIllegalKey() predicate from @thi.ng/checks
5.0.7 (2020-09-22)
- remove obsolete string coercions (9919c56)
5.0.6 (2020-09-13)
- update imports, use new function aliases (17a0be0)
- update imports, use new Fn types in various pkgs (ced1e5d)
5.0.0 (2020-07-25)
- 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
- update MultiTrie.suffixes() (ec110ae)
- add opt separator arg for arraylike keys
4.5.0 (2020-07-17)
- add Trie.knownPrefix() (26ddd2c)
4.4.1 (2020-07-08)
- set combinator arg types (1cbbf27)
- unionR() / intersectionR() / differenceR()
4.4.0 (2020-07-08)
- disallow
__proto__
in merge fns (d637996)- many thanks to @nkint for reporting! :)
4.3.0 (2020-07-04)
- add mutable merge fns (ec6abe4)
- add
meldApplyObj()
- add
meldDeepObj()
- add
meldObjWith()
- update exisiting immutable versions
- add doc strings
- add/update tests
- add
4.2.0 (2020-06-20)
- update Trie to allow custom value sets (777829c)
- add null checks for merge* fns (7baa3ba)
- update arg types to allow nullish args
- update arg types for .forEach() (aafb0b7)
- remove readonly flags due to built-in TS Set/Map interface defs
4.1.0 (2020-06-14)
- add Trie and tests (84b6517)
4.0.8 (2020-05-14)
- update types/generics (TS3.9) (467d33e)
4.0.0 (2020-03-28)
- #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()
- 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)
- update imports (717a5a9)
3.1.2 (2020-01-24)
- minor update IEquivSet (IClear) (8d4745e)
3.1.0 (2019-11-09)
- add reducer versions of difference, intersection, union (058b9d3)
- fix off-by-one error in sparseSet() factory, add tests (94ff308)
- fix #169, update set op reducers (0e0a76f)
- extract internal xformSetOp HOF reducer
- update unionR/intersectionR/differenceR()
3.0.0 (2019-08-21)
- 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 bydissoc()
standalone fn and thedisj()
methods of the various Sets in this package.
- previously:
- minor update SortedMap.compare() (93d8e34)
2.4.0 (2019-07-07)
- enable TS strict compiler flags (refactor) (7931e14)
2.3.0 (2019-05-22)
- minor updates ArraySet (c5e2323)
2.2.0 (2019-04-09)
- add withoutKeys*(), ensureSet/Map fns (5173fda)
2.1.2 (2019-04-06)
- fix mergeApplyMap, update other merge fns, add tests (a0f3941)
2.1.0 (2019-04-02)
- add HashMap w/ linear probing, update deps (e3b84ab)
2.0.1 (2019-04-02)
- add missing return type decls (1913bb4)
2.0.0 (2019-03-28)
- update set combinator ops (9e78d20)
- add opt
out
arg
- add opt
- BREAKING CHANGE: make
difference
,intersection
,union
immutable ops - fix/update invertMap() / invertObj() (b57a1c0)
- add opt
dest
arg
- add opt
- 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()
- update IEquivSet & EquivSetConstructor (75cc900)
1.0.12 (2019-03-21)
- 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)
- re-implement SortedMap / skiplist, update tests (5bb09d9)
1.0.9 (2019-03-10)
- update Fn args in various packages (e453ac3)
1.0.0 (2019-01-21)
- 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.
- build scripts now first build ES6 modules in package root, then call
- use arrow fns, update formatting (aaf2723)
0.6.0 (2018-08-24)
- add IReducible impls for SortedMap & SortedSet (f14f7ce)
- update/replace deps (iterators => transducers) (abe1a88)
- replace Pair & SEMAPHORE w/ identical @thi.ng/api defs (c22ac3c)
0.5.11 (2018-08-01)
- TS3.0 PropertyKey handling (2234313)
0.5.9 (2018-07-03)
- minor SortedSet fixes (33f0d19)
- partial opts for SortedSet ctor
- update first() return type
0.5.1 (2018-05-10)
- update deps & imports in all packages due to @thi.ng/api split (bc45636)
0.5.0 (2018-05-09)
- 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)
- allow partial options arg for EquivMap ctor (bb11ddf)
0.4.0 (2018-04-13)
- add renameKeysMap (bfabe80)
- update equiv() impls (d1178ac)
- 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)
- add SortedMap & tests, minor refactor EquivMap (ae0eae8)
- add SortedSet, update SortedMap (cb4976f)
- add compare() & equiv() impls for SortedMap
- add private impls for EquivMap/Set (a769856)
- rename EquivMap/Set => ArrayMap/Set, export interfaces (8756027)
0.2.0 (2018-04-10)
- initial import @thi.ng/associative (cc70dbc)
- add EquivSet.first() (0dc9f64)