edfcore 0.4.299 → 0.4.301
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 +31 -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.301";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
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.301
|
|
10
|
+
|
|
11
|
+
- **Executed** the worked example on `concepts.md`, the page the site opens with and the README
|
|
12
|
+
calls "the mental model the rest of the API follows from". It is built almost entirely out of
|
|
13
|
+
arithmetic on one described file — a 768-byte header, thirty 544-byte records, 17,088 bytes
|
|
14
|
+
total, and a ten-record read of the narrow channel costing 5,440 bytes for 160 samples — and
|
|
15
|
+
every number was prose. A reader who works through it and gets a different answer from their own
|
|
16
|
+
file has no way to tell which of the two is wrong.
|
|
17
|
+
- All of them are correct. What was missing is anything keeping them so: they follow from
|
|
18
|
+
`headerByteLength = 256 * (signals + 1)` and the record layout, and a change to either would
|
|
19
|
+
leave the page teaching the old ones. The fixture is built to the page's description with the
|
|
20
|
+
suite's own writer, which imports nothing from `src/`, so the numbers are checked against a file
|
|
21
|
+
assembled from the specification rather than against edfcore's idea of one.
|
|
22
|
+
|
|
23
|
+
## 0.4.300
|
|
24
|
+
|
|
25
|
+
- **Executed** the claim the error API is shaped around. `src/errors.ts` says class identity is
|
|
26
|
+
false across a realm boundary, `api-errors.md` repeats it, and `public-api.test.ts` files
|
|
27
|
+
`isEdfError` under a heading calling it the cross-realm discriminator — none of them showed it
|
|
28
|
+
happening. An API built entirely around a property nobody demonstrated is an API built around a
|
|
29
|
+
belief.
|
|
30
|
+
- Two copies of the module rather than a `vm` realm, because two copies is the case that reaches
|
|
31
|
+
people: one dependency tree resolving edfcore twice, which npm does whenever two packages want
|
|
32
|
+
incompatible ranges. `instanceof` fails across them, `isEdfError` does not, and the
|
|
33
|
+
discriminator survives — while `instanceof` keeps working inside one copy, which is what makes
|
|
34
|
+
the failure invisible to every test a consumer writes against their own.
|
|
35
|
+
- Writing it corrected my reading of `isEdfError`: it is a duck type, and a plain object with a
|
|
36
|
+
string `edfErrorKind` passes. That is the design rather than a hole — tightening it to
|
|
37
|
+
`instanceof Error` would reintroduce the problem, since `Error` identity is per-realm too, so
|
|
38
|
+
the check would fail on exactly the foreign errors it exists to recognise. The test says so.
|
|
39
|
+
|
|
9
40
|
## 0.4.299
|
|
10
41
|
|
|
11
42
|
- **Extended** `verify:site` to check the generated markdown carries the page, not just its head.
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED