edfcore 0.6.20 → 0.6.21

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.20";
112
+ export declare const VERSION = "0.6.21";
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.20';
82
+ export const VERSION = '0.6.21';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,27 @@ 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.21
10
+
11
+ - **Added** the check that calling twice gives the same answer. Every function in the reading API is
12
+ documented as a question about a file, and a question about a file has one answer — and nothing
13
+ checked it. The suite calls each of them once per test, which is exactly the shape that cannot see
14
+ state left behind by the first call: a memo filled with the wrong key, a cursor advanced and not
15
+ reset, an array handed out and then written into by the next caller.
16
+ - Two axes, because they catch different things. The same recording asked twice catches state on the
17
+ recording; two recordings over the same bytes catch state shared beneath them. Over all thirteen
18
+ shapes, for `buildRecordIndex`, `readAnnotations`, `validateRecording`, `readRecords`, `readWindow`
19
+ and `readEnvelope`, plus `inspectEdf` on the bytes.
20
+ - And a third claim the first two cannot make: a second call hands back arrays of its own. Equal
21
+ contents, different objects, different buffers — because two callers reading one recording must not
22
+ be able to write into each other's results. `nothing-points-at-your-buffer` says a result never
23
+ points into the caller's bytes; this says a second result never points into the first one's.
24
+ - `buildRecordIndex` returns methods as well as data, so results are compared through a projection
25
+ that drops function-valued properties — two calls necessarily build two closures, and whether they
26
+ are the same function is not the question. `locate` and `onsetTicks` are then exercised directly at
27
+ every record and at five instants, which is the half that projection drops.
28
+ - Nothing disagreed. No behaviour changed.
29
+
9
30
  ## 0.6.20
10
31
 
11
32
  - **Added** a thirteenth shape to the `AWKWARD` matrix: a record duration with no exact binary
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.6.20",
3
+ "version": "0.6.21",
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.20';
96
+ export const VERSION = '0.6.21';