edfcore 0.4.457 → 0.4.459

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.457";
112
+ export declare const VERSION = "0.4.459";
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.457';
82
+ export const VERSION = '0.4.459';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,42 @@ 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.459
10
+
11
+ - **Added** the two `COMMA_DECIMAL_SEPARATOR` cases that were missing: a comma in the declared
12
+ header size, and a comma in the record count.
13
+ - `readNumericField` exists for exactly those two fields, because both have an authoritative
14
+ alternative — the computed header size always wins, and the record count is recoverable from the
15
+ source length. Both were tested only with values that recover, so the one line in that function
16
+ which does NOT recover had never run. Deleting it changed nothing visible: the comma fell through
17
+ to `!parse.ok`, became `NaN`, and was quietly replaced.
18
+ - That silence is what the refusal is for. `"1,024"` in the record count is one thousand and
19
+ twenty-four records to the writer that wrote it; recovering from the source length yields a
20
+ plausible number that is right only by accident, and `recordCount` is what every read range in
21
+ the library is checked against.
22
+ - The contrast is asserted alongside it — any other bad value in those two fields still recovers,
23
+ with `RECORD_COUNT_RECOVERED` or `HEADER_SIZE_MISMATCH` — so the new cases pin the comma as the
24
+ exception rather than pinning the fields as fatal.
25
+
26
+ ## 0.4.458
27
+
28
+ - **Added** tests for a bad HTTP status during a READ, which had never run. `httpSource` reports a
29
+ status from two places and they are different events: the length probe's "could not read" means
30
+ the source never existed, and that one was covered; the one inside a read happens on a source
31
+ that already opened a file, already parsed its header and is part way through a recording.
32
+ - That is the failure this adapter meets most. A signed URL whose expiry passed during a long
33
+ overnight study, a rotated token, a tightened bucket policy, a 500 from an origin behind a CDN —
34
+ all of them are mid-read statuses, and the message is written for that reader specifically: it
35
+ names the byte range being fetched and ends by asking about authentication headers and expiry,
36
+ neither of which means anything for a URL that never worked.
37
+ - Three statuses are checked because the status is quoted rather than classified. edfcore has no
38
+ opinion about which 4xx or 5xx means what, and a reader matching the message against an access
39
+ log needs the number the server actually sent.
40
+ - Also pinned: a failed read leaves no state behind. Without that case, every assertion here would
41
+ pass on an implementation that latched the first failure and refused every read afterwards —
42
+ which for a renewed token is the difference between a retry that works and a source that is
43
+ finished.
44
+
9
45
  ## 0.4.457
10
46
 
11
47
  - **Documented** `INSPECTION_FAILED` as unreachable today, and added the test that keeps that
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.457",
3
+ "version": "0.4.459",
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.457';
96
+ export const VERSION = '0.4.459';