edfcore 0.4.523 → 0.4.525

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.523";
112
+ export declare const VERSION = "0.4.525";
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.523';
82
+ export const VERSION = '0.4.525';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,49 @@ 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.525
10
+
11
+ - **Added** a check that what the CLI prints is what the library reports, over the eight awkward
12
+ shapes. 0.4.524 checks the six commands survive them; surviving is not agreeing, and a command
13
+ that caught its own exception and printed a plausible summary would pass that while being worse
14
+ than a crash — the output is what a reader pastes into an issue.
15
+ - Three commands carry values rather than prose, and each is re-derived from the library and
16
+ compared. They rot differently. `json` is read by scripts, so a field that quietly stops matching
17
+ the header is acted on rather than noticed. `events` prints a count and then a listing, which can
18
+ disagree with each other as well as with the file. `gaps` runs its own full scan — deliberately,
19
+ since the probed index cannot see a gap in the middle — so its numbers come from a second
20
+ traversal that nothing had compared with the first.
21
+ - The `json` case pins the shape a zero record duration produces: `JSON.stringify` drops a key
22
+ whose value is `undefined`, so an absent sample rate is an absent KEY rather than a null, and the
23
+ test asserts the key is present exactly when the rate is. `--patient` is checked to print the raw
24
+ field with padding trimmed, and its absence to be a missing key rather than an empty string.
25
+ - `signals` is not here — `cli-signals-columns.test.ts` ties all six of its columns to the header
26
+ already, which is this check in the same shape.
27
+
28
+ ## 0.4.524
29
+
30
+ - **Added** the six CLI commands over the eight awkward shapes, without the corpus. The CLI is
31
+ where an unfamiliar file arrives — that is the argument `cli.md` makes for it, "so you can look
32
+ at a file before writing any code" — and the test that runs it over unfamiliar REAL files,
33
+ `tests/corpus/cli-corpus.test.ts`, skips on a fresh clone. Offline the commands had been run over
34
+ `minimalEdf` and `minimalEdfPlus`: two tidy files.
35
+ - Forty-eight invocations, and each must not throw, must not write to stderr on a file that parsed,
36
+ must print something, must end its last line, and must print no control byte. The shapes are the
37
+ ones a command can be surprised by: no data signal at all makes `signals` an empty listing and
38
+ `gaps` a question about a recording that has none, a zero record duration takes the time axis
39
+ from `gaps` and the rate from `signals`, a duplicate label breaks the one lookup `header` does by
40
+ name.
41
+ - The exit code is checked against its meaning rather than against a constant. `validate` returns 1
42
+ for a file carrying an error-severity diagnostic and 0 otherwise — the CI gate the page documents
43
+ — and a final case asserts the eight shapes produce both codes, or the rule is a constant in
44
+ disguise.
45
+ - No rendered value may be the word `undefined`, and that needs a precise form: the word appears
46
+ legitimately in prose, since `ZERO_RECORD_DURATION` says "it makes every sample rate undefined",
47
+ which is the sentence a reader needs. What is refused is a value SLOT — a field of the
48
+ tab-separated listing, a leaf of the JSON, the right-hand side of a `label: value` line. Those
49
+ mean `String(undefined)` reached the output, and a zero record duration is exactly the file that
50
+ would produce one.
51
+
9
52
  ## 0.4.523
10
53
 
11
54
  - **Fixed** a vacuous assertion in `inspect-safety.test.ts`, the property test for the strongest
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.523",
3
+ "version": "0.4.525",
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.523';
96
+ export const VERSION = '0.4.525';