@pond-ts/fit 0.71.0 → 0.72.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.
- package/CHANGELOG.md +33 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -8,7 +8,8 @@ The `@pond-ts` packages — `pond-ts`, `@pond-ts/react`, `@pond-ts/charts`,
|
|
|
8
8
|
under a single `v*` tag, so this file covers them all. Pre-1.0: minor bumps may
|
|
9
9
|
include new features and type-level changes; patch bumps are strictly additive.
|
|
10
10
|
|
|
11
|
-
[Unreleased]: https://github.com/pond-ts/pond/compare/v0.
|
|
11
|
+
[Unreleased]: https://github.com/pond-ts/pond/compare/v0.72.0...HEAD
|
|
12
|
+
[0.72.0]: https://github.com/pond-ts/pond/compare/v0.71.0...v0.72.0
|
|
12
13
|
[0.71.0]: https://github.com/pond-ts/pond/compare/v0.70.0...v0.71.0
|
|
13
14
|
[0.70.0]: https://github.com/pond-ts/pond/compare/v0.69.0...v0.70.0
|
|
14
15
|
[0.69.0]: https://github.com/pond-ts/pond/compare/v0.68.0...v0.69.0
|
|
@@ -74,6 +75,37 @@ include new features and type-level changes; patch bumps are strictly additive.
|
|
|
74
75
|
|
|
75
76
|
## [Unreleased]
|
|
76
77
|
|
|
78
|
+
## [0.72.0] — 2026-10-08
|
|
79
|
+
|
|
80
|
+
### Changed
|
|
81
|
+
|
|
82
|
+
- `pond-ts`: **`join` and `joinMany` work on columns now, not events** — 20
|
|
83
|
+
to 190× faster in the cases below, with the same output. `join` used to
|
|
84
|
+
build an event for every row on both sides, merge them row by row and
|
|
85
|
+
rebuild the columns. Now it walks the two key columns once, then either
|
|
86
|
+
adopts each column as is or gathers it in one pass. A side's value columns
|
|
87
|
+
are adopted as is whenever all its rows land in the output once and in order:
|
|
88
|
+
always the left side of a `left` join, the right side of a `right` join, and
|
|
89
|
+
both sides when the keys match one for one (`joinMany` over a shared grid).
|
|
90
|
+
One year of 1-minute bars, ~97.5k rows a side, `type: 'left'` unless noted
|
|
91
|
+
(`packages/core/scripts/perf-join.mjs`):
|
|
92
|
+
|
|
93
|
+
| Value columns per side | Before | After |
|
|
94
|
+
| ------------------------ | -------- | -------- |
|
|
95
|
+
| 59 and 59 | 1,868 ms | 24 ms |
|
|
96
|
+
| 5 and 5 | 168 ms | 4.2 ms |
|
|
97
|
+
| 59 and 2 | 766 ms | 4.1 ms |
|
|
98
|
+
| `joinMany`, 4 × 5, outer | 457 ms | 15–20 ms |
|
|
99
|
+
|
|
100
|
+
A left join now costs about as much as the **other** side is wide. To bring
|
|
101
|
+
across only the columns you read, narrow that side first; `select` and
|
|
102
|
+
`rename` don't copy:
|
|
103
|
+
`bars.join(spy.select('close').rename({ close: 'spy' }), { type: 'left' })`.
|
|
104
|
+
|
|
105
|
+
One visible difference: on a row with no match, `event.data()` now lists the
|
|
106
|
+
other side's fields as `undefined`, as every other operator's events do. It
|
|
107
|
+
used to leave them out. `get()` returns `undefined` either way.
|
|
108
|
+
|
|
77
109
|
## [0.71.0] — 2026-09-24
|
|
78
110
|
|
|
79
111
|
### Added
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pond-ts/fit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.72.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Fitness & activity domain library on pond-ts: typed quantities, canonical activity series, and analytics (geo distance/elevation, power NP/IF/TSS, zones, splits)",
|
|
6
6
|
"keywords": [
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"verify": "npm run format:check && npm run build && npm test"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"pond-ts": "^0.
|
|
62
|
+
"pond-ts": "^0.72.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"typescript": "^5.6.3",
|