edfcore 0.4.272 → 0.4.274
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.
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/docs/CHANGELOG.md +30 -0
- package/package.json +1 -1
- package/src/constants.ts +1 -1
package/dist/constants.d.ts
CHANGED
|
@@ -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.
|
|
112
|
+
export declare const VERSION = "0.4.274";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/docs/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,36 @@ 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.274
|
|
10
|
+
|
|
11
|
+
- **Added** the check that edfcore never writes to the console. The README says it twice, and the
|
|
12
|
+
survey table explaining why this library exists lists what the alternatives do instead —
|
|
13
|
+
"`console.warn` and `null`, or bare thrown strings". Diagnostics are values on the result
|
|
14
|
+
precisely so that reporting them is the caller's decision; a library that logs takes that
|
|
15
|
+
decision away, breaks anything parsing the consumer's stdout, and on a header diagnostic puts a
|
|
16
|
+
patient's name into whatever collects the logs. One `console.warn` left in during debugging
|
|
17
|
+
would have shipped, and the only way to find it was to be the person whose output it landed in.
|
|
18
|
+
- Both halves, because neither is enough on its own. A static sweep of `src/` with comments
|
|
19
|
+
stripped catches a call on a path no test happens to take — the survey table is quoted in
|
|
20
|
+
comments, so stripping is load-bearing. Running the library with every console method trapped
|
|
21
|
+
catches one the sweep cannot see, and that was verified rather than assumed: a call written as
|
|
22
|
+
`globalThis['con' + 'sole'].warn` leaves no literal `console` in the file, passes the sweep, and
|
|
23
|
+
is caught by the trap.
|
|
24
|
+
|
|
25
|
+
## 0.4.273
|
|
26
|
+
|
|
27
|
+
- **Made** the fuzz suite assert the clause it was missing. `tests/README.md` states the safety
|
|
28
|
+
property in four parts — "it never hangs, never allocates unboundedly, never returns NaN, and
|
|
29
|
+
never returns believable garbage" — and attributes all four to `property/fuzz.test.ts`, which
|
|
30
|
+
opened by saying it asserts three and listed them. The gap was "never allocates unboundedly":
|
|
31
|
+
its bounded clause was a wall-clock budget, which catches slowness, and slowness is a different
|
|
32
|
+
failure from a corrupt header talking a reader into an allocation it cannot afford.
|
|
33
|
+
- Every fuzz read now runs under `maxMaterializeBytes`, and a read that succeeds must have stayed
|
|
34
|
+
inside it. Exceeding it throws `EdfBudgetError`, which clause 1 already accepted as a legitimate
|
|
35
|
+
refusal; the new half is that a decoder which allocated past the ceiling and handed the array
|
|
36
|
+
back anyway would have satisfied every other clause in the file. Verified by lowering the
|
|
37
|
+
ceiling below what the fixtures decode to and watching the violation report the byte count.
|
|
38
|
+
|
|
9
39
|
## 0.4.272
|
|
10
40
|
|
|
11
41
|
- **Executed** the offline claim instead of stating it. `tests/README.md` opens with
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED