- Last updated: 2024-10-05T12:12:32Z
- 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.
9.2.0 (2024-08-19)
- add syncTuples() transducer (d3b77bd)
9.1.0 (2024-08-13)
9.0.6 (2024-06-21)
- rename various rest args to be more semantically meaningful (8088a56)
- enforce uniform naming convention of internal functions (56992b2)
- dedupe min/maxCompare() impls, add tests (22fc6e3)
9.0.2 (2024-04-20)
- update type usage (b0e87ab)
9.0.0 (2024-04-08)
- update Reducer, Transducer and other types (95c43f3)
- BREAKING CHANGE: update generics in Reducer, Transducer and other types
- swap generic type args in
Reducer
andIReducible
to be same order as inTransducer
,IXform
, i.e.Reducer<A, B>
maps items from type A to type B, not the other way (as was)! - this new order is more logical, less confusing and also in line with upcoming async transducers pkg
- changes in userland should be minimal (if any), only impacted are custom reducer definitions
- update all pkg internal occurrences
- various other small refactorings, type/arg updates, e.g.
- add generics for
reduced()
/ensureReduced()
/unreduced()
- update
step()
return type (incl. undefined) - add
StructField
generics
- add generics for
- swap generic type args in
8.9.6 (2024-02-22)
- update object destructuring in all pkgs & examples (f36aeb0)
8.9.5 (2024-02-22)
- update all
node:*
imports (c71a526)
8.9.0 (2024-02-06)
- update normRange(), add reverse order (c7e7fef)
- add optional arg to reverse order of normRange()
- update docstrings/examples
8.8.9 (2023-11-09)
- update all tests (packages T-Z) (020ef6c)
8.8.7 (2023-10-30)
- fix flatten1() arg types, update docs (b7ae8eb)
8.8.0 (2023-10-11)
8.7.0 (2023-09-15)
- update rename()/renamer() (221b13e)
- add support for retaining keys
8.6.0 (2023-08-22)
- add length() transducer (47a95b7)
8.5.3 (2023-08-12)
- update .probability() call sites in various pkgs (c8c8141)
8.5.0 (2023-08-04)
- fix #401, update multiplex(), step() (834b076)
- add optional support to override single-result unwrapping behavior
- update docstrings/examples
- add tests
8.4.0 (2023-03-19)
- add flatten1() transducer (2ffd476)
- syntax sugar for a common mapcat() usecase
8.3.0 (2022-03-11)
- add mapA() helper (5cc5795)
8.2.0 (2021-12-14)
- update/fix/extend streamShuffle() (dc26203)
- add StreamShuffleOpts, add IRandom opt
- fix args for internal shuffle() calls
- optimize number of shuffle calls
- optimize final buffer drain
8.1.0 (2021-11-17)
- add rechunk() xform (10d0e9f)
- update readme
- 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.
8.0.8 (2021-11-10)
- update all countdown loops (a5f374b)
8.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)
8.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
- restructure package (4d643f5)
- BREAKING CHANGE: restructure/flatten pkg, remove sub folders
- migrate all /func, /iter, /rfn, /xform files to main /src folder
- update all tests in all pkgs (8b582bc)
- update all to use @thi.ng/testament
- update imports (138571a)
- 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:
7.9.2 (2021-09-03)
- fix #310, update flatten/flattenWith (bfbd726)
- fix
flatten()
/flattenWith()
return types - update generics to allow specifying explicit result type, but
use new
DeepArrayValue<A>
mapped type as default - update
flattenWith()
predicate arg type toany
since current restriction on top-level input type was (potentially) wrong for deeper levels. Also lift restriction and update pred's return type toMaybeIterable<any>
(for same reason).
- fix
7.9.1 (2021-08-19)
- update normFrequenciesAuto() (5b5200b)
- actually use
key
fn arg (if given)
- actually use
7.9.0 (2021-08-19)
- add normalized frequencies() reducers (d09db8d)
- add normCount()
- add normFrequencies()
- add normFrequenciesAuto()
- update readme
7.8.0 (2021-08-04)
- update repeatedly(), iterate() (b7d9ba4)
- add iteration counter arg for repeatedly()
- minor refactor iterate()
- add minMax() reducer (5f8a722)
7.7.0 (2021-04-07)
- add partitionWhen() xform (d2dd4d9)
7.6.10 (2021-04-03)
- minor updates (c582a1a)
7.6.2 (2021-03-03)
- add missing type anno (TS4.2) (7ced9be)
7.6.0 (2021-02-20)
- add TweenOpts.easing, update tween() (f3a50f4)
- use clamp0() (47d5e54)
7.5.2 (2020-12-07)
7.5.0 (2020-11-24)
7.4.0 (2020-09-22)
- add mapcatIndexed() xform (4f3d6e0)
7.3.1 (2020-09-13)
- update imports (e166cda)
7.3.0 (2020-08-28)
- type (dedce3f)
- update/fix normRange2d/3d() (d40c4a7)
7.2.0 (2020-07-28)
- add autoObj() reducer (26ad12a)
7.1.0 (2020-06-14)
- add keyPermutations, tests, update readme (5110d50)
7.0.0 (2020-06-01)
- update readme (47b6cef)
- BREAKING CHANGE:
flatten
string handling now always atomic
- update flatten & flattenWith (35c2aaf)
6.7.0 (2020-06-01)
- add IDeref support slidingWindow() (13f4184) (cherry picked from commit c75175689544f172acde856b4261ca9dc128d1dd)
- add IDeref support slidingWindow() (c751756)
6.6.0 (2020-05-29)
- add rangeNd(), add/update tests (9239d6f)
- update rangeNd() arg types (d5aab14)
6.5.0 (2020-05-14)
- #221, add partitionSync() key add/removal ops (2ab4bf5)
- add PartitionSync type
- attach ops to dynamically manipulate & query input set
- make input removal cleanup optional (enabled by default)
- add/update tests
6.4.0 (2020-03-01)
- add partitionTime() transducer (efafd0b)
- update mapKeys() key fns to accept 2nd arg (749d2cd)
- pass original input value as 2nd arg to each key transform fn
- this allows creating new keys based on other values in the object
6.3.0 (2020-02-25)
- add peek() xform, update readme (26aa228)
- update imports (f081687)
6.2.0 (2020-01-24)
- add pushSort() reducer (444d2ee)
- add sortedKeys() iterator (fa9343c)
- add dup() & palindrome(), update readme (546bf9f)
- add line(), curve() (31bd5b9)
- add opt limit for cycle() (186daff)
- update curve(), line(), iterate() (3581a9d)
- curve(): use new/improved logic from @thi.ng/dsp
- iterate(): add opt step count
- add IXform interface & TxLike type alias, update related functions (49c62b7)
- update all fns expecting Transducer args
- add internal ensureTransducer() helper
- use child reducer completion step in groupByMap/Obj() (ff44fcb)
- update keep() xform to accept nullable (1bc561b)
- update string version of palindrome() (315cbf8)
- avoid char-wise iteration of original input
- update ConvolutionOpts (0748d97)
6.1.0 (2019-11-30)
- add type hints (651e281)
6.0.0 (2019-11-09)
- simplify args for extendSides, padSides, wrapSides (a36651a)
- rename wrap() => wrapSides()
- remove obsolete & deprecated wrapLeft/Right/Both
- BREAKING CHANGE: Rename wrap() => wrapSides(), update signature to be aligned w/ related iterators
- rename old
interpolate
=>tween
(918721d) - BREAKING CHANGE: rename
interpolate
iterator =>tween
- update tween() args (5523582)
- add TweenOpts
- add/update docstrings
- BREAKING CHANGE: replace tween() args w/
TweenOpts
config object
- add new iterators: extendSides/padSides/symmetric() (47001fc)
- add new transducers: interpolate, interpolateHermite/Linear (c3fa9ab)
5.4.5 (2019-09-21)
- add back pressure support for partitionSync() (6e14952)
- fix mean() for reduce w/ init value (d993bf2)
5.4.4 (2019-08-21)
- extract common logic for add/mul/sub reducers (7caa71a)
- update kernelLookup destructuring (acaa38e)
- update/split reduce() (820e7c7)
- extract internal helpers, update rfns & xforms (7772f9b)
Impacted reducers:
- add/mul/sub
- groupByMap/Obj Xforms:
- movingMedian
- partitionSort / streamSort
- takeLast
5.4.0 (2019-07-07)
- enable TS strict compiler flags (refactor) (2f8ec89)
- fix cat/mapcat arg types (0d9b7cb)
- address TS strictNullChecks flag (c681aae)
5.3.3 (2019-04-03)
5.3.0 (2019-03-21)
- add toggle() xform (b5c744e)
- update mean() completion step to avoid div by zero (f644ecd)
5.2.0 (2019-03-10)
- add / update convolution fns (31e594b)
- add buildKernel1d, convolve1d
- re-use type aliases from @thi.ng/api (0d2fdff)
5.1.2 (2019-03-03)
- update dedupe() w/ predicate arg (c414423)
- if pred is given, do not call pred for 1st value (always passes)
5.1.0 (2019-02-26)
- add converge() xform, add iter arg to iterate() (8393a95)
- update converge() & update readme (9aca912)
5.0.0 (2019-02-15)
- remove obsolete fns, update to use @thi.ng/arrays (83cb816)
- BREAKING CHANGE: migrate various support fns to @thi.ng/arrays
- remove/migrate functions:
- binarySearch()
- ensureArray() / ensureIterable()
- fuzzyMatch()
- peek()
- shuffleN()
- swizzler()
- add support for IRandom in:
- randomID()
- choices()
- weightedRandom()
- sample()
- update deps / readme
- remove/migrate functions:
- remove obsolete randomID() & weightedRandom() (4b0eec6)
- BREAKING CHANGE: migrate randomID() & weightedRandom() to @thi.ng/random
- update choices() iterator
- restructure, migrate / remove various functions (05bf213)
- BREAKING CHANGE: migrate / remove various functions to other packages
- constantly(), delay(), identity() => @thi.ng/compose
- randomID(), weightedRandom() => @thi.ng/random
- remove re-exports:
- even(), odd() (from @thi.ng/checks)
- juxt() (from @thi.ng/compose)
- remove obsolete hex() fn (use @thi.ng/strings fns instead)
- update @thi.ng/arrays call sites (f95ab38)
4.0.0 (2019-02-05)
- migrate binary related ops to new package (a7c1ef7)
- update readme
- BREAKING CHANGE: migrate all binary data related ops to new package @thi.ng/transducers-binary
Removed:
- bits
- base64Encode/Decode
- hexDump
- partitionBits
- utf8Encode/Decode
- ensure all vals in hexDump iterator version (ae83bb2)
- deprecate & rename tuples() => zip() (d1151ce)
- update refs / re-exports
3.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
- update juxt re-export (a894a24)
- use arrow fns (e9f0542)
2.3.2 (2019-01-02)
- add reduced() handling for cat() (cd17586)
2.3.1 (2018-12-29)
- interpolate() interval selection, add minPos/maxPos (a90a712)
2.3.0 (2018-12-28)
- add interpolate() iterator, update readme (846ab5c)
2.2.7 (2018-12-17)
- add return type for range() (0470505)
2.2.3 (2018-12-01)
- implement range() as class w/ IReducible impl (0e77d2c)
2.2.0 (2018-10-17)
- update wrap*() fns to accept iterables (515e5ba)
- minor TS3.1 fixes (1ef2361)
- update Infinity consts in various packages (296e1e0)
- add ensureArrayLike(), update permutations() (f257330)
2.1.6 (2018-09-26)
- fix matchLast(), fix & update return match*() types (823d828)
- use iterator() instead of iterator1() for matchLast()
- fix return type decls for both matchFirst() / matchLast()
- update doc strings
2.1.2 (2018-09-22)
- add missing type annotation (022101f)
2.1.2-alpha.1 (2018-09-17)
- add randomID() (b488d2b)
2.1.0 (2018-09-08)
- add window() xform (2f0f3d4)
- update partitionSync() xform & PartitionSyncOpts (d8fdc01)
- add
mergeOnly
option to allow partially populated result tuples
- add
- rename window() => slidingWindow(), update readme (1f22867)
2.0.3 (2018-09-03)
- update normRange() (4a16bd5)
- add opt flag to exclude last value
2.0.0 (2018-08-24)
- rename inspect() => trace() (e713704)
- BREAKING CHANGE: rename inspect() => trace()
- update all xforms to also work as iterator (bae8a1d)
- if input iterable is provided, return iterator version
- add opt initial result arg for scan()
- utf8Decode() w/ input returns string
- update tests
- BREAKING CHANGE: replace some xform args with options objects, impacted are:
- convolve2d()
- filterFuzzy()
- hexDump()
- movingMedian()
- partitionSort()
- partitionSync()
- streamSort()
- wordWrap()
- add GroupByOpts interface, update groupBy* reducers (2c3a114)
- add support for direct reduction if optional iterable is provided
- BREAKING CHANGE: groupByMap() & groupByObj() args now given as options object
- add fill() & fillN() reducers (0bd860e)
- update all reducers to accept opt iterables (89b4ad5)
- add $$reduce helper
- fix str() to use string concatenation (instead of Array.join())
- add opt init vals for add() & mul()
- add sub() & div() reducers
- update base64Encode() to return string if input given (599f2b6)
- hex type decl (723da5b)
- iterator1() final reduced value handling (d861bdd)
- copy&paste error (push) (832e57f)
- arg handling in rename() (7a5be21)
- add iterator1(), update various xforms (ab662d8)
- iterator1() is speed optimized for 0-or-1 result xforms w/o completion step
- update $iter to accept iterator impl
- add IReducible, update reduce() (9d83255)
- add IReducible interface for custom/optimized iteration and source value provision for reduce()
- add array-like check to reduce() and switch to version without
forcing array iterator (
for..of..
)
- add ReductionFn type alias, update Reducer (45e4993)
- add shared SortOpts, update xforms (8a111ef)
- replace opts for movingMedian(), partitionSort(), streamSort()
- move convolution types to src/xform/convole.ts
- move StructField to src/xform/struct.ts
- replace local types w/ external defs (3a8bd08)
- re-use Fn & SEMAPHORE (@thi.ng/api)
- replace comp() and juxt() (@thi.ng/compose)
1.16.0 (2018-08-08)
- add partitionBits() xform & tests (a5e2c28)
- deprecate hex(), update hexDump() xform & deps (b1ea9a5)
1.15.0 (2018-08-02)
- add peek() helper fn (e50fd10)
1.14.0 (2018-07-19)
- add juxtR() for multiplexed reductions from same src (9b07d12)
- add tests & docs
- allow key arrays for rename(), simplify call sites (092154c)
- update multiplexObj() & struct() xforms
- add asIterable() helper (ccc37c6)
- update movingAverage() xform, add docs (9874ace)
1.13.0 (2018-07-13)
- add wordWrap() xform (81223dc)
1.12.2 (2018-07-09)
1.12.1 (2018-07-09)
- add reducer() helper, update existing reducers (095e6ef)
1.12.0 (2018-07-03)
- add ensureArray(), refactor reverse() (677c7cc)
1.11.0 (2018-06-19)
- add matchFirst()/matchLast() xforms, update readme (bc261e5)
1.10.1 (2018-05-14)
- replace wrapBoth/Left/Right w/ wrap() (e238541)
- deprecate existing wrap*() iters
- update docs & readme
1.10.0 (2018-05-14)
- add wrap*() iterators (306625d)
- add wrapBoth()
- add wrapLeft()
- add wrapRight()
- add filterFuzzy() xform (2bebba2)
- add fuzzyMatch() predicate
1.9.0 (2018-05-10)
- add normRange() iterator (55f29b8)
1.8.6 (2018-05-10)
- update deps & imports in all packages due to @thi.ng/api split (bc45636)
1.8.1 (2018-04-18)
- add generics for compR(), fix types in mapNth() (3b7c9d9)
1.8.0 (2018-04-11)
- add run() for executing side effects only, update readme (52c7508)
1.7.1 (2018-03-21)
- update error handling (ca099e5)
1.7.0 (2018-03-19)
- update labeled(), mapIndexed(), partition() (3bc8d54)
- labeled() - add support for label fn instead of just static label
- mapIndexed() - add optional start index arg
- partition() - minor update in completing reducer
1.6.0 (2018-03-03)
- add permutations()/permutationsN() generators (91938ed)
- update permutations()/permutationsN(), add tests (488462e)
- update swizzler() arg types (2f5abce)
- extract compR() into its own file, update refs, update readme (8c180bc)
1.5.1 (2018-03-02)
- flattenWith() (3d8aa32)
1.5.0 (2018-02-26)
- add keys()/vals() iterators, refactor pairs() (9824844)
1.4.0 (2018-02-23)
- add deepTransform & mapDeep xform (f0fdfa1)
- add TransformSubSpec, fix test, minor update docs (2a11ff6)
1.3.0 (2018-02-19)
- add lookup1d/2d/3d helpers, update re-exports (193058d)
1.2.0 (2018-02-18)
- add range2d / range3d generators (722042b)
- add movingMedian() xform (d7b1d0d)
- add convolve2d xform & types (ab8a855)
- update imports
step()
(48f8bb8)
- add/update range2d/range3d arity handling (63a4953)
1.1.0 (2018-02-08)
- add page() xform, update readme (855d803)
- re-use even/odd from @thi.ng/checks (445c857)
1.0.6 (2018-02-01)
- update comp() for typescript 2.7.* (febe39f)
1.0.5 (2018-01-31)
- use Predicate2 (4753afb)
1.0.2 (2018-01-29)
- avoid result object cloning in struct() xform (d774e32)
- disable copying in mapKeys() step
1.0.0 (2018-01-28)
- update step() to support multiple results (1f32fc0)
- respect reduced value termination
- internal use of push() vs. last() to support multiple results per transduction step
- add docs
- BREAKING CHANGE: now possibly returns array instead of single value if wrapped transducer produced multiple results
- rename join() => str() rfn (e268e35)
- BREAKING CHANGE: rename join() => str() reduer in prep for actual set join() op
- update throttle(), refactor take/dropNth (e1a282c)
- throttle() requires stateful predicate now
- add throttleTime() as replacement for prev throttle() impl
- refactor takeNth()/dropNth() to use throttle()
- BREAKING CHANGE: throttle() requires stateful predicate now
- add utf8Encode()/utf8Decode() xforms (e50fa26)
- add multiplex() xform & docs (beb2cee)
- update frequencies() & groupByMap() (4b8d037)
- add opt key fn for frequencies(), delegate to groupByMap()
- use identity as default key fn
- update re-exports, minor update reductions() (e555ff5)
- add every(), some() rfns (63344e4)
- add multiplexObj() (931b67f)
- add labeled() xform (0b3c786)
- update re-exports, extract throttleTime() into own file (45d6bc6)
- add noop() xform, update readme (7b21aa6)
- add "complete" step handling in scan() (8e5204d)
- scan() complete handling (44db970)
- pass final inner result to outer complete only if different
- udate cat() to accept iterables, not just arrays (58f1477)
0.11.2 (2018-01-25)
- project links in readme files (e290d75)
- base64 imports (75bb161)
- include 1st val in benchmark() (b3ce275)
0.11.1 (2018-01-24)
- initial re-import as monorepo, update readme files, cleanup imports (04ff6e9)