edfcore 0.4.272 → 0.4.274

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.272";
112
+ export declare const VERSION = "0.4.274";
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.272';
82
+ export const VERSION = '0.4.274';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,36 @@ 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.274
10
+
11
+ - **Added** the check that edfcore never writes to the console. The README says it twice, and the
12
+ survey table explaining why this library exists lists what the alternatives do instead —
13
+ "`console.warn` and `null`, or bare thrown strings". Diagnostics are values on the result
14
+ precisely so that reporting them is the caller's decision; a library that logs takes that
15
+ decision away, breaks anything parsing the consumer's stdout, and on a header diagnostic puts a
16
+ patient's name into whatever collects the logs. One `console.warn` left in during debugging
17
+ would have shipped, and the only way to find it was to be the person whose output it landed in.
18
+ - Both halves, because neither is enough on its own. A static sweep of `src/` with comments
19
+ stripped catches a call on a path no test happens to take — the survey table is quoted in
20
+ comments, so stripping is load-bearing. Running the library with every console method trapped
21
+ catches one the sweep cannot see, and that was verified rather than assumed: a call written as
22
+ `globalThis['con' + 'sole'].warn` leaves no literal `console` in the file, passes the sweep, and
23
+ is caught by the trap.
24
+
25
+ ## 0.4.273
26
+
27
+ - **Made** the fuzz suite assert the clause it was missing. `tests/README.md` states the safety
28
+ property in four parts — "it never hangs, never allocates unboundedly, never returns NaN, and
29
+ never returns believable garbage" — and attributes all four to `property/fuzz.test.ts`, which
30
+ opened by saying it asserts three and listed them. The gap was "never allocates unboundedly":
31
+ its bounded clause was a wall-clock budget, which catches slowness, and slowness is a different
32
+ failure from a corrupt header talking a reader into an allocation it cannot afford.
33
+ - Every fuzz read now runs under `maxMaterializeBytes`, and a read that succeeds must have stayed
34
+ inside it. Exceeding it throws `EdfBudgetError`, which clause 1 already accepted as a legitimate
35
+ refusal; the new half is that a decoder which allocated past the ceiling and handed the array
36
+ back anyway would have satisfied every other clause in the file. Verified by lowering the
37
+ ceiling below what the fixtures decode to and watching the violation report the byte count.
38
+
9
39
  ## 0.4.272
10
40
 
11
41
  - **Executed** the offline claim instead of stating it. `tests/README.md` opens with
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.272",
3
+ "version": "0.4.274",
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.272';
96
+ export const VERSION = '0.4.274';