edfcore 0.3.32 → 0.3.34

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.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,46 @@ 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.3.34
10
+
11
+ - **Fixed** `validateHeader` reporting nothing about a starttime field the parse had refused. A
12
+ file with a good `dd.mm.yy` and a blank 8-byte starttime produced no timing diagnostic at all
13
+ from the sweep, so a caller concluded the header's timing fields were conformant while
14
+ `startTime.clock` held a substituted `00:00:00` the file never stated.
15
+ - `validateHeader` is documented as independent of `header.diagnostics` — *"running both costs
16
+ nothing and neither can mask the other"* — so a caller who runs only the two-read, no-I/O path
17
+ both doc pages recommend is exactly the caller the docs sanction, and exactly the one who saw
18
+ nothing.
19
+ - **This is a claim I made twice without making it true.** 0.3.17 rewrote `api-validate.md` and
20
+ `validation.md` to describe a `validateHeader` check for a refused clock, and 0.3.27 rewrote them
21
+ again for the split code — both times documenting a branch that was never added. Every other
22
+ consumer of `clockSource` already knew: `formatHeader` prints `unknown`, `formatStartTimeNaive`
23
+ returns `undefined`. Only the conformance sweep was blind.
24
+ - It now emits `STARTTIME_UNPARSEABLE` with `field: 'startTime'` at byte 176, beside the
25
+ `DATE_UNPARSEABLE` branch it mirrors, saying what is true: the clock is a substituted midnight,
26
+ `clockSource` is `'none'`, and the calendar date and every elapsed time are unaffected.
27
+
28
+ ## 0.3.33
29
+
30
+ **An overlap is not a gap, in the two places that still said it was.** 0.3.3 stated the rule while
31
+ fixing `edfcore gaps` — *a gap is time no record covers; an overlap is one instant two records both
32
+ claim* — and gave the CLI a fourth column. These two sites never got the same partition.
33
+
34
+ - **`resolveTimeWindow`'s refusal.** It fires on `spanTicks !== coveredTicks`, which is a two-sided
35
+ test, and the message hardcoded the gap reading. On a file whose records overlap it produced
36
+ *"its 4 records span 3.5 s but cover only 4 s, so it contains at least one gap"* — arithmetic
37
+ nonsense, since 4 is not "only" anything beside 3.5, and a structural claim that is the opposite
38
+ of what the bytes say. The same file's open-time diagnostic already called it an overlap, so one
39
+ file produced two edfcore messages contradicting each other.
40
+ - **`validateRecording`'s structural diagnostic.** It counted every entry of `index.gaps` as a gap,
41
+ and an overlap travels there with a NEGATIVE duration (0.2.69). A file with an overlap and no
42
+ hole anywhere was reported as having "1 gap(s) between them" — while the
43
+ `RECORD_ONSET_SPACING_VIOLATION` a few lines below in the same array correctly called the same
44
+ boundary an overlap.
45
+ - Both now branch on the sign and say which they found; a report with one of each says so. Neither
46
+ refusal changes: a probed index still cannot map a window across either kind of discontinuity,
47
+ and the next step is still `buildRecordIndex`. A real hole is still called a gap.
48
+
9
49
  ## 0.3.32
10
50
 
11
51
  - **Fixed** `readTriggers` timestamping a Status sample by TRUNCATING to a whole tick, so an
@@ -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.3.32";
112
+ export declare const VERSION = "0.3.34";
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.3.32';
82
+ export const VERSION = '0.3.34';
83
83
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../src/time/window.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,cAAc,EAEd,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAC;AAyBrB;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,SAAS,WAAW,EAAE,CAkFxB;AAwED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,cAAc,EAC3B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,cAAc,CAoDhB"}
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../src/time/window.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,cAAc,EAEd,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAC;AAyBrB;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,SAAS,WAAW,EAAE,CA8FxB;AAwED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,cAAc,EAC3B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,cAAc,CAoDhB"}
@@ -100,9 +100,21 @@ export function resolveTimeWindow(timeline, index, startSeconds, durationSeconds
100
100
  // counts can round to the same one. On a long enough recording a real gap then vanished from
101
101
  // this comparison and the window was mapped on the nominal grid (fixed in 0.3.4).
102
102
  if (timeline.spanTicks !== timeline.coveredTicks) {
103
- throw new RangeError(`resolveTimeWindow() cannot map seconds to records on this file: its ${recordCount} ` +
104
- `records span ${timeline.spanSeconds} s but cover only ${timeline.coveredSeconds} s, so ` +
105
- 'it contains at least one gap, and a probed index knows where neither the gap nor the ' +
103
+ // The test is TWO-SIDED and the message used to name only one side. A span that exceeds the
104
+ // coverage is a gap; a coverage that exceeds the span means records OVERLAP, and saying
105
+ // "span 3.5 s but cover only 4 s, so it contains at least one gap" is both arithmetic
106
+ // nonsense — "only" for the larger number — and the opposite of what the bytes say. The same
107
+ // file's open-time diagnostic already calls it an overlap, so one file produced two edfcore
108
+ // messages that contradicted each other. 0.3.3 stated the rule for `edfcore gaps`: a gap is
109
+ // time no record covers; an overlap is one instant two records both claim (fixed in 0.3.33).
110
+ const overlapping = timeline.coveredTicks > timeline.spanTicks;
111
+ const shape = overlapping
112
+ ? `records covering ${timeline.coveredSeconds} s are packed into a ${timeline.spanSeconds} s ` +
113
+ 'span, so at least one record starts before the previous one ends'
114
+ : `its ${recordCount} records span ${timeline.spanSeconds} s but cover only ` +
115
+ `${timeline.coveredSeconds} s, so it contains at least one gap`;
116
+ throw new RangeError(`resolveTimeWindow() cannot map seconds to records on this file: ${shape}, ` +
117
+ 'and a probed index knows where neither the discontinuity nor the ' +
106
118
  'records after it start. ' +
107
119
  // The two seconds above can PRINT the same on a long recording, since that is exactly the
108
120
  // rounding this check stopped relying on. The ticks always differ here, so they are
@@ -1 +1 @@
1
- {"version":3,"file":"window.js","sourceRoot":"","sources":["../../src/time/window.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAUpF,MAAM,SAAS,GAA2B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE5D,qCAAqC;AACrC,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAExD,4FAA4F;AAC5F,SAAS,UAAU,CAAC,KAAa,EAAE,GAAW,EAAE,IAAY;IAC1D,IAAI,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACrC,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,QAAQ,CAAC,MAAiB,EAAE,WAAmB;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,IAAI,uBAAuB,CAC/B,eAAe,WAAW,sBAAsB,MAAM,CAAC,OAAO,CAAC,MAAM,mBAAmB;QACtF,yFAAyF;QACzF,qCAAqC,EACvC,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAC/E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAqB,EACrB,KAAqB,EACrB,YAAoB,EACpB,eAAuB;IAEvB,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACzC,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvC,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,mBAAmB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IAC5D,IAAI,mBAAmB,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,cAAc,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;IAE9D,6FAA6F;IAC7F,gGAAgG;IAChG,4FAA4F;IAC5F,MAAM,aAAa,GAAG,QAAQ,CAAC,mBAAmB,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YAC3C,IAAI,YAAY,IAAI,CAAC;gBAAE,SAAS;YAChC,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;YAE7C,yFAAyF;YACzF,2DAA2D;YAC3D,IAAI,aAAa,KAAK,EAAE,EAAE,CAAC;gBACzB,IAAI,gBAAgB,IAAI,iBAAiB,IAAI,iBAAiB,GAAG,cAAc,EAAE,CAAC;oBAChF,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;gBACrE,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,eAAe,GAAG,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC;YACjF,IAAI,eAAe,IAAI,gBAAgB,IAAI,iBAAiB,IAAI,cAAc;gBAAE,SAAS;YAEzF,MAAM,WAAW,GAAG,UAAU,CAC5B,QAAQ,CAAC,gBAAgB,GAAG,iBAAiB,EAAE,aAAa,CAAC,EAC7D,CAAC,EACD,YAAY,GAAG,CAAC,CACjB,CAAC;YACF,MAAM,UAAU,GAAG,UAAU,CAC3B,OAAO,CAAC,cAAc,GAAG,iBAAiB,EAAE,aAAa,CAAC,GAAG,EAAE,EAC/D,CAAC,EACD,YAAY,GAAG,CAAC,CACjB,CAAC;YACF,IAAI,UAAU,GAAG,WAAW;gBAAE,SAAS;YACvC,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW;gBAC1C,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,4FAA4F;IAC5F,6FAA6F;IAC7F,kFAAkF;IAClF,IAAI,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,IAAI,UAAU,CAClB,uEAAuE,WAAW,GAAG;YACnF,gBAAgB,QAAQ,CAAC,WAAW,qBAAqB,QAAQ,CAAC,cAAc,SAAS;YACzF,uFAAuF;YACvF,0BAA0B;YAC1B,0FAA0F;YAC1F,oFAAoF;YACpF,mFAAmF;YACnF,YAAY,QAAQ,CAAC,SAAS,YAAY,QAAQ,CAAC,YAAY,oBAAoB;YACnF,gEAAgE;YAChE,2DAA2D,CAC9D,CAAC;IACJ,CAAC;IAED,2FAA2F;IAC3F,IAAI,aAAa,KAAK,EAAE,EAAE,CAAC;QACzB,OAAO,gBAAgB,IAAI,EAAE,IAAI,cAAc,GAAG,EAAE;YAClD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IACD,IAAI,cAAc,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,gBAAgB,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,aAAa;QAAE,OAAO,SAAS,CAAC;IAC9E,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;IACxF,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;IACzF,IAAI,IAAI,GAAG,KAAK;QAAE,OAAO,SAAS,CAAC;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,eAAe,CACtB,eAAuB,EACvB,UAAkB,EAClB,aAAqB,EACrB,gBAAwB;IAExB,MAAM,MAAM,GAAG,eAAe,GAAG,gBAAgB,GAAG,UAAU,GAAG,aAAa,CAAC;IAC/E,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACzD,OAAO;QACL,KAAK,EAAE,UAAU;QACjB,OAAO,EACL,cAAc,CAAC,UAAU,CAAC;YAC1B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,sBAAsB,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAmB,EAAE,MAAiB;IACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACpE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,8EAA8E;QAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC1B,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI;YAAE,KAAK,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CACd,WAA2B,EAC3B,MAAiB,EACjB,UAAkB,EAClB,WAAmB,EACnB,KAAyC;IAEzC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC;IACnF,MAAM,cAAc,GAAG,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IACzF,OAAO;QACL,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,4FAA4F;QAC5F,4CAA4C;QAC5C,WAAW,EAAE,OAAO,CAAC,MAAM;QAC3B,OAAO;QACP,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,GAAG,UAAU;QAC3D,YAAY,EAAE,KAAK,CAAC,OAAO;QAC3B,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,uFAAuF;QACvF,2EAA2E;QAC3E,sBAAsB,EACpB,cAAc,IAAI,WAAW,CAAC,sBAAsB,KAAK,CAAC;YACxD,CAAC,CAAC,WAAW,CAAC,sBAAsB;YACpC,CAAC,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAiB,EACjB,WAA2B,EAC3B,YAAoB,EACpB,eAAuB;IAEvB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACjD,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhF,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,mBAAmB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IAC5D,iGAAiG;IACjG,0FAA0F;IAC1F,6FAA6F;IAC7F,4FAA4F;IAC5F,sFAAsF;IACtF,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC;IAE/C,6FAA6F;IAC7F,+FAA+F;IAC/F,gEAAgE;IAChE,IAAI,aAAa,KAAK,EAAE,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,MAAM,GACV,mBAAmB,GAAG,EAAE;YACxB,gBAAgB,IAAI,eAAe;YACnC,eAAe,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;QAC3D,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC;QAChF,OAAO,MAAM;YACX,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC;YACvD,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,qBAAqB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACvD,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,eAAe,CAAC;IAC9D,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;IAElE,MAAM,UAAU,GAAG,UAAU,CAC3B,OAAO,CAAC,kBAAkB,GAAG,qBAAqB,EAAE,aAAa,CAAC,EAClE,CAAC,EACD,SAAS,CACV,CAAC;IACF,MAAM,SAAS,GAAG,UAAU,CAC1B,OAAO,CAAC,gBAAgB,GAAG,qBAAqB,EAAE,aAAa,CAAC,GAAG,EAAE,EACrE,CAAC,CAAC,EACF,SAAS,GAAG,CAAC,CACd,CAAC;IACF,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;IAE5E,OAAO,OAAO,CACZ,WAAW,EACX,MAAM,EACN,UAAU,EACV,WAAW,EACX,eAAe,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAC3F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"window.js","sourceRoot":"","sources":["../../src/time/window.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAcH,OAAO,KAAK,EAEV,aAAa,EAEb,SAAS,EAET,YAAY,EAIZ,eAAe,EACf,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D;;;;;;;;;;;;GAYG;AACH,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AA0SpB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,aAAa,EAAE,CAe1E;AAsND;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA+C3B"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAcH,OAAO,KAAK,EAEV,aAAa,EAEb,SAAS,EAET,YAAY,EAIZ,eAAe,EACf,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D;;;;;;;;;;;;GAYG;AACH,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AA8UpB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,aAAa,EAAE,CAe1E;AAmOD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA+C3B"}
package/dist/validate.js CHANGED
@@ -215,6 +215,38 @@ function checkDates(header, into) {
215
215
  specReference: 'EDF specification, header record bytes 168-175',
216
216
  }));
217
217
  }
218
+ /*
219
+ * The counterpart, and the check this sweep did not have.
220
+ *
221
+ * `validateHeader` is documented as independent of `header.diagnostics` — "running both costs
222
+ * nothing and neither can mask the other" — so a caller running only the two-read, no-I/O path
223
+ * both doc pages recommend saw NOTHING about a starttime field the parse had refused, and
224
+ * concluded the header's timing fields were conformant while `startTime.clock` held a
225
+ * substituted midnight the file never stated.
226
+ *
227
+ * 0.3.17 corrected the prose on two pages to describe this, and 0.3.27 rewrote it again for the
228
+ * split code — both times documenting a check that was never added. Every other consumer of
229
+ * `clockSource` already knows: `formatHeader` prints `unknown` and `formatStartTimeNaive`
230
+ * returns `undefined`. Only the conformance sweep was blind (fixed in 0.3.34).
231
+ */
232
+ if (startTime.clockSource === 'none') {
233
+ into.push(createDiagnostic({
234
+ code: 'STARTTIME_UNPARSEABLE',
235
+ message: `the starttime field is ${JSON.stringify(trimEdfField(header.raw.startTime))}, which ` +
236
+ 'is not a clock time in hh.mm.ss form with hour 00..23, minute 00..59 and second ' +
237
+ '00..59. EDF specification, header record bytes 176-183. Next: startTime.clock reports ' +
238
+ '00:00:00 because the type admits no absent clock — startTime.clockSource is "none" ' +
239
+ 'and formatStartTimeNaive() has nothing to return. The calendar date and every elapsed ' +
240
+ 'time in the file are unaffected.',
241
+ field: 'startTime',
242
+ byteOffset: 176,
243
+ byteLength: 8,
244
+ raw: header.raw.startTime,
245
+ expected: 'hh.mm.ss',
246
+ actual: trimEdfField(header.raw.startTime),
247
+ specReference: 'EDF specification, header record bytes 176-183',
248
+ }));
249
+ }
218
250
  const headerDate = startTime.headerDate;
219
251
  const recordingIdDate = startTime.recordingIdDate;
220
252
  if (headerDate !== undefined &&
@@ -325,12 +357,24 @@ function usableIndex(index, recordCount) {
325
357
  }
326
358
  function reportStructure(header, segmentCount, gaps, into) {
327
359
  if (header.continuity === 'continuous' && segmentCount > 1) {
360
+ // Partitioned by sign, the way `edfcore gaps` was in 0.3.3. An overlap travels in this array
361
+ // with a NEGATIVE duration (0.2.69), so counting every entry as a gap told a reader that a
362
+ // file missing no data at all had one — while the RECORD_ONSET_SPACING_VIOLATION appended a
363
+ // few lines below correctly called the same boundary an overlap.
364
+ const holes = gaps.filter((gap) => gap.durationTicks > 0n).length;
365
+ const overlaps = gaps.length - holes;
366
+ const between = overlaps === 0
367
+ ? `${holes} gap(s) between them`
368
+ : holes === 0
369
+ ? `${overlaps} overlap(s) between them`
370
+ : `${holes} gap(s) and ${overlaps} overlap(s) between them`;
328
371
  into.push(createDiagnostic({
329
372
  code: 'DISCONTINUITY_IN_CONTINUOUS_FILE',
330
373
  message: `the reserved field marks this file continuous, but its record onsets fall into ` +
331
- `${segmentCount} separate segments with ${gaps.length} gap(s) between them. Rule: in a ` +
374
+ `${segmentCount} separate segments with ${between}. Rule: in a ` +
332
375
  'continuous file every record onset is startOffset + recordIndex * recordDuration; a ' +
333
- 'recording with gaps is what EDF+D exists for. Next: treat the file as discontinuous ' +
376
+ 'recording with gaps is what EDF+D exists for, and an overlap is sanctioned by ' +
377
+ 'neither. Next: treat the file as discontinuous — ' +
334
378
  'readWindow() returns one chunk per contiguous run once you pass it a complete index, ' +
335
379
  'instead of crossing a gap silently.',
336
380
  field: 'timekeeping TAL',
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.3.32",
3
+ "version": "0.3.34",
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.3.32';
96
+ export const VERSION = '0.3.34';
@@ -128,10 +128,22 @@ export function resolveTimeWindow(
128
128
  // counts can round to the same one. On a long enough recording a real gap then vanished from
129
129
  // this comparison and the window was mapped on the nominal grid (fixed in 0.3.4).
130
130
  if (timeline.spanTicks !== timeline.coveredTicks) {
131
+ // The test is TWO-SIDED and the message used to name only one side. A span that exceeds the
132
+ // coverage is a gap; a coverage that exceeds the span means records OVERLAP, and saying
133
+ // "span 3.5 s but cover only 4 s, so it contains at least one gap" is both arithmetic
134
+ // nonsense — "only" for the larger number — and the opposite of what the bytes say. The same
135
+ // file's open-time diagnostic already calls it an overlap, so one file produced two edfcore
136
+ // messages that contradicted each other. 0.3.3 stated the rule for `edfcore gaps`: a gap is
137
+ // time no record covers; an overlap is one instant two records both claim (fixed in 0.3.33).
138
+ const overlapping = timeline.coveredTicks > timeline.spanTicks;
139
+ const shape = overlapping
140
+ ? `records covering ${timeline.coveredSeconds} s are packed into a ${timeline.spanSeconds} s ` +
141
+ 'span, so at least one record starts before the previous one ends'
142
+ : `its ${recordCount} records span ${timeline.spanSeconds} s but cover only ` +
143
+ `${timeline.coveredSeconds} s, so it contains at least one gap`;
131
144
  throw new RangeError(
132
- `resolveTimeWindow() cannot map seconds to records on this file: its ${recordCount} ` +
133
- `records span ${timeline.spanSeconds} s but cover only ${timeline.coveredSeconds} s, so ` +
134
- 'it contains at least one gap, and a probed index knows where neither the gap nor the ' +
145
+ `resolveTimeWindow() cannot map seconds to records on this file: ${shape}, ` +
146
+ 'and a probed index knows where neither the discontinuity nor the ' +
135
147
  'records after it start. ' +
136
148
  // The two seconds above can PRINT the same on a long recording, since that is exactly the
137
149
  // rounding this check stopped relying on. The ticks always differ here, so they are
package/src/validate.ts CHANGED
@@ -291,6 +291,42 @@ function checkDates(header: EdfHeader, into: EdfDiagnostic[]): void {
291
291
  );
292
292
  }
293
293
 
294
+ /*
295
+ * The counterpart, and the check this sweep did not have.
296
+ *
297
+ * `validateHeader` is documented as independent of `header.diagnostics` — "running both costs
298
+ * nothing and neither can mask the other" — so a caller running only the two-read, no-I/O path
299
+ * both doc pages recommend saw NOTHING about a starttime field the parse had refused, and
300
+ * concluded the header's timing fields were conformant while `startTime.clock` held a
301
+ * substituted midnight the file never stated.
302
+ *
303
+ * 0.3.17 corrected the prose on two pages to describe this, and 0.3.27 rewrote it again for the
304
+ * split code — both times documenting a check that was never added. Every other consumer of
305
+ * `clockSource` already knows: `formatHeader` prints `unknown` and `formatStartTimeNaive`
306
+ * returns `undefined`. Only the conformance sweep was blind (fixed in 0.3.34).
307
+ */
308
+ if (startTime.clockSource === 'none') {
309
+ into.push(
310
+ createDiagnostic({
311
+ code: 'STARTTIME_UNPARSEABLE',
312
+ message:
313
+ `the starttime field is ${JSON.stringify(trimEdfField(header.raw.startTime))}, which ` +
314
+ 'is not a clock time in hh.mm.ss form with hour 00..23, minute 00..59 and second ' +
315
+ '00..59. EDF specification, header record bytes 176-183. Next: startTime.clock reports ' +
316
+ '00:00:00 because the type admits no absent clock — startTime.clockSource is "none" ' +
317
+ 'and formatStartTimeNaive() has nothing to return. The calendar date and every elapsed ' +
318
+ 'time in the file are unaffected.',
319
+ field: 'startTime',
320
+ byteOffset: 176,
321
+ byteLength: 8,
322
+ raw: header.raw.startTime,
323
+ expected: 'hh.mm.ss',
324
+ actual: trimEdfField(header.raw.startTime),
325
+ specReference: 'EDF specification, header record bytes 176-183',
326
+ }),
327
+ );
328
+ }
329
+
294
330
  const headerDate = startTime.headerDate;
295
331
  const recordingIdDate = startTime.recordingIdDate;
296
332
  if (
@@ -432,14 +468,27 @@ function reportStructure(
432
468
  into: EdfDiagnostic[],
433
469
  ): void {
434
470
  if (header.continuity === 'continuous' && segmentCount > 1) {
471
+ // Partitioned by sign, the way `edfcore gaps` was in 0.3.3. An overlap travels in this array
472
+ // with a NEGATIVE duration (0.2.69), so counting every entry as a gap told a reader that a
473
+ // file missing no data at all had one — while the RECORD_ONSET_SPACING_VIOLATION appended a
474
+ // few lines below correctly called the same boundary an overlap.
475
+ const holes = gaps.filter((gap) => gap.durationTicks > 0n).length;
476
+ const overlaps = gaps.length - holes;
477
+ const between =
478
+ overlaps === 0
479
+ ? `${holes} gap(s) between them`
480
+ : holes === 0
481
+ ? `${overlaps} overlap(s) between them`
482
+ : `${holes} gap(s) and ${overlaps} overlap(s) between them`;
435
483
  into.push(
436
484
  createDiagnostic({
437
485
  code: 'DISCONTINUITY_IN_CONTINUOUS_FILE',
438
486
  message:
439
487
  `the reserved field marks this file continuous, but its record onsets fall into ` +
440
- `${segmentCount} separate segments with ${gaps.length} gap(s) between them. Rule: in a ` +
488
+ `${segmentCount} separate segments with ${between}. Rule: in a ` +
441
489
  'continuous file every record onset is startOffset + recordIndex * recordDuration; a ' +
442
- 'recording with gaps is what EDF+D exists for. Next: treat the file as discontinuous ' +
490
+ 'recording with gaps is what EDF+D exists for, and an overlap is sanctioned by ' +
491
+ 'neither. Next: treat the file as discontinuous — ' +
443
492
  'readWindow() returns one chunk per contiguous run once you pass it a complete index, ' +
444
493
  'instead of crossing a gap silently.',
445
494
  field: 'timekeeping TAL',