edfcore 0.4.524 → 0.4.526

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.524";
112
+ export declare const VERSION = "0.4.526";
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.524';
82
+ export const VERSION = '0.4.526';
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.4.526
10
+
11
+ - **Added** the callout on `diagnostics.md` that stops a reader gating a read on the wrong number:
12
+ "`report.ok` is `severity !== 'error'` over a superset of `header.diagnostics`". It says three
13
+ things, each a claim about behaviour, and `diagnostic-docs.test.ts` checked only that the page
14
+ still words it that way.
15
+ - The superset half is the one that could rot in silence. `validateRecording` builds its own list,
16
+ so a header diagnostic dropped on the way in leaves the report describing a cleaner file than the
17
+ header did — and the report is the stricter of the two by construction, which is the direction
18
+ nobody thinks to check. Every diagnostic is now matched by severity, code and message, so two
19
+ occurrences of one code are two entries rather than one.
20
+ - `ok` is asserted as the sentence the page writes it as, twice over: directly against the report's
21
+ own diagnostics, and through `summarizeDiagnostics(...).errors === 0`, which is what a caller
22
+ actually counts with.
23
+ - The last clause is checked on the file it is about. A signal with a degenerate digital range
24
+ carries an `error`-severity diagnostic and makes `report.ok` false — and the file reads perfectly,
25
+ including that channel's samples, which is the deferred-fatal contract and the entire reason the
26
+ callout exists. Both verdicts are reached across the eight shapes, so neither is a constant.
27
+
28
+ ## 0.4.525
29
+
30
+ - **Added** a check that what the CLI prints is what the library reports, over the eight awkward
31
+ shapes. 0.4.524 checks the six commands survive them; surviving is not agreeing, and a command
32
+ that caught its own exception and printed a plausible summary would pass that while being worse
33
+ than a crash — the output is what a reader pastes into an issue.
34
+ - Three commands carry values rather than prose, and each is re-derived from the library and
35
+ compared. They rot differently. `json` is read by scripts, so a field that quietly stops matching
36
+ the header is acted on rather than noticed. `events` prints a count and then a listing, which can
37
+ disagree with each other as well as with the file. `gaps` runs its own full scan — deliberately,
38
+ since the probed index cannot see a gap in the middle — so its numbers come from a second
39
+ traversal that nothing had compared with the first.
40
+ - The `json` case pins the shape a zero record duration produces: `JSON.stringify` drops a key
41
+ whose value is `undefined`, so an absent sample rate is an absent KEY rather than a null, and the
42
+ test asserts the key is present exactly when the rate is. `--patient` is checked to print the raw
43
+ field with padding trimmed, and its absence to be a missing key rather than an empty string.
44
+ - `signals` is not here — `cli-signals-columns.test.ts` ties all six of its columns to the header
45
+ already, which is this check in the same shape.
46
+
9
47
  ## 0.4.524
10
48
 
11
49
  - **Added** the six CLI commands over the eight awkward shapes, without the corpus. The CLI is
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.524",
3
+ "version": "0.4.526",
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.524';
96
+ export const VERSION = '0.4.526';