edfcore 0.4.474 → 0.4.476

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.474";
112
+ export declare const VERSION = "0.4.476";
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.474';
82
+ export const VERSION = '0.4.476';
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.476
10
+
11
+ - **Added** the zero-record-duration case to `readTriggers`, the last reader in the package
12
+ without one. `formatHeader`, `resolveTimeWindow`, `trimToWindow`, `gridSampleStartTicks` and
13
+ `readEnvelope` all have theirs; BDF permits a zero record duration, and this is the reader whose
14
+ own comment states what it means — every sample of every record sits at one instant.
15
+ - What that costs is that time can no longer order the events, and `sampleIndex` is the only thing
16
+ that can. Three trigger runs come back as three events, all at tick 0, at sample indices 0, 2
17
+ and 5 — so the change detection still works when the times are all equal, which is the part
18
+ nothing else in the suite says.
19
+ - The all-or-nothing rule is pinned with it: a window starting after that instant yields nothing
20
+ rather than the tail of the recording, and a zero-length window yields nothing either.
21
+ - The guard the comment sits on is NOT claimed to be covered by this, and the test says so.
22
+ `ceilDiv(s * 0n, samplesPerRecord)` is 0 for every `s`, so its two branches agree on every
23
+ input and no test can tell them apart. What is checked is the outcome.
24
+
25
+ ## 0.4.475
26
+
27
+ - **Added** the boundary cases for `quote`, which is what keeps a `raw:` line on one line however
28
+ hostile the 80 bytes behind it are. It has four boundaries and only the space at 0x20 was
29
+ pinned; the other three could each be narrowed with the whole suite still green.
30
+ - All three are about ordinary bytes. `~` is 0x7e, the last printable ASCII character, and it
31
+ appears in real prefiltering fields (`HP:~0.1Hz`) — printed as an escape it reads as a control
32
+ byte in a field where the writer typed a tilde. U+00FF is the last character with a two-digit
33
+ escape, so narrowing that bound spells it `\u{ff}` while every other Latin-1 byte in the same
34
+ field is spelled `\xNN`, and one header field prints in two notations.
35
+ - The one-line property is asserted directly as well: a field holding a newline, a tab and a
36
+ carriage return renders as exactly one `raw:` line.
37
+ - And the deliberately different rule on `expected:` and `actual:` is asserted beside it. Those
38
+ are unquoted values in fixed-width columns, so a control byte becomes one dot through
39
+ `printable` rather than a four-character escape — the same byte prints two ways on two lines,
40
+ which is the design and not an inconsistency, and neither half is obvious without the other.
41
+
9
42
  ## 0.4.474
10
43
 
11
44
  - **Added** all twelve month names to the `dd-MMM-yyyy` subfield tests. `MONTH_ABBREVIATIONS
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.474",
3
+ "version": "0.4.476",
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.474';
96
+ export const VERSION = '0.4.476';