@pond-ts/react 0.33.0 → 0.34.1

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 +60 -1
  2. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -8,7 +8,9 @@ The `@pond-ts` packages — `pond-ts`, `@pond-ts/react`, `@pond-ts/charts`, and
8
8
  them all. Pre-1.0: minor bumps may include new features and type-level changes;
9
9
  patch bumps are strictly additive.
10
10
 
11
- [Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.33.0...HEAD
11
+ [Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.34.1...HEAD
12
+ [0.34.1]: https://github.com/pjm17971/pond-ts/compare/v0.34.0...v0.34.1
13
+ [0.34.0]: https://github.com/pjm17971/pond-ts/compare/v0.33.0...v0.34.0
12
14
  [0.33.0]: https://github.com/pjm17971/pond-ts/compare/v0.32.0...v0.33.0
13
15
  [0.32.0]: https://github.com/pjm17971/pond-ts/compare/v0.31.2...v0.32.0
14
16
  [0.31.2]: https://github.com/pjm17971/pond-ts/compare/v0.31.1...v0.31.2
@@ -28,6 +30,63 @@ patch bumps are strictly additive.
28
30
  [0.19.0]: https://github.com/pjm17971/pond-ts/compare/v0.18.0...v0.19.0
29
31
  [0.18.0]: https://github.com/pjm17971/pond-ts/compare/v0.17.1...v0.18.0
30
32
 
33
+ ## [0.34.1] — 2026-07-01
34
+
35
+ A `pond-ts` core patch: fixes a performance regression introduced in 0.34.0.
36
+ `@pond-ts/react`, `@pond-ts/charts`, and `@pond-ts/fit` carry no code
37
+ changes — republished in lock-step; their `^0.34.0` peer ranges already
38
+ admit this patch.
39
+
40
+ ### Fixed
41
+
42
+ - **`TimeSeries.fromColumns` — `number[]` column conversion was ~7-18x
43
+ slower than intended.** The `null`/`NaN`-gap parity fix in 0.34.0
44
+ converted `number[]` columns via `Float64Array.from(raw, mapFn)`.
45
+ Supplying a map function forces V8's generic iterable-protocol path even
46
+ for a plain array, dramatically slower than a manual loop into a
47
+ preallocated buffer at 100k-element scale. Found while pointing the
48
+ `pond-columnar-ingest` wire-format spike at the real published package
49
+ instead of a local build. Fixed with a manual `for` loop in both the
50
+ key-column and value-column conversion paths — no behavior change, same
51
+ gap semantics, all 12 `fromColumns` tests unchanged and green. Added
52
+ `scripts/perf-from-columns.mjs` as the durable regression benchmark.
53
+ Measured: 100k × 7 cols, `number[]` columns, dense — 21.5ms → 2.9ms.
54
+ (#311)
55
+
56
+ ## [0.34.0] — 2026-07-01
57
+
58
+ A `pond-ts` core release: the columnar/typed-array ingress driven by the
59
+ Tidal wire-format spike. `@pond-ts/react`, `@pond-ts/charts`, and
60
+ `@pond-ts/fit` carry no code changes — republished in lock-step (their
61
+ `pond-ts` / `@pond-ts/react` peer ranges widen to `^0.34.0`).
62
+
63
+ ### Added
64
+
65
+ - **`TimeSeries.fromColumns`** — the columnar (struct-of-arrays) ingress,
66
+ the counterpart to `fromJSON`'s row-tuple shape. Accepts either a plain
67
+ `number[]` or a `Float64Array` per column — one polymorphic door, so a
68
+ wire format only changes the *decoder*, not the ingest. `Float64Array`
69
+ columns are adopted directly (zero-copy); `number[]` columns are copied.
70
+ A `null`/`undefined` cell or a non-finite value (`NaN`/`Infinity`) is a
71
+ gap, identically across both input shapes. Enforces the same
72
+ non-decreasing key-order invariant as `fromJSON`. v1 scope: a `time`-kind
73
+ key and `number` value columns. (#310)
74
+
75
+ Measured against a wire-format spike (`tidal-app/pond-columnar-ingest`):
76
+ `fromColumns` collapses the ingest step that every non-rows path
77
+ previously paid (transpose → `fromJSON`) — 100k-point protobuf ingest
78
+ 27.7ms → 2.8ms; JSON-columnar 27.0ms → 5.2ms. In a browser, decoding
79
+ off-main in a Web Worker and transferring the resulting `Float64Array`s
80
+ back keeps `fromColumns`'s adopt path on the main thread to ~9ms,
81
+ dropping a 500k-point ingest's worst animation-frame stall from ~50ms to
82
+ ~9ms.
83
+
84
+ - **Docs** — a "Columnar ingest" section on the
85
+ [Creating series](https://pjm17971.github.io/pond-ts/docs/start-here/creating#columnar-ingest)
86
+ page covering both input shapes, the adopt-vs-copy/aliasing distinction,
87
+ missing-value and ordering semantics, and why this matters for
88
+ interactive charts; a pointer from Getting Started.
89
+
31
90
  ## [0.33.0] — 2026-06-30
32
91
 
33
92
  A `@pond-ts/charts` release: a label opt-out for annotations plus interaction
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pond-ts/react",
3
- "version": "0.33.0",
3
+ "version": "0.34.1",
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.33.0",
36
+ "pond-ts": "^0.34.0",
37
37
  "react": "^18.0.0 || ^19.0.0"
38
38
  },
39
39
  "devDependencies": {