edfcore 0.5.52 → 0.5.54

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.
@@ -109,5 +109,5 @@ export declare const SIGNAL_FIELD_BLOCK_OFFSETS: {
109
109
  readonly reserved: 224;
110
110
  };
111
111
  /** Published package version. Kept in sync with package.json by a test. */
112
- export declare const VERSION = "0.5.52";
112
+ export declare const VERSION = "0.5.54";
113
113
  //# sourceMappingURL=constants.d.ts.map
package/dist/constants.js CHANGED
@@ -79,5 +79,5 @@ export const SIGNAL_FIELD_BLOCK_OFFSETS = {
79
79
  reserved: 224,
80
80
  };
81
81
  /** Published package version. Kept in sync with package.json by a test. */
82
- export const VERSION = '0.5.52';
82
+ export const VERSION = '0.5.54';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,43 @@ alone does not tell you whether you were affected.
6
6
  edfcore is pre-1.0. Patch releases have carried behaviour changes where the old behaviour was a
7
7
  defect; those are called out below.
8
8
 
9
+ ## 0.5.54
10
+
11
+ - **Added** the claim the `index` option on `validateRecording` is only worth having if it holds: a
12
+ sweep that was handed an index says what a sweep that read one says. `api-validate.md` prices the
13
+ option — a supplied complete index is the difference between a scan of every record and no
14
+ traversal at all — and `inspect-validate.test.ts` checks that it does skip the traversal and that
15
+ a probed index is not accepted as a substitute. Nothing checked that the report is the same.
16
+ - It is a real risk rather than a formality. The two paths reach `segmentCount` and `gaps` through
17
+ different code — one from `buildSegmentation` over onsets it just read, the other from the
18
+ `segments` and `gaps` already on the supplied index — and everything the report says about
19
+ structure is derived from those two. A supplied index that produced a different segment count
20
+ would be a faster answer to a different question.
21
+ - Both now run over every shape in the matrix and are compared whole, with `scanSamples` on so the
22
+ sample statistics are in it: `ok`, every diagnostic and every entry of `signalStats`. The matrix
23
+ is asserted to reach both verdicts and to produce real statistics, so the comparison is of
24
+ something.
25
+ - `bytesRead` is the one number that legitimately differs, and it is asserted to be lower — on the
26
+ files where there is anything to skip, which is the reason the option exists.
27
+
28
+ ## 0.5.53
29
+
30
+ - **Added** the CLI's half of determinism. `diagnostics.md` says of the formatter underneath it that
31
+ "the output is deterministic (no locale-sensitive formatting, no ANSI escapes unless you ask), so
32
+ it's safe to snapshot in a test", and 0.5.26 checked that for the library. The CLI is a second
33
+ surface over those formatters, with joins, sorts, caps and column padding of its own, and the
34
+ claim that matters for it is the one a script depends on: run it twice on the same bytes and you
35
+ get the same bytes back.
36
+ - That is what `edfcore signals big.edf | sort | diff -` is built on and what makes `edfcore json`
37
+ usable in a build. It is easy to lose in ways no single-run test would see — a `Map` iterated
38
+ where a `Set` was meant, a sort that is not total, a count formatted from a float — and each
39
+ produces output that is right most of the time.
40
+ - Every command now runs twice over every shape in the matrix: sixty pairs over ten files, with the
41
+ exit code and the full text of both streams compared. The stronger form runs too — a second
42
+ recording opened over a copy of the bytes gives the same output, so it is a function of the file
43
+ rather than stable per process. And the totals are asserted, so sixty pairs of empty strings could
44
+ not pass.
45
+
9
46
  ## 0.5.52
10
47
 
11
48
  - **Added** the sweep for a selection that came from JSON. `io/read.ts` says why this is not a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.5.52",
3
+ "version": "0.5.54",
4
4
  "description": "Modern, typed, zero-dependency reader for EDF, EDF+, BDF and BDF+ biosignal files. Works in browsers and Node with true random access.",
5
5
  "keywords": [
6
6
  "edf",
package/src/constants.ts CHANGED
@@ -93,4 +93,4 @@ export const SIGNAL_FIELD_BLOCK_OFFSETS = {
93
93
  } as const;
94
94
 
95
95
  /** Published package version. Kept in sync with package.json by a test. */
96
- export const VERSION = '0.5.52';
96
+ export const VERSION = '0.5.54';