@pond-ts/react 0.27.0 → 0.28.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 +26 -3
  2. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -7,7 +7,8 @@ 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.27.0...HEAD
10
+ [Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.28.0...HEAD
11
+ [0.28.0]: https://github.com/pjm17971/pond-ts/compare/v0.27.0...v0.28.0
11
12
  [0.27.0]: https://github.com/pjm17971/pond-ts/compare/v0.26.0...v0.27.0
12
13
  [0.26.0]: https://github.com/pjm17971/pond-ts/compare/v0.25.0...v0.26.0
13
14
  [0.25.0]: https://github.com/pjm17971/pond-ts/compare/v0.24.0...v0.25.0
@@ -21,7 +22,29 @@ type-level changes; patch bumps are strictly additive.
21
22
 
22
23
  ## [Unreleased]
23
24
 
24
- ## [0.27.0] — 2026-06-16
25
+ ## [0.28.0] — 2026-06-17
26
+
27
+ ### Added
28
+
29
+ - **`TimeSeries.rollingByColumn(col, { radius }, mapping)` — windowed value-axis
30
+ aggregation.** The sliding-window sibling of `byColumn`: slides a centered
31
+ `±radius` window along a **non-decreasing** numeric column and reduces it at
32
+ every row, returning one record per row (positionally aligned with the
33
+ series). Where `byColumn` collapses rows into disjoint value-bins (the
34
+ value-axis analogue of `aggregate`), `rollingByColumn` is the value-axis
35
+ analogue of `rolling`. Built for windowed-percentile bands over a derived axis
36
+ (e.g. a spread band over cumulative distance). A missing/non-finite axis row is
37
+ excluded from every window and emits each reducer's empty value. O(n) two-pointer
38
+ sweep. See `docs/notes/rolling-by-column.md`.
39
+ - **`TimeSeries.withColumn(name, values)` — attach a computed numeric column.**
40
+ Appends a `Float64Array` / `(number | undefined)[]` as a new `number` column
41
+ (the schema type widens to include it), so a derived array — cumulative
42
+ distance, speed, gradient — can re-enter the pond pipeline as a real column
43
+ that `aggregate` / `byColumn` / `rollingByColumn` / `column(name)` can
44
+ reference. Existing key + value columns are shared by reference (zero-copy);
45
+ only the new column is added. `values` must match `series.length`; defined
46
+ cells are validated against the numeric intake contract (**non-finite is
47
+ rejected** — pass `undefined` for a missing cell, not `NaN`).
25
48
 
26
49
  ### Added
27
50
 
@@ -52,7 +75,7 @@ type-level changes; patch bumps are strictly additive.
52
75
  - **Behavior note — `array` columns:** an identity-comparing reducer (`keep`,
53
76
  or a custom reducer using `===` on the cell) on an `array`-kind source
54
77
  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
78
+ reference passed at construction. Two rows given the _same_ array object
56
79
  therefore read as distinct. Scalar columns (number / string / boolean) are
57
80
  unaffected. A non-finite or wrong-kind reducer result is still rejected with
58
81
  a `ValidationError`, exactly as the constructor's intake did.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pond-ts/react",
3
- "version": "0.27.0",
3
+ "version": "0.28.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.27.0",
36
+ "pond-ts": "^0.28.0",
37
37
  "react": "^18.0.0 || ^19.0.0"
38
38
  },
39
39
  "devDependencies": {