edfcore 0.4.455 → 0.4.457

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.455";
112
+ export declare const VERSION = "0.4.457";
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.455';
82
+ export const VERSION = '0.4.457';
83
83
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../src/inspect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAiB,aAAa,EAAc,WAAW,EAAE,MAAM,YAAY,CAAC;AAgFpG;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,aAAa,CAAC,CAiGxB"}
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../src/inspect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAiB,aAAa,EAAc,WAAW,EAAE,MAAM,YAAY,CAAC;AA6FpG;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,aAAa,CAAC,CAiGxB"}
package/dist/inspect.js CHANGED
@@ -75,6 +75,19 @@ function diagnosticOf(error) {
75
75
  return (formatError.diagnostic ??
76
76
  createDiagnostic({ code: formatError.code, message: formatError.message }));
77
77
  }
78
+ /*
79
+ * Unreachable today, and kept deliberately rather than deleted.
80
+ *
81
+ * `inspectEdf` wraps exactly one call, and every `EdfError` `parseHeader` can throw is an
82
+ * `EdfFormatError`: a `DiagnosticSink` is the only channel a fatal takes, and both `fatal` and
83
+ * `report` construct that class. Its one other throw is a plain `RangeError` for a bad
84
+ * `sourceByteLength`, which is not an `EdfError` and is rethrown a line earlier.
85
+ *
86
+ * It stays because the day a parse-time rule refuses with an `EdfRangeError` or an
87
+ * `EdfSourceError` — a budget check moved earlier, a scaling rule that refuses on the header —
88
+ * this is the arm that has to be here, and a missing one is harder to notice than an idle one.
89
+ * `tests/integration/inspection-failed-guard.test.ts` pins the premise so that stays honest.
90
+ */
78
91
  return createDiagnostic({
79
92
  // Not a format code: the header did not fail its grammar, some other rule refused it. The
80
93
  // code union is open precisely so a case like this does not have to borrow a wrong name.
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../src/inspect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../src/inspect.ts"],"names":[],"mappings":"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"}
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.457
10
+
11
+ - **Documented** `INSPECTION_FAILED` as unreachable today, and added the test that keeps that
12
+ statement honest.
13
+ - `diagnosticOf` in `inspect.ts` has two arms: an `EdfFormatError` becomes the diagnostic it is
14
+ already carrying, and anything else becomes `INSPECTION_FAILED`. Nothing can reach the second.
15
+ `inspectEdf` wraps exactly one call, and every `EdfError` `parseHeader` throws is an
16
+ `EdfFormatError` — a `DiagnosticSink` is the only channel a fatal takes, and both `fatal` and
17
+ `report` construct that class. Its one other throw is a plain `RangeError`, rethrown a line
18
+ earlier.
19
+ - Kept rather than deleted, for the reason `validate.ts` gives about its own idle date check: the
20
+ day a parse-time rule refuses with an `EdfRangeError` or an `EdfSourceError`, this is the arm
21
+ that has to be there, and a missing guard is harder to notice than an idle one.
22
+ - The new test checks the premise structurally — no module the parse reaches constructs and throws
23
+ an `EdfError` directly — and `header/lookup.ts`, which is on the graph and does throw two channel
24
+ errors, is exempted by a check rather than by name: the only binding anything on the parse path
25
+ imports from it is `isAnnotationLabel`, a pure predicate. An import of `getSignal` added there
26
+ fails the test, in the same commit that would make this code reachable.
27
+
28
+ ## 0.4.456
29
+
30
+ - **Added** a test for the line that divides the two kinds of failure inside `inspectEdf`: the
31
+ `if (!isEdfError(error)) throw error` at the top of its `catch`.
32
+ - A defect in the file is reported, never thrown — that is what triage is for, and it is well
33
+ covered. A mistake in the ARGUMENTS has to stay a throw, and nothing in the suite had ever
34
+ thrown a non-`EdfError` out of `parseHeader`, so the rethrow never ran. Replacing it with a
35
+ `return` failed nothing.
36
+ - The cost of losing it is specific. `EdfInspection` carries no field meaning "the arguments were
37
+ wrong", so a swallowed `RangeError` comes back as `ok: false` with a diagnostic list blaming
38
+ the file for a number the caller supplied.
39
+ - The reachable caller bug is a `ByteSource` reporting a `byteLength` past 2^53 — a hand-written
40
+ adapter over a paged API, or a `Content-Range` nobody checked. `assertByteSource` accepts it
41
+ because it is a number, and `parseHeader` refuses it because it cannot be a byte count. The
42
+ test asserts `isEdfError` is false on what comes back, since that is the predicate the
43
+ documented `catch` recipe branches on.
44
+
9
45
  ## 0.4.455
10
46
 
11
47
  - **Fixed** a test that refused what it was named after by accident. `timeline.test.ts` listed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.455",
3
+ "version": "0.4.457",
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.455';
96
+ export const VERSION = '0.4.457';
package/src/inspect.ts CHANGED
@@ -79,6 +79,19 @@ function diagnosticOf(error: EdfError): EdfDiagnostic {
79
79
  createDiagnostic({ code: formatError.code, message: formatError.message })
80
80
  );
81
81
  }
82
+ /*
83
+ * Unreachable today, and kept deliberately rather than deleted.
84
+ *
85
+ * `inspectEdf` wraps exactly one call, and every `EdfError` `parseHeader` can throw is an
86
+ * `EdfFormatError`: a `DiagnosticSink` is the only channel a fatal takes, and both `fatal` and
87
+ * `report` construct that class. Its one other throw is a plain `RangeError` for a bad
88
+ * `sourceByteLength`, which is not an `EdfError` and is rethrown a line earlier.
89
+ *
90
+ * It stays because the day a parse-time rule refuses with an `EdfRangeError` or an
91
+ * `EdfSourceError` — a budget check moved earlier, a scaling rule that refuses on the header —
92
+ * this is the arm that has to be here, and a missing one is harder to notice than an idle one.
93
+ * `tests/integration/inspection-failed-guard.test.ts` pins the premise so that stays honest.
94
+ */
82
95
  return createDiagnostic({
83
96
  // Not a format code: the header did not fail its grammar, some other rule refused it. The
84
97
  // code union is open precisely so a case like this does not have to borrow a wrong name.