edfcore 0.6.287 → 0.6.288
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/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/recording.d.ts.map +1 -1
- package/dist/recording.js +21 -1
- package/dist/recording.js.map +1 -1
- package/docs/CHANGELOG.md +18 -0
- package/package.json +1 -1
- package/src/constants.ts +1 -1
- package/src/recording.ts +21 -1
package/dist/constants.d.ts
CHANGED
|
@@ -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.
|
|
112
|
+
export declare const VERSION = "0.6.288";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/dist/recording.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../src/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAStD,OAAO,KAAK,EACV,UAAU,EACV,wBAAwB,EACxB,oBAAoB,EACpB,QAAQ,EAER,MAAM,EACN,SAAS,EACT,cAAc,EACd,YAAY,EACZ,SAAS,EAET,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAM9F;AAqDD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAeb,WAAW,SAAgE,GAC1E,IAAI,CA+DN;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,IAAI,YAAY,CA4CnC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI,CAQhE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB,CAgE/F;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,SAAS,SAAS,EAAE,CAmCtB;AA0CD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQxF;AAoFD,kGAAkG;AAClG,wBAAsB,WAAW,CAC/B,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,QAAQ,CAAC,CAInB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../src/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAStD,OAAO,KAAK,EACV,UAAU,EACV,wBAAwB,EACxB,oBAAoB,EACpB,QAAQ,EAER,MAAM,EACN,SAAS,EACT,cAAc,EACd,YAAY,EACZ,SAAS,EAET,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAM9F;AAqDD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAeb,WAAW,SAAgE,GAC1E,IAAI,CA+DN;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,IAAI,YAAY,CA4CnC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI,CAQhE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB,CAgE/F;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,SAAS,SAAS,EAAE,CAmCtB;AA0CD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQxF;AAoFD,kGAAkG;AAClG,wBAAsB,WAAW,CAC/B,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,QAAQ,CAAC,CAInB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAiD9B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,wBAAwB,GAAG,WAAW,GAC/C,OAAO,CAAC,oBAAoB,CAAC,CAW/B"}
|
package/dist/recording.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
import { decodeDigitalCounted } from './decode/digital.js';
|
|
26
26
|
import { EdfChannelNotFoundError } from './errors.js';
|
|
27
27
|
import { readHeader, readRecordBytes } from './io/read.js';
|
|
28
|
-
import { assertByteSource } from './io/source.js';
|
|
28
|
+
import { assertByteSource, assertReadOptions } from './io/source.js';
|
|
29
29
|
import { buildTimeline } from './record-index.js';
|
|
30
30
|
import { decodeAnnotations } from './tal/annotations.js';
|
|
31
31
|
import { ticksToSeconds } from './tal/ticks.js';
|
|
@@ -523,6 +523,26 @@ export async function readWindow(recording, selection, options) {
|
|
|
523
523
|
*/
|
|
524
524
|
assertRecording(recording, 'readWindow');
|
|
525
525
|
assertSelection(selection, 'readWindow', '{ signalIndices, startSeconds, durationSeconds }');
|
|
526
|
+
/*
|
|
527
|
+
* The OPTIONS, which the paragraph above left out.
|
|
528
|
+
*
|
|
529
|
+
* It argues for the selection and ends "a caller mistake is a caller mistake wherever the window
|
|
530
|
+
* lands". The third argument was not covered by it: `assertReadOptions` runs inside the read, so
|
|
531
|
+
* a window that resolves to no records — past the end, entirely inside an EDF+D gap, of zero
|
|
532
|
+
* duration — never reached it and `[]` came back with the options unexamined.
|
|
533
|
+
*
|
|
534
|
+
* `stream.ts` closed this for itself in 0.6.166 and has the sentence for it: "An abort that was
|
|
535
|
+
* never wired up and a window with nothing in it both end as a stream that yielded nothing." That
|
|
536
|
+
* module exists to issue the read `readWindow` issues, so the guard it added up front belongs
|
|
537
|
+
* here too — and `readWindow(recording, selection, controller.signal)` is the spelling it names,
|
|
538
|
+
* an `AbortSignal` where the options belong, which `typeof options === 'object'` cannot see.
|
|
539
|
+
*
|
|
540
|
+
* The SHAPE only. An already-aborted signal passed correctly still does not fire on an empty
|
|
541
|
+
* window, which `aborted-before-it-starts.test.ts` documents deliberately — "a call that reads
|
|
542
|
+
* nothing has nothing to abort" — and `assertReadOptions` reads `.aborted` to recognise a signal
|
|
543
|
+
* handed over as the options, never to poll one (0.6.288).
|
|
544
|
+
*/
|
|
545
|
+
assertReadOptions(options);
|
|
526
546
|
resolveSignals(recording.header, selection.signalIndices);
|
|
527
547
|
const ranges = resolveTimeWindow(recording.timeline, recording.index, selection.startSeconds, selection.durationSeconds);
|
|
528
548
|
const chunks = [];
|
package/dist/recording.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording.js","sourceRoot":"","sources":["../src/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"recording.js","sourceRoot":"","sources":["../src/recording.ts"],"names":[],"mappings":"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"}
|
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.6.288
|
|
10
|
+
|
|
11
|
+
- **Fixed** `readWindow` returning `[]` without ever examining its read options, for a window that
|
|
12
|
+
resolves to no records — past the end of the recording, entirely inside an EDF+D gap, or of zero or
|
|
13
|
+
negative duration. `[]` is this function's documented answer for exactly those windows, so a wrong
|
|
14
|
+
third argument was indistinguishable from the right one.
|
|
15
|
+
- `assertReadOptions` ran inside the read, and those windows issue none. The spelling that matters is
|
|
16
|
+
`readWindow(recording, selection, controller.signal)` — an `AbortSignal` where the options belong,
|
|
17
|
+
which the bare-value guards cannot see because `typeof options === 'object'` is true of one. The
|
|
18
|
+
read it was handed ran uncancellable, and on an empty window nothing was said at all.
|
|
19
|
+
- The function's own docblock already made this argument for the selection and ends "a caller mistake
|
|
20
|
+
is a caller mistake wherever the window lands". The third argument was not covered by it.
|
|
21
|
+
- `stream.ts` closed the same hole for itself in 0.6.166 — "an abort that was never wired up and a
|
|
22
|
+
window with nothing in it both end as a stream that yielded nothing" — and that module exists to
|
|
23
|
+
issue the read this one issues. The two now give the same refusal for the same argument.
|
|
24
|
+
- The shape only. An already-aborted signal passed correctly still does not fire on a window that
|
|
25
|
+
reads nothing, which `aborted-before-it-starts.test.ts` documents deliberately.
|
|
26
|
+
|
|
9
27
|
## 0.6.287
|
|
10
28
|
|
|
11
29
|
- **Fixed** a finite time bound escaping as V8's "The number Infinity cannot be converted to a BigInt
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED
package/src/recording.ts
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
import { decodeDigitalCounted } from './decode/digital.js';
|
|
27
27
|
import { EdfChannelNotFoundError } from './errors.js';
|
|
28
28
|
import { readHeader, readRecordBytes } from './io/read.js';
|
|
29
|
-
import { assertByteSource } from './io/source.js';
|
|
29
|
+
import { assertByteSource, assertReadOptions } from './io/source.js';
|
|
30
30
|
import { buildTimeline } from './record-index.js';
|
|
31
31
|
import { decodeAnnotations } from './tal/annotations.js';
|
|
32
32
|
import { ticksToSeconds } from './tal/ticks.js';
|
|
@@ -611,6 +611,26 @@ export async function readWindow(
|
|
|
611
611
|
*/
|
|
612
612
|
assertRecording(recording, 'readWindow');
|
|
613
613
|
assertSelection(selection, 'readWindow', '{ signalIndices, startSeconds, durationSeconds }');
|
|
614
|
+
/*
|
|
615
|
+
* The OPTIONS, which the paragraph above left out.
|
|
616
|
+
*
|
|
617
|
+
* It argues for the selection and ends "a caller mistake is a caller mistake wherever the window
|
|
618
|
+
* lands". The third argument was not covered by it: `assertReadOptions` runs inside the read, so
|
|
619
|
+
* a window that resolves to no records — past the end, entirely inside an EDF+D gap, of zero
|
|
620
|
+
* duration — never reached it and `[]` came back with the options unexamined.
|
|
621
|
+
*
|
|
622
|
+
* `stream.ts` closed this for itself in 0.6.166 and has the sentence for it: "An abort that was
|
|
623
|
+
* never wired up and a window with nothing in it both end as a stream that yielded nothing." That
|
|
624
|
+
* module exists to issue the read `readWindow` issues, so the guard it added up front belongs
|
|
625
|
+
* here too — and `readWindow(recording, selection, controller.signal)` is the spelling it names,
|
|
626
|
+
* an `AbortSignal` where the options belong, which `typeof options === 'object'` cannot see.
|
|
627
|
+
*
|
|
628
|
+
* The SHAPE only. An already-aborted signal passed correctly still does not fire on an empty
|
|
629
|
+
* window, which `aborted-before-it-starts.test.ts` documents deliberately — "a call that reads
|
|
630
|
+
* nothing has nothing to abort" — and `assertReadOptions` reads `.aborted` to recognise a signal
|
|
631
|
+
* handed over as the options, never to poll one (0.6.288).
|
|
632
|
+
*/
|
|
633
|
+
assertReadOptions(options);
|
|
614
634
|
resolveSignals(recording.header, selection.signalIndices);
|
|
615
635
|
|
|
616
636
|
const ranges = resolveTimeWindow(
|