edfcore 0.4.449 → 0.4.451

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.449";
112
+ export declare const VERSION = "0.4.451";
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.449';
82
+ export const VERSION = '0.4.451';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,44 @@ 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.451
10
+
11
+ - **Added** a property test for `bucketCount` over arbitrary windows. `api-helpers.md` calls it
12
+ "the field to read before indexing, and it is not always the `buckets` you asked for" — a caller
13
+ who sizes a canvas to 800 pixels, asks for 800 buckets and loops to 800 reads past the end of
14
+ `counts` on any run shorter than 800 samples, which is every run near the end of a recording and
15
+ every run between two gaps.
16
+ - The two calls answer differently and both answers are deliberate. `readEnvelope` clamps to the
17
+ densest signal's sample count, because a grid with more buckets than samples has columns that
18
+ mean nothing. `readEnvelopeAtResolution` does not, because its contract is the bucket WIDTH:
19
+ shortening the count would shorten the grid rather than coarsen it, and a time axis asked for
20
+ 30 s per bucket has to keep getting it.
21
+ - Both rules are exactly the kind that hold for the case someone checked — a run long enough for
22
+ the clamp never to bite, a resolution dividing the span exactly — so they are now checked over
23
+ generated geometries, along with the invariant a caller actually indexes on: every signal's
24
+ `counts`, `min` and `max` are `bucketCount` long, whatever the count turns out to be.
25
+
26
+ ## 0.4.450
27
+
28
+ - **Added** a property test that `printable` never changes the width of what it is given. Every
29
+ table the package prints depends on it: `formatHeader` pads a label into a column, the CLI's
30
+ `signals` output is tab-separated for `cut -f2`, and the validation report lines observed ranges
31
+ up under a heading — all on text read out of a file, where EDF says a label is sixteen bytes and
32
+ says nothing about what may be in them.
33
+ - The module's docblock states the rule and rejects two alternatives, both of which are the natural
34
+ thing to reach for and both correct-looking: a stripped control character is gone, an escaped one
35
+ is legible. Either shifts a column by a character per occurrence. Those alternatives are now an
36
+ executable contrast rather than a comment — the property computes both and shows one shortens and
37
+ one lengthens.
38
+ - The generated text covers what a fixture-writer does not think of: astral characters, which are
39
+ two UTF-16 units and one iteration of a `for…of`; lone surrogates, which are one of each; the
40
+ Latin-1 supplement, which a European electrode label really contains; and the line separator the
41
+ docblock argues should pass through. DEL is drawn separately, because a generator covering only
42
+ 0x00-0x1f leaves the second half of the condition untouched while looking thorough.
43
+ - Three invariants, and the third is what makes the first two mean anything: the length is
44
+ unchanged, no C0 or DEL survives, and every character that was not one is exactly what it was.
45
+ Without the third, returning a string of dots would satisfy the other two.
46
+
9
47
  ## 0.4.449
10
48
 
11
49
  - **Added** a check that the sourcemaps in the published package point at files the package ships.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.449",
3
+ "version": "0.4.451",
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.449';
96
+ export const VERSION = '0.4.451';