edfcore 0.5.23 → 0.5.25

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/README.md CHANGED
@@ -77,7 +77,7 @@ for (const event of annotations) {
77
77
  }
78
78
  ```
79
79
 
80
- > **Status: 0.5.x, early.** edfcore runs 2,700+ tests on generated fixtures, and it's checked
80
+ > **Status: 0.5.x, early.** edfcore runs 4,000+ tests on generated fixtures, and it's checked
81
81
  > against public corpora it didn't author: the EDF, EDF+ and 24-bit BDF+ test files from
82
82
  > teuniz.net, and PhysioNet's sleep-edfx (a real 22-hour polysomnography recording and its
83
83
  > sleep-staging file). Those checks are numeric. Channels labelled `sine 8.5 Hz` decode to
@@ -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.23";
112
+ export declare const VERSION = "0.5.25";
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.23';
82
+ export const VERSION = '0.5.25';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,55 @@ 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.25
10
+
11
+ - **Added** the three option tables on `api-helpers.md` and the defaults they promise. Seven fields
12
+ across `FormatHeaderOptions`, `FormatAnnotationsOptions` and `FormatReportOptions`, each with a
13
+ stated default — the part of an option nobody passes and everybody depends on.
14
+ - One of them had never appeared in a test at all. `diagnosticsHint` defaults to `true` and appends
15
+ "Call formatDiagnostics(header.diagnostics) for the detail" under the counts; `edfcore header`
16
+ turns it off because it is already printing that detail. Both halves — that it is on by default,
17
+ and that turning it off removes exactly that line and leaves the counts it sits under — were
18
+ documented in two places and asserted in none.
19
+ - The page argues about two of them together: "The two defaults point opposite ways on purpose.
20
+ `includePatientId` withholds until asked, because the cost of forgetting is a person's name in an
21
+ issue tracker. `diagnosticsHint` prints until told not to, because the cost of forgetting is one
22
+ redundant line." That is a claim about a pair, so it is asserted as a pair.
23
+ - `FormatReportOptions.maxItems` is checked against the constant in `format-report.ts` rather than
24
+ against a literal, `header` is shown to be the difference between "signal 0" and the label, and
25
+ `redactFields` is exercised on a report that really does quote the identification — the default
26
+ prints "Haagse Harry" in full, and asking replaces it with `[redacted]` while the codes, counts
27
+ and advice survive.
28
+ - The hypnogram transcript above the tables runs with them, since it is the same formatter at its
29
+ defaults: `00:00:00.000 Sleep stage W` and
30
+ `08:30:30.000 00:02:00.000 Sleep stage 1`, compared to the page character for character,
31
+ including the column the missing duration leaves blank.
32
+ - **Changed** the suite-size figure the README, `installation.md` and `browser-safety.test.ts` state
33
+ from 2,700+ to 4,000+. `test-count-claims.test.ts` failed this release rather than after it: it
34
+ compares the written figure against the count the suite actually declares, in the direction that
35
+ rots, and names which page to raise.
36
+
37
+ ## 0.5.24
38
+
39
+ - **Added** "the whole flow" at the end of `discontinuous.md`, run, and the diagram at the top of it.
40
+ That page opens with an ASCII timeline of one file and closes with a four-step program over the
41
+ same file printing six lines. `discontinuous-page.test.ts` covers the objects in between — the
42
+ `index.segments` and `index.gaps` blocks, and `locate(13.5)`. Both ends of it were prose.
43
+ - The diagram is the page's premise: six one-second records, a ten-second hole after record 2, and a
44
+ row of byte offsets — 768, 1400, 2032, 2664, 3296, 3928 — which is "they are still stored back to
45
+ back on disk" written as numbers. A reader takes those to a hex editor. Both rows are now read out
46
+ of the diagram and checked, and the same offsets appear again in the four-read block under
47
+ "openEdf never scans", where they are the ranges the open actually issues.
48
+ - Three of the program's six lines come from `console.log` inside loops the page writes itself, so
49
+ they are composed here by the same expressions and compared against the page's text.
50
+ `256 samples from 2 s` and `256 samples from 13 s` are the ones worth having: that is
51
+ `trimToWindow` applied to a window spanning a gap, and the second is the whole point of the page —
52
+ a reader trusting the nominal grid would expect the second chunk to start at 4 s.
53
+ - `index.locate(5)` goes with them. It returns `undefined` for an instant inside the hole, which is
54
+ the answer the page prints and the one a caller has to handle: there is no sample there, and no
55
+ index can invent one. Step 1 is checked to reach its verdict without issuing a read, which is what
56
+ "no extra I/O" in its own comment claims.
57
+
9
58
  ## 0.5.23
10
59
 
11
60
  - **Added** the conformance report `validation.md` prints, printed. That page ends with a whole
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.5.23",
3
+ "version": "0.5.25",
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.23';
96
+ export const VERSION = '0.5.25';