edfcore 0.2.50 → 0.2.52

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.
package/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.2.52
10
+
11
+ - **Added** streaming equivalence on the 22-hour recording. The documented claim is that a streamed
12
+ chunk and a read chunk are the same object in every respect; on a 40-record fixture a chunking
13
+ mistake often cancels out, and over 2,650 records it cannot. 7,950,000 samples are concatenated
14
+ from 42 streamed chunks and compared element by element with a single `readWindow`, and no chunk
15
+ is allowed to hold more than its own records.
16
+ - Also pins that streaming yields its first chunk after reading under one percent of a 48 MB file.
17
+ Bounded memory is half the claim; not having to read the whole file before yielding anything is
18
+ the other half, and a byte counter is the evidence.
19
+ - The comparison is a loop rather than `toEqual`. Deep equality over two 7.95-million-element typed
20
+ arrays took 45 seconds and, on failure, printed a diff nobody could read; the loop takes under a
21
+ second and names the first differing sample, which is the only part anyone would look at.
22
+
23
+ ## 0.2.51
24
+
25
+ - **Added** the tests only a real, large recording can support, against the 22-hour sleep-edfx
26
+ polysomnogram. Three claims edfcore advertises are invisible on a hundred-byte fixture:
27
+ - **Envelope decimation is faithful.** 7,950,000 samples reduced to 1,000 buckets, compared with
28
+ an EXHAUSTIVE reduction of every one of them — not a spot check. This is the case the feature
29
+ exists for, and until now it was only demonstrated on 40 records.
30
+ - **The bucket grid does not move with the read chunk size.** 265 chunks versus a handful. A fold
31
+ that computed its bucket on the chunk's grid rather than the run's would diverge here and agree
32
+ on a two-record fixture.
33
+ - **Memory is bounded by the chunk, not the window.** The 22-hour envelope is produced under a
34
+ 512 KiB budget; materialising the window would need ~32 MB, so the budget makes the claim
35
+ falsifiable rather than asserted.
36
+ - Also pins that a 100 Hz and a 1 Hz channel keep their own sample grids across the whole file,
37
+ checked at the LAST 30 seconds — where a shared-grid error is largest, and nowhere else.
38
+ - **Fixed** an unnecessary biome suppression added in 0.2.50 that was itself the only warning in
39
+ the tree.
40
+
9
41
  ## 0.2.50
10
42
 
11
43
  - **Added** a corpus-coverage report that always runs. Every other test in `tests/corpus/` skips
@@ -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.2.50";
112
+ export declare const VERSION = "0.2.52";
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.2.50';
82
+ export const VERSION = '0.2.52';
83
83
  //# sourceMappingURL=constants.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.2.50",
3
+ "version": "0.2.52",
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.2.50';
96
+ export const VERSION = '0.2.52';