edfcore 0.5.32 → 0.5.34

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.32";
112
+ export declare const VERSION = "0.5.34";
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.32';
82
+ export const VERSION = '0.5.34';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,53 @@ 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.34
10
+
11
+ - **Added** the `Next:` clause, followed. Every message edfcore throws ends with one, and
12
+ `next-clause.test.ts` proves that — it enumerates the throws out of `src/` and fails on a message
13
+ without one. What it cannot check is whether the sentence is any good. A clause naming a function
14
+ that was renamed, or advising something the API no longer allows, still passes, and advice that
15
+ does not work is worse than none: the reader spends their time on it before doubting it.
16
+ - The package's own docblocks record two of those. `options.ts`: a `NaN` budget was refused with
17
+ "read fewer records per call", "advice no record count can satisfy", and elsewhere with "clamp the
18
+ range against header.recordCount", "a range neither function takes as a parameter" (0.3.21).
19
+ `validate.ts`: offering "drop scanSamples" on an EDF+ file "sent the reader round a loop" (0.3.77).
20
+ Both were caught by reading, not by a test.
21
+ - Eight refusals whose advice is a concrete instruction now have it followed: build the index and
22
+ pass it, for both `readWindow` and `sampleAt`; merge each contiguous run separately; read fewer
23
+ records **or** raise the budget, both levers exercised against the numbers the refusal reported;
24
+ call `readAnnotations` and pass `header.dataSignalIndices` instead; `findSignals` or an index for a
25
+ duplicate label; `decodeDigital` on a signal with no scale; one of the annotation signals or none
26
+ of them; and omitting `--limit` after a bad one.
27
+ - Each case reads the clause off the message it actually threw before following it, so advice that
28
+ is reworded has to stay true rather than stay identical.
29
+
30
+ ## 0.5.33
31
+
32
+ - **Added** an overlap driven through every surface that could call it a gap. This is the defect the
33
+ changelog has fixed four times. An overlap travels in `index.gaps` with a NEGATIVE duration —
34
+ 0.2.69 decided that and `api-reading.md` documents it — so every consumer of that array has to
35
+ branch on the sign, and each one that did not printed "a gap of -0.2 s": a gap of negative
36
+ duration, with an explanation that inverts what an overlap does. Across a gap two samples are
37
+ seconds apart; across an overlap they cover the same time, so concatenating duplicates it rather
38
+ than skipping it.
39
+ - 0.3.3 partitioned `edfcore gaps`. 0.3.33 applied the rule to "the two places that still said it
40
+ was". 0.3.41 found a third in `src/chunks.ts`, which mentioned an overlap nowhere. 0.3.59 found a
41
+ fourth forty lines below the third, on the branch a probed index actually reaches. Every fix was
42
+ local, and no test treated it as one rule over one file.
43
+ - One overlapping recording now goes through all of them — both `mergeChunks` branches, the
44
+ validation report on an EDF+D and on an EDF+C that claims to be continuous, the CLI's summary line
45
+ and its tab-separated row, and the record probes at open — and each is asserted to use the word
46
+ `overlap` and to present no negative magnitude as a duration. The second is what would have failed
47
+ all four times: `gap of -0.2 s` is what the defect looked like on screen, at every one of them.
48
+ - A blanket ban on the word "gap" would be wrong, and the test says so: the diagnostics correctly use
49
+ it in the rule they cite — "a discontinuous file may leave gaps between records but never overlaps
50
+ them" — which is the sentence that makes them understandable. The check is about how the observed
51
+ boundary is described, not about a vocabulary.
52
+ - The three modules that partition a gap's own duration by its sign are read out of `src/`, so a
53
+ fourth consumer fails here until it is driven. That is the part that stops this being a fifth
54
+ local fix.
55
+
9
56
  ## 0.5.32
10
57
 
11
58
  - **Added** a lattice check over the ten microvolt values `quick-start.md` prints. That page prints
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.5.32",
3
+ "version": "0.5.34",
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.32';
96
+ export const VERSION = '0.5.34';