edfcore 0.4.415 → 0.4.417

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.415";
112
+ export declare const VERSION = "0.4.417";
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.415';
82
+ export const VERSION = '0.4.417';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,38 @@ 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.417
10
+
11
+ - **Fixed** the cost of `spec-references.test.ts`, which was the most expensive file in the suite by
12
+ a wide margin. Seven checks in it ask questions of the same set of diagnostics, and each rebuilt
13
+ it from scratch: nine targeted parses plus 2,700 bit-flipped ones, seven times over. The sweep is
14
+ now run once for the file. It drops from 13.0 s to 4.4 s, and the work inside the tests from
15
+ 10.3 s to 1.9 s.
16
+ - The reason to care is not the seconds. Every one of those seven checks sat within reach of
17
+ vitest's default 5 s timeout, which makes a test that passes or fails on how busy the machine is —
18
+ and two of them did fail, on a laptop running a video call and an emulator, for reasons that have
19
+ nothing to do with the code. A shared CI runner is the same machine on a bad day, and
20
+ `scripts/release.mjs` gates the tag on CI going green.
21
+ - Memoised rather than hoisted to a module-level `await`, so the sweep starts when the first check
22
+ asks for it and a rejection surfaces inside a test rather than as an unhandled one.
23
+
24
+ ## 0.4.416
25
+
26
+ - **Added** tests for a file with no annotations signal, whose record onsets are arithmetic. Plain
27
+ EDF and plain BDF carry no timekeeping TALs, so record `r` starts at `r * recordDuration` by
28
+ definition and reading the data would answer a question the bytes do not contain.
29
+ - The consequence is a cost, and cost is why the index is shaped the way it is.
30
+ `locate-cost.test.ts` pins the EDF+ numbers the page prints for a file whose onsets have to be
31
+ read. For the majority of files in the world the number is zero, and nothing said so — a refactor
32
+ that probed unconditionally would be invisible in every result, because the probe would derive
33
+ the same arithmetic value it found written nowhere. Only the request count changes, and on a
34
+ remote recording that is the difference between opening a file and paying one range request per
35
+ step of a binary search.
36
+ - `buildRecordIndex` is the sharper case. On an EDF+ file it is a full traversal, which is why the
37
+ page tells you to gate it on the two-probe verdict; on a plain EDF it must be free, and it still
38
+ has to call `onProgress` once with the traversal complete, so the fastest possible file is not
39
+ the one whose progress bar never moves.
40
+
9
41
  ## 0.4.415
10
42
 
11
43
  - **Raised** the test-count figure from 2,000 to 2,500 in the README's status line, the note at the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.415",
3
+ "version": "0.4.417",
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.415';
96
+ export const VERSION = '0.4.417';