edfcore 0.4.435 → 0.4.437

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.435";
112
+ export declare const VERSION = "0.4.437";
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.435';
82
+ export const VERSION = '0.4.437';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,45 @@ 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.437
10
+
11
+ - **Added** a check that the throwaway probes stay runnable and cannot reach the suite, the
12
+ typecheck or a commit. `tests/scratch/` holds reproductions written while chasing a defect: they
13
+ assert whatever behaviour was current when they were written, which makes them useful for an
14
+ afternoon and poison afterwards, because a committed probe pins a defect as if it were a
15
+ decision.
16
+ - Four mechanisms keep that true, in four different files, and none was checked. `.gitignore` keeps
17
+ them out of a commit, which matters because `scripts/release.mjs` stages with `git add -A`. The
18
+ main vitest config excludes the directory so a leftover probe cannot join the run that gates a
19
+ tag. `tsconfig.json` excludes it for the same reason on the other half of `npm run check`, and
20
+ the vitest config's own comment says the two move together — only one of which is where anyone
21
+ would look. And the scratch config is what makes a probe runnable anyway, because vitest applies
22
+ `exclude` even to an explicit filename filter.
23
+ - The exemption is stated too: the scratch config deliberately does not load the offline trap, since
24
+ a probe reproducing a defect against a real server is a legitimate thing to write. That is an
25
+ absence, and an absence is what someone adds for consistency.
26
+ - The strongest check is the live one — nothing under `tests/scratch/` is tracked, asked of git
27
+ rather than of the ignore file, because that is the property and the rest is mechanism.
28
+
29
+ ## 0.4.436
30
+
31
+ - **Added** tests that a real `AbortSignal` reaches `fetch` and a bare `{ aborted }` shim never
32
+ does. `FetchLike` deliberately does not name `signal` — naming it would pull the DOM
33
+ `AbortSignal` into the published types by parameter contravariance, the exact dependency the
34
+ structural shims exist to avoid — so the signal is handed over at runtime, on one line.
35
+ - Both halves matter and they fail differently. Attaching a shim is loud: the platform `fetch`
36
+ throws a `TypeError` on an init whose `signal` is not an `AbortSignal`, so every request from a
37
+ caller using the published `AbortSignalLike` type would fail at once. Not attaching a real one is
38
+ silent, and that is the half nothing had exercised — no test had ever given `httpSource` a
39
+ genuine `AbortSignal`.
40
+ - Without the attach, `throwIfSignalAborted` still rejects the caller's promise at the next poll,
41
+ so an abort looks like it worked, while the request runs to completion. On a range covering a few
42
+ hundred megabytes that is the difference between cancelling a transfer and paying for it, and the
43
+ only visible symptom is a bill, or a phone that stays warm after the user navigated away.
44
+ - The caller's own signal object has to be the one attached, not a copy, or aborting theirs aborts
45
+ nothing. A source-level signal and a per-read one are both checked, since the page documents the
46
+ first as the default for every request and the second as winning over it.
47
+
9
48
  ## 0.4.435
10
49
 
11
50
  - **Added** a check that the announce script cuts one release and that a dry run cuts none.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.435",
3
+ "version": "0.4.437",
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.435';
96
+ export const VERSION = '0.4.437';