edfcore 0.4.406 → 0.4.408

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.406";
112
+ export declare const VERSION = "0.4.408";
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.406';
82
+ export const VERSION = '0.4.408';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,39 @@ 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.408
10
+
11
+ - **Added** tests for the refusals in the sample helpers. `sampleAt`, `sampleStartTicksOf` and
12
+ `gridSampleIndexAt` all map between a time and a sample index, all three sit behind a guard
13
+ rejecting the signals and files where no such mapping exists, and none of those guards had ever
14
+ been executed.
15
+ - None of the inputs is exotic. An annotations channel is in `header.signals`, so
16
+ `signals.map((s, i) => sampleAt(recording, i, t))` reaches it on the first EDF+ file. A signal
17
+ declaring zero samples per record opens with a warning, beside live channels. A file whose
18
+ records do not advance in time opens with a warning too, and `api-errors.md` names a scoring file
19
+ as the reason it is legal.
20
+ - The three messages differ because the ways out differ — an annotations channel to
21
+ `onsetTicksFromFirstRecord`, a zero-sample signal to the diagnostic explaining it, a zero-duration
22
+ file to `readRecords` — so the pairing is checked rather than the error type. `sample-grid.ts` and
23
+ `sample-locate.ts` carry the same three refusals and are checked side by side, because 0.3.78 was
24
+ the two disagreeing about which onset field to recommend.
25
+
26
+ ## 0.4.407
27
+
28
+ - **Added** tests for a window over a recording whose records do not advance in time.
29
+ `concepts.md` calls a zero record duration legal and says what edfcore does about it — a
30
+ `ZERO_RECORD_DURATION` warning, `sampleRateHz` left `undefined`, "and keeps reading" — and
31
+ `api-errors.md` names the shape it comes from: an annotations-only EDF+ recording, whose records
32
+ carry events and no samples.
33
+ - "Keeps reading" is the part with a window in it. Every record sits at one instant, so a window
34
+ either contains that instant or it does not and there is no interval arithmetic to do. That is
35
+ why the code has a separate branch for it, and why that branch is where a division by zero would
36
+ otherwise live. Both index shapes carry their own copy — a complete index answers from its
37
+ segments, a probed one from the nominal grid — and the two are now required to agree on every
38
+ window put to them.
39
+ - The boundary rule is the same as everywhere else: a window opening exactly on the instant
40
+ contains it, one closing exactly on it does not.
41
+
9
42
  ## 0.4.406
10
43
 
11
44
  - **Added** tests for the index `validateRecording` is handed, and whether it is allowed to answer
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.406",
3
+ "version": "0.4.408",
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.406';
96
+ export const VERSION = '0.4.408';