edfcore 0.4.367 → 0.4.368

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.367";
112
+ export declare const VERSION = "0.4.368";
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.367';
82
+ export const VERSION = '0.4.368';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,22 @@ 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.368
10
+
11
+ - **Added** `tests/property/inspect-safety.test.ts`. `inspectEdf` is the triage call and makes the
12
+ strongest promise in the package: `openEdf` and `parseHeader` promise to throw an `EdfError`
13
+ rather than escape the error model, and `fuzz.test.ts` holds them to that over flipped, random
14
+ and truncated bytes — `inspectEdf` promises not to throw about content at all. That promise had
15
+ only ever been tested against fixtures somebody wrote.
16
+ - A promise of the form "never, for any input" is exactly the kind a fixture cannot establish: the
17
+ inputs a person thinks of are the ones already handled, and the four defects fuzzing found during
18
+ development were all of that shape. Random bytes, random bytes behind a valid version block, a
19
+ bit flipped anywhere, and every truncation length exhaustively now go through it.
20
+ - The report is checked as well as the call, because "never returns believable garbage" is the
21
+ fourth clause of the safety invariant and a triage report full of `NaN` would satisfy "did not
22
+ throw" while telling a reader nothing true. Every source is in memory, so nothing can fail except
23
+ on what the bytes say — which makes any rejection a broken promise rather than an ambiguous one.
24
+
9
25
  ## 0.4.367
10
26
 
11
27
  - **Extended** 0.4.338's interface check to the three structural shims `api-sources.md` prints and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.367",
3
+ "version": "0.4.368",
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.367';
96
+ export const VERSION = '0.4.368';