edfcore 0.6.5 → 0.6.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cli-run.d.ts","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,QAAQ,CAAC,KAAK,EAAG,IAAI,CAAU;gBAEnB,OAAO,EAAE,MAAM;CAI5B;AAED,iDAAiD;AACjD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA4CD;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAkDvD;AAoCD;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAoQnE"}
1
+ {"version":3,"file":"cli-run.d.ts","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,QAAQ,CAAC,KAAK,EAAG,IAAI,CAAU;gBAEnB,OAAO,EAAE,MAAM;CAI5B;AAED,iDAAiD;AACjD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA4CD;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAkDvD;AAoCD;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAiTnE"}
package/dist/cli-run.js CHANGED
@@ -12,6 +12,7 @@ import { VERSION } from './constants.js';
12
12
  import { formatDiagnostics } from './diagnostics/format.js';
13
13
  import { formatHeader } from './format-header.js';
14
14
  import { formatValidationReport } from './format-report.js';
15
+ import { formatCalendarDate, formatClockTime } from './header/dates.js';
15
16
  import { byteSource } from './io/bytes.js';
16
17
  import { buildRecordIndex } from './record-index.js';
17
18
  import { openEdf, readAnnotations } from './recording.js';
@@ -369,11 +370,54 @@ export async function runCli(args, io) {
369
370
  recordCount: header.recordCount,
370
371
  recordDurationSeconds: header.recordDurationSeconds,
371
372
  spanSeconds: recording.timeline.spanSeconds,
372
- // Patient identification is opt-in here for the same reason it is in formatHeader:
373
- // the obvious thing to do with this output is pipe it somewhere.
374
- // `trimEdfField`, for the reason formatHeader uses it: `.trim()` leaves NUL padding
375
- // in place, and JSON.stringify escapes it into a run of `\u0000` in the value.
376
- ...(args.patient ? { patient: trimEdfField(header.patient.raw) } : {}),
373
+ /*
374
+ * The start, which this command was alone in not reporting. `header` prints it on its
375
+ * second line and needs no flag for it, `signals` is per-signal and `gaps` is about
376
+ * onsets, so the machine-readable output was the only one a script could not get the
377
+ * recording's date and time out of.
378
+ *
379
+ * That is worse than an omission, because of where the package sends people:
380
+ * DATE_CLIPPED_TO_1985_2084 fires on any file with a two-digit year and its Next:
381
+ * clause says to read the four-digit year the EDF+ recording identification spells
382
+ * out. `edfcore json` reported the diagnostic and not the field it points at.
383
+ *
384
+ * Both sources are named rather than resolved away. A date that came from the
385
+ * recording identification is the unambiguous one; a clock with `clockSource: 'none'`
386
+ * is a substituted midnight rather than a file that starts at midnight, and 0.3.17 is
387
+ * what happens when those two are one value. `null`, not an omitted key: JSON drops
388
+ * `undefined`, and a reader doing `.start.clock` should get the answer rather than
389
+ * nothing.
390
+ */
391
+ start: {
392
+ date: header.startTime.resolvedDate === undefined
393
+ ? null
394
+ : formatCalendarDate(header.startTime.resolvedDate),
395
+ dateSource: header.startTime.dateSource,
396
+ clock: header.startTime.clockSource === 'none'
397
+ ? null
398
+ : formatClockTime(header.startTime.clock),
399
+ clockSource: header.startTime.clockSource,
400
+ },
401
+ /*
402
+ * Identification is opt-in here for the same reason it is in `formatHeader`: the
403
+ * obvious thing to do with this output is pipe it somewhere.
404
+ *
405
+ * BOTH fields, on the one flag. `redaction()` above states the rule — the two must be
406
+ * gated together, by the same flag, in every command that prints either — and until
407
+ * 0.6.7 this command printed one of them. `header --patient` shows a `recording` line
408
+ * and `json --patient` did not, so the same flag meant two different things two
409
+ * commands apart, and the field holding the technician code, the equipment code and
410
+ * the only unambiguous startdate was unreachable from the machine-readable output.
411
+ *
412
+ * `trimEdfField`, for the reason formatHeader uses it: `.trim()` leaves NUL padding
413
+ * in place, and JSON.stringify escapes it into a run of `\u0000` in the value.
414
+ */
415
+ ...(args.patient
416
+ ? {
417
+ patient: trimEdfField(header.patient.raw),
418
+ recording: trimEdfField(header.recording.raw),
419
+ }
420
+ : {}),
377
421
  signals: header.signals.map((signal) => ({
378
422
  index: signal.index,
379
423
  label: signal.label,
@@ -1 +1 @@
1
- {"version":3,"file":"cli-run.js","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-run.js","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"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"}
@@ -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.5";
112
+ export declare const VERSION = "0.6.7";
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.5';
82
+ export const VERSION = '0.6.7';
83
83
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-header.d.ts","sourceRoot":"","sources":["../src/format-header.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,KAAK,EAAmB,SAAS,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAuClF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CA2HrF"}
1
+ {"version":3,"file":"format-header.d.ts","sourceRoot":"","sources":["../src/format-header.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,KAAK,EAAmB,SAAS,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAuClF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CA0HrF"}
@@ -14,7 +14,7 @@
14
14
  import { trimEdfField } from './bytes/latin1.js';
15
15
  import { TICKS_PER_SECOND } from './constants.js';
16
16
  import { summarizeDiagnostics } from './diagnostics/summary.js';
17
- import { formatCalendarDate } from './header/dates.js';
17
+ import { formatCalendarDate, formatClockTime } from './header/dates.js';
18
18
  import { pluralise } from './text/counted.js';
19
19
  import { printable } from './text/printable.js';
20
20
  /**
@@ -73,11 +73,11 @@ export function formatHeader(header, options) {
73
73
  // half has always honoured it. The clock half printed `00:00:00` for a starttime field that
74
74
  // failed its grammar — byte-identical to a file that genuinely started at midnight, which for a
75
75
  // sleep study is the most believable start there is (fixed in 0.3.17).
76
- const clock = start.clockSource === 'none'
77
- ? 'unknown'
78
- : `${String(start.clock.hour).padStart(2, '0')}:` +
79
- `${String(start.clock.minute).padStart(2, '0')}:` +
80
- `${String(start.clock.second).padStart(2, '0')}`;
76
+ // `formatClockTime`, not a second renderer, for the reason `formatDate` above gives about the
77
+ // date half: the private copy of THAT one padded the year differently and printed `985-04-24`
78
+ // here against `0985-04-24` eight lines below. This copy agreed with the shared one on every
79
+ // input, which is the state the date copy was in until it did not (0.6.6).
80
+ const clock = start.clockSource === 'none' ? 'unknown' : formatClockTime(start.clock);
81
81
  lines.push(`start ${formatDate(start.resolvedDate)} ${clock} (local, no timezone)`);
82
82
  lines.push(`record ${header.recordDurationSeconds} s · ${header.recordByteLength} bytes · ` +
83
83
  `${header.bytesPerSample} bytes/sample`);
@@ -1 +1 @@
1
- {"version":3,"file":"format-header.js","sourceRoot":"","sources":["../src/format-header.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-header.js","sourceRoot":"","sources":["../src/format-header.ts"],"names":[],"mappings":"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"}
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,49 @@ 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.7
10
+
11
+ - **Fixed** `edfcore json --patient` reporting one identification field where every other command
12
+ reports two. The rule is `cli-run.ts`'s own, written above the helper that implements it: the two
13
+ must be gated together, by the same flag, in every command that prints either. `header --patient`
14
+ shows a `recording` line beside the `patient` line; `json --patient` showed `patient` alone.
15
+ - So the same flag meant two different things two commands apart, and the field carrying the
16
+ technician code, the equipment code and the only unambiguous startdate could not be reached from
17
+ the machine-readable output at all. The direction of the mistake is the safe one — nothing
18
+ leaked — which is why nothing found it.
19
+ - `one-flag-two-fields.test.ts` checks both directions over a file whose identification fields are
20
+ populated and non-conformant, so every command has a diagnostic quoting them as well as a field
21
+ holding them: without the flag neither string appears in any of the six commands' output, and
22
+ with it the two commands that report identification report both fields.
23
+ - The docs said "patient identification", which named the EDF field rather than what the flag does.
24
+ They now say both.
25
+
26
+ ## 0.6.6
27
+
28
+ - **Added** `start` to `edfcore json`: the resolved date and clock, each beside the field they came
29
+ from. It was the only command a script could not get the recording's date and time out of —
30
+ `header` prints them on its second line and needs no flag, `signals` is per-signal, `gaps` is
31
+ about onsets, and the machine-readable output had the geometry, the signals and the diagnostic
32
+ codes and no start.
33
+ - The gap was worse than an omission because of where the package sends people. Every file with a
34
+ conformant two-digit year earns `DATE_CLIPPED_TO_1985_2084`, whose `Next:` clause says to read
35
+ the four-digit year the EDF+ recording identification spells out. `edfcore json` reported that
36
+ code and not the field it points at, so the advice could be read from the output and not acted
37
+ on from it.
38
+ - `dateSource` and `clockSource` are reported rather than resolved away, for the reason 0.3.17
39
+ gives: a clock the file did not state is a substituted midnight, midnight is an entirely
40
+ believable start for a sleep study, and without the source those two are one value. Both are
41
+ `null` rather than absent when there is nothing to report — JSON drops `undefined`, and
42
+ `.start.clock` should answer.
43
+ - `--patient` is untouched: the start is the recording's clock, not a person, and `header` has
44
+ always printed it unflagged.
45
+ - **Fixed** `formatHeader` carrying its own clock renderer. `formatClockTime` has been in
46
+ `header/dates.ts` since the clock had a type; the copy in the formatter agreed with it on every
47
+ input, which is exactly the state the DATE half was in until a year below 1000 printed
48
+ `985-04-24` on the start line and `0985-04-24` in a diagnostic eight lines below it (0.3.110).
49
+ Both commands render through the one function now, and `json-reports-the-start.test.ts` checks
50
+ they agree on every shape in the matrix.
51
+
9
52
  ## 0.6.5
10
53
 
11
54
  - **Changed** thirteen lines that hedged a plural with `(s)` to say the number's own plural:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.6.5",
3
+ "version": "0.6.7",
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/cli-run.ts CHANGED
@@ -13,6 +13,7 @@ import { VERSION } from './constants.js';
13
13
  import { formatDiagnostics } from './diagnostics/format.js';
14
14
  import { formatHeader } from './format-header.js';
15
15
  import { formatValidationReport } from './format-report.js';
16
+ import { formatCalendarDate, formatClockTime } from './header/dates.js';
16
17
  import { byteSource } from './io/bytes.js';
17
18
  import { buildRecordIndex } from './record-index.js';
18
19
  import { openEdf, readAnnotations } from './recording.js';
@@ -433,11 +434,56 @@ export async function runCli(args: Args, io: CliIo): Promise<number> {
433
434
  recordCount: header.recordCount,
434
435
  recordDurationSeconds: header.recordDurationSeconds,
435
436
  spanSeconds: recording.timeline.spanSeconds,
436
- // Patient identification is opt-in here for the same reason it is in formatHeader:
437
- // the obvious thing to do with this output is pipe it somewhere.
438
- // `trimEdfField`, for the reason formatHeader uses it: `.trim()` leaves NUL padding
439
- // in place, and JSON.stringify escapes it into a run of `\u0000` in the value.
440
- ...(args.patient ? { patient: trimEdfField(header.patient.raw) } : {}),
437
+ /*
438
+ * The start, which this command was alone in not reporting. `header` prints it on its
439
+ * second line and needs no flag for it, `signals` is per-signal and `gaps` is about
440
+ * onsets, so the machine-readable output was the only one a script could not get the
441
+ * recording's date and time out of.
442
+ *
443
+ * That is worse than an omission, because of where the package sends people:
444
+ * DATE_CLIPPED_TO_1985_2084 fires on any file with a two-digit year and its Next:
445
+ * clause says to read the four-digit year the EDF+ recording identification spells
446
+ * out. `edfcore json` reported the diagnostic and not the field it points at.
447
+ *
448
+ * Both sources are named rather than resolved away. A date that came from the
449
+ * recording identification is the unambiguous one; a clock with `clockSource: 'none'`
450
+ * is a substituted midnight rather than a file that starts at midnight, and 0.3.17 is
451
+ * what happens when those two are one value. `null`, not an omitted key: JSON drops
452
+ * `undefined`, and a reader doing `.start.clock` should get the answer rather than
453
+ * nothing.
454
+ */
455
+ start: {
456
+ date:
457
+ header.startTime.resolvedDate === undefined
458
+ ? null
459
+ : formatCalendarDate(header.startTime.resolvedDate),
460
+ dateSource: header.startTime.dateSource,
461
+ clock:
462
+ header.startTime.clockSource === 'none'
463
+ ? null
464
+ : formatClockTime(header.startTime.clock),
465
+ clockSource: header.startTime.clockSource,
466
+ },
467
+ /*
468
+ * Identification is opt-in here for the same reason it is in `formatHeader`: the
469
+ * obvious thing to do with this output is pipe it somewhere.
470
+ *
471
+ * BOTH fields, on the one flag. `redaction()` above states the rule — the two must be
472
+ * gated together, by the same flag, in every command that prints either — and until
473
+ * 0.6.7 this command printed one of them. `header --patient` shows a `recording` line
474
+ * and `json --patient` did not, so the same flag meant two different things two
475
+ * commands apart, and the field holding the technician code, the equipment code and
476
+ * the only unambiguous startdate was unreachable from the machine-readable output.
477
+ *
478
+ * `trimEdfField`, for the reason formatHeader uses it: `.trim()` leaves NUL padding
479
+ * in place, and JSON.stringify escapes it into a run of `\u0000` in the value.
480
+ */
481
+ ...(args.patient
482
+ ? {
483
+ patient: trimEdfField(header.patient.raw),
484
+ recording: trimEdfField(header.recording.raw),
485
+ }
486
+ : {}),
441
487
  signals: header.signals.map((signal) => ({
442
488
  index: signal.index,
443
489
  label: signal.label,
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.5';
96
+ export const VERSION = '0.6.7';
@@ -15,7 +15,7 @@
15
15
  import { trimEdfField } from './bytes/latin1.js';
16
16
  import { TICKS_PER_SECOND } from './constants.js';
17
17
  import { summarizeDiagnostics } from './diagnostics/summary.js';
18
- import { formatCalendarDate } from './header/dates.js';
18
+ import { formatCalendarDate, formatClockTime } from './header/dates.js';
19
19
  import { pluralise } from './text/counted.js';
20
20
  import { printable } from './text/printable.js';
21
21
  import type { EdfCalendarDate, EdfHeader, FormatHeaderOptions } from './types.js';
@@ -81,12 +81,11 @@ export function formatHeader(header: EdfHeader, options?: FormatHeaderOptions):
81
81
  // half has always honoured it. The clock half printed `00:00:00` for a starttime field that
82
82
  // failed its grammar — byte-identical to a file that genuinely started at midnight, which for a
83
83
  // sleep study is the most believable start there is (fixed in 0.3.17).
84
- const clock =
85
- start.clockSource === 'none'
86
- ? 'unknown'
87
- : `${String(start.clock.hour).padStart(2, '0')}:` +
88
- `${String(start.clock.minute).padStart(2, '0')}:` +
89
- `${String(start.clock.second).padStart(2, '0')}`;
84
+ // `formatClockTime`, not a second renderer, for the reason `formatDate` above gives about the
85
+ // date half: the private copy of THAT one padded the year differently and printed `985-04-24`
86
+ // here against `0985-04-24` eight lines below. This copy agreed with the shared one on every
87
+ // input, which is the state the date copy was in until it did not (0.6.6).
88
+ const clock = start.clockSource === 'none' ? 'unknown' : formatClockTime(start.clock);
90
89
  lines.push(`start ${formatDate(start.resolvedDate)} ${clock} (local, no timezone)`);
91
90
  lines.push(
92
91
  `record ${header.recordDurationSeconds} s · ${header.recordByteLength} bytes · ` +