edfcore 0.4.464 → 0.4.466

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.464";
112
+ export declare const VERSION = "0.4.466";
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.464';
82
+ export const VERSION = '0.4.466';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,40 @@ 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.466
10
+
11
+ - **Added** tests for `buildSegmentation` over a sparse `ArrayLike`, which is what its signature
12
+ admits and what nothing had ever passed it. `decodeAnnotations` returns a `BigInt64Array`, where
13
+ an index inside the length always holds a value, so both `undefined` checks inside the walk were
14
+ dead: deleting either changed nothing, and the function would then throw on an input its own
15
+ type accepts.
16
+ - Throwing is the wrong answer for this module. It is documented as structural — it reports the
17
+ shape the onsets have and judges none of it — so a hole is not a discontinuity, and a caller
18
+ assembling onsets from partial probes would get a stack trace instead of the segments it does
19
+ know about.
20
+ - Four cases: a hole is skipped and the walk continues past it; a discontinuity between two
21
+ entries that ARE present still splits, so skipping a hole has not become skipping the
22
+ comparison; and a missing record 0 returns nothing at all, with or without an explicit origin,
23
+ because that onset is the axis every second here is measured from.
24
+ - The third `undefined` check, in the gaps loop, is left alone and said so in the test: it reads
25
+ the `segments` array the function built itself, so no input reaches it and pinning it would mean
26
+ faking the array.
27
+
28
+ ## 0.4.465
29
+
30
+ - **Added** the close half of `cachedSource`'s pass-through, which had never run. At `maxBytes: 0`
31
+ the function returns a different object entirely — built and returned before any cache state
32
+ exists — with its own `read` and its own `close`. The read half was covered twice over; the
33
+ close half is the one whose failure a test cannot see indirectly.
34
+ - `cachedSource(await fileSource(path), { maxBytes: 0 })` is a reasonable thing to write. The page
35
+ documents the budget as floored at 0, and wrapping unconditionally while tuning the number per
36
+ environment is how a caller arrives there. A pass-through that dropped the delegation would hold
37
+ the descriptor open for the life of the process, with nothing about the reads looking wrong.
38
+ - The optional-`close` case is pinned alongside it: `ByteSource.close` is optional and
39
+ `byteSource(bytes)` is the adapter that omits it, so `source.close?.()` is what makes closing a
40
+ zero-budget wrapper over an in-memory file resolve rather than throw a `TypeError` — the shape a
41
+ caller hits while swapping adapters.
42
+
9
43
  ## 0.4.464
10
44
 
11
45
  - **Added** tests for the `maxMaterializeBytes` boundary in all three modules that check it —
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.464",
3
+ "version": "0.4.466",
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.464';
96
+ export const VERSION = '0.4.466';