edfcore 0.4.462 → 0.4.464

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.462";
112
+ export declare const VERSION = "0.4.464";
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.462';
82
+ export const VERSION = '0.4.464';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,39 @@ 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.464
10
+
11
+ - **Added** tests for the `maxMaterializeBytes` boundary in all three modules that check it —
12
+ `io/read.ts` before a record range, `decode/digital.ts` before the `Int32Array`, and
13
+ `envelope.ts` before the bucket accumulators. All three admit a requirement equal to the budget,
14
+ and every existing test set a budget far below what it asked for or far above it, so relaxing
15
+ any of the three to a strict comparison left the suite green.
16
+ - Equality is the case the option is used in. The documented way to stay inside a budget is to
17
+ size the request to it — take `maxMaterializeBytes`, divide by `header.recordByteLength`, read
18
+ that many records — and done exactly that lands ON the number every time. A strict comparison
19
+ refuses the arithmetic the error message itself recommends, so "read fewer records per call"
20
+ would be advice a caller had already followed perfectly.
21
+ - Both sides of each boundary, and the refusal is checked to carry the same two numbers on
22
+ `requiredBytes` and `budgetBytes`. Those are the fields `api-errors.md` documents so a caller can
23
+ compute the next request instead of guessing at it, and a boundary error that reported them
24
+ inconsistently would be worse than one that did not report them at all.
25
+
26
+ ## 0.4.463
27
+
28
+ - **Added** the half-open edge cases for the branch `trimToWindow` takes when nothing in the chunk
29
+ advances in time — a zero record duration, or a signal with no samples per record. It decides
30
+ membership with its own comparison pair, and the existing test put the chunk at 0 and asked
31
+ about `[0, 1)` and `[1, 2)`, missing both boundaries by a whole second.
32
+ - Relaxing the right-hand comparison to `<=` admitted a chunk that begins exactly where the window
33
+ ends, so two adjacent windows both returned it and a caller walking such a file got every sample
34
+ twice. Relaxing the left-hand one excluded a chunk that begins exactly where the window begins,
35
+ which is the ordinary way anyone asks for the first window of a file.
36
+ - The `windowDurationTicks > 0n` clause guarding both survives mutation and is left as it is. It
37
+ is redundant with the pair below it — with a zero-length window, `chunkStartTicks <
38
+ windowStartTicks + 0n` is already false wherever the left comparison holds — so no input can
39
+ distinguish it, and the empty-window case is asserted for what it promises rather than to kill a
40
+ mutant it cannot reach.
41
+
9
42
  ## 0.4.462
10
43
 
11
44
  - **Added** the edge cases for `countOutOfDigitalRange`, the third copy of a rule whose other two
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.462",
3
+ "version": "0.4.464",
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.462';
96
+ export const VERSION = '0.4.464';