edfcore 0.4.453 → 0.4.455

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.4.453";
112
+ export declare const VERSION = "0.4.455";
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.4.453';
82
+ export const VERSION = '0.4.455';
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.4.455
10
+
11
+ - **Fixed** a test that refused what it was named after by accident. `timeline.test.ts` listed
12
+ "the probes are out of order" among the arrays `buildTimelineFromProbes` must refuse, and its
13
+ probes were records 0, 3, 1 — whose LAST entry is record 1 rather than record 3 on a four-record
14
+ file. `assertProbeShape` checks the two ends before it checks the order, so that array was
15
+ refused with "received probes for records 0..1, but the start offset comes from record 0 and the
16
+ span ends at record 3", and the ordering loop underneath had never run once in the suite.
17
+ - The case now runs 0, 2, 1, 3: both ends correct, so nothing before the loop has anything to say
18
+ about it, and rising onsets throughout, so the monotonicity check that runs next cannot claim it
19
+ either. Deleting the loop outright now fails one test instead of none.
20
+ - Every case in that table now asserts the sentence its guard produces, not just `RangeError`.
21
+ Three different refusals share the class, so asserting the class alone proves only that SOME
22
+ guard fired — which is exactly how the case above drifted without anyone noticing.
23
+ - Added the case the loop must NOT refuse: four probes in order, one of them intermediate.
24
+ `assertProbeShape` documents intermediate probes as optional rather than unwelcome, and a loop
25
+ that refused every array of three or more would have passed the disorder case just as well.
26
+
27
+ ## 0.4.454
28
+
29
+ - **Added** a test for `validateHeader`'s own `DATE_FIELDS_DISAGREE` check on the ordinary case:
30
+ a `dd.mm.yy` field that resolves to 2051 beside a recording identification `Startdate` that
31
+ spells 1951 out.
32
+ - `checkDates` reports that code from two arms, and only the EDF+ `yy` escape arm had ever been
33
+ run through `validateHeader`. The ordinary arm — the case the code is named for and the one
34
+ every doc page uses as its example — was covered five times over in `resolveStartTime`, which
35
+ is a different function in a different file that happens to emit the same code on the read
36
+ path. Deleting the comparison in `validate.ts` left the suite green.
37
+ - That matters because the two are deliberately independent. `validateHeader` is documented as
38
+ standing on its own so a caller can sweep a header it did not open, and 0.3.81 fixed this exact
39
+ shape of bug in the other direction: the escape arm was missing here, so the parser and the
40
+ conformance sweep disagreed about whether one file had a defect.
41
+ - The assertions are on `specReference`, not on the code. Both functions cite EDF+ additional
42
+ specification 4; only this one cites it as "(local recording identification)" and prints the
43
+ header's date as a resolved day rather than as raw bytes. A test that asserted the code alone
44
+ would have passed on the parser's diagnostic and proved nothing about the function it names.
45
+
9
46
  ## 0.4.453
10
47
 
11
48
  - **Added** tests for the date comparison behind `DATE_IMPLAUSIBLE`, at every level rather than
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.453",
3
+ "version": "0.4.455",
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.4.453';
96
+ export const VERSION = '0.4.455';