@pond-ts/react 0.25.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -7,7 +7,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
7
7
  file covers both packages. Pre-1.0: minor bumps may include new features and
8
8
  type-level changes; patch bumps are strictly additive.
9
9
 
10
- [Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.25.0...HEAD
10
+ [Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.27.0...HEAD
11
+ [0.27.0]: https://github.com/pjm17971/pond-ts/compare/v0.26.0...v0.27.0
12
+ [0.26.0]: https://github.com/pjm17971/pond-ts/compare/v0.25.0...v0.26.0
11
13
  [0.25.0]: https://github.com/pjm17971/pond-ts/compare/v0.24.0...v0.25.0
12
14
  [0.24.0]: https://github.com/pjm17971/pond-ts/compare/v0.23.0...v0.24.0
13
15
  [0.23.0]: https://github.com/pjm17971/pond-ts/compare/v0.22.0...v0.23.0
@@ -19,6 +21,42 @@ type-level changes; patch bumps are strictly additive.
19
21
 
20
22
  ## [Unreleased]
21
23
 
24
+ ## [0.27.0] — 2026-06-16
25
+
26
+ ### Added
27
+
28
+ - **`TimeSeries.byColumn(col, { width, origin? } | { edges }, mapping)` —
29
+ value-axis aggregation.** Where `aggregate` buckets the temporal key,
30
+ `byColumn` buckets rows by the **value** of a numeric column and reduces each
31
+ bin, returning an ordered array of `{ start, end, ...aggregates }` records
32
+ (one per bin) — not a `TimeSeries`, since value-bins (distance / power ranges)
33
+ aren't time-indexed. `{ width }` gives even bins emitted contiguously from the
34
+ lowest to highest occupied bin (monotonic source → splits / profile;
35
+ non-monotonic → histogram); `{ edges }` gives explicit ascending bins (e.g.
36
+ power zones). Reuses the reducer mapping + non-finite policy. Rows whose bin
37
+ value is missing / non-finite (or, for `edges`, out of range) are dropped;
38
+ empty bins emit the reducer's empty value; a non-finite / wrong-kind reducer
39
+ result throws `ValidationError`. See `docs/notes/bycolumn-value-axis.md`.
40
+
41
+ ### Changed
42
+
43
+ - **`rolling(...)` now builds its output columns directly instead of
44
+ materializing events.** The rolling family was the last batch operator still
45
+ assembling a row per event and re-validating/re-packing it through the
46
+ constructor; it now reads the key axis and source values straight off the
47
+ columnar store and writes the result columns via trusted construction. The
48
+ result is unchanged for the common (scalar) cases. Measured: `rolling` with
49
+ `avg`/`sum` ~2.2–2.7× faster; rolling `stdev` on 100k events ~3.3–7.3×
50
+ (a 1-event window 45.7 ms → 6.3 ms); partitioned rolling ~1.8×.
51
+ `baseline` / `outliers` (which delegate to `rolling`) inherit the speedup.
52
+ - **Behavior note — `array` columns:** an identity-comparing reducer (`keep`,
53
+ or a custom reducer using `===` on the cell) on an `array`-kind source
54
+ column now compares the value stored in the column, not the original object
55
+ reference passed at construction. Two rows given the *same* array object
56
+ therefore read as distinct. Scalar columns (number / string / boolean) are
57
+ unaffected. A non-finite or wrong-kind reducer result is still rejected with
58
+ a `ValidationError`, exactly as the constructor's intake did.
59
+
22
60
  ## [0.25.0] — 2026-06-15
23
61
 
24
62
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pond-ts/react",
3
- "version": "0.25.0",
3
+ "version": "0.27.0",
4
4
  "description": "React hooks for pond-ts live time series",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,7 +33,7 @@
33
33
  "test:runtime": "vitest run"
34
34
  },
35
35
  "peerDependencies": {
36
- "pond-ts": "^0.25.0",
36
+ "pond-ts": "^0.27.0",
37
37
  "react": "^18.0.0 || ^19.0.0"
38
38
  },
39
39
  "devDependencies": {