@svta/cml-throughput changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
1.2.0 - 2026-10-26
Added
EwmaEstimatorOptions.minTransferDuration: the shortest transfer, in milliseconds, that counts as a sample. A body that arrives within a few milliseconds of its headers came from a cache. shaka-player uses 5. Default 0 (#587)
Changed
- Every estimator measures a sample over its transfer, from
responseStartto the end of the response, when the sample hasresponseStart.EwmaEstimatoralso weights the sample by that transfer. Before, the rate and the weight included the wait for the first byte, so a 112 kB live segment on a connection with an 800 ms wait measured about 1 Mbps and carried 0.85 s of weight (#587) - Every estimator ignores a sample whose body arrived with its first byte, a transfer of 0 ms.
- The README now has a When to use section. The section names the tasks that the package covers and the entry point of each task.
1.1.0 - 2026-10-18
Changed
EwmaEstimatorno longer addsdefaultEstimateto both averages as a sample with a weight of 1 second. The first valid estimate is the measured rate. Before, the estimate stayed neardefaultEstimatefor about 1 second of download time.- README: a section on the samples the estimators ignore, with the browser rules for the body size of a cross-origin response.
- Peer dependency ranges are now caret ranges, for example
^1.6.2instead of1.6.2. A later patch or minor release of a peer no longer requires a new release of this package.
Fixed
- Every estimator now ignores a sample with an
encodedBodySizeof 0 or less,NaN, orInfinity. Before, a zero-byte sample counted as 0 bits per second and moved the estimate toward 0. ArithmeticMeanEstimator,HarmonicMeanEstimator, andZlemaEstimatornow ignore a sample with adurationof 0 or less,NaN, orInfinity. Before, a zero duration made the estimateInfinityorNaN.EwmaEstimatoralready ignored that sample.
1.0.10 - 2026-10-12
Changed
- README: the usage example imports from
@svta/cml-throughputinstead of an unexported subpath, and prints its result instead of calling an undefinedassert. - The TSDoc of
EwmaEstimatorOptionsdescribes each option, the default value, and the shaka-player value.
Fixed
- The
getEstimateTSDoc states the unit as bits per second. Before, the comment said bytes per second. EwmaEstimatornow returns a positive estimate. Before, the estimator used the half-life as the smoothing factor and could return a negative estimate. All estimates change after this fix.EwmaEstimatornow returnsdefaultEstimateuntil the first sample.Ewma.samplenow weights the new value by1 - alpha ^ weightand the previous estimate byalpha ^ weight. Before, the new value received the weightalpha ^ weight. The constructor still takes the smoothing factoralpha, and the estimate of a directEwmainstance changes.Ewma.getEstimatenow returns 0 for an emptyEwma. Before, the method returnedNaN. With analphaof 0, the method now returns the last value.Ewma.samplenow ignores a sample that would make the estimateNaN. The estimate and the total duration do not change for that sample.EwmaEstimator.samplenow ignores a sample with a duration of 0 or less. Before, a zero duration made every later estimate infinite orNaN, and a negative duration gave a negative estimate.
1.0.9 - 2026-09-15
Changed
- Update
@svta/cml-utilsto 1.6.1
1.0.8 - 2026-07-28
Changed
- Update
@svta/cml-utilsto 1.6.0
1.0.7 - 2026-07-21
Changed
- Update
@svta/cml-utilsto 1.5.1
1.0.6 - 2026-05-13
Changed
- Update
@svta/cml-utilsto 1.5.0
1.0.5 - 2026-02-11
Changed
- Update
@svta/cml-utilsto 1.4.0
1.0.4 - 2026-02-04
Changed
- Update
@svta/cml-utilsto 1.3.0
1.0.3 - 2026-02-03
Changed
- Update
@svta/cml-utilsto 1.2.0
1.0.2 - 2025-12-26
Changed
- Update
@svta/cml-utilsto 1.1.0 (#279)
1.0.1 - 2025-12-22
Fixed
- Use fixed version numbers for all CML peer dependencies (#277)