edfcore 0.4.407 → 0.4.409

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.407";
112
+ export declare const VERSION = "0.4.409";
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.407';
82
+ export const VERSION = '0.4.409';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,41 @@ 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.409
10
+
11
+ - **Added** tests for the start offset a chunk has to derive when it does not begin at record 0.
12
+ A caller following the `decodeAnnotations` example on `api-primitives.md` hands over a record
13
+ range that usually excludes record 0, so record 0's sub-second offset — what every published
14
+ onset is rebased on — has to be derived by subtracting the nominal distance back to it.
15
+ - That subtraction is valid only while the records in between are contiguous, which is what a
16
+ discontinuous file is not. A derived value outside [0, 1) is therefore evidence about the file:
17
+ on one marked EDF+C it means the file is either discontinuous while claiming continuity or its
18
+ onsets drift, and the diagnostic says so instead of rebasing on a number known to be wrong. On an
19
+ EDF+D file the same value implies nothing, so nothing is reported — otherwise `strict` would
20
+ reject every conformant discontinuous recording.
21
+ - A supplied `originTicks` or `startOffsetTicks` outranks the derivation even when it lies outside
22
+ [0, 1), because it came from the timeline rather than from arithmetic across a gap. That is what
23
+ keeps the diagnostic count a property of the file: before 0.3.15 the three internal callers
24
+ re-derived it per chunk, and one file produced 1, 2, 4, 7, 16 or 31 of them purely as a function
25
+ of `maxMaterializeBytes`.
26
+
27
+ ## 0.4.408
28
+
29
+ - **Added** tests for the refusals in the sample helpers. `sampleAt`, `sampleStartTicksOf` and
30
+ `gridSampleIndexAt` all map between a time and a sample index, all three sit behind a guard
31
+ rejecting the signals and files where no such mapping exists, and none of those guards had ever
32
+ been executed.
33
+ - None of the inputs is exotic. An annotations channel is in `header.signals`, so
34
+ `signals.map((s, i) => sampleAt(recording, i, t))` reaches it on the first EDF+ file. A signal
35
+ declaring zero samples per record opens with a warning, beside live channels. A file whose
36
+ records do not advance in time opens with a warning too, and `api-errors.md` names a scoring file
37
+ as the reason it is legal.
38
+ - The three messages differ because the ways out differ — an annotations channel to
39
+ `onsetTicksFromFirstRecord`, a zero-sample signal to the diagnostic explaining it, a zero-duration
40
+ file to `readRecords` — so the pairing is checked rather than the error type. `sample-grid.ts` and
41
+ `sample-locate.ts` carry the same three refusals and are checked side by side, because 0.3.78 was
42
+ the two disagreeing about which onset field to recommend.
43
+
9
44
  ## 0.4.407
10
45
 
11
46
  - **Added** tests for a window over a recording whose records do not advance in time.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.407",
3
+ "version": "0.4.409",
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.407';
96
+ export const VERSION = '0.4.409';