edfcore 0.4.386 → 0.4.388

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/README.md CHANGED
@@ -78,7 +78,7 @@ for (const event of annotations) {
78
78
  }
79
79
  ```
80
80
 
81
- > **Status: 0.4.x, early.** edfcore runs 1,900+ tests on generated fixtures, and it's checked
81
+ > **Status: 0.4.x, early.** edfcore runs 2,000+ tests on generated fixtures, and it's checked
82
82
  > against public corpora it didn't author: the EDF, EDF+ and 24-bit BDF+ test files from
83
83
  > teuniz.net, and PhysioNet's sleep-edfx (a real 22-hour polysomnography recording and its
84
84
  > sleep-staging file). Those checks are numeric. Channels labelled `sine 8.5 Hz` decode to
package/dist/cli.js CHANGED
File without changes
@@ -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.386";
112
+ export declare const VERSION = "0.4.388";
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.386';
82
+ export const VERSION = '0.4.388';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,43 @@ 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.388
10
+
11
+ - **Fixed** the figure three places give for the size of this suite. The README said 1,900 or more
12
+ tests, the note at the foot of `installation.md` said 1,200 or more, and the docblock of
13
+ `browser-safety.test.ts` said 1,900-odd — three figures for one fact, the smallest of them eight
14
+ hundred behind. All three now say 2,000.
15
+ - None of them was ever false, which is why nothing caught them. A claim of the form "N or more"
16
+ stays true forever once it is true, and the property that makes it safe is the property that
17
+ makes it worthless: it can never be wrong, so it is never re-read. What a reader takes from it is
18
+ a sense of scale, and half the real scale is a wrong impression conveyed in a true sentence.
19
+ - **Added** the check that keeps it current: the figure has to be one figure wherever it is stated,
20
+ and no smaller than the number of `it(...)` and `test(...)` declarations the suite writes out. It
21
+ fails when the suite grows past what the pages claim, which is the direction this rots in.
22
+ - It does not check the other direction. Four dozen of those declarations are `it.each(...)`,
23
+ expanding at run time to one case per row, so the count read out of the files is a floor rather
24
+ than the total — the right side to be wrong on, since a figure that clears it is true of the real
25
+ total too, but nothing here would notice one inflated past both.
26
+
27
+ ## 0.4.387
28
+
29
+ - **Added** a check that the published `bin` runs as a program. `cli.test.ts` and the rest drive
30
+ `runCli` through an injected `CliIo`, deliberately, so they need no build; `cli-pipe.test.ts`
31
+ spawns the built file but always as `node dist/cli.js`, naming the interpreter itself. Between
32
+ them they covered every line of the program and none of the mechanism that starts it.
33
+ - Delete the `#!/usr/bin/env node` from `src/cli.ts` and every test here still passes: the build
34
+ succeeds, `verify:tarball` finds the bin target in the tarball, and `node dist/cli.js header
35
+ f.edf` works exactly as before. `npx edfcore header f.edf` — the first command the README prints
36
+ — fails on the first line of JavaScript, because the shell it was handed to is not a JavaScript
37
+ engine.
38
+ - So the built file is given the executable bit npm's tarball carries for a bin and run with no
39
+ interpreter named, which is the only way to check the shebang rather than the file's first line:
40
+ a CRLF ending, a leading blank line or a BOM each leave the text intact and the program
41
+ unloadable.
42
+ - Both spawns close stdin and carry a timeout, because that failure does not look like an error. A
43
+ file with no shebang is handed to `/bin/sh`, which reads JavaScript as shell and sits waiting for
44
+ input — without the timeout a deleted shebang hangs the suite instead of failing it.
45
+
9
46
  ## 0.4.386
10
47
 
11
48
  - **Added** a property test for the window rule annotations are filtered by: overlap rather than
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.386",
3
+ "version": "0.4.388",
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.386';
96
+ export const VERSION = '0.4.388';