edfcore 0.4.400 → 0.4.402

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.400";
112
+ export declare const VERSION = "0.4.402";
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.400';
82
+ export const VERSION = '0.4.402';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,44 @@ 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.402
10
+
11
+ - **Added** tests for what `httpSource` accepts before it issues anything: a URL, a `fetch` and a
12
+ length. Three sentences on `api-sources.md` describe constructing a source, and all three were
13
+ prose.
14
+ - "It accepts a `URL` object as well as a string, because `URL` structurally satisfies
15
+ `{ href: string }`." A `URL` is what `new URL(name, base)` hands you, so passing one is the
16
+ normal case rather than the clever one — and nothing here had ever passed anything but a string
17
+ literal.
18
+ - `fetch` defaults to `globalThis.fetch`, and throws `EdfSourceError` at construction when neither
19
+ is available. That is the path every browser caller takes and the one no test could take, because
20
+ the suite replaces the global with a trap that refuses. It is exercised now by standing a
21
+ counting double in the global's place for the length of one test, which is the only way to
22
+ observe the fallback without reaching a network.
23
+ - `byteLength` must be a non-negative safe integer. Its whole purpose is to skip the probes, so a
24
+ bad value is a value that would otherwise be trusted as the size of a resource nobody measured,
25
+ and every read is then range-checked against a fiction. Zero is accepted, because an empty
26
+ resource is a real one.
27
+
28
+ ## 0.4.401
29
+
30
+ - **Added** a check that the palette has one definition. `tokens.css` opens by explaining the
31
+ pairing — the signal green carries the trace, the rose is semantic and marks events, and rose
32
+ rather than red because red-on-green is the one pairing red-green colourblindness collapses, with
33
+ the measured separation written down. That reasoning is worth something only while the colours it
34
+ describes are the colours a visitor sees.
35
+ - Three places cannot say `var(--signal)` and so restate the value. `og.svg`, because an SVG
36
+ exported by `qlmanage` has no stylesheet: nine literal hexes. The two `theme-color` metas, because
37
+ the browser paints the chrome before any CSS arrives — wrong values put a stale band above and
38
+ below a scrolling page, on phones, where nobody developing the site is looking. And
39
+ `TraceStrip.astro`, which reads the tokens at runtime and is right to, but whose fallbacks are the
40
+ palette written a third way in decimal RGB — the copy least likely to be recognised as one.
41
+ - Each is now required to be the specific token that does its job, resolved through `var()` the way
42
+ the cascade does: `theme-color` is `--bg` in each layer, the card's rose is on the annotation, and
43
+ each canvas fallback is its own token's default-theme value.
44
+ - The beam head is deliberately exempt. Its core is a near-white green brighter than any token,
45
+ because a phosphor blowout is additive light and there is no palette entry for it.
46
+
9
47
  ## 0.4.400
10
48
 
11
49
  - **Added** a check that the two tsconfigs differ only where they are meant to. `npm run typecheck`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.400",
3
+ "version": "0.4.402",
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.400';
96
+ export const VERSION = '0.4.402';