edfcore 0.6.43 → 0.6.45

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.6.43";
112
+ export declare const VERSION = "0.6.45";
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.6.43';
82
+ export const VERSION = '0.6.45';
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.6.45
10
+
11
+ - **Fixed** a claim in `large-files.md`: that building a complete index "is the only price in the
12
+ library proportional to the file". It is the only one a *reading* call can spring on you — every
13
+ other cost on that page follows the window you asked for — and that is the sentence the page now
14
+ makes. It is not the only one in the library.
15
+ - `validateRecording` has two of its own, and `validation.md` describes both on the same site.
16
+ `scanSamples` reads every sample of every record: `edfcore validate` on the 48 MB polysomnogram
17
+ in the test corpus reports `scanned 2650 records, read 48,336,000 bytes`, and the validation page
18
+ says that on a 13 GiB BDF it is every record. On a discontinuous file the sweep also makes the
19
+ same traversal `buildRecordIndex` makes, for the same onsets, unless it is handed a complete
20
+ index — which is what the `index` option is for, and why the same page puts it as "conformance
21
+ costs one traversal rather than two", a sentence that presupposes there being two.
22
+ - What the wrong one cost: a reader taking "the only price" at face value budgets a conformance
23
+ sweep as free. The two pages disagreed, and the cheaper claim was the one on the page about cost.
24
+ - The paragraph now also says what neither price does unasked. Without `scanSamples`, validating a
25
+ continuous file reports `recordsScanned: 0` and `bytesRead: 0`, and a test measures all four
26
+ cells rather than quoting either page.
27
+
28
+ ## 0.6.44
29
+
30
+ - **Fixed** a claim in `edf-format.md`: that onsets "parsed digit by digit are exact, and
31
+ `parseFloat` is the only thing that makes them inexact". The first half is what `tal/ticks.ts`
32
+ exists for. The second half is broken by the grammar printed nine lines above it — `Onset =
33
+ ("+" / "-") 1*DIGIT [ "." 1*DIGIT ]` puts no bound on the fraction, and a writer emitting full
34
+ double precision produces `+1234.5678901234`.
35
+ - edfcore counts in 100 ns, so the eighth fractional digit onward is dropped: `+0.12345678` is
36
+ `1234567` ticks and `+1.00000009` is one second exactly, with `ok: true` either way, because a
37
+ resolution is not a parse failure. That is the right design — it is the unit `onsetTicks` and
38
+ every window in the library are counted in — and the wrong sentence. A reader told `parseFloat`
39
+ is the only lossy step concludes the digits survive, and `EdfAnnotation.onsetRaw`, the field that
40
+ actually keeps them, has no reason to exist.
41
+ - No behaviour changed. The page now names both places precision goes, and points at `onsetRaw` and
42
+ `durationRaw` for the digits as written.
43
+
9
44
  ## 0.6.43
10
45
 
11
46
  - **Fixed** a claim in `cli.md`, in `cli-run.ts` and in the test that repeated it: that the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.6.43",
3
+ "version": "0.6.45",
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.6.43';
96
+ export const VERSION = '0.6.45';