edfcore 0.5.2 → 0.5.4

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.2";
112
+ export declare const VERSION = "0.5.4";
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.2';
82
+ export const VERSION = '0.5.4';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,44 @@ 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.4
10
+
11
+ - **Added** the rest of the block `discontinuous.md` prints for `index.segments` and `index.gaps`.
12
+ The page prints three objects in full — fifteen fields between them — and the tests checked four:
13
+ the two record ranges and the two `startSeconds`. Each segment's own `index`, its `startTicks`,
14
+ its `endSeconds`, and the gap's `beforeSegmentIndex`/`afterSegmentIndex` were printed and never
15
+ run.
16
+ - Those are the fields most worth running. `startTicks` is the exact value the whole time model
17
+ rests on and the only one a reader cannot check by eye against the diagram above it;
18
+ `endSeconds` is derived from two other printed numbers, so a page printing all three can
19
+ contradict itself while every individual number matches something; and the gap's two segment
20
+ indices are what make it a gap between a specific pair rather than a free-floating interval.
21
+ - The fields are enumerated from the page rather than listed in the test — the block is parsed into
22
+ objects and each `name: value` compared against the object the scan produced — so a field added to
23
+ the block is checked by having been printed. Adding `1n` to a segment's `startTicks` fails it.
24
+ - The derived fields are also checked against each other rather than only against the page:
25
+ `endSeconds` is `startSeconds + durationSeconds` on every segment and gap, and the gap runs from
26
+ where the earlier segment ends to where the later one starts, in ticks.
27
+
28
+ ## 0.5.3
29
+
30
+ - **Added** the claim `api-reading.md` makes in one clause: "that makes `startSeconds` trustworthy
31
+ on an EDF+D file even when the index is only probed". A chunk decodes its start from the
32
+ timekeeping TALs in its own bytes, so an index that has read two records cannot make it wrong.
33
+ - It is worth checking because the cheap answer is available and wrong. Every record has a nominal
34
+ position, `start + r * recordDuration`, that a reader can compute without touching the file — and
35
+ on a contiguous file it is right. On an EDF+D file it is short by every gap before it, which is
36
+ the number nobody notices: the samples are fine, the record numbers are fine, and only the clock
37
+ has moved.
38
+ - The fixture puts a seven-second hole after record 3 and reads a chunk on each side of it through
39
+ an index that has never looked. The far chunk is asserted not to report the nominal position, to
40
+ report the true one in ticks, and to report the same value the scanned index does — which is what
41
+ "trustworthy" has to mean. The near chunk reports a position where the two answers coincide,
42
+ which is why testing only that half would conclude the nominal grid was fine.
43
+ - `precededByGap` is asserted `undefined` on the same chunk, deliberately. It is the field a probed
44
+ index genuinely cannot fill, and the one `mergeChunks` stopped keying its refusal on in 0.2.19 —
45
+ before that, two chunks a minute apart on an EDF+D file joined in silence.
46
+
9
47
  ## 0.5.2
10
48
 
11
49
  - **Added** the map of how far `strict` reaches on a read, which has three cells rather than the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
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.2';
96
+ export const VERSION = '0.5.4';