edfcore 0.3.58 → 0.3.59
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 +16 -0
- package/dist/chunks.d.ts.map +1 -1
- package/dist/chunks.js +19 -5
- package/dist/chunks.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/package.json +1 -1
- package/src/chunks.ts +19 -5
- package/src/constants.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,22 @@ 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.59
|
|
10
|
+
|
|
11
|
+
- **Fixed** `mergeChunks`' exact-tick refusal calling an overlap "a discontinuity of **-0.2** s"
|
|
12
|
+
that "is a gap in TIME" — the fourth site of the defect 0.3.33 and 0.3.41 swept, forty lines below
|
|
13
|
+
the third, in the same function.
|
|
14
|
+
- `assertJoinable` has two refusal paths. The one on `next.precededByGap` was taught to branch on
|
|
15
|
+
the sign in 0.3.41. The tick comparison beside it was not — and it is the path an overlap
|
|
16
|
+
actually reaches after a bare `openEdf`, because a **probed** index reports no gaps at all, so
|
|
17
|
+
`precededByGap` is `undefined` and the branch that knows the difference never runs.
|
|
18
|
+
- It now says "an overlap of 0.2 s ... the records on either side of the join both claim that
|
|
19
|
+
time", the wording 0.3.41 settled on, and reports a positive magnitude. A gap of negative
|
|
20
|
+
duration is not a thing.
|
|
21
|
+
- The gap wording is unchanged, byte for byte, so nothing that reads the existing message moves.
|
|
22
|
+
The new test asserts on the tick path specifically, with `precededByGap` checked to be `undefined`
|
|
23
|
+
first — otherwise it would be testing the branch that was already right.
|
|
24
|
+
|
|
9
25
|
## 0.3.58
|
|
10
26
|
|
|
11
27
|
- **Fixed** the `EdfAnnotation` table in `api-types.md`, which put `onsetTicks` on the wrong axis
|
package/dist/chunks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks.d.ts","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAiC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"chunks.d.ts","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAiC,MAAM,YAAY,CAAC;AA4H1E;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,CA6EjE"}
|
package/dist/chunks.js
CHANGED
|
@@ -80,12 +80,26 @@ function assertJoinable(previous, next, index) {
|
|
|
80
80
|
const previousEndTicks = previous.startTicks + previous.durationTicks;
|
|
81
81
|
const nextStartTicks = next.startTicks;
|
|
82
82
|
if (previousEndTicks !== nextStartTicks) {
|
|
83
|
-
|
|
83
|
+
// Branched on the SIGN, like the `precededByGap` path above. A negative difference is an
|
|
84
|
+
// overlap, not a gap, and this path is the one that actually fires for an overlap after
|
|
85
|
+
// `openEdf`: a probed index reports no gaps at all, so `precededByGap` is `undefined` and the
|
|
86
|
+
// branch that was taught the distinction in 0.3.41 never runs. It printed "a discontinuity of
|
|
87
|
+
// -0.2 s ... this is a gap in TIME", which names the wrong thing twice — a fourth site of the
|
|
88
|
+
// defect 0.3.33 and 0.3.41 swept, forty lines below the third (fixed in 0.3.59).
|
|
89
|
+
const deltaTicks = nextStartTicks - previousEndTicks;
|
|
90
|
+
const overlapping = deltaTicks < 0n;
|
|
91
|
+
const magnitude = ticksToSeconds(overlapping ? -deltaTicks : deltaTicks);
|
|
84
92
|
throw new RangeError(`mergeChunks: chunk ${index} starts at ${next.startSeconds} s, but the chunk before it ends ` +
|
|
85
|
-
`at ${ticksToSeconds(previousEndTicks)} s —
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
93
|
+
`at ${ticksToSeconds(previousEndTicks)} s — ` +
|
|
94
|
+
(overlapping
|
|
95
|
+
? `an overlap of ${magnitude} s. The two are record-adjacent, so the records on either ` +
|
|
96
|
+
'side of the join both claim that time and the record numbers cannot show it. ' +
|
|
97
|
+
'Concatenating them would store it twice and date every sample after the join late ' +
|
|
98
|
+
'by it.'
|
|
99
|
+
: `a discontinuity of ${magnitude} s. The two are record-adjacent, so this is a gap in ` +
|
|
100
|
+
'TIME that the record numbers cannot show. Concatenating them would date every ' +
|
|
101
|
+
'sample after the join wrong by that much.') +
|
|
102
|
+
' Either the index was never scanned, or these chunks came from separate reads. Next: ' +
|
|
89
103
|
'await buildRecordIndex(recording) and merge each contiguous run separately.');
|
|
90
104
|
}
|
|
91
105
|
if (next.signals.length !== previous.signals.length) {
|
package/dist/chunks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks.js","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,mGAAmG;AACnG,SAAS,EAAE,CAAC,MAA2B,EAAE,KAAa;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,UAAU,CAAC,4BAA4B,KAAK,GAAG,CAAC,CAAC;IACpF,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,cAAc,CAAC,QAAkB,EAAE,IAAc,EAAE,KAAa;IACvE,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACrC,+FAA+F;QAC/F,4FAA4F;QAC5F,yFAAyF;QACzF,6FAA6F;QAC7F,qEAAqE;QACrE,EAAE;QACF,+FAA+F;QAC/F,yFAAyF;QACzF,iEAAiE;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC;QAC3C,MAAM,IAAI,UAAU,CAClB,WAAW;YACT,CAAC,CAAC,sBAAsB,KAAK,iCAAiC,CAAC,GAAG,CAAC,eAAe,OAAO;gBACrF,wFAAwF;gBACxF,wFAAwF;gBACxF,iBAAiB;YACrB,CAAC,CAAC,sBAAsB,KAAK,4BAA4B,GAAG,CAAC,eAAe,MAAM;gBAC9E,oFAAoF;gBACpF,oFAAoF;gBACpF,yDAAyD,CAChE,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;IACtE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QACzC,MAAM,IAAI,UAAU,CAClB,sBAAsB,KAAK,qBAAqB,IAAI,CAAC,OAAO,CAAC,KAAK,yBAAyB;YACzF,cAAc,aAAa,yCAAyC,CACvE,CAAC;IACJ,CAAC;IAED,uFAAuF;IACvF,oEAAoE;IACpE,EAAE;IACF,4FAA4F;IAC5F,2FAA2F;IAC3F,8FAA8F;IAC9F,0EAA0E;IAC1E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtE,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,IAAI,gBAAgB,KAAK,cAAc,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"chunks.js","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"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"}
|
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.3.
|
|
112
|
+
export declare const VERSION = "0.3.59";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/package.json
CHANGED
package/src/chunks.ts
CHANGED
|
@@ -89,13 +89,27 @@ function assertJoinable(previous: EdfChunk, next: EdfChunk, index: number): void
|
|
|
89
89
|
const previousEndTicks = previous.startTicks + previous.durationTicks;
|
|
90
90
|
const nextStartTicks = next.startTicks;
|
|
91
91
|
if (previousEndTicks !== nextStartTicks) {
|
|
92
|
-
|
|
92
|
+
// Branched on the SIGN, like the `precededByGap` path above. A negative difference is an
|
|
93
|
+
// overlap, not a gap, and this path is the one that actually fires for an overlap after
|
|
94
|
+
// `openEdf`: a probed index reports no gaps at all, so `precededByGap` is `undefined` and the
|
|
95
|
+
// branch that was taught the distinction in 0.3.41 never runs. It printed "a discontinuity of
|
|
96
|
+
// -0.2 s ... this is a gap in TIME", which names the wrong thing twice — a fourth site of the
|
|
97
|
+
// defect 0.3.33 and 0.3.41 swept, forty lines below the third (fixed in 0.3.59).
|
|
98
|
+
const deltaTicks = nextStartTicks - previousEndTicks;
|
|
99
|
+
const overlapping = deltaTicks < 0n;
|
|
100
|
+
const magnitude = ticksToSeconds(overlapping ? -deltaTicks : deltaTicks);
|
|
93
101
|
throw new RangeError(
|
|
94
102
|
`mergeChunks: chunk ${index} starts at ${next.startSeconds} s, but the chunk before it ends ` +
|
|
95
|
-
`at ${ticksToSeconds(previousEndTicks)} s —
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
103
|
+
`at ${ticksToSeconds(previousEndTicks)} s — ` +
|
|
104
|
+
(overlapping
|
|
105
|
+
? `an overlap of ${magnitude} s. The two are record-adjacent, so the records on either ` +
|
|
106
|
+
'side of the join both claim that time and the record numbers cannot show it. ' +
|
|
107
|
+
'Concatenating them would store it twice and date every sample after the join late ' +
|
|
108
|
+
'by it.'
|
|
109
|
+
: `a discontinuity of ${magnitude} s. The two are record-adjacent, so this is a gap in ` +
|
|
110
|
+
'TIME that the record numbers cannot show. Concatenating them would date every ' +
|
|
111
|
+
'sample after the join wrong by that much.') +
|
|
112
|
+
' Either the index was never scanned, or these chunks came from separate reads. Next: ' +
|
|
99
113
|
'await buildRecordIndex(recording) and merge each contiguous run separately.',
|
|
100
114
|
);
|
|
101
115
|
}
|
package/src/constants.ts
CHANGED