edfcore 0.4.504 → 0.4.506

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.504";
112
+ export declare const VERSION = "0.4.506";
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.504';
82
+ export const VERSION = '0.4.506';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,37 @@ 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.506
10
+
11
+ - **Added** the four-row cost table on `validation.md`, and the claim it exists to support:
12
+ "conformance costs one traversal rather than two", which is the reason `validateRecording` takes
13
+ an `index` at all.
14
+ - `budget-invariance.test.ts` checks that the budget cannot change what the sweep REPORTS. Nothing
15
+ checked what it READS, and every row of that table is a cost a caller plans around — a plain EDF
16
+ is pure header arithmetic, an EDF+ without an index has to traverse, a complete index means it
17
+ does not, and `scanSamples` means it does regardless.
18
+ - The sentences under the table are checked with it, including the one most likely to be quietly
19
+ wrong: a probed index — which is exactly what `openEdf` hands you, and therefore what a caller
20
+ passes by mistake — is ignored rather than refused, and the sweep reads the file itself. So is
21
+ an index covering a different number of records, which has the right shape and the wrong length.
22
+
23
+ ## 0.4.505
24
+
25
+ - **Added** the values `design-decisions.md` prints beside three of its decisions. `AGENTS.md`
26
+ sends every contributor to that page before proposing an architectural change, so it is the one
27
+ document read specifically to be argued with — and `design-absences.test.ts` checks the absences
28
+ it claims, not the demonstrations that justify them.
29
+ - A decision whose example no longer produces what it prints is worse than an undocumented one: a
30
+ reader weighing the trade-off is reading the example to decide whether the cost is what the page
31
+ says it is.
32
+ - The three chosen are each the evidence for a REJECTION rather than an illustration of an accepted
33
+ design — the start time as fields, which is the argument against returning a `Date`; the onset as
34
+ exact ticks beside its lossy seconds, which is the argument against `parseFloat`; and
35
+ `clampToDigitalRange` as a separate pure function, which is the argument against clamping on read
36
+ the way the reference implementation does.
37
+ - The last one is asserted from both sides: the clamp produces the array the page prints, and a
38
+ read of the same samples does not clamp them.
39
+
9
40
  ## 0.4.504
10
41
 
11
42
  - **Added** the values `api-primitives.md` prints beside each primitive. That page is the reference
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.504",
3
+ "version": "0.4.506",
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.504';
96
+ export const VERSION = '0.4.506';