edfcore 0.4.271 → 0.4.273

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.271";
112
+ export declare const VERSION = "0.4.273";
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.271';
82
+ export const VERSION = '0.4.273';
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.273
10
+
11
+ - **Made** the fuzz suite assert the clause it was missing. `tests/README.md` states the safety
12
+ property in four parts — "it never hangs, never allocates unboundedly, never returns NaN, and
13
+ never returns believable garbage" — and attributes all four to `property/fuzz.test.ts`, which
14
+ opened by saying it asserts three and listed them. The gap was "never allocates unboundedly":
15
+ its bounded clause was a wall-clock budget, which catches slowness, and slowness is a different
16
+ failure from a corrupt header talking a reader into an allocation it cannot afford.
17
+ - Every fuzz read now runs under `maxMaterializeBytes`, and a read that succeeds must have stayed
18
+ inside it. Exceeding it throws `EdfBudgetError`, which clause 1 already accepted as a legitimate
19
+ refusal; the new half is that a decoder which allocated past the ceiling and handed the array
20
+ back anyway would have satisfied every other clause in the file. Verified by lowering the
21
+ ceiling below what the fixtures decode to and watching the violation report the byte count.
22
+
23
+ ## 0.4.272
24
+
25
+ - **Executed** the offline claim instead of stating it. `tests/README.md` opens with
26
+ "`git clone && npm test` is green and offline", which is a property of the suite and was
27
+ enforced by nothing. `globalThis.fetch` is now replaced for the whole run, through
28
+ `setupFiles`, with something that refuses and says to inject a `fetch` the way the `httpSource`
29
+ tests do.
30
+ - That fallback is the route a test reaches the network by accident rather than on purpose:
31
+ `httpSource()` uses `globalThis.fetch` when none is passed, which is right for a consumer in a
32
+ browser, so forgetting the option used to send a real request and pass. It fails loudly now, at
33
+ construction, where the length is resolved.
34
+ - The trap rejects rather than throwing synchronously, because a real `fetch` does not throw when
35
+ a host is unreachable and a trap that behaved differently would send `httpSource` down an error
36
+ path production never takes. `offline.test.ts` calls it and asserts it bites, since a setup file
37
+ that failed to load would leave every test passing with nothing to show anything was guarded.
38
+
9
39
  ## 0.4.271
10
40
 
11
41
  - **Added** the check the whole suite rests on: nothing in `tests/support/` takes a runtime import
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.271",
3
+ "version": "0.4.273",
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.271';
96
+ export const VERSION = '0.4.273';