edfcore 0.4.446 → 0.4.448

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.446";
112
+ export declare const VERSION = "0.4.448";
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.446';
82
+ export const VERSION = '0.4.448';
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.448
10
+
11
+ - **Added** tests for what `edfcore json` puts in a file you are about to pipe somewhere. Piping is
12
+ the whole reason the command exists — into `jq`, a manifest, a ticket, a spreadsheet a directory
13
+ sweep produced — which is why identification is opt-in here as it is in `formatHeader`.
14
+ - `json` defends differently from the other two commands. `header` and `validate` redact, putting
15
+ a placeholder where a value was; `json` omits the key entirely, because an object recording that
16
+ a patient field existed and was withheld is a different thing for a machine to read.
17
+ - The diagnostics are the quieter half. They are reduced to `code` and `severity` — no message, no
18
+ raw, no actual — so identification cannot arrive through a diagnostic that quoted the field it
19
+ was complaining about, and every identification diagnostic does quote it. That is achieved by an
20
+ object literal naming two properties, which is one careless spread away from carrying all of
21
+ them.
22
+ - `trimEdfField` rather than `.trim()` is the third. `.trim()` leaves U+0000 in place, so on the
23
+ NUL-padded fields a large share of real writers emit, `JSON.stringify` escapes each one into a
24
+ six-character sequence inside the value — unreadable, and a disclosure of the field's exact
25
+ width.
26
+
27
+ ## 0.4.447
28
+
29
+ - **Added** a check that a machine which has not downloaded the corpus still gets a green suite.
30
+ `tests/README.md` opens with "`git clone && npm test` is green and offline"; the offline half is
31
+ a property — a trap replaces `fetch` and `offline.test.ts` proves it is armed — and the other
32
+ half, that a fresh clone passes without the ~59 MB the fetch script pulls, was enforced by
33
+ convention.
34
+ - It is the half a contributor meets first, and it fails unwelcomingly: they clone, run the suite,
35
+ and watch it fail on files they were never told to download, in tests named after recordings they
36
+ have never heard of, with the fix in a README they have not reached yet.
37
+ - CI is what makes the convention load-bearing rather than theoretical. It runs `npm ci` and
38
+ `npm run check` and never fetches the corpus, so every job is a run in the skipping state — an
39
+ unguarded corpus test fails every job on every push, blocking every release, and looks like a
40
+ problem with the corpus rather than with the guard.
41
+ - The rule is mechanical: a test file that builds a path into the downloaded directory has to ask
42
+ whether the file is there. Both halves are needed — `fixture-policy.test.ts` sits in the same
43
+ folder, names the directory in a git check, reads nothing from it, and must not be required to
44
+ guard.
45
+
9
46
  ## 0.4.446
10
47
 
11
48
  - **Added** a property test that flooring a sample's published start names the same sample again,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.446",
3
+ "version": "0.4.448",
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.446';
96
+ export const VERSION = '0.4.448';