edfcore 0.6.193 → 0.6.195

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.6.193";
112
+ export declare const VERSION = "0.6.195";
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.6.193';
82
+ export const VERSION = '0.6.195';
83
83
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"physical.d.ts","sourceRoot":"","sources":["../../src/decode/physical.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAkB,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,KAAK,EAAqC,SAAS,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAiKvD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,eAAe,CAkBjB;AAuED;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAWlE;AA4ED,wBAAgB,UAAU,CACxB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAC1B,GAAG,CAAC,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,YAAY,CAed;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAcA;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,EACnB,GAAG,CAAC,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,CAwBZ"}
1
+ {"version":3,"file":"physical.d.ts","sourceRoot":"","sources":["../../src/decode/physical.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAkB,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,KAAK,EAAqC,SAAS,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAiKvD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,eAAe,CAkBjB;AAuED;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAWlE;AA4ED,wBAAgB,UAAU,CACxB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAC1B,GAAG,CAAC,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,YAAY,CAed;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAoCA;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,EACnB,GAAG,CAAC,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,CAwBZ"}
@@ -337,6 +337,26 @@ export function toPhysical(signal, digital, out, options) {
337
337
  */
338
338
  export function physicalRangeOf(signal) {
339
339
  assertSignal(signal, 'physicalRangeOf');
340
+ /*
341
+ * The ANNOTATIONS CHANNEL, whose physical fields describe nothing.
342
+ *
343
+ * `parseSignalHeaders` deliberately does not build a scale for it, and `describeScalingFailure`
344
+ * says why in its own words: those fields "describe nothing a caller may use", and checking them
345
+ * "would report a defect about a number nobody may use". `toPhysical` therefore throws an
346
+ * `EdfScalingError` for such a signal and says the same thing.
347
+ *
348
+ * This function never reads `scale`, so it never met that refusal. It read the two fields
349
+ * directly and returned `{ low: -1, high: 1 }` — the conventional pair a writer puts in an
350
+ * annotation signal's header, handed back as a measurement range. This docblock says the result
351
+ * "is what a fixed axis or a gain control should be built from", so a viewer builds a y-axis in
352
+ * units that do not exist for a channel holding text.
353
+ */
354
+ if (signal.kind === 'annotations') {
355
+ throw new RangeError(`physicalRangeOf(): signal ${signal.index} (${JSON.stringify(signal.label)}) is this file's ` +
356
+ 'annotations channel. Its physical fields describe nothing — no scale was ever built from ' +
357
+ 'them — so the pair it declares is not a range in any unit, and an axis drawn from it ' +
358
+ 'would be one. Next: pass a signal from header.dataSignalIndices.');
359
+ }
340
360
  const { physicalMinimum, physicalMaximum } = signal;
341
361
  if (!Number.isFinite(physicalMinimum) || !Number.isFinite(physicalMaximum)) {
342
362
  throw new RangeError(`signal ${signal.index} "${signal.label}" declares physical minimum ` +
@@ -1 +1 @@
1
- {"version":3,"file":"physical.js","sourceRoot":"","sources":["../../src/decode/physical.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"physical.js","sourceRoot":"","sources":["../../src/decode/physical.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"format-report.d.ts","sourceRoot":"","sources":["../src/format-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKnF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CAkJR;AAED,qFAAqF;AACrF,YAAY,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"format-report.d.ts","sourceRoot":"","sources":["../src/format-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKnF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CAoLR;AAED,qFAAqF;AACrF,YAAY,EAAE,SAAS,EAAE,CAAC"}
@@ -65,6 +65,37 @@ export function formatValidationReport(report, options) {
65
65
  'formatHeader(inspection.header).');
66
66
  }
67
67
  const lines = [];
68
+ /*
69
+ * The HEADER option, before a signal is taken out of it.
70
+ *
71
+ * It is the one field on these options that is an object, and the recording is what a caller
72
+ * holds — `formatValidationReport(report, { header: recording })` is one field short of the call
73
+ * above it, `validateRecording(recording)`. Nothing checked it: the first argument has been
74
+ * guarded since 0.6.113 and the options object since `assertOptions`, and the object inside them
75
+ * was not.
76
+ *
77
+ * It only shows up once the report has SIGNAL STATS, because that is the only block this names
78
+ * signals in — so a sweep with `scanSamples` off printed fine and the same call with it on threw
79
+ * V8's `Cannot read properties of undefined (reading '0')` from `header.signals[…]`, or, for a
80
+ * chunk, `text is not iterable` from `printable`. Whether it failed at all depended on how much
81
+ * of the file had been read.
82
+ *
83
+ * The option's whole job is the difference between `EEG Fpz-Cz` and `signal 0`, so it is also the
84
+ * one a caller adds last, to a call that already worked.
85
+ */
86
+ if (options?.header !== undefined) {
87
+ // Being an array is not the test; being an array of the RIGHT signals is — a chunk carries one
88
+ // too, and its entries have no `label` for a row to be named with. That is the rule 0.6.183 and
89
+ // 0.6.186 settled for the lookups and for `trimToWindow`.
90
+ const signals = options.header?.signals;
91
+ const named = Array.isArray(signals) &&
92
+ (signals.length === 0 || typeof signals[0]?.label === 'string');
93
+ if (!named) {
94
+ throw new RangeError('formatValidationReport(): options.header is not a header — nothing on it carries the ' +
95
+ 'labels this names the rows with, which is all this option does. Next: pass ' +
96
+ 'recording.header, or omit it and the rows read `signal 0`.');
97
+ }
98
+ }
68
99
  const header = options?.header;
69
100
  // Before anything is rendered, and outside the `diagnostics.length > 0` branch below. A report
70
101
  // that passes still has to report a misspelled `redactFields`: the typo belongs to the call, and
@@ -1 +1 @@
1
- {"version":3,"file":"format-report.js","sourceRoot":"","sources":["../src/format-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-report.js","sourceRoot":"","sources":["../src/format-report.ts"],"names":[],"mappings":"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"}
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,31 @@ 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.6.195
10
+
11
+ - **Fixed** `formatValidationReport`'s `header` option going unchecked. It is the one field on these
12
+ options that is an object, and the recording is what a caller holds — the line above is
13
+ `validateRecording(recording)` — so `{ header: recording }` is one field short of it. The first
14
+ argument has been guarded since 0.6.113 and the options object since `assertOptions`; the object
15
+ inside them was not.
16
+ - It only failed once the report had signal statistics, because that is the only block this names
17
+ signals in. The same call printed fine with `scanSamples` off and threw V8's `Cannot read
18
+ properties of undefined (reading '0')` with it on — so whether the mistake surfaced depended on how
19
+ much of the file had been read.
20
+ - Being an array is not the test; carrying labels is. A chunk has a `signals` array too, and its
21
+ entries have no `label` for a row to be named with — the rule 0.6.183 and 0.6.186 settled.
22
+
23
+ ## 0.6.194
24
+
25
+ - **Fixed** `physicalRangeOf` returning a range for the annotations channel. It returned
26
+ `{ low: -1, high: 1 }` — the conventional pair a writer puts in an annotation signal's header —
27
+ as if it were a measurement range, and this function's own docblock says the result "is what a
28
+ fixed axis or a gain control should be built from". So a viewer drew a y-axis in units that do not
29
+ exist, for a channel that holds text.
30
+ - The package is explicit about those two fields everywhere else: `parseSignalHeaders` does not build
31
+ a scale from them, and `describeScalingFailure` says they "describe nothing a caller may use". This
32
+ function never reads `scale`, so it never met the refusal `toPhysical` gives for the same signal.
33
+
9
34
  ## 0.6.193
10
35
 
11
36
  - **Fixed** `scanSamples` given as text skipping the samples and reporting a verdict anyway. It is
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.6.193",
3
+ "version": "0.6.195",
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.6.193';
96
+ export const VERSION = '0.6.195';
@@ -441,6 +441,28 @@ export function physicalRangeOf(signal: EdfSignal): {
441
441
  readonly high: number;
442
442
  } {
443
443
  assertSignal(signal, 'physicalRangeOf');
444
+ /*
445
+ * The ANNOTATIONS CHANNEL, whose physical fields describe nothing.
446
+ *
447
+ * `parseSignalHeaders` deliberately does not build a scale for it, and `describeScalingFailure`
448
+ * says why in its own words: those fields "describe nothing a caller may use", and checking them
449
+ * "would report a defect about a number nobody may use". `toPhysical` therefore throws an
450
+ * `EdfScalingError` for such a signal and says the same thing.
451
+ *
452
+ * This function never reads `scale`, so it never met that refusal. It read the two fields
453
+ * directly and returned `{ low: -1, high: 1 }` — the conventional pair a writer puts in an
454
+ * annotation signal's header, handed back as a measurement range. This docblock says the result
455
+ * "is what a fixed axis or a gain control should be built from", so a viewer builds a y-axis in
456
+ * units that do not exist for a channel holding text.
457
+ */
458
+ if (signal.kind === 'annotations') {
459
+ throw new RangeError(
460
+ `physicalRangeOf(): signal ${signal.index} (${JSON.stringify(signal.label)}) is this file's ` +
461
+ 'annotations channel. Its physical fields describe nothing — no scale was ever built from ' +
462
+ 'them — so the pair it declares is not a range in any unit, and an axis drawn from it ' +
463
+ 'would be one. Next: pass a signal from header.dataSignalIndices.',
464
+ );
465
+ }
444
466
  const { physicalMinimum, physicalMaximum } = signal;
445
467
  if (!Number.isFinite(physicalMinimum) || !Number.isFinite(physicalMaximum)) {
446
468
  throw new RangeError(
@@ -76,6 +76,40 @@ export function formatValidationReport(
76
76
  );
77
77
  }
78
78
  const lines: string[] = [];
79
+ /*
80
+ * The HEADER option, before a signal is taken out of it.
81
+ *
82
+ * It is the one field on these options that is an object, and the recording is what a caller
83
+ * holds — `formatValidationReport(report, { header: recording })` is one field short of the call
84
+ * above it, `validateRecording(recording)`. Nothing checked it: the first argument has been
85
+ * guarded since 0.6.113 and the options object since `assertOptions`, and the object inside them
86
+ * was not.
87
+ *
88
+ * It only shows up once the report has SIGNAL STATS, because that is the only block this names
89
+ * signals in — so a sweep with `scanSamples` off printed fine and the same call with it on threw
90
+ * V8's `Cannot read properties of undefined (reading '0')` from `header.signals[…]`, or, for a
91
+ * chunk, `text is not iterable` from `printable`. Whether it failed at all depended on how much
92
+ * of the file had been read.
93
+ *
94
+ * The option's whole job is the difference between `EEG Fpz-Cz` and `signal 0`, so it is also the
95
+ * one a caller adds last, to a call that already worked.
96
+ */
97
+ if (options?.header !== undefined) {
98
+ // Being an array is not the test; being an array of the RIGHT signals is — a chunk carries one
99
+ // too, and its entries have no `label` for a row to be named with. That is the rule 0.6.183 and
100
+ // 0.6.186 settled for the lookups and for `trimToWindow`.
101
+ const signals = (options.header as EdfHeader | undefined)?.signals as unknown;
102
+ const named =
103
+ Array.isArray(signals) &&
104
+ (signals.length === 0 || typeof (signals[0] as { label?: unknown })?.label === 'string');
105
+ if (!named) {
106
+ throw new RangeError(
107
+ 'formatValidationReport(): options.header is not a header — nothing on it carries the ' +
108
+ 'labels this names the rows with, which is all this option does. Next: pass ' +
109
+ 'recording.header, or omit it and the rows read `signal 0`.',
110
+ );
111
+ }
112
+ }
79
113
  const header = options?.header;
80
114
 
81
115
  // Before anything is rendered, and outside the `diagnostics.length > 0` branch below. A report