edfcore 0.4.433 → 0.4.434

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.4.433";
112
+ export declare const VERSION = "0.4.434";
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.4.433';
82
+ export const VERSION = '0.4.434';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,21 @@ 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.4.434
10
+
11
+ - **Added** a check that asking a source for nothing costs nothing, in every adapter. A zero-length
12
+ read is what a caller gets from `end - start` when a window selects no samples, from a range
13
+ computed off a record count that turned out to be zero, or from a loop whose last iteration has
14
+ nothing left to take. `assertReadRange` allows it, so every adapter has to decide what to do with
15
+ it, and each decides separately.
16
+ - The wrong answers are quiet ones. Handing the request to the transport gets a `bytes=100--1`
17
+ range no server will honour, or a `Blob.slice(100, 100)` and a promise allocated for nothing.
18
+ Neither is an error a caller could act on, and both are about a request nobody meant to make.
19
+ - All five adapters are checked in one table rather than one at a time, because the contract is
20
+ about `ByteSource` and an adapter added later inherits it. The offset still has to be real:
21
+ `offset === byteLength` is legal, since that is where a read of nothing sits at the end of a
22
+ file, and past it the offset is outside the source whether or not any bytes would have been read.
23
+
9
24
  ## 0.4.433
10
25
 
11
26
  - **Added** tests for what a conformant header is allowed to say. `validateHeader` raises three
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.433",
3
+ "version": "0.4.434",
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.4.433';
96
+ export const VERSION = '0.4.434';