edfcore 0.4.405 → 0.4.407

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.405";
112
+ export declare const VERSION = "0.4.407";
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.405';
82
+ export const VERSION = '0.4.407';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,40 @@ 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.407
10
+
11
+ - **Added** tests for a window over a recording whose records do not advance in time.
12
+ `concepts.md` calls a zero record duration legal and says what edfcore does about it — a
13
+ `ZERO_RECORD_DURATION` warning, `sampleRateHz` left `undefined`, "and keeps reading" — and
14
+ `api-errors.md` names the shape it comes from: an annotations-only EDF+ recording, whose records
15
+ carry events and no samples.
16
+ - "Keeps reading" is the part with a window in it. Every record sits at one instant, so a window
17
+ either contains that instant or it does not and there is no interval arithmetic to do. That is
18
+ why the code has a separate branch for it, and why that branch is where a division by zero would
19
+ otherwise live. Both index shapes carry their own copy — a complete index answers from its
20
+ segments, a probed one from the nominal grid — and the two are now required to agree on every
21
+ window put to them.
22
+ - The boundary rule is the same as everywhere else: a window opening exactly on the instant
23
+ contains it, one closing exactly on it does not.
24
+
25
+ ## 0.4.406
26
+
27
+ - **Added** tests for the index `validateRecording` is handed, and whether it is allowed to answer
28
+ for the file. `api-validate.md` describes the option as a complete index "whose onsets the sweep
29
+ reuses instead of reading them again", and nothing checked what happens when the index does not
30
+ fit.
31
+ - That is an ordinary mistake — a viewer holding indices for several open recordings, a helper that
32
+ caches one per session, a loop that forgets to rebuild — and the consequence is not a wrong number
33
+ but a wrong file: the segments and gaps of recording A reported as the structure of recording B,
34
+ in a report whose whole purpose is to say whether *this* file conforms.
35
+ - The rejection is checked by observation rather than by reading the guard. A rejected index makes
36
+ the sweep read the onsets itself, so a spy counts it, and the cost is required to equal passing no
37
+ index at all — which is what "ignored" has to mean.
38
+ - Also covers `DISCONTINUITY_IN_CONTINUOUS_FILE` on a file that both skips and repeats time. Gaps
39
+ travel in one array partitioned by sign, an overlap being an entry with a negative duration
40
+ (0.2.69), and counting the array told a reader that a file missing no data had a gap (0.3.3). One
41
+ of each is the case where the message has to say both, and no fixture produced it.
42
+
9
43
  ## 0.4.405
10
44
 
11
45
  - **Added** tests for `locate` at the edges of a file. `discontinuous.md` states the contract in
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.405",
3
+ "version": "0.4.407",
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.405';
96
+ export const VERSION = '0.4.407';