edfcore 0.4.385 → 0.4.386

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.385";
112
+ export declare const VERSION = "0.4.386";
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.385';
82
+ export const VERSION = '0.4.386';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,24 @@ 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.386
10
+
11
+ - **Added** a property test for the window rule annotations are filtered by: overlap rather than
12
+ containment for an event with a duration, and half-open containment of the onset for an instant,
13
+ so adjacent windows partition a recording without double-counting the boundary.
14
+ - `tests/unit/annotations-query.test.ts` checks that with hand-placed events at hand-picked
15
+ boundaries and is thorough about the cases someone thought of — the instant at t = 0, the epoch
16
+ ending exactly where the window starts, the duration a writer spelled `0` rather than omitting.
17
+ What no example can say is that the rule holds for a partition it was not written against.
18
+ - So the events are generated, written into a real EDF+ file and read back through the parser
19
+ before anything is filtered. The comparison is on `onsetTicksFromFirstRecord`, and those ticks
20
+ are parsed digit by digit out of the TAL: an oracle fed hand-built objects would agree with the
21
+ filter about numbers no file ever produced.
22
+ - Three properties over that: every instantaneous event gets exactly one window of a partition,
23
+ an event with a duration gets every window it overlaps and no other, and the result matches an
24
+ independent case analysis in ticks. Changing `onset >= from` to `onset > from` in the filter —
25
+ one character — fails the first two with a shrunk counterexample.
26
+
9
27
  ## 0.4.385
10
28
 
11
29
  - **Added** a check that the file the inspector hands a first-time visitor is one edfcore accepts.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.385",
3
+ "version": "0.4.386",
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.385';
96
+ export const VERSION = '0.4.386';