edfcore 0.4.410 → 0.4.412
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 +34 -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.412";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/docs/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,40 @@ 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.412
|
|
10
|
+
|
|
11
|
+
- **Added** tests for four header fields that are all finite and imply a gain that is not. An EDF
|
|
12
|
+
physical bound is eight bytes of ASCII, which is room for an exponent, so a physical range can
|
|
13
|
+
underflow against the digital range — `0` to `5E-324` over -1..1 puts `bitValue` at zero and
|
|
14
|
+
`offset` at infinity — or overflow it, where `-9.9E307` to `9.9E307` exceeds float64 before the
|
|
15
|
+
division happens.
|
|
16
|
+
- Nothing about such a file looks wrong. The header parses, every field is in range for its width,
|
|
17
|
+
and a reader who does not check `signal.scale` gets a column of `NaN` where microvolts should be
|
|
18
|
+
— which plots as an empty panel, or silently poisons a mean. The scale is refused exactly as the
|
|
19
|
+
obvious degeneracies are, and `decodeDigital` keeps working, which is the whole reason
|
|
20
|
+
`toPhysical` is a separate call.
|
|
21
|
+
- A signal declaring a negative `samplesPerRecord` is the other shape of "parses and cannot be
|
|
22
|
+
used", and it is fatal rather than diagnosed: every later signal's byte offset inside a record is
|
|
23
|
+
a running sum of that field, so a negative one does not make one signal wrong, it makes every
|
|
24
|
+
signal after it point at the wrong bytes.
|
|
25
|
+
|
|
26
|
+
## 0.4.411
|
|
27
|
+
|
|
28
|
+
- **Added** tests for the envelope of the files and selections a viewer produces by accident.
|
|
29
|
+
`readEnvelope` exists to draw a recording at pixel width, so its caller is a UI: the signal
|
|
30
|
+
indices come from a multi-select, the bucket count from a canvas width, and the file from
|
|
31
|
+
whatever was dropped on the page.
|
|
32
|
+
- **The same signal asked for twice** — a multi-select that appends on click, a "select all" over a
|
|
33
|
+
list that already had one checked — is now pinned as one series in order of first mention, and
|
|
34
|
+
costing what asking once costs. **A signal with no samples in a record** draws as an empty series
|
|
35
|
+
rather than failing the whole envelope, so a "plot everything" loop still gets a slot for every
|
|
36
|
+
channel it named. **A file whose records do not advance in time** buckets without dividing by the
|
|
37
|
+
duration: `readEnvelope` divides the samples evenly, because there are no timestamps to place
|
|
38
|
+
them along, and `readEnvelopeAtResolution` gets one bucket, because the span is zero.
|
|
39
|
+
- A fourth case is a request rather than a file: a `secondsPerBucket` finer than one tick has no
|
|
40
|
+
whole-tick answer, and asking for one bucket per tick and letting the fold clamp to one bucket per
|
|
41
|
+
sample was a comment with nothing behind it.
|
|
42
|
+
|
|
9
43
|
## 0.4.410
|
|
10
44
|
|
|
11
45
|
- **Added** a check that nothing on the site tells a crawler to stay away. `robots.txt.ts` opens
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED