edfcore 0.6.37 → 0.6.39

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.37";
112
+ export declare const VERSION = "0.6.39";
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.37';
82
+ export const VERSION = '0.6.39';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,45 @@ 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.39
10
+
11
+ - **Added** four more promises to the set that is executed rather than read, over all seventeen
12
+ shapes. `the-page-says-always.test.ts` did this for the five on `api-reading.md` and found one
13
+ that was true and incomplete; these four are spread over two pages and a module docblock:
14
+ `matchSignals` never returns an annotations channel, events outside a window are never returned
15
+ even though the scan is record-aligned, `onsetRaw` never loses precision the file had, and
16
+ ISO-8859-1 is the identity map onto U+0000..U+00FF — which is the whole argument for decoding
17
+ header text by hand rather than with `TextDecoder`.
18
+ - All four hold. The one worth looking at is the first: on the file whose only channel is an
19
+ annotations channel, `matchSignals(/.*/)` returns nothing at all. A helper that answered "every
20
+ signal" with the one signal there is would be exactly the mistake `api-helpers.md` calls "the
21
+ usual way" a montage filter ends up decoding a TAL region as if it were samples, and the empty
22
+ answer is that rule at its sharpest.
23
+ - The window check uses windows narrower than a record, so a record-aligned scan has to be trimmed
24
+ to answer them; the decoder check crosses the 4096-byte boundary it chunks on, which a maximal
25
+ 2.56 MB header crosses hundreds of times.
26
+
27
+ ## 0.6.38
28
+
29
+ - **Documented** the third regime the sample helpers have. `api-helpers.md` described two: on a
30
+ contiguous file the recording-aware forms agree with the grid functions exactly, and on a
31
+ discontinuous one they differ by the gaps, with `sampleAt` able to answer `undefined` for an
32
+ instant in a hole.
33
+ - A file whose records OVERLAP is neither. Two samples start at the same instant there, so
34
+ `sampleAt(sampleStartSecondsOf(recording, signal, i))` can answer with a sample that is not `i`
35
+ — on the shape added in 0.6.36 it does for twenty of the first forty-eight indices. No error, no
36
+ `undefined`: the sample it names does start at the instant asked for, and nothing can choose
37
+ between two that do. A caller round-tripping an index through an instant gets a different index
38
+ back, which is the answer the page did not prepare them for.
39
+ - The page now names the regime, says how to detect it (`contiguityOf`, or the timeline's
40
+ `RECORD_ONSET_SPACING_VIOLATION`), and says to compare instants rather than indices.
41
+ - `an-instant-two-samples-share.test.ts` executes the property in both forms over all seventeen
42
+ shapes: the weak one that holds everywhere — the sample found starts at the instant asked for —
43
+ and the strong one that holds on the sixteen whose records do not overlap. The overlapping shape
44
+ is asserted to be the only place they differ, and to differ on twenty indices rather than on one
45
+ edge case.
46
+ - No library change: there is no better answer for it to give.
47
+
9
48
  ## 0.6.37
10
49
 
11
50
  - **Fixed** an incomplete sentence on `api-reading.md`. It said the index traversal "is chunked so
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.6.37",
3
+ "version": "0.6.39",
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.37';
96
+ export const VERSION = '0.6.39';