@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.
- package/CHANGELOG.md +60 -1
- 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.
|
|
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.
|
|
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.
|
|
36
|
+
"pond-ts": "^0.34.0",
|
|
37
37
|
"react": "^18.0.0 || ^19.0.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|