edfcore 0.3.36 → 0.3.38
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 +32 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/io/http.d.ts.map +1 -1
- package/dist/io/http.js +19 -1
- package/dist/io/http.js.map +1 -1
- package/dist/recording.d.ts.map +1 -1
- package/dist/recording.js +20 -1
- package/dist/recording.js.map +1 -1
- package/package.json +1 -1
- package/src/constants.ts +1 -1
- package/src/io/http.ts +22 -1
- package/src/recording.ts +22 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,38 @@ 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.38
|
|
10
|
+
|
|
11
|
+
- **Fixed** a zero-record chunk contradicting the gap it carries. `readRecordBytes` explicitly
|
|
12
|
+
supports a zero-record range — *"A zero-record range issues no read at all"* — and with no
|
|
13
|
+
records there is no onset to observe, so `readChunk` fell back to the nominal grid. On an EDF+D
|
|
14
|
+
file `readRecords({ start: 3, count: 0 })` then reported `startSeconds` **3** while carrying a
|
|
15
|
+
`precededByGap` running **3..13 s**: one object claiming to begin at 3 s and to be preceded by a
|
|
16
|
+
gap that ends at 13 s, which is where record 3 truly begins.
|
|
17
|
+
- The nominal grid is now the last resort rather than the first. A scanned index knows where that
|
|
18
|
+
record is, and `gapBefore` already reads it from the same place, so consulting it costs nothing
|
|
19
|
+
and makes the two fields agree. A probed index still has nothing better to offer and the nominal
|
|
20
|
+
grid is still used — correctly, since on a file with no gap it is the right answer.
|
|
21
|
+
|
|
22
|
+
## 0.3.37
|
|
23
|
+
|
|
24
|
+
- **Fixed** `httpSource` telling a user to bypass their CDN when the server had behaved perfectly.
|
|
25
|
+
The 206 `Content-Range` guard (0.2.23) fires whenever the claimed range is not the requested one,
|
|
26
|
+
and that covers two different failures. A server that STARTED where it was asked to and stopped
|
|
27
|
+
because the resource ends there honoured the Range exactly — the bytes returned are the bytes
|
|
28
|
+
requested — and what is wrong is the LENGTH this source is working from: a stale or proxied HEAD
|
|
29
|
+
`Content-Length`, a caller-supplied `options.byteLength`, or a file replaced by a shorter one
|
|
30
|
+
mid-session.
|
|
31
|
+
- Both cases got the same message: *"its Content-Range says it sent bytes 990..999 — a different
|
|
32
|
+
part of the resource ... this is usually a cache or CDN keyed on the URL without the Range
|
|
33
|
+
header; bypass it"*. So the reader was sent to reconfigure a correctly-behaving CDN, **while the
|
|
34
|
+
resource's real size sat unread in the header of the response just rejected**.
|
|
35
|
+
- The two are now separate. A short tail says the server stopped at byte N because that is the end
|
|
36
|
+
of an M-byte resource, that this source was built for a different length, and points at
|
|
37
|
+
`options.byteLength` and the origin's `Content-Length`. The genuine wrong-region message is
|
|
38
|
+
unchanged, and both still refuse — reading past the end is still an error, and `receivedLength`
|
|
39
|
+
still carries the real count.
|
|
40
|
+
|
|
9
41
|
## 0.3.36
|
|
10
42
|
|
|
11
43
|
- **Fixed** `edfcore recording.edf` — forgetting the subcommand — reporting
|
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.38";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/dist/io/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/io/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAEV,UAAU,EAGV,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAkOrB,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/io/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAEV,UAAU,EAGV,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAkOrB,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAsLrB"}
|
package/dist/io/http.js
CHANGED
|
@@ -272,11 +272,29 @@ export async function httpSource(url, options) {
|
|
|
272
272
|
const claimed = rangeFromContentRange(headerOf(response, 'Content-Range'));
|
|
273
273
|
const expectedLast = offset + length - 1;
|
|
274
274
|
if (claimed !== undefined && (claimed.first !== offset || claimed.last !== expectedLast)) {
|
|
275
|
+
const received = claimed.last - claimed.first + 1;
|
|
276
|
+
// TWO different failures, and they were reported as one. A server that started where it
|
|
277
|
+
// was asked to and simply stopped because the resource ends there has behaved perfectly:
|
|
278
|
+
// the bytes ARE the requested bytes, and what is wrong is the LENGTH this source is
|
|
279
|
+
// working from — a stale HEAD `Content-Length`, a caller-supplied `options.byteLength`, or
|
|
280
|
+
// a file replaced by a shorter one mid-session. Telling that user to bypass a cache sends
|
|
281
|
+
// them to reconfigure a CDN that is behaving correctly, while the response just rejected
|
|
282
|
+
// carries the resource's real size in the header being read (fixed in 0.3.37).
|
|
283
|
+
if (claimed.first === offset) {
|
|
284
|
+
const total = totalFromContentRange(headerOf(response, 'Content-Range'));
|
|
285
|
+
const realSize = total === undefined ? 'the resource' : `a ${total}-byte resource`;
|
|
286
|
+
throw new EdfSourceError(`Reading bytes ${offset}..${expectedLast} of ${href}: the server started where it was ` +
|
|
287
|
+
`asked to and stopped at byte ${claimed.last}, because that is the end of ` +
|
|
288
|
+
`${realSize}. This source was built for ${byteLength} bytes, so the range it was ` +
|
|
289
|
+
'asked for does not exist. The Range header was honoured exactly; the length is ' +
|
|
290
|
+
'what is wrong. Next: drop options.byteLength and let edfcore probe for the size, ' +
|
|
291
|
+
"or check the origin's Content-Length — a stale or proxied HEAD is the usual cause.", { offset, requestedLength: length, receivedLength: received });
|
|
292
|
+
}
|
|
275
293
|
throw new EdfSourceError(`Reading bytes ${offset}..${expectedLast} of ${href}: the server answered 206 but its ` +
|
|
276
294
|
`Content-Range says it sent bytes ${claimed.first}..${claimed.last} — a different ` +
|
|
277
295
|
'part of the resource. Serving these as the bytes that were asked for would put the ' +
|
|
278
296
|
'wrong samples at the right timestamps. Next: this is usually a cache or CDN keyed on ' +
|
|
279
|
-
'the URL without the Range header; bypass it, or vary on Range.', { offset, requestedLength: length, receivedLength:
|
|
297
|
+
'the URL without the Range header; bypass it, or vary on Range.', { offset, requestedLength: length, receivedLength: received });
|
|
280
298
|
}
|
|
281
299
|
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
282
300
|
return assertExactRead(bytes, offset, length);
|
package/dist/io/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/io/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/io/http.ts"],"names":[],"mappings":"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"}
|
package/dist/recording.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../src/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAUH,OAAO,KAAK,EACV,UAAU,EACV,wBAAwB,EACxB,oBAAoB,EACpB,QAAQ,EAER,MAAM,EACN,SAAS,EACT,cAAc,EACd,YAAY,EACZ,SAAS,EACT,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,CAI9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,SAAS,SAAS,EAAE,CA2BtB;
|
|
1
|
+
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../src/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAUH,OAAO,KAAK,EACV,UAAU,EACV,wBAAwB,EACxB,oBAAoB,EACpB,QAAQ,EAER,MAAM,EACN,SAAS,EACT,cAAc,EACd,YAAY,EACZ,SAAS,EACT,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,CAI9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,SAAS,SAAS,EAAE,CA2BtB;AAaD;;;;;;;;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,CAEnB;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,CA2B9B;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,CAU/B"}
|
package/dist/recording.js
CHANGED
|
@@ -72,6 +72,16 @@ export function resolveSignals(header, signalIndices) {
|
|
|
72
72
|
}
|
|
73
73
|
return signals;
|
|
74
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* The header-axis onset of the segment that BEGINS at `recordStart`, when a scanned index knows.
|
|
77
|
+
*
|
|
78
|
+
* `undefined` for a probed index, and for a record that is not a segment boundary — in both cases
|
|
79
|
+
* nothing better than the nominal grid is available, which is what the caller falls back to.
|
|
80
|
+
*/
|
|
81
|
+
function segmentStartTicks(index, recordStart) {
|
|
82
|
+
const segment = index.segments?.find((candidate) => candidate.records.start === recordStart);
|
|
83
|
+
return segment?.startTicks;
|
|
84
|
+
}
|
|
75
85
|
/**
|
|
76
86
|
* The gap immediately before `recordStart`, when the index knows where the gaps are.
|
|
77
87
|
*
|
|
@@ -119,7 +129,16 @@ async function readChunk(recording, records, signalIndices, options) {
|
|
|
119
129
|
const onsets = annotations.recordOnsetTicks;
|
|
120
130
|
assertMonotonicOnsetArray(onsets, records.start);
|
|
121
131
|
const durationTicks = header.recordDurationTicks;
|
|
122
|
-
|
|
132
|
+
// The nominal grid is the last resort, and a ZERO-RECORD range reaches it every time: there is
|
|
133
|
+
// no onset to observe, because there are no records. On an EDF+D file that made the empty chunk
|
|
134
|
+
// contradict itself — `readRecords({ start: 3, count: 0 })` reported `startSeconds` 3 (the
|
|
135
|
+
// nominal grid) while carrying a `precededByGap` running 3..13 s, so one object claimed to
|
|
136
|
+
// start at 3 s and to be preceded by a gap ending at 13 s, where record 3 truly starts.
|
|
137
|
+
//
|
|
138
|
+
// A scanned index knows where that record is, and `gapBefore` below already reads it from the
|
|
139
|
+
// same place. Consulting it costs nothing and makes the two fields agree (fixed in 0.3.38).
|
|
140
|
+
const nominalFirstTicks = segmentStartTicks(index, records.start) ??
|
|
141
|
+
timeline.startOffsetTicks + BigInt(records.start) * durationTicks;
|
|
123
142
|
const firstOnsetTicks = onsets[0] ?? nominalFirstTicks;
|
|
124
143
|
const lastOnsetTicks = records.count > 0 ? (onsets[records.count - 1] ?? firstOnsetTicks) : firstOnsetTicks;
|
|
125
144
|
const startTicks = firstOnsetTicks - timeline.startOffsetTicks;
|
package/dist/recording.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording.js","sourceRoot":"","sources":["../src/recording.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"recording.js","sourceRoot":"","sources":["../src/recording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;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,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAmBrD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAkB,EAAE,OAAqB;IACrE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAiB,EACjB,aAAgC;IAEhC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,SAAS;QACpC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,uBAAuB,CAC/B,eAAe,WAAW,mBAAmB,MAAM,CAAC,OAAO,CAAC,MAAM,qBAAqB;gBACrF,mFAAmF;gBACnF,2BAA2B,EAC7B,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;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,UAAU,CAClB,UAAU,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B;gBACnF,kFAAkF;gBAClF,iFAAiF;gBACjF,+DAA+D,CAClE,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,KAAqB,EAAE,WAAmB;IACnE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;IAC7F,OAAO,OAAO,EAAE,UAAU,CAAC;AAC7B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB,EAAE,WAAmB;IAClE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACjC,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACnE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,WAAW;YAAE,OAAO,GAAG,CAAC;IAC7E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,SAAS,CACtB,SAAuB,EACvB,OAAoB,EACpB,aAAgC,EAChC,OAAqB;IAErB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IACtD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAErF,6FAA6F;IAC7F,0FAA0F;IAC1F,6FAA6F;IAC7F,+FAA+F;IAC/F,uFAAuF;IACvF,4FAA4F;IAC5F,4FAA4F;IAC5F,gEAAgE;IAChE,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAC5D,WAAW,EAAE,QAAQ,CAAC,gBAAgB;KACvC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC;IAC5C,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEjD,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC;IACjD,+FAA+F;IAC/F,gGAAgG;IAChG,2FAA2F;IAC3F,2FAA2F;IAC3F,wFAAwF;IACxF,EAAE;IACF,8FAA8F;IAC9F,4FAA4F;IAC5F,MAAM,iBAAiB,GACrB,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;QACvC,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;IACpE,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC;IACvD,MAAM,cAAc,GAClB,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IACvF,MAAM,UAAU,GAAG,eAAe,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAC/D,8FAA8F;IAC9F,yFAAyF;IACzF,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAEhD,MAAM,YAAY,GAAqB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/F,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,KAAK;YACzB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,gBAAgB,EAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB;YACzD,YAAY;YACZ,UAAU;YACV,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;SACvD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,YAAY;QACZ,UAAU;QACV,eAAe,EAAE,cAAc,CAAC,SAAS,CAAC;QAC1C,aAAa,EAAE,SAAS;QACxB,UAAU;QACV,UAAU,EAAE,KAAK,CAAC,MAAM;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QACpC,aAAa,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;QAC9C,WAAW,EAAE,WAAW,CAAC,WAAW;KACrC,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAuB,EACvB,SAA0B,EAC1B,OAAqB;IAErB,OAAO,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAuB,EACvB,SAA0B,EAC1B,OAAqB;IAErB;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,iBAAiB,CAC9B,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,eAAe,CAC1B,CAAC;IAEF,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAuB,EACvB,OAAoB,EACpB,OAAgD;IAEhD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1F,gGAAgG;IAChG,6FAA6F;IAC7F,+FAA+F;IAC/F,iGAAiG;IACjG,OAAO,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QACzD,gBAAgB,EAAE,SAAS,CAAC,QAAQ,CAAC,gBAAgB;QACrD,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED
package/src/io/http.ts
CHANGED
|
@@ -353,13 +353,34 @@ export async function httpSource(
|
|
|
353
353
|
const claimed = rangeFromContentRange(headerOf(response, 'Content-Range'));
|
|
354
354
|
const expectedLast = offset + length - 1;
|
|
355
355
|
if (claimed !== undefined && (claimed.first !== offset || claimed.last !== expectedLast)) {
|
|
356
|
+
const received = claimed.last - claimed.first + 1;
|
|
357
|
+
// TWO different failures, and they were reported as one. A server that started where it
|
|
358
|
+
// was asked to and simply stopped because the resource ends there has behaved perfectly:
|
|
359
|
+
// the bytes ARE the requested bytes, and what is wrong is the LENGTH this source is
|
|
360
|
+
// working from — a stale HEAD `Content-Length`, a caller-supplied `options.byteLength`, or
|
|
361
|
+
// a file replaced by a shorter one mid-session. Telling that user to bypass a cache sends
|
|
362
|
+
// them to reconfigure a CDN that is behaving correctly, while the response just rejected
|
|
363
|
+
// carries the resource's real size in the header being read (fixed in 0.3.37).
|
|
364
|
+
if (claimed.first === offset) {
|
|
365
|
+
const total = totalFromContentRange(headerOf(response, 'Content-Range'));
|
|
366
|
+
const realSize = total === undefined ? 'the resource' : `a ${total}-byte resource`;
|
|
367
|
+
throw new EdfSourceError(
|
|
368
|
+
`Reading bytes ${offset}..${expectedLast} of ${href}: the server started where it was ` +
|
|
369
|
+
`asked to and stopped at byte ${claimed.last}, because that is the end of ` +
|
|
370
|
+
`${realSize}. This source was built for ${byteLength} bytes, so the range it was ` +
|
|
371
|
+
'asked for does not exist. The Range header was honoured exactly; the length is ' +
|
|
372
|
+
'what is wrong. Next: drop options.byteLength and let edfcore probe for the size, ' +
|
|
373
|
+
"or check the origin's Content-Length — a stale or proxied HEAD is the usual cause.",
|
|
374
|
+
{ offset, requestedLength: length, receivedLength: received },
|
|
375
|
+
);
|
|
376
|
+
}
|
|
356
377
|
throw new EdfSourceError(
|
|
357
378
|
`Reading bytes ${offset}..${expectedLast} of ${href}: the server answered 206 but its ` +
|
|
358
379
|
`Content-Range says it sent bytes ${claimed.first}..${claimed.last} — a different ` +
|
|
359
380
|
'part of the resource. Serving these as the bytes that were asked for would put the ' +
|
|
360
381
|
'wrong samples at the right timestamps. Next: this is usually a cache or CDN keyed on ' +
|
|
361
382
|
'the URL without the Range header; bypass it, or vary on Range.',
|
|
362
|
-
{ offset, requestedLength: length, receivedLength:
|
|
383
|
+
{ offset, requestedLength: length, receivedLength: received },
|
|
363
384
|
);
|
|
364
385
|
}
|
|
365
386
|
const bytes = new Uint8Array(await response.arrayBuffer());
|
package/src/recording.ts
CHANGED
|
@@ -101,6 +101,17 @@ export function resolveSignals(
|
|
|
101
101
|
return signals;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
/**
|
|
105
|
+
* The header-axis onset of the segment that BEGINS at `recordStart`, when a scanned index knows.
|
|
106
|
+
*
|
|
107
|
+
* `undefined` for a probed index, and for a record that is not a segment boundary — in both cases
|
|
108
|
+
* nothing better than the nominal grid is available, which is what the caller falls back to.
|
|
109
|
+
*/
|
|
110
|
+
function segmentStartTicks(index: EdfRecordIndex, recordStart: number): bigint | undefined {
|
|
111
|
+
const segment = index.segments?.find((candidate) => candidate.records.start === recordStart);
|
|
112
|
+
return segment?.startTicks;
|
|
113
|
+
}
|
|
114
|
+
|
|
104
115
|
/**
|
|
105
116
|
* The gap immediately before `recordStart`, when the index knows where the gaps are.
|
|
106
117
|
*
|
|
@@ -155,7 +166,17 @@ async function readChunk(
|
|
|
155
166
|
assertMonotonicOnsetArray(onsets, records.start);
|
|
156
167
|
|
|
157
168
|
const durationTicks = header.recordDurationTicks;
|
|
158
|
-
|
|
169
|
+
// The nominal grid is the last resort, and a ZERO-RECORD range reaches it every time: there is
|
|
170
|
+
// no onset to observe, because there are no records. On an EDF+D file that made the empty chunk
|
|
171
|
+
// contradict itself — `readRecords({ start: 3, count: 0 })` reported `startSeconds` 3 (the
|
|
172
|
+
// nominal grid) while carrying a `precededByGap` running 3..13 s, so one object claimed to
|
|
173
|
+
// start at 3 s and to be preceded by a gap ending at 13 s, where record 3 truly starts.
|
|
174
|
+
//
|
|
175
|
+
// A scanned index knows where that record is, and `gapBefore` below already reads it from the
|
|
176
|
+
// same place. Consulting it costs nothing and makes the two fields agree (fixed in 0.3.38).
|
|
177
|
+
const nominalFirstTicks =
|
|
178
|
+
segmentStartTicks(index, records.start) ??
|
|
179
|
+
timeline.startOffsetTicks + BigInt(records.start) * durationTicks;
|
|
159
180
|
const firstOnsetTicks = onsets[0] ?? nominalFirstTicks;
|
|
160
181
|
const lastOnsetTicks =
|
|
161
182
|
records.count > 0 ? (onsets[records.count - 1] ?? firstOnsetTicks) : firstOnsetTicks;
|